From 8362bf63dea22bbf6736609b0f49c152f975eb63 Mon Sep 17 00:00:00 2001 From: tpearson Date: Wed, 20 Jan 2010 01:29:50 +0000 Subject: [PATCH] Added old abandoned KDE3 version of koffice git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/koffice@1077364 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- AUTHORS | 1 + COPYING | 340 + COPYING.LIB | 486 + Doxyfile.temp | 199 + INSTALL | 186 + Mainpage.dox | 12 + Makefile.am | 20 + Makefile.am.in | 19 + Makefile.cvs | 14 + README | 92 + README.APPS | 31 + README.PACKAGERS | 187 + acinclude.m4 | 12406 +++ aclocal.m4 | 892 + autocorrect/Makefile.am | 6 + autocorrect/autocorrect.xml | 22 + autocorrect/en_US.xml | 4141 + changes-1.4 | 210 + changes-1.5 | 195 + config.h.in | 396 + configure.files | 45 + configure.in | 2666 + configure.in.in | 299 + doc/.directory | 4 + doc/CookBook.odt | Bin 0 -> 19525 bytes doc/Makefile.am | 7 + doc/TODO | 2 + doc/api/Doxyfile.am | 153 + doc/api/Doxyfile.koffice | 191 + doc/api/doxyndex.sh | 60 + doc/api/header.html | 70 + doc/api/kfontdialog.png | Bin 0 -> 4909 bytes doc/api/mainheader.html | 71 + doc/karbon/Makefile.am | 4 + doc/karbon/index.docbook | 67 + doc/kchart/Makefile.am | 4 + doc/kchart/cr22-action-chart_line.png | Bin 0 -> 1310 bytes doc/kchart/cr22-action-data.png | Bin 0 -> 1328 bytes doc/kchart/cr22-action-options.png | Bin 0 -> 1348 bytes doc/kchart/cr22-action-wizard.png | Bin 0 -> 1216 bytes doc/kchart/file-toolbar.png | Bin 0 -> 2413 bytes doc/kchart/file-toolbar2.png | Bin 0 -> 2740 bytes doc/kchart/frame_chart.png | Bin 0 -> 1249 bytes doc/kchart/index.docbook | 1375 + doc/kchart/kchart-config1.png | Bin 0 -> 6879 bytes doc/kchart/kchart-config2.png | Bin 0 -> 10779 bytes doc/kchart/kchart-config3.png | Bin 0 -> 7417 bytes doc/kchart/kchart-config4.png | Bin 0 -> 12388 bytes doc/kchart/kchart-config5.png | Bin 0 -> 9827 bytes doc/kchart/kchart-config6.png | Bin 0 -> 8674 bytes doc/kchart/kchart-config7.png | Bin 0 -> 7291 bytes doc/kchart/kchart-config8.png | Bin 0 -> 9545 bytes doc/kchart/kchart-dataeditor.png | Bin 0 -> 7096 bytes doc/kchart/kchart-default.png | Bin 0 -> 13711 bytes doc/kchart/kchart-example1-1.png | Bin 0 -> 8638 bytes doc/kchart/kchart-example1-2.png | Bin 0 -> 8805 bytes doc/kchart/kchart-example1-3.png | Bin 0 -> 7418 bytes doc/kchart/kchart-example1-4.png | Bin 0 -> 10943 bytes doc/kchart/kchart-example1-5.png | Bin 0 -> 8262 bytes doc/kchart/kchart-example1-6.png | Bin 0 -> 7376 bytes doc/kchart/kchart-example1-7.png | Bin 0 -> 11137 bytes doc/kchart/kchart-example1-8.png | Bin 0 -> 8169 bytes doc/kchart/kchart-example1-9.png | Bin 0 -> 13167 bytes doc/kchart/kchart-kspread-bar.png | Bin 0 -> 4681 bytes doc/kchart/kchart-kspread.png | Bin 0 -> 5242 bytes doc/kchart/kchart-startupdialog.png | Bin 0 -> 12477 bytes doc/kchart/kchart-wizard0.png | Bin 0 -> 6671 bytes doc/kchart/kchart-wizard1.png | Bin 0 -> 9392 bytes doc/kchart/kchart-wizard2.png | Bin 0 -> 5494 bytes doc/kchart/kchart-wizard3.png | Bin 0 -> 5401 bytes doc/kchart/kchart-wizard4.png | Bin 0 -> 6828 bytes doc/kchart/shortcut.png | Bin 0 -> 17045 bytes doc/kchart/toolbars.png | Bin 0 -> 13879 bytes doc/kexi/Makefile.am | 4 + doc/kexi/basics.docbook | 504 + doc/kexi/building.docbook | 248 + doc/kexi/comparing.docbook | 98 + doc/kexi/configuration.docbook | 230 + doc/kexi/contact-example.png | Bin 0 -> 2392 bytes doc/kexi/credits.docbook | 63 + doc/kexi/database.docbook | 649 + doc/kexi/designingforms.docbook | 1480 + doc/kexi/enteringdataintotables.docbook | 130 + doc/kexi/enteringdatausingforms.docbook | 33 + doc/kexi/index.docbook | 122 + doc/kexi/intro.docbook | 78 + doc/kexi/menus.docbook | 701 + doc/kexi/querydesigning.docbook | 109 + doc/kformula/Makefile.am | 4 + doc/kformula/ambiguous-string.png | Bin 0 -> 8692 bytes doc/kformula/correct_index_location.png | Bin 0 -> 1185 bytes doc/kformula/definite_integral.png | Bin 0 -> 1930 bytes doc/kformula/file-toolbar.png | Bin 0 -> 2365 bytes doc/kformula/file-toolbar2.png | Bin 0 -> 2704 bytes doc/kformula/green1.png | Bin 0 -> 9799 bytes doc/kformula/green2.png | Bin 0 -> 6119 bytes doc/kformula/greens.png | Bin 0 -> 2112 bytes doc/kformula/incorrect_index_location.png | Bin 0 -> 1244 bytes doc/kformula/index.docbook | 1246 + doc/kformula/index_smear.png | Bin 0 -> 1173 bytes doc/kformula/kfontinst1.png | Bin 0 -> 19070 bytes doc/kformula/kfontinst2.png | Bin 0 -> 25568 bytes doc/kformula/kfontinst3.png | Bin 0 -> 10377 bytes doc/kformula/kfontinst4.png | Bin 0 -> 10380 bytes doc/kformula/kfontinst5.png | Bin 0 -> 5000 bytes doc/kformula/kfontinst6.png | Bin 0 -> 6514 bytes doc/kformula/lower-index.png | Bin 0 -> 1182 bytes doc/kformula/matrix-view.png | Bin 0 -> 1340 bytes doc/kformula/matrix.png | Bin 0 -> 187 bytes doc/kformula/negative_thin_space.png | Bin 0 -> 874 bytes doc/kformula/path-integral.png | Bin 0 -> 279 bytes doc/kformula/rk-edit0.png | Bin 0 -> 3135 bytes doc/kformula/rk-edit1.png | Bin 0 -> 3070 bytes doc/kformula/rk-edit2.png | Bin 0 -> 9581 bytes doc/kformula/scilab-edit.png | Bin 0 -> 3410 bytes doc/kformula/scilab.png | Bin 0 -> 6012 bytes doc/kformula/shortcut0.png | Bin 0 -> 6901 bytes doc/kformula/shortcut1.png | Bin 0 -> 3881 bytes doc/kformula/sin.png | Bin 0 -> 1989 bytes doc/kformula/toolbars.png | Bin 0 -> 9201 bytes doc/kformula/upper-index.png | Bin 0 -> 1216 bytes doc/kivio/Makefile.am | 4 + doc/kivio/credits.docbook | 64 + doc/kivio/index.docbook | 64 + doc/kivio/introduction.docbook | 33 + doc/kivio/usage.docbook | 203 + doc/kivio/working.docbook | 212 + doc/koffice.desktop | 8 + doc/koffice/Makefile.am | 4 + doc/koffice/index.docbook | 855 + doc/koshell/Makefile.am | 4 + doc/koshell/index.docbook | 507 + doc/koshell/koshell1.png | Bin 0 -> 16939 bytes doc/koshell/main-view.png | Bin 0 -> 36377 bytes doc/koshell/new-dialog.png | Bin 0 -> 11507 bytes doc/koshell/side-pane.png | Bin 0 -> 10422 bytes doc/kplato/Makefile.am | 4 + doc/kplato/commands.docbook | 566 + doc/kplato/configure-wbs.png | Bin 0 -> 4234 bytes doc/kplato/configure1.png | Bin 0 -> 6109 bytes doc/kplato/configure2.1.png | Bin 0 -> 3405 bytes doc/kplato/configure2.png | Bin 0 -> 6887 bytes doc/kplato/definitions.docbook | 228 + doc/kplato/edit-accounts.png | Bin 0 -> 4069 bytes doc/kplato/edit-accounts1.png | Bin 0 -> 4340 bytes doc/kplato/edit-calendar.png | Bin 0 -> 7933 bytes doc/kplato/edit-calendar1.png | Bin 0 -> 8609 bytes doc/kplato/edit-calendar2.png | Bin 0 -> 8913 bytes doc/kplato/edit-resources.png | Bin 0 -> 4233 bytes doc/kplato/edit-resources1.png | Bin 0 -> 5484 bytes doc/kplato/edit-worktime.png | Bin 0 -> 3272 bytes doc/kplato/index.docbook | 131 + doc/kplato/mainwindow.docbook | 53 + doc/kplato/mainwindow1.png | Bin 0 -> 16866 bytes doc/kplato/options.docbook | 366 + doc/kplato/project-settings.png | Bin 0 -> 5462 bytes doc/kplato/wbs.docbook | 139 + doc/kplato/wbs.png | Bin 0 -> 3804 bytes doc/kplato/wbs1.png | Bin 0 -> 8790 bytes doc/kplato/wbs2.png | Bin 0 -> 2897 bytes doc/kplato/wbs3.png | Bin 0 -> 5113 bytes doc/kpresenter/Makefile.am | 4 + doc/kpresenter/a11y.docbook | 321 + doc/kpresenter/autocorrection1.png | Bin 0 -> 12095 bytes doc/kpresenter/autocorrection2.png | Bin 0 -> 6483 bytes doc/kpresenter/autocorrection3.png | Bin 0 -> 10964 bytes doc/kpresenter/autocorrection4.png | Bin 0 -> 9229 bytes doc/kpresenter/barstyle1.png | Bin 0 -> 9674 bytes doc/kpresenter/barstyle3.png | Bin 0 -> 14522 bytes doc/kpresenter/barstyle4.png | Bin 0 -> 12620 bytes doc/kpresenter/barstyle5.png | Bin 0 -> 9889 bytes doc/kpresenter/barstyle6.png | Bin 0 -> 2936 bytes doc/kpresenter/barstyle7.png | Bin 0 -> 9007 bytes doc/kpresenter/break.png | Bin 0 -> 1227 bytes doc/kpresenter/changeformat.png | Bin 0 -> 8917 bytes doc/kpresenter/completion.png | Bin 0 -> 9987 bytes doc/kpresenter/configure1.png | Bin 0 -> 11508 bytes doc/kpresenter/configure2.png | Bin 0 -> 10415 bytes doc/kpresenter/configure3.png | Bin 0 -> 12892 bytes doc/kpresenter/configure4.png | Bin 0 -> 12907 bytes doc/kpresenter/configure4a.png | Bin 0 -> 1546 bytes doc/kpresenter/configure4a1.png | Bin 0 -> 1550 bytes doc/kpresenter/configure4b.png | Bin 0 -> 1658 bytes doc/kpresenter/configure4c.png | Bin 0 -> 1192 bytes doc/kpresenter/configure5.png | Bin 0 -> 15006 bytes doc/kpresenter/configure6.png | Bin 0 -> 13365 bytes doc/kpresenter/configure6b.png | Bin 0 -> 12737 bytes doc/kpresenter/configure6c.png | Bin 0 -> 12571 bytes doc/kpresenter/configure6d.png | Bin 0 -> 13328 bytes doc/kpresenter/configure6e.png | Bin 0 -> 13291 bytes doc/kpresenter/configure7.png | Bin 0 -> 11349 bytes doc/kpresenter/faq.docbook | 53 + doc/kpresenter/great-presentations.docbook | 145 + doc/kpresenter/guides.docbook | 556 + doc/kpresenter/htmlshow1.png | Bin 0 -> 9349 bytes doc/kpresenter/htmlshow2.png | Bin 0 -> 5558 bytes doc/kpresenter/htmlshow3.png | Bin 0 -> 11504 bytes doc/kpresenter/htmlshow4.png | Bin 0 -> 11614 bytes doc/kpresenter/htmlshow5.png | Bin 0 -> 9935 bytes doc/kpresenter/htmlshow6.png | Bin 0 -> 12053 bytes doc/kpresenter/htmlshow7.png | Bin 0 -> 12413 bytes doc/kpresenter/htmlshow8.png | Bin 0 -> 6594 bytes doc/kpresenter/htmlshow9.png | Bin 0 -> 2972 bytes doc/kpresenter/index.docbook | 267 + doc/kpresenter/kbd-focus-ext.png | Bin 0 -> 5939 bytes doc/kpresenter/link.png | Bin 0 -> 1006 bytes doc/kpresenter/menus.docbook | 2066 + doc/kpresenter/mousenav.png | Bin 0 -> 3673 bytes doc/kpresenter/msexport1.png | Bin 0 -> 9403 bytes doc/kpresenter/msexport2.png | Bin 0 -> 6614 bytes doc/kpresenter/msexport2b.png | Bin 0 -> 3558 bytes doc/kpresenter/msexport3.png | Bin 0 -> 4938 bytes doc/kpresenter/msexport4.png | Bin 0 -> 6644 bytes doc/kpresenter/options.docbook | 1032 + doc/kpresenter/properties.png | Bin 0 -> 6779 bytes doc/kpresenter/screen.docbook | 44 + doc/kpresenter/settings01.png | Bin 0 -> 3775 bytes doc/kpresenter/settings03.png | Bin 0 -> 13350 bytes doc/kpresenter/settings04.png | Bin 0 -> 14897 bytes doc/kpresenter/template02.png | Bin 0 -> 8916 bytes doc/kpresenter/template03.png | Bin 0 -> 8764 bytes doc/kpresenter/template04.png | Bin 0 -> 3502 bytes doc/kpresenter/template05.png | Bin 0 -> 8981 bytes doc/kpresenter/template06.png | Bin 0 -> 10383 bytes doc/kpresenter/template07.png | Bin 0 -> 16993 bytes doc/kpresenter/textmenu1.png | Bin 0 -> 13193 bytes doc/kpresenter/textmenu2.png | Bin 0 -> 23527 bytes doc/kpresenter/toolsmenu01.png | Bin 0 -> 4098 bytes doc/kpresenter/tts.png | Bin 0 -> 18511 bytes doc/kpresenter/tut01.png | Bin 0 -> 14666 bytes doc/kpresenter/tut02.png | Bin 0 -> 17840 bytes doc/kpresenter/tut03.png | Bin 0 -> 19283 bytes doc/kpresenter/tut04.png | Bin 0 -> 21576 bytes doc/kpresenter/tut05.png | Bin 0 -> 22147 bytes doc/kpresenter/tut06.png | Bin 0 -> 5380 bytes doc/kpresenter/tut07.png | Bin 0 -> 10706 bytes doc/kpresenter/tut08.png | Bin 0 -> 21905 bytes doc/kpresenter/tut09.png | Bin 0 -> 20327 bytes doc/kpresenter/tut10.png | Bin 0 -> 25654 bytes doc/kpresenter/tut11.png | Bin 0 -> 21941 bytes doc/kpresenter/tut12.png | Bin 0 -> 25558 bytes doc/kpresenter/tut13.png | Bin 0 -> 35617 bytes doc/kpresenter/tut14.png | Bin 0 -> 42541 bytes doc/kpresenter/tut15.png | Bin 0 -> 28314 bytes doc/kpresenter/tut16.png | Bin 0 -> 5864 bytes doc/kpresenter/tut17.png | Bin 0 -> 6112 bytes doc/kpresenter/tut18.png | Bin 0 -> 30038 bytes doc/kpresenter/tut19.png | Bin 0 -> 31037 bytes doc/kpresenter/tut20.png | Bin 0 -> 26499 bytes doc/kpresenter/tut21.png | Bin 0 -> 30885 bytes doc/kpresenter/tut22.png | Bin 0 -> 40281 bytes doc/kpresenter/tut23.png | Bin 0 -> 13593 bytes doc/kpresenter/tut24.png | Bin 0 -> 11811 bytes doc/kpresenter/tut25.png | Bin 0 -> 432 bytes doc/kpresenter/tut26.png | Bin 0 -> 25978 bytes doc/kpresenter/tutorial.docbook | 510 + doc/kpresenter/zoomfactor.png | Bin 0 -> 1302 bytes doc/krita/Makefile.am | 4 + doc/krita/README.SCREENSHOTS | 7 + doc/krita/commands-dialogs.docbook | 1411 + doc/krita/commands-menus.docbook | 2158 + doc/krita/commands-palettes.docbook | 769 + doc/krita/commands-toolbars.docbook | 752 + doc/krita/commands.docbook | 14 + doc/krita/createdocument.png | Bin 0 -> 27558 bytes doc/krita/credits.docbook | 63 + doc/krita/crocusses-autocontrast.png | Bin 0 -> 499562 bytes doc/krita/crocusses-blur.png | Bin 0 -> 468953 bytes doc/krita/crocusses-brightnesscontrast.png | Bin 0 -> 546358 bytes doc/krita/crocusses-bumpmap.png | Bin 0 -> 571353 bytes doc/krita/crocusses-coloradjustment.png | Bin 0 -> 528830 bytes doc/krita/crocusses-colortoalpha.png | Bin 0 -> 415299 bytes doc/krita/crocusses-colortransfer.png | Bin 0 -> 555351 bytes doc/krita/crocusses-customconvolution.png | Bin 0 -> 554016 bytes doc/krita/crocusses-desaturate.png | Bin 0 -> 406990 bytes doc/krita/crocusses-edgebottom.png | Bin 0 -> 559654 bytes doc/krita/crocusses-edgeleft.png | Bin 0 -> 571224 bytes doc/krita/crocusses-edgeright.png | Bin 0 -> 571078 bytes doc/krita/crocusses-embossall.png | Bin 0 -> 510968 bytes doc/krita/crocusses-embosshorvert.png | Bin 0 -> 458926 bytes doc/krita/crocusses-embossvariable.png | Bin 0 -> 422049 bytes doc/krita/crocusses-gaussianblur.png | Bin 0 -> 530121 bytes doc/krita/crocusses-gaussiannoise.png | Bin 0 -> 286294 bytes doc/krita/crocusses-invert.png | Bin 0 -> 539218 bytes doc/krita/crocusses-lenscorrection.png | Bin 0 -> 508837 bytes doc/krita/crocusses-maximizechannel.png | Bin 0 -> 459660 bytes doc/krita/crocusses-meanremoval.png | Bin 0 -> 567170 bytes doc/krita/crocusses-minimizechannel.png | Bin 0 -> 425660 bytes doc/krita/crocusses-oilpaint.png | Bin 0 -> 495449 bytes doc/krita/crocusses-pixelize.png | Bin 0 -> 478581 bytes doc/krita/crocusses-raindrops.png | Bin 0 -> 534746 bytes doc/krita/crocusses-randomnoise.png | Bin 0 -> 564979 bytes doc/krita/crocusses-randompick.png | Bin 0 -> 519583 bytes doc/krita/crocusses-roundcorners.png | Bin 0 -> 539409 bytes doc/krita/crocusses-sharpen.png | Bin 0 -> 553916 bytes doc/krita/crocusses-smalltiles.png | Bin 0 -> 361990 bytes doc/krita/crocusses-sobel.png | Bin 0 -> 471358 bytes doc/krita/crocusses-topedge.png | Bin 0 -> 559859 bytes doc/krita/crocusses-unsharpmask.png | Bin 0 -> 428069 bytes doc/krita/crocusses-wave.png | Bin 0 -> 523430 bytes doc/krita/crocusses-waveletnoise.png | Bin 0 -> 529833 bytes doc/krita/crocusses.png | Bin 0 -> 793760 bytes doc/krita/developers-plugins.docbook | 1553 + doc/krita/developers-scripting.docbook | 534 + doc/krita/developers.docbook | 13 + doc/krita/dialogs-addpalette.png | Bin 0 -> 4550 bytes doc/krita/dialogs-blur.png | Bin 0 -> 48396 bytes doc/krita/dialogs-brightnesscontrast.png | Bin 0 -> 49052 bytes doc/krita/dialogs-bumpmap.png | Bin 0 -> 67764 bytes doc/krita/dialogs-coloradjustment.png | Bin 0 -> 51959 bytes doc/krita/dialogs-colorrange.png | Bin 0 -> 15921 bytes doc/krita/dialogs-colortoalpha.png | Bin 0 -> 87705 bytes doc/krita/dialogs-colortransfer.png | Bin 0 -> 95722 bytes doc/krita/dialogs-convertimagetype.png | Bin 0 -> 20430 bytes doc/krita/dialogs-convertlayertype.png | Bin 0 -> 20120 bytes doc/krita/dialogs-cubism.png | Bin 0 -> 24274 bytes doc/krita/dialogs-customconvolution.png | Bin 0 -> 56961 bytes doc/krita/dialogs-documentinformation.png | Bin 0 -> 15468 bytes doc/krita/dialogs-dropshadow.png | Bin 0 -> 7697 bytes doc/krita/dialogs-emboss.png | Bin 0 -> 43740 bytes doc/krita/dialogs-filtersgallery.png | Bin 0 -> 96047 bytes doc/krita/dialogs-gaussiannoise.png | Bin 0 -> 90250 bytes doc/krita/dialogs-histogram.png | Bin 0 -> 16400 bytes doc/krita/dialogs-imageproperties.png | Bin 0 -> 7707 bytes doc/krita/dialogs-imagerestoration.png | Bin 0 -> 50997 bytes doc/krita/dialogs-imagesize.png | Bin 0 -> 16603 bytes doc/krita/dialogs-layerproperties.png | Bin 0 -> 14491 bytes doc/krita/dialogs-layersize.png | Bin 0 -> 13465 bytes doc/krita/dialogs-lenscorrection.png | Bin 0 -> 94887 bytes doc/krita/dialogs-newadjustmentlayer.png | Bin 0 -> 93985 bytes doc/krita/dialogs-newlayer.png | Bin 0 -> 5867 bytes doc/krita/dialogs-oilpaint.png | Bin 0 -> 37141 bytes doc/krita/dialogs-pixelize.png | Bin 0 -> 16145 bytes doc/krita/dialogs-raindrops.png | Bin 0 -> 45472 bytes doc/krita/dialogs-randomnoise.png | Bin 0 -> 139391 bytes doc/krita/dialogs-randompick.png | Bin 0 -> 91942 bytes doc/krita/dialogs-rotateimage.png | Bin 0 -> 16182 bytes doc/krita/dialogs-rotatelayer.png | Bin 0 -> 20299 bytes doc/krita/dialogs-roundcorners.png | Bin 0 -> 46183 bytes doc/krita/dialogs-separateimage.png | Bin 0 -> 7935 bytes doc/krita/dialogs-shearimage.png | Bin 0 -> 9516 bytes doc/krita/dialogs-shearlayer.png | Bin 0 -> 7940 bytes doc/krita/dialogs-smalltiles.png | Bin 0 -> 32126 bytes doc/krita/dialogs-sobel.png | Bin 0 -> 83672 bytes doc/krita/dialogs-substrate.png | Bin 0 -> 22651 bytes doc/krita/dialogs-unsharpmask.png | Bin 0 -> 93323 bytes doc/krita/dialogs-wave.png | Bin 0 -> 99300 bytes doc/krita/dialogs-waveletnoise.png | Bin 0 -> 77062 bytes doc/krita/faq.docbook | 51 + doc/krita/index.docbook | 137 + doc/krita/installation.docbook | 73 + doc/krita/introduction.docbook | 153 + doc/krita/mainscreen.png | Bin 0 -> 79114 bytes doc/krita/mountains-burn.png | Bin 0 -> 160956 bytes doc/krita/mountains-color.png | Bin 0 -> 192279 bytes doc/krita/mountains-darken.png | Bin 0 -> 159109 bytes doc/krita/mountains-divide.png | Bin 0 -> 173187 bytes doc/krita/mountains-dodge.png | Bin 0 -> 173303 bytes doc/krita/mountains-hue.png | Bin 0 -> 234143 bytes doc/krita/mountains-lighten.png | Bin 0 -> 149116 bytes doc/krita/mountains-multiply.png | Bin 0 -> 172588 bytes doc/krita/mountains-normal.png | Bin 0 -> 3513 bytes doc/krita/mountains-original.png | Bin 0 -> 238426 bytes doc/krita/mountains-overlay.png | Bin 0 -> 249214 bytes doc/krita/mountains-saturation.png | Bin 0 -> 231769 bytes doc/krita/mountains-screen.png | Bin 0 -> 172226 bytes doc/krita/mountains-value.png | Bin 0 -> 218818 bytes doc/krita/mountains.png | Bin 0 -> 975922 bytes doc/krita/newimage.png | Bin 0 -> 29882 bytes doc/krita/palettes-colors-gray.png | Bin 0 -> 1425 bytes doc/krita/palettes-colors-hsv.png | Bin 0 -> 10418 bytes doc/krita/palettes-colors-palettes.png | Bin 0 -> 3355 bytes doc/krita/palettes-colors-rgb.png | Bin 0 -> 1840 bytes doc/krita/palettes-colors-watercolors.png | Bin 0 -> 3030 bytes doc/krita/palettes-controlbox-bezier.png | Bin 0 -> 2960 bytes doc/krita/palettes-controlbox-brush.png | Bin 0 -> 3643 bytes doc/krita/palettes-controlbox-colorpicker.png | Bin 0 -> 7577 bytes .../palettes-controlbox-contiguousfill.png | Bin 0 -> 5641 bytes doc/krita/palettes-controlbox-crop.png | Bin 0 -> 4122 bytes doc/krita/palettes-controlbox-duplicate.png | Bin 0 -> 5856 bytes doc/krita/palettes-controlbox-ellipse.png | Bin 0 -> 3443 bytes doc/krita/palettes-controlbox-fill.png | Bin 0 -> 5467 bytes doc/krita/palettes-controlbox-gradient.png | Bin 0 -> 6694 bytes doc/krita/palettes-controlbox-histogram.png | Bin 0 -> 1596 bytes doc/krita/palettes-controlbox-line.png | Bin 0 -> 3812 bytes doc/krita/palettes-controlbox-overview.png | Bin 0 -> 20948 bytes .../palettes-controlbox-paintwithfilters.png | Bin 0 -> 7825 bytes doc/krita/palettes-controlbox-polygon.png | Bin 0 -> 4285 bytes doc/krita/palettes-controlbox-polyline.png | Bin 0 -> 3812 bytes doc/krita/palettes-controlbox-rectangle.png | Bin 0 -> 3443 bytes doc/krita/palettes-controlbox-select.png | Bin 0 -> 1537 bytes .../palettes-controlbox-selectcontiguous.png | Bin 0 -> 3524 bytes .../palettes-controlbox-selectmagnetic.png | Bin 0 -> 3764 bytes .../palettes-controlbox-selectsimilar.png | Bin 0 -> 2805 bytes doc/krita/palettes-controlbox-star.png | Bin 0 -> 5077 bytes doc/krita/palettes-controlbox-text.png | Bin 0 -> 4119 bytes doc/krita/palettes-controlbox-transform.png | Bin 0 -> 1528 bytes doc/krita/palettes-layers-layers.png | Bin 0 -> 2824 bytes doc/krita/palettes-layers-scriptsmanager.png | Bin 0 -> 10081 bytes doc/krita/preferences-color.png | Bin 0 -> 9180 bytes doc/krita/preferences-display.png | Bin 0 -> 2052 bytes doc/krita/preferences-general.png | Bin 0 -> 4015 bytes doc/krita/preferences-grid.png | Bin 0 -> 4553 bytes doc/krita/preferences-performance.png | Bin 0 -> 2845 bytes doc/krita/preferences-sidebar.png | Bin 0 -> 8952 bytes doc/krita/preferences-tablet.png | Bin 0 -> 3390 bytes doc/krita/settings.docbook | 229 + doc/krita/tool-bezier-example.png | Bin 0 -> 3299 bytes doc/krita/tool-bezier-example2.png | Bin 0 -> 3587 bytes doc/krita/tool-bezier-example3.png | Bin 0 -> 8636 bytes doc/krita/tool-bezier.png | Bin 0 -> 861 bytes doc/krita/tool-brush.png | Bin 0 -> 758 bytes doc/krita/tool-colorpicker.png | Bin 0 -> 820 bytes doc/krita/tool-contiguousfill.png | Bin 0 -> 1196 bytes doc/krita/tool-crop.png | Bin 0 -> 901 bytes doc/krita/tool-duplicate.png | Bin 0 -> 1234 bytes doc/krita/tool-ellipse.png | Bin 0 -> 884 bytes doc/krita/tool-eraseselection.png | Bin 0 -> 1177 bytes doc/krita/tool-gradient.png | Bin 0 -> 480 bytes doc/krita/tool-line.png | Bin 0 -> 573 bytes doc/krita/tool-move.png | Bin 0 -> 882 bytes doc/krita/tool-paintselection.png | Bin 0 -> 1072 bytes doc/krita/tool-paintwithfilters-example.png | Bin 0 -> 236138 bytes doc/krita/tool-paintwithfilters.png | Bin 0 -> 881 bytes doc/krita/tool-pan.png | Bin 0 -> 912 bytes doc/krita/tool-perspectivegrid.png | Bin 0 -> 1043 bytes doc/krita/tool-perspectivetransform.png | Bin 0 -> 882 bytes doc/krita/tool-polygon.png | Bin 0 -> 897 bytes doc/krita/tool-polyline.png | Bin 0 -> 707 bytes doc/krita/tool-rectangle.png | Bin 0 -> 538 bytes doc/krita/tool-selectbezier.png | Bin 0 -> 796 bytes doc/krita/tool-selectcontiguous.png | Bin 0 -> 875 bytes doc/krita/tool-selectelliptical.png | Bin 0 -> 774 bytes doc/krita/tool-selectmagnetic.png | Bin 0 -> 1122 bytes doc/krita/tool-selectoutline.png | Bin 0 -> 926 bytes doc/krita/tool-selectpolygonal.png | Bin 0 -> 938 bytes doc/krita/tool-selectrectangular.png | Bin 0 -> 636 bytes doc/krita/tool-selectsimilar.png | Bin 0 -> 834 bytes doc/krita/tool-star.png | Bin 0 -> 1041 bytes doc/krita/tool-text.png | Bin 0 -> 1007 bytes doc/krita/tool-transform.png | Bin 0 -> 615 bytes doc/krita/tool-zoom.png | Bin 0 -> 980 bytes .../toolbar-brushes-brushshapes-autobrush.png | Bin 0 -> 6980 bytes ...oolbar-brushes-brushshapes-custombrush.png | Bin 0 -> 24319 bytes ...toolbar-brushes-brushshapes-predefined.png | Bin 0 -> 5755 bytes doc/krita/toolbar-brushes-gradients.png | Bin 0 -> 12137 bytes ...toolbar-brushes-patterns-custompattern.png | Bin 0 -> 18844 bytes doc/krita/toolbar-brushes-patterns.png | Bin 0 -> 37516 bytes doc/krita/toolbar-brushesandstuff.png | Bin 0 -> 4513 bytes doc/krita/toolbar-edit.png | Bin 0 -> 1851 bytes doc/krita/toolbar-file.png | Bin 0 -> 3616 bytes doc/krita/toolbar-krita.png | Bin 0 -> 21660 bytes doc/krita/toolbar-navigation.png | Bin 0 -> 1195 bytes doc/krita/toolbar-transformationtools.png | Bin 0 -> 2338 bytes doc/krita/toolbars-button-zoomin.png | Bin 0 -> 1078 bytes doc/krita/toolbars-button-zoomout.png | Bin 0 -> 1039 bytes doc/krita/tutorial-quick-starts.docbook | 183 + doc/krita/tutorial-quick-starts1.png | Bin 0 -> 517476 bytes doc/krita/tutorial-quick-starts10.png | Bin 0 -> 5260 bytes doc/krita/tutorial-quick-starts11.png | Bin 0 -> 15271 bytes doc/krita/tutorial-quick-starts12.png | Bin 0 -> 64869 bytes doc/krita/tutorial-quick-starts2.png | Bin 0 -> 13702 bytes doc/krita/tutorial-quick-starts3.png | Bin 0 -> 376207 bytes doc/krita/tutorial-quick-starts4.png | Bin 0 -> 5867 bytes doc/krita/tutorial-quick-starts5.png | Bin 0 -> 251713 bytes doc/krita/tutorial-quick-starts6.png | Bin 0 -> 45703 bytes doc/krita/tutorial-quick-starts7.png | Bin 0 -> 73294 bytes doc/krita/tutorial-quick-starts8.png | Bin 0 -> 3635 bytes doc/krita/tutorial-quick-starts9.png | Bin 0 -> 7114 bytes doc/krita/tutorial-select-layer-1.png | Bin 0 -> 99972 bytes doc/krita/tutorial-select-layer-10.png | Bin 0 -> 21979 bytes doc/krita/tutorial-select-layer-11.png | Bin 0 -> 28346 bytes doc/krita/tutorial-select-layer-12.png | Bin 0 -> 2907 bytes doc/krita/tutorial-select-layer-13.png | Bin 0 -> 5911 bytes doc/krita/tutorial-select-layer-2.png | Bin 0 -> 7972 bytes doc/krita/tutorial-select-layer-3.png | Bin 0 -> 17498 bytes doc/krita/tutorial-select-layer-4.png | Bin 0 -> 3851 bytes doc/krita/tutorial-select-layer-5.png | Bin 0 -> 5554 bytes doc/krita/tutorial-select-layer-6.png | Bin 0 -> 14352 bytes doc/krita/tutorial-select-layer-7.png | Bin 0 -> 5172 bytes doc/krita/tutorial-select-layer-8.png | Bin 0 -> 6461 bytes doc/krita/tutorial-select-layer-9.png | Bin 0 -> 21071 bytes doc/krita/tutorial-select-layer-sample.png | Bin 0 -> 5904 bytes doc/krita/tutorial-select-layer.docbook | 263 + doc/krita/tutorial-starting.docbook | 117 + doc/krita/tutorial-tablet-1.png | Bin 0 -> 99767 bytes doc/krita/tutorial-tablet-2.png | Bin 0 -> 27895 bytes doc/krita/tutorial-tablet-3.png | Bin 0 -> 33491 bytes doc/krita/tutorial-tablet.docbook | 141 + doc/krita/tutorial.docbook | 14 + doc/krita/using-colorspaces.docbook | 149 + doc/krita/using-filters.docbook | 923 + doc/krita/using-images.docbook | 66 + doc/krita/using-layers.docbook | 620 + doc/krita/using-selections-1.png | Bin 0 -> 115985 bytes doc/krita/using-selections-2.png | Bin 0 -> 128191 bytes doc/krita/using-selections-3.png | Bin 0 -> 131768 bytes doc/krita/using-selections-4.png | Bin 0 -> 29985 bytes doc/krita/using-selections-5.png | Bin 0 -> 24733 bytes doc/krita/using-selections-6.png | Bin 0 -> 194315 bytes doc/krita/using-selections.docbook | 200 + doc/krita/using-views.docbook | 167 + doc/kspread/Makefile.am | 4 + doc/kspread/a11y.docbook | 320 + doc/kspread/advanced.docbook | 815 + doc/kspread/basics.docbook | 637 + doc/kspread/cellformat0.png | Bin 0 -> 6925 bytes doc/kspread/cellformat1.png | Bin 0 -> 9948 bytes doc/kspread/cellformat2.png | Bin 0 -> 12133 bytes doc/kspread/cellformat3.png | Bin 0 -> 12308 bytes doc/kspread/cellformat4.png | Bin 0 -> 9813 bytes doc/kspread/cellformat5.png | Bin 0 -> 7634 bytes doc/kspread/cellformat6.png | Bin 0 -> 7048 bytes doc/kspread/cellformat7.png | Bin 0 -> 1831 bytes doc/kspread/cellprotection1.png | Bin 0 -> 6591 bytes doc/kspread/cellprotection2.png | Bin 0 -> 5189 bytes doc/kspread/chart1.png | Bin 0 -> 5447 bytes doc/kspread/commands.docbook | 1540 + doc/kspread/config.docbook | 145 + doc/kspread/configdialog.docbook | 377 + doc/kspread/configure1.png | Bin 0 -> 35860 bytes doc/kspread/configure2.png | Bin 0 -> 44409 bytes doc/kspread/configure3.png | Bin 0 -> 37037 bytes doc/kspread/configure4.png | Bin 0 -> 27384 bytes doc/kspread/configure5.png | Bin 0 -> 32763 bytes doc/kspread/configure6.png | Bin 0 -> 38047 bytes doc/kspread/copy1.png | Bin 0 -> 4863 bytes doc/kspread/currency.png | Bin 0 -> 1366 bytes doc/kspread/decreasedecimal.png | Bin 0 -> 1299 bytes doc/kspread/faq.docbook | 45 + doc/kspread/format.docbook | 693 + doc/kspread/hideformula1.png | Bin 0 -> 2590 bytes doc/kspread/hideformula2.png | Bin 0 -> 2460 bytes doc/kspread/hideformula3.png | Bin 0 -> 2367 bytes doc/kspread/hideformula4.png | Bin 0 -> 2383 bytes doc/kspread/hideformula5.png | Bin 0 -> 2518 bytes doc/kspread/importexport.docbook | 105 + doc/kspread/increasedecimal.png | Bin 0 -> 1162 bytes doc/kspread/index.docbook | 207 + doc/kspread/kbd-focus-ext.png | Bin 0 -> 7097 bytes doc/kspread/mousenav.png | Bin 0 -> 3673 bytes doc/kspread/newdocument.png | Bin 0 -> 14253 bytes doc/kspread/percent.png | Bin 0 -> 1039 bytes doc/kspread/sheetproperties.png | Bin 0 -> 7446 bytes doc/kspread/shortcut1.png | Bin 0 -> 11011 bytes doc/kspread/shortcut2.png | Bin 0 -> 4078 bytes doc/kspread/shortcut3.png | Bin 0 -> 5379 bytes doc/kspread/sort1.png | Bin 0 -> 5301 bytes doc/kspread/starting1.png | Bin 0 -> 6107 bytes doc/kspread/tts.png | Bin 0 -> 17345 bytes doc/kugar/Makefile.am | 3 + doc/kugar/add_detail.png | Bin 0 -> 2005 bytes doc/kugar/add_detail_footer.png | Bin 0 -> 2041 bytes doc/kugar/add_detail_header.png | Bin 0 -> 2025 bytes doc/kugar/datadtd.docbook | 46 + doc/kugar/dataref.docbook | 130 + doc/kugar/designer.docbook | 364 + doc/kugar/file_new.png | Bin 0 -> 3097 bytes doc/kugar/index.docbook | 156 + doc/kugar/kugar.png | Bin 0 -> 7315 bytes doc/kugar/progguide.docbook | 544 + doc/kugar/props.png | Bin 0 -> 4621 bytes doc/kugar/starting.docbook | 60 + doc/kugar/template-elements.docbook | 2493 + doc/kugar/template.docbook | 357 + doc/kugar/templatedtd.docbook | 188 + doc/kugar/tut_edit_height.png | Bin 0 -> 2931 bytes doc/kugar/tut_empty_report.png | Bin 0 -> 10727 bytes doc/kugar/tut_file_new.png | Bin 0 -> 3172 bytes doc/kugar/tut_rep_complete.png | Bin 0 -> 12842 bytes doc/kugar/tut_rep_generated.png | Bin 0 -> 9918 bytes doc/kugar/tut_rep_look1.png | Bin 0 -> 11250 bytes doc/kugar/tut_rep_look2.png | Bin 0 -> 11073 bytes doc/kugar/tut_set_level.png | Bin 0 -> 2024 bytes doc/kugar/tutorial.docbook | 313 + doc/kword/ChooseTempDia.png | Bin 0 -> 21339 bytes doc/kword/Makefile.am | 4 + doc/kword/Tut1.png | Bin 0 -> 22139 bytes doc/kword/Tut11a.png | Bin 0 -> 18860 bytes doc/kword/Tut11b.png | Bin 0 -> 14478 bytes doc/kword/Tut13.png | Bin 0 -> 15069 bytes doc/kword/Tut13a.png | Bin 0 -> 14665 bytes doc/kword/Tut14.png | Bin 0 -> 13547 bytes doc/kword/Tut14a.png | Bin 0 -> 16464 bytes doc/kword/Tut14b.png | Bin 0 -> 16413 bytes doc/kword/Tut15.png | Bin 0 -> 8301 bytes doc/kword/Tut15b.png | Bin 0 -> 8298 bytes doc/kword/Tut16.png | Bin 0 -> 8596 bytes doc/kword/Tut18.png | Bin 0 -> 16413 bytes doc/kword/Tut19.png | Bin 0 -> 17570 bytes doc/kword/Tut2.png | Bin 0 -> 17157 bytes doc/kword/Tut21.png | Bin 0 -> 23243 bytes doc/kword/Tut22.png | Bin 0 -> 16270 bytes doc/kword/Tut3.png | Bin 0 -> 17924 bytes doc/kword/Tut4.png | Bin 0 -> 17047 bytes doc/kword/Tut7.png | Bin 0 -> 14112 bytes doc/kword/Tut8.png | Bin 0 -> 15044 bytes doc/kword/a11y.docbook | 365 + doc/kword/addentry.png | Bin 0 -> 1148 bytes doc/kword/addrecord.png | Bin 0 -> 1165 bytes doc/kword/alignBlock.png | Bin 0 -> 1145 bytes doc/kword/alignCenter.png | Bin 0 -> 1155 bytes doc/kword/alignLeft.png | Bin 0 -> 1164 bytes doc/kword/alignRight.png | Bin 0 -> 1104 bytes doc/kword/auto1.png | Bin 0 -> 14889 bytes doc/kword/auto2.png | Bin 0 -> 14226 bytes doc/kword/auto3.png | Bin 0 -> 12954 bytes doc/kword/auto4.png | Bin 0 -> 10205 bytes doc/kword/autocompdlg.png | Bin 0 -> 8703 bytes doc/kword/back.png | Bin 0 -> 1539 bytes doc/kword/basic.png | Bin 0 -> 2303 bytes doc/kword/basics.docbook | 194 + doc/kword/bbord.png | Bin 0 -> 171 bytes doc/kword/bdcolorbut.png | Bin 0 -> 1393 bytes doc/kword/bdselbut.png | Bin 0 -> 1558 bytes doc/kword/bdsizebut.png | Bin 0 -> 1628 bytes doc/kword/beginning.png | Bin 0 -> 1241 bytes doc/kword/bkgdcolorbut.png | Bin 0 -> 1218 bytes doc/kword/bold.png | Bin 0 -> 1249 bytes doc/kword/bookmarks.docbook | 69 + doc/kword/borbutB.png | Bin 0 -> 201 bytes doc/kword/borbutL.png | Bin 0 -> 205 bytes doc/kword/borbutR.png | Bin 0 -> 213 bytes doc/kword/borbutT.png | Bin 0 -> 201 bytes doc/kword/bord.png | Bin 0 -> 1127 bytes doc/kword/bordtb.png | Bin 0 -> 2687 bytes doc/kword/bullist.png | Bin 0 -> 1329 bytes doc/kword/cftb.png | Bin 0 -> 3392 bytes doc/kword/chapnumb.docbook | 15 + doc/kword/chcase.png | Bin 0 -> 1118 bytes doc/kword/chcolorbut.png | Bin 0 -> 1172 bytes doc/kword/chfontbut.png | Bin 0 -> 1776 bytes doc/kword/chsizebut.png | Bin 0 -> 1673 bytes doc/kword/chstylebut.png | Bin 0 -> 1770 bytes doc/kword/clearright.png | Bin 0 -> 1129 bytes doc/kword/colin.png | Bin 0 -> 1238 bytes doc/kword/colorseldlg.png | Bin 0 -> 24482 bytes doc/kword/colout.png | Bin 0 -> 1180 bytes doc/kword/columns.docbook | 56 + doc/kword/ctab.png | Bin 0 -> 97 bytes doc/kword/ctab2.png | Bin 0 -> 360 bytes doc/kword/decindbut.png | Bin 0 -> 1325 bytes doc/kword/delentry.png | Bin 0 -> 1142 bytes doc/kword/delrecord.png | Bin 0 -> 1167 bytes doc/kword/doccomments.docbook | 69 + doc/kword/doclinks.docbook | 81 + doc/kword/docstruct.docbook | 148 + doc/kword/docstruct.png | Bin 0 -> 7217 bytes doc/kword/docvariables.docbook | 486 + doc/kword/dtab.png | Bin 0 -> 1022 bytes doc/kword/dtab2.png | Bin 0 -> 369 bytes doc/kword/dtpfmtpg1.png | Bin 0 -> 9549 bytes doc/kword/editcopy.png | Bin 0 -> 1233 bytes doc/kword/editcut.png | Bin 0 -> 1357 bytes doc/kword/editing.docbook | 1903 + doc/kword/editpaste.png | Bin 0 -> 1248 bytes doc/kword/edittb.png | Bin 0 -> 3599 bytes doc/kword/end.png | Bin 0 -> 1226 bytes doc/kword/enumlist.png | Bin 0 -> 1302 bytes doc/kword/exoffset.png | Bin 0 -> 1588 bytes doc/kword/expression.png | Bin 0 -> 6381 bytes doc/kword/expressions.docbook | 93 + doc/kword/exst.png | Bin 0 -> 2450 bytes doc/kword/exul.png | Bin 0 -> 3294 bytes doc/kword/fchardlg.png | Bin 0 -> 9671 bytes doc/kword/fchardlg2.png | Bin 0 -> 8038 bytes doc/kword/fchardlg3.png | Bin 0 -> 7851 bytes doc/kword/fchardlg4.png | Bin 0 -> 7621 bytes doc/kword/fchardlg5.png | Bin 0 -> 5379 bytes doc/kword/filefloppy.png | Bin 0 -> 1301 bytes doc/kword/filenew2.png | Bin 0 -> 1199 bytes doc/kword/fileopen.png | Bin 0 -> 1380 bytes doc/kword/fileprint.png | Bin 0 -> 1322 bytes doc/kword/fileprint2.png | Bin 0 -> 1430 bytes doc/kword/filetb.png | Bin 0 -> 2277 bytes doc/kword/find.png | Bin 0 -> 1370 bytes doc/kword/finddlg.png | Bin 0 -> 7862 bytes doc/kword/finddlg2.png | Bin 0 -> 11464 bytes doc/kword/footcfg1.png | Bin 0 -> 8576 bytes doc/kword/footcfg2.png | Bin 0 -> 9109 bytes doc/kword/footcfg3.png | Bin 0 -> 7603 bytes doc/kword/footend.png | Bin 0 -> 3278 bytes doc/kword/footendnotes.docbook | 200 + doc/kword/formabs.png | Bin 0 -> 1107 bytes doc/kword/formatchar.docbook | 319 + doc/kword/formatframes.docbook | 503 + doc/kword/formatpara.docbook | 388 + doc/kword/formbrac.png | Bin 0 -> 1269 bytes doc/kword/formcbrac.png | Bin 0 -> 1267 bytes doc/kword/formfrac.png | Bin 0 -> 1186 bytes doc/kword/formframe1.png | Bin 0 -> 10913 bytes doc/kword/formframe2.png | Bin 0 -> 27447 bytes doc/kword/formframe3.png | Bin 0 -> 9380 bytes doc/kword/formframe4.png | Bin 0 -> 19816 bytes doc/kword/formframe5.png | Bin 0 -> 11739 bytes doc/kword/formframe6.png | Bin 0 -> 12385 bytes doc/kword/forminteg.png | Bin 0 -> 777 bytes doc/kword/formllind.png | Bin 0 -> 812 bytes doc/kword/formlrind.png | Bin 0 -> 782 bytes doc/kword/formmat.png | Bin 0 -> 906 bytes doc/kword/formover.png | Bin 0 -> 1190 bytes doc/kword/formprod.png | Bin 0 -> 1061 bytes doc/kword/formsbrac.png | Bin 0 -> 1275 bytes doc/kword/formspecchar.png | Bin 0 -> 2170 bytes doc/kword/formsqrt.png | Bin 0 -> 828 bytes doc/kword/formsum.png | Bin 0 -> 1292 bytes doc/kword/formtb.png | Bin 0 -> 4191 bytes doc/kword/formulas.docbook | 69 + doc/kword/formulind.png | Bin 0 -> 876 bytes doc/kword/formunder.png | Bin 0 -> 1106 bytes doc/kword/formurind.png | Bin 0 -> 1138 bytes doc/kword/forward.png | Bin 0 -> 1555 bytes doc/kword/fpara1.png | Bin 0 -> 9106 bytes doc/kword/fpara2.png | Bin 0 -> 8653 bytes doc/kword/fpara3.png | Bin 0 -> 8807 bytes doc/kword/fpara4.png | Bin 0 -> 12253 bytes doc/kword/fpara5.png | Bin 0 -> 10136 bytes doc/kword/fpicture.png | Bin 0 -> 1275 bytes doc/kword/framers.png | Bin 0 -> 4782 bytes doc/kword/frames.docbook | 435 + doc/kword/framestylist.png | Bin 0 -> 9758 bytes doc/kword/fundimentals.docbook | 178 + doc/kword/graphics.docbook | 238 + doc/kword/headerfooter.docbook | 57 + doc/kword/incindbut.png | Bin 0 -> 1293 bytes doc/kword/index.docbook | 1852 + doc/kword/inscoldlg.png | Bin 0 -> 2766 bytes doc/kword/insdate.png | Bin 0 -> 5666 bytes doc/kword/insertfile.docbook | 22 + doc/kword/insgrph1.png | Bin 0 -> 11842 bytes doc/kword/insgrph2.png | Bin 0 -> 6034 bytes doc/kword/insrowdlg.png | Bin 0 -> 2651 bytes doc/kword/instab1.png | Bin 0 -> 4537 bytes doc/kword/instb.png | Bin 0 -> 1879 bytes doc/kword/instime.png | Bin 0 -> 5107 bytes doc/kword/intro1.png | Bin 0 -> 500 bytes doc/kword/intro2.png | Bin 0 -> 1203 bytes doc/kword/intro3.png | Bin 0 -> 1707 bytes doc/kword/ital.png | Bin 0 -> 1235 bytes doc/kword/joincell.png | Bin 0 -> 240 bytes doc/kword/kbd-focus-ext.png | Bin 0 -> 11485 bytes doc/kword/kformappcol.png | Bin 0 -> 843 bytes doc/kword/kformapprow.png | Bin 0 -> 868 bytes doc/kword/kforminscol.png | Bin 0 -> 867 bytes doc/kword/kforminsrow.png | Bin 0 -> 249 bytes doc/kword/kformremcol.png | Bin 0 -> 926 bytes doc/kword/kformremrow.png | Bin 0 -> 929 bytes doc/kword/kpart.png | Bin 0 -> 1192 bytes doc/kword/kparts.docbook | 56 + doc/kword/landscape.png | Bin 0 -> 178 bytes doc/kword/larrow.png | Bin 0 -> 1359 bytes doc/kword/lbord.png | Bin 0 -> 177 bytes doc/kword/linkdlg.png | Bin 0 -> 6417 bytes doc/kword/listdepth1.png | Bin 0 -> 1099 bytes doc/kword/listdepth2.png | Bin 0 -> 970 bytes doc/kword/listdepth3.png | Bin 0 -> 1146 bytes doc/kword/lists.docbook | 165 + doc/kword/ltab.png | Bin 0 -> 985 bytes doc/kword/ltab2.png | Bin 0 -> 364 bytes doc/kword/mailmerge.docbook | 475 + doc/kword/mbtb.docbook | 2628 + doc/kword/migrating.docbook | 15 + doc/kword/mmerge1.png | Bin 0 -> 4388 bytes doc/kword/mmerge1a.png | Bin 0 -> 7827 bytes doc/kword/mmerge2.png | Bin 0 -> 4036 bytes doc/kword/mmergeab1.png | Bin 0 -> 8489 bytes doc/kword/mmergekspread1.png | Bin 0 -> 3941 bytes doc/kword/mmergesql1.png | Bin 0 -> 5799 bytes doc/kword/mmergesql2.png | Bin 0 -> 7423 bytes doc/kword/mousenav.png | Bin 0 -> 3673 bytes doc/kword/numtxtbut.png | Bin 0 -> 1317 bytes doc/kword/opendlg.png | Bin 0 -> 12232 bytes doc/kword/opt.docbook | 654 + doc/kword/opt1.png | Bin 0 -> 31203 bytes doc/kword/opt2.png | Bin 0 -> 38682 bytes doc/kword/opt3.png | Bin 0 -> 36111 bytes doc/kword/opt4.png | Bin 0 -> 39648 bytes doc/kword/opt5.png | Bin 0 -> 36815 bytes doc/kword/opt6.png | Bin 0 -> 26865 bytes doc/kword/optkb.png | Bin 0 -> 14917 bytes doc/kword/optkb2.png | Bin 0 -> 4930 bytes doc/kword/opttb.png | Bin 0 -> 13539 bytes doc/kword/pageformat.docbook | 253 + doc/kword/paratb.png | Bin 0 -> 3521 bytes doc/kword/part-kformula.png | Bin 0 -> 1199 bytes doc/kword/part-kspread.png | Bin 0 -> 1204 bytes doc/kword/picture.png | Bin 0 -> 1280 bytes doc/kword/pntdlg.png | Bin 0 -> 10169 bytes doc/kword/pntdlg1.png | Bin 0 -> 16423 bytes doc/kword/portrait.png | Bin 0 -> 1001 bytes doc/kword/rarrow.png | Bin 0 -> 1294 bytes doc/kword/rbord.png | Bin 0 -> 157 bytes doc/kword/redo.png | Bin 0 -> 1235 bytes doc/kword/repldlg.png | Bin 0 -> 12032 bytes doc/kword/rowin.png | Bin 0 -> 1220 bytes doc/kword/rowout.png | Bin 0 -> 1215 bytes doc/kword/rtab.png | Bin 0 -> 1099 bytes doc/kword/rtab2.png | Bin 0 -> 390 bytes doc/kword/ruler.png | Bin 0 -> 6832 bytes doc/kword/saturation.png | Bin 0 -> 1098 bytes doc/kword/saved1.png | Bin 0 -> 3115 bytes doc/kword/saved2.png | Bin 0 -> 3367 bytes doc/kword/savedlg.png | Bin 0 -> 14342 bytes doc/kword/savetmpl1.png | Bin 0 -> 6423 bytes doc/kword/scan.png | Bin 0 -> 22656 bytes doc/kword/scan2.png | Bin 0 -> 7530 bytes doc/kword/screen.png | Bin 0 -> 24244 bytes doc/kword/select1.png | Bin 0 -> 1682 bytes doc/kword/spell.png | Bin 0 -> 1285 bytes doc/kword/spelldlg.png | Bin 0 -> 10057 bytes doc/kword/stkout.png | Bin 0 -> 1271 bytes doc/kword/storeprint.docbook | 476 + doc/kword/styldlg1.png | Bin 0 -> 12491 bytes doc/kword/styleimport.png | Bin 0 -> 4327 bytes doc/kword/styles.docbook | 351 + doc/kword/subscbut.png | Bin 0 -> 1266 bytes doc/kword/sum.png | Bin 0 -> 960 bytes doc/kword/supscbut.png | Bin 0 -> 1328 bytes doc/kword/table.docbook | 653 + doc/kword/tableprop1.png | Bin 0 -> 4773 bytes doc/kword/tableprop2.png | Bin 0 -> 8035 bytes doc/kword/tablestylist.png | Bin 0 -> 8806 bytes doc/kword/tabstops.docbook | 324 + doc/kword/tb1.png | Bin 0 -> 2278 bytes doc/kword/tb2.png | Bin 0 -> 1613 bytes doc/kword/tb3.png | Bin 0 -> 2999 bytes doc/kword/tb4.png | Bin 0 -> 3127 bytes doc/kword/tblsty.png | Bin 0 -> 1794 bytes doc/kword/tbord.png | Bin 0 -> 232 bytes doc/kword/techinfo.docbook | 246 + doc/kword/tedittb.png | Bin 0 -> 2335 bytes doc/kword/templatecreation.docbook | 115 + doc/kword/textstyex.png | Bin 0 -> 4264 bytes doc/kword/tfcreatebut.png | Bin 0 -> 1200 bytes doc/kword/thesaurus.png | Bin 0 -> 12273 bytes doc/kword/toc.docbook | 67 + doc/kword/tts.png | Bin 0 -> 17370 bytes doc/kword/tutorial.docbook | 356 + doc/kword/undl.png | Bin 0 -> 1217 bytes doc/kword/undo.png | Bin 0 -> 1198 bytes doc/kword/value.png | Bin 0 -> 1110 bytes doc/kword/viewsize.png | Bin 0 -> 8161 bytes doc/kword/wbw.png | Bin 0 -> 823 bytes doc/kword/wpfmtpg1.png | Bin 0 -> 10510 bytes doc/kword/wpfmtpg2.png | Bin 0 -> 4880 bytes doc/kword/wpfmtpg3.png | Bin 0 -> 10441 bytes doc/kword/zoom.png | Bin 0 -> 1682 bytes doc/thesaurus/Makefile.am | 4 + doc/thesaurus/index.docbook | 150 + example/Makefile.am | 38 + example/README | 2 + example/configure.in.in | 4 + example/configure.in.in.koffice | 108 + example/example.desktop | 62 + example/example.rc | 12 + example/example_aboutdata.h | 42 + example/example_factory.cc | 82 + example/example_factory.h | 47 + example/example_part.cc | 96 + example/example_part.h | 46 + example/example_readonly.rc | 7 + example/example_view.cc | 76 + example/example_view.h | 49 + example/examplepart.desktop | 59 + example/main.cc | 45 + example/x-vnd.kde.example.desktop | 10 + filters/Makefile.am | 48 + filters/configure.in.mid | 58 + filters/filterstatus.xml | 453 + filters/generic_wrapper/Makefile.am | 18 + filters/generic_wrapper/README | 40 + filters/generic_wrapper/generic_filter.cc | 127 + .../generic_wrapper/generic_filter.desktop | 58 + filters/generic_wrapper/generic_filter.h | 47 + filters/karbon/Makefile.am | 2 + filters/karbon/ai/Makefile.am | 44 + filters/karbon/ai/ai3handler.cc | 74 + filters/karbon/ai/ai3handler.h | 39 + filters/karbon/ai/ai88handler.cc | 564 + filters/karbon/ai/ai88handler.h | 56 + filters/karbon/ai/aicolor.cc | 100 + filters/karbon/ai/aicolor.h | 57 + filters/karbon/ai/aielement.cc | 804 + filters/karbon/ai/aielement.h | 151 + filters/karbon/ai/aiimport.cc | 101 + filters/karbon/ai/aiimport.h | 47 + filters/karbon/ai/ailexer.cc | 514 + filters/karbon/ai/ailexer.h | 123 + filters/karbon/ai/aiparserbase.cc | 1337 + filters/karbon/ai/aiparserbase.h | 440 + filters/karbon/ai/karbon_ai_import.desktop | 67 + filters/karbon/ai/karbonaiparserbase.cc | 637 + filters/karbon/ai/karbonaiparserbase.h | 202 + filters/karbon/applixgraphics/Makefile.am | 20 + .../applixgraphics/applixgraphicimport.cc | 832 + .../applixgraphics/applixgraphicimport.h | 71 + .../kontour_applixgraphic_import.desktop | 69 + filters/karbon/applixgraphics/status.html | 175 + filters/karbon/eps/Makefile.am | 37 + filters/karbon/eps/epsexport.cc | 481 + filters/karbon/eps/epsexport.h | 71 + filters/karbon/eps/epsexportdlg.cc | 65 + filters/karbon/eps/epsexportdlg.h | 44 + filters/karbon/eps/epsimport.cc | 117 + filters/karbon/eps/epsimport.h | 42 + filters/karbon/eps/karbon_eps_export.desktop | 66 + filters/karbon/eps/karbon_eps_import.desktop | 66 + filters/karbon/eps/karbon_ps_import.desktop | 66 + filters/karbon/eps/pscommentlexer.cc | 324 + filters/karbon/eps/pscommentlexer.h | 112 + filters/karbon/kontour/Makefile.am | 27 + .../kontour/karbon_kontour_import.desktop | 66 + filters/karbon/kontour/kontourimport.cpp | 323 + filters/karbon/kontour/kontourimport.h | 48 + filters/karbon/msod/Makefile.am | 18 + .../karbon/msod/karbon_msod_import.desktop | 61 + filters/karbon/msod/msod.cc | 1340 + filters/karbon/msod/msod.h | 307 + filters/karbon/msod/msodimport.cc | 313 + filters/karbon/msod/msodimport.h | 87 + filters/karbon/msod/status.html | 153 + filters/karbon/oodraw/Makefile.am | 24 + .../oodraw/karbon_oodraw_import.desktop | 63 + filters/karbon/oodraw/oodrawimport.cc | 757 + filters/karbon/oodraw/oodrawimport.h | 78 + filters/karbon/png/Makefile.am | 27 + filters/karbon/png/karbon_png_export.desktop | 67 + filters/karbon/png/pngexport.cc | 96 + filters/karbon/png/pngexport.h | 39 + filters/karbon/svg/Makefile.am | 34 + filters/karbon/svg/TODO | 8 + filters/karbon/svg/color.h | 306 + filters/karbon/svg/karbon_svg_export.desktop | 67 + filters/karbon/svg/karbon_svg_import.desktop | 64 + filters/karbon/svg/svgexport.cc | 512 + filters/karbon/svg/svgexport.h | 88 + filters/karbon/svg/svggraphiccontext.h | 48 + filters/karbon/svg/svgimport.cc | 1389 + filters/karbon/svg/svgimport.h | 102 + filters/karbon/wmf/Makefile.am | 27 + filters/karbon/wmf/karbon_wmf_export.desktop | 63 + filters/karbon/wmf/karbon_wmf_import.desktop | 66 + filters/karbon/wmf/wmfexport.cc | 263 + filters/karbon/wmf/wmfexport.h | 71 + filters/karbon/wmf/wmfimport.cc | 78 + filters/karbon/wmf/wmfimport.h | 42 + filters/karbon/wmf/wmfimportparser.cc | 371 + filters/karbon/wmf/wmfimportparser.h | 141 + filters/karbon/xaml/Makefile.am | 35 + filters/karbon/xaml/color.h | 306 + .../karbon/xaml/karbon_xaml_export.desktop | 54 + .../karbon/xaml/karbon_xaml_import.desktop | 53 + filters/karbon/xaml/xamlexport.cc | 371 + filters/karbon/xaml/xamlexport.h | 76 + filters/karbon/xaml/xamlgraphiccontext.h | 46 + filters/karbon/xaml/xamlimport.cc | 1042 + filters/karbon/xaml/xamlimport.h | 91 + filters/karbon/xcf/Makefile.am | 27 + filters/karbon/xcf/karbon_xcf_export.desktop | 65 + filters/karbon/xcf/xcfexport.cc | 458 + filters/karbon/xcf/xcfexport.h | 97 + .../karbon/xfig/karbon_xfig_import.desktop | 61 + filters/karbon/xfig/status.html | 157 + filters/karbon/xfig/xfigimport.cc | 760 + filters/karbon/xfig/xfigimport.h | 94 + filters/karbon/xfig/xfigimport_factory.cc | 67 + filters/karbon/xfig/xfigimport_factory.h | 46 + filters/kchart/Makefile.am | 1 + filters/kchart/bmp/Makefile.am | 24 + filters/kchart/bmp/bmpexport.cpp | 76 + filters/kchart/bmp/bmpexport.h | 38 + filters/kchart/bmp/kchart_bmp_export.desktop | 52 + filters/kchart/jpeg/Makefile.am | 26 + filters/kchart/jpeg/jpegexport.cpp | 76 + filters/kchart/jpeg/jpegexport.h | 38 + .../kchart/jpeg/kchart_jpeg_export.desktop | 52 + filters/kchart/libimageexport/Makefile.am | 23 + filters/kchart/libimageexport/imageexport.cpp | 83 + filters/kchart/libimageexport/imageexport.h | 45 + filters/kchart/mng/Makefile.am | 24 + filters/kchart/mng/kchart_mng_export.desktop | 47 + filters/kchart/mng/mngexport.cpp | 76 + filters/kchart/mng/mngexport.h | 38 + filters/kchart/png/Makefile.am | 32 + filters/kchart/png/kchart_png_export.desktop | 57 + filters/kchart/png/pngexport.cpp | 76 + filters/kchart/png/pngexport.h | 38 + filters/kchart/png/status.html | 103 + filters/kchart/svg/Makefile.am | 29 + filters/kchart/svg/kchart_svg_export.desktop | 57 + filters/kchart/svg/status.html | 100 + filters/kchart/svg/svgexport.cc | 93 + filters/kchart/svg/svgexport.h | 36 + filters/kchart/xbm/Makefile.am | 25 + filters/kchart/xbm/kchart_xbm_export.desktop | 52 + filters/kchart/xbm/xbmexport.cpp | 76 + filters/kchart/xbm/xbmexport.h | 38 + filters/kchart/xpm/Makefile.am | 25 + filters/kchart/xpm/kchart_xpm_export.desktop | 52 + filters/kchart/xpm/xpmexport.cpp | 76 + filters/kchart/xpm/xpmexport.h | 38 + filters/kformula/Makefile.am | 1 + filters/kformula/latex/Makefile.am | 25 + .../latex/kformula_latex_export.desktop | 69 + filters/kformula/latex/latexexport.cc | 96 + filters/kformula/latex/latexexport.h | 38 + filters/kformula/mathml/Makefile.am | 23 + .../mathml/kformula_mathml_export.desktop | 64 + .../mathml/kformula_mathml_import.desktop | 64 + filters/kformula/mathml/mathmlexport.cc | 94 + filters/kformula/mathml/mathmlexport.h | 38 + filters/kformula/mathml/mathmlimport.cc | 111 + filters/kformula/mathml/mathmlimport.h | 42 + filters/kformula/png/Makefile.am | 25 + .../kformula/png/kformula_png_export.desktop | 70 + filters/kformula/png/pngexport.cc | 74 + filters/kformula/png/pngexport.h | 38 + filters/kformula/png/pngexportdia.cc | 242 + filters/kformula/png/pngexportdia.h | 81 + filters/kformula/svg/Makefile.am | 25 + .../kformula/svg/kformula_svg_export.desktop | 56 + filters/kformula/svg/svgexport.cc | 102 + filters/kformula/svg/svgexport.h | 37 + filters/kivio/Makefile.am | 1 + filters/kivio/imageexport/Makefile.am | 18 + .../imageexport/kivio_image_export.desktop | 52 + .../kivio/imageexport/kivio_imageexport.cpp | 178 + filters/kivio/imageexport/kivio_imageexport.h | 39 + .../imageexport/kivio_imageexportdialog.cpp | 105 + .../imageexport/kivio_imageexportdialog.h | 51 + .../imageexport/kivio_imageexportwidget.ui | 203 + filters/kpresenter/Makefile.am | 1 + filters/kpresenter/bmp/Makefile.am | 24 + filters/kpresenter/bmp/bmpexport.cpp | 81 + filters/kpresenter/bmp/bmpexport.h | 38 + .../bmp/kpresenter_bmp_export.desktop | 53 + filters/kpresenter/jpeg/Makefile.am | 24 + filters/kpresenter/jpeg/jpegexport.cpp | 82 + filters/kpresenter/jpeg/jpegexport.h | 38 + .../jpeg/kpresenter_jpeg_export.desktop | 52 + filters/kpresenter/kword/Makefile.am | 12 + filters/kpresenter/kword/kprkword.cc | 466 + filters/kpresenter/kword/kprkword.desktop | 57 + filters/kpresenter/kword/kprkword.h | 45 + filters/kpresenter/kword/status.html | 88 + filters/kpresenter/libimageexport/Makefile.am | 20 + .../kpresenter/libimageexport/imageexport.cpp | 99 + .../kpresenter/libimageexport/imageexport.h | 45 + filters/kpresenter/magicpoint/Makefile.am | 5 + .../kpresenter_magicpoint_import.desktop | 62 + filters/kpresenter/magicpoint/mgp2kpr.py | 417 + filters/kpresenter/mng/Makefile.am | 24 + .../mng/kpresenter_mng_export.desktop | 52 + filters/kpresenter/mng/mngexport.cpp | 78 + filters/kpresenter/mng/mngexport.h | 38 + filters/kpresenter/ooimpress/Makefile.am | 21 + .../kpresenter_ooimpress_export.desktop | 63 + .../kpresenter_ooimpress_import.desktop | 64 + .../kpresenter/ooimpress/ooimpressexport.cc | 1160 + .../kpresenter/ooimpress/ooimpressexport.h | 92 + .../kpresenter/ooimpress/ooimpressimport.cc | 2433 + .../kpresenter/ooimpress/ooimpressimport.h | 120 + filters/kpresenter/ooimpress/status.html | 227 + filters/kpresenter/ooimpress/stylefactory.cc | 1629 + filters/kpresenter/ooimpress/stylefactory.h | 282 + filters/kpresenter/png/Makefile.am | 24 + .../png/kpresenter_png_export.desktop | 52 + filters/kpresenter/png/pngexport.cpp | 78 + filters/kpresenter/png/pngexport.h | 38 + filters/kpresenter/powerpoint/Makefile.am | 2 + .../kpresenter/powerpoint/import/Makefile.am | 14 + .../kpresenter_powerpoint_import.desktop | 51 + .../powerpoint/import/powerpointimport.cc | 1592 + .../powerpoint/import/powerpointimport.h | 83 + .../kpresenter/powerpoint/libppt/Makefile.am | 5 + filters/kpresenter/powerpoint/libppt/libppt.h | 31 + .../kpresenter/powerpoint/libppt/objects.cpp | 426 + .../kpresenter/powerpoint/libppt/objects.h | 206 + filters/kpresenter/powerpoint/libppt/pole.cpp | 1317 + filters/kpresenter/powerpoint/libppt/pole.h | 177 + .../powerpoint/libppt/powerpoint.cpp | 6201 ++ .../kpresenter/powerpoint/libppt/powerpoint.h | 2533 + .../powerpoint/libppt/presentation.cpp | 91 + .../powerpoint/libppt/presentation.h | 86 + .../kpresenter/powerpoint/libppt/slide.cpp | 138 + filters/kpresenter/powerpoint/libppt/slide.h | 61 + .../kpresenter/powerpoint/libppt/testppt.cpp | 42 + .../kpresenter/powerpoint/libppt/ustring.cpp | 675 + .../kpresenter/powerpoint/libppt/ustring.h | 395 + filters/kpresenter/svg/Makefile.am | 21 + .../svg/kpresenter_svg_export.desktop | 52 + filters/kpresenter/svg/svgexport.cc | 100 + filters/kpresenter/svg/svgexport.h | 38 + filters/kpresenter/xbm/Makefile.am | 24 + .../xbm/kpresenter_xbm_export.desktop | 51 + filters/kpresenter/xbm/xbmexport.cpp | 78 + filters/kpresenter/xbm/xbmexport.h | 38 + filters/kpresenter/xpm/Makefile.am | 24 + .../xpm/kpresenter_xpm_export.desktop | 51 + filters/kpresenter/xpm/xpmexport.cpp | 78 + filters/kpresenter/xpm/xpmexport.h | 38 + filters/krita/Makefile.am | 34 + filters/krita/configure.in.in | 66 + filters/krita/gmagick/Makefile.am | 40 + filters/krita/gmagick/configure.in.bot | 23 + .../gmagick/kis_image_magick_converter.cc | 1142 + .../gmagick/kis_image_magick_converter.h | 103 + filters/krita/gmagick/krita_magick.desktop | 57 + .../krita/gmagick/krita_magick_export.desktop | 55 + .../krita/gmagick/krita_magick_import.desktop | 61 + filters/krita/gmagick/magickexport.cpp | 78 + filters/krita/gmagick/magickexport.h | 36 + filters/krita/gmagick/magickimport.cpp | 105 + filters/krita/gmagick/magickimport.h | 36 + filters/krita/jpeg/Makefile.am | 45 + filters/krita/jpeg/configure.in.bot | 7 + filters/krita/jpeg/iccjpeg.c | 270 + filters/krita/jpeg/iccjpeg.h | 99 + filters/krita/jpeg/kis_jpeg_converter.cc | 542 + filters/krita/jpeg/kis_jpeg_converter.h | 90 + filters/krita/jpeg/kis_jpeg_export.cc | 152 + filters/krita/jpeg/kis_jpeg_export.h | 34 + filters/krita/jpeg/kis_jpeg_import.cc | 105 + filters/krita/jpeg/kis_jpeg_import.h | 33 + filters/krita/jpeg/kis_wdg_options_jpeg.ui | 149 + filters/krita/jpeg/krita_jpeg.desktop | 58 + filters/krita/jpeg/krita_jpeg_export.desktop | 52 + filters/krita/jpeg/krita_jpeg_import.desktop | 52 + filters/krita/libkisexif/Makefile.am | 18 + filters/krita/libkisexif/kis_exif_io.cpp | 177 + filters/krita/libkisexif/kis_exif_io.h | 45 + filters/krita/magick/Makefile.am | 40 + filters/krita/magick/configure.in.bot | 15 + .../magick/kis_image_magick_converter.cc | 1087 + .../krita/magick/kis_image_magick_converter.h | 103 + filters/krita/magick/krita_magick.desktop | 58 + .../krita/magick/krita_magick_export.desktop | 55 + .../krita/magick/krita_magick_import.desktop | 61 + filters/krita/magick/magickexport.cpp | 78 + filters/krita/magick/magickexport.h | 36 + filters/krita/magick/magickimport.cpp | 105 + filters/krita/magick/magickimport.h | 36 + filters/krita/openexr/Makefile.am | 48 + filters/krita/openexr/configure.in.bot | 9 + filters/krita/openexr/kis_openexr_export.cpp | 155 + filters/krita/openexr/kis_openexr_export.h | 37 + filters/krita/openexr/kis_openexr_import.cpp | 160 + filters/krita/openexr/kis_openexr_import.h | 37 + filters/krita/openexr/krita_openexr.desktop | 57 + .../openexr/krita_openexr_export.desktop | 52 + .../openexr/krita_openexr_import.desktop | 52 + filters/krita/pdf/Makefile.am | 28 + filters/krita/pdf/configure.in.bot | 7 + filters/krita/pdf/configure.in.in | 4 + filters/krita/pdf/kis_pdf_import.cpp | 158 + filters/krita/pdf/kis_pdf_import.h | 34 + filters/krita/pdf/kis_pdf_import_widget.cpp | 147 + filters/krita/pdf/kis_pdf_import_widget.h | 54 + filters/krita/pdf/krita_pdf.desktop | 63 + filters/krita/pdf/krita_pdf_import.desktop | 51 + filters/krita/pdf/pdfimportwidgetbase.ui | 321 + filters/krita/png/Makefile.am | 40 + filters/krita/png/configure.in.bot | 8 + filters/krita/png/kis_png_converter.cc | 794 + filters/krita/png/kis_png_converter.h | 81 + filters/krita/png/kis_png_export.cc | 124 + filters/krita/png/kis_png_export.h | 34 + filters/krita/png/kis_png_import.cc | 105 + filters/krita/png/kis_png_import.h | 33 + filters/krita/png/kis_wdg_options_png.ui | 183 + filters/krita/png/krita_png.desktop | 57 + filters/krita/png/krita_png_export.desktop | 51 + filters/krita/png/krita_png_import.desktop | 51 + filters/krita/raw/Makefile.am | 33 + filters/krita/raw/dcraw.1 | 182 + filters/krita/raw/dcraw.c | 5999 ++ filters/krita/raw/kis_raw_import.cpp | 630 + filters/krita/raw/kis_raw_import.h | 70 + filters/krita/raw/krita_raw.desktop | 57 + filters/krita/raw/krita_raw_import.desktop | 51 + filters/krita/raw/wdgrawimport.ui | 496 + filters/krita/tiff/Makefile.am | 49 + filters/krita/tiff/configure.in.bot | 7 + filters/krita/tiff/kis_dlg_options_tiff.cpp | 134 + filters/krita/tiff/kis_dlg_options_tiff.h | 44 + filters/krita/tiff/kis_tiff_converter.cc | 677 + filters/krita/tiff/kis_tiff_converter.h | 93 + filters/krita/tiff/kis_tiff_export.cc | 123 + filters/krita/tiff/kis_tiff_export.h | 34 + filters/krita/tiff/kis_tiff_import.cc | 105 + filters/krita/tiff/kis_tiff_import.h | 33 + filters/krita/tiff/kis_tiff_reader.cc | 121 + filters/krita/tiff/kis_tiff_reader.h | 206 + filters/krita/tiff/kis_tiff_stream.cc | 164 + filters/krita/tiff/kis_tiff_stream.h | 81 + .../krita/tiff/kis_tiff_writer_visitor.cpp | 237 + filters/krita/tiff/kis_tiff_writer_visitor.h | 53 + filters/krita/tiff/kis_tiff_ycbcr_reader.cc | 170 + filters/krita/tiff/kis_tiff_ycbcr_reader.h | 73 + filters/krita/tiff/kis_wdg_options_tiff.ui | 741 + filters/krita/tiff/kis_ycbcr_colorspace.h | 27 + filters/krita/tiff/krita_tiff.desktop | 63 + filters/krita/tiff/krita_tiff_export.desktop | 52 + filters/krita/tiff/krita_tiff_import.desktop | 52 + filters/krita/xcf/Makefile.am | 38 + filters/krita/xcf/krita_xcf_export.desktop | 52 + filters/krita/xcf/krita_xcf_import.desktop | 52 + filters/krita/xcf/xcf/README | 2 + filters/krita/xcf/xcf/xcf-load.cc | 1740 + filters/krita/xcf/xcf/xcf-load.h | 27 + filters/krita/xcf/xcf/xcf-private.h | 95 + filters/krita/xcf/xcf/xcf-read.cc | 118 + filters/krita/xcf/xcf/xcf-read.h | 37 + filters/krita/xcf/xcf/xcf-save.cc | 1826 + filters/krita/xcf/xcf/xcf-save.h | 29 + filters/krita/xcf/xcf/xcf-seek.cc | 79 + filters/krita/xcf/xcf/xcf-seek.h | 30 + filters/krita/xcf/xcf/xcf-write.cc | 104 + filters/krita/xcf/xcf/xcf-write.h | 39 + filters/krita/xcf/xcfexport.cpp | 78 + filters/krita/xcf/xcfexport.h | 36 + filters/krita/xcf/xcfimport.cpp | 99 + filters/krita/xcf/xcfimport.h | 36 + filters/kspread/Makefile.am | 4 + filters/kspread/applixspread/Makefile.am | 17 + .../applixspread/applixspreadimport.cc | 1326 + .../kspread/applixspread/applixspreadimport.h | 79 + .../kspread_applixspread_import.desktop | 68 + filters/kspread/applixspread/status.html | 755 + filters/kspread/csv/DESIGN | 37 + filters/kspread/csv/Makefile.am | 22 + filters/kspread/csv/README | 10 + filters/kspread/csv/TODO | 5 + filters/kspread/csv/csvdialog.cpp | 635 + filters/kspread/csv/csvdialog.h | 89 + filters/kspread/csv/csvexport.cc | 382 + filters/kspread/csv/csvexport.h | 49 + filters/kspread/csv/csvexportdialog.cpp | 332 + filters/kspread/csv/csvexportdialog.h | 72 + filters/kspread/csv/csvimport.cc | 264 + filters/kspread/csv/csvimport.h | 35 + filters/kspread/csv/dialogui.ui | 554 + filters/kspread/csv/exportdialogui.ui | 510 + .../kspread/csv/kspread_csv_export.desktop | 73 + .../kspread/csv/kspread_csv_import.desktop | 72 + filters/kspread/csv/status.html | 202 + filters/kspread/csv/xmltree.cc | 154 + filters/kspread/csv/xmltree.h | 53 + filters/kspread/dbase/Makefile.am | 17 + filters/kspread/dbase/dbase.cpp | 251 + filters/kspread/dbase/dbase.h | 67 + filters/kspread/dbase/dbaseimport.cc | 181 + filters/kspread/dbase/dbaseimport.h | 38 + .../dbase/kspread_dbase_import.desktop | 65 + filters/kspread/dbase/status.html | 164 + filters/kspread/dbase/test/birth.dbf | Bin 0 -> 134 bytes filters/kspread/dbase/test/browser.dbf | Bin 0 -> 167 bytes filters/kspread/dbase/test/stability.dbf | Bin 0 -> 161 bytes filters/kspread/excel/Makefile.am | 15 + filters/kspread/excel/excelexport.cc | 66 + filters/kspread/excel/excelexport.h | 34 + filters/kspread/excel/import/Makefile.am | 17 + filters/kspread/excel/import/README | 61 + filters/kspread/excel/import/excelimport.cc | 2132 + filters/kspread/excel/import/excelimport.h | 45 + .../excel/import/kspread_excel_import.desktop | 61 + .../excel/kspread_excel_export.desktop | 61 + filters/kspread/excel/sidewinder/Makefile.am | 5 + .../excel/sidewinder/README.Sidewinder | 28 + filters/kspread/excel/sidewinder/cell.cpp | 220 + filters/kspread/excel/sidewinder/cell.h | 94 + filters/kspread/excel/sidewinder/excel.cpp | 6428 ++ filters/kspread/excel/sidewinder/excel.h | 3250 + filters/kspread/excel/sidewinder/format.cpp | 717 + filters/kspread/excel/sidewinder/format.h | 761 + filters/kspread/excel/sidewinder/pole.cpp | 1354 + filters/kspread/excel/sidewinder/pole.h | 177 + filters/kspread/excel/sidewinder/sheet.cpp | 450 + filters/kspread/excel/sidewinder/sheet.h | 216 + filters/kspread/excel/sidewinder/swinder.h | 11 + filters/kspread/excel/sidewinder/ustring.cpp | 611 + filters/kspread/excel/sidewinder/ustring.h | 385 + filters/kspread/excel/sidewinder/value.cpp | 391 + filters/kspread/excel/sidewinder/value.h | 290 + filters/kspread/excel/sidewinder/workbook.cpp | 135 + filters/kspread/excel/sidewinder/workbook.h | 109 + filters/kspread/gnumeric/Makefile.am | 21 + filters/kspread/gnumeric/README | 30 + filters/kspread/gnumeric/gnumeric.xsd | 898 + filters/kspread/gnumeric/gnumericexport.cc | 1574 + filters/kspread/gnumeric/gnumericexport.h | 63 + filters/kspread/gnumeric/gnumericimport.cc | 2207 + filters/kspread/gnumeric/gnumericimport.h | 66 + .../gnumeric/kspread_gnumeric_export.desktop | 73 + .../gnumeric/kspread_gnumeric_import.desktop | 74 + filters/kspread/gnumeric/status.html | 304 + filters/kspread/html/CHANGELOG | 11 + filters/kspread/html/Makefile.am | 18 + filters/kspread/html/exportdialog.cc | 113 + filters/kspread/html/exportdialog.h | 63 + filters/kspread/html/exportwidget.ui | 310 + filters/kspread/html/htmlexport.cc | 475 + filters/kspread/html/htmlexport.h | 81 + .../kspread/html/kspread_html_export.desktop | 72 + filters/kspread/html/status.html | 173 + filters/kspread/kexi/Makefile.am | 22 + .../kspread/kexi/kspread_kexi_import.desktop | 45 + filters/kspread/kexi/kspread_kexiimport.cc | 249 + filters/kspread/kexi/kspread_kexiimport.h | 85 + .../kspread/kexi/kspread_kexiimportdialog.cc | 236 + .../kspread/kexi/kspread_kexiimportdialog.h | 127 + .../kexi/kspread_kexiimportdialogbase.ui | 244 + filters/kspread/latex/BUGS | 16 + filters/kspread/latex/Makefile.am | 2 + filters/kspread/latex/TODO | 24 + filters/kspread/latex/export/Changelog | 36 + filters/kspread/latex/export/Makefile.am | 30 + filters/kspread/latex/export/cell.cc | 132 + filters/kspread/latex/export/cell.h | 107 + filters/kspread/latex/export/column.cc | 66 + filters/kspread/latex/export/column.h | 87 + filters/kspread/latex/export/config.cc | 92 + filters/kspread/latex/export/config.h | 147 + filters/kspread/latex/export/document.cc | 66 + filters/kspread/latex/export/document.h | 65 + filters/kspread/latex/export/fileheader.cc | 320 + filters/kspread/latex/export/fileheader.h | 161 + filters/kspread/latex/export/format.cc | 203 + filters/kspread/latex/export/format.h | 186 + filters/kspread/latex/export/formula.cc | 168 + filters/kspread/latex/export/formula.h | 111 + .../latex/export/kspread_latex_export.desktop | 65 + .../latex/export/kspreadlatexexportdiaImpl.cc | 246 + .../latex/export/kspreadlatexexportdiaImpl.h | 56 + filters/kspread/latex/export/latexexport.cc | 63 + filters/kspread/latex/export/latexexport.h | 43 + .../kspread/latex/export/latexexportIface.cc | 45 + .../kspread/latex/export/latexexportIface.h | 43 + .../kspread/latex/export/latexexportdia.ui | 674 + filters/kspread/latex/export/map.cc | 79 + filters/kspread/latex/export/map.h | 90 + filters/kspread/latex/export/pen.cc | 45 + filters/kspread/latex/export/pen.h | 86 + filters/kspread/latex/export/row.cc | 65 + filters/kspread/latex/export/row.h | 87 + filters/kspread/latex/export/spreadsheet.cc | 221 + filters/kspread/latex/export/spreadsheet.h | 95 + filters/kspread/latex/export/table.cc | 414 + filters/kspread/latex/export/table.h | 186 + filters/kspread/latex/export/xmlparser.cc | 139 + filters/kspread/latex/export/xmlparser.h | 79 + filters/kspread/latex/status.html | 188 + .../libkspreadexport/KSpreadBaseWorker.cc | 94 + .../libkspreadexport/KSpreadBaseWorker.h | 45 + .../kspread/libkspreadexport/KSpreadLeader.cc | 359 + .../kspread/libkspreadexport/KSpreadLeader.h | 105 + filters/kspread/libkspreadexport/Makefile.am | 18 + filters/kspread/opencalc/Makefile.am | 21 + .../opencalc/kspread_opencalc_export.desktop | 59 + .../opencalc/kspread_opencalc_import.desktop | 62 + filters/kspread/opencalc/opencalcexport.cc | 1329 + filters/kspread/opencalc/opencalcexport.h | 89 + filters/kspread/opencalc/opencalcimport.cc | 2826 + filters/kspread/opencalc/opencalcimport.h | 119 + .../kspread/opencalc/opencalcstyleexport.cc | 546 + .../kspread/opencalc/opencalcstyleexport.h | 167 + filters/kspread/opencalc/status.html | 208 + filters/kspread/qpro/Makefile.am | 22 + .../kspread/qpro/kspread_qpro_import.desktop | 74 + filters/kspread/qpro/libqpro/AUTHORS | 3 + filters/kspread/qpro/libqpro/COPYING | 340 + filters/kspread/qpro/libqpro/ChangeLog | 119 + filters/kspread/qpro/libqpro/INSTALL | 182 + filters/kspread/qpro/libqpro/Makefile.am | 3 + filters/kspread/qpro/libqpro/NEWS | 0 filters/kspread/qpro/libqpro/README | 31 + filters/kspread/qpro/libqpro/TODO | 11 + filters/kspread/qpro/libqpro/libqpro.lsm | 23 + filters/kspread/qpro/libqpro/qpro/Makefile.am | 1 + filters/kspread/qpro/libqpro/qpro/common.h | 11 + filters/kspread/qpro/libqpro/qpro/formula.h | 128 + filters/kspread/qpro/libqpro/qpro/record.h | 280 + .../qpro/libqpro/qpro/record_factory.h | 19 + filters/kspread/qpro/libqpro/qpro/stream.h | 72 + .../kspread/qpro/libqpro/qpro/tablenames.h | 23 + filters/kspread/qpro/libqpro/src/Makefile.am | 5 + filters/kspread/qpro/libqpro/src/formula.cc | 550 + filters/kspread/qpro/libqpro/src/record.cc | 665 + .../qpro/libqpro/src/record_factory.cc | 83 + filters/kspread/qpro/libqpro/src/stream.cc | 226 + .../kspread/qpro/libqpro/src/tablenames.cc | 72 + filters/kspread/qpro/qproformula.cc | 64 + filters/kspread/qpro/qproformula.h | 18 + filters/kspread/qpro/qproimport.cc | 263 + filters/kspread/qpro/qproimport.h | 55 + filters/kspread/qpro/status.html | 178 + filters/kugar/Makefile.am | 1 + filters/kugar/kugarnop/Makefile.am | 24 + .../kugar/kugarnop/kugar_kugar_import.desktop | 64 + filters/kugar/kugarnop/kugarnopimport.cpp | 51 + filters/kugar/kugarnop/kugarnopimport.h | 34 + filters/kword/Makefile.am | 7 + filters/kword/abiword/CHANGES | 9 + filters/kword/abiword/FileFormats.html | 124 + filters/kword/abiword/ImportField.cc | 216 + filters/kword/abiword/ImportField.h | 31 + filters/kword/abiword/ImportFormatting.cc | 421 + filters/kword/abiword/ImportFormatting.h | 132 + filters/kword/abiword/ImportHelpers.cc | 109 + filters/kword/abiword/ImportHelpers.h | 85 + filters/kword/abiword/ImportStyle.cc | 128 + filters/kword/abiword/ImportStyle.h | 51 + filters/kword/abiword/Makefile.am | 26 + filters/kword/abiword/NOTES | 34 + filters/kword/abiword/TODO | 1 + filters/kword/abiword/abiwordexport.cc | 1261 + filters/kword/abiword/abiwordexport.h | 51 + filters/kword/abiword/abiwordimport.cc | 1875 + filters/kword/abiword/abiwordimport.h | 54 + .../abiword/kword_abiword_export.desktop | 73 + .../abiword/kword_abiword_import.desktop | 73 + filters/kword/abiword/status.html | 219 + filters/kword/amipro/FileFormat.txt | 225 + filters/kword/amipro/Makefile.am | 22 + filters/kword/amipro/amiproexport.cc | 203 + filters/kword/amipro/amiproexport.h | 40 + filters/kword/amipro/amiproimport.cc | 368 + filters/kword/amipro/amiproimport.h | 52 + filters/kword/amipro/amiproparser.cpp | 760 + filters/kword/amipro/amiproparser.h | 151 + .../kword/amipro/kword_amipro_export.desktop | 68 + .../kword/amipro/kword_amipro_import.desktop | 68 + filters/kword/amipro/status.html | 170 + filters/kword/amipro/test/README | 21 + filters/kword/amipro/test/align.sam | 722 + filters/kword/amipro/test/format.sam | 729 + filters/kword/amipro/test/plain.sam | 710 + filters/kword/amipro/test/textfrm.sam | 825 + filters/kword/amipro/test/umlaut.sam | 709 + filters/kword/applixword/Makefile.am | 17 + filters/kword/applixword/applixwordimport.cc | 790 + filters/kword/applixword/applixwordimport.h | 67 + .../kword_applixword_import.desktop | 72 + filters/kword/applixword/status.html | 205 + filters/kword/ascii/ExportDialog.cc | 110 + filters/kword/ascii/ExportDialog.h | 43 + filters/kword/ascii/ExportDialogUI.ui | 160 + filters/kword/ascii/ImportDialog.cc | 111 + filters/kword/ascii/ImportDialog.h | 42 + filters/kword/ascii/ImportDialogUI.ui | 149 + filters/kword/ascii/Makefile.am | 28 + filters/kword/ascii/TODO | 3 + filters/kword/ascii/asciiexport.cc | 545 + filters/kword/ascii/asciiexport.h | 36 + filters/kword/ascii/asciiimport.cc | 1035 + filters/kword/ascii/asciiimport.h | 102 + .../kword/ascii/kword_ascii_export.desktop | 73 + .../kword/ascii/kword_ascii_import.desktop | 56 + filters/kword/ascii/status.html | 203 + filters/kword/docbook/Makefile.am | 18 + filters/kword/docbook/docbookexport.cc | 809 + filters/kword/docbook/docbookexport.h | 42 + .../docbook/kword_docbook_export.desktop | 72 + filters/kword/docbook/status.html | 157 + filters/kword/hancomword/Makefile.am | 17 + filters/kword/hancomword/hancomwordimport.cpp | 296 + filters/kword/hancomword/hancomwordimport.h | 44 + .../kword_hancomword_import.desktop | 66 + filters/kword/hancomword/pole.cpp | 1317 + filters/kword/hancomword/pole.h | 177 + filters/kword/html/Makefile.am | 1 + filters/kword/html/export/CHANGELOG | 6 + filters/kword/html/export/ExportBasic.cc | 366 + filters/kword/html/export/ExportBasic.h | 55 + filters/kword/html/export/ExportCss.cc | 718 + filters/kword/html/export/ExportCss.h | 68 + filters/kword/html/export/ExportDialog.cc | 145 + filters/kword/html/export/ExportDialog.h | 55 + filters/kword/html/export/ExportDialogUI.ui | 290 + filters/kword/html/export/ExportDocStruct.cc | 165 + filters/kword/html/export/ExportDocStruct.h | 48 + filters/kword/html/export/ExportFilter.cc | 654 + filters/kword/html/export/ExportFilter.h | 104 + filters/kword/html/export/Makefile.am | 22 + filters/kword/html/export/htmlexport.cc | 127 + filters/kword/html/export/htmlexport.h | 44 + .../html/export/kword_html_export.desktop | 73 + filters/kword/html/import/Makefile.am | 20 + filters/kword/html/import/htmlimport.cpp | 60 + filters/kword/html/import/htmlimport.h | 42 + filters/kword/html/import/khtmlreader.cpp | 717 + filters/kword/html/import/khtmlreader.h | 102 + filters/kword/html/import/kwdwriter.cpp | 587 + filters/kword/html/import/kwdwriter.h | 221 + .../html/import/kword_html_import.desktop | 73 + filters/kword/html/import/test/bigtest.htm | 55 + filters/kword/html/import/test/brtest.htm | 1 + filters/kword/html/import/test/colortest.htm | 55 + filters/kword/html/import/test/heading.htm | 52 + filters/kword/html/import/test/heading2.htm | 11 + .../html/import/test/headingbelowultest.htm | 15 + .../import/test/newlinesbetween1and2test.htm | 60 + .../kword/html/import/test/newlinetest.htm | 55 + filters/kword/html/import/test/pretext.htm | 6 + .../import/test/stylealigninsertslinefeed.htm | 62 + .../html/import/test/stylefontsizetest.htm | 55 + .../import/test/styletextaligncentertest.htm | 56 + filters/kword/html/import/test/ullevel.htm | 14 + filters/kword/html/import/test/ullevel2.htm | 5 + filters/kword/html/import/test/ultest.htm | 12 + filters/kword/html/import/test/ultext.htm | 13 + filters/kword/html/import/test/ultext2.htm | 10 + filters/kword/html/status.html | 215 + filters/kword/kword1.3/Makefile.am | 2 + filters/kword/kword1.3/import/CHANGELOG | 1 + filters/kword/kword1.3/import/Makefile.am | 24 + filters/kword/kword1.3/import/README | 40 + filters/kword/kword1.3/import/TESTFILES.xml | 269 + filters/kword/kword1.3/import/TODO | 88 + .../kword/kword1.3/import/kword13document.cpp | 264 + .../kword/kword1.3/import/kword13document.h | 80 + .../kword/kword1.3/import/kword13format.cpp | 40 + filters/kword/kword1.3/import/kword13format.h | 51 + .../kword1.3/import/kword13formatone.cpp | 85 + .../kword/kword1.3/import/kword13formatone.h | 81 + .../kword1.3/import/kword13formatother.cpp | 43 + .../kword1.3/import/kword13formatother.h | 55 + .../kword/kword1.3/import/kword13frameset.cpp | 102 + .../kword/kword1.3/import/kword13frameset.h | 74 + .../kword/kword1.3/import/kword13import.cpp | 252 + filters/kword/kword1.3/import/kword13import.h | 47 + .../kword/kword1.3/import/kword13layout.cpp | 77 + filters/kword/kword1.3/import/kword13layout.h | 43 + .../kword1.3/import/kword13oasisgenerator.cpp | 985 + .../kword1.3/import/kword13oasisgenerator.h | 71 + .../kword1.3/import/kword13paragraph.cpp | 49 + .../kword/kword1.3/import/kword13paragraph.h | 45 + .../kword/kword1.3/import/kword13parser.cpp | 929 + filters/kword/kword1.3/import/kword13parser.h | 136 + .../kword/kword1.3/import/kword13picture.cpp | 86 + .../kword/kword1.3/import/kword13picture.h | 43 + .../kword1.3/import/kword13postparsing.cpp | 68 + .../kword1.3/import/kword13postparsing.h | 39 + .../kword/kword1.3/import/kword13utils.cpp | 48 + filters/kword/kword1.3/import/kword13utils.h | 4 + .../import/kword_kword1dot3_import.desktop | 61 + .../kword/kword1.3/import/uninstall.desktop | 2 + filters/kword/latex/BUGS | 16 + filters/kword/latex/Makefile.am | 3 + filters/kword/latex/TODO | 61 + filters/kword/latex/export/Changelog | 157 + filters/kword/latex/export/MARKUPS | 284 + filters/kword/latex/export/Makefile.am | 28 + filters/kword/latex/export/anchor.cc | 68 + filters/kword/latex/export/anchor.h | 90 + filters/kword/latex/export/border.h | 187 + filters/kword/latex/export/config.cc | 92 + filters/kword/latex/export/config.h | 147 + filters/kword/latex/export/document.cc | 451 + filters/kword/latex/export/document.h | 113 + filters/kword/latex/export/element.cc | 115 + filters/kword/latex/export/element.h | 175 + filters/kword/latex/export/fileheader.cc | 325 + filters/kword/latex/export/fileheader.h | 161 + filters/kword/latex/export/footnote.cc | 154 + filters/kword/latex/export/footnote.h | 96 + filters/kword/latex/export/format.cc | 40 + filters/kword/latex/export/format.h | 114 + filters/kword/latex/export/formula.cc | 182 + filters/kword/latex/export/formula.h | 111 + filters/kword/latex/export/key.cc | 75 + filters/kword/latex/export/key.h | 122 + .../latex/export/kword_latex_export.desktop | 75 + .../kword/latex/export/kwordlatexexportdia.cc | 247 + .../kword/latex/export/kwordlatexexportdia.h | 55 + filters/kword/latex/export/latexexport.cc | 63 + filters/kword/latex/export/latexexport.h | 43 + .../kword/latex/export/latexexportIface.cc | 45 + filters/kword/latex/export/latexexportIface.h | 43 + filters/kword/latex/export/latexexportdia.ui | 674 + filters/kword/latex/export/layout.cc | 170 + filters/kword/latex/export/layout.h | 150 + filters/kword/latex/export/listeformat.cc | 161 + filters/kword/latex/export/listeformat.h | 218 + filters/kword/latex/export/listelement.cc | 77 + filters/kword/latex/export/listelement.h | 108 + filters/kword/latex/export/listepara.cc | 81 + filters/kword/latex/export/listepara.h | 107 + filters/kword/latex/export/listtable.cc | 81 + filters/kword/latex/export/listtable.h | 62 + filters/kword/latex/export/para.cc | 680 + filters/kword/latex/export/para.h | 200 + filters/kword/latex/export/pixmapFrame.cc | 200 + filters/kword/latex/export/pixmapFrame.h | 102 + filters/kword/latex/export/table.cc | 323 + filters/kword/latex/export/table.h | 107 + filters/kword/latex/export/texlauncher.cc | 26 + filters/kword/latex/export/textFrame.cc | 295 + filters/kword/latex/export/textFrame.h | 135 + filters/kword/latex/export/textformat.cc | 286 + filters/kword/latex/export/textformat.h | 164 + filters/kword/latex/export/textzone.cc | 498 + filters/kword/latex/export/textzone.h | 108 + filters/kword/latex/export/variableformat.cc | 164 + filters/kword/latex/export/variableformat.h | 162 + filters/kword/latex/export/variablezone.cc | 140 + filters/kword/latex/export/variablezone.h | 75 + filters/kword/latex/export/xml2latexparser.cc | 72 + filters/kword/latex/export/xml2latexparser.h | 59 + filters/kword/latex/export/xmlparser.cc | 149 + filters/kword/latex/export/xmlparser.h | 88 + filters/kword/latex/import/ChangeLog | 5 + filters/kword/latex/import/Makefile.am | 28 + filters/kword/latex/import/config.cc | 14 + filters/kword/latex/import/config.h | 44 + .../kword/latex/import/generator/Makefile.am | 14 + filters/kword/latex/import/generator/body.cc | 53 + filters/kword/latex/import/generator/body.h | 79 + .../kword/latex/import/generator/document.cc | 94 + .../kword/latex/import/generator/document.h | 78 + .../latex/import/generator/kwordgenerator.cc | 46 + .../latex/import/generator/kwordgenerator.h | 49 + filters/kword/latex/import/generator/latex.cc | 44 + filters/kword/latex/import/generator/latex.h | 47 + .../kword/latex/import/generator/paragraph.cc | 52 + .../kword/latex/import/generator/paragraph.h | 66 + .../latex/import/kword_latex_import.desktop | 65 + filters/kword/latex/import/lateximport.cc | 64 + filters/kword/latex/import/lateximport.h | 44 + filters/kword/latex/import/lateximportdia.cc | 170 + filters/kword/latex/import/lateximportdia.h | 85 + filters/kword/latex/import/parser/Makefile.am | 32 + filters/kword/latex/import/parser/command.cc | 143 + filters/kword/latex/import/parser/command.h | 91 + filters/kword/latex/import/parser/comment.cc | 40 + filters/kword/latex/import/parser/comment.h | 46 + filters/kword/latex/import/parser/element.cc | 12 + filters/kword/latex/import/parser/element.h | 59 + filters/kword/latex/import/parser/env.cc | 66 + filters/kword/latex/import/parser/env.h | 50 + filters/kword/latex/import/parser/group.cc | 12 + filters/kword/latex/import/parser/group.h | 18 + .../kword/latex/import/parser/latexparser.cc | 28 + .../kword/latex/import/parser/latexparser.h | 50 + filters/kword/latex/import/parser/main.cc | 29 + filters/kword/latex/import/parser/option.h | 27 + filters/kword/latex/import/parser/param.cc | 54 + filters/kword/latex/import/parser/param.h | 49 + filters/kword/latex/import/parser/stack.h | 42 + filters/kword/latex/import/parser/texparser.l | 166 + .../kword/latex/import/parser/texparser.lex | 156 + filters/kword/latex/import/parser/texscaner.y | 310 + filters/kword/latex/import/parser/text.cc | 39 + filters/kword/latex/import/parser/text.h | 46 + filters/kword/latex/status.html | 371 + filters/kword/libexport/CHANGES | 11 + filters/kword/libexport/KWEFBaseWorker.cc | 204 + filters/kword/libexport/KWEFBaseWorker.h | 89 + filters/kword/libexport/KWEFKWordLeader.cc | 1430 + filters/kword/libexport/KWEFKWordLeader.h | 107 + filters/kword/libexport/KWEFStructures.cc | 208 + filters/kword/libexport/KWEFStructures.h | 560 + filters/kword/libexport/KWEFUtil.cc | 205 + filters/kword/libexport/KWEFUtil.h | 41 + filters/kword/libexport/Makefile.am | 19 + filters/kword/libexport/ProcessDocument.cc | 1063 + filters/kword/libexport/ProcessDocument.h | 51 + filters/kword/libexport/TODO | 2 + filters/kword/libexport/TagProcessing.cc | 235 + filters/kword/libexport/TagProcessing.h | 167 + filters/kword/msword/Makefile.am | 17 + filters/kword/msword/README | 31 + filters/kword/msword/configure.in.bot | 10 + filters/kword/msword/configure.in.in | 51 + filters/kword/msword/conversion.cpp | 458 + filters/kword/msword/conversion.h | 97 + filters/kword/msword/document.cpp | 519 + filters/kword/msword/document.h | 136 + filters/kword/msword/graphicshandler.cpp | 79 + filters/kword/msword/graphicshandler.h | 59 + .../kword/msword/kword_msword_import.desktop | 64 + filters/kword/msword/missing | 14 + filters/kword/msword/mswordimport.cpp | 108 + filters/kword/msword/mswordimport.h | 41 + filters/kword/msword/tablehandler.cpp | 228 + filters/kword/msword/tablehandler.h | 108 + filters/kword/msword/texthandler.cpp | 838 + filters/kword/msword/texthandler.h | 136 + filters/kword/msword/versionmagic.h | 31 + filters/kword/mswrite/IMPERFECT | 125 + filters/kword/mswrite/ImportDialog.cc | 116 + filters/kword/mswrite/ImportDialog.h | 45 + filters/kword/mswrite/ImportDialogUI.ui | 256 + filters/kword/mswrite/Makefile.am | 33 + filters/kword/mswrite/ROADMAP | 21 + filters/kword/mswrite/config.libmswrite.h | 40 + .../mswrite/kword_mswrite_export.desktop | 62 + .../mswrite/kword_mswrite_import.desktop | 67 + filters/kword/mswrite/libmswrite.cpp | 1226 + filters/kword/mswrite/libmswrite.h | 378 + filters/kword/mswrite/libmswrite_defs.cpp | 29 + filters/kword/mswrite/libmswrite_defs.h | 604 + filters/kword/mswrite/list.h | 376 + filters/kword/mswrite/mswriteexport.cc | 1975 + filters/kword/mswrite/mswriteexport.h | 36 + filters/kword/mswrite/mswriteimport.cc | 1484 + filters/kword/mswrite/mswriteimport.h | 50 + filters/kword/mswrite/status.html | 247 + filters/kword/mswrite/structures.cpp | 1083 + filters/kword/mswrite/structures.h | 630 + .../kword/mswrite/structures_generated.cpp | 2255 + filters/kword/mswrite/structures_generated.h | 1294 + filters/kword/mswrite/structures_private.cpp | 1622 + filters/kword/mswrite/structures_private.h | 370 + filters/kword/oowriter/CHANGES | 9 + filters/kword/oowriter/ExportFilter.cc | 2229 + filters/kword/oowriter/ExportFilter.h | 174 + filters/kword/oowriter/Makefile.am | 26 + filters/kword/oowriter/README | 9 + filters/kword/oowriter/TODO | 11 + filters/kword/oowriter/conversion.cc | 134 + filters/kword/oowriter/conversion.h | 56 + .../oowriter/kword_oowriter_export.desktop | 59 + .../oowriter/kword_oowriter_import.desktop | 62 + filters/kword/oowriter/oowriterexport.cc | 90 + filters/kword/oowriter/oowriterexport.h | 51 + filters/kword/oowriter/oowriterimport.cc | 2516 + filters/kword/oowriter/oowriterimport.h | 131 + filters/kword/palmdoc/Makefile.am | 21 + .../palmdoc/kword_palmdoc_export.desktop | 68 + .../palmdoc/kword_palmdoc_import.desktop | 68 + filters/kword/palmdoc/palmdb.cpp | 344 + filters/kword/palmdoc/palmdb.h | 79 + filters/kword/palmdoc/palmdoc.cpp | 285 + filters/kword/palmdoc/palmdoc.h | 52 + filters/kword/palmdoc/palmdocexport.cc | 137 + filters/kword/palmdoc/palmdocexport.h | 50 + filters/kword/palmdoc/palmdocimport.cc | 214 + filters/kword/palmdoc/palmdocimport.h | 58 + filters/kword/palmdoc/status.html | 174 + filters/kword/pdf/CHANGELOG | 29 + filters/kword/pdf/DESIGN | 78 + filters/kword/pdf/FilterDevice.cpp | 463 + filters/kword/pdf/FilterDevice.h | 124 + filters/kword/pdf/FilterPage.cpp | 603 + filters/kword/pdf/FilterPage.h | 90 + filters/kword/pdf/LICENSE | 18 + filters/kword/pdf/Makefile.am | 18 + filters/kword/pdf/README | 21 + filters/kword/pdf/README.xpdf | 31 + filters/kword/pdf/TODO | 25 + filters/kword/pdf/data.cpp | 217 + filters/kword/pdf/data.h | 87 + filters/kword/pdf/dialog.cpp | 192 + filters/kword/pdf/dialog.h | 102 + filters/kword/pdf/diffs/goo_enable-final.diff | 108 + filters/kword/pdf/diffs/goo_gfile.diff | 84 + .../kword/pdf/diffs/xpdf_TextOutputDev.diff | 141 + filters/kword/pdf/diffs/xpdf_includes.diff | 48 + .../diffs/xpdf_security_integer_overflow.diff | 102 + .../xpdf_security_integer_overflow_2.diff | 147 + filters/kword/pdf/fstring.cpp | 199 + filters/kword/pdf/fstring.h | 129 + filters/kword/pdf/kword_pdf_import.desktop | 61 + filters/kword/pdf/misc.cpp | 434 + filters/kword/pdf/misc.h | 199 + filters/kword/pdf/pdfdocument.cpp | 200 + filters/kword/pdf/pdfdocument.h | 75 + filters/kword/pdf/pdfimport.cpp | 179 + filters/kword/pdf/pdfimport.h | 46 + filters/kword/pdf/status.html | 101 + filters/kword/pdf/transform.cpp | 480 + filters/kword/pdf/transform.h | 82 + filters/kword/pdf/xpdf/ANNOUNCE | 34 + filters/kword/pdf/xpdf/CHANGES | 1112 + filters/kword/pdf/xpdf/COPYING | 339 + filters/kword/pdf/xpdf/Makefile.am | 1 + filters/kword/pdf/xpdf/README | 443 + filters/kword/pdf/xpdf/configure.in.in | 16 + filters/kword/pdf/xpdf/goo/GHash.cc | 238 + filters/kword/pdf/xpdf/goo/GHash.h | 66 + filters/kword/pdf/xpdf/goo/GList.cc | 89 + filters/kword/pdf/xpdf/goo/GList.h | 88 + filters/kword/pdf/xpdf/goo/GString.cc | 233 + filters/kword/pdf/xpdf/goo/GString.h | 98 + filters/kword/pdf/xpdf/goo/Makefile.am | 7 + filters/kword/pdf/xpdf/goo/aconf.h | 31 + filters/kword/pdf/xpdf/goo/gfile.cc | 700 + filters/kword/pdf/xpdf/goo/gfile.h | 139 + filters/kword/pdf/xpdf/goo/gmem.c | 204 + filters/kword/pdf/xpdf/goo/gmem.h | 53 + filters/kword/pdf/xpdf/goo/gmempp.cc | 32 + filters/kword/pdf/xpdf/goo/gtypes.h | 29 + filters/kword/pdf/xpdf/goo/parseargs.c | 190 + filters/kword/pdf/xpdf/goo/parseargs.h | 71 + filters/kword/pdf/xpdf/xpdf/Annot.cc | 139 + filters/kword/pdf/xpdf/xpdf/Annot.h | 69 + filters/kword/pdf/xpdf/xpdf/Array.cc | 54 + filters/kword/pdf/xpdf/xpdf/Array.h | 58 + filters/kword/pdf/xpdf/xpdf/BuiltinFont.cc | 65 + filters/kword/pdf/xpdf/xpdf/BuiltinFont.h | 57 + .../kword/pdf/xpdf/xpdf/BuiltinFontTables.cc | 3367 + .../kword/pdf/xpdf/xpdf/BuiltinFontTables.h | 23 + filters/kword/pdf/xpdf/xpdf/CMap.cc | 360 + filters/kword/pdf/xpdf/xpdf/CMap.h | 95 + filters/kword/pdf/xpdf/xpdf/Catalog.cc | 371 + filters/kword/pdf/xpdf/xpdf/Catalog.h | 89 + .../kword/pdf/xpdf/xpdf/CharCodeToUnicode.cc | 392 + .../kword/pdf/xpdf/xpdf/CharCodeToUnicode.h | 90 + filters/kword/pdf/xpdf/xpdf/CharTypes.h | 24 + .../kword/pdf/xpdf/xpdf/CompactFontTables.h | 464 + filters/kword/pdf/xpdf/xpdf/Decrypt.cc | 401 + filters/kword/pdf/xpdf/xpdf/Decrypt.h | 61 + filters/kword/pdf/xpdf/xpdf/Dict.cc | 91 + filters/kword/pdf/xpdf/xpdf/Dict.h | 77 + .../kword/pdf/xpdf/xpdf/DisplayFontTable.h | 29 + filters/kword/pdf/xpdf/xpdf/Error.cc | 38 + filters/kword/pdf/xpdf/xpdf/Error.h | 23 + filters/kword/pdf/xpdf/xpdf/ErrorCodes.h | 24 + filters/kword/pdf/xpdf/xpdf/FTFont.cc | 685 + filters/kword/pdf/xpdf/xpdf/FTFont.h | 135 + .../kword/pdf/xpdf/xpdf/FontEncodingTables.cc | 1824 + .../kword/pdf/xpdf/xpdf/FontEncodingTables.h | 20 + filters/kword/pdf/xpdf/xpdf/FontFile.cc | 3883 + filters/kword/pdf/xpdf/xpdf/FontFile.h | 230 + filters/kword/pdf/xpdf/xpdf/Function.cc | 1521 + filters/kword/pdf/xpdf/xpdf/Function.h | 183 + filters/kword/pdf/xpdf/xpdf/Gfx.cc | 2782 + filters/kword/pdf/xpdf/xpdf/Gfx.h | 261 + filters/kword/pdf/xpdf/xpdf/GfxFont.cc | 1301 + filters/kword/pdf/xpdf/xpdf/GfxFont.h | 300 + filters/kword/pdf/xpdf/xpdf/GfxState.cc | 2338 + filters/kword/pdf/xpdf/xpdf/GfxState.h | 961 + filters/kword/pdf/xpdf/xpdf/GlobalParams.cc | 1112 + filters/kword/pdf/xpdf/xpdf/GlobalParams.h | 287 + filters/kword/pdf/xpdf/xpdf/ImageOutputDev.cc | 194 + filters/kword/pdf/xpdf/xpdf/ImageOutputDev.h | 76 + filters/kword/pdf/xpdf/xpdf/JBIG2Stream.cc | 3513 + filters/kword/pdf/xpdf/xpdf/JBIG2Stream.h | 143 + filters/kword/pdf/xpdf/xpdf/Lexer.cc | 474 + filters/kword/pdf/xpdf/xpdf/Lexer.h | 77 + filters/kword/pdf/xpdf/xpdf/Link.cc | 735 + filters/kword/pdf/xpdf/xpdf/Link.h | 371 + filters/kword/pdf/xpdf/xpdf/Makefile.am | 14 + filters/kword/pdf/xpdf/xpdf/NameToCharCode.cc | 116 + filters/kword/pdf/xpdf/xpdf/NameToCharCode.h | 42 + .../kword/pdf/xpdf/xpdf/NameToUnicodeTable.h | 1097 + filters/kword/pdf/xpdf/xpdf/Object.cc | 225 + filters/kword/pdf/xpdf/xpdf/Object.h | 303 + filters/kword/pdf/xpdf/xpdf/Outline.cc | 140 + filters/kword/pdf/xpdf/xpdf/Outline.h | 74 + filters/kword/pdf/xpdf/xpdf/OutputDev.cc | 103 + filters/kword/pdf/xpdf/xpdf/OutputDev.h | 160 + filters/kword/pdf/xpdf/xpdf/PBMOutputDev.cc | 162 + filters/kword/pdf/xpdf/xpdf/PBMOutputDev.h | 64 + filters/kword/pdf/xpdf/xpdf/PDFDoc.cc | 288 + filters/kword/pdf/xpdf/xpdf/PDFDoc.h | 170 + filters/kword/pdf/xpdf/xpdf/PDFDocEncoding.cc | 44 + filters/kword/pdf/xpdf/xpdf/PDFDocEncoding.h | 16 + filters/kword/pdf/xpdf/xpdf/PSOutputDev.cc | 3325 + filters/kword/pdf/xpdf/xpdf/PSOutputDev.h | 246 + filters/kword/pdf/xpdf/xpdf/PSTokenizer.cc | 135 + filters/kword/pdf/xpdf/xpdf/PSTokenizer.h | 41 + filters/kword/pdf/xpdf/xpdf/Page.cc | 341 + filters/kword/pdf/xpdf/xpdf/Page.h | 166 + filters/kword/pdf/xpdf/xpdf/Parser.cc | 223 + filters/kword/pdf/xpdf/xpdf/Parser.h | 60 + filters/kword/pdf/xpdf/xpdf/SFont.cc | 81 + filters/kword/pdf/xpdf/xpdf/SFont.h | 142 + filters/kword/pdf/xpdf/xpdf/Stream-CCITT.h | 459 + filters/kword/pdf/xpdf/xpdf/Stream.cc | 4544 + filters/kword/pdf/xpdf/xpdf/Stream.h | 842 + filters/kword/pdf/xpdf/xpdf/T1Font.cc | 535 + filters/kword/pdf/xpdf/xpdf/T1Font.h | 110 + filters/kword/pdf/xpdf/xpdf/TTFont.cc | 480 + filters/kword/pdf/xpdf/xpdf/TTFont.h | 129 + filters/kword/pdf/xpdf/xpdf/TextOutputDev.cc | 1243 + filters/kword/pdf/xpdf/xpdf/TextOutputDev.h | 282 + filters/kword/pdf/xpdf/xpdf/UTF8.h | 56 + filters/kword/pdf/xpdf/xpdf/UnicodeMap.cc | 268 + filters/kword/pdf/xpdf/xpdf/UnicodeMap.h | 116 + .../kword/pdf/xpdf/xpdf/UnicodeMapTables.h | 361 + filters/kword/pdf/xpdf/xpdf/XOutputDev.cc | 3690 + filters/kword/pdf/xpdf/xpdf/XOutputDev.h | 668 + filters/kword/pdf/xpdf/xpdf/XPDFApp.cc | 386 + filters/kword/pdf/xpdf/xpdf/XPDFApp.h | 104 + filters/kword/pdf/xpdf/xpdf/XPDFCore.cc | 1913 + filters/kword/pdf/xpdf/xpdf/XPDFCore.h | 296 + filters/kword/pdf/xpdf/xpdf/XPDFTree.cc | 929 + filters/kword/pdf/xpdf/xpdf/XPDFTree.h | 43 + filters/kword/pdf/xpdf/xpdf/XPDFTreeP.h | 85 + filters/kword/pdf/xpdf/xpdf/XPDFViewer.cc | 2318 + filters/kword/pdf/xpdf/xpdf/XPDFViewer.h | 236 + .../kword/pdf/xpdf/xpdf/XPixmapOutputDev.cc | 84 + .../kword/pdf/xpdf/xpdf/XPixmapOutputDev.h | 63 + filters/kword/pdf/xpdf/xpdf/XRef.cc | 693 + filters/kword/pdf/xpdf/xpdf/XRef.h | 123 + filters/kword/pdf/xpdf/xpdf/about-text.h | 47 + filters/kword/pdf/xpdf/xpdf/pdffonts.cc | 281 + filters/kword/pdf/xpdf/xpdf/pdfimages.cc | 154 + filters/kword/pdf/xpdf/xpdf/pdfinfo.cc | 304 + filters/kword/pdf/xpdf/xpdf/pdftopbm.cc | 146 + filters/kword/pdf/xpdf/xpdf/pdftops.cc | 306 + filters/kword/pdf/xpdf/xpdf/pdftotext.cc | 322 + filters/kword/pdf/xpdf/xpdf/xpdf.cc | 289 + filters/kword/pdf/xpdf/xpdf/xpdf_config.h | 109 + filters/kword/rtf/Makefile.am | 1 + filters/kword/rtf/export/CHANGELOG | 3 + filters/kword/rtf/export/ExportFilter.cc | 1717 + filters/kword/rtf/export/ExportFilter.h | 110 + filters/kword/rtf/export/Makefile.am | 20 + .../kword/rtf/export/kword_rtf_export.desktop | 71 + filters/kword/rtf/export/rtfexport.cc | 87 + filters/kword/rtf/export/rtfexport.h | 44 + filters/kword/rtf/import/CHANGELOG | 5 + filters/kword/rtf/import/Makefile.am | 18 + .../kword/rtf/import/kword_rtf_import.desktop | 73 + filters/kword/rtf/import/rtfimport.cpp | 2624 + filters/kword/rtf/import/rtfimport.h | 575 + filters/kword/rtf/import/rtfimport_dom.cpp | 344 + filters/kword/rtf/import/rtfimport_dom.h | 129 + .../kword/rtf/import/rtfimport_tokenizer.cpp | 223 + .../kword/rtf/import/rtfimport_tokenizer.h | 62 + filters/kword/rtf/status.html | 228 + filters/kword/starwriter/Makefile.am | 16 + filters/kword/starwriter/README | 23 + .../kword_starwriter_import.desktop | 64 + filters/kword/starwriter/pole.cpp | 1026 + filters/kword/starwriter/pole.h | 129 + filters/kword/starwriter/starwriterimport.cc | 425 + filters/kword/starwriter/starwriterimport.h | 73 + filters/kword/starwriter/status.html | 58 + filters/kword/wml/Makefile.am | 21 + filters/kword/wml/WML11.DTD | 706 + filters/kword/wml/kword_wml_export.desktop | 67 + filters/kword/wml/kword_wml_import.desktop | 67 + filters/kword/wml/status.html | 166 + filters/kword/wml/test.wml | 72 + filters/kword/wml/wmlexport.cc | 167 + filters/kword/wml/wmlexport.h | 50 + filters/kword/wml/wmlimport.cc | 278 + filters/kword/wml/wmlimport.h | 52 + filters/kword/wml/wmlparser.cpp | 477 + filters/kword/wml/wmlparser.h | 68 + filters/kword/wordperfect/Makefile.am | 5 + filters/kword/wordperfect/README | 29 + filters/kword/wordperfect/configure.in.bot | 8 + filters/kword/wordperfect/configure.in.in | 31 + filters/kword/wordperfect/export/Makefile.am | 14 + .../export/kword_wp_export.desktop | 69 + filters/kword/wordperfect/export/wp5.cc | 214 + filters/kword/wordperfect/export/wp5.h | 48 + filters/kword/wordperfect/export/wp6.cc | 241 + filters/kword/wordperfect/export/wp6.h | 48 + filters/kword/wordperfect/export/wpexport.cc | 81 + filters/kword/wordperfect/export/wpexport.h | 40 + .../wordperfect/import/DocumentElement.cxx | 104 + .../wordperfect/import/DocumentElement.hxx | 99 + .../wordperfect/import/DocumentHandler.hxx | 43 + .../wordperfect/import/FilterInternal.hxx | 36 + .../kword/wordperfect/import/FontStyle.cxx | 51 + .../kword/wordperfect/import/FontStyle.hxx | 47 + .../kword/wordperfect/import/ListStyle.cxx | 162 + .../kword/wordperfect/import/ListStyle.hxx | 95 + filters/kword/wordperfect/import/Makefile.am | 15 + filters/kword/wordperfect/import/PageSpan.cxx | 170 + filters/kword/wordperfect/import/PageSpan.hxx | 67 + .../kword/wordperfect/import/SectionStyle.cxx | 79 + .../kword/wordperfect/import/SectionStyle.hxx | 47 + filters/kword/wordperfect/import/Style.hxx | 58 + .../kword/wordperfect/import/TableStyle.cxx | 161 + .../kword/wordperfect/import/TableStyle.hxx | 75 + .../kword/wordperfect/import/TextRunStyle.cxx | 163 + .../kword/wordperfect/import/TextRunStyle.hxx | 64 + .../import/WordPerfectCollector.cxx | 957 + .../import/WordPerfectCollector.hxx | 195 + .../wordperfect/import/WriterProperties.hxx | 37 + .../import/kword_wp_import.desktop | 71 + .../kword/wordperfect/import/kwordfilter.cpp | 422 + .../kword/wordperfect/import/kwordfilter.h | 45 + filters/kword/wordperfect/import/parser.cpp | 1362 + filters/kword/wordperfect/import/parser.h | 212 + filters/kword/wordperfect/import/wpimport.cc | 352 + filters/kword/wordperfect/import/wpimport.h | 63 + filters/kword/wordperfect/status.html | 325 + filters/kword/wordperfect/status_old.html | 195 + filters/kword/wordperfect/test/barcode.wpd | Bin 0 -> 1667 bytes filters/kword/wordperfect/test/cyrillic.wpd | Bin 0 -> 2737 bytes filters/kword/wordperfect/test/docsummary.wp | Bin 0 -> 623 bytes filters/kword/wordperfect/test/docsummary.wpd | Bin 0 -> 2571 bytes filters/kword/wordperfect/test/fontcolor.wp | Bin 0 -> 1293 bytes filters/kword/wordperfect/test/fontcolor.wpd | Bin 0 -> 2536 bytes filters/kword/wordperfect/test/fontface.wp | Bin 0 -> 4706 bytes filters/kword/wordperfect/test/fontsize.wp | Bin 0 -> 4566 bytes filters/kword/wordperfect/test/formatting.wp | Bin 0 -> 5661 bytes filters/kword/wordperfect/test/formatting.wpd | Bin 0 -> 7835 bytes filters/kword/wordperfect/test/greek.wpd | Bin 0 -> 2581 bytes filters/kword/wordperfect/test/hebrew.wpd | Bin 0 -> 2155 bytes filters/kword/wordperfect/test/iconic.wpd | Bin 0 -> 2767 bytes filters/kword/wordperfect/test/japanese.wpd | Bin 0 -> 1894 bytes .../kword/wordperfect/test/justification.wp | Bin 0 -> 2213 bytes .../kword/wordperfect/test/justification.wpd | Bin 0 -> 4786 bytes filters/kword/wordperfect/test/linespace.wp | Bin 0 -> 1384 bytes filters/kword/wordperfect/test/linespace.wpd | Bin 0 -> 3227 bytes filters/kword/wordperfect/test/math.wpd | Bin 0 -> 2657 bytes filters/kword/wordperfect/test/mathext.wpd | Bin 0 -> 2484 bytes .../kword/wordperfect/test/multinational.wpd | Bin 0 -> 2598 bytes filters/kword/wordperfect/test/pagemargin.wp | Bin 0 -> 517 bytes filters/kword/wordperfect/test/pagemargin.wpd | Bin 0 -> 2271 bytes filters/kword/wordperfect/test/phonetic.wpd | Bin 0 -> 2243 bytes filters/kword/wordperfect/test/readme | 83 + filters/kword/wordperfect/test/table.wp | Bin 0 -> 746 bytes filters/kword/wordperfect/test/table.wpd | Bin 0 -> 3886 bytes filters/kword/wordperfect/test/typeface.wp | Bin 0 -> 3568 bytes filters/kword/wordperfect/test/typeface.wpd | Bin 0 -> 3253 bytes .../kword/wordperfect/test/typographic.wpd | Bin 0 -> 5196 bytes filters/kword/wordperfect/test/umlaut.wp | Bin 0 -> 530 bytes filters/kword/wordperfect/test/umlaut.wpd | Bin 0 -> 2313 bytes filters/libdialogfilter/Makefile.am | 7 + filters/libdialogfilter/exportsizedia.cpp | 271 + filters/libdialogfilter/exportsizedia.h | 77 + filters/liboofilter/Makefile.am | 5 + filters/liboofilter/README | 8 + filters/liboofilter/liststylestack.cc | 60 + filters/liboofilter/liststylestack.h | 84 + filters/liboofilter/ooutils.cc | 627 + filters/liboofilter/ooutils.h | 93 + filters/olefilters/Makefile.am | 22 + filters/olefilters/lib/Makefile.am | 16 + filters/olefilters/lib/filterbase.cc | 91 + filters/olefilters/lib/filterbase.h | 109 + filters/olefilters/lib/klaola.cc | 579 + filters/olefilters/lib/klaola.h | 193 + filters/olefilters/lib/myfile.h | 49 + filters/olefilters/olefilter.cc | 525 + filters/olefilters/olefilter.h | 131 + filters/olefilters/powerpoint97/Makefile.am | 17 + filters/olefilters/powerpoint97/README | 47 + .../ole_powerpoint97_import.desktop | 67 + filters/olefilters/powerpoint97/powerpoint.cc | 1303 + filters/olefilters/powerpoint97/powerpoint.h | 355 + .../powerpoint97/powerpointfilter.cc | 73 + .../powerpoint97/powerpointfilter.h | 47 + filters/olefilters/powerpoint97/pptSlide.cpp | 111 + filters/olefilters/powerpoint97/pptSlide.h | 93 + filters/olefilters/powerpoint97/pptdoc.cc | 87 + filters/olefilters/powerpoint97/pptdoc.h | 82 + filters/olefilters/powerpoint97/pptxml.cc | 317 + filters/olefilters/powerpoint97/pptxml.h | 109 + filters/olefilters/powerpoint97/status.html | 156 + filters/tests/README | 9 + filters/tests/global-filter-test.sh | 169 + filters/xsltfilter/Makefile.am | 1 + filters/xsltfilter/configure.in.bot | 19 + filters/xsltfilter/configure.in.in | 70 + filters/xsltfilter/export/Changelog | 5 + filters/xsltfilter/export/Makefile.am | 27 + filters/xsltfilter/export/TODO | 3 + filters/xsltfilter/export/xsl/Makefile.am | 1 + .../xsltfilter/export/xsl/kword/Makefile.am | 1 + .../export/xsl/kword/xslfo/Makefile.am | 2 + .../xsl/kword/xslfo/kword2xslfo-table.xsl | 140 + .../export/xsl/kword/xslfo/main.xsl | 400 + filters/xsltfilter/export/xslt_export.desktop | 72 + filters/xsltfilter/export/xsltdialog.ui | 221 + filters/xsltfilter/export/xsltexport.cc | 66 + filters/xsltfilter/export/xsltexport.h | 36 + filters/xsltfilter/export/xsltexportdia.cc | 267 + filters/xsltfilter/export/xsltexportdia.h | 62 + filters/xsltfilter/export/xsltproc.cc | 309 + filters/xsltfilter/export/xsltproc.h | 75 + filters/xsltfilter/import/Changelog | 2 + filters/xsltfilter/import/Makefile.am | 24 + filters/xsltfilter/import/TODO | 3 + filters/xsltfilter/import/xslt_import.desktop | 71 + filters/xsltfilter/import/xsltdialog.ui | 221 + filters/xsltfilter/import/xsltimport.cc | 68 + filters/xsltfilter/import/xsltimport.h | 44 + filters/xsltfilter/import/xsltimportdia.cc | 264 + filters/xsltfilter/import/xsltimportdia.h | 64 + filters/xsltfilter/import/xsltproc.cc | 309 + filters/xsltfilter/import/xsltproc.h | 75 + filters/xsltfilter/kword2xslfo.xsl | 377 + filters/xsltfilter/status.html | 213 + install-sh | 238 + interfaces/Makefile.am | 12 + interfaces/koChart.cc | 56 + interfaces/koChart.h | 87 + karbon/AUTHORS | 3 + karbon/CHANGES | 115 + karbon/COPYING.LIB | 510 + karbon/GRAPHICS_MEETING | 9 + karbon/IDEAS | 26 + karbon/Makefile.am | 61 + karbon/README | 50 + karbon/TODO | 101 + karbon/commands/Makefile.am | 55 + karbon/commands/valigncmd.cc | 87 + karbon/commands/valigncmd.h | 54 + karbon/commands/vbooleancmd.cc | 240 + karbon/commands/vbooleancmd.h | 82 + karbon/commands/vcleanupcmd.cc | 58 + karbon/commands/vcleanupcmd.h | 45 + karbon/commands/vclipartcmd.cc | 65 + karbon/commands/vclipartcmd.h | 43 + karbon/commands/vclosepathcmd.cc | 36 + karbon/commands/vclosepathcmd.h | 37 + karbon/commands/vcommand.cc | 384 + karbon/commands/vcommand.h | 318 + karbon/commands/vdeletecmd.cc | 74 + karbon/commands/vdeletecmd.h | 48 + karbon/commands/vdeletenodescmd.cc | 77 + karbon/commands/vdeletenodescmd.h | 46 + karbon/commands/vdistributecmd.cc | 198 + karbon/commands/vdistributecmd.h | 58 + karbon/commands/vfillcmd.cc | 123 + karbon/commands/vfillcmd.h | 62 + karbon/commands/vflattencmd.cc | 82 + karbon/commands/vflattencmd.h | 40 + karbon/commands/vgroupcmd.cc | 100 + karbon/commands/vgroupcmd.h | 50 + karbon/commands/vinsertcmd.cc | 83 + karbon/commands/vinsertcmd.h | 49 + karbon/commands/vlayercmd.cc | 86 + karbon/commands/vlayercmd.h | 59 + karbon/commands/vreplacingcmd.cc | 145 + karbon/commands/vreplacingcmd.h | 55 + karbon/commands/vshapecmd.cc | 71 + karbon/commands/vshapecmd.h | 51 + karbon/commands/vstrokecmd.cc | 193 + karbon/commands/vstrokecmd.h | 69 + karbon/commands/vtextcmd.cc | 40 + karbon/commands/vtextcmd.h | 46 + karbon/commands/vtransformcmd.cc | 491 + karbon/commands/vtransformcmd.h | 136 + karbon/commands/vungroupcmd.cc | 99 + karbon/commands/vungroupcmd.h | 46 + karbon/commands/vzordercmd.cc | 172 + karbon/commands/vzordercmd.h | 56 + karbon/configure.in.bot | 24 + karbon/configure.in.in | 119 + karbon/core/Makefile.am | 73 + karbon/core/vclipgroup.cc | 178 + karbon/core/vclipgroup.h | 64 + karbon/core/vcolor.cc | 358 + karbon/core/vcolor.h | 182 + karbon/core/vcomposite.cc | 775 + karbon/core/vcomposite.h | 244 + karbon/core/vcomposite_iface.cc | 70 + karbon/core/vcomposite_iface.h | 51 + karbon/core/vcursor.cc | 166 + karbon/core/vcursor.h | 74 + karbon/core/vdashpattern.cc | 76 + karbon/core/vdashpattern.h | 62 + karbon/core/vdocument.cc | 323 + karbon/core/vdocument.h | 327 + karbon/core/vfill.cc | 181 + karbon/core/vfill.h | 90 + karbon/core/vfillrule.h | 31 + karbon/core/vglobal.cc | 90 + karbon/core/vglobal.h | 109 + karbon/core/vgradient.cc | 370 + karbon/core/vgradient.h | 129 + karbon/core/vgroup.cc | 398 + karbon/core/vgroup.h | 117 + karbon/core/vgroup_iface.cc | 46 + karbon/core/vgroup_iface.h | 54 + karbon/core/vimage.cc | 158 + karbon/core/vimage.h | 37 + karbon/core/vkarbonplugin.cc | 25 + karbon/core/vkarbonplugin.h | 34 + karbon/core/vlayer.cc | 186 + karbon/core/vlayer.h | 119 + karbon/core/vlayer_iface.cc | 55 + karbon/core/vlayer_iface.h | 47 + karbon/core/vobject.cc | 236 + karbon/core/vobject.h | 299 + karbon/core/vobject_iface.cc | 51 + karbon/core/vobject_iface.h | 70 + karbon/core/vpath.cc | 1153 + karbon/core/vpath.h | 203 + karbon/core/vpattern.cc | 140 + karbon/core/vpattern.h | 73 + karbon/core/vsegment.cc | 1112 + karbon/core/vsegment.h | 432 + karbon/core/vselection.cc | 328 + karbon/core/vselection.h | 209 + karbon/core/vstroke.cc | 265 + karbon/core/vstroke.h | 135 + karbon/core/vtext.cc | 745 + karbon/core/vtext.h | 136 + karbon/core/vtext_iface.cc | 53 + karbon/core/vtext_iface.h | 46 + karbon/core/vvisitor.cc | 114 + karbon/core/vvisitor.h | 152 + karbon/data/Makefile.am | 9 + karbon/data/allcolors.kgr | 25 + karbon/data/karbon.desktop | 70 + karbon/data/karbon.rc | 157 + karbon/data/karbon_module.desktop | 41 + karbon/data/karbon_readonly.rc | 24 + karbon/data/karbonpart.desktop | 115 + karbon/data/simple.kgr | 11 + karbon/dialogs/Makefile.am | 22 + karbon/dialogs/vcolordlg.cc | 45 + karbon/dialogs/vcolordlg.h | 43 + karbon/dialogs/vcolortab.cc | 199 + karbon/dialogs/vcolortab.h | 65 + karbon/dialogs/vconfiguredlg.cc | 461 + karbon/dialogs/vconfiguredlg.h | 163 + karbon/dialogs/vstrokedlg.cc | 216 + karbon/dialogs/vstrokedlg.h | 66 + karbon/dockers/Makefile.am | 36 + karbon/dockers/vcolordocker.cc | 283 + karbon/dockers/vcolordocker.h | 80 + karbon/dockers/vdocumentdocker.cc | 1460 + karbon/dockers/vdocumentdocker.h | 256 + karbon/dockers/vstrokedocker.cc | 211 + karbon/dockers/vstrokedocker.h | 63 + karbon/dockers/vstyledocker.cc | 303 + karbon/dockers/vstyledocker.h | 89 + karbon/dockers/vtransformdocker.cc | 265 + karbon/dockers/vtransformdocker.h | 60 + karbon/karbon.dtd | 97 + karbon/karbon_aboutdata.h | 79 + karbon/karbon_drag.cpp | 122 + karbon/karbon_drag.h | 50 + karbon/karbon_factory.cc | 142 + karbon/karbon_factory.h | 55 + karbon/karbon_factory_init.cc | 23 + karbon/karbon_grid_data.cpp | 59 + karbon/karbon_grid_data.h | 44 + karbon/karbon_part.cc | 679 + karbon/karbon_part.h | 133 + karbon/karbon_part_iface.cc | 119 + karbon/karbon_part_iface.h | 63 + karbon/karbon_resourceserver.cc | 571 + karbon/karbon_resourceserver.h | 169 + karbon/karbon_tool_factory.cc | 30 + karbon/karbon_tool_factory.h | 54 + karbon/karbon_tool_registry.cc | 62 + karbon/karbon_tool_registry.h | 53 + karbon/karbon_view.cc | 1552 + karbon/karbon_view.h | 284 + karbon/karbon_view_iface.cc | 150 + karbon/karbon_view_iface.h | 71 + karbon/main.cc | 48 + karbon/pics/Makefile.am | 4 + .../pics/cr16-action-14_layer_deletelayer.png | Bin 0 -> 375 bytes .../pics/cr16-action-14_layer_lowerlayer.png | Bin 0 -> 347 bytes karbon/pics/cr16-action-14_layer_newlayer.png | Bin 0 -> 425 bytes .../pics/cr16-action-14_layer_novisible.png | Bin 0 -> 789 bytes .../pics/cr16-action-14_layer_raiselayer.png | Bin 0 -> 343 bytes karbon/pics/cr16-action-14_layer_visible.png | Bin 0 -> 817 bytes karbon/pics/cr16-action-14_pencil.png | Bin 0 -> 477 bytes karbon/pics/cr16-action-cap_butt.png | Bin 0 -> 483 bytes karbon/pics/cr16-action-cap_round.png | Bin 0 -> 531 bytes karbon/pics/cr16-action-cap_square.png | Bin 0 -> 479 bytes karbon/pics/cr16-action-colorman.png | Bin 0 -> 662 bytes karbon/pics/cr16-action-helpdocker.png | Bin 0 -> 676 bytes karbon/pics/cr16-action-historydocker.png | Bin 0 -> 670 bytes karbon/pics/cr16-action-join_bevel.png | Bin 0 -> 416 bytes karbon/pics/cr16-action-join_miter.png | Bin 0 -> 465 bytes karbon/pics/cr16-action-join_round.png | Bin 0 -> 482 bytes karbon/pics/cr16-action-layersman.png | Bin 0 -> 602 bytes karbon/pics/cr16-action-locked.png | Bin 0 -> 824 bytes karbon/pics/cr16-action-rotate.png | Bin 0 -> 1040 bytes karbon/pics/cr16-action-shear.png | Bin 0 -> 731 bytes karbon/pics/cr16-action-strokedocker.png | Bin 0 -> 620 bytes karbon/pics/cr16-action-tooloptions.png | Bin 0 -> 649 bytes karbon/pics/cr16-action-translate.png | Bin 0 -> 664 bytes karbon/pics/cr16-action-unlocked.png | Bin 0 -> 384 bytes karbon/pics/cr22-action-14_ellipse.png | Bin 0 -> 736 bytes karbon/pics/cr22-action-14_flatten.png | Bin 0 -> 597 bytes karbon/pics/cr22-action-14_gradient.png | Bin 0 -> 470 bytes karbon/pics/cr22-action-14_image.png | Bin 0 -> 1182 bytes karbon/pics/cr22-action-14_insertknots.png | Bin 0 -> 616 bytes karbon/pics/cr22-action-14_pattern.png | Bin 0 -> 338 bytes karbon/pics/cr22-action-14_pencil.png | Bin 0 -> 333 bytes karbon/pics/cr22-action-14_polygon.png | Bin 0 -> 641 bytes karbon/pics/cr22-action-14_polyline.png | Bin 0 -> 588 bytes karbon/pics/cr22-action-14_rectangle.png | Bin 0 -> 483 bytes karbon/pics/cr22-action-14_rotate.png | Bin 0 -> 1224 bytes karbon/pics/cr22-action-14_roundcorners.png | Bin 0 -> 675 bytes karbon/pics/cr22-action-14_roundrect.png | Bin 0 -> 522 bytes karbon/pics/cr22-action-14_select.png | Bin 0 -> 656 bytes karbon/pics/cr22-action-14_selectnodes.png | Bin 0 -> 765 bytes karbon/pics/cr22-action-14_shear.png | Bin 0 -> 553 bytes karbon/pics/cr22-action-14_sinus.png | Bin 0 -> 719 bytes karbon/pics/cr22-action-14_spiral.png | Bin 0 -> 792 bytes karbon/pics/cr22-action-14_star.png | Bin 0 -> 727 bytes karbon/pics/cr22-action-14_text.png | Bin 0 -> 807 bytes karbon/pics/cr22-action-14_whirl.png | Bin 0 -> 860 bytes karbon/pics/cr22-action-14_zoom.png | Bin 0 -> 727 bytes karbon/pics/cr22-action-colorman.png | Bin 0 -> 702 bytes karbon/pics/cr22-action-gradientdlg.png | Bin 0 -> 786 bytes karbon/pics/cr22-action-outlinedlg.png | Bin 0 -> 799 bytes karbon/pics/cr22-action-pagesetup.png | Bin 0 -> 733 bytes karbon/pics/cr22-action-solidfilldlg.png | Bin 0 -> 913 bytes karbon/pics/hi16-action-linestyle.png | Bin 0 -> 121 bytes karbon/pics/hi16-app-karbon.png | Bin 0 -> 775 bytes karbon/pics/hi22-action-linestyle.png | Bin 0 -> 116 bytes karbon/pics/hi22-app-karbon.png | Bin 0 -> 1147 bytes karbon/pics/hi32-app-karbon.png | Bin 0 -> 1848 bytes karbon/pics/hi48-app-karbon.png | Bin 0 -> 2904 bytes karbon/pics/hisc-app-karbon.svgz | Bin 0 -> 3408 bytes karbon/plugins/Makefile.am | 1 + karbon/plugins/flattenpath/Makefile.am | 15 + .../plugins/flattenpath/flattenpathplugin.cc | 85 + .../plugins/flattenpath/flattenpathplugin.h | 60 + .../plugins/flattenpath/flattenpathplugin.rc | 11 + karbon/plugins/imagetool/Makefile.am | 14 + karbon/plugins/imagetool/imagetoolplugin.cc | 56 + karbon/plugins/imagetool/imagetoolplugin.h | 39 + karbon/plugins/imagetool/imagetoolplugin.rc | 3 + .../plugins/imagetool/karbonimagetool.desktop | 48 + karbon/plugins/imagetool/vimagetool.cc | 132 + karbon/plugins/imagetool/vimagetool.h | 70 + karbon/plugins/insertknots/Makefile.am | 15 + .../plugins/insertknots/insertknotsplugin.cc | 118 + .../plugins/insertknots/insertknotsplugin.h | 75 + .../plugins/insertknots/insertknotsplugin.rc | 11 + karbon/plugins/roundcorners/Makefile.am | 15 + .../roundcorners/roundcornersplugin.cc | 402 + .../plugins/roundcorners/roundcornersplugin.h | 76 + .../roundcorners/roundcornersplugin.rc | 11 + karbon/plugins/shadoweffect/Makefile.am | 15 + .../shadoweffect/shadoweffectplugin.cc | 237 + .../plugins/shadoweffect/shadoweffectplugin.h | 86 + .../shadoweffect/shadoweffectplugin.rc | 11 + .../plugins/shadoweffect/vshadowdecorator.cc | 150 + .../plugins/shadoweffect/vshadowdecorator.h | 64 + karbon/plugins/whirlpinch/Makefile.am | 16 + karbon/plugins/whirlpinch/whirlpinchplugin.cc | 199 + karbon/plugins/whirlpinch/whirlpinchplugin.h | 90 + karbon/plugins/whirlpinch/whirlpinchplugin.rc | 11 + karbon/plugins/zoomtool/Makefile.am | 14 + .../plugins/zoomtool/karbonzoomtool.desktop | 48 + karbon/plugins/zoomtool/vzoomtool.cc | 170 + karbon/plugins/zoomtool/vzoomtool.h | 69 + karbon/plugins/zoomtool/zoomtoolplugin.cc | 56 + karbon/plugins/zoomtool/zoomtoolplugin.h | 41 + karbon/plugins/zoomtool/zoomtoolplugin.rc | 3 + karbon/render/Makefile.am | 34 + karbon/render/art_render_misc.c | 403 + karbon/render/art_render_misc.h | 109 + karbon/render/art_render_pattern.c | 111 + karbon/render/art_render_pattern.h | 58 + karbon/render/art_rgb.c | 174 + karbon/render/art_rgb.h | 44 + karbon/render/art_rgb_affine_private.c | 127 + karbon/render/art_rgb_affine_private.h | 39 + karbon/render/art_rgb_svp.c | 458 + karbon/render/art_rgb_svp.h | 55 + karbon/render/art_rgba_affine.c | 107 + karbon/render/art_rgba_affine.h | 50 + karbon/render/vkopainter.cc | 943 + karbon/render/vkopainter.h | 124 + karbon/render/vpainter.h | 102 + karbon/render/vpainterfactory.cc | 74 + karbon/render/vpainterfactory.h | 48 + karbon/render/vqpainter.cc | 284 + karbon/render/vqpainter.h | 95 + karbon/render/xrgbrender/Makefile.am | 5 + .../xrgbrender/gdk-pixbuf-xlib-drawable.c | 1137 + .../xrgbrender/gdk-pixbuf-xlib-private.h | 39 + .../xrgbrender/gdk-pixbuf-xlib-render.c | 380 + karbon/render/xrgbrender/gdk-pixbuf-xlib.c | 63 + karbon/render/xrgbrender/gdk-pixbuf-xlib.h | 80 + karbon/render/xrgbrender/gdk-pixbuf-xlibrgb.c | 3724 + karbon/render/xrgbrender/gdk-pixbuf-xlibrgb.h | 194 + karbon/shapes/Makefile.am | 29 + karbon/shapes/vellipse.cc | 316 + karbon/shapes/vellipse.h | 63 + karbon/shapes/vpolygon.cc | 185 + karbon/shapes/vpolygon.h | 52 + karbon/shapes/vpolyline.cc | 184 + karbon/shapes/vpolyline.h | 50 + karbon/shapes/vrectangle.cc | 229 + karbon/shapes/vrectangle.h | 54 + karbon/shapes/vsinus.cc | 206 + karbon/shapes/vsinus.h | 51 + karbon/shapes/vspiral.cc | 186 + karbon/shapes/vspiral.h | 60 + karbon/shapes/vstar.cc | 348 + karbon/shapes/vstar.h | 91 + karbon/templates/Makefile.am | 1 + karbon/templates/basic/.directory | 52 + karbon/templates/basic/Makefile.am | 9 + .../basic/cr48-action-template_empty.png | Bin 0 -> 615 bytes .../basic/crsc-action-template_empty.svgz | Bin 0 -> 1438 bytes karbon/templates/basic/empty.desktop | 103 + karbon/templates/basic/empty.karbon | Bin 0 -> 1143 bytes karbon/tests/14.karbon | Bin 0 -> 2768 bytes karbon/tests/README | 1 + karbon/tests/combined.karbon | Bin 0 -> 2731 bytes karbon/tests/dash.karbon | Bin 0 -> 5520 bytes karbon/tests/grad.karbon | Bin 0 -> 10019 bytes karbon/tests/oasis-karbon.sh | 87 + karbon/tests/opacity.karbon | Bin 0 -> 4858 bytes karbon/tests/pat.karbon | Bin 0 -> 6916 bytes karbon/tests/polyline.karbon | Bin 0 -> 4948 bytes karbon/tests/stroke.karbon | Bin 0 -> 3409 bytes karbon/tests/trasparency.karbon | Bin 0 -> 15871 bytes karbon/tools/Makefile.am | 63 + karbon/tools/gradienttoolplugin.rc | 3 + karbon/tools/karbondefaulttools.desktop | 55 + karbon/tools/patterntoolplugin.rc | 3 + karbon/tools/vcurvefit.cc | 565 + karbon/tools/vcurvefit.h | 11 + karbon/tools/vdefaulttools.cc | 87 + karbon/tools/vdefaulttools.h | 41 + karbon/tools/vellipsetool.cc | 279 + karbon/tools/vellipsetool.h | 91 + karbon/tools/vgradienttool.cc | 526 + karbon/tools/vgradienttool.h | 98 + karbon/tools/vpatterntool.cc | 509 + karbon/tools/vpatterntool.h | 116 + karbon/tools/vpenciltool.cc | 411 + karbon/tools/vpenciltool.h | 160 + karbon/tools/vpolygontool.cc | 165 + karbon/tools/vpolygontool.h | 70 + karbon/tools/vpolylinetool.cc | 504 + karbon/tools/vpolylinetool.h | 129 + karbon/tools/vrectangletool.cc | 143 + karbon/tools/vrectangletool.h | 70 + karbon/tools/vrotatetool.cc | 175 + karbon/tools/vrotatetool.h | 63 + karbon/tools/vroundrecttool.cc | 179 + karbon/tools/vroundrecttool.h | 81 + karbon/tools/vselectnodestool.cc | 443 + karbon/tools/vselectnodestool.h | 72 + karbon/tools/vselecttool.cc | 613 + karbon/tools/vselecttool.h | 110 + karbon/tools/vshapetool.cc | 274 + karbon/tools/vshapetool.h | 83 + karbon/tools/vsheartool.cc | 219 + karbon/tools/vsheartool.h | 62 + karbon/tools/vsinustool.cc | 162 + karbon/tools/vsinustool.h | 72 + karbon/tools/vspiraltool.cc | 213 + karbon/tools/vspiraltool.h | 81 + karbon/tools/vstartool.cc | 249 + karbon/tools/vstartool.h | 87 + karbon/tools/vtexttool.cc | 1159 + karbon/tools/vtexttool.h | 287 + karbon/usablity-review.txt | 216 + karbon/visitors/Makefile.am | 28 + karbon/visitors/vcomputeboundingbox.cc | 110 + karbon/visitors/vcomputeboundingbox.h | 58 + karbon/visitors/vdrawselection.cc | 174 + karbon/visitors/vdrawselection.h | 46 + karbon/visitors/vselectiondesc.cc | 62 + karbon/visitors/vselectiondesc.h | 54 + karbon/visitors/vselectnodes.cc | 153 + karbon/visitors/vselectnodes.h | 71 + karbon/visitors/vselectobjects.cc | 273 + karbon/visitors/vselectobjects.h | 71 + karbon/visitors/vtransformnodes.cc | 76 + karbon/visitors/vtransformnodes.h | 43 + karbon/vtool.cc | 279 + karbon/vtool.h | 355 + karbon/vtoolcontroller.cc | 167 + karbon/vtoolcontroller.h | 67 + karbon/widgets/Makefile.am | 53 + karbon/widgets/vcanvas.cc | 380 + karbon/widgets/vcanvas.h | 101 + karbon/widgets/vcolorslider.cc | 149 + karbon/widgets/vcolorslider.h | 141 + karbon/widgets/vgradienttabwidget.cc | 343 + karbon/widgets/vgradienttabwidget.h | 131 + karbon/widgets/vgradientwidget.cc | 309 + karbon/widgets/vgradientwidget.h | 60 + karbon/widgets/vreference.cc | 74 + karbon/widgets/vreference.h | 61 + karbon/widgets/vruler.cc | 332 + karbon/widgets/vruler.h | 77 + karbon/widgets/vselecttoolbar.cc | 124 + karbon/widgets/vselecttoolbar.h | 53 + karbon/widgets/vsmallpreview.cc | 282 + karbon/widgets/vsmallpreview.h | 58 + karbon/widgets/vstatebutton.cc | 49 + karbon/widgets/vstatebutton.h | 45 + karbon/widgets/vstrokefillpreview.cc | 451 + karbon/widgets/vstrokefillpreview.h | 74 + karbon/widgets/vtoolbox.cc | 42 + karbon/widgets/vtoolbox.h | 44 + karbon/widgets/vtranslate.cc | 84 + karbon/widgets/vtranslate.h | 57 + karbon/widgets/vtypebuttonbox.cc | 330 + karbon/widgets/vtypebuttonbox.h | 56 + kchart/AUTHORS | 7 + kchart/CHANGES | 14 + kchart/ChangeLog | 778 + kchart/KChartParamsIface.cc | 464 + kchart/KChartParamsIface.h | 159 + kchart/KChartViewIface.cc | 100 + kchart/KChartViewIface.h | 64 + kchart/Makefile.am | 98 + kchart/TODO | 165 + kchart/csvimportdialog.cc | 633 + kchart/csvimportdialog.h | 91 + kchart/csvimportdialogui.ui | 604 + kchart/kchart.desktop | 113 + kchart/kchart.rc | 56 + kchart/kchartBackgroundPixmapConfigPage.cc | 548 + kchart/kchartBackgroundPixmapConfigPage.h | 77 + kchart/kchartColorConfigPage.cc | 220 + kchart/kchartColorConfigPage.h | 297 + kchart/kchartComboConfigPage.cc | 137 + kchart/kchartComboConfigPage.h | 51 + kchart/kchartConfigDialog.cc | 438 + kchart/kchartConfigDialog.h | 115 + kchart/kchartDataConfigPage.cc | 149 + kchart/kchartDataConfigPage.h | 67 + kchart/kchartDataEditor.cc | 900 + kchart/kchartDataEditor.h | 180 + kchart/kchartFontConfigPage.cc | 308 + kchart/kchartFontConfigPage.h | 81 + kchart/kchartHeaderFooterConfigPage.cc | 182 + kchart/kchartHeaderFooterConfigPage.h | 70 + kchart/kchartLegendConfigPage.cc | 385 + kchart/kchartLegendConfigPage.h | 73 + kchart/kchartLine3dConfigPage.cc | 151 + kchart/kchartLine3dConfigPage.h | 57 + kchart/kchartPageLayout.cc | 120 + kchart/kchartPageLayout.h | 59 + kchart/kchartParameter3dConfigPage.cc | 126 + kchart/kchartParameter3dConfigPage.h | 59 + kchart/kchartParameterConfigPage.cc | 374 + kchart/kchartParameterConfigPage.h | 77 + kchart/kchartParameterPieConfigPage.cc | 109 + kchart/kchartParameterPieConfigPage.h | 64 + kchart/kchartParameterPolarConfigPage.cc | 86 + kchart/kchartParameterPolarConfigPage.h | 53 + kchart/kchartPieConfigPage.cc | 196 + kchart/kchartPieConfigPage.h | 73 + kchart/kchartPrinterDlg.cc | 85 + kchart/kchartPrinterDlg.h | 52 + kchart/kchartSubTypeChartPage.cc | 456 + kchart/kchartSubTypeChartPage.h | 154 + kchart/kchartWizard.cc | 171 + kchart/kchartWizard.h | 71 + kchart/kchartWizardLabelsLegendPage.cc | 340 + kchart/kchartWizardLabelsLegendPage.h | 103 + kchart/kchartWizardSelectChartSubTypePage.cc | 195 + kchart/kchartWizardSelectChartSubTypePage.h | 41 + kchart/kchartWizardSelectChartTypePage.cc | 128 + kchart/kchartWizardSelectChartTypePage.h | 71 + kchart/kchartWizardSelectDataFormatPage.cc | 113 + kchart/kchartWizardSelectDataFormatPage.h | 43 + kchart/kchartWizardSelectDataPage.cc | 33 + kchart/kchartWizardSelectDataPage.h | 24 + kchart/kchartWizardSetupAxesPage.cc | 301 + kchart/kchartWizardSetupAxesPage.h | 64 + kchart/kchartWizardSetupDataPage.cc | 133 + kchart/kchartWizardSetupDataPage.h | 43 + kchart/kchart_aboutdata.h | 51 + kchart/kchart_factory.cc | 82 + kchart/kchart_factory.h | 46 + kchart/kchart_factory_init.cc | 23 + kchart/kchart_params.cc | 1043 + kchart/kchart_params.h | 164 + kchart/kchart_part.cc | 2306 + kchart/kchart_part.h | 152 + kchart/kchart_readonly.rc | 2 + kchart/kchart_view.cc | 764 + kchart/kchart_view.h | 113 + kchart/kchartcolorarray.h | 21 + kchart/kchartpart.desktop | 116 + kchart/kdchart/KDChart.cpp | 491 + kchart/kdchart/KDChart.h | 97 + kchart/kdchart/KDChartAreaPainter.cpp | 80 + kchart/kdchart/KDChartAreaPainter.h | 50 + kchart/kdchart/KDChartAxesPainter.cpp | 4525 + kchart/kdchart/KDChartAxesPainter.h | 220 + kchart/kdchart/KDChartAxisParams.cpp | 3318 + kchart/kdchart/KDChartAxisParams.h | 515 + kchart/kdchart/KDChartAxisParamsWrapper.cpp | 73 + kchart/kdchart/KDChartAxisParamsWrapper.h | 50 + kchart/kdchart/KDChartBWPainter.cpp | 483 + kchart/kdchart/KDChartBWPainter.h | 76 + kchart/kdchart/KDChartBarPainter.cpp | 1707 + kchart/kdchart/KDChartBarPainter.h | 86 + kchart/kdchart/KDChartBaseSeries.cpp | 39 + kchart/kdchart/KDChartBaseSeries.h | 60 + kchart/kdchart/KDChartCustomBox.cpp | 495 + kchart/kdchart/KDChartCustomBox.h | 1043 + kchart/kdchart/KDChartCustomBoxWrapper.cpp | 13 + kchart/kdchart/KDChartCustomBoxWrapper.h | 33 + kchart/kdchart/KDChartDataIntern.cpp | 221 + kchart/kdchart/KDChartDataIntern.h | 432 + kchart/kdchart/KDChartDataRegion.h | 226 + kchart/kdchart/KDChartEnums.cpp | 98 + kchart/kdchart/KDChartEnums.h | 305 + kchart/kdchart/KDChartGlobal.h | 203 + kchart/kdchart/KDChartHiLoPainter.cpp | 390 + kchart/kdchart/KDChartHiLoPainter.h | 71 + kchart/kdchart/KDChartLinesPainter.cpp | 944 + kchart/kdchart/KDChartLinesPainter.h | 86 + kchart/kdchart/KDChartListTable.h | 484 + .../kdchart/KDChartNotEnoughSpaceException.h | 50 + kchart/kdchart/KDChartObjectFactory.cpp | 531 + kchart/kdchart/KDChartObjectFactory.h | 37 + kchart/kdchart/KDChartPainter.cpp | 2984 + kchart/kdchart/KDChartPainter.h | 296 + kchart/kdchart/KDChartParams.cpp | 9564 ++ kchart/kdchart/KDChartParams.h | 2787 + kchart/kdchart/KDChartParamsWrapper.cpp | 73 + kchart/kdchart/KDChartParamsWrapper.h | 175 + kchart/kdchart/KDChartParams_frame.cpp | 288 + kchart/kdchart/KDChartParams_io.cpp | 3333 + kchart/kdchart/KDChartPiePainter.cpp | 831 + kchart/kdchart/KDChartPiePainter.h | 84 + kchart/kdchart/KDChartPlaneSeries.cpp | 138 + kchart/kdchart/KDChartPlaneSeries.h | 69 + kchart/kdchart/KDChartPolarPainter.cpp | 805 + kchart/kdchart/KDChartPolarPainter.h | 78 + kchart/kdchart/KDChartPropertySet.cpp | 384 + kchart/kdchart/KDChartPropertySet.h | 985 + kchart/kdchart/KDChartRingPainter.cpp | 400 + kchart/kdchart/KDChartRingPainter.h | 64 + kchart/kdchart/KDChartSeriesCollection.cpp | 240 + kchart/kdchart/KDChartSeriesCollection.h | 93 + kchart/kdchart/KDChartTable.h | 47 + kchart/kdchart/KDChartTableBase.cpp | 779 + kchart/kdchart/KDChartTableBase.h | 478 + kchart/kdchart/KDChartTableDataWrapper.cpp | 36 + kchart/kdchart/KDChartTableDataWrapper.h | 29 + kchart/kdchart/KDChartTextPiece.cpp | 292 + kchart/kdchart/KDChartTextPiece.h | 101 + kchart/kdchart/KDChartUnknownTypeException.h | 60 + kchart/kdchart/KDChartVectorSeries.cpp | 126 + kchart/kdchart/KDChartVectorSeries.h | 71 + kchart/kdchart/KDChartVectorTable.cpp | 33 + kchart/kdchart/KDChartVectorTable.h | 319 + kchart/kdchart/KDChartWidget.cpp | 438 + kchart/kdchart/KDChartWidget.h | 120 + kchart/kdchart/KDChartWrapperFactory.cpp | 33 + kchart/kdchart/KDChartWrapperFactory.h | 13 + kchart/kdchart/KDDrawText.cpp | 483 + kchart/kdchart/KDDrawText.h | 102 + kchart/kdchart/KDFrame.cpp | 618 + kchart/kdchart/KDFrame.h | 1167 + kchart/kdchart/KDFrameProfileSection.cpp | 95 + kchart/kdchart/KDFrameProfileSection.h | 232 + kchart/kdchart/KDXMLTools.cpp | 809 + kchart/kdchart/KDXMLTools.h | 104 + kchart/kdchart/LICENSE | 349 + kchart/kdchart/Makefile.am | 94 + kchart/kdchart/README | 77 + kchart/kdchart/README_BEFORE_HACKING | 8 + kchart/kdchart/kdchart_export.h | 47 + kchart/main.cc | 50 + kchart/pics/Makefile.am | 17 + kchart/pics/chart_area_normal.png | Bin 0 -> 13143 bytes kchart/pics/chart_area_normal.svgz | Bin 0 -> 1418 bytes kchart/pics/chart_area_percent.png | Bin 0 -> 10371 bytes kchart/pics/chart_area_percent.svgz | Bin 0 -> 1424 bytes kchart/pics/chart_area_stacked.png | Bin 0 -> 13074 bytes kchart/pics/chart_area_stacked.svgz | Bin 0 -> 1422 bytes kchart/pics/chart_bar_beside.png | Bin 0 -> 4395 bytes kchart/pics/chart_bar_beside.svgz | Bin 0 -> 2233 bytes kchart/pics/chart_bar_layer.png | Bin 0 -> 5497 bytes kchart/pics/chart_bar_layer.svgz | Bin 0 -> 2613 bytes kchart/pics/chart_bar_percent.png | Bin 0 -> 5230 bytes kchart/pics/chart_bar_percent.svgz | Bin 0 -> 2755 bytes kchart/pics/chart_hilo_close.png | Bin 0 -> 4505 bytes kchart/pics/chart_hilo_close.svgz | Bin 0 -> 1387 bytes kchart/pics/chart_hilo_normal.png | Bin 0 -> 2961 bytes kchart/pics/chart_hilo_normal.svgz | Bin 0 -> 1311 bytes kchart/pics/chart_hilo_openclose.png | Bin 0 -> 5708 bytes kchart/pics/chart_hilo_openclose.svgz | Bin 0 -> 1451 bytes kchart/pics/chart_legend_bottom.png | Bin 0 -> 1810 bytes kchart/pics/chart_legend_bottom.svgz | Bin 0 -> 1168 bytes kchart/pics/chart_legend_bottomleft.png | Bin 0 -> 1763 bytes kchart/pics/chart_legend_bottomleft.svgz | Bin 0 -> 1201 bytes kchart/pics/chart_legend_bottomleftbottom.png | Bin 0 -> 1823 bytes .../pics/chart_legend_bottomleftbottom.svgz | Bin 0 -> 1631 bytes kchart/pics/chart_legend_bottomleftleft.png | Bin 0 -> 2000 bytes kchart/pics/chart_legend_bottomleftleft.svgz | Bin 0 -> 1578 bytes kchart/pics/chart_legend_bottomright.png | Bin 0 -> 1716 bytes kchart/pics/chart_legend_bottomright.svgz | Bin 0 -> 1196 bytes .../pics/chart_legend_bottomrightbottom.png | Bin 0 -> 1803 bytes .../pics/chart_legend_bottomrightbottom.svgz | Bin 0 -> 1631 bytes kchart/pics/chart_legend_bottomrightright.png | Bin 0 -> 1988 bytes .../pics/chart_legend_bottomrightright.svgz | Bin 0 -> 1576 bytes kchart/pics/chart_legend_left.png | Bin 0 -> 2025 bytes kchart/pics/chart_legend_left.svgz | Bin 0 -> 1116 bytes kchart/pics/chart_legend_nolegend.png | Bin 0 -> 2050 bytes kchart/pics/chart_legend_nolegend.svgz | Bin 0 -> 1417 bytes kchart/pics/chart_legend_right.png | Bin 0 -> 2003 bytes kchart/pics/chart_legend_right.svgz | Bin 0 -> 1111 bytes kchart/pics/chart_legend_top.png | Bin 0 -> 1810 bytes kchart/pics/chart_legend_top.svgz | Bin 0 -> 1173 bytes kchart/pics/chart_legend_topleft.png | Bin 0 -> 1769 bytes kchart/pics/chart_legend_topleft.svgz | Bin 0 -> 1201 bytes kchart/pics/chart_legend_topleftleft.png | Bin 0 -> 1975 bytes kchart/pics/chart_legend_topleftleft.svgz | Bin 0 -> 1581 bytes kchart/pics/chart_legend_toplefttop.png | Bin 0 -> 1808 bytes kchart/pics/chart_legend_toplefttop.svgz | Bin 0 -> 1634 bytes kchart/pics/chart_legend_topright.png | Bin 0 -> 1728 bytes kchart/pics/chart_legend_topright.svgz | Bin 0 -> 1200 bytes kchart/pics/chart_legend_toprightright.png | Bin 0 -> 1932 bytes kchart/pics/chart_legend_toprightright.svgz | Bin 0 -> 1571 bytes kchart/pics/chart_legend_toprighttop.png | Bin 0 -> 1796 bytes kchart/pics/chart_legend_toprighttop.svgz | Bin 0 -> 1637 bytes kchart/pics/chart_legend_vorlage.png | Bin 0 -> 121 bytes kchart/pics/chart_line_normal.png | Bin 0 -> 9782 bytes kchart/pics/chart_line_normal.svgz | Bin 0 -> 1401 bytes kchart/pics/chart_line_percent.png | Bin 0 -> 7878 bytes kchart/pics/chart_line_percent.svgz | Bin 0 -> 1398 bytes kchart/pics/chart_line_stacked.png | Bin 0 -> 9018 bytes kchart/pics/chart_line_stacked.svgz | Bin 0 -> 1407 bytes kchart/pics/chart_polar_normal.png | Bin 0 -> 24921 bytes kchart/pics/chart_polar_normal.svgz | Bin 0 -> 2270 bytes kchart/pics/chart_polar_percent.png | Bin 0 -> 25868 bytes kchart/pics/chart_polar_percent.svgz | Bin 0 -> 2225 bytes kchart/pics/chart_polar_stacked.png | Bin 0 -> 24921 bytes kchart/pics/chart_polar_stacked.svgz | Bin 0 -> 2271 bytes kchart/pics/hi16-app-kchart.png | Bin 0 -> 1119 bytes kchart/pics/hi32-app-kchart.png | Bin 0 -> 2407 bytes kchart/pics/hi48-app-kchart.png | Bin 0 -> 4013 bytes kchart/templates/.directory | 44 + kchart/templates/BarChart.chrt | Bin 0 -> 27432 bytes kchart/templates/BarChart.desktop | 95 + kchart/templates/Empty.chrt | Bin 0 -> 9031 bytes kchart/templates/Empty.desktop | 63 + kchart/templates/Makefile.am | 9 + .../cr48-action-template_barchart.png | Bin 0 -> 1007 bytes .../templates/cr48-action-template_empty.png | Bin 0 -> 615 bytes .../crsc-action-template_barchart.svgz | Bin 0 -> 2011 bytes .../templates/crsc-action-template_empty.svgz | Bin 0 -> 1423 bytes kchart/toolbar/Makefile.am | 3 + kchart/toolbar/crystalsvg/Makefile.am | 3 + .../crystalsvg/cr16-action-chart_area.png | Bin 0 -> 629 bytes .../crystalsvg/cr16-action-chart_area_3d.png | Bin 0 -> 682 bytes .../crystalsvg/cr16-action-chart_bar.png | Bin 0 -> 458 bytes .../crystalsvg/cr16-action-chart_bar_3d.png | Bin 0 -> 558 bytes .../cr16-action-chart_boxwhisker.png | Bin 0 -> 481 bytes .../crystalsvg/cr16-action-chart_hilo.png | Bin 0 -> 452 bytes .../crystalsvg/cr16-action-chart_line.png | Bin 0 -> 632 bytes .../crystalsvg/cr16-action-chart_line_3d.png | Bin 0 -> 723 bytes .../crystalsvg/cr16-action-chart_pie.png | Bin 0 -> 681 bytes .../crystalsvg/cr16-action-chart_pie_3d.png | Bin 0 -> 747 bytes .../crystalsvg/cr16-action-chart_polar.png | Bin 0 -> 854 bytes .../crystalsvg/cr16-action-chart_ring.png | Bin 0 -> 821 bytes .../toolbar/crystalsvg/cr16-action-data.png | Bin 0 -> 690 bytes .../crystalsvg/cr16-action-options.png | Bin 0 -> 1054 bytes .../toolbar/crystalsvg/cr16-action-wizard.png | Bin 0 -> 312 bytes .../crystalsvg/cr22-action-chart_area.png | Bin 0 -> 882 bytes .../crystalsvg/cr22-action-chart_area_3d.png | Bin 0 -> 995 bytes .../crystalsvg/cr22-action-chart_bar.png | Bin 0 -> 516 bytes .../crystalsvg/cr22-action-chart_bar_3d.png | Bin 0 -> 701 bytes .../cr22-action-chart_boxwhisker.png | Bin 0 -> 647 bytes .../crystalsvg/cr22-action-chart_hilo.png | Bin 0 -> 530 bytes .../crystalsvg/cr22-action-chart_line.png | Bin 0 -> 822 bytes .../crystalsvg/cr22-action-chart_line_3d.png | Bin 0 -> 1016 bytes .../crystalsvg/cr22-action-chart_pie.png | Bin 0 -> 951 bytes .../crystalsvg/cr22-action-chart_pie_3d.png | Bin 0 -> 1057 bytes .../crystalsvg/cr22-action-chart_polar.png | Bin 0 -> 1231 bytes .../crystalsvg/cr22-action-chart_ring.png | Bin 0 -> 1192 bytes .../toolbar/crystalsvg/cr22-action-data.png | Bin 0 -> 1075 bytes .../crystalsvg/cr22-action-options.png | Bin 0 -> 3796 bytes .../toolbar/crystalsvg/cr22-action-wizard.png | Bin 0 -> 318 bytes .../crystalsvg/cr32-action-chart_area.png | Bin 0 -> 1258 bytes .../crystalsvg/cr32-action-chart_area_3d.png | Bin 0 -> 1520 bytes .../crystalsvg/cr32-action-chart_bar.png | Bin 0 -> 683 bytes .../crystalsvg/cr32-action-chart_bar_3d.png | Bin 0 -> 955 bytes .../cr32-action-chart_boxwhisker.png | Bin 0 -> 683 bytes .../crystalsvg/cr32-action-chart_hilo.png | Bin 0 -> 755 bytes .../crystalsvg/cr32-action-chart_line.png | Bin 0 -> 1321 bytes .../crystalsvg/cr32-action-chart_line_3d.png | Bin 0 -> 1611 bytes .../crystalsvg/cr32-action-chart_pie.png | Bin 0 -> 1388 bytes .../crystalsvg/cr32-action-chart_pie_3d.png | Bin 0 -> 1594 bytes .../crystalsvg/cr32-action-chart_polar.png | Bin 0 -> 2034 bytes .../crystalsvg/cr32-action-chart_ring.png | Bin 0 -> 1751 bytes .../toolbar/crystalsvg/cr32-action-data.png | Bin 0 -> 1626 bytes .../crystalsvg/cr32-action-options.png | Bin 0 -> 1805 bytes .../toolbar/crystalsvg/cr32-action-wizard.png | Bin 0 -> 1104 bytes .../crystalsvg/cr48-action-chart_area.png | Bin 0 -> 1940 bytes .../crystalsvg/cr48-action-chart_area_3d.png | Bin 0 -> 2509 bytes .../crystalsvg/cr48-action-chart_bar.png | Bin 0 -> 905 bytes .../crystalsvg/cr48-action-chart_bar_3d.png | Bin 0 -> 1345 bytes .../cr48-action-chart_boxwhisker.png | Bin 0 -> 790 bytes .../crystalsvg/cr48-action-chart_hilo.png | Bin 0 -> 1142 bytes .../crystalsvg/cr48-action-chart_line.png | Bin 0 -> 2324 bytes .../crystalsvg/cr48-action-chart_line_3d.png | Bin 0 -> 2739 bytes .../crystalsvg/cr48-action-chart_pie.png | Bin 0 -> 2256 bytes .../crystalsvg/cr48-action-chart_pie_3d.png | Bin 0 -> 2502 bytes .../crystalsvg/cr48-action-chart_polar.png | Bin 0 -> 3214 bytes .../crystalsvg/cr48-action-chart_ring.png | Bin 0 -> 2883 bytes .../crystalsvg/cr48-action-options.png | Bin 0 -> 3569 bytes .../crystalsvg/crsc-action-chart_area.svgz | Bin 0 -> 1652 bytes .../crystalsvg/crsc-action-chart_area_3d.svgz | Bin 0 -> 2112 bytes .../crystalsvg/crsc-action-chart_bar.svgz | Bin 0 -> 2177 bytes .../crystalsvg/crsc-action-chart_bar_3d.svgz | Bin 0 -> 2665 bytes .../crsc-action-chart_boxwhisker.svgz | Bin 0 -> 1747 bytes .../crystalsvg/crsc-action-chart_hilo.svgz | Bin 0 -> 1509 bytes .../crystalsvg/crsc-action-chart_line.svgz | Bin 0 -> 1711 bytes .../crystalsvg/crsc-action-chart_line_3d.svgz | Bin 0 -> 2263 bytes .../crystalsvg/crsc-action-chart_pie.svgz | Bin 0 -> 2077 bytes .../crystalsvg/crsc-action-chart_pie_3d.svgz | Bin 0 -> 2361 bytes .../crystalsvg/crsc-action-chart_polar.svgz | Bin 0 -> 2478 bytes .../crystalsvg/crsc-action-chart_ring.svgz | Bin 0 -> 2150 bytes kchart/toolbar/locolor/Makefile.am | 3 + kchart/toolbar/locolor/lo16-action-areas.png | Bin 0 -> 269 bytes .../toolbar/locolor/lo16-action-areas3d.png | Bin 0 -> 300 bytes kchart/toolbar/locolor/lo16-action-bars.png | Bin 0 -> 219 bytes kchart/toolbar/locolor/lo16-action-bars3d.png | Bin 0 -> 296 bytes kchart/toolbar/locolor/lo16-action-cakes.png | Bin 0 -> 318 bytes .../toolbar/locolor/lo16-action-cakes3d.png | Bin 0 -> 308 bytes kchart/toolbar/locolor/lo16-action-data.png | Bin 0 -> 352 bytes kchart/toolbar/locolor/lo16-action-hilo.png | Bin 0 -> 296 bytes kchart/toolbar/locolor/lo16-action-lines.png | Bin 0 -> 275 bytes .../toolbar/locolor/lo16-action-lines3d.png | Bin 0 -> 346 bytes .../toolbar/locolor/lo16-action-options.png | Bin 0 -> 518 bytes kchart/toolbar/locolor/lo16-action-ring.png | Bin 0 -> 296 bytes kchart/toolbar/locolor/lo16-action-wizard.png | Bin 0 -> 298 bytes kdgantt/KDGanttMinimizeSplitter.cpp | 1575 + kdgantt/KDGanttMinimizeSplitter.h | 184 + kdgantt/KDGanttSemiSizingControl.cpp | 413 + kdgantt/KDGanttSemiSizingControl.h | 90 + kdgantt/KDGanttSizingControl.cpp | 150 + kdgantt/KDGanttSizingControl.h | 62 + kdgantt/KDGanttView.cpp | 4844 + kdgantt/KDGanttView.h | 486 + kdgantt/KDGanttViewEventItem.cpp | 306 + kdgantt/KDGanttViewEventItem.h | 68 + kdgantt/KDGanttViewItem.cpp | 2549 + kdgantt/KDGanttViewItem.h | 245 + kdgantt/KDGanttViewItemDrag.cpp | 140 + kdgantt/KDGanttViewItemDrag.h | 61 + kdgantt/KDGanttViewSubwidgets.cpp | 3865 + kdgantt/KDGanttViewSubwidgets.h | 602 + kdgantt/KDGanttViewSummaryItem.cpp | 377 + kdgantt/KDGanttViewSummaryItem.h | 72 + kdgantt/KDGanttViewTaskItem.cpp | 369 + kdgantt/KDGanttViewTaskItem.h | 71 + kdgantt/KDGanttViewTaskLink.cpp | 1007 + kdgantt/KDGanttViewTaskLink.h | 129 + kdgantt/KDGanttViewTaskLinkGroup.cpp | 387 + kdgantt/KDGanttViewTaskLinkGroup.h | 88 + kdgantt/KDGanttXMLTools.cpp | 772 + kdgantt/KDGanttXMLTools.h | 101 + kdgantt/Makefile.am | 44 + kdgantt/README_BEFORE_HACKING | 9 + kdgantt/itemAttributeDialog.ui | 737 + kdgantt/itemAttributeDialog.ui.h | 535 + kdgantt/qlayoutengine_p.h | 111 + kexi/3rdparty/Makefile.am | 6 + kexi/3rdparty/README.3rdparty | 18 + kexi/3rdparty/configure.in.in | 60 + kexi/3rdparty/kexisql/Makefile.am | 1 + kexi/3rdparty/kexisql/Makefile.msvc | 167 + kexi/3rdparty/kexisql/kexisql.def | 40 + kexi/3rdparty/kexisql/src/Makefile.am | 20 + kexi/3rdparty/kexisql/src/attach.c | 311 + kexi/3rdparty/kexisql/src/auth.c | 219 + kexi/3rdparty/kexisql/src/btree.c | 3584 + kexi/3rdparty/kexisql/src/btree.h | 156 + kexi/3rdparty/kexisql/src/btree_rb.c | 1488 + kexi/3rdparty/kexisql/src/build.c | 2156 + kexi/3rdparty/kexisql/src/copy.c | 110 + kexi/3rdparty/kexisql/src/date.c | 875 + kexi/3rdparty/kexisql/src/delete.c | 393 + kexi/3rdparty/kexisql/src/encode.c | 254 + kexi/3rdparty/kexisql/src/expr.c | 1662 + kexi/3rdparty/kexisql/src/func.c | 658 + kexi/3rdparty/kexisql/src/hash.c | 356 + kexi/3rdparty/kexisql/src/hash.h | 109 + kexi/3rdparty/kexisql/src/insert.c | 919 + kexi/3rdparty/kexisql/src/main.c | 1143 + kexi/3rdparty/kexisql/src/opcodes.c | 140 + kexi/3rdparty/kexisql/src/opcodes.h | 138 + kexi/3rdparty/kexisql/src/os.c | 1845 + kexi/3rdparty/kexisql/src/os.h | 191 + kexi/3rdparty/kexisql/src/pager.c | 2220 + kexi/3rdparty/kexisql/src/pager.h | 107 + kexi/3rdparty/kexisql/src/parse.c | 4035 + kexi/3rdparty/kexisql/src/parse.h | 130 + kexi/3rdparty/kexisql/src/parse.out | 10575 ++ kexi/3rdparty/kexisql/src/parse.y | 866 + .../kexisql/src/patches/shell.c.patch | 217 + kexi/3rdparty/kexisql/src/pragma.c | 712 + kexi/3rdparty/kexisql/src/printf.c | 858 + kexi/3rdparty/kexisql/src/random.c | 97 + kexi/3rdparty/kexisql/src/select.c | 2434 + kexi/3rdparty/kexisql/src/shell.c | 1424 + kexi/3rdparty/kexisql/src/sqlite.h | 868 + kexi/3rdparty/kexisql/src/sqliteInt.h | 1270 + kexi/3rdparty/kexisql/src/sqliteconfig.h | 7 + kexi/3rdparty/kexisql/src/table.c | 203 + kexi/3rdparty/kexisql/src/tclsqlite.c | 1293 + kexi/3rdparty/kexisql/src/threadtest.c | 279 + kexi/3rdparty/kexisql/src/tokenize.c | 679 + kexi/3rdparty/kexisql/src/trigger.c | 764 + kexi/3rdparty/kexisql/src/update.c | 459 + kexi/3rdparty/kexisql/src/util.c | 1135 + kexi/3rdparty/kexisql/src/vacuum.c | 327 + kexi/3rdparty/kexisql/src/vdbe.c | 4917 + kexi/3rdparty/kexisql/src/vdbe.h | 112 + kexi/3rdparty/kexisql/src/vdbeInt.h | 303 + kexi/3rdparty/kexisql/src/vdbeaux.c | 1061 + kexi/3rdparty/kexisql/src/where.c | 1235 + kexi/3rdparty/kexisql/tool/Makefile.am | 1 + kexi/3rdparty/kexisql/tool/diffdb.c | 44 + kexi/3rdparty/kexisql/tool/lemon.c | 4117 + kexi/3rdparty/kexisql/tool/lempar.c | 657 + kexi/3rdparty/kexisql/tool/opcodes.sh | 14 + kexi/3rdparty/kexisql3/Makefile.am | 1 + kexi/3rdparty/kexisql3/Makefile.msvc | 233 + kexi/3rdparty/kexisql3/Makefile.msvc.release | 233 + kexi/3rdparty/kexisql3/README | 37 + kexi/3rdparty/kexisql3/mkdll.sh | 42 + kexi/3rdparty/kexisql3/mkso.sh | 27 + kexi/3rdparty/kexisql3/publish.sh | 113 + kexi/3rdparty/kexisql3/spec.template | 62 + kexi/3rdparty/kexisql3/sqlite3.1 | 229 + kexi/3rdparty/kexisql3/sqlite3.def | 99 + kexi/3rdparty/kexisql3/src/Makefile.am | 61 + kexi/3rdparty/kexisql3/src/alter.c | 557 + kexi/3rdparty/kexisql3/src/analyze.c | 386 + kexi/3rdparty/kexisql3/src/attach.c | 352 + kexi/3rdparty/kexisql3/src/auth.c | 225 + kexi/3rdparty/kexisql3/src/btree.c | 5841 ++ kexi/3rdparty/kexisql3/src/btree.h | 146 + kexi/3rdparty/kexisql3/src/build.c | 2938 + kexi/3rdparty/kexisql3/src/callback.c | 305 + kexi/3rdparty/kexisql3/src/complete.c | 263 + kexi/3rdparty/kexisql3/src/date.c | 996 + kexi/3rdparty/kexisql3/src/delete.c | 445 + kexi/3rdparty/kexisql3/src/expr.c | 2253 + kexi/3rdparty/kexisql3/src/func.c | 1118 + kexi/3rdparty/kexisql3/src/hash.c | 387 + kexi/3rdparty/kexisql3/src/hash.h | 109 + kexi/3rdparty/kexisql3/src/insert.c | 1107 + kexi/3rdparty/kexisql3/src/kexisql.h | 36 + kexi/3rdparty/kexisql3/src/keywordhash.h | 97 + kexi/3rdparty/kexisql3/src/ksqlite2to3 | 38 + kexi/3rdparty/kexisql3/src/legacy.c | 138 + kexi/3rdparty/kexisql3/src/main.c | 1079 + kexi/3rdparty/kexisql3/src/md5.c | 387 + kexi/3rdparty/kexisql3/src/opcodes.c | 140 + kexi/3rdparty/kexisql3/src/opcodes.h | 149 + kexi/3rdparty/kexisql3/src/os.h | 208 + kexi/3rdparty/kexisql3/src/os_common.h | 123 + kexi/3rdparty/kexisql3/src/os_mac.c | 740 + kexi/3rdparty/kexisql3/src/os_mac.h | 46 + kexi/3rdparty/kexisql3/src/os_unix.c | 1462 + kexi/3rdparty/kexisql3/src/os_unix.h | 116 + kexi/3rdparty/kexisql3/src/os_win.c | 1004 + kexi/3rdparty/kexisql3/src/os_win.h | 40 + kexi/3rdparty/kexisql3/src/pager.c | 3636 + kexi/3rdparty/kexisql3/src/pager.h | 116 + kexi/3rdparty/kexisql3/src/parse.c | 3449 + kexi/3rdparty/kexisql3/src/parse.h | 145 + kexi/3rdparty/kexisql3/src/parse.y | 915 + kexi/3rdparty/kexisql3/src/patches/README | 18 + .../kexisql3/src/patches/kexisql-3.2.8.patch | 664 + .../3rdparty/kexisql3/src/patches/mk_patch.sh | 5 + .../kexisql3/src/patches/remove_id.sh | 3 + kexi/3rdparty/kexisql3/src/pragma.c | 935 + kexi/3rdparty/kexisql3/src/prepare.c | 540 + kexi/3rdparty/kexisql3/src/printf.c | 866 + kexi/3rdparty/kexisql3/src/random.c | 100 + kexi/3rdparty/kexisql3/src/select.c | 3127 + kexi/3rdparty/kexisql3/src/shell.c | 1821 + kexi/3rdparty/kexisql3/src/sqlite.h | 1 + kexi/3rdparty/kexisql3/src/sqlite3.h | 1302 + kexi/3rdparty/kexisql3/src/sqliteInt.h | 1666 + kexi/3rdparty/kexisql3/src/sqliteconfig.h | 8 + kexi/3rdparty/kexisql3/src/table.c | 195 + kexi/3rdparty/kexisql3/src/tclsqlite.c | 2079 + kexi/3rdparty/kexisql3/src/tokenize.c | 433 + kexi/3rdparty/kexisql3/src/trigger.c | 802 + kexi/3rdparty/kexisql3/src/update.c | 506 + kexi/3rdparty/kexisql3/src/utf.c | 570 + kexi/3rdparty/kexisql3/src/util.c | 1005 + kexi/3rdparty/kexisql3/src/vacuum.c | 337 + kexi/3rdparty/kexisql3/src/vdbe.c | 4432 + kexi/3rdparty/kexisql3/src/vdbe.h | 131 + kexi/3rdparty/kexisql3/src/vdbeInt.h | 377 + kexi/3rdparty/kexisql3/src/vdbeapi.c | 737 + kexi/3rdparty/kexisql3/src/vdbeaux.c | 1819 + kexi/3rdparty/kexisql3/src/vdbefifo.c | 114 + kexi/3rdparty/kexisql3/src/vdbemem.c | 840 + kexi/3rdparty/kexisql3/src/where.c | 2052 + kexi/3rdparty/kexisql3/version | 1 + kexi/3rdparty/kolibs/KoPageLayoutColumns.cpp | 70 + kexi/3rdparty/kolibs/KoPageLayoutColumns.h | 75 + .../kolibs/KoPageLayoutColumnsBase.ui | 99 + kexi/3rdparty/kolibs/KoPageLayoutHeader.cpp | 73 + kexi/3rdparty/kolibs/KoPageLayoutHeader.h | 44 + .../3rdparty/kolibs/KoPageLayoutHeaderBase.ui | 221 + kexi/3rdparty/kolibs/KoPageLayoutSize.cpp | 343 + kexi/3rdparty/kolibs/KoPageLayoutSize.h | 115 + kexi/3rdparty/kolibs/Makefile.am | 29 + kexi/3rdparty/kolibs/README | 13 + kexi/3rdparty/kolibs/koGlobal.cc | 202 + kexi/3rdparty/kolibs/koGlobal.h | 107 + kexi/3rdparty/kolibs/koPageLayout.cpp | 244 + kexi/3rdparty/kolibs/koPageLayout.h | 260 + kexi/3rdparty/kolibs/koPageLayoutDia.cc | 402 + kexi/3rdparty/kolibs/koPageLayoutDia.h | 200 + kexi/3rdparty/kolibs/koUnit.cc | 219 + kexi/3rdparty/kolibs/koUnit.h | 177 + kexi/3rdparty/kolibs/koUnitWidgets.cc | 454 + kexi/3rdparty/kolibs/koUnitWidgets.h | 246 + kexi/3rdparty/kolibs/koffice_export.h | 2 + kexi/3rdparty/uuid/ChangeLog | 435 + kexi/3rdparty/uuid/Makefile.am | 14 + kexi/3rdparty/uuid/clear.c | 20 + kexi/3rdparty/uuid/compare.c | 32 + kexi/3rdparty/uuid/configure.in | 10 + kexi/3rdparty/uuid/copy.c | 22 + kexi/3rdparty/uuid/gen_uuid.c | 280 + kexi/3rdparty/uuid/gen_uuid_nt.c | 92 + kexi/3rdparty/uuid/isnull.c | 25 + kexi/3rdparty/uuid/libuuid.3.in | 70 + kexi/3rdparty/uuid/pack.c | 46 + kexi/3rdparty/uuid/parse.c | 56 + kexi/3rdparty/uuid/tst_uuid.c | 147 + kexi/3rdparty/uuid/unpack.c | 40 + kexi/3rdparty/uuid/unparse.c | 28 + kexi/3rdparty/uuid/uuid.h | 68 + kexi/3rdparty/uuid/uuid.pro | 24 + kexi/3rdparty/uuid/uuidP.h | 58 + kexi/3rdparty/uuid/uuid_clear.3.in | 35 + kexi/3rdparty/uuid/uuid_compare.3.in | 41 + kexi/3rdparty/uuid/uuid_copy.3.in | 37 + kexi/3rdparty/uuid/uuid_generate.3.in | 81 + kexi/3rdparty/uuid/uuid_is_null.3.in | 37 + kexi/3rdparty/uuid/uuid_parse.3.in | 50 + kexi/3rdparty/uuid/uuid_time.3.in | 52 + kexi/3rdparty/uuid/uuid_time.c | 138 + kexi/3rdparty/uuid/uuid_types.h.in | 51 + kexi/3rdparty/uuid/uuid_unparse.3.in | 40 + kexi/CHANGES | 92 + kexi/Makefile.am | 77 + kexi/Makefile.global | 31 + kexi/README | 43 + kexi/chartable.txt | 444 + kexi/configure.in.in | 5 + kexi/core/Makefile.am | 41 + kexi/core/kexi.cpp | 348 + kexi/core/kexi.h | 147 + kexi/core/kexi_global.cpp | 50 + kexi/core/kexiaboutdata.cpp | 81 + kexi/core/kexiaboutdata.h | 33 + kexi/core/kexiactioncategories.cpp | 149 + kexi/core/kexiactioncategories.h | 108 + kexi/core/kexiactionproxy.cpp | 282 + kexi/core/kexiactionproxy.h | 190 + kexi/core/kexiactionproxy_p.h | 42 + kexi/core/kexiblobbuffer.cpp | 373 + kexi/core/kexiblobbuffer.h | 223 + kexi/core/kexicmdlineargs.h | 181 + kexi/core/kexicontexthelp.cpp | 49 + kexi/core/kexicontexthelp.h | 41 + kexi/core/kexicontexthelp_p.h | 35 + kexi/core/kexidataiteminterface.cpp | 146 + kexi/core/kexidataiteminterface.h | 249 + kexi/core/kexidbconnectionset.cpp | 183 + kexi/core/kexidbconnectionset.h | 77 + kexi/core/kexidbshortcutfile.cpp | 314 + kexi/core/kexidbshortcutfile.h | 124 + kexi/core/kexidialogbase.cpp | 661 + kexi/core/kexidialogbase.h | 352 + kexi/core/kexidragobjects.cpp | 146 + kexi/core/kexidragobjects.h | 82 + kexi/core/kexievents.cpp | 92 + kexi/core/kexievents.h | 100 + kexi/core/kexiguimsghandler.cpp | 176 + kexi/core/kexiguimsghandler.h | 62 + kexi/core/kexiinternalpart.cpp | 209 + kexi/core/kexiinternalpart.h | 159 + kexi/core/keximainwindow.cpp | 36 + kexi/core/keximainwindow.h | 189 + kexi/core/kexipart.cpp | 452 + kexi/core/kexipart.h | 333 + kexi/core/kexipartdatasource.cpp | 49 + kexi/core/kexipartdatasource.h | 72 + kexi/core/kexipartguiclient.h | 56 + kexi/core/kexipartinfo.cpp | 133 + kexi/core/kexipartinfo.h | 160 + kexi/core/kexipartinfo_p.h | 51 + kexi/core/kexipartitem.cpp | 33 + kexi/core/kexipartitem.h | 117 + kexi/core/kexipartmanager.cpp | 280 + kexi/core/kexipartmanager.h | 141 + kexi/core/kexiproject.cpp | 1023 + kexi/core/kexiproject.h | 334 + kexi/core/kexiprojectconnectiondata.cpp | 152 + kexi/core/kexiprojectconnectiondata.h | 69 + kexi/core/kexiprojectdata.cpp | 176 + kexi/core/kexiprojectdata.h | 108 + kexi/core/kexiprojectset.cpp | 112 + kexi/core/kexiprojectset.h | 67 + kexi/core/kexisearchandreplaceiface.cpp | 41 + kexi/core/kexisearchandreplaceiface.h | 106 + kexi/core/kexisharedactionhost.cpp | 291 + kexi/core/kexisharedactionhost.h | 165 + kexi/core/kexisharedactionhost_p.h | 64 + kexi/core/kexistartupdata.cpp | 84 + kexi/core/kexistartupdata.h | 90 + kexi/core/kexistaticpart.cpp | 63 + kexi/core/kexistaticpart.h | 64 + kexi/core/kexitabledesignerinterface.cpp | 28 + kexi/core/kexitabledesignerinterface.h | 104 + kexi/core/kexitemplateloader.cpp | 112 + kexi/core/kexitemplateloader.h | 44 + kexi/core/kexitextmsghandler.cpp | 57 + kexi/core/kexitextmsghandler.h | 37 + kexi/core/kexiuseraction.cpp | 108 + kexi/core/kexiuseraction.h | 81 + kexi/core/kexiuseractionmethod.cpp | 32 + kexi/core/kexiuseractionmethod.h | 42 + kexi/core/kexiviewbase.cpp | 328 + kexi/core/kexiviewbase.h | 280 + kexi/data/Makefile.am | 52 + kexi/data/kde34compat/Makefile.am | 10 + kexi/data/kde34compat/msaccess.magic | 5 + kexi/data/kde34compat/sqlite.magic | 2 + kexi/data/kde34compat/x-sqlite2.desktop | 53 + kexi/data/kde34compat/x-sqlite3.desktop | 53 + kexi/data/kexi.magic | 1 + kexi/data/kexihandler.desktop | 77 + kexi/data/kexirc | 5 + kexi/data/kexiui.rc | 204 + kexi/data/tips | 9 + kexi/data/x-kexi-connectiondata.desktop | 45 + kexi/data/x-kexiproject-shortcut.desktop | 54 + kexi/data/x-kexiproject-sqlite.desktop | 50 + kexi/data/x-kexiproject-sqlite2.desktop | 50 + kexi/data/x-kexiproject-sqlite3.desktop | 50 + kexi/debian/changelog | 73 + kexi/debian/compat | 1 + kexi/debian/control | 45 + kexi/debian/copyright | 25 + kexi/debian/debiandirs | 10 + kexi/debian/kexi-mysql-driver.install | 6 + kexi/debian/kexi-mysql-driver.postinst | 3 + kexi/debian/kexi-mysql-driver.postrm | 4 + kexi/debian/kexi-postgresql-driver.install | 8 + kexi/debian/kexi-postgresql-driver.postinst | 3 + kexi/debian/kexi-postgresql-driver.postrm | 4 + kexi/debian/kexi.install | 124 + kexi/debian/kexi.manpages | 5 + kexi/debian/kexi.menu | 6 + kexi/debian/kexi.postinst | 8 + kexi/debian/kexi.postrm | 9 + kexi/debian/kformdesigner.menu | 6 + kexi/debian/libkexi-dev.install | 5 + kexi/debian/libkexi-dev.postinst | 3 + kexi/debian/libkexi-dev.postrm | 4 + kexi/debian/man/kexi.1 | 266 + kexi/debian/man/kformdesigner.1 | 151 + kexi/debian/man/ksqlite.1 | 230 + kexi/debian/man/ksqlite2.1 | 203 + kexi/debian/man/ksqlite2to3.1 | 22 + kexi/debian/overrides/kexi | 15 + kexi/debian/overrides/kexi-postgresql-driver | 2 + kexi/debian/rules | 32 + kexi/doc/README | 7 + kexi/doc/common/bottom1.png | Bin 0 -> 167 bytes kexi/doc/common/bottom2.png | Bin 0 -> 6978 bytes kexi/doc/common/docheadergears.png | Bin 0 -> 5959 bytes kexi/doc/common/doctop1a-online.png | Bin 0 -> 443 bytes kexi/doc/common/doxygen.css | 147 + kexi/doc/common/footer.html | 14 + kexi/doc/common/grad.png | Bin 0 -> 247 bytes kexi/doc/common/header.html | 34 + kexi/doc/common/headerbg.png | Bin 0 -> 492 bytes kexi/doc/common/kde-common.css | 32 + kexi/doc/common/kde-default.css | 187 + kexi/doc/common/kde-web.css | 178 + kexi/doc/common/kmenu.png | Bin 0 -> 844 bytes kexi/doc/common/shadow.png | Bin 0 -> 212 bytes kexi/doc/common/web-docbottom.png | Bin 0 -> 6761 bytes kexi/doc/dev/CHANGELOG-Kexi-js | 5867 ++ kexi/doc/dev/INTERESTING | 29 + kexi/doc/dev/TODO-Kexi-js | 1098 + kexi/doc/dev/advantages.txt | 17 + kexi/doc/dev/alter_table_type_conversions.ods | Bin 0 -> 13520 bytes kexi/doc/dev/auto_update_service.txt | 29 + kexi/doc/dev/compile_time_options.txt | 158 + kexi/doc/dev/kexi_alter_table.txt | 110 + kexi/doc/dev/kexi_final_mode.txt | 21 + kexi/doc/dev/kexi_general_import_export.txt | 53 + kexi/doc/dev/kexi_guidelines.txt | 35 + kexi/doc/dev/kexi_i18n_guidelines.txt | 39 + kexi/doc/dev/kexi_import.txt | 61 + kexi/doc/dev/kexi_issues.txt | 30 + kexi/doc/dev/kexidb_api_changes.txt | 125 + kexi/doc/dev/kexidb_issues.txt | 211 + kexi/doc/dev/kexidb_sql.txt | 36 + kexi/doc/dev/kexisql_grammar_notes.txt | 62 + kexi/doc/dev/lib_dependency.odg | Bin 0 -> 10317 bytes kexi/doc/dev/lib_dependency.png | Bin 0 -> 19560 bytes kexi/doc/dev/mysql_bugs.txt | 6 + kexi/doc/dev/naming_conventions.txt | 137 + kexi/doc/dev/pgsql_issues.txt | 7 + kexi/doc/dev/settings.txt | 168 + kexi/doc/dev/sql_engine_specifics.txt | 22 + kexi/doc/dev/sqlite_issues.txt | 200 + kexi/doc/dev/tableview_issues.txt | 27 + kexi/doc/handbook/docbook-status.txt | 163 + .../html.tmp/01_01_00_what_is_db.html | 34 + .../html.tmp/01_02_00_db_spreadsheet.html | 206 + .../handbook/html.tmp/01_03_00_design.html | 8 + .../handbook/html.tmp/01_04_00_who_needs.html | 24 + .../html.tmp/01_05_00_db_software.html | 54 + .../html.tmp/02_00_00_idx_intro_to_kexi.html | 7 + .../html.tmp/02_01_00_what_is_kexi.html | 25 + .../html.tmp/02_02_00_features_of_kexi.html | 15 + .../html.tmp/02_03_00_is_kexi_for_me.html | 12 + .../html.tmp/02_04_00_differences.html | 103 + .../html.tmp/04_00_00_idx_basics_kexi.html | 3 + .../html.tmp/04_01_00_project_files.html | 13 + .../html.tmp/04_02_00_running_kexi.html | 25 + .../html.tmp/04_03_00_creating_database.html | 18 + .../html.tmp/04_04_00_project_opening.html | 59 + .../html.tmp/04_05_00_help_on_help.html | 10 + .../04_06_00_main_application_elements.html | 21 + .../html.tmp/04_06_01_project_navigator.html | 33 + .../html.tmp/04_06_02_object_windows.html | 35 + .../html.tmp/04_06_03_property_editor.html | 44 + ...05_00_00_idx_building_simple_database.html | 18 + .../html.tmp/05_01_00_table_designing.html | 109 + .../05_02_00_entering_data_into_tables.html | 38 + .../html.tmp/05_03_00_query_designing.html | 37 + .../html.tmp/05_04_00_form_designing.html | 510 + .../05_05_00_data_entering_into_forms.html | 12 + .../html.tmp/08_00_00_kexi_tuning.html | 11 + kexi/doc/handbook/html.tmp/08_01_00_mdi.html | 20 + .../html.tmp/08_02_00_dock_undock.html | 32 + .../handbook/html.tmp/08_03_00_conf_keys.html | 32 + kexi/doc/handbook/translation-status.txt | 111 + kexi/doc/kexidb/kexidb.doxygen | 220 + kexi/doc/plan/kexi-announce.txt | 42 + kexi/examples/Makefile.am | 5 + kexi/examples/README | 29 + kexi/examples/Simple_Database.kexi.sql | 684 + kexi/examples/build_kexi_file.sh | 33 + kexi/examples/build_kexi_files.sh | 9 + kexi/examples/update_sql_files.sh | 21 + kexi/formeditor/Makefile.am | 34 + kexi/formeditor/TODO | 66 + kexi/formeditor/commands.cpp | 1601 + kexi/formeditor/commands.h | 380 + kexi/formeditor/connectiondialog.cpp | 420 + kexi/formeditor/connectiondialog.h | 114 + kexi/formeditor/container.cpp | 1182 + kexi/formeditor/container.h | 248 + kexi/formeditor/editlistviewdialog.cpp | 460 + kexi/formeditor/editlistviewdialog.h | 93 + kexi/formeditor/events.cpp | 145 + kexi/formeditor/events.h | 78 + kexi/formeditor/factories/Makefile.am | 20 + .../formeditor/factories/containerfactory.cpp | 936 + kexi/formeditor/factories/containerfactory.h | 271 + .../kformdesigner_containers.desktop | 53 + .../kformdesigner_stdwidgets.desktop | 55 + .../formeditor/factories/stdwidgetfactory.cpp | 984 + kexi/formeditor/factories/stdwidgetfactory.h | 99 + kexi/formeditor/form.cpp | 600 + kexi/formeditor/form.h | 397 + kexi/formeditor/formIO.cpp | 1626 + kexi/formeditor/formIO.h | 222 + kexi/formeditor/formmanager.cpp | 1716 + kexi/formeditor/formmanager.h | 496 + kexi/formeditor/kdevelop_plugin/Makefile.am | 21 + .../kdevelop_plugin/kfd_kdev_part.cpp | 694 + .../kdevelop_plugin/kfd_kdev_part.h | 139 + .../kformdesigner_kdev_part.desktop | 50 + .../kdevelop_plugin/kformdesigner_part.rc | 129 + .../kformdesigner_part_shell.rc | 142 + kexi/formeditor/kfdpixmapedit.cpp | 59 + kexi/formeditor/kfdpixmapedit.h | 44 + kexi/formeditor/libactionwidget.cpp | 52 + kexi/formeditor/libactionwidget.h | 60 + kexi/formeditor/objecttree.cpp | 244 + kexi/formeditor/objecttree.h | 184 + kexi/formeditor/objecttreeview.cpp | 377 + kexi/formeditor/objecttreeview.h | 129 + kexi/formeditor/resizehandle.cpp | 339 + kexi/formeditor/resizehandle.h | 102 + kexi/formeditor/richtextdialog.cpp | 210 + kexi/formeditor/richtextdialog.h | 63 + kexi/formeditor/scripting/Makefile.am | 18 + kexi/formeditor/scripting/formscript.cpp | 109 + kexi/formeditor/scripting/formscript.h | 78 + kexi/formeditor/scripting/scriptIO.cpp | 186 + kexi/formeditor/scripting/scriptIO.h | 64 + kexi/formeditor/scripting/scriptmanager.cpp | 70 + kexi/formeditor/scripting/scriptmanager.h | 69 + kexi/formeditor/spring.cpp | 158 + kexi/formeditor/spring.h | 74 + kexi/formeditor/tabstopdialog.cpp | 168 + kexi/formeditor/tabstopdialog.h | 63 + kexi/formeditor/test/Makefile.am | 46 + .../test/cr16-app-kformdesigner.png | Bin 0 -> 493 bytes .../test/cr22-app-kformdesigner.png | Bin 0 -> 733 bytes .../test/cr32-app-kformdesigner.png | Bin 0 -> 1126 bytes kexi/formeditor/test/kfd_mainwindow.cpp | 88 + kexi/formeditor/test/kfd_mainwindow.h | 46 + kexi/formeditor/test/kfd_mainwindow.rc | 26 + kexi/formeditor/test/kfd_part.cpp | 729 + kexi/formeditor/test/kfd_part.h | 142 + kexi/formeditor/test/kformdesigner.desktop | 61 + .../test/kformdesigner_part.desktop | 52 + kexi/formeditor/test/kformdesigner_part.rc | 125 + .../test/kformdesigner_part_shell.rc | 138 + kexi/formeditor/test/main.cpp | 81 + kexi/formeditor/utils.cpp | 184 + kexi/formeditor/utils.h | 113 + kexi/formeditor/widgetfactory.cpp | 725 + kexi/formeditor/widgetfactory.desktop | 53 + kexi/formeditor/widgetfactory.h | 518 + kexi/formeditor/widgetlibrary.cpp | 769 + kexi/formeditor/widgetlibrary.h | 212 + kexi/formeditor/widgetpropertyset.cpp | 1120 + kexi/formeditor/widgetpropertyset.h | 206 + .../widgetwithsubpropertiesinterface.cpp | 98 + .../widgetwithsubpropertiesinterface.h | 72 + kexi/kexi.desktop | 100 + kexi/kexi_export.h | 192 + kexi/kexi_global.h | 70 + kexi/kexi_version.h | 96 + kexi/kexidb/Makefile.am | 64 + kexi/kexidb/admin.cpp | 42 + kexi/kexidb/admin.h | 56 + kexi/kexidb/alter.cpp | 1115 + kexi/kexidb/alter.h | 468 + kexi/kexidb/common.pro | 8 + kexi/kexidb/connection.cpp | 3552 + kexi/kexidb/connection.h | 1198 + kexi/kexidb/connection_p.h | 40 + kexi/kexidb/connectiondata.cpp | 114 + kexi/kexidb/connectiondata.h | 239 + kexi/kexidb/cursor.cpp | 571 + kexi/kexidb/cursor.h | 365 + kexi/kexidb/cursor_p.h | 40 + kexi/kexidb/dbobjectnamevalidator.cpp | 51 + kexi/kexidb/dbobjectnamevalidator.h | 49 + kexi/kexidb/dbproperties.cpp | 148 + kexi/kexidb/dbproperties.h | 67 + kexi/kexidb/driver.cpp | 367 + kexi/kexidb/driver.h | 375 + kexi/kexidb/driver_p.cpp | 129 + kexi/kexidb/driver_p.h | 262 + kexi/kexidb/drivermanager.cpp | 435 + kexi/kexidb/drivermanager.h | 104 + kexi/kexidb/drivermanager_p.h | 94 + kexi/kexidb/drivers/Makefile.am | 11 + kexi/kexidb/drivers/common.pro | 11 + kexi/kexidb/drivers/configure.in.bot | 99 + kexi/kexidb/drivers/configure.in.in | 244 + kexi/kexidb/drivers/drivers.pro | 7 + kexi/kexidb/drivers/mySQL/Makefile.am | 33 + .../drivers/mySQL/kexidb_mysqldriver.desktop | 11 + kexi/kexidb/drivers/mySQL/mySQL.pro | 28 + kexi/kexidb/drivers/mySQL/mysqlconnection.cpp | 208 + kexi/kexidb/drivers/mySQL/mysqlconnection.h | 87 + .../drivers/mySQL/mysqlconnection_p.cpp | 175 + kexi/kexidb/drivers/mySQL/mysqlconnection_p.h | 101 + kexi/kexidb/drivers/mySQL/mysqlcursor.cpp | 218 + kexi/kexidb/drivers/mySQL/mysqlcursor.h | 68 + kexi/kexidb/drivers/mySQL/mysqldriver.cpp | 212 + kexi/kexidb/drivers/mySQL/mysqldriver.h | 59 + kexi/kexidb/drivers/mySQL/mysqlkeywords.cpp | 338 + .../drivers/mySQL/mysqlpreparedstatement.cpp | 298 + .../drivers/mySQL/mysqlpreparedstatement.h | 56 + kexi/kexidb/drivers/odbc/Makefile.am | 21 + .../drivers/odbc/kexidb_odbcdriver.desktop | 54 + kexi/kexidb/drivers/odbc/odbcconnection.cpp | 153 + kexi/kexidb/drivers/odbc/odbcconnection.h | 92 + kexi/kexidb/drivers/odbc/odbcdriver.cpp | 108 + kexi/kexidb/drivers/odbc/odbcdriver.h | 73 + kexi/kexidb/drivers/pqxx/Makefile.am | 22 + kexi/kexidb/drivers/pqxx/README | 18 + .../drivers/pqxx/kexidb_pqxxsqldriver.desktop | 11 + kexi/kexidb/drivers/pqxx/pqxxconnection.cpp | 448 + kexi/kexidb/drivers/pqxx/pqxxconnection.h | 104 + kexi/kexidb/drivers/pqxx/pqxxconnection_p.cpp | 51 + kexi/kexidb/drivers/pqxx/pqxxconnection_p.h | 63 + kexi/kexidb/drivers/pqxx/pqxxcursor.cpp | 339 + kexi/kexidb/drivers/pqxx/pqxxcursor.h | 110 + kexi/kexidb/drivers/pqxx/pqxxdriver.cpp | 181 + kexi/kexidb/drivers/pqxx/pqxxdriver.h | 71 + kexi/kexidb/drivers/pqxx/pqxxkeywords.cpp | 244 + .../drivers/pqxx/pqxxpreparedstatement.cpp | 56 + .../drivers/pqxx/pqxxpreparedstatement.h | 49 + kexi/kexidb/drivers/sqlite/Makefile.am | 27 + kexi/kexidb/drivers/sqlite/driver/sqlite.h | 687 + .../sqlite/kexidb_sqlite3driver.desktop | 56 + kexi/kexidb/drivers/sqlite/sqlite.pro | 10 + kexi/kexidb/drivers/sqlite/sqlite_common.pro | 16 + kexi/kexidb/drivers/sqlite/sqliteadmin.cpp | 64 + kexi/kexidb/drivers/sqlite/sqliteadmin.h | 36 + kexi/kexidb/drivers/sqlite/sqlitealter.cpp | 114 + .../drivers/sqlite/sqliteconnection.cpp | 414 + kexi/kexidb/drivers/sqlite/sqliteconnection.h | 125 + .../drivers/sqlite/sqliteconnection_p.h | 73 + kexi/kexidb/drivers/sqlite/sqlitecursor.cpp | 567 + kexi/kexidb/drivers/sqlite/sqlitecursor.h | 92 + kexi/kexidb/drivers/sqlite/sqlitedriver.cpp | 159 + kexi/kexidb/drivers/sqlite/sqlitedriver.h | 82 + kexi/kexidb/drivers/sqlite/sqlitekeywords.cpp | 39 + .../sqlite/sqlitepreparedstatement.cpp | 242 + .../drivers/sqlite/sqlitepreparedstatement.h | 50 + kexi/kexidb/drivers/sqlite/sqlitevacuum.cpp | 150 + kexi/kexidb/drivers/sqlite/sqlitevacuum.h | 70 + kexi/kexidb/drivers/sqlite2/Makefile.am | 31 + .../sqlite2/kexidb_sqlite2driver.desktop | 57 + kexi/kexidb/drivers/sqlite2/sqlite2.pro | 12 + kexi/kexidb/drivers/sqlite2/sqliteadmin.cpp | 1 + kexi/kexidb/drivers/sqlite2/sqliteadmin.h | 1 + kexi/kexidb/drivers/sqlite2/sqlitealter.cpp | 1 + .../drivers/sqlite2/sqliteconnection.cpp | 1 + .../kexidb/drivers/sqlite2/sqliteconnection.h | 2 + .../drivers/sqlite2/sqliteconnection_p.h | 2 + kexi/kexidb/drivers/sqlite2/sqlitecursor.cpp | 2 + kexi/kexidb/drivers/sqlite2/sqlitecursor.h | 2 + kexi/kexidb/drivers/sqlite2/sqlitedriver.cpp | 2 + kexi/kexidb/drivers/sqlite2/sqlitedriver.h | 2 + .../sqlite2/sqlitepreparedstatement.cpp | 1 + kexi/kexidb/error.h | 138 + kexi/kexidb/expression.cpp | 914 + kexi/kexidb/expression.h | 311 + kexi/kexidb/field.cpp | 726 + kexi/kexidb/field.h | 632 + kexi/kexidb/fieldlist.cpp | 278 + kexi/kexidb/fieldlist.h | 175 + kexi/kexidb/fieldvalidator.cpp | 100 + kexi/kexidb/fieldvalidator.h | 49 + kexi/kexidb/global.cpp | 55 + kexi/kexidb/global.h | 171 + kexi/kexidb/indexschema.cpp | 199 + kexi/kexidb/indexschema.h | 209 + kexi/kexidb/kexidb.pro | 51 + kexi/kexidb/kexidb_driver.desktop | 73 + kexi/kexidb/kexidb_export.h | 61 + kexi/kexidb/keywords.cpp | 92 + kexi/kexidb/lookupfieldschema.cpp | 394 + kexi/kexidb/lookupfieldschema.h | 236 + kexi/kexidb/msghandler.cpp | 62 + kexi/kexidb/msghandler.h | 98 + kexi/kexidb/object.cpp | 191 + kexi/kexidb/object.h | 186 + kexi/kexidb/parser/Makefile.am | 38 + kexi/kexidb/parser/TODO | 9 + kexi/kexidb/parser/extract_tokens.sh | 7 + kexi/kexidb/parser/parser.cpp | 155 + kexi/kexidb/parser/parser.h | 240 + kexi/kexidb/parser/parser_p.cpp | 641 + kexi/kexidb/parser/parser_p.h | 86 + kexi/kexidb/parser/sqlparser.cpp | 3472 + kexi/kexidb/parser/sqlparser.h | 778 + kexi/kexidb/parser/sqlparser.y | 1368 + kexi/kexidb/parser/sqlscanner.cpp | 2051 + kexi/kexidb/parser/sqlscanner.l | 318 + kexi/kexidb/parser/sqltypes.h | 80 + kexi/kexidb/parser/tokens.cpp | 25 + kexi/kexidb/preparedstatement.cpp | 136 + kexi/kexidb/preparedstatement.h | 117 + kexi/kexidb/queryschema.cpp | 1859 + kexi/kexidb/queryschema.h | 832 + kexi/kexidb/queryschemaparameter.cpp | 103 + kexi/kexidb/queryschemaparameter.h | 69 + kexi/kexidb/record.h | 71 + kexi/kexidb/relationship.cpp | 201 + kexi/kexidb/relationship.h | 156 + kexi/kexidb/roweditbuffer.cpp | 129 + kexi/kexidb/roweditbuffer.h | 136 + kexi/kexidb/schemadata.cpp | 55 + kexi/kexidb/schemadata.h | 92 + kexi/kexidb/simplecommandlineapp.cpp | 228 + kexi/kexidb/simplecommandlineapp.h | 86 + kexi/kexidb/tableschema.cpp | 453 + kexi/kexidb/tableschema.h | 210 + kexi/kexidb/transaction.cpp | 165 + kexi/kexidb/transaction.h | 159 + kexi/kexidb/utils.cpp | 1262 + kexi/kexidb/utils.h | 476 + kexi/kexidb/utils_p.h | 59 + kexi/kexiutils/Makefile.am | 24 + kexi/kexiutils/debuggui.cpp | 172 + .../generate_transliteration_table.sh | 75 + kexi/kexiutils/identifier.cpp | 131 + kexi/kexiutils/identifier.h | 61 + kexi/kexiutils/kexiutils_export.h | 33 + kexi/kexiutils/longlongvalidator.cpp | 136 + kexi/kexiutils/longlongvalidator.h | 73 + kexi/kexiutils/styleproxy.cpp | 43 + kexi/kexiutils/styleproxy.h | 175 + kexi/kexiutils/transliteration_table.cpp.bz2 | Bin 0 -> 49597 bytes .../kexiutils/transliteration_table.cpp.patch | 87 + kexi/kexiutils/transliteration_table.h | 8 + kexi/kexiutils/transliteration_table.readme | 54 + kexi/kexiutils/tristate.h | 238 + .../update_transliteration_table_patch.sh | 34 + kexi/kexiutils/utils.cpp | 434 + kexi/kexiutils/utils.h | 267 + kexi/kexiutils/utils_p.h | 54 + kexi/kexiutils/validator.cpp | 118 + kexi/kexiutils/validator.h | 158 + kexi/main.cpp | 37 + kexi/main/Makefile.am | 35 + kexi/main/configure.in.in | 102 + kexi/main/kde2_closebutton.xpm | 22 + kexi/main/kexifinddialog.cpp | 279 + kexi/main/kexifinddialog.h | 130 + kexi/main/kexifinddialogbase.ui | 357 + kexi/main/keximainwindowimpl.cpp | 4641 + kexi/main/keximainwindowimpl.h | 538 + kexi/main/keximainwindowimpl_p.h | 599 + kexi/main/kexinamedialog.cpp | 111 + kexi/main/kexinamedialog.h | 61 + kexi/main/kexinamewidget.cpp | 236 + kexi/main/kexinamewidget.h | 142 + kexi/main/kexinewstuff.cpp | 81 + kexi/main/kexinewstuff.h | 41 + kexi/main/kexistatusbar.cpp | 145 + kexi/main/kexistatusbar.h | 77 + kexi/main/ksplitter.h | 256 + kexi/main/printing/Makefile.am | 32 + .../printing/kexisimpleprintingengine.cpp | 558 + kexi/main/printing/kexisimpleprintingengine.h | 130 + .../printing/kexisimpleprintingpagesetup.cpp | 550 + .../printing/kexisimpleprintingpagesetup.h | 117 + .../kexisimpleprintingpagesetupbase.ui | 447 + kexi/main/printing/kexisimpleprintingpart.cpp | 63 + kexi/main/printing/kexisimpleprintingpart.h | 51 + .../printing/kexisimpleprintpreviewwindow.cpp | 381 + .../printing/kexisimpleprintpreviewwindow.h | 83 + .../printing/kexisimpleprintpreviewwindow_p.h | 55 + kexi/main/startup/KexiConnSelector.cpp | 432 + kexi/main/startup/KexiConnSelector.h | 142 + kexi/main/startup/KexiConnSelectorBase.ui | 285 + kexi/main/startup/KexiDBTitlePage.cpp | 35 + kexi/main/startup/KexiDBTitlePage.h | 42 + kexi/main/startup/KexiDBTitlePageBase.ui | 94 + kexi/main/startup/KexiNewPrjTypeSelector.ui | 94 + kexi/main/startup/KexiNewProjectWizard.cpp | 422 + kexi/main/startup/KexiNewProjectWizard.h | 90 + kexi/main/startup/KexiOpenExistingFile.ui | 127 + kexi/main/startup/KexiProjectSelector.cpp | 297 + kexi/main/startup/KexiProjectSelector.h | 134 + kexi/main/startup/KexiProjectSelectorBase.ui | 128 + kexi/main/startup/KexiServerDBNamePage.ui | 141 + kexi/main/startup/KexiStartup.cpp | 965 + kexi/main/startup/KexiStartup.h | 136 + kexi/main/startup/KexiStartupDialog.cpp | 699 + kexi/main/startup/KexiStartupDialog.h | 185 + .../KexiStartupDialogTemplatesPage.cpp | 157 + .../startup/KexiStartupDialogTemplatesPage.h | 57 + kexi/main/startup/KexiStartupFileDialog.cpp | 422 + kexi/main/startup/KexiStartupFileDialog.h | 132 + .../startup/KexiStartupFileDialogBase_win.h | 67 + .../startup/KexiStartupFileDialog_win.cpp | 476 + kexi/main/startup/KexiStartup_p.cpp | 127 + kexi/main/startup/KexiStartup_p.h | 59 + kexi/main/startup/Makefile.am | 47 + kexi/migration/Makefile.am | 57 + kexi/migration/configure.in.in | 7 + kexi/migration/importoptionsdlg.cpp | 111 + kexi/migration/importoptionsdlg.h | 51 + kexi/migration/importwizard.cpp | 1031 + kexi/migration/importwizard.h | 153 + kexi/migration/keximigrate.cpp | 616 + kexi/migration/keximigrate.h | 314 + kexi/migration/keximigratedata.cpp | 34 + kexi/migration/keximigratedata.h | 59 + kexi/migration/keximigratetest.cpp | 49 + kexi/migration/keximigration_driver.desktop | 59 + kexi/migration/migratemanager.cpp | 384 + kexi/migration/migratemanager.h | 82 + kexi/migration/migratemanager_p.h | 85 + kexi/migration/mysql/Makefile.am | 18 + .../migration/mysql/keximigrate_mysql.desktop | 54 + kexi/migration/mysql/mysqlmigrate.cpp | 522 + kexi/migration/mysql/mysqlmigrate.h | 85 + kexi/migration/pqxx/Makefile.am | 20 + kexi/migration/pqxx/keximigrate_pqxx.desktop | 53 + kexi/migration/pqxx/pg_type.h | 192 + kexi/migration/pqxx/pqxxmigrate.cpp | 660 + kexi/migration/pqxx/pqxxmigrate.h | 120 + kexi/migration/txt/Makefile.am | 18 + kexi/migration/txt/txtmigrate.cpp | 27 + kexi/migration/txt/txtmigrate.h | 33 + kexi/pics/Makefile.am | 34 + kexi/pics/blendkdeicons.sh | 46 + kexi/pics/cp-wiz.png | Bin 0 -> 15836 bytes kexi/pics/cr128-action-form_action.png | Bin 0 -> 7670 bytes kexi/pics/cr16-action-add_field.png | Bin 0 -> 455 bytes kexi/pics/cr16-action-aofit.png | Bin 0 -> 583 bytes kexi/pics/cr16-action-aogrid.png | Bin 0 -> 463 bytes kexi/pics/cr16-action-aopos2grid.png | Bin 0 -> 497 bytes kexi/pics/cr16-action-autofield.png | Bin 0 -> 357 bytes kexi/pics/cr16-action-autonumber.png | Bin 0 -> 263 bytes kexi/pics/cr16-action-business_user.png | Bin 0 -> 767 bytes kexi/pics/cr16-action-button.png | Bin 0 -> 554 bytes kexi/pics/cr16-action-button_no.png | Bin 0 -> 1165 bytes kexi/pics/cr16-action-check.png | Bin 0 -> 337 bytes .../pics/cr16-action-clear_table_contents.png | Bin 0 -> 264 bytes kexi/pics/cr16-action-combo.png | Bin 0 -> 435 bytes kexi/pics/cr16-action-database.png | Bin 0 -> 771 bytes kexi/pics/cr16-action-database_import.png | Bin 0 -> 690 bytes kexi/pics/cr16-action-delete_table_row.png | Bin 0 -> 362 bytes kexi/pics/cr16-action-form.png | Bin 0 -> 493 bytes kexi/pics/cr16-action-form_action.png | Bin 0 -> 777 bytes kexi/pics/cr16-action-form_newobj.png | Bin 0 -> 628 bytes kexi/pics/cr16-action-grid.png | Bin 0 -> 367 bytes kexi/pics/cr16-action-insert_table_row.png | Bin 0 -> 522 bytes kexi/pics/cr16-action-key.png | Bin 0 -> 567 bytes kexi/pics/cr16-action-line.png | Bin 0 -> 191 bytes kexi/pics/cr16-action-line_horizontal.png | Bin 0 -> 145 bytes kexi/pics/cr16-action-line_vertical.png | Bin 0 -> 154 bytes kexi/pics/cr16-action-lineedit.png | Bin 0 -> 295 bytes kexi/pics/cr16-action-macro.png | Bin 0 -> 732 bytes kexi/pics/cr16-action-macro_newobj.png | Bin 0 -> 780 bytes kexi/pics/cr16-action-mouse_pointer.png | Bin 0 -> 482 bytes kexi/pics/cr16-action-multiple_obj.png | Bin 0 -> 346 bytes kexi/pics/cr16-action-navigator_first.png | Bin 0 -> 682 bytes kexi/pics/cr16-action-navigator_last.png | Bin 0 -> 680 bytes kexi/pics/cr16-action-navigator_new.png | Bin 0 -> 545 bytes kexi/pics/cr16-action-navigator_next.png | Bin 0 -> 511 bytes kexi/pics/cr16-action-navigator_prev.png | Bin 0 -> 512 bytes kexi/pics/cr16-action-new_sign.png | Bin 0 -> 320 bytes kexi/pics/cr16-action-pixmaplabel.png | Bin 0 -> 806 bytes kexi/pics/cr16-action-query.png | Bin 0 -> 616 bytes kexi/pics/cr16-action-query_newobj.png | Bin 0 -> 677 bytes kexi/pics/cr16-action-radio.png | Bin 0 -> 521 bytes kexi/pics/cr16-action-relation.png | Bin 0 -> 596 bytes kexi/pics/cr16-action-report.png | Bin 0 -> 565 bytes kexi/pics/cr16-action-report_newobj.png | Bin 0 -> 649 bytes kexi/pics/cr16-action-script.png | Bin 0 -> 652 bytes kexi/pics/cr16-action-script_newobj.png | Bin 0 -> 703 bytes kexi/pics/cr16-action-select_item.png | Bin 0 -> 467 bytes kexi/pics/cr16-action-sort_az.png | Bin 0 -> 433 bytes kexi/pics/cr16-action-sort_za.png | Bin 0 -> 376 bytes kexi/pics/cr16-action-spring.png | Bin 0 -> 810 bytes kexi/pics/cr16-action-spring_vertical.png | Bin 0 -> 862 bytes kexi/pics/cr16-action-state_data.png | Bin 0 -> 349 bytes kexi/pics/cr16-action-state_edit.png | Bin 0 -> 702 bytes kexi/pics/cr16-action-state_sql.png | Bin 0 -> 570 bytes kexi/pics/cr16-action-state_text.png | Bin 0 -> 720 bytes kexi/pics/cr16-action-subform.png | Bin 0 -> 447 bytes kexi/pics/cr16-action-table.png | Bin 0 -> 524 bytes kexi/pics/cr16-action-table_newobj.png | Bin 0 -> 611 bytes kexi/pics/cr16-action-tabwidget.png | Bin 0 -> 456 bytes kexi/pics/cr16-action-test_it.png | Bin 0 -> 538 bytes kexi/pics/cr16-action-textedit.png | Bin 0 -> 414 bytes kexi/pics/cr16-action-unknown_widget.png | Bin 0 -> 609 bytes kexi/pics/cr16-action-widgets.png | Bin 0 -> 477 bytes kexi/pics/cr16-mime-kexiproject_sqlite.png | Bin 0 -> 727 bytes kexi/pics/cr16-mime-kexiproject_sqlite.xcf | Bin 0 -> 2122 bytes kexi/pics/cr16-mime-kexiproject_sqlite2.png | Bin 0 -> 743 bytes kexi/pics/cr16-mime-kexiproject_sqlite2.xcf | Bin 0 -> 2127 bytes kexi/pics/cr22-action-alignobjs.png | Bin 0 -> 508 bytes kexi/pics/cr22-action-aobottom.png | Bin 0 -> 429 bytes kexi/pics/cr22-action-aofit.png | Bin 0 -> 687 bytes kexi/pics/cr22-action-aogrid.png | Bin 0 -> 515 bytes kexi/pics/cr22-action-aoleft.png | Bin 0 -> 454 bytes kexi/pics/cr22-action-aonarrowest.png | Bin 0 -> 559 bytes kexi/pics/cr22-action-aopos2grid.png | Bin 0 -> 503 bytes kexi/pics/cr22-action-aoright.png | Bin 0 -> 453 bytes kexi/pics/cr22-action-aoshortest.png | Bin 0 -> 613 bytes kexi/pics/cr22-action-aotallest.png | Bin 0 -> 582 bytes kexi/pics/cr22-action-aotop.png | Bin 0 -> 443 bytes kexi/pics/cr22-action-aowidest.png | Bin 0 -> 541 bytes kexi/pics/cr22-action-autofield.png | Bin 0 -> 483 bytes kexi/pics/cr22-action-business_user.png | Bin 0 -> 1371 bytes kexi/pics/cr22-action-button.png | Bin 0 -> 760 bytes kexi/pics/cr22-action-check.png | Bin 0 -> 382 bytes .../pics/cr22-action-clear_table_contents.png | Bin 0 -> 300 bytes kexi/pics/cr22-action-combo.png | Bin 0 -> 526 bytes kexi/pics/cr22-action-database.png | Bin 0 -> 1375 bytes kexi/pics/cr22-action-database_import.png | Bin 0 -> 947 bytes kexi/pics/cr22-action-dateedit.png | Bin 0 -> 1212 bytes kexi/pics/cr22-action-datetimeedit.png | Bin 0 -> 1355 bytes kexi/pics/cr22-action-delete_table_row.png | Bin 0 -> 411 bytes kexi/pics/cr22-action-form.png | Bin 0 -> 733 bytes kexi/pics/cr22-action-form_action.png | Bin 0 -> 1153 bytes kexi/pics/cr22-action-form_edit.png | Bin 0 -> 920 bytes kexi/pics/cr22-action-frame.png | Bin 0 -> 486 bytes kexi/pics/cr22-action-grid.png | Bin 0 -> 398 bytes kexi/pics/cr22-action-groupbox.png | Bin 0 -> 444 bytes kexi/pics/cr22-action-insert_table_row.png | Bin 0 -> 582 bytes kexi/pics/cr22-action-key.png | Bin 0 -> 685 bytes kexi/pics/cr22-action-label.png | Bin 0 -> 329 bytes kexi/pics/cr22-action-line.png | Bin 0 -> 236 bytes kexi/pics/cr22-action-line_horizontal.png | Bin 0 -> 160 bytes kexi/pics/cr22-action-line_vertical.png | Bin 0 -> 143 bytes kexi/pics/cr22-action-lineedit.png | Bin 0 -> 348 bytes kexi/pics/cr22-action-listbox.png | Bin 0 -> 386 bytes kexi/pics/cr22-action-listview.png | Bin 0 -> 460 bytes kexi/pics/cr22-action-lower.png | Bin 0 -> 429 bytes kexi/pics/cr22-action-macro.png | Bin 0 -> 1128 bytes kexi/pics/cr22-action-macro_newobj.png | Bin 0 -> 1237 bytes kexi/pics/cr22-action-mouse_pointer.png | Bin 0 -> 521 bytes kexi/pics/cr22-action-multiple_obj.png | Bin 0 -> 577 bytes kexi/pics/cr22-action-new_sign.png | Bin 0 -> 522 bytes kexi/pics/cr22-action-pixmaplabel.png | Bin 0 -> 1258 bytes kexi/pics/cr22-action-progress.png | Bin 0 -> 514 bytes kexi/pics/cr22-action-radio.png | Bin 0 -> 559 bytes kexi/pics/cr22-action-raise.png | Bin 0 -> 513 bytes kexi/pics/cr22-action-relation.png | Bin 0 -> 981 bytes kexi/pics/cr22-action-signalslot.png | Bin 0 -> 484 bytes kexi/pics/cr22-action-slider.png | Bin 0 -> 719 bytes kexi/pics/cr22-action-sort_az.png | Bin 0 -> 514 bytes kexi/pics/cr22-action-sort_za.png | Bin 0 -> 513 bytes kexi/pics/cr22-action-spin.png | Bin 0 -> 572 bytes kexi/pics/cr22-action-spring.png | Bin 0 -> 1279 bytes kexi/pics/cr22-action-spring_vertical.png | Bin 0 -> 1334 bytes kexi/pics/cr22-action-state_data.png | Bin 0 -> 504 bytes kexi/pics/cr22-action-state_edit.png | Bin 0 -> 920 bytes kexi/pics/cr22-action-state_sql.png | Bin 0 -> 864 bytes kexi/pics/cr22-action-state_text.png | Bin 0 -> 1103 bytes kexi/pics/cr22-action-subform.png | Bin 0 -> 560 bytes kexi/pics/cr22-action-table.png | Bin 0 -> 694 bytes kexi/pics/cr22-action-table_newobj.png | Bin 0 -> 943 bytes kexi/pics/cr22-action-tabwidget.png | Bin 0 -> 517 bytes kexi/pics/cr22-action-test_it.png | Bin 0 -> 687 bytes kexi/pics/cr22-action-textedit.png | Bin 0 -> 459 bytes kexi/pics/cr22-action-timeedit.png | Bin 0 -> 1100 bytes kexi/pics/cr22-action-unknown_widget.png | Bin 0 -> 642 bytes kexi/pics/cr22-action-urlrequest.png | Bin 0 -> 1326 bytes kexi/pics/cr22-action-widgets.png | Bin 0 -> 446 bytes kexi/pics/cr22-action-widgetstack.png | Bin 0 -> 433 bytes kexi/pics/cr32-action-business_user.png | Bin 0 -> 1806 bytes .../pics/cr32-action-clear_table_contents.png | Bin 0 -> 416 bytes kexi/pics/cr32-action-database.png | Bin 0 -> 2205 bytes kexi/pics/cr32-action-database_import.png | Bin 0 -> 1623 bytes kexi/pics/cr32-action-delete_table_row.png | Bin 0 -> 571 bytes kexi/pics/cr32-action-form.png | Bin 0 -> 1126 bytes kexi/pics/cr32-action-form_action.png | Bin 0 -> 1699 bytes kexi/pics/cr32-action-grid.png | Bin 0 -> 870 bytes kexi/pics/cr32-action-insert_table_row.png | Bin 0 -> 794 bytes kexi/pics/cr32-action-key.png | Bin 0 -> 1114 bytes kexi/pics/cr32-action-macro.png | Bin 0 -> 2130 bytes kexi/pics/cr32-action-macro_newobj.png | Bin 0 -> 2201 bytes kexi/pics/cr32-action-new_sign.png | Bin 0 -> 315 bytes kexi/pics/cr32-action-pixmaplabel.png | Bin 0 -> 2524 bytes kexi/pics/cr32-action-query.png | Bin 0 -> 987 bytes kexi/pics/cr32-action-spring.png | Bin 0 -> 2271 bytes kexi/pics/cr32-action-state_data.png | Bin 0 -> 700 bytes kexi/pics/cr32-action-state_sql.png | Bin 0 -> 1316 bytes kexi/pics/cr32-action-state_text.png | Bin 0 -> 1883 bytes kexi/pics/cr32-action-table.png | Bin 0 -> 965 bytes kexi/pics/cr32-action-table_newobj.png | Bin 0 -> 1229 bytes kexi/pics/cr32-mime-kexiproject_shortcut.png | Bin 0 -> 1670 bytes kexi/pics/cr32-mime-kexiproject_shortcut.xcf | Bin 0 -> 5422 bytes kexi/pics/cr32-mime-kexiproject_sqlite.png | Bin 0 -> 1520 bytes kexi/pics/cr32-mime-kexiproject_sqlite.xcf | Bin 0 -> 4675 bytes kexi/pics/cr32-mime-kexiproject_sqlite2.png | Bin 0 -> 1625 bytes kexi/pics/cr32-mime-kexiproject_sqlite2.xcf | Bin 0 -> 5266 bytes kexi/pics/cr48-action-database_import.png | Bin 0 -> 3149 bytes kexi/pics/cr48-action-form_action.png | Bin 0 -> 2483 bytes kexi/pics/cr48-action-key.png | Bin 0 -> 1649 bytes kexi/pics/cr64-action-business_user.png | Bin 0 -> 4467 bytes kexi/pics/cr64-action-database.png | Bin 0 -> 5683 bytes kexi/pics/cr64-action-form_action.png | Bin 0 -> 3419 bytes kexi/pics/database-80.png | Bin 0 -> 7255 bytes kexi/pics/generate_newobj_icons.sh | 6 + kexi/pics/hi16-app-kexi.png | Bin 0 -> 960 bytes kexi/pics/hi22-app-kexi.png | Bin 0 -> 1530 bytes kexi/pics/hi32-app-kexi.png | Bin 0 -> 2250 bytes kexi/pics/hi48-app-kexi.png | Bin 0 -> 3758 bytes kexi/pics/hisc-app-kexi.svgz | Bin 0 -> 7402 bytes kexi/pics/imagebox.png | Bin 0 -> 5453 bytes kexi/pics/kexi_yellow.svg | 603 + kexi/pics/tableview_pen.png | Bin 0 -> 935 bytes kexi/pics/tableview_plus.png | Bin 0 -> 185 bytes kexi/pics/wiz-temlate.png | Bin 0 -> 7080 bytes kexi/pics/wiz-template.png | Bin 0 -> 7080 bytes kexi/plugins/Makefile.am | 15 + kexi/plugins/Makefile.common | 2 + kexi/plugins/configure.in.in | 20 + kexi/plugins/configure.in.mid | 26 + kexi/plugins/forms/Makefile.am | 56 + .../forms/kexiactionselectiondialog.cpp | 724 + .../plugins/forms/kexiactionselectiondialog.h | 71 + .../forms/kexiactionselectiondialog_p.h | 51 + .../plugins/forms/kexidataawarewidgetinfo.cpp | 43 + kexi/plugins/forms/kexidataawarewidgetinfo.h | 44 + kexi/plugins/forms/kexidataprovider.cpp | 315 + kexi/plugins/forms/kexidataprovider.h | 95 + kexi/plugins/forms/kexidatasourcepage.cpp | 471 + kexi/plugins/forms/kexidatasourcepage.h | 112 + kexi/plugins/forms/kexidbfactory.cpp | 713 + kexi/plugins/forms/kexidbfactory.h | 74 + .../forms/kexidbtextwidgetinterface.cpp | 71 + .../plugins/forms/kexidbtextwidgetinterface.h | 53 + .../forms/kexiformdataiteminterface.cpp | 68 + .../plugins/forms/kexiformdataiteminterface.h | 145 + kexi/plugins/forms/kexiformeventhandler.cpp | 188 + kexi/plugins/forms/kexiformeventhandler.h | 101 + kexi/plugins/forms/kexiformhandler.desktop | 115 + kexi/plugins/forms/kexiformmanager.cpp | 235 + kexi/plugins/forms/kexiformmanager.h | 87 + kexi/plugins/forms/kexiformpart.cpp | 550 + kexi/plugins/forms/kexiformpart.h | 108 + kexi/plugins/forms/kexiformpartinstui.rc | 77 + kexi/plugins/forms/kexiformpartui.rc | 10 + kexi/plugins/forms/kexiforms.cpp | 25 + kexi/plugins/forms/kexiformscrollview.cpp | 587 + kexi/plugins/forms/kexiformscrollview.h | 297 + kexi/plugins/forms/kexiformview.cpp | 1278 + kexi/plugins/forms/kexiformview.h | 231 + .../forms/kformdesigner_kexidbfactory.desktop | 55 + kexi/plugins/forms/widgets/Makefile.am | 28 + .../plugins/forms/widgets/kexidbautofield.cpp | 846 + kexi/plugins/forms/widgets/kexidbautofield.h | 210 + kexi/plugins/forms/widgets/kexidbcheckbox.cpp | 175 + kexi/plugins/forms/widgets/kexidbcheckbox.h | 99 + kexi/plugins/forms/widgets/kexidbcombobox.cpp | 550 + kexi/plugins/forms/widgets/kexidbcombobox.h | 181 + kexi/plugins/forms/widgets/kexidbdateedit.cpp | 230 + kexi/plugins/forms/widgets/kexidbdateedit.h | 118 + .../forms/widgets/kexidbdatetimeedit.cpp | 243 + .../forms/widgets/kexidbdatetimeedit.h | 106 + .../forms/widgets/kexidbdoublespinbox.cpp | 113 + .../forms/widgets/kexidbdoublespinbox.h | 79 + kexi/plugins/forms/widgets/kexidbform.cpp | 714 + kexi/plugins/forms/widgets/kexidbform.h | 139 + kexi/plugins/forms/widgets/kexidbimagebox.cpp | 870 + kexi/plugins/forms/widgets/kexidbimagebox.h | 275 + .../forms/widgets/kexidbintspinbox.cpp | 114 + kexi/plugins/forms/widgets/kexidbintspinbox.h | 80 + kexi/plugins/forms/widgets/kexidblabel.cpp | 650 + kexi/plugins/forms/widgets/kexidblabel.h | 140 + kexi/plugins/forms/widgets/kexidblineedit.cpp | 417 + kexi/plugins/forms/widgets/kexidblineedit.h | 170 + kexi/plugins/forms/widgets/kexidbsubform.cpp | 131 + kexi/plugins/forms/widgets/kexidbsubform.h | 52 + kexi/plugins/forms/widgets/kexidbtextedit.cpp | 209 + kexi/plugins/forms/widgets/kexidbtextedit.h | 113 + kexi/plugins/forms/widgets/kexidbtimeedit.cpp | 156 + kexi/plugins/forms/widgets/kexidbtimeedit.h | 87 + kexi/plugins/forms/widgets/kexidbutils.cpp | 99 + kexi/plugins/forms/widgets/kexidbutils.h | 71 + kexi/plugins/forms/widgets/kexiframe.cpp | 77 + kexi/plugins/forms/widgets/kexiframe.h | 84 + .../forms/widgets/kexiframeutils_p.cpp | 232 + kexi/plugins/forms/widgets/kexipushbutton.cpp | 32 + kexi/plugins/forms/widgets/kexipushbutton.h | 55 + kexi/plugins/importexport/Makefile.am | 1 + kexi/plugins/importexport/csv/Makefile.am | 21 + .../csv/kexicsv_importexporthandler.desktop | 51 + .../csv/kexicsv_importexportpart.cpp | 87 + .../csv/kexicsv_importexportpart.h | 44 + .../importexport/csv/kexicsvexport.cpp | 271 + kexi/plugins/importexport/csv/kexicsvexport.h | 58 + .../importexport/csv/kexicsvexportwizard.cpp | 431 + .../importexport/csv/kexicsvexportwizard.h | 113 + .../importexport/csv/kexicsvimportdialog.cpp | 1662 + .../importexport/csv/kexicsvimportdialog.h | 231 + .../csv/kexicsvimportoptionsdlg.cpp | 140 + .../csv/kexicsvimportoptionsdlg.h | 62 + .../importexport/csv/kexicsvwidgets.cpp | 233 + .../plugins/importexport/csv/kexicsvwidgets.h | 116 + kexi/plugins/macros/Makefile.am | 9 + kexi/plugins/macros/configure.in.in | 13 + kexi/plugins/macros/kexiactions/Makefile.am | 27 + .../macros/kexiactions/datatableaction.cpp | 185 + .../macros/kexiactions/datatableaction.h | 76 + .../macros/kexiactions/executeaction.cpp | 96 + .../macros/kexiactions/executeaction.h | 78 + .../plugins/macros/kexiactions/kexiaction.cpp | 48 + kexi/plugins/macros/kexiactions/kexiaction.h | 75 + .../plugins/macros/kexiactions/kexivariable.h | 76 + .../macros/kexiactions/messageaction.cpp | 50 + .../macros/kexiactions/messageaction.h | 66 + .../macros/kexiactions/navigateaction.cpp | 158 + .../macros/kexiactions/navigateaction.h | 78 + .../macros/kexiactions/objectnamevariable.h | 76 + .../macros/kexiactions/objectvariable.h | 87 + .../plugins/macros/kexiactions/openaction.cpp | 154 + kexi/plugins/macros/kexiactions/openaction.h | 79 + kexi/plugins/macros/kexipart/Makefile.am | 32 + .../macros/kexipart/keximacrodesignview.cpp | 497 + .../macros/kexipart/keximacrodesignview.h | 129 + .../macros/kexipart/keximacroerror.cpp | 130 + kexi/plugins/macros/kexipart/keximacroerror.h | 89 + .../macros/kexipart/keximacroerrorbase.ui | 213 + .../macros/kexipart/keximacrohandler.desktop | 81 + .../plugins/macros/kexipart/keximacropart.cpp | 172 + kexi/plugins/macros/kexipart/keximacropart.h | 95 + .../macros/kexipart/keximacroproperty.cpp | 626 + .../macros/kexipart/keximacroproperty.h | 186 + .../macros/kexipart/keximacrotextview.cpp | 90 + .../macros/kexipart/keximacrotextview.h | 77 + .../plugins/macros/kexipart/keximacroview.cpp | 175 + kexi/plugins/macros/kexipart/keximacroview.h | 140 + kexi/plugins/macros/lib/Makefile.am | 23 + kexi/plugins/macros/lib/action.cpp | 170 + kexi/plugins/macros/lib/action.h | 187 + kexi/plugins/macros/lib/context.cpp | 261 + kexi/plugins/macros/lib/context.h | 141 + kexi/plugins/macros/lib/exception.cpp | 97 + kexi/plugins/macros/lib/exception.h | 84 + kexi/plugins/macros/lib/komacro_export.h | 39 + kexi/plugins/macros/lib/macro.cpp | 126 + kexi/plugins/macros/lib/macro.h | 130 + kexi/plugins/macros/lib/macroitem.cpp | 217 + kexi/plugins/macros/lib/macroitem.h | 142 + kexi/plugins/macros/lib/manager.cpp | 170 + kexi/plugins/macros/lib/manager.h | 219 + kexi/plugins/macros/lib/metamethod.cpp | 344 + kexi/plugins/macros/lib/metamethod.h | 150 + kexi/plugins/macros/lib/metaobject.cpp | 151 + kexi/plugins/macros/lib/metaobject.h | 118 + kexi/plugins/macros/lib/metaparameter.cpp | 146 + kexi/plugins/macros/lib/metaparameter.h | 136 + kexi/plugins/macros/lib/variable.cpp | 246 + kexi/plugins/macros/lib/variable.h | 222 + kexi/plugins/macros/lib/xmlhandler.cpp | 226 + kexi/plugins/macros/lib/xmlhandler.h | 77 + kexi/plugins/macros/tests/Makefile.am | 28 + kexi/plugins/macros/tests/actiontests.cpp | 211 + kexi/plugins/macros/tests/actiontests.h | 89 + kexi/plugins/macros/tests/commontests.cpp | 907 + kexi/plugins/macros/tests/commontests.h | 118 + kexi/plugins/macros/tests/komacrotest.cpp | 58 + kexi/plugins/macros/tests/komacrotestbase.h | 90 + kexi/plugins/macros/tests/komacrotestgui.cpp | 60 + kexi/plugins/macros/tests/macroitemtests.cpp | 243 + kexi/plugins/macros/tests/macroitemtests.h | 87 + kexi/plugins/macros/tests/macrotests.cpp | 192 + kexi/plugins/macros/tests/macrotests.h | 74 + kexi/plugins/macros/tests/testaction.cpp | 61 + kexi/plugins/macros/tests/testaction.h | 78 + kexi/plugins/macros/tests/testobject.cpp | 117 + kexi/plugins/macros/tests/testobject.h | 85 + kexi/plugins/macros/tests/variabletests.cpp | 236 + kexi/plugins/macros/tests/variabletests.h | 87 + kexi/plugins/macros/tests/xmlhandlertests.cpp | 619 + kexi/plugins/macros/tests/xmlhandlertests.h | 122 + .../plugins/macros/tests/xmlhandlertests2.cpp | 1161 + kexi/plugins/macros/tests/xmlhandlertests2.h | 132 + kexi/plugins/migration/Makefile.am | 20 + .../migration/keximigrationhandler.desktop | 102 + kexi/plugins/migration/keximigrationpart.cpp | 46 + kexi/plugins/migration/keximigrationpart.h | 38 + kexi/plugins/queries/Makefile.am | 29 + kexi/plugins/queries/kexiaddparamdialog.cpp | 47 + kexi/plugins/queries/kexiaddparamdialog.h | 40 + kexi/plugins/queries/kexiaddparamwidget.ui | 135 + .../kexidynamicqueryparameterdialog.cpp | 63 + .../queries/kexidynamicqueryparameterdialog.h | 45 + .../queries/kexiparameterlisteditor.ui | 88 + .../queries/kexiquerydesignerguieditor.cpp | 1803 + .../queries/kexiquerydesignerguieditor.h | 170 + kexi/plugins/queries/kexiquerydesignersql.cpp | 542 + kexi/plugins/queries/kexiquerydesignersql.h | 82 + .../queries/kexiquerydesignersqlhistory.cpp | 373 + .../queries/kexiquerydesignersqlhistory.h | 104 + kexi/plugins/queries/kexiqueryhandler.desktop | 111 + kexi/plugins/queries/kexiquerypart.cpp | 310 + kexi/plugins/queries/kexiquerypart.h | 118 + kexi/plugins/queries/kexiquerypartinstui.rc | 24 + kexi/plugins/queries/kexiquerypartui.rc | 11 + kexi/plugins/queries/kexiqueryview.cpp | 154 + kexi/plugins/queries/kexiqueryview.h | 58 + kexi/plugins/relations/Makefile.am | 28 + .../relations/kexirelationhandler.desktop | 110 + .../plugins/relations/kexirelationmaindlg.cpp | 81 + kexi/plugins/relations/kexirelationmaindlg.h | 47 + .../relations/kexirelationpartimpl.cpp | 85 + kexi/plugins/relations/kexirelationpartimpl.h | 46 + .../relations/kexirelationpartinstui.rc | 6 + kexi/plugins/relations/kexirelationpartui.rc | 14 + kexi/plugins/reports/Makefile.am | 51 + kexi/plugins/reports/kexireportfactory.cpp | 227 + kexi/plugins/reports/kexireportfactory.h | 62 + kexi/plugins/reports/kexireportform.cpp | 188 + kexi/plugins/reports/kexireportform.h | 60 + .../plugins/reports/kexireporthandler.desktop | 108 + kexi/plugins/reports/kexireportpart.cpp | 141 + kexi/plugins/reports/kexireportpart.h | 88 + kexi/plugins/reports/kexireportpartinstui.rc | 37 + kexi/plugins/reports/kexireportpartui.rc | 6 + kexi/plugins/reports/kexireports.cpp | 24 + kexi/plugins/reports/kexireportview.cpp | 477 + kexi/plugins/reports/kexireportview.h | 130 + .../kformdesigner_kexireportfactory.desktop | 53 + kexi/plugins/reports/reportwidgets.cpp | 181 + kexi/plugins/reports/reportwidgets.h | 117 + kexi/plugins/scripting/Makefile.am | 1 + kexi/plugins/scripting/README | 28 + kexi/plugins/scripting/kexiapp/Makefile.am | 21 + .../scripting/kexiapp/kexiappmainwindow.cpp | 106 + .../scripting/kexiapp/kexiappmainwindow.h | 91 + .../scripting/kexiapp/kexiappmodule.cpp | 97 + .../plugins/scripting/kexiapp/kexiappmodule.h | 76 + .../plugins/scripting/kexiapp/kexiapppart.cpp | 46 + kexi/plugins/scripting/kexiapp/kexiapppart.h | 56 + kexi/plugins/scripting/kexidb.doxyfile | 324 + kexi/plugins/scripting/kexidb/Makefile.am | 30 + .../scripting/kexidb/kexidbconnection.cpp | 221 + .../scripting/kexidb/kexidbconnection.h | 194 + .../scripting/kexidb/kexidbconnectiondata.cpp | 112 + .../scripting/kexidb/kexidbconnectiondata.h | 126 + .../plugins/scripting/kexidb/kexidbcursor.cpp | 139 + kexi/plugins/scripting/kexidb/kexidbcursor.h | 159 + .../plugins/scripting/kexidb/kexidbdriver.cpp | 70 + kexi/plugins/scripting/kexidb/kexidbdriver.h | 114 + .../scripting/kexidb/kexidbdrivermanager.cpp | 178 + .../scripting/kexidb/kexidbdrivermanager.h | 105 + kexi/plugins/scripting/kexidb/kexidbfield.cpp | 147 + kexi/plugins/scripting/kexidb/kexidbfield.h | 148 + .../scripting/kexidb/kexidbfieldlist.cpp | 100 + .../scripting/kexidb/kexidbfieldlist.h | 104 + .../plugins/scripting/kexidb/kexidbmodule.cpp | 74 + kexi/plugins/scripting/kexidb/kexidbmodule.h | 69 + .../plugins/scripting/kexidb/kexidbparser.cpp | 77 + kexi/plugins/scripting/kexidb/kexidbparser.h | 95 + .../plugins/scripting/kexidb/kexidbschema.cpp | 197 + kexi/plugins/scripting/kexidb/kexidbschema.h | 134 + .../scripting/kexidb/kexidbtransaction.cpp | 52 + .../scripting/kexidb/kexidbtransaction.h | 62 + kexi/plugins/scripting/kexidb/readme.dox | 32 + .../scripting/kexiscripting/Makefile.am | 37 + .../kexiscripting/kexiscriptdesignview.cpp | 337 + .../kexiscripting/kexiscriptdesignview.h | 124 + .../kexiscripting/kexiscripteditor.cpp | 104 + .../kexiscripting/kexiscripteditor.h | 77 + .../kexiscripting/kexiscripthandler.desktop | 105 + .../kexiscripting/kexiscriptpart.cpp | 201 + .../scripting/kexiscripting/kexiscriptpart.h | 100 + .../kexiscripting/kexiscriptpartinstui.rc | 10 + .../kexiscripting/kexiscriptpartui.rc | 10 + kexi/plugins/scripting/scripts/Makefile.am | 1 + .../scripts/copycenter/CopyCenter.py | 644 + .../scripts/copycenter/CopyCenter.rc | 10 + .../copycenter/CopyCenterPluginKexiDB.py | 646 + .../copycenter/CopyCenterPluginQtSQL.py | 495 + .../scripting/scripts/copycenter/Makefile.am | 4 + .../scripting/scripts/copycenter/readme.html | 20 + .../scripts/exportxhtml/ExportXHTML.py | 196 + .../scripts/exportxhtml/ExportXHTML.rc | 8 + .../scripting/scripts/exportxhtml/Makefile.am | 4 + .../scripts/importxhtml/ImportXHTML.py | 434 + .../scripts/importxhtml/ImportXHTML.rc | 8 + .../scripting/scripts/importxhtml/Makefile.am | 4 + .../scripts/projectdocumentor/Makefile.am | 4 + .../projectdocumentor/ProjectDocumentor.py | 186 + .../projectdocumentor/ProjectDocumentor.rc | 8 + .../scripting/scripts/python/Makefile.am | 2 + .../scripts/python/kexiapp/Makefile.am | 2 + .../scripts/python/kexiapp/__init__.py | 25 + kexi/plugins/tables/Makefile.am | 28 + kexi/plugins/tables/kexilookupcolumnpage.cpp | 419 + kexi/plugins/tables/kexilookupcolumnpage.h | 88 + .../tables/kexitabledesigner_dataview.cpp | 79 + .../tables/kexitabledesigner_dataview.h | 49 + .../tables/kexitabledesignercommands.cpp | 281 + .../tables/kexitabledesignercommands.h | 188 + kexi/plugins/tables/kexitabledesignerview.cpp | 1943 + kexi/plugins/tables/kexitabledesignerview.h | 258 + .../tables/kexitabledesignerview_p.cpp | 294 + kexi/plugins/tables/kexitabledesignerview_p.h | 191 + kexi/plugins/tables/kexitablehandler.desktop | 118 + kexi/plugins/tables/kexitablepart.cpp | 313 + kexi/plugins/tables/kexitablepart.h | 100 + kexi/plugins/tables/kexitablepartinstui.rc | 18 + kexi/plugins/tables/kexitablepartui.rc | 7 + kexi/tests/Makefile.am | 6 + kexi/tests/README | 14 + kexi/tests/altertable/1.kexi | Bin 0 -> 49150 bytes kexi/tests/altertable/Makefile.am | 22 + kexi/tests/altertable/README | 200 + kexi/tests/altertable/TODO | 3 + kexi/tests/altertable/alltypes.altertable | 109 + kexi/tests/altertable/altertable.cpp | 716 + kexi/tests/altertable/altertable.h | 63 + .../tests/altertable/defaultvalues.altertable | 129 + kexi/tests/gui/finddialog/finddialog.pro | 18 + kexi/tests/gui/finddialog/kexifinddialog.cpp | 67 + kexi/tests/gui/finddialog/kexifinddialog.h | 66 + .../gui/finddialog/kexifinddialogbase.ui | 326 + kexi/tests/gui/finddialog/main.cpp | 36 + kexi/tests/newapi/Makefile.am | 32 + kexi/tests/newapi/README | 59 + kexi/tests/newapi/cursors_test.h | 60 + kexi/tests/newapi/dbcreation_test.h | 61 + kexi/tests/newapi/dr_prop_test.h | 41 + kexi/tests/newapi/main.cpp | 254 + kexi/tests/newapi/mysqlcursor.cpp | 121 + kexi/tests/newapi/mysqlcursortest_create.sql | 41 + .../newapi/mysqlcursortest_expectedoutput | 128 + kexi/tests/newapi/newapi.pro | 33 + kexi/tests/newapi/parser_test.h | 62 + kexi/tests/newapi/schema.sql | 38 + kexi/tests/newapi/schema_test.h | 55 + kexi/tests/newapi/sqltest | 27 + kexi/tests/newapi/sqltest_int | 15 + kexi/tests/newapi/statements.txt | 89 + kexi/tests/newapi/tables_test.h | 117 + kexi/tests/newapi/tableview_test.h | 60 + kexi/tests/parser/Makefile.am | 13 + kexi/tests/parser/README | 9 + kexi/tests/parser/db | Bin 0 -> 17408 bytes kexi/tests/parser/main.cpp | 103 + kexi/tests/parser/parser.pro | 24 + kexi/tests/startup/Makefile.am | 19 + kexi/tests/startup/main.cpp | 119 + kexi/tests/startup/testdb.kexis | 63 + kexi/tests/tableview/Makefile.am | 16 + kexi/tests/tableview/README | 3 + kexi/tests/tableview/main.cpp | 53 + kexi/tests/tableview/tableview.pro | 32 + kexi/tests/tests.pro | 6 + kexi/tests/widgets/Makefile.am | 14 + kexi/tests/widgets/kexidbdrivercombotest.cpp | 76 + kexi/tools/Makefile.am | 1 + kexi/tools/add_column/Makefile.am | 5 + kexi/tools/add_column/kexi_add_column | 114 + kexi/tools/add_column/kexi_add_column_gui | 99 + .../kexi_add_column_gui_transl_pl.sh | 24 + .../tools/build_tarball/build_kexi_tarball.sh | 232 + kexi/tools/build_tarball/kexi.lsm | 10 + kexi/tools/delete_column/Makefile.am | 5 + kexi/tools/delete_column/README | 17 + kexi/tools/delete_column/kexi_delete_column | 136 + .../delete_column/kexi_delete_column_gui | 82 + .../kexi_delete_column_gui_transl_pl.sh | 10 + kexi/tools/feedback/create_kexifeedback.sh | 54 + kexi/tools/sql_keywords/Makefile | 30 + kexi/tools/sql_keywords/kexi_reserved | 58 + kexi/tools/sql_keywords/sql_keywords.sh | 299 + kexi/widget/Makefile.am | 51 + kexi/widget/kexibrowser.cpp | 890 + kexi/widget/kexibrowser.h | 183 + kexi/widget/kexibrowser_p.h | 43 + kexi/widget/kexibrowseritem.cpp | 91 + kexi/widget/kexibrowseritem.h | 70 + kexi/widget/kexicharencodingcombobox.cpp | 114 + kexi/widget/kexicharencodingcombobox.h | 48 + kexi/widget/kexicustompropertyfactory.cpp | 110 + kexi/widget/kexicustompropertyfactory.h | 45 + kexi/widget/kexicustompropertyfactory_p.cpp | 108 + kexi/widget/kexicustompropertyfactory_p.h | 71 + kexi/widget/kexidataawareview.cpp | 383 + kexi/widget/kexidataawareview.h | 117 + kexi/widget/kexidatasourcecombobox.cpp | 333 + kexi/widget/kexidatasourcecombobox.h | 88 + kexi/widget/kexidatatable.cpp | 82 + kexi/widget/kexidatatable.h | 80 + kexi/widget/kexidbconnectionwidget.cpp | 407 + kexi/widget/kexidbconnectionwidget.h | 179 + kexi/widget/kexidbconnectionwidgetbase.ui | 464 + .../kexidbconnectionwidgetdetailsbase.ui | 194 + .../kexidbconnectionwidgetdetailsbase.ui.h | 29 + kexi/widget/kexidbdrivercombobox.cpp | 92 + kexi/widget/kexidbdrivercombobox.h | 102 + kexi/widget/kexidswelcome.cpp | 90 + kexi/widget/kexidswelcome.h | 48 + kexi/widget/kexieditor.cpp | 261 + kexi/widget/kexieditor.h | 120 + kexi/widget/kexifieldcombobox.cpp | 250 + kexi/widget/kexifieldcombobox.h | 82 + kexi/widget/kexifieldlistview.cpp | 180 + kexi/widget/kexifieldlistview.h | 82 + kexi/widget/kexifilterdlg.cpp | 149 + kexi/widget/kexifilterdlg.h | 50 + kexi/widget/kexiprjtypeselector.cpp | 44 + kexi/widget/kexiprjtypeselector.h | 38 + kexi/widget/kexiprjtypeselectorbase.ui | 162 + kexi/widget/kexiprjtypeselectorbase.ui.h | 23 + kexi/widget/kexipropertyeditorview.cpp | 223 + kexi/widget/kexipropertyeditorview.h | 117 + kexi/widget/kexiquerydesignersqleditor.cpp | 35 + kexi/widget/kexiquerydesignersqleditor.h | 39 + kexi/widget/kexiqueryparameters.cpp | 139 + kexi/widget/kexiqueryparameters.h | 44 + kexi/widget/kexiscrollview.cpp | 407 + kexi/widget/kexiscrollview.h | 93 + kexi/widget/kexisectionheader.cpp | 162 + kexi/widget/kexisectionheader.h | 54 + kexi/widget/kexismalltoolbutton.cpp | 133 + kexi/widget/kexismalltoolbutton.h | 59 + kexi/widget/pixmapcollection.cpp | 440 + kexi/widget/pixmapcollection.h | 162 + kexi/widget/relations/Makefile.am | 38 + kexi/widget/relations/kexirelationview.cpp | 639 + kexi/widget/relations/kexirelationview.h | 167 + .../relations/kexirelationviewconnection.cpp | 298 + .../relations/kexirelationviewconnection.h | 75 + .../relations/kexirelationviewtable.cpp | 429 + kexi/widget/relations/kexirelationviewtable.h | 157 + kexi/widget/relations/kexirelationwidget.cpp | 425 + kexi/widget/relations/kexirelationwidget.h | 137 + kexi/widget/relations/r1.xpm | 10 + kexi/widget/relations/rn.xpm | 9 + kexi/widget/tableview/Makefile.am | 49 + kexi/widget/tableview/autonumber.png | Bin 0 -> 244 bytes kexi/widget/tableview/kexiblobtableedit.cpp | 595 + kexi/widget/tableview/kexiblobtableedit.h | 170 + kexi/widget/tableview/kexibooltableedit.cpp | 180 + kexi/widget/tableview/kexibooltableedit.h | 87 + .../tableview/kexicelleditorfactory.cpp | 198 + kexi/widget/tableview/kexicelleditorfactory.h | 79 + kexi/widget/tableview/kexicomboboxbase.cpp | 597 + kexi/widget/tableview/kexicomboboxbase.h | 170 + kexi/widget/tableview/kexicomboboxpopup.cpp | 373 + kexi/widget/tableview/kexicomboboxpopup.h | 92 + .../tableview/kexicomboboxtableedit.cpp | 446 + kexi/widget/tableview/kexicomboboxtableedit.h | 166 + .../tableview/kexidataawareobjectiface.cpp | 2108 + .../tableview/kexidataawareobjectiface.h | 918 + .../tableview/kexidataawarepropertyset.cpp | 260 + .../tableview/kexidataawarepropertyset.h | 149 + kexi/widget/tableview/kexidatatableview.cpp | 121 + kexi/widget/tableview/kexidatatableview.h | 94 + kexi/widget/tableview/kexidatetableedit.cpp | 290 + kexi/widget/tableview/kexidatetableedit.h | 66 + .../tableview/kexidatetimetableedit.cpp | 165 + kexi/widget/tableview/kexidatetimetableedit.h | 69 + kexi/widget/tableview/kexiinputtableedit.cpp | 395 + kexi/widget/tableview/kexiinputtableedit.h | 126 + kexi/widget/tableview/kexitableedit.cpp | 237 + kexi/widget/tableview/kexitableedit.h | 233 + kexi/widget/tableview/kexitableitem.cpp | 62 + kexi/widget/tableview/kexitableitem.h | 58 + kexi/widget/tableview/kexitableview.cpp | 2607 + kexi/widget/tableview/kexitableview.h | 639 + kexi/widget/tableview/kexitableview_p.cpp | 67 + kexi/widget/tableview/kexitableview_p.h | 155 + kexi/widget/tableview/kexitableviewdata.cpp | 886 + kexi/widget/tableview/kexitableviewdata.h | 540 + kexi/widget/tableview/kexitableviewheader.cpp | 202 + kexi/widget/tableview/kexitableviewheader.h | 75 + kexi/widget/tableview/kexitextformatter.cpp | 237 + kexi/widget/tableview/kexitextformatter.h | 64 + kexi/widget/tableview/kexitimetableedit.cpp | 158 + kexi/widget/tableview/kexitimetableedit.h | 64 + kexi/widget/utils/Makefile.am | 19 + kexi/widget/utils/kexiarrowtip.cpp | 164 + kexi/widget/utils/kexiarrowtip.h | 56 + .../utils/kexicomboboxdropdownbutton.cpp | 87 + .../widget/utils/kexicomboboxdropdownbutton.h | 49 + kexi/widget/utils/kexicontextmenuutils.cpp | 283 + kexi/widget/utils/kexicontextmenuutils.h | 112 + kexi/widget/utils/kexidatetimeformatter.cpp | 367 + kexi/widget/utils/kexidatetimeformatter.h | 165 + kexi/widget/utils/kexidisplayutils.cpp | 172 + kexi/widget/utils/kexidisplayutils.h | 57 + kexi/widget/utils/kexidropdownbutton.cpp | 82 + kexi/widget/utils/kexidropdownbutton.h | 45 + kexi/widget/utils/kexiflowlayout.cpp | 452 + kexi/widget/utils/kexiflowlayout.h | 79 + kexi/widget/utils/kexigradientwidget.cpp | 358 + kexi/widget/utils/kexigradientwidget.h | 247 + kexi/widget/utils/kexirecordmarker.cpp | 307 + kexi/widget/utils/kexirecordmarker.h | 72 + kexi/widget/utils/kexirecordnavigator.cpp | 511 + kexi/widget/utils/kexirecordnavigator.h | 190 + kexi/widget/utils/kexisharedactionclient.cpp | 39 + kexi/widget/utils/kexisharedactionclient.h | 49 + kexi/widget/utils/kexitooltip.cpp | 76 + kexi/widget/utils/kexitooltip.h | 47 + kexi/widget/utils/klistviewitemtemplate.h | 50 + kformula/AUTHORS | 1 + kformula/DESIGN | 297 + kformula/Makefile.am | 41 + kformula/TODO | 17 + kformula/formulastring.cc | 118 + kformula/formulastring.h | 60 + kformula/fsparser.cc | 829 + kformula/fsparser.h | 76 + kformula/kfconfig.cc | 76 + kformula/kfconfig.h | 49 + kformula/kformula.desktop | 82 + kformula/kformula.rc | 161 + kformula/kformula.xpm | 44 + kformula/kformula_aboutdata.h | 50 + kformula/kformula_doc.cc | 247 + kformula/kformula_doc.h | 113 + kformula/kformula_factory.cc | 70 + kformula/kformula_factory.h | 29 + kformula/kformula_readonly.rc | 13 + kformula/kformula_view.cc | 284 + kformula/kformula_view.h | 119 + kformula/kformula_view_iface.cc | 254 + kformula/kformula_view_iface.h | 95 + kformula/kformulapart.desktop | 119 + kformula/kformulawidget.cc | 157 + kformula/kformulawidget.h | 117 + kformula/main.cc | 44 + kformula/pics/Makefile.am | 1 + kformula/pics/hi16-app-kformula.png | Bin 0 -> 527 bytes kformula/pics/hi22-app-kformula.png | Bin 0 -> 930 bytes kformula/pics/hi32-app-kformula.png | Bin 0 -> 1358 bytes kformula/pics/hi48-app-kformula.png | Bin 0 -> 2115 bytes kformula/tests/oasis-kformula.sh | 87 + kformula/tips | 66 + kivio/AUTHORS | 28 + kivio/CHANGELOG | 214 + kivio/CHANGES | 78 + kivio/LICENSE | 340 + kivio/Makefile.am | 17 + kivio/NOTES | 36 + kivio/README | 69 + kivio/configure.in.in | 2 + kivio/kivio-extract-i18n-desc.pl | 36 + kivio/kivio.spec | 48 + kivio/kiviopart/KIvioDocIface.cc | 86 + kivio/kiviopart/KIvioDocIface.h | 51 + kivio/kiviopart/KIvioLayerIface.cc | 60 + kivio/kiviopart/KIvioLayerIface.h | 50 + kivio/kiviopart/KIvioMapIface.cc | 119 + kivio/kiviopart/KIvioMapIface.h | 52 + kivio/kiviopart/KIvioPageIface.cc | 110 + kivio/kiviopart/KIvioPageIface.h | 57 + kivio/kiviopart/KIvioStencilIface.cc | 176 + kivio/kiviopart/KIvioStencilIface.h | 99 + kivio/kiviopart/KIvioViewIface.cc | 176 + kivio/kiviopart/KIvioViewIface.h | 79 + kivio/kiviopart/Makefile.am | 70 + kivio/kiviopart/addstenciltool.cpp | 177 + kivio/kiviopart/addstenciltool.h | 62 + kivio/kiviopart/config/Makefile.am | 15 + kivio/kiviopart/config/kivio.kcfg | 108 + kivio/kiviopart/config/kivio_config.cpp | 74 + kivio/kiviopart/config/kivio_config.h | 61 + kivio/kiviopart/config/kivio_settings.kcfgc | 5 + kivio/kiviopart/hi16-app-kivio.png | Bin 0 -> 1071 bytes kivio/kiviopart/hi22-app-kivio.png | Bin 0 -> 1496 bytes kivio/kiviopart/hi32-app-kivio.png | Bin 0 -> 2263 bytes kivio/kiviopart/hi48-app-kivio.png | Bin 0 -> 3813 bytes kivio/kiviopart/kivio.desktop | 66 + kivio/kiviopart/kivio.rc | 138 + kivio/kiviopart/kivio_aboutdata.h | 48 + kivio/kiviopart/kivio_canvas.cpp | 1291 + kivio/kiviopart/kivio_canvas.h | 214 + kivio/kiviopart/kivio_command.cc | 806 + kivio/kiviopart/kivio_command.h | 473 + kivio/kiviopart/kivio_dlg_pageshow.cpp | 78 + kivio/kiviopart/kivio_dlg_pageshow.h | 45 + kivio/kiviopart/kivio_doc.cpp | 1073 + kivio/kiviopart/kivio_doc.h | 259 + kivio/kiviopart/kivio_factory.cpp | 78 + kivio/kiviopart/kivio_factory.h | 43 + kivio/kiviopart/kivio_grid_data.cpp | 59 + kivio/kiviopart/kivio_grid_data.h | 45 + kivio/kiviopart/kivio_icon_view.cpp | 219 + kivio/kiviopart/kivio_icon_view.h | 84 + kivio/kiviopart/kivio_intra_stencil_data.cpp | 40 + kivio/kiviopart/kivio_intra_stencil_data.h | 43 + kivio/kiviopart/kivio_map.cpp | 239 + kivio/kiviopart/kivio_map.h | 130 + kivio/kiviopart/kivio_page.cpp | 1679 + kivio/kiviopart/kivio_page.h | 225 + kivio/kiviopart/kivio_part_init.cc | 21 + kivio/kiviopart/kivio_readonly.rc | 30 + kivio/kiviopart/kivio_spawner_drag.cpp | 84 + kivio/kiviopart/kivio_spawner_drag.h | 48 + kivio/kiviopart/kivio_stackbar.cpp | 214 + kivio/kiviopart/kivio_stackbar.h | 73 + .../kivio_stencil_geometry_panel.cpp | 138 + .../kiviopart/kivio_stencil_geometry_panel.h | 46 + kivio/kiviopart/kivio_view.cpp | 2279 + kivio/kiviopart/kivio_view.h | 385 + kivio/kiviopart/kivio_zoomaction.cpp | 97 + kivio/kiviopart/kivio_zoomaction.h | 44 + kivio/kiviopart/kivioarrowheadaction.cpp | 214 + kivio/kiviopart/kivioarrowheadaction.h | 66 + kivio/kiviopart/kiviodragobject.cpp | 184 + kivio/kiviopart/kiviodragobject.h | 55 + kivio/kiviopart/kivioglobal.cpp | 1317 + kivio/kiviopart/kivioglobal.h | 102 + kivio/kiviopart/kiviopart.desktop | 98 + kivio/kiviopart/kiviosdk/Makefile.am | 45 + kivio/kiviopart/kiviosdk/diapathparser.cpp | 140 + kivio/kiviopart/kiviosdk/diapathparser.h | 64 + kivio/kiviopart/kiviosdk/kivio_1d_stencil.cpp | 1011 + kivio/kiviopart/kiviosdk/kivio_1d_stencil.h | 158 + kivio/kiviopart/kiviosdk/kivio_arrowhead.cpp | 786 + kivio/kiviopart/kiviosdk/kivio_arrowhead.h | 144 + .../kiviosdk/kivio_base_connector_stencil.cpp | 567 + .../kiviosdk/kivio_base_connector_stencil.h | 126 + .../kiviosdk/kivio_base_target_stencil.cpp | 530 + .../kiviosdk/kivio_base_target_stencil.h | 172 + kivio/kiviopart/kiviosdk/kivio_common.cpp | 452 + kivio/kiviopart/kiviosdk/kivio_common.h | 60 + .../kiviosdk/kivio_connector_point.cpp | 217 + .../kiviosdk/kivio_connector_point.h | 81 + .../kiviosdk/kivio_connector_target.cpp | 285 + .../kiviosdk/kivio_connector_target.h | 77 + .../kiviosdk/kivio_custom_drag_data.cpp | 32 + .../kiviosdk/kivio_custom_drag_data.h | 39 + .../kiviosdk/kivio_dia_stencil_spawner.cpp | 503 + .../kiviosdk/kivio_dia_stencil_spawner.h | 69 + kivio/kiviopart/kiviosdk/kivio_fill_style.cpp | 143 + kivio/kiviopart/kiviosdk/kivio_fill_style.h | 82 + kivio/kiviopart/kiviosdk/kivio_gradient.cpp | 181 + kivio/kiviopart/kiviosdk/kivio_gradient.h | 69 + .../kiviosdk/kivio_group_stencil.cpp | 748 + .../kiviopart/kiviosdk/kivio_group_stencil.h | 141 + kivio/kiviopart/kiviosdk/kivio_layer.cpp | 591 + kivio/kiviopart/kiviosdk/kivio_layer.h | 128 + kivio/kiviopart/kiviosdk/kivio_layers.h | 45 + kivio/kiviopart/kiviosdk/kivio_line_style.cpp | 87 + kivio/kiviopart/kiviosdk/kivio_line_style.h | 70 + kivio/kiviopart/kiviosdk/kivio_painter.cpp | 75 + kivio/kiviopart/kiviosdk/kivio_painter.h | 153 + .../kiviosdk/kivio_plugin_stencil_spawner.cpp | 100 + .../kiviosdk/kivio_plugin_stencil_spawner.h | 63 + kivio/kiviopart/kiviosdk/kivio_point.cpp | 171 + kivio/kiviopart/kiviosdk/kivio_point.h | 70 + kivio/kiviopart/kiviosdk/kivio_py_stencil.cpp | 1024 + kivio/kiviopart/kiviosdk/kivio_py_stencil.h | 135 + .../kiviosdk/kivio_py_stencil_spawner.cpp | 172 + .../kiviosdk/kivio_py_stencil_spawner.h | 77 + .../kiviosdk/kivio_screen_painter.cpp | 980 + .../kiviopart/kiviosdk/kivio_screen_painter.h | 111 + kivio/kiviopart/kiviosdk/kivio_shape.cpp | 664 + kivio/kiviopart/kiviosdk/kivio_shape.h | 62 + kivio/kiviopart/kiviosdk/kivio_shape_data.cpp | 563 + kivio/kiviopart/kiviosdk/kivio_shape_data.h | 152 + .../kiviosdk/kivio_shape_painter.cpp | 145 + .../kiviopart/kiviosdk/kivio_shape_painter.h | 52 + .../kiviopart/kiviosdk/kivio_sml_stencil.cpp | 2228 + kivio/kiviopart/kiviosdk/kivio_sml_stencil.h | 184 + .../kiviosdk/kivio_sml_stencil_spawner.cpp | 255 + .../kiviosdk/kivio_sml_stencil_spawner.h | 67 + kivio/kiviopart/kiviosdk/kivio_stencil.cpp | 263 + kivio/kiviopart/kiviosdk/kivio_stencil.h | 317 + .../kiviosdk/kivio_stencil_spawner.cpp | 72 + .../kiviosdk/kivio_stencil_spawner.h | 70 + .../kiviosdk/kivio_stencil_spawner_info.cpp | 126 + .../kiviosdk/kivio_stencil_spawner_info.h | 58 + .../kiviosdk/kivio_stencil_spawner_set.cpp | 319 + .../kiviosdk/kivio_stencil_spawner_set.h | 82 + kivio/kiviopart/kiviosdk/kivio_text_style.cpp | 88 + kivio/kiviopart/kiviosdk/kivio_text_style.h | 56 + kivio/kiviopart/kiviosdk/kivio_wrap.cpp | 1770 + .../kiviosdk/kiviopolylineconnector.cpp | 497 + .../kiviosdk/kiviopolylineconnector.h | 126 + .../kiviopart/kiviosdk/kiviostencilfactory.h | 41 + .../kiviosdk/polylineconnectorspawner.cpp | 62 + .../kiviosdk/polylineconnectorspawner.h | 49 + kivio/kiviopart/kiviosdk/py_kivio.h | 265 + kivio/kiviopart/kiviosdk/tkmath.h | 141 + kivio/kiviopart/kiviostencilsetaction.cpp | 299 + kivio/kiviopart/kiviostencilsetaction.h | 72 + kivio/kiviopart/kiviostencilsetinstaller.cpp | 156 + kivio/kiviopart/kiviostencilsetinstaller.h | 53 + kivio/kiviopart/main.cpp | 46 + kivio/kiviopart/pics/Makefile.am | 2 + .../kiviopart/pics/cr16-action-arrowheads.png | Bin 0 -> 174 bytes .../kiviopart/pics/cr22-action-arrowheads.png | Bin 0 -> 767 bytes .../kiviopart/pics/cr22-action-font_bold.png | Bin 0 -> 870 bytes .../pics/cr22-action-font_italic.png | Bin 0 -> 819 bytes .../kiviopart/pics/cr22-action-font_under.png | Bin 0 -> 789 bytes .../pics/cr22-action-open_stencilset.png | Bin 0 -> 670 bytes .../kiviopart/pics/cr32-action-arrowheads.png | Bin 0 -> 275 bytes .../pics/hi16-action-add_stencil.png | Bin 0 -> 286 bytes .../pics/hi16-action-align_bottom.png | Bin 0 -> 101 bytes .../kiviopart/pics/hi16-action-align_top.png | Bin 0 -> 98 bytes .../pics/hi16-action-align_vcenter.png | Bin 0 -> 104 bytes .../hi16-action-bring_stencil_to_front.png | Bin 0 -> 257 bytes .../pics/hi16-action-copy_stencil.png | Bin 0 -> 266 bytes .../pics/hi16-action-cut_stencil.png | Bin 0 -> 247 bytes .../pics/hi16-action-end_arrowhead.png | Bin 0 -> 164 bytes .../kiviopart/pics/hi16-action-fillcolor.png | Bin 0 -> 253 bytes .../kiviopart/pics/hi16-action-font_bold.png | Bin 0 -> 148 bytes .../pics/hi16-action-font_italic.png | Bin 0 -> 147 bytes .../kiviopart/pics/hi16-action-font_names.png | Bin 0 -> 188 bytes .../kiviopart/pics/hi16-action-font_size.png | Bin 0 -> 193 bytes .../kiviopart/pics/hi16-action-font_under.png | Bin 0 -> 155 bytes .../pics/hi16-action-group_stencils.png | Bin 0 -> 285 bytes .../pics/hi16-action-guides_horizontal.png | Bin 0 -> 120 bytes .../pics/hi16-action-guides_vertical.png | Bin 0 -> 122 bytes kivio/kiviopart/pics/hi16-action-item_add.png | Bin 0 -> 975 bytes .../pics/hi16-action-item_remove.png | Bin 0 -> 536 bytes .../pics/hi16-action-item_rename.png | Bin 0 -> 190 bytes .../kiviopart/pics/hi16-action-layer_add.png | Bin 0 -> 425 bytes .../pics/hi16-action-layer_connect.png | Bin 0 -> 129 bytes .../pics/hi16-action-layer_editable.png | Bin 0 -> 177 bytes .../pics/hi16-action-layer_noconnect.png | Bin 0 -> 143 bytes .../pics/hi16-action-layer_noeditable.png | Bin 0 -> 148 bytes .../pics/hi16-action-layer_noprint.png | Bin 0 -> 178 bytes .../pics/hi16-action-layer_novisible.png | Bin 0 -> 173 bytes .../pics/hi16-action-layer_print.png | Bin 0 -> 194 bytes .../pics/hi16-action-layer_remove.png | Bin 0 -> 375 bytes .../pics/hi16-action-layer_visible.png | Bin 0 -> 262 bytes .../kiviopart/pics/hi16-action-linestyle.png | Bin 0 -> 121 bytes .../kiviopart/pics/hi16-action-linewidth.png | Bin 0 -> 118 bytes .../pics/hi16-action-open_stencilset.png | Bin 0 -> 270 bytes .../pics/hi16-action-page_disabled.png | Bin 0 -> 151 bytes .../pics/hi16-action-page_enabled.png | Bin 0 -> 139 bytes .../pics/hi16-action-paste_stencil.png | Bin 0 -> 371 bytes kivio/kiviopart/pics/hi16-action-pencolor.png | Bin 0 -> 226 bytes .../pics/hi16-action-remove_stencil.png | Bin 0 -> 244 bytes .../pics/hi16-action-send_stencil_to_back.png | Bin 0 -> 334 bytes .../pics/hi16-action-start_arrowhead.png | Bin 0 -> 103 bytes .../kiviopart/pics/hi16-action-textcolor.png | Bin 0 -> 206 bytes .../pics/hi16-action-ungroup_stencils.png | Bin 0 -> 307 bytes .../kiviopart/pics/hi16-action-view_grid.png | Bin 0 -> 232 bytes .../pics/hi16-action-view_guidelines.png | Bin 0 -> 259 bytes .../pics/hi16-action-view_manager.png | Bin 0 -> 223 bytes .../pics/hi16-action-view_margins.png | Bin 0 -> 434 bytes .../kiviopart/pics/hi16-action-view_page.png | Bin 0 -> 155 bytes .../pics/hi16-action-view_pageborder.png | Bin 0 -> 383 bytes .../kiviopart/pics/hi16-action-view_ruler.png | Bin 0 -> 230 bytes .../pics/hi16-action-zoom_disabled.png | Bin 0 -> 156 bytes .../pics/hi16-action-zoom_enabled.png | Bin 0 -> 149 bytes .../kiviopart/pics/hi22-action-add_target.png | Bin 0 -> 207 bytes .../kiviopart/pics/hi22-action-arrowheads.png | Bin 0 -> 207 bytes .../hi22-action-bring_stencil_to_front.png | Bin 0 -> 368 bytes .../pics/hi22-action-close_stencilset.png | Bin 0 -> 299 bytes .../kiviopart/pics/hi22-action-font_bold.png | Bin 0 -> 180 bytes .../pics/hi22-action-font_italic.png | Bin 0 -> 157 bytes .../kiviopart/pics/hi22-action-font_under.png | Bin 0 -> 170 bytes .../pics/hi22-action-group_stencils.png | Bin 0 -> 321 bytes .../kiviopart/pics/hi22-action-linestyle.png | Bin 0 -> 116 bytes .../kiviopart/pics/hi22-action-linewidth.png | Bin 0 -> 181 bytes .../pics/hi22-action-open_stencilset.png | Bin 0 -> 297 bytes .../kiviopart/pics/hi22-action-select_all.png | Bin 0 -> 320 bytes .../pics/hi22-action-send_stencil_to_back.png | Bin 0 -> 404 bytes .../pics/hi22-action-ungroup_stencils.png | Bin 0 -> 341 bytes .../pics/hi22-action-unselect_all.png | Bin 0 -> 333 bytes .../kiviopart/pics/hi22-action-view_grid.png | Bin 0 -> 1365 bytes .../pics/hi22-action-view_margins.png | Bin 0 -> 1462 bytes .../pics/hi22-action-view_pageborder.png | Bin 0 -> 1378 bytes .../kiviopart/pics/hi22-action-view_ruler.png | Bin 0 -> 234 bytes .../hi32-action-bring_stencil_to_front.png | Bin 0 -> 492 bytes .../pics/hi32-action-close_stencilset.png | Bin 0 -> 350 bytes .../kiviopart/pics/hi32-action-font_bold.png | Bin 0 -> 231 bytes .../pics/hi32-action-font_italic.png | Bin 0 -> 208 bytes .../kiviopart/pics/hi32-action-font_under.png | Bin 0 -> 217 bytes .../pics/hi32-action-group_stencils.png | Bin 0 -> 415 bytes .../pics/hi32-action-open_stencilset.png | Bin 0 -> 349 bytes .../kiviopart/pics/hi32-action-select_all.png | Bin 0 -> 405 bytes .../pics/hi32-action-send_stencil_to_back.png | Bin 0 -> 560 bytes .../pics/hi32-action-ungroup_stencils.png | Bin 0 -> 426 bytes .../pics/hi32-action-unselect_all.png | Bin 0 -> 412 bytes .../kiviopart/pics/hi32-action-view_grid.png | Bin 0 -> 1087 bytes .../pics/hi32-action-view_margins.png | Bin 0 -> 1167 bytes .../pics/hi32-action-view_pageborder.png | Bin 0 -> 1071 bytes .../kiviopart/pics/hi32-action-view_ruler.png | Bin 0 -> 270 bytes kivio/kiviopart/stencilbarbutton.cpp | 309 + kivio/kiviopart/stencilbarbutton.h | 72 + kivio/kiviopart/stencilbardockmanager.cpp | 645 + kivio/kiviopart/stencilbardockmanager.h | 186 + .../stencils/Dia/Assorted/Makefile.am | 89 + .../stencils/Dia/Assorted/arrow-chevron.png | Bin 0 -> 468 bytes .../stencils/Dia/Assorted/arrow-chevron.shape | 35 + .../stencils/Dia/Assorted/arrow-down.png | Bin 0 -> 378 bytes .../stencils/Dia/Assorted/arrow-down.shape | 39 + .../Dia/Assorted/arrow-left-notched.png | Bin 0 -> 349 bytes .../Dia/Assorted/arrow-left-notched.shape | 43 + .../Dia/Assorted/arrow-left-right-up.png | Bin 0 -> 566 bytes .../Dia/Assorted/arrow-left-right-up.shape | 79 + .../Dia/Assorted/arrow-left-right.png | Bin 0 -> 391 bytes .../Dia/Assorted/arrow-left-right.shape | 51 + .../stencils/Dia/Assorted/arrow-left-up.png | Bin 0 -> 371 bytes .../stencils/Dia/Assorted/arrow-left-up.shape | 59 + .../stencils/Dia/Assorted/arrow-left.png | Bin 0 -> 399 bytes .../stencils/Dia/Assorted/arrow-left.shape | 39 + .../stencils/Dia/Assorted/arrow-pentagon.png | Bin 0 -> 335 bytes .../Dia/Assorted/arrow-pentagon.shape | 31 + .../stencils/Dia/Assorted/arrow-quad.png | Bin 0 -> 538 bytes .../stencils/Dia/Assorted/arrow-quad.shape | 60 + .../Dia/Assorted/arrow-right-notched.png | Bin 0 -> 281 bytes .../Dia/Assorted/arrow-right-notched.shape | 43 + .../stencils/Dia/Assorted/arrow-right.png | Bin 0 -> 410 bytes .../stencils/Dia/Assorted/arrow-right.shape | 39 + .../Dia/Assorted/arrow-up-down-left.png | Bin 0 -> 518 bytes .../Dia/Assorted/arrow-up-down-left.shape | 79 + .../stencils/Dia/Assorted/arrow-up-down.png | Bin 0 -> 319 bytes .../stencils/Dia/Assorted/arrow-up-down.shape | 51 + .../stencils/Dia/Assorted/arrow-up.png | Bin 0 -> 328 bytes .../stencils/Dia/Assorted/arrow-up.shape | 39 + .../stencils/Dia/Assorted/circle-quarter.png | Bin 0 -> 251 bytes .../Dia/Assorted/circle-quarter.shape | 12 + .../stencils/Dia/Assorted/circle.png | Bin 0 -> 730 bytes .../stencils/Dia/Assorted/circle.shape | 21 + .../stencils/Dia/Assorted/cross-maltese.png | Bin 0 -> 284 bytes .../stencils/Dia/Assorted/cross-maltese.shape | 44 + .../stencils/Dia/Assorted/cross-swiss.png | Bin 0 -> 327 bytes .../stencils/Dia/Assorted/cross-swiss.shape | 62 + kivio/kiviopart/stencils/Dia/Assorted/desc | 5 + .../stencils/Dia/Assorted/diamond.png | Bin 0 -> 506 bytes .../stencils/Dia/Assorted/diamond.shape | 21 + .../kiviopart/stencils/Dia/Assorted/heart.png | Bin 0 -> 557 bytes .../stencils/Dia/Assorted/heart.shape | 12 + .../stencils/Dia/Assorted/heptagon.png | Bin 0 -> 269 bytes .../stencils/Dia/Assorted/heptagon.shape | 39 + .../stencils/Dia/Assorted/hexagon.png | Bin 0 -> 262 bytes .../stencils/Dia/Assorted/hexagon.shape | 35 + .../kiviopart/stencils/Dia/Assorted/icon.xpm | 22 + .../stencils/Dia/Assorted/moon-quarter.png | Bin 0 -> 297 bytes .../stencils/Dia/Assorted/moon-quarter.shape | 12 + .../stencils/Dia/Assorted/octagon.png | Bin 0 -> 245 bytes .../stencils/Dia/Assorted/octagon.shape | 28 + .../Dia/Assorted/parallelogram-horizontal.png | Bin 0 -> 338 bytes .../Assorted/parallelogram-horizontal.shape | 27 + .../Dia/Assorted/parallelogram-vertical.png | Bin 0 -> 310 bytes .../Dia/Assorted/parallelogram-vertical.shape | 27 + .../stencils/Dia/Assorted/pentagon.png | Bin 0 -> 536 bytes .../stencils/Dia/Assorted/pentagon.shape | 31 + .../stencils/Dia/Assorted/square.png | Bin 0 -> 163 bytes .../stencils/Dia/Assorted/square.shape | 29 + .../kiviopart/stencils/Dia/Assorted/star4.png | Bin 0 -> 262 bytes .../stencils/Dia/Assorted/star4.shape | 28 + .../stencils/Dia/Assorted/star4curved.png | Bin 0 -> 488 bytes .../stencils/Dia/Assorted/star4curved.shape | 12 + .../kiviopart/stencils/Dia/Assorted/star5.png | Bin 0 -> 643 bytes .../stencils/Dia/Assorted/star5.shape | 54 + .../kiviopart/stencils/Dia/Assorted/star6.png | Bin 0 -> 391 bytes .../stencils/Dia/Assorted/star6.shape | 59 + .../kiviopart/stencils/Dia/Assorted/star7.png | Bin 0 -> 284 bytes .../stencils/Dia/Assorted/star7.shape | 68 + .../kiviopart/stencils/Dia/Assorted/star8.png | Bin 0 -> 426 bytes .../stencils/Dia/Assorted/star8.shape | 77 + .../stencils/Dia/Assorted/star8curved.png | Bin 0 -> 597 bytes .../stencils/Dia/Assorted/star8curved.shape | 12 + .../stencils/Dia/Assorted/star8sharp.png | Bin 0 -> 843 bytes .../stencils/Dia/Assorted/star8sharp.shape | 77 + kivio/kiviopart/stencils/Dia/Assorted/sun.png | Bin 0 -> 814 bytes .../kiviopart/stencils/Dia/Assorted/sun.shape | 120 + .../stencils/Dia/Assorted/trapezoid.png | Bin 0 -> 294 bytes .../stencils/Dia/Assorted/trapezoid.shape | 21 + .../Dia/Assorted/triangle-isoceles.png | Bin 0 -> 532 bytes .../Dia/Assorted/triangle-isoceles.shape | 23 + .../Dia/Assorted/triangle-rightangle.png | Bin 0 -> 237 bytes .../Dia/Assorted/triangle-rightangle.shape | 22 + .../stencils/Dia/Circuit/Makefile.am | 69 + kivio/kiviopart/stencils/Dia/Circuit/desc | 5 + .../stencils/Dia/Circuit/ground.shape | 18 + .../kiviopart/stencils/Dia/Circuit/ground.xpm | 27 + .../stencils/Dia/Circuit/hcapacitor.shape | 19 + .../stencils/Dia/Circuit/hcapacitor.xpm | 27 + .../stencils/Dia/Circuit/hdiode.shape | 19 + .../kiviopart/stencils/Dia/Circuit/hdiode.xpm | 28 + .../stencils/Dia/Circuit/hfuse_de.shape | 17 + .../stencils/Dia/Circuit/hfuse_de.xpm | 27 + .../stencils/Dia/Circuit/hinductor.shape | 19 + .../stencils/Dia/Circuit/hinductor.xpm | 27 + .../stencils/Dia/Circuit/hinductor_de.shape | 18 + .../stencils/Dia/Circuit/hinductor_de.xpm | 27 + .../stencils/Dia/Circuit/hjumper.png | Bin 0 -> 371 bytes .../stencils/Dia/Circuit/hjumper.shape | 19 + .../stencils/Dia/Circuit/hled_de.shape | 24 + .../stencils/Dia/Circuit/hled_de.xpm | 28 + .../Dia/Circuit/hpowersource_de.shape | 21 + .../stencils/Dia/Circuit/hpowersource_de.xpm | 27 + .../stencils/Dia/Circuit/hresistor.shape | 16 + .../stencils/Dia/Circuit/hresistor.xpm | 27 + .../stencils/Dia/Circuit/hresistor_de.shape | 18 + .../stencils/Dia/Circuit/hresistor_de.xpm | 27 + .../stencils/Dia/Circuit/hzener.shape | 20 + .../kiviopart/stencils/Dia/Circuit/hzener.xpm | 28 + kivio/kiviopart/stencils/Dia/Circuit/icon.xpm | 22 + .../stencils/Dia/Circuit/lamp_de.shape | 19 + .../stencils/Dia/Circuit/lamp_de.xpm | 27 + .../stencils/Dia/Circuit/microphone_de.shape | 17 + .../stencils/Dia/Circuit/microphone_de.xpm | 27 + .../stencils/Dia/Circuit/nmos_de.shape | 23 + .../stencils/Dia/Circuit/nmos_de.xpm | 27 + .../kiviopart/stencils/Dia/Circuit/npn.shape | 28 + kivio/kiviopart/stencils/Dia/Circuit/npn.xpm | 27 + .../stencils/Dia/Circuit/opamp.shape | 26 + .../kiviopart/stencils/Dia/Circuit/opamp.xpm | 28 + .../stencils/Dia/Circuit/pmos_de.shape | 24 + .../stencils/Dia/Circuit/pmos_de.xpm | 27 + .../kiviopart/stencils/Dia/Circuit/pnp.shape | 28 + kivio/kiviopart/stencils/Dia/Circuit/pnp.xpm | 27 + .../stencils/Dia/Circuit/speaker_de.shape | 18 + .../stencils/Dia/Circuit/speaker_de.xpm | 27 + .../stencils/Dia/Circuit/vcapacitor.shape | 19 + .../stencils/Dia/Circuit/vcapacitor.xpm | 27 + .../stencils/Dia/Circuit/vdiode.shape | 19 + .../kiviopart/stencils/Dia/Circuit/vdiode.xpm | 28 + .../stencils/Dia/Circuit/vfuse_de.shape | 17 + .../stencils/Dia/Circuit/vfuse_de.xpm | 27 + .../stencils/Dia/Circuit/vinductor.shape | 19 + .../stencils/Dia/Circuit/vinductor.xpm | 27 + .../stencils/Dia/Circuit/vinductor_de.shape | 18 + .../stencils/Dia/Circuit/vinductor_de.xpm | 27 + .../stencils/Dia/Circuit/vled_de.shape | 24 + .../stencils/Dia/Circuit/vled_de.xpm | 28 + .../Dia/Circuit/vpowersource_de.shape | 23 + .../stencils/Dia/Circuit/vpowersource_de.xpm | 27 + .../stencils/Dia/Circuit/vresistor.shape | 16 + .../stencils/Dia/Circuit/vresistor.xpm | 27 + .../stencils/Dia/Circuit/vresistor_de.shape | 18 + .../stencils/Dia/Circuit/vresistor_de.xpm | 27 + .../stencils/Dia/Circuit/vzener.shape | 20 + .../kiviopart/stencils/Dia/Circuit/vzener.xpm | 28 + kivio/kiviopart/stencils/Dia/Cisco/1000.png | Bin 0 -> 195 bytes kivio/kiviopart/stencils/Dia/Cisco/1000.shape | 30 + .../stencils/Dia/Cisco/100baset_hub.png | Bin 0 -> 190 bytes .../stencils/Dia/Cisco/100baset_hub.shape | 28 + kivio/kiviopart/stencils/Dia/Cisco/10700.png | Bin 0 -> 264 bytes .../kiviopart/stencils/Dia/Cisco/10700.shape | 32 + kivio/kiviopart/stencils/Dia/Cisco/15200.png | Bin 0 -> 286 bytes .../kiviopart/stencils/Dia/Cisco/15200.shape | 39 + kivio/kiviopart/stencils/Dia/Cisco/3174.png | Bin 0 -> 163 bytes kivio/kiviopart/stencils/Dia/Cisco/3174.shape | 31 + kivio/kiviopart/stencils/Dia/Cisco/3x74.png | Bin 0 -> 214 bytes kivio/kiviopart/stencils/Dia/Cisco/3x74.shape | 51 + kivio/kiviopart/stencils/Dia/Cisco/5000.png | Bin 0 -> 314 bytes kivio/kiviopart/stencils/Dia/Cisco/5000.shape | 43 + kivio/kiviopart/stencils/Dia/Cisco/5002.png | Bin 0 -> 275 bytes kivio/kiviopart/stencils/Dia/Cisco/5002.shape | 36 + kivio/kiviopart/stencils/Dia/Cisco/5500.png | Bin 0 -> 340 bytes kivio/kiviopart/stencils/Dia/Cisco/5500.shape | 44 + kivio/kiviopart/stencils/Dia/Cisco/6701.png | Bin 0 -> 234 bytes kivio/kiviopart/stencils/Dia/Cisco/6701.shape | 49 + kivio/kiviopart/stencils/Dia/Cisco/6705.png | Bin 0 -> 229 bytes kivio/kiviopart/stencils/Dia/Cisco/6705.shape | 58 + kivio/kiviopart/stencils/Dia/Cisco/6732.png | Bin 0 -> 248 bytes kivio/kiviopart/stencils/Dia/Cisco/6732.shape | 65 + .../kiviopart/stencils/Dia/Cisco/7500ars.png | Bin 0 -> 277 bytes .../stencils/Dia/Cisco/7500ars.shape | 42 + kivio/kiviopart/stencils/Dia/Cisco/7505.png | Bin 0 -> 250 bytes kivio/kiviopart/stencils/Dia/Cisco/7505.shape | 32 + kivio/kiviopart/stencils/Dia/Cisco/7507.png | Bin 0 -> 258 bytes kivio/kiviopart/stencils/Dia/Cisco/7507.shape | 34 + .../kiviopart/stencils/Dia/Cisco/Makefile.am | 452 + .../stencils/Dia/Cisco/accesspoint.png | Bin 0 -> 188 bytes .../stencils/Dia/Cisco/accesspoint.shape | 35 + kivio/kiviopart/stencils/Dia/Cisco/adm.png | Bin 0 -> 229 bytes kivio/kiviopart/stencils/Dia/Cisco/adm.shape | 36 + kivio/kiviopart/stencils/Dia/Cisco/asic.png | Bin 0 -> 206 bytes kivio/kiviopart/stencils/Dia/Cisco/asic.shape | 61 + kivio/kiviopart/stencils/Dia/Cisco/ata.png | Bin 0 -> 233 bytes kivio/kiviopart/stencils/Dia/Cisco/ata.shape | 31 + .../kiviopart/stencils/Dia/Cisco/atm3800.png | Bin 0 -> 273 bytes .../stencils/Dia/Cisco/atm3800.shape | 27 + .../Cisco/atm_fast_gigabit_etherswitch.png | Bin 0 -> 270 bytes .../Cisco/atm_fast_gigabit_etherswitch.shape | 42 + .../stencils/Dia/Cisco/atm_router.png | Bin 0 -> 254 bytes .../stencils/Dia/Cisco/atm_router.shape | 28 + .../stencils/Dia/Cisco/atm_switch.png | Bin 0 -> 223 bytes .../stencils/Dia/Cisco/atm_switch.shape | 34 + .../Dia/Cisco/atm_tag_sw_gigabit_router.png | Bin 0 -> 301 bytes .../Dia/Cisco/atm_tag_sw_gigabit_router.shape | 44 + .../Dia/Cisco/atm_tag_switch_router.png | Bin 0 -> 295 bytes .../Dia/Cisco/atm_tag_switch_router.shape | 65 + kivio/kiviopart/stencils/Dia/Cisco/bbfw.png | Bin 0 -> 125 bytes kivio/kiviopart/stencils/Dia/Cisco/bbfw.shape | 21 + .../stencils/Dia/Cisco/bbfw_media.png | Bin 0 -> 123 bytes .../stencils/Dia/Cisco/bbfw_media.shape | 28 + kivio/kiviopart/stencils/Dia/Cisco/bbsm.png | Bin 0 -> 236 bytes kivio/kiviopart/stencils/Dia/Cisco/bbsm.shape | 28 + .../stencils/Dia/Cisco/branch_office.png | Bin 0 -> 187 bytes .../stencils/Dia/Cisco/branch_office.shape | 65 + .../stencils/Dia/Cisco/breakout_box.png | Bin 0 -> 183 bytes .../stencils/Dia/Cisco/breakout_box.shape | 41 + kivio/kiviopart/stencils/Dia/Cisco/bridge.png | Bin 0 -> 207 bytes .../kiviopart/stencils/Dia/Cisco/bridge.shape | 27 + .../stencils/Dia/Cisco/broadband_router.png | Bin 0 -> 293 bytes .../stencils/Dia/Cisco/broadband_router.shape | 36 + .../kiviopart/stencils/Dia/Cisco/bts10200.png | Bin 0 -> 243 bytes .../stencils/Dia/Cisco/bts10200.shape | 35 + kivio/kiviopart/stencils/Dia/Cisco/ca.png | Bin 0 -> 282 bytes kivio/kiviopart/stencils/Dia/Cisco/ca.shape | 51 + .../stencils/Dia/Cisco/cable_modem.png | Bin 0 -> 187 bytes .../stencils/Dia/Cisco/cable_modem.shape | 31 + .../stencils/Dia/Cisco/callmanager.png | Bin 0 -> 200 bytes .../stencils/Dia/Cisco/callmanager.shape | 43 + kivio/kiviopart/stencils/Dia/Cisco/car.png | Bin 0 -> 162 bytes kivio/kiviopart/stencils/Dia/Cisco/car.shape | 42 + .../Dia/Cisco/catalyst_access_gateway.png | Bin 0 -> 286 bytes .../Dia/Cisco/catalyst_access_gateway.shape | 33 + .../stencils/Dia/Cisco/cddi_fddi.png | Bin 0 -> 255 bytes .../stencils/Dia/Cisco/cddi_fddi.shape | 29 + kivio/kiviopart/stencils/Dia/Cisco/cdm.png | Bin 0 -> 339 bytes kivio/kiviopart/stencils/Dia/Cisco/cdm.shape | 44 + .../stencils/Dia/Cisco/cellular_phone.png | Bin 0 -> 144 bytes .../stencils/Dia/Cisco/cellular_phone.shape | 48 + kivio/kiviopart/stencils/Dia/Cisco/centri.png | Bin 0 -> 213 bytes .../kiviopart/stencils/Dia/Cisco/centri.shape | 31 + .../stencils/Dia/Cisco/cisco_hub.png | Bin 0 -> 234 bytes .../stencils/Dia/Cisco/cisco_hub.shape | 34 + .../stencils/Dia/Cisco/ciscosecurity.png | Bin 0 -> 269 bytes .../stencils/Dia/Cisco/ciscosecurity.shape | 72 + .../stencils/Dia/Cisco/ciscoworks.png | Bin 0 -> 282 bytes .../stencils/Dia/Cisco/ciscoworks.shape | 46 + .../stencils/Dia/Cisco/class45_switch.png | Bin 0 -> 184 bytes .../stencils/Dia/Cisco/class45_switch.shape | 47 + kivio/kiviopart/stencils/Dia/Cisco/cloud.png | Bin 0 -> 391 bytes .../kiviopart/stencils/Dia/Cisco/cloud.shape | 17 + .../Dia/Cisco/communications_server.png | Bin 0 -> 227 bytes .../Dia/Cisco/communications_server.shape | 34 + .../stencils/Dia/Cisco/content_engine.png | Bin 0 -> 252 bytes .../stencils/Dia/Cisco/content_engine.shape | 34 + .../Dia/Cisco/content_service_router.png | Bin 0 -> 257 bytes .../Dia/Cisco/content_service_router.shape | 31 + .../stencils/Dia/Cisco/content_switch.png | Bin 0 -> 315 bytes .../stencils/Dia/Cisco/content_switch.shape | 45 + .../Dia/Cisco/content_switch_module.png | Bin 0 -> 299 bytes .../Dia/Cisco/content_switch_module.shape | 55 + .../kiviopart/stencils/Dia/Cisco/css1100.png | Bin 0 -> 300 bytes .../stencils/Dia/Cisco/css1100.shape | 35 + .../kiviopart/stencils/Dia/Cisco/csu_dsu.png | Bin 0 -> 223 bytes .../stencils/Dia/Cisco/csu_dsu.shape | 39 + kivio/kiviopart/stencils/Dia/Cisco/cte.png | Bin 0 -> 249 bytes kivio/kiviopart/stencils/Dia/Cisco/cte.shape | 35 + kivio/kiviopart/stencils/Dia/Cisco/desc | 5 + .../stencils/Dia/Cisco/directory_server.png | Bin 0 -> 248 bytes .../stencils/Dia/Cisco/directory_server.shape | 25 + .../kiviopart/stencils/Dia/Cisco/diskette.png | Bin 0 -> 152 bytes .../stencils/Dia/Cisco/diskette.shape | 34 + .../Dia/Cisco/distributed_director.png | Bin 0 -> 312 bytes .../Dia/Cisco/distributed_director.shape | 30 + .../kiviopart/stencils/Dia/Cisco/dot_dot.png | Bin 0 -> 112 bytes .../stencils/Dia/Cisco/dot_dot.shape | 25 + kivio/kiviopart/stencils/Dia/Cisco/dpt.png | Bin 0 -> 306 bytes kivio/kiviopart/stencils/Dia/Cisco/dpt.shape | 24 + kivio/kiviopart/stencils/Dia/Cisco/dslam.png | Bin 0 -> 200 bytes .../kiviopart/stencils/Dia/Cisco/dslam.shape | 29 + .../stencils/Dia/Cisco/dwdm_filter.png | Bin 0 -> 210 bytes .../stencils/Dia/Cisco/dwdm_filter.shape | 56 + .../stencils/Dia/Cisco/end_office.png | Bin 0 -> 231 bytes .../stencils/Dia/Cisco/end_office.shape | 95 + kivio/kiviopart/stencils/Dia/Cisco/fax.png | Bin 0 -> 317 bytes kivio/kiviopart/stencils/Dia/Cisco/fax.shape | 53 + .../stencils/Dia/Cisco/fc_storage.png | Bin 0 -> 188 bytes .../stencils/Dia/Cisco/fc_storage.shape | 34 + .../stencils/Dia/Cisco/fddi_ring.png | Bin 0 -> 279 bytes .../stencils/Dia/Cisco/fddi_ring.shape | 31 + .../stencils/Dia/Cisco/file_cabinet.png | Bin 0 -> 213 bytes .../stencils/Dia/Cisco/file_cabinet.shape | 41 + .../stencils/Dia/Cisco/file_server.png | Bin 0 -> 165 bytes .../stencils/Dia/Cisco/file_server.shape | 29 + .../kiviopart/stencils/Dia/Cisco/firewall.png | Bin 0 -> 203 bytes .../stencils/Dia/Cisco/firewall.shape | 69 + .../Dia/Cisco/front_end_processor.png | Bin 0 -> 155 bytes .../Dia/Cisco/front_end_processor.shape | 45 + .../stencils/Dia/Cisco/general_appliance.png | Bin 0 -> 194 bytes .../Dia/Cisco/general_appliance.shape | 29 + .../stencils/Dia/Cisco/generic_building.png | Bin 0 -> 391 bytes .../stencils/Dia/Cisco/generic_building.shape | 95 + .../stencils/Dia/Cisco/generic_gateway.png | Bin 0 -> 325 bytes .../stencils/Dia/Cisco/generic_gateway.shape | 36 + .../stencils/Dia/Cisco/generic_processor.png | Bin 0 -> 236 bytes .../Dia/Cisco/generic_processor.shape | 61 + .../stencils/Dia/Cisco/generic_softswitch.png | Bin 0 -> 190 bytes .../Dia/Cisco/generic_softswitch.shape | 27 + .../Cisco/gigabit_switch_router_atm_tag.png | Bin 0 -> 332 bytes .../Cisco/gigabit_switch_router_atm_tag.shape | 44 + .../Dia/Cisco/government_building.png | Bin 0 -> 295 bytes .../Dia/Cisco/government_building.shape | 62 + kivio/kiviopart/stencils/Dia/Cisco/h323.png | Bin 0 -> 176 bytes kivio/kiviopart/stencils/Dia/Cisco/h323.shape | 41 + .../kiviopart/stencils/Dia/Cisco/handheld.png | Bin 0 -> 123 bytes .../stencils/Dia/Cisco/handheld.shape | 35 + .../stencils/Dia/Cisco/hootphone.png | Bin 0 -> 218 bytes .../stencils/Dia/Cisco/hootphone.shape | 43 + kivio/kiviopart/stencils/Dia/Cisco/host.png | Bin 0 -> 127 bytes kivio/kiviopart/stencils/Dia/Cisco/host.shape | 25 + .../kiviopart/stencils/Dia/Cisco/hp_mini.png | Bin 0 -> 160 bytes .../stencils/Dia/Cisco/hp_mini.shape | 42 + kivio/kiviopart/stencils/Dia/Cisco/hub.png | Bin 0 -> 161 bytes kivio/kiviopart/stencils/Dia/Cisco/hub.shape | 31 + .../stencils/Dia/Cisco/iad_router.png | Bin 0 -> 253 bytes .../stencils/Dia/Cisco/iad_router.shape | 32 + .../stencils/Dia/Cisco/ibm_mainframe.png | Bin 0 -> 180 bytes .../stencils/Dia/Cisco/ibm_mainframe.shape | 39 + .../kiviopart/stencils/Dia/Cisco/ibm_mini.png | Bin 0 -> 167 bytes .../stencils/Dia/Cisco/ibm_mini.shape | 29 + .../stencils/Dia/Cisco/ibm_tower.png | Bin 0 -> 159 bytes .../stencils/Dia/Cisco/ibm_tower.shape | 64 + kivio/kiviopart/stencils/Dia/Cisco/icm.png | Bin 0 -> 206 bytes kivio/kiviopart/stencils/Dia/Cisco/icm.shape | 111 + kivio/kiviopart/stencils/Dia/Cisco/icon.xpm | 22 + kivio/kiviopart/stencils/Dia/Cisco/ics.png | Bin 0 -> 372 bytes kivio/kiviopart/stencils/Dia/Cisco/ics.shape | 69 + .../stencils/Dia/Cisco/ios_firewall.png | Bin 0 -> 188 bytes .../stencils/Dia/Cisco/ios_firewall.shape | 80 + kivio/kiviopart/stencils/Dia/Cisco/ip.png | Bin 0 -> 175 bytes kivio/kiviopart/stencils/Dia/Cisco/ip.shape | 28 + kivio/kiviopart/stencils/Dia/Cisco/ip_dsl.png | Bin 0 -> 280 bytes .../kiviopart/stencils/Dia/Cisco/ip_dsl.shape | 53 + .../kiviopart/stencils/Dia/Cisco/ip_phone.png | Bin 0 -> 269 bytes .../stencils/Dia/Cisco/ip_phone.shape | 55 + .../stencils/Dia/Cisco/ip_softphone.png | Bin 0 -> 278 bytes .../stencils/Dia/Cisco/ip_softphone.shape | 50 + .../Dia/Cisco/ip_telephony_router.png | Bin 0 -> 315 bytes .../Dia/Cisco/ip_telephony_router.shape | 44 + kivio/kiviopart/stencils/Dia/Cisco/iptc.png | Bin 0 -> 272 bytes kivio/kiviopart/stencils/Dia/Cisco/iptc.shape | 33 + .../Dia/Cisco/iptv_broadcast_server.png | Bin 0 -> 228 bytes .../Dia/Cisco/iptv_broadcast_server.shape | 35 + .../Dia/Cisco/iptv_content_manager.png | Bin 0 -> 211 bytes .../Dia/Cisco/iptv_content_manager.shape | 33 + .../stencils/Dia/Cisco/isdn_switch.png | Bin 0 -> 198 bytes .../stencils/Dia/Cisco/isdn_switch.shape | 30 + kivio/kiviopart/stencils/Dia/Cisco/itp.png | Bin 0 -> 274 bytes kivio/kiviopart/stencils/Dia/Cisco/itp.shape | 41 + kivio/kiviopart/stencils/Dia/Cisco/key.png | Bin 0 -> 180 bytes kivio/kiviopart/stencils/Dia/Cisco/key.shape | 28 + .../stencils/Dia/Cisco/lan_to_lan.png | Bin 0 -> 261 bytes .../stencils/Dia/Cisco/lan_to_lan.shape | 49 + kivio/kiviopart/stencils/Dia/Cisco/laptop.png | Bin 0 -> 238 bytes .../kiviopart/stencils/Dia/Cisco/laptop.shape | 49 + .../stencils/Dia/Cisco/layer3_switch.png | Bin 0 -> 256 bytes .../stencils/Dia/Cisco/layer3_switch.shape | 42 + .../stencils/Dia/Cisco/localdirector.png | Bin 0 -> 226 bytes .../stencils/Dia/Cisco/localdirector.shape | 33 + kivio/kiviopart/stencils/Dia/Cisco/lock.png | Bin 0 -> 208 bytes kivio/kiviopart/stencils/Dia/Cisco/lock.shape | 31 + .../stencils/Dia/Cisco/longreach_cpe.png | Bin 0 -> 156 bytes .../stencils/Dia/Cisco/longreach_cpe.shape | 30 + .../stencils/Dia/Cisco/mac_woman.png | Bin 0 -> 329 bytes .../stencils/Dia/Cisco/mac_woman.shape | 107 + .../stencils/Dia/Cisco/macintosh.png | Bin 0 -> 256 bytes .../stencils/Dia/Cisco/macintosh.shape | 64 + .../stencils/Dia/Cisco/man_woman.png | Bin 0 -> 489 bytes .../stencils/Dia/Cisco/man_woman.shape | 46 + .../stencils/Dia/Cisco/mas_gateway.png | Bin 0 -> 217 bytes .../stencils/Dia/Cisco/mas_gateway.shape | 43 + kivio/kiviopart/stencils/Dia/Cisco/mau.png | Bin 0 -> 156 bytes kivio/kiviopart/stencils/Dia/Cisco/mau.shape | 33 + kivio/kiviopart/stencils/Dia/Cisco/mdu.png | Bin 0 -> 251 bytes kivio/kiviopart/stencils/Dia/Cisco/mdu.shape | 68 + kivio/kiviopart/stencils/Dia/Cisco/me1100.png | Bin 0 -> 236 bytes .../kiviopart/stencils/Dia/Cisco/me1100.shape | 38 + .../stencils/Dia/Cisco/metro1500.png | Bin 0 -> 219 bytes .../stencils/Dia/Cisco/metro1500.shape | 34 + .../kiviopart/stencils/Dia/Cisco/mgx8220.png | Bin 0 -> 263 bytes .../stencils/Dia/Cisco/mgx8220.shape | 31 + .../kiviopart/stencils/Dia/Cisco/mgx8240.png | Bin 0 -> 244 bytes .../stencils/Dia/Cisco/mgx8240.shape | 32 + .../kiviopart/stencils/Dia/Cisco/mgx8260.png | Bin 0 -> 274 bytes .../stencils/Dia/Cisco/mgx8260.shape | 37 + .../stencils/Dia/Cisco/microphone.png | Bin 0 -> 298 bytes .../stencils/Dia/Cisco/microphone.shape | 41 + .../stencils/Dia/Cisco/microwebserver.png | Bin 0 -> 225 bytes .../stencils/Dia/Cisco/microwebserver.shape | 28 + .../kiviopart/stencils/Dia/Cisco/mini_vax.png | Bin 0 -> 135 bytes .../stencils/Dia/Cisco/mini_vax.shape | 34 + kivio/kiviopart/stencils/Dia/Cisco/modem.png | Bin 0 -> 156 bytes .../kiviopart/stencils/Dia/Cisco/modem.shape | 29 + .../stencils/Dia/Cisco/moh_server.png | Bin 0 -> 204 bytes .../stencils/Dia/Cisco/moh_server.shape | 33 + .../stencils/Dia/Cisco/multilayer_switch.png | Bin 0 -> 236 bytes .../Dia/Cisco/multilayer_switch.shape | 61 + .../stencils/Dia/Cisco/multiswitch_device.png | Bin 0 -> 322 bytes .../Dia/Cisco/multiswitch_device.shape | 39 + kivio/kiviopart/stencils/Dia/Cisco/mux.png | Bin 0 -> 167 bytes kivio/kiviopart/stencils/Dia/Cisco/mux.shape | 62 + .../stencils/Dia/Cisco/netflow_router.png | Bin 0 -> 261 bytes .../stencils/Dia/Cisco/netflow_router.shape | 34 + .../stencils/Dia/Cisco/netranger.png | Bin 0 -> 238 bytes .../stencils/Dia/Cisco/netranger.shape | 30 + .../kiviopart/stencils/Dia/Cisco/netsonar.png | Bin 0 -> 214 bytes .../stencils/Dia/Cisco/netsonar.shape | 32 + .../stencils/Dia/Cisco/network_management.png | Bin 0 -> 188 bytes .../Dia/Cisco/network_management.shape | 34 + kivio/kiviopart/stencils/Dia/Cisco/octel.png | Bin 0 -> 224 bytes .../kiviopart/stencils/Dia/Cisco/octel.shape | 48 + .../kiviopart/stencils/Dia/Cisco/ons15500.png | Bin 0 -> 294 bytes .../stencils/Dia/Cisco/ons15500.shape | 47 + .../stencils/Dia/Cisco/optical_amplifier.png | Bin 0 -> 188 bytes .../Dia/Cisco/optical_amplifier.shape | 19 + .../Dia/Cisco/optical_services_router.png | Bin 0 -> 293 bytes .../Dia/Cisco/optical_services_router.shape | 58 + .../stencils/Dia/Cisco/optical_transport.png | Bin 0 -> 301 bytes .../Dia/Cisco/optical_transport.shape | 31 + kivio/kiviopart/stencils/Dia/Cisco/pad.png | Bin 0 -> 124 bytes kivio/kiviopart/stencils/Dia/Cisco/pad.shape | 27 + .../kiviopart/stencils/Dia/Cisco/pad_x28.png | Bin 0 -> 275 bytes .../stencils/Dia/Cisco/pad_x28.shape | 51 + kivio/kiviopart/stencils/Dia/Cisco/pbx.png | Bin 0 -> 214 bytes kivio/kiviopart/stencils/Dia/Cisco/pbx.shape | 45 + .../stencils/Dia/Cisco/pbx_switch.png | Bin 0 -> 154 bytes .../stencils/Dia/Cisco/pbx_switch.shape | 38 + kivio/kiviopart/stencils/Dia/Cisco/pc.png | Bin 0 -> 240 bytes kivio/kiviopart/stencils/Dia/Cisco/pc.shape | 47 + .../stencils/Dia/Cisco/pc_adapter_card.png | Bin 0 -> 308 bytes .../stencils/Dia/Cisco/pc_adapter_card.shape | 56 + kivio/kiviopart/stencils/Dia/Cisco/pc_man.png | Bin 0 -> 561 bytes .../kiviopart/stencils/Dia/Cisco/pc_man.shape | 139 + .../stencils/Dia/Cisco/pc_router_card.png | Bin 0 -> 272 bytes .../stencils/Dia/Cisco/pc_router_card.shape | 55 + .../kiviopart/stencils/Dia/Cisco/pc_video.png | Bin 0 -> 210 bytes .../stencils/Dia/Cisco/pc_video.shape | 18 + kivio/kiviopart/stencils/Dia/Cisco/pda.png | Bin 0 -> 147 bytes kivio/kiviopart/stencils/Dia/Cisco/pda.shape | 29 + kivio/kiviopart/stencils/Dia/Cisco/phone.png | Bin 0 -> 238 bytes .../kiviopart/stencils/Dia/Cisco/phone.shape | 47 + .../stencils/Dia/Cisco/phone_fax.png | Bin 0 -> 281 bytes .../stencils/Dia/Cisco/phone_fax.shape | 53 + .../stencils/Dia/Cisco/pix_firewall.png | Bin 0 -> 217 bytes .../stencils/Dia/Cisco/pix_firewall.shape | 27 + .../kiviopart/stencils/Dia/Cisco/printer.png | Bin 0 -> 182 bytes .../stencils/Dia/Cisco/printer.shape | 33 + .../Dia/Cisco/programmable_switch.png | Bin 0 -> 239 bytes .../Dia/Cisco/programmable_switch.shape | 52 + .../Dia/Cisco/protocol_translator.png | Bin 0 -> 206 bytes .../Dia/Cisco/protocol_translator.shape | 28 + kivio/kiviopart/stencils/Dia/Cisco/pxf.png | Bin 0 -> 265 bytes kivio/kiviopart/stencils/Dia/Cisco/pxf.shape | 65 + .../stencils/Dia/Cisco/radio_tower.png | Bin 0 -> 308 bytes .../stencils/Dia/Cisco/radio_tower.shape | 181 + .../kiviopart/stencils/Dia/Cisco/ratemux.png | Bin 0 -> 249 bytes .../stencils/Dia/Cisco/ratemux.shape | 44 + .../Dia/Cisco/relational_database.png | Bin 0 -> 184 bytes .../Dia/Cisco/relational_database.shape | 23 + .../kiviopart/stencils/Dia/Cisco/repeater.png | Bin 0 -> 154 bytes .../stencils/Dia/Cisco/repeater.shape | 29 + .../Dia/Cisco/route_switch_processor.png | Bin 0 -> 310 bytes .../Dia/Cisco/route_switch_processor.shape | 58 + kivio/kiviopart/stencils/Dia/Cisco/router.png | Bin 0 -> 241 bytes .../kiviopart/stencils/Dia/Cisco/router.shape | 27 + .../stencils/Dia/Cisco/router_in_building.png | Bin 0 -> 442 bytes .../Dia/Cisco/router_in_building.shape | 95 + .../Dia/Cisco/router_with_firewall.png | Bin 0 -> 273 bytes .../Dia/Cisco/router_with_firewall.shape | 56 + .../Dia/Cisco/router_with_silicon_switch.png | Bin 0 -> 240 bytes .../Cisco/router_with_silicon_switch.shape | 32 + kivio/kiviopart/stencils/Dia/Cisco/rps.png | Bin 0 -> 231 bytes kivio/kiviopart/stencils/Dia/Cisco/rps.shape | 32 + .../stencils/Dia/Cisco/running_man.png | Bin 0 -> 333 bytes .../stencils/Dia/Cisco/running_man.shape | 28 + .../stencils/Dia/Cisco/satellite.png | Bin 0 -> 276 bytes .../stencils/Dia/Cisco/satellite.shape | 43 + .../stencils/Dia/Cisco/satellite_dish.png | Bin 0 -> 316 bytes .../stencils/Dia/Cisco/satellite_dish.shape | 34 + kivio/kiviopart/stencils/Dia/Cisco/sc2200.png | Bin 0 -> 274 bytes .../kiviopart/stencils/Dia/Cisco/sc2200.shape | 36 + .../Dia/Cisco/sc2200_vsc3000_host.png | Bin 0 -> 175 bytes .../Dia/Cisco/sc2200_vsc3000_host.shape | 40 + .../kiviopart/stencils/Dia/Cisco/scanner.png | Bin 0 -> 292 bytes .../stencils/Dia/Cisco/scanner.shape | 47 + .../Dia/Cisco/server_with_pc_router.png | Bin 0 -> 194 bytes .../Dia/Cisco/server_with_pc_router.shape | 39 + .../stencils/Dia/Cisco/sip_proxy_server.png | Bin 0 -> 228 bytes .../stencils/Dia/Cisco/sip_proxy_server.shape | 38 + .../stencils/Dia/Cisco/sitting_woman.png | Bin 0 -> 194 bytes .../stencils/Dia/Cisco/sitting_woman.shape | 37 + .../stencils/Dia/Cisco/small_business.png | Bin 0 -> 199 bytes .../stencils/Dia/Cisco/small_business.shape | 36 + .../stencils/Dia/Cisco/small_hub.png | Bin 0 -> 195 bytes .../stencils/Dia/Cisco/small_hub.shape | 45 + .../stencils/Dia/Cisco/softphone.png | Bin 0 -> 230 bytes .../stencils/Dia/Cisco/softphone.shape | 51 + .../Dia/Cisco/software_based_server.png | Bin 0 -> 258 bytes .../Dia/Cisco/software_based_server.shape | 54 + .../kiviopart/stencils/Dia/Cisco/speaker.png | Bin 0 -> 316 bytes .../stencils/Dia/Cisco/speaker.shape | 30 + .../stencils/Dia/Cisco/standing_man.png | Bin 0 -> 171 bytes .../stencils/Dia/Cisco/standing_man.shape | 19 + kivio/kiviopart/stencils/Dia/Cisco/stb.png | Bin 0 -> 193 bytes kivio/kiviopart/stencils/Dia/Cisco/stb.shape | 37 + .../stencils/Dia/Cisco/storage_array.png | Bin 0 -> 248 bytes .../stencils/Dia/Cisco/storage_array.shape | 43 + .../stencils/Dia/Cisco/storage_router.png | Bin 0 -> 255 bytes .../stencils/Dia/Cisco/storage_router.shape | 33 + kivio/kiviopart/stencils/Dia/Cisco/stp.png | Bin 0 -> 202 bytes kivio/kiviopart/stencils/Dia/Cisco/stp.shape | 32 + .../stencils/Dia/Cisco/sun_workstation.png | Bin 0 -> 233 bytes .../stencils/Dia/Cisco/sun_workstation.shape | 43 + .../stencils/Dia/Cisco/supercomputer.png | Bin 0 -> 351 bytes .../stencils/Dia/Cisco/supercomputer.shape | 54 + kivio/kiviopart/stencils/Dia/Cisco/svx.png | Bin 0 -> 229 bytes kivio/kiviopart/stencils/Dia/Cisco/svx.shape | 95 + .../stencils/Dia/Cisco/system_controller.png | Bin 0 -> 228 bytes .../Dia/Cisco/system_controller.shape | 34 + kivio/kiviopart/stencils/Dia/Cisco/tablet.png | Bin 0 -> 234 bytes .../kiviopart/stencils/Dia/Cisco/tablet.shape | 38 + .../stencils/Dia/Cisco/tdm_router.png | Bin 0 -> 262 bytes .../stencils/Dia/Cisco/tdm_router.shape | 37 + .../stencils/Dia/Cisco/telecommuter.png | Bin 0 -> 222 bytes .../stencils/Dia/Cisco/telecommuter.shape | 18 + .../stencils/Dia/Cisco/telecommuter_house.png | Bin 0 -> 404 bytes .../Dia/Cisco/telecommuter_house.shape | 63 + .../Dia/Cisco/telecommuter_house_router.png | Bin 0 -> 416 bytes .../Dia/Cisco/telecommuter_house_router.shape | 45 + .../kiviopart/stencils/Dia/Cisco/terminal.png | Bin 0 -> 178 bytes .../stencils/Dia/Cisco/terminal.shape | 45 + .../stencils/Dia/Cisco/tokenring.png | Bin 0 -> 264 bytes .../stencils/Dia/Cisco/tokenring.shape | 17 + .../stencils/Dia/Cisco/transpath.png | Bin 0 -> 249 bytes .../stencils/Dia/Cisco/transpath.shape | 34 + kivio/kiviopart/stencils/Dia/Cisco/truck.png | Bin 0 -> 270 bytes .../kiviopart/stencils/Dia/Cisco/truck.shape | 53 + kivio/kiviopart/stencils/Dia/Cisco/turret.png | Bin 0 -> 416 bytes .../kiviopart/stencils/Dia/Cisco/turret.shape | 65 + kivio/kiviopart/stencils/Dia/Cisco/tv.png | Bin 0 -> 273 bytes kivio/kiviopart/stencils/Dia/Cisco/tv.shape | 70 + kivio/kiviopart/stencils/Dia/Cisco/ubr910.png | Bin 0 -> 228 bytes .../kiviopart/stencils/Dia/Cisco/ubr910.shape | 29 + .../stencils/Dia/Cisco/unity_server.png | Bin 0 -> 240 bytes .../stencils/Dia/Cisco/unity_server.shape | 43 + .../stencils/Dia/Cisco/universal_gateway.png | Bin 0 -> 220 bytes .../Dia/Cisco/universal_gateway.shape | 39 + .../stencils/Dia/Cisco/university.png | Bin 0 -> 244 bytes .../stencils/Dia/Cisco/university.shape | 64 + kivio/kiviopart/stencils/Dia/Cisco/ups.png | Bin 0 -> 223 bytes kivio/kiviopart/stencils/Dia/Cisco/ups.shape | 32 + .../stencils/Dia/Cisco/video_camera.png | Bin 0 -> 257 bytes .../stencils/Dia/Cisco/video_camera.shape | 28 + kivio/kiviopart/stencils/Dia/Cisco/vip.png | Bin 0 -> 308 bytes kivio/kiviopart/stencils/Dia/Cisco/vip.shape | 44 + .../stencils/Dia/Cisco/voice_atm_switch.png | Bin 0 -> 229 bytes .../stencils/Dia/Cisco/voice_atm_switch.shape | 37 + .../stencils/Dia/Cisco/voice_commserver.png | Bin 0 -> 231 bytes .../stencils/Dia/Cisco/voice_commserver.shape | 37 + .../stencils/Dia/Cisco/voice_router.png | Bin 0 -> 257 bytes .../stencils/Dia/Cisco/voice_router.shape | 30 + .../stencils/Dia/Cisco/voice_switch.png | Bin 0 -> 244 bytes .../stencils/Dia/Cisco/voice_switch.shape | 29 + .../stencils/Dia/Cisco/voice_switch2.png | Bin 0 -> 256 bytes .../stencils/Dia/Cisco/voice_switch2.shape | 40 + .../stencils/Dia/Cisco/vpn_concentrator.png | Bin 0 -> 241 bytes .../stencils/Dia/Cisco/vpn_concentrator.shape | 67 + .../stencils/Dia/Cisco/vpn_gateway.png | Bin 0 -> 225 bytes .../stencils/Dia/Cisco/vpn_gateway.shape | 31 + .../kiviopart/stencils/Dia/Cisco/vsc3000.png | Bin 0 -> 252 bytes .../stencils/Dia/Cisco/vsc3000.shape | 47 + .../stencils/Dia/Cisco/wavelength_router.png | Bin 0 -> 244 bytes .../Dia/Cisco/wavelength_router.shape | 33 + .../stencils/Dia/Cisco/web_browser.png | Bin 0 -> 214 bytes .../stencils/Dia/Cisco/web_browser.shape | 40 + .../stencils/Dia/Cisco/web_cluster.png | Bin 0 -> 643 bytes .../stencils/Dia/Cisco/web_cluster.shape | 88 + .../kiviopart/stencils/Dia/Cisco/wireless.png | Bin 0 -> 116 bytes .../stencils/Dia/Cisco/wireless.shape | 35 + .../stencils/Dia/Cisco/wireless_bridge.png | Bin 0 -> 247 bytes .../stencils/Dia/Cisco/wireless_bridge.shape | 27 + .../stencils/Dia/Cisco/wireless_transport.png | Bin 0 -> 187 bytes .../Dia/Cisco/wireless_transport.shape | 31 + .../stencils/Dia/Cisco/workgroup_director.png | Bin 0 -> 309 bytes .../Dia/Cisco/workgroup_director.shape | 48 + .../stencils/Dia/Cisco/workgroup_switch.png | Bin 0 -> 226 bytes .../stencils/Dia/Cisco/workgroup_switch.shape | 27 + .../stencils/Dia/Cisco/workstation.png | Bin 0 -> 203 bytes .../stencils/Dia/Cisco/workstation.shape | 64 + .../stencils/Dia/Cisco/www_server.png | Bin 0 -> 242 bytes .../stencils/Dia/Cisco/www_server.shape | 40 + .../kiviopart/stencils/Dia/Civil/Makefile.am | 61 + .../kiviopart/stencils/Dia/Civil/bvrest.shape | 32 + kivio/kiviopart/stencils/Dia/Civil/bvrest.xpm | 100 + .../stencils/Dia/Civil/civil_aerator.shape | 50 + .../stencils/Dia/Civil/civil_aerator.xpm | 78 + .../Dia/Civil/civil_arrow_right.shape | 82 + .../stencils/Dia/Civil/civil_arrow_right.xpm | 51 + .../stencils/Dia/Civil/civil_arrow_up.shape | 80 + .../stencils/Dia/Civil/civil_arrow_up.xpm | 59 + .../Dia/Civil/civil_backflow_preventer.shape | 59 + .../Dia/Civil/civil_backflow_preventer.xpm | 35 + .../stencils/Dia/Civil/civil_basin.shape | 78 + .../stencils/Dia/Civil/civil_basin.xpm | 42 + .../stencils/Dia/Civil/civil_container.shape | 26 + .../stencils/Dia/Civil/civil_container.xpm | 60 + .../Civil/civil_final-settling_basin.shape | 110 + .../Dia/Civil/civil_final-settling_basin.xpm | 67 + .../Dia/Civil/civil_frequency_converter.shape | 61 + .../Dia/Civil/civil_frequency_converter.xpm | 85 + .../stencils/Dia/Civil/civil_gas_bottle.shape | 18 + .../stencils/Dia/Civil/civil_gas_bottle.xpm | 41 + .../civil_horizontal_limiting_line.shape | 31 + .../Civil/civil_horizontal_limiting_line.xpm | 37 + .../Dia/Civil/civil_horizontal_valve.shape | 66 + .../Dia/Civil/civil_horizontal_valve.xpm | 31 + .../stencils/Dia/Civil/civil_motor.shape | 57 + .../stencils/Dia/Civil/civil_motor.xpm | 96 + ...civil_preliminary_clarification_tank.shape | 261 + .../civil_preliminary_clarification_tank.xpm | 76 + .../stencils/Dia/Civil/civil_rotor.shape | 108 + .../stencils/Dia/Civil/civil_rotor.xpm | 49 + .../stencils/Dia/Civil/civil_soil.shape | 75 + .../stencils/Dia/Civil/civil_soil.xpm | 123 + .../Civil/civil_vertical_limiting_line.shape | 27 + .../Civil/civil_vertical_limiting_line.xpm | 37 + .../Dia/Civil/civil_vertical_propeller.shape | 33 + .../Dia/Civil/civil_vertical_propeller.xpm | 76 + kivio/kiviopart/stencils/Dia/Civil/desc | 5 + .../stencils/Dia/Civil/hcompressor.shape | 34 + .../stencils/Dia/Civil/hcompressor.xpm | 116 + .../kiviopart/stencils/Dia/Civil/hpump.shape | 32 + kivio/kiviopart/stencils/Dia/Civil/hpump.xpm | 115 + .../kiviopart/stencils/Dia/Civil/hrest.shape | 26 + kivio/kiviopart/stencils/Dia/Civil/hrest.xpm | 69 + kivio/kiviopart/stencils/Dia/Civil/icon.xpm | 22 + kivio/kiviopart/stencils/Dia/Civil/line.shape | 21 + kivio/kiviopart/stencils/Dia/Civil/line.xpm | 38 + .../stencils/Dia/Civil/vcompressor.shape | 34 + .../stencils/Dia/Civil/vcompressor.xpm | 116 + .../kiviopart/stencils/Dia/Civil/vpump.shape | 32 + kivio/kiviopart/stencils/Dia/Civil/vpump.xpm | 115 + .../kiviopart/stencils/Dia/Civil/vrest.shape | 26 + kivio/kiviopart/stencils/Dia/Civil/vrest.xpm | 69 + .../stencils/Dia/Civil/water_level.shape | 32 + .../stencils/Dia/Civil/water_level.xpm | 58 + .../stencils/Dia/Contact/Makefile.am | 43 + .../kiviopart/stencils/Dia/Contact/c_if.shape | 23 + kivio/kiviopart/stencils/Dia/Contact/c_if.xpm | 27 + .../stencils/Dia/Contact/c_ifnot.shape | 25 + .../stencils/Dia/Contact/c_ifnot.xpm | 27 + .../stencils/Dia/Contact/c_lamp.shape | 25 + .../kiviopart/stencils/Dia/Contact/c_lamp.xpm | 27 + .../stencils/Dia/Contact/c_relay.shape | 26 + .../stencils/Dia/Contact/c_relay.xpm | 27 + kivio/kiviopart/stencils/Dia/Contact/desc | 5 + kivio/kiviopart/stencils/Dia/Contact/icon.xpm | 22 + .../kiviopart/stencils/Dia/Contact/l_if.shape | 25 + kivio/kiviopart/stencils/Dia/Contact/l_if.xpm | 27 + .../stencils/Dia/Contact/l_ifnot.shape | 26 + .../stencils/Dia/Contact/l_ifnot.xpm | 27 + .../stencils/Dia/Contact/l_out.shape | 27 + .../kiviopart/stencils/Dia/Contact/l_out.xpm | 27 + .../stencils/Dia/Contact/l_outj.shape | 30 + .../kiviopart/stencils/Dia/Contact/l_outj.xpm | 27 + .../stencils/Dia/Contact/l_outnot.shape | 28 + .../stencils/Dia/Contact/l_outnot.xpm | 27 + .../stencils/Dia/Contact/l_outr.shape | 33 + .../kiviopart/stencils/Dia/Contact/l_outr.xpm | 27 + .../stencils/Dia/Contact/l_outrcep.shape | 30 + .../stencils/Dia/Contact/l_outrcep.xpm | 27 + .../stencils/Dia/Contact/l_outs.shape | 33 + .../kiviopart/stencils/Dia/Contact/l_outs.xpm | 27 + .../stencils/Dia/Contact/l_sout.shape | 35 + .../kiviopart/stencils/Dia/Contact/l_sout.xpm | 27 + .../stencils/Dia/Contact/l_soutnot.shape | 34 + .../stencils/Dia/Contact/l_soutnot.xpm | 27 + .../stencils/Dia/Contact/l_soutr.shape | 40 + .../stencils/Dia/Contact/l_soutr.xpm | 27 + .../stencils/Dia/Contact/l_souts.shape | 39 + .../stencils/Dia/Contact/l_souts.xpm | 27 + .../stencils/Dia/Electric/Makefile.am | 25 + .../kiviopart/stencils/Dia/Electric/cnx.shape | 19 + kivio/kiviopart/stencils/Dia/Electric/cnx.xpm | 27 + .../stencils/Dia/Electric/command.shape | 24 + .../stencils/Dia/Electric/command.xpm | 27 + .../stencils/Dia/Electric/contact_f.shape | 23 + .../stencils/Dia/Electric/contact_f.xpm | 27 + .../stencils/Dia/Electric/contact_o.shape | 22 + .../stencils/Dia/Electric/contact_o.xpm | 27 + kivio/kiviopart/stencils/Dia/Electric/desc | 5 + .../kiviopart/stencils/Dia/Electric/icon.xpm | 22 + .../stencils/Dia/Electric/intpos_f.shape | 25 + .../stencils/Dia/Electric/intpos_f.xpm | 27 + .../stencils/Dia/Electric/intpos_o.shape | 24 + .../stencils/Dia/Electric/intpos_o.xpm | 27 + .../stencils/Dia/Electric/lamp.shape | 23 + .../kiviopart/stencils/Dia/Electric/lamp.xpm | 27 + .../stencils/Dia/Electric/relay.shape | 25 + .../kiviopart/stencils/Dia/Electric/relay.xpm | 27 + .../kiviopart/stencils/Dia/Jigsaw/Makefile.am | 41 + kivio/kiviopart/stencils/Dia/Jigsaw/desc | 5 + kivio/kiviopart/stencils/Dia/Jigsaw/icon.xpm | 22 + .../stencils/Dia/Jigsaw/part_iiii.shape | 11 + .../stencils/Dia/Jigsaw/part_iiii.xpm | 28 + .../stencils/Dia/Jigsaw/part_iiio.shape | 11 + .../stencils/Dia/Jigsaw/part_iiio.xpm | 28 + .../stencils/Dia/Jigsaw/part_iioi.shape | 11 + .../stencils/Dia/Jigsaw/part_iioi.xpm | 28 + .../stencils/Dia/Jigsaw/part_iioo.shape | 11 + .../stencils/Dia/Jigsaw/part_iioo.xpm | 28 + .../stencils/Dia/Jigsaw/part_ioii.shape | 11 + .../stencils/Dia/Jigsaw/part_ioii.xpm | 28 + .../stencils/Dia/Jigsaw/part_ioio.shape | 11 + .../stencils/Dia/Jigsaw/part_ioio.xpm | 28 + .../stencils/Dia/Jigsaw/part_iooi.shape | 11 + .../stencils/Dia/Jigsaw/part_iooi.xpm | 28 + .../stencils/Dia/Jigsaw/part_iooo.shape | 11 + .../stencils/Dia/Jigsaw/part_iooo.xpm | 28 + .../stencils/Dia/Jigsaw/part_oiii.shape | 11 + .../stencils/Dia/Jigsaw/part_oiii.xpm | 28 + .../stencils/Dia/Jigsaw/part_oiio.shape | 11 + .../stencils/Dia/Jigsaw/part_oiio.xpm | 28 + .../stencils/Dia/Jigsaw/part_oioi.shape | 11 + .../stencils/Dia/Jigsaw/part_oioi.xpm | 28 + .../stencils/Dia/Jigsaw/part_oioo.shape | 11 + .../stencils/Dia/Jigsaw/part_oioo.xpm | 28 + .../stencils/Dia/Jigsaw/part_ooii.shape | 11 + .../stencils/Dia/Jigsaw/part_ooii.xpm | 28 + .../stencils/Dia/Jigsaw/part_ooio.shape | 11 + .../stencils/Dia/Jigsaw/part_ooio.xpm | 28 + .../stencils/Dia/Jigsaw/part_oooi.shape | 11 + .../stencils/Dia/Jigsaw/part_oooi.xpm | 28 + .../stencils/Dia/Jigsaw/part_oooo.shape | 11 + .../stencils/Dia/Jigsaw/part_oooo.xpm | 28 + kivio/kiviopart/stencils/Dia/MSE/Makefile.am | 21 + .../stencils/Dia/MSE/demultiplexer.shape | 27 + .../stencils/Dia/MSE/demultiplexer.xpm | 86 + kivio/kiviopart/stencils/Dia/MSE/desc | 5 + kivio/kiviopart/stencils/Dia/MSE/icon.xpm | 22 + .../Dia/MSE/large_extension_node.shape | 30 + .../stencils/Dia/MSE/large_extension_node.xpm | 38 + .../stencils/Dia/MSE/multiplexer.shape | 27 + .../stencils/Dia/MSE/multiplexer.xpm | 86 + .../stencils/Dia/MSE/node_center.shape | 25 + .../stencils/Dia/MSE/node_center.xpm | 85 + .../Dia/MSE/small_extension_node.shape | 25 + .../stencils/Dia/MSE/small_extension_node.xpm | 32 + kivio/kiviopart/stencils/Dia/MSE/tacsat.shape | 27 + kivio/kiviopart/stencils/Dia/MSE/tacsat.xpm | 113 + kivio/kiviopart/stencils/Dia/Makefile.am | 7 + .../stencils/Dia/Network/Makefile.am | 71 + .../stencils/Dia/Network/antenna.shape | 31 + .../stencils/Dia/Network/antenna.xpm | 109 + .../stencils/Dia/Network/computer.shape | 43 + .../stencils/Dia/Network/computer.xpm | 31 + .../stencils/Dia/Network/dat_external.shape | 36 + .../stencils/Dia/Network/dat_external.xpm | 31 + kivio/kiviopart/stencils/Dia/Network/desc | 5 + .../stencils/Dia/Network/digitizing_board.png | Bin 0 -> 477 bytes .../Dia/Network/digitizing_board.shape | 33 + .../kiviopart/stencils/Dia/Network/disc.shape | 30 + kivio/kiviopart/stencils/Dia/Network/disc.xpm | 28 + .../stencils/Dia/Network/diskette.shape | 38 + .../stencils/Dia/Network/diskette.xpm | 30 + .../stencils/Dia/Network/firewall.shape | 81 + .../stencils/Dia/Network/firewall.xpm | 28 + .../stencils/Dia/Network/flash.shape | 15 + .../kiviopart/stencils/Dia/Network/flash.xpm | 27 + .../stencils/Dia/Network/genmonitor.shape | 33 + .../stencils/Dia/Network/genmonitor.xpm | 29 + .../kiviopart/stencils/Dia/Network/hub.shape | 41 + kivio/kiviopart/stencils/Dia/Network/hub.xpm | 28 + kivio/kiviopart/stencils/Dia/Network/icon.xpm | 22 + .../stencils/Dia/Network/mobile_phone.shape | 62 + .../stencils/Dia/Network/mobile_phone.xpm | 29 + .../stencils/Dia/Network/modem.shape | 26 + .../kiviopart/stencils/Dia/Network/modem.xpm | 67 + .../stencils/Dia/Network/modularswitch.shape | 53 + .../stencils/Dia/Network/modularswitch.xpm | 29 + .../stencils/Dia/Network/monitor.shape | 31 + .../stencils/Dia/Network/monitor.xpm | 29 + .../stencils/Dia/Network/nwcloud.shape | 27 + .../stencils/Dia/Network/nwcloud.xpm | 28 + .../stencils/Dia/Network/pc_bigtower.shape | 66 + .../stencils/Dia/Network/pc_bigtower.xpm | 30 + .../stencils/Dia/Network/pc_desktop.shape | 52 + .../stencils/Dia/Network/pc_desktop.xpm | 29 + .../stencils/Dia/Network/pc_miditower.shape | 57 + .../stencils/Dia/Network/pc_miditower.xpm | 30 + .../stencils/Dia/Network/pc_minitower.shape | 55 + .../stencils/Dia/Network/pc_minitower.xpm | 30 + .../stencils/Dia/Network/plotter.png | Bin 0 -> 631 bytes .../stencils/Dia/Network/plotter.shape | 44 + .../stencils/Dia/Network/printer.shape | 61 + .../stencils/Dia/Network/printer.xpm | 30 + .../stencils/Dia/Network/rj45plug.shape | 23 + .../stencils/Dia/Network/rj45plug.xpm | 28 + .../stencils/Dia/Network/router-symbol.shape | 26 + .../stencils/Dia/Network/router-symbol.xpm | 29 + .../stencils/Dia/Network/sceadplug.shape | 43 + .../stencils/Dia/Network/sceadplug.xpm | 28 + .../stencils/Dia/Network/speaker.shape | 19 + .../stencils/Dia/Network/speaker.xpm | 29 + .../stencils/Dia/Network/speaker_amp.shape | 25 + .../stencils/Dia/Network/speaker_amp.xpm | 29 + .../Dia/Network/switch-atm-symbol.shape | 26 + .../Dia/Network/switch-atm-symbol.xpm | 29 + .../stencils/Dia/Network/switch-symbol.shape | 21 + .../stencils/Dia/Network/switch-symbol.xpm | 29 + .../stencils/Dia/Network/telephone.png | Bin 0 -> 421 bytes .../stencils/Dia/Network/telephone.shape | 41 + .../stencils/Dia/Network/workstation.shape | 59 + .../stencils/Dia/Network/workstation.xpm | 29 + .../stencils/Dia/Network/zip-disk.shape | 49 + .../stencils/Dia/Network/zip-disk.xpm | 32 + .../stencils/Dia/Pneumatic/Makefile.am | 49 + .../stencils/Dia/Pneumatic/cnx.shape | 19 + .../kiviopart/stencils/Dia/Pneumatic/cnx.xpm | 27 + .../stencils/Dia/Pneumatic/comelec1.shape | 26 + .../stencils/Dia/Pneumatic/comelec1.xpm | 27 + .../stencils/Dia/Pneumatic/comelec2.shape | 27 + .../stencils/Dia/Pneumatic/comelec2.xpm | 27 + .../stencils/Dia/Pneumatic/commusc.shape | 24 + .../stencils/Dia/Pneumatic/commusc.xpm | 27 + .../stencils/Dia/Pneumatic/compb.shape | 25 + .../stencils/Dia/Pneumatic/compb.xpm | 27 + .../stencils/Dia/Pneumatic/compilh.shape | 28 + .../stencils/Dia/Pneumatic/compilh.xpm | 27 + .../stencils/Dia/Pneumatic/compilp.shape | 30 + .../stencils/Dia/Pneumatic/compilp.xpm | 27 + .../stencils/Dia/Pneumatic/compush.shape | 24 + .../stencils/Dia/Pneumatic/compush.xpm | 27 + .../stencils/Dia/Pneumatic/comspr.shape | 24 + .../stencils/Dia/Pneumatic/comspr.xpm | 27 + .../stencils/Dia/Pneumatic/dejack.shape | 30 + .../stencils/Dia/Pneumatic/dejack.xpm | 27 + kivio/kiviopart/stencils/Dia/Pneumatic/desc | 5 + .../stencils/Dia/Pneumatic/dist22.shape | 34 + .../stencils/Dia/Pneumatic/dist22.xpm | 27 + .../stencils/Dia/Pneumatic/dist32.shape | 39 + .../stencils/Dia/Pneumatic/dist32.xpm | 27 + .../stencils/Dia/Pneumatic/dist42.shape | 40 + .../stencils/Dia/Pneumatic/dist42.xpm | 27 + .../stencils/Dia/Pneumatic/dist52.shape | 49 + .../stencils/Dia/Pneumatic/dist52.xpm | 27 + .../stencils/Dia/Pneumatic/drain.shape | 20 + .../stencils/Dia/Pneumatic/drain.xpm | 27 + .../kiviopart/stencils/Dia/Pneumatic/icon.xpm | 22 + .../stencils/Dia/Pneumatic/press.shape | 22 + .../stencils/Dia/Pneumatic/press.xpm | 27 + .../stencils/Dia/Pneumatic/presshy.shape | 25 + .../stencils/Dia/Pneumatic/presshy.xpm | 27 + .../stencils/Dia/Pneumatic/presspn.shape | 25 + .../stencils/Dia/Pneumatic/presspn.xpm | 27 + .../stencils/Dia/Pneumatic/seijack.shape | 30 + .../stencils/Dia/Pneumatic/seijack.xpm | 27 + .../stencils/Dia/Pneumatic/seojack.shape | 30 + .../stencils/Dia/Pneumatic/seojack.xpm | 27 + kivio/kiviopart/stencils/Dia/SDL/Makefile.am | 43 + kivio/kiviopart/stencils/Dia/SDL/block.shape | 19 + kivio/kiviopart/stencils/Dia/SDL/block.xpm | 28 + .../kiviopart/stencils/Dia/SDL/comment.shape | 19 + kivio/kiviopart/stencils/Dia/SDL/comment.xpm | 28 + .../kiviopart/stencils/Dia/SDL/decision.shape | 18 + kivio/kiviopart/stencils/Dia/SDL/decision.xpm | 28 + kivio/kiviopart/stencils/Dia/SDL/desc | 5 + .../kiviopart/stencils/Dia/SDL/function.shape | 20 + kivio/kiviopart/stencils/Dia/SDL/function.xpm | 28 + kivio/kiviopart/stencils/Dia/SDL/header.shape | 20 + kivio/kiviopart/stencils/Dia/SDL/header.xpm | 28 + kivio/kiviopart/stencils/Dia/SDL/icon.xpm | 22 + kivio/kiviopart/stencils/Dia/SDL/inout.shape | 18 + kivio/kiviopart/stencils/Dia/SDL/inout.xpm | 28 + kivio/kiviopart/stencils/Dia/SDL/macro.shape | 18 + kivio/kiviopart/stencils/Dia/SDL/macro.xpm | 28 + kivio/kiviopart/stencils/Dia/SDL/note.shape | 19 + kivio/kiviopart/stencils/Dia/SDL/note.xpm | 28 + .../kiviopart/stencils/Dia/SDL/process.shape | 19 + kivio/kiviopart/stencils/Dia/SDL/process.xpm | 28 + .../kiviopart/stencils/Dia/SDL/receive.shape | 18 + kivio/kiviopart/stencils/Dia/SDL/receive.xpm | 28 + kivio/kiviopart/stencils/Dia/SDL/return.shape | 16 + kivio/kiviopart/stencils/Dia/SDL/return.xpm | 28 + kivio/kiviopart/stencils/Dia/SDL/save.shape | 17 + kivio/kiviopart/stencils/Dia/SDL/save.xpm | 28 + kivio/kiviopart/stencils/Dia/SDL/send.shape | 18 + kivio/kiviopart/stencils/Dia/SDL/send.xpm | 28 + .../kiviopart/stencils/Dia/SDL/service.shape | 20 + kivio/kiviopart/stencils/Dia/SDL/service.xpm | 28 + kivio/kiviopart/stencils/Dia/SDL/state.shape | 19 + kivio/kiviopart/stencils/Dia/SDL/state.xpm | 28 + kivio/kiviopart/stencils/Dia/SDL/stop.shape | 15 + kivio/kiviopart/stencils/Dia/SDL/stop.xpm | 27 + kivio/kiviopart/stencils/Dia/SDL/task.shape | 17 + kivio/kiviopart/stencils/Dia/SDL/task.xpm | 28 + .../kiviopart/stencils/Dia/Sybase/Makefile.am | 21 + .../stencils/Dia/Sybase/client.shape | 25 + .../kiviopart/stencils/Dia/Sybase/client.xpm | 28 + .../stencils/Dia/Sybase/dataserver.shape | 28 + .../stencils/Dia/Sybase/dataserver.xpm | 28 + kivio/kiviopart/stencils/Dia/Sybase/desc | 5 + kivio/kiviopart/stencils/Dia/Sybase/icon.xpm | 22 + kivio/kiviopart/stencils/Dia/Sybase/ltm.shape | 31 + kivio/kiviopart/stencils/Dia/Sybase/ltm.xpm | 30 + .../stencils/Dia/Sybase/repserver.shape | 31 + .../stencils/Dia/Sybase/repserver.xpm | 28 + kivio/kiviopart/stencils/Dia/Sybase/rsm.shape | 39 + kivio/kiviopart/stencils/Dia/Sybase/rsm.xpm | 29 + .../stencils/Dia/Sybase/stableq.shape | 38 + .../kiviopart/stencils/Dia/Sybase/stableq.xpm | 28 + kivio/kiviopart/stencils/Dia/desc | 5 + kivio/kiviopart/stencils/Dia/icon.xpm | 22 + .../Flowcharting/BasicFlowcharting/Card.sml | 34 + .../Flowcharting/BasicFlowcharting/Card.xpm | 41 + .../Flowcharting/BasicFlowcharting/Data.sml | 31 + .../Flowcharting/BasicFlowcharting/Data.xpm | 41 + .../BasicFlowcharting/Decision.sml | 31 + .../BasicFlowcharting/Decision.xpm | 41 + .../BasicFlowcharting/DirectData.sml | 45 + .../BasicFlowcharting/DirectData.xpm | 41 + .../BasicFlowcharting/Display.sml | 38 + .../BasicFlowcharting/Display.xpm | 41 + .../BasicFlowcharting/Document.sml | 53 + .../BasicFlowcharting/Document.xpm | 41 + .../BasicFlowcharting/InternalStorage.sml | 29 + .../BasicFlowcharting/InternalStorage.xpm | 41 + .../Flowcharting/BasicFlowcharting/LICENSE | 3 + .../BasicFlowcharting/LoopLimit.sml | 37 + .../BasicFlowcharting/LoopLimit.xpm | 41 + .../BasicFlowcharting/Makefile.am | 44 + .../BasicFlowcharting/ManualInput.sml | 31 + .../BasicFlowcharting/ManualInput.xpm | 41 + .../BasicFlowcharting/ManualOperation.sml | 31 + .../BasicFlowcharting/ManualOperation.xpm | 41 + .../BasicFlowcharting/OffPageRef.sml | 35 + .../BasicFlowcharting/OffPageRef.xpm | 41 + .../BasicFlowcharting/OnPageRef.sml | 26 + .../BasicFlowcharting/OnPageRef.xpm | 41 + .../BasicFlowcharting/PaperTape.sml | 58 + .../BasicFlowcharting/PaperTape.xpm | 41 + .../BasicFlowcharting/PredefinedProcess.sml | 29 + .../BasicFlowcharting/PredefinedProcess.xpm | 41 + .../BasicFlowcharting/Preperation.sml | 37 + .../BasicFlowcharting/Preperation.xpm | 41 + .../BasicFlowcharting/Process.sml | 25 + .../BasicFlowcharting/Process.xpm | 41 + .../BasicFlowcharting/PyStencil.spy | 112 + .../BasicFlowcharting/PyStencil.xpm | 41 + .../BasicFlowcharting/SequentialData.sml | 31 + .../BasicFlowcharting/SequentialData.xpm | 41 + .../BasicFlowcharting/StoredData.sml | 39 + .../BasicFlowcharting/StoredData.xpm | 41 + .../BasicFlowcharting/Terminator.sml | 45 + .../BasicFlowcharting/Terminator.xpm | 41 + .../Flowcharting/BasicFlowcharting/desc | 6 + .../Flowcharting/BasicFlowcharting/icon.xpm | 26 + .../Flowcharting/Extended/Data_Store.sml | 28 + .../Flowcharting/Extended/Data_Store.xpm | Bin 0 -> 601 bytes .../Flowcharting/Extended/Database.sml | 50 + .../Flowcharting/Extended/Database.xpm | Bin 0 -> 1927 bytes .../Flowcharting/Extended/Makefile.am | 13 + .../Flowcharting/Extended/Process.sml | 36 + .../Flowcharting/Extended/Process.xpm | Bin 0 -> 1377 bytes .../Flowcharting/Extended/Source_or_Sink.sml | 25 + .../Flowcharting/Extended/Source_or_Sink.xpm | Bin 0 -> 770 bytes .../stencils/Flowcharting/Extended/desc | 5 + .../stencils/Flowcharting/Extended/icon.xpm | Bin 0 -> 407 bytes .../stencils/Flowcharting/Logic/Makefile.am | 27 + .../stencils/Flowcharting/Logic/and.sml | 36 + .../stencils/Flowcharting/Logic/and.xpm | 64 + .../stencils/Flowcharting/Logic/buffer.sml | 25 + .../stencils/Flowcharting/Logic/buffer.xpm | 40 + .../stencils/Flowcharting/Logic/connector.sml | 25 + .../stencils/Flowcharting/Logic/connector.xpm | 21 + .../stencils/Flowcharting/Logic/desc | 6 + .../stencils/Flowcharting/Logic/icon.xpm | 171 + .../stencils/Flowcharting/Logic/inverter.sml | 29 + .../stencils/Flowcharting/Logic/inverter.xpm | 48 + .../stencils/Flowcharting/Logic/nand.sml | 39 + .../stencils/Flowcharting/Logic/nand.xpm | 62 + .../stencils/Flowcharting/Logic/nor.sml | 39 + .../stencils/Flowcharting/Logic/nor.xpm | 63 + .../stencils/Flowcharting/Logic/not.sml | 23 + .../stencils/Flowcharting/Logic/not.xpm | 18 + .../stencils/Flowcharting/Logic/or.sml | 38 + .../stencils/Flowcharting/Logic/or.xpm | 64 + .../stencils/Flowcharting/Logic/xor.sml | 45 + .../stencils/Flowcharting/Logic/xor.xpm | 63 + .../stencils/Flowcharting/Makefile.am | 5 + kivio/kiviopart/stencils/Flowcharting/desc | 5 + .../kiviopart/stencils/Flowcharting/icon.xpm | 26 + .../stencils/Geographic/Flags/Austria.sml | 43 + .../stencils/Geographic/Flags/Austria.xpm | Bin 0 -> 165 bytes .../stencils/Geographic/Flags/Belgium.sml | 43 + .../stencils/Geographic/Flags/Belgium.xpm | Bin 0 -> 321 bytes .../stencils/Geographic/Flags/Finland.sml | 42 + .../stencils/Geographic/Flags/Finland.xpm | Bin 0 -> 455 bytes .../stencils/Geographic/Flags/France.sml | 43 + .../stencils/Geographic/Flags/France.xpm | Bin 0 -> 180 bytes .../stencils/Geographic/Flags/Germany.sml | 43 + .../stencils/Geographic/Flags/Germany.xpm | Bin 0 -> 293 bytes .../Geographic/Flags/GreatBritain.sml | 142 + .../Geographic/Flags/GreatBritain.xpm | Bin 0 -> 757 bytes .../stencils/Geographic/Flags/Greece.sml | 123 + .../stencils/Geographic/Flags/Greece.xpm | Bin 0 -> 211 bytes .../stencils/Geographic/Flags/Iceland.sml | 59 + .../stencils/Geographic/Flags/Iceland.xpm | Bin 0 -> 268 bytes .../stencils/Geographic/Flags/Ireland.sml | 43 + .../stencils/Geographic/Flags/Ireland.xpm | Bin 0 -> 352 bytes .../stencils/Geographic/Flags/Italy.sml | 43 + .../stencils/Geographic/Flags/Italy.xpm | Bin 0 -> 352 bytes .../stencils/Geographic/Flags/Japan.sml | 24 + .../stencils/Geographic/Flags/Japan.xpm | Bin 0 -> 549 bytes .../stencils/Geographic/Flags/Luxemburg.sml | 43 + .../stencils/Geographic/Flags/Luxemburg.xpm | Bin 0 -> 164 bytes .../stencils/Geographic/Flags/Makefile.am | 41 + .../stencils/Geographic/Flags/Netherlands.sml | 43 + .../stencils/Geographic/Flags/Netherlands.xpm | Bin 0 -> 166 bytes .../stencils/Geographic/Flags/Norway.sml | 59 + .../stencils/Geographic/Flags/Norway.xpm | Bin 0 -> 593 bytes .../stencils/Geographic/Flags/Poland.sml | 34 + .../stencils/Geographic/Flags/Poland.xpm | Bin 0 -> 168 bytes .../stencils/Geographic/Flags/Sweden.sml | 42 + .../stencils/Geographic/Flags/Sweden.xpm | Bin 0 -> 499 bytes .../stencils/Geographic/Flags/Switzerland.sml | 42 + .../stencils/Geographic/Flags/Switzerland.xpm | Bin 0 -> 487 bytes .../stencils/Geographic/Flags/USA.sml | 802 + .../stencils/Geographic/Flags/USA.xpm | Bin 0 -> 531 bytes .../kiviopart/stencils/Geographic/Flags/desc | 5 + .../stencils/Geographic/Flags/icon.xpm | Bin 0 -> 1008 bytes .../kiviopart/stencils/Geographic/Makefile.am | 5 + .../stencils/Geographic/Maps/Belgium.sml | 247 + .../stencils/Geographic/Maps/Belgium.xpm | Bin 0 -> 321 bytes .../stencils/Geographic/Maps/Europe.sml | 23987 +++++ .../stencils/Geographic/Maps/Europe.xpm | Bin 0 -> 699 bytes .../stencils/Geographic/Maps/Makefile.am | 9 + kivio/kiviopart/stencils/Geographic/Maps/desc | 5 + .../stencils/Geographic/Maps/icon.xpm | Bin 0 -> 1035 bytes kivio/kiviopart/stencils/Geographic/desc | 5 + kivio/kiviopart/stencils/Geographic/icon.xpm | Bin 0 -> 1035 bytes .../Hardware/Computer/3FloppyDisk.sml | 91 + .../Hardware/Computer/3FloppyDisk.xpm | 557 + .../Hardware/Computer/DesktopPC2D.sml | 218 + .../Hardware/Computer/DesktopPC2D.xpm | Bin 0 -> 2553 bytes .../Hardware/Computer/DesktopPC3D.sml | 561 + .../Hardware/Computer/DesktopPC3D.xpm | Bin 0 -> 2553 bytes .../stencils/Hardware/Computer/HDD.sml | 62 + .../stencils/Hardware/Computer/HDD.xpm | Bin 0 -> 1824 bytes .../stencils/Hardware/Computer/Makefile.am | 37 + .../Computer/MinitowerDesktopPC2D.sml | 382 + .../Computer/MinitowerDesktopPC2D.xpm | Bin 0 -> 2818 bytes .../Computer/MinitowerDesktopPC3D.sml | 504 + .../Computer/MinitowerDesktopPC3D.xpm | Bin 0 -> 2818 bytes .../stencils/Hardware/Computer/Notebook.sml | 103 + .../stencils/Hardware/Computer/Notebook.xpm | Bin 0 -> 2286 bytes .../stencils/Hardware/Computer/PCIcard.sml | 53 + .../stencils/Hardware/Computer/PCIcard.xpm | Bin 0 -> 1318 bytes .../stencils/Hardware/Computer/Rack.sml | 605 + .../stencils/Hardware/Computer/Rack.xpm | Bin 0 -> 1699 bytes .../stencils/Hardware/Computer/Terminal.png | Bin 0 -> 2321 bytes .../stencils/Hardware/Computer/Terminal.sml | 174 + .../Hardware/Computer/Workstation3D.sml | 470 + .../Hardware/Computer/Workstation3D.xpm | Bin 0 -> 2553 bytes .../stencils/Hardware/Computer/XTerminal.sml | 196 + .../stencils/Hardware/Computer/XTerminal.xpm | Bin 0 -> 2138 bytes .../kiviopart/stencils/Hardware/Computer/desc | 5 + .../stencils/Hardware/Computer/icon.xpm | Bin 0 -> 1017 bytes .../stencils/Hardware/Computer/keyboard.sml | 109 + .../stencils/Hardware/Computer/keyboard.xpm | Bin 0 -> 1278 bytes .../stencils/Hardware/Computer/printer1.sml | 171 + .../stencils/Hardware/Computer/printer1.xpm | Bin 0 -> 2557 bytes .../stencils/Hardware/Computer/printer2.sml | 116 + .../stencils/Hardware/Computer/printer2.xpm | Bin 0 -> 2201 bytes .../stencils/Hardware/Computer/proxy.sml | 136 + .../stencils/Hardware/Computer/proxy.xpm | Bin 0 -> 2126 bytes kivio/kiviopart/stencils/Hardware/Makefile.am | 5 + .../Hardware/Miscellaneous/CellPhone.sml | 386 + .../Hardware/Miscellaneous/CellPhone.xpm | Bin 0 -> 2414 bytes .../Hardware/Miscellaneous/Makefile.am | 11 + .../Hardware/Miscellaneous/cd-rom.sml | 141 + .../Hardware/Miscellaneous/cd-rom.xpm | Bin 0 -> 2299 bytes .../stencils/Hardware/Miscellaneous/desc | 5 + .../stencils/Hardware/Miscellaneous/icon.xpm | Bin 0 -> 666 bytes .../stencils/Hardware/Miscellaneous/key.sml | 61 + .../stencils/Hardware/Miscellaneous/key.xpm | Bin 0 -> 1316 bytes kivio/kiviopart/stencils/Hardware/desc | 5 + kivio/kiviopart/stencils/Hardware/icon.xpm | Bin 0 -> 1017 bytes kivio/kiviopart/stencils/Makefile.am | 2 + .../stencils/Miscellaneous/Arrows/Arrow.sml | 30 + .../stencils/Miscellaneous/Arrows/Arrow.xpm | 41 + .../stencils/Miscellaneous/Arrows/Makefile.am | 15 + .../Miscellaneous/Arrows/Multiple_Arrow_1.sml | 75 + .../Miscellaneous/Arrows/Multiple_Arrow_1.xpm | 41 + .../Miscellaneous/Arrows/Multiple_Arrow_2.sml | 47 + .../Miscellaneous/Arrows/Multiple_Arrow_2.xpm | 41 + .../Miscellaneous/Arrows/Multiple_Arrow_3.sml | 47 + .../Miscellaneous/Arrows/Multiple_Arrow_3.xpm | 41 + .../Miscellaneous/Arrows/Sun_Arrow.sml | 45 + .../Miscellaneous/Arrows/Sun_Arrow.xpm | 41 + .../stencils/Miscellaneous/Arrows/desc | 5 + .../stencils/Miscellaneous/Arrows/icon.xpm | Bin 0 -> 777 bytes .../Miscellaneous/Buildings/Factory.sml | 70 + .../Miscellaneous/Buildings/Factory.xpm | Bin 0 -> 957 bytes .../Miscellaneous/Buildings/House.sml | 35 + .../Miscellaneous/Buildings/House.xpm | Bin 0 -> 1185 bytes .../Miscellaneous/Buildings/Makefile.am | 12 + .../Miscellaneous/Buildings/Office.sml | 3126 + .../Miscellaneous/Buildings/Office.xpm | Bin 0 -> 2958 bytes .../Miscellaneous/Buildings/Office2.xpm | Bin 0 -> 4333 bytes .../stencils/Miscellaneous/Buildings/desc | 5 + .../stencils/Miscellaneous/Buildings/icon.xpm | Bin 0 -> 762 bytes .../stencils/Miscellaneous/ER/Makefile.am | 4 + .../stencils/Miscellaneous/ER/attribute.sml | 20 + .../Miscellaneous/ER/derivedattribute.sml | 22 + .../kiviopart/stencils/Miscellaneous/ER/desc | 6 + .../stencils/Miscellaneous/ER/entity.sml | 25 + .../stencils/Miscellaneous/ER/icon.png | Bin 0 -> 158 bytes .../Miscellaneous/ER/multivaluedattribute.sml | 21 + .../Miscellaneous/ER/relationship.sml | 31 + .../stencils/Miscellaneous/ER/weakentity.sml | 26 + .../Miscellaneous/ER/weakrelationship.sml | 38 + .../stencils/Miscellaneous/Makefile.am | 5 + .../NassiShneiderman/Makefile.am | 29 + .../Miscellaneous/NassiShneiderman/block.png | Bin 0 -> 294 bytes .../Miscellaneous/NassiShneiderman/block.sml | 29 + .../Miscellaneous/NassiShneiderman/box.png | Bin 0 -> 246 bytes .../Miscellaneous/NassiShneiderman/box.sml | 23 + .../Miscellaneous/NassiShneiderman/call.png | Bin 0 -> 286 bytes .../Miscellaneous/NassiShneiderman/call.sml | 27 + .../NassiShneiderman/choice-add.png | Bin 0 -> 286 bytes .../NassiShneiderman/choice-add.sml | 23 + .../Miscellaneous/NassiShneiderman/choice.png | Bin 0 -> 290 bytes .../Miscellaneous/NassiShneiderman/choice.sml | 46 + .../NassiShneiderman/conditional-head1.png | Bin 0 -> 270 bytes .../NassiShneiderman/conditional-head1.sml | 27 + .../NassiShneiderman/conditional-head2.png | Bin 0 -> 265 bytes .../NassiShneiderman/conditional-head2.sml | 27 + .../NassiShneiderman/conditional.png | Bin 0 -> 318 bytes .../NassiShneiderman/conditional.sml | 31 + .../Miscellaneous/NassiShneiderman/desc | 6 + .../Miscellaneous/NassiShneiderman/exit.png | Bin 0 -> 293 bytes .../Miscellaneous/NassiShneiderman/exit.sml | 27 + .../NassiShneiderman/footloop.png | Bin 0 -> 281 bytes .../NassiShneiderman/footloop.sml | 28 + .../NassiShneiderman/headloop.png | Bin 0 -> 285 bytes .../NassiShneiderman/headloop.sml | 28 + .../Miscellaneous/NassiShneiderman/icon.png | Bin 0 -> 182 bytes .../NassiShneiderman/statement.png | Bin 0 -> 280 bytes .../NassiShneiderman/statement.sml | 23 + .../stencils/Miscellaneous/People/Bad.sml | 103 + .../stencils/Miscellaneous/People/Bad.xpm | Bin 0 -> 1397 bytes .../People/Blue_Collar_Worker.sml | 57 + .../People/Blue_Collar_Worker.xpm | Bin 0 -> 1836 bytes .../stencils/Miscellaneous/People/Good.sml | 143 + .../stencils/Miscellaneous/People/Good.xpm | Bin 0 -> 1294 bytes .../stencils/Miscellaneous/People/Group.sml | 96 + .../stencils/Miscellaneous/People/Group.xpm | Bin 0 -> 2549 bytes .../stencils/Miscellaneous/People/Makefile.am | 21 + .../stencils/Miscellaneous/People/Man.sml | 62 + .../stencils/Miscellaneous/People/Man.xpm | Bin 0 -> 1064 bytes .../People/White_Collar_Worker.sml | 65 + .../People/White_Collar_Worker.xpm | Bin 0 -> 1860 bytes .../stencils/Miscellaneous/People/Woman.sml | 66 + .../stencils/Miscellaneous/People/Woman.xpm | Bin 0 -> 1266 bytes .../Miscellaneous/People/Woman_Shape.sml | 870 + .../Miscellaneous/People/Woman_Shape.xpm | Bin 0 -> 1660 bytes .../stencils/Miscellaneous/People/desc | 5 + .../stencils/Miscellaneous/People/icon.xpm | Bin 0 -> 1058 bytes .../Miscellaneous/Transport/Makefile.am | 7 + .../Miscellaneous/Transport/Truck.sml | 59 + .../Miscellaneous/Transport/Truck.xpm | 41 + .../stencils/Miscellaneous/Transport/desc | 5 + .../stencils/Miscellaneous/Transport/icon.xpm | Bin 0 -> 531 bytes kivio/kiviopart/stencils/Miscellaneous/desc | 5 + .../kiviopart/stencils/Miscellaneous/icon.xpm | Bin 0 -> 666 bytes .../UML/ActivityDiagrams/Activity.sml | 51 + .../UML/ActivityDiagrams/Activity.xpm | 41 + .../UML/ActivityDiagrams/BranchMerge.sml | 31 + .../UML/ActivityDiagrams/BranchMerge.xpm | 41 + .../stencils/UML/ActivityDiagrams/End.sml | 24 + .../stencils/UML/ActivityDiagrams/End.xpm | 41 + .../UML/ActivityDiagrams/ForkJoin.sml | 28 + .../UML/ActivityDiagrams/ForkJoin.xpm | 40 + .../stencils/UML/ActivityDiagrams/Makefile.am | 29 + .../stencils/UML/ActivityDiagrams/Start.sml | 20 + .../stencils/UML/ActivityDiagrams/Start.xpm | 39 + .../stencils/UML/ActivityDiagrams/desc | 5 + .../stencils/UML/ActivityDiagrams/icon.xpm | 23 + .../stencils/UML/ClassDiagrams/Class.sml | 30 + .../stencils/UML/ClassDiagrams/Class.xpm | 41 + .../UML/ClassDiagrams/ClassConceptual.sml | 26 + .../UML/ClassDiagrams/ClassConceptual.xpm | 41 + .../stencils/UML/ClassDiagrams/Interface.sml | 20 + .../stencils/UML/ClassDiagrams/Interface.xpm | 40 + .../stencils/UML/ClassDiagrams/Makefile.am | 29 + .../stencils/UML/ClassDiagrams/Note.sml | 36 + .../stencils/UML/ClassDiagrams/Note.xpm | 41 + .../UML/ClassDiagrams/TemplateClass.sml | 36 + .../UML/ClassDiagrams/TemplateClass.xpm | 41 + .../kiviopart/stencils/UML/ClassDiagrams/desc | 5 + .../stencils/UML/ClassDiagrams/icon.xpm | 23 + kivio/kiviopart/stencils/UML/Makefile.am | 7 + kivio/kiviopart/stencils/UML/desc | 5 + kivio/kiviopart/stencils/UML/icon.xpm | 23 + kivio/kiviopart/tiles/Makefile.am | 15 + kivio/kiviopart/tiles/tile_scissors1.xpm | 217 + kivio/kiviopart/tiles/tile_skulls1.xpm | 266 + kivio/kiviopart/tiles/tile_yellow_swirl.xpm | 270 + kivio/kiviopart/tools/Makefile.am | 15 + kivio/kiviopart/tools/kivio_mousetool.cpp | 34 + kivio/kiviopart/tools/kivio_mousetool.h | 55 + kivio/kiviopart/tools/kivio_plugin.cpp | 34 + kivio/kiviopart/tools/kivio_plugin.h | 41 + kivio/kiviopart/tools/kivio_pluginmanager.cpp | 102 + kivio/kiviopart/tools/kivio_pluginmanager.h | 65 + kivio/kiviopart/tools/kivio_tool.rc | 4 + kivio/kiviopart/tools/mousetoolaction.cpp | 98 + kivio/kiviopart/tools/mousetoolaction.h | 126 + kivio/kiviopart/ui/Makefile.am | 21 + kivio/kiviopart/ui/addstencilsetdialog.cpp | 48 + kivio/kiviopart/ui/addstencilsetdialog.h | 47 + kivio/kiviopart/ui/aligndialog.ui | 632 + kivio/kiviopart/ui/export_page_dialog.cpp | 60 + kivio/kiviopart/ui/export_page_dialog.h | 28 + kivio/kiviopart/ui/export_page_dialog_base.ui | 175 + kivio/kiviopart/ui/kivio_birdeye_panel.cpp | 280 + kivio/kiviopart/ui/kivio_birdeye_panel.h | 71 + .../kiviopart/ui/kivio_birdeye_panel_base.ui | 108 + kivio/kiviopart/ui/kivio_layer_panel.cpp | 341 + kivio/kiviopart/ui/kivio_layer_panel.h | 84 + kivio/kiviopart/ui/kivio_layer_panel_base.ui | 99 + kivio/kiviopart/ui/kivio_protection_panel.cpp | 328 + kivio/kiviopart/ui/kivio_protection_panel.h | 49 + .../ui/kivio_protection_panel_base.ui | 128 + .../kiviopart/ui/kivioaddstencilsetpanel.cpp | 226 + kivio/kiviopart/ui/kivioaddstencilsetpanel.h | 56 + kivio/kiviopart/ui/kivioaligndialog.cpp | 93 + kivio/kiviopart/ui/kivioaligndialog.h | 43 + .../kiviopart/ui/kivioarrowheadformatdlg.cpp | 210 + kivio/kiviopart/ui/kivioarrowheadformatdlg.h | 70 + kivio/kiviopart/ui/kiviooptionsdialog.cpp | 338 + kivio/kiviopart/ui/kiviooptionsdialog.h | 107 + kivio/kiviopart/ui/kiviostencilformatdlg.cpp | 224 + kivio/kiviopart/ui/kiviostencilformatdlg.h | 73 + kivio/kiviopart/ui/kiviostencilsetwidget.ui | 165 + kivio/kiviopart/ui/kiviotextformatdlg.cpp | 192 + kivio/kiviopart/ui/kiviotextformatdlg.h | 69 + kivio/kiviopart/ui/layerlisttooltip.cpp | 61 + kivio/kiviopart/ui/layerlisttooltip.h | 44 + kivio/kiviopart/ui/objectlistpalette.cpp | 165 + kivio/kiviopart/ui/objectlistpalette.h | 53 + kivio/plugins/Makefile.am | 1 + kivio/plugins/kivioconnectortool/Makefile.am | 41 + .../cr22-action-kivio_connector.png | Bin 0 -> 743 bytes .../hi22-action-kivio_connector.png | Bin 0 -> 166 bytes .../kivio_connector_cursor1.png | Bin 0 -> 176 bytes .../kivio_connector_cursor2.png | Bin 0 -> 175 bytes .../kivioconnectortool.desktop | 63 + .../kivioconnectortool/kivioconnectortool.rc | 12 + kivio/plugins/kivioconnectortool/plugin.cpp | 58 + kivio/plugins/kivioconnectortool/plugin.h | 44 + .../straight_connector/Makefile.am | 32 + .../straight_connector/straight_connector.cpp | 379 + .../straight_connector/straight_connector.h | 95 + .../straight_connector/straight_connector.xpm | 41 + .../kivioconnectortool/tool_connector.cpp | 375 + .../kivioconnectortool/tool_connector.h | 101 + kivio/plugins/kivioselecttool/Makefile.am | 30 + .../kivioselecttool/kivioselecttool.desktop | 64 + .../kivioselecttool/kivioselecttool.rc | 18 + kivio/plugins/kivioselecttool/plugin.cpp | 58 + kivio/plugins/kivioselecttool/plugin.h | 44 + .../kivioselecttool/select_pics/Makefile.am | 13 + .../select_pics/kivio_arrow.xpm | 26 + kivio/plugins/kivioselecttool/tool_select.cpp | 1261 + kivio/plugins/kivioselecttool/tool_select.h | 135 + kivio/plugins/kiviosmlconnector/Makefile.am | 24 + kivio/plugins/kiviosmlconnector/README | 16 + .../kiviosmlconnector.desktop | 50 + .../kiviosmlconnector/kiviosmlconnector.rc | 8 + kivio/plugins/kiviosmlconnector/plugin.cpp | 58 + kivio/plugins/kiviosmlconnector/plugin.h | 44 + .../sml_connector/Makefile.am | 23 + .../sml_connector/sml_connector.cpp | 434 + .../sml_connector/sml_connector.h | 104 + .../sml_connector/sml_connector.xpm | 41 + .../kiviosmlconnector/tool_connector.cpp | 248 + .../kiviosmlconnector/tool_connector.h | 85 + kivio/plugins/kiviotargettool/Makefile.am | 21 + .../kiviotargettool/kiviotargettool.cpp | 113 + .../kiviotargettool/kiviotargettool.desktop | 49 + .../plugins/kiviotargettool/kiviotargettool.h | 62 + .../kiviotargettool/kiviotargettool.rc | 11 + .../kiviotargettoolfactory.cpp | 52 + .../kiviotargettool/kiviotargettoolfactory.h | 45 + kivio/plugins/kiviotexttool/Makefile.am | 38 + kivio/plugins/kiviotexttool/Text.sml | 16 + kivio/plugins/kiviotexttool/Text.xpm | 70 + .../kivio_stenciltexteditorui.ui | 256 + kivio/plugins/kiviotexttool/kivio_text.xpm | 25 + .../kiviotexttool/kivio_text_cursor.xpm | 25 + .../kiviotexttool/kiviotexttool.desktop | 66 + kivio/plugins/kiviotexttool/kiviotexttool.rc | 11 + kivio/plugins/kiviotexttool/plugin.cpp | 58 + kivio/plugins/kiviotexttool/plugin.h | 44 + .../kiviotexttool/stenciltexteditor.cpp | 190 + .../plugins/kiviotexttool/stenciltexteditor.h | 72 + kivio/plugins/kiviotexttool/tool_text.cpp | 439 + kivio/plugins/kiviotexttool/tool_text.h | 88 + kivio/plugins/kiviozoomtool/Makefile.am | 29 + .../kiviozoomtool/kiviozoomtool.desktop | 66 + kivio/plugins/kiviozoomtool/kiviozoomtool.rc | 52 + kivio/plugins/kiviozoomtool/plugin.cpp | 58 + kivio/plugins/kiviozoomtool/plugin.h | 43 + kivio/plugins/kiviozoomtool/tool_zoom.cpp | 364 + kivio/plugins/kiviozoomtool/tool_zoom.h | 92 + .../kiviozoomtool/zoom_pics/Makefile.am | 21 + .../kiviozoomtool/zoom_pics/kivio_zoom.xpm | 36 + .../zoom_pics/kivio_zoom_allobject.xpm | 26 + .../zoom_pics/kivio_zoom_hand.xpm | 35 + .../zoom_pics/kivio_zoom_height.xpm | 25 + .../zoom_pics/kivio_zoom_minus.xpm | 26 + .../zoom_pics/kivio_zoom_page.xpm | 25 + .../zoom_pics/kivio_zoom_plus.xpm | 26 + .../zoom_pics/kivio_zoom_selected.xpm | 26 + .../zoom_pics/kivio_zoom_width.xpm | 25 + kivio/stencil-format.kwd | Bin 0 -> 12809 bytes kivio/templates/Makefile.am | 1 + kivio/templates/basic/.directory | 52 + kivio/templates/basic/Makefile.am | 9 + kivio/templates/basic/basicflow.desktop | 92 + kivio/templates/basic/basicflow.kft | 25 + .../basic/cr48-action-template_basicflow.png | Bin 0 -> 1396 bytes .../basic/cr48-action-template_empty.png | Bin 0 -> 615 bytes .../crsc-action-template_basicworkflow.svgz | Bin 0 -> 1790 bytes .../basic/crsc-action-template_empty.svgz | Bin 0 -> 1438 bytes kivio/templates/basic/empty.desktop | 102 + kivio/templates/basic/empty.kft | 4 + koffice.lsm | 11 + koshell/AUTHORS | 3 + koshell/Makefile.am | 25 + koshell/TODO | 17 + koshell/hi128-app-koshell.png | Bin 0 -> 10870 bytes koshell/hi16-app-koshell.png | Bin 0 -> 844 bytes koshell/hi22-app-koshell.png | Bin 0 -> 1212 bytes koshell/hi32-app-koshell.png | Bin 0 -> 1940 bytes koshell/hi48-app-koshell.png | Bin 0 -> 3160 bytes koshell/hi64-app-koshell.png | Bin 0 -> 4498 bytes koshell/hisc-app-koshell.svgz | Bin 0 -> 2402 bytes koshell/iconsidepane.cpp | 595 + koshell/iconsidepane.h | 213 + koshell/koshell.desktop | 135 + koshell/koshell.kcfg | 18 + koshell/koshell_main.cc | 90 + koshell/koshell_shell.cc | 739 + koshell/koshell_shell.h | 148 + koshell/koshellsettings.kcfgc | 4 + koshell/koshellui.rc | 14 + kounavail/Makefile.am | 16 + kounavail/README | 15 + kounavail/kounavail.cc | 177 + kounavail/kounavail.desktop | 62 + kounavail/kounavail.h | 108 + kounavail/test-kounavail.kwd | Bin 0 -> 2105 bytes kounavail/test-kounavail2.kwd | Bin 0 -> 1476 bytes kplato/KPtViewIface.cc | 88 + kplato/KPtViewIface.h | 43 + kplato/Makefile.am | 131 + kplato/TODO | 187 + kplato/intervalitem.h | 48 + kplato/kplato.desktop | 64 + kplato/kplato.dtd | 100 + kplato/kplato.kdevelop | 163 + kplato/kplato.rc | 152 + kplato/kplato_readonly.rc | 24 + kplato/kplatopart.desktop | 106 + kplato/kptaboutdata.h | 49 + kplato/kptaccount.cc | 512 + kplato/kptaccount.h | 226 + kplato/kptaccountsdialog.cc | 50 + kplato/kptaccountsdialog.h | 52 + kplato/kptaccountspanel.cc | 452 + kplato/kptaccountspanel.h | 99 + kplato/kptaccountspanelbase.ui | 130 + kplato/kptaccountsview.cc | 451 + kplato/kptaccountsview.h | 131 + kplato/kptaccountsviewconfigdialog.cc | 85 + kplato/kptaccountsviewconfigdialog.h | 64 + kplato/kptaccountsviewconfigurepanelbase.ui | 68 + kplato/kptappointment.cc | 734 + kplato/kptappointment.h | 269 + kplato/kptcalendar.cc | 1036 + kplato/kptcalendar.h | 401 + kplato/kptcalendaredit.cc | 283 + kplato/kptcalendaredit.h | 66 + kplato/kptcalendareditbase.cc | 142 + kplato/kptcalendareditbase.h | 80 + kplato/kptcalendarlistdialog.cc | 433 + kplato/kptcalendarlistdialog.h | 107 + kplato/kptcalendarlistdialogbase.cc | 56 + kplato/kptcalendarlistdialogbase.h | 57 + kplato/kptcalendarlistpanel.ui | 129 + kplato/kptcalendarpanel.cc | 603 + kplato/kptcalendarpanel.h | 232 + kplato/kptcanvasitem.cc | 922 + kplato/kptcanvasitem.h | 288 + kplato/kptcommand.cc | 1918 + kplato/kptcommand.h | 1052 + kplato/kptconfig.cc | 87 + kplato/kptconfig.h | 61 + kplato/kptconfigbehaviorpanel.cc | 72 + kplato/kptconfigbehaviorpanel.h | 51 + kplato/kptconfigbehaviorpanelbase.ui | 102 + kplato/kptconfigbehaviorpanelbase.ui.h | 35 + kplato/kptconfigdialog.cc | 102 + kplato/kptconfigdialog.h | 55 + kplato/kptconfigtaskpanelbase.ui | 361 + kplato/kptcontext.cc | 163 + kplato/kptcontext.h | 87 + kplato/kptdatetable.cc | 1076 + kplato/kptdatetable.h | 427 + kplato/kptdatetime.cc | 84 + kplato/kptdatetime.h | 76 + kplato/kptdoublelistviewbase.cc | 511 + kplato/kptdoublelistviewbase.h | 183 + kplato/kptduration.cc | 257 + kplato/kptduration.h | 146 + kplato/kptdurationwidget.cw | 25 + kplato/kptdurationwidget.ui | 420 + kplato/kptdurationwidget.ui.h | 455 + kplato/kpteffortcostmap.h | 193 + kplato/kptfactory.cc | 101 + kplato/kptfactory.h | 51 + kplato/kptganttview.cc | 1240 + kplato/kptganttview.h | 211 + kplato/kptintervaledit.cc | 101 + kplato/kptintervaledit.h | 61 + kplato/kptintervaleditbase.ui | 124 + kplato/kptmainprojectdialog.cc | 67 + kplato/kptmainprojectdialog.h | 52 + kplato/kptmainprojectpanel.cc | 240 + kplato/kptmainprojectpanel.h | 74 + kplato/kptmainprojectpanelbase.ui | 287 + kplato/kptmap.h | 162 + kplato/kptmilestoneprogressdialog.cc | 71 + kplato/kptmilestoneprogressdialog.h | 52 + kplato/kptmilestoneprogresspanel.cc | 103 + kplato/kptmilestoneprogresspanel.h | 65 + kplato/kptmilestoneprogresspanelbase.ui | 63 + kplato/kptnode.cc | 1011 + kplato/kptnode.h | 642 + kplato/kptpart.cc | 419 + kplato/kptpart.h | 123 + kplato/kptpertcanvas.cc | 436 + kplato/kptpertcanvas.h | 105 + kplato/kptpertview.cc | 140 + kplato/kptpertview.h | 81 + kplato/kptproject.cc | 1104 + kplato/kptproject.h | 281 + kplato/kptprojectdialog.cc | 145 + kplato/kptprojectdialog.h | 72 + kplato/kptprojectdialogbase.ui | 260 + kplato/kptrelation.cc | 142 + kplato/kptrelation.h | 115 + kplato/kptrelationdialog.cc | 122 + kplato/kptrelationdialog.h | 79 + kplato/kptreportview.cc | 732 + kplato/kptreportview.h | 139 + kplato/kptrequestresourcespanel.cc | 266 + kplato/kptrequestresourcespanel.h | 122 + kplato/kptresource.cc | 1260 + kplato/kptresource.h | 579 + kplato/kptresourceappointmentsview.cc | 233 + kplato/kptresourceappointmentsview.h | 102 + kplato/kptresourcedialog.cc | 241 + kplato/kptresourcedialog.h | 92 + kplato/kptresourcesdialog.cc | 71 + kplato/kptresourcesdialog.h | 53 + kplato/kptresourcespanel.cc | 561 + kplato/kptresourcespanel.h | 90 + kplato/kptresourceview.cc | 611 + kplato/kptresourceview.h | 107 + kplato/kptschedule.cc | 681 + kplato/kptschedule.h | 325 + kplato/kptstandardworktimedialog.cc | 292 + kplato/kptstandardworktimedialog.h | 94 + kplato/kptsummarytaskdialog.cc | 69 + kplato/kptsummarytaskdialog.h | 72 + kplato/kptsummarytaskgeneralpanel.cc | 126 + kplato/kptsummarytaskgeneralpanel.h | 59 + kplato/kptsummarytaskgeneralpanelbase.ui | 248 + kplato/kpttask.cc | 1542 + kplato/kpttask.h | 306 + kplato/kpttaskappointmentsview.cc | 182 + kplato/kpttaskappointmentsview.h | 95 + kplato/kpttaskappointmentsview.ui.h | 114 + kplato/kpttaskcostpanel.cc | 151 + kplato/kpttaskcostpanel.h | 73 + kplato/kpttaskcostpanelbase.ui | 231 + kplato/kpttaskdefaultpanel.cc | 515 + kplato/kpttaskdefaultpanel.h | 113 + kplato/kpttaskdialog.cc | 96 + kplato/kpttaskdialog.h | 83 + kplato/kpttaskgeneralpanel.cc | 566 + kplato/kpttaskgeneralpanel.h | 116 + kplato/kpttaskgeneralpanelbase.ui | 547 + kplato/kpttasknotespanelbase.ui | 51 + kplato/kpttaskprogressdialog.cc | 71 + kplato/kpttaskprogressdialog.h | 53 + kplato/kpttaskprogresspanel.cc | 190 + kplato/kpttaskprogresspanel.h | 71 + kplato/kpttaskprogresspanelbase.ui | 431 + kplato/kpttaskresourcespanelbase.ui | 111 + kplato/kpttaskresourcespanelbase.ui.h | 35 + kplato/kptview.cc | 1519 + kplato/kptview.h | 275 + kplato/kptwbsdefinition.cc | 188 + kplato/kptwbsdefinition.h | 95 + kplato/kptwbsdefinitiondialog.cc | 68 + kplato/kptwbsdefinitiondialog.h | 50 + kplato/kptwbsdefinitionpanel.cc | 173 + kplato/kptwbsdefinitionpanel.h | 61 + kplato/kptwbsdefinitionpanelbase.ui | 185 + kplato/kptxmlloaderobject.h | 100 + kplato/main.cc | 50 + kplato/pics/Makefile.am | 1 + kplato/pics/cr128-app-kplato.png | Bin 0 -> 7376 bytes kplato/pics/cr16-app-kplato.png | Bin 0 -> 756 bytes kplato/pics/cr22-app-kplato.png | Bin 0 -> 1034 bytes kplato/pics/cr32-app-kplato.png | Bin 0 -> 1430 bytes kplato/pics/cr48-app-kplato.png | Bin 0 -> 1968 bytes kplato/pics/cr64-app-kplato.png | Bin 0 -> 3051 bytes kplato/pics/crsc-app-kplato.svgz | Bin 0 -> 3260 bytes kplato/relationpanel.ui | 284 + kplato/reports/Makefile.am | 7 + kplato/reports/README | 41 + kplato/reports/resourcelist.desktop | 45 + kplato/reports/resourcelist.ktf | 252 + kplato/reports/tasklist.desktop | 46 + kplato/reports/tasklist.ktf | 225 + kplato/resourcedialogbase.ui | 397 + kplato/resourcespanelbase.ui | 195 + kplato/standardworktimedialogbase.ui | 290 + kplato/templates/Makefile.am | 1 + kplato/templates/Simple/.directory | 60 + .../Simple/8HourDay-40HourWeek.desktop | 44 + .../Simple/8HourDay-40HourWeek.kplatot | 27 + kplato/templates/Simple/Makefile.am | 9 + kplato/templates/Simple/Plain.desktop | 70 + kplato/templates/Simple/Plain.kplatot | 4 + .../Simple/cr48-action-template_timechart.png | Bin 0 -> 1104 bytes .../crsc-action-template_timechart.svgz | Bin 0 -> 1872 bytes kplato/tests/CalendarTester.cpp | 125 + kplato/tests/CalendarTester.h | 30 + kplato/tests/DateTimeTester.cpp | 53 + kplato/tests/DateTimeTester.h | 37 + kplato/tests/DurationTester.cpp | 53 + kplato/tests/DurationTester.h | 28 + kplato/tests/Makefile.am | 29 + kplato/toolbar/Makefile.am | 2 + kplato/toolbar/cr22-action-accounts.png | Bin 0 -> 938 bytes kplato/toolbar/cr22-action-add_milestone.png | Bin 0 -> 773 bytes kplato/toolbar/cr22-action-add_sub_task.png | Bin 0 -> 770 bytes kplato/toolbar/cr22-action-add_task.png | Bin 0 -> 741 bytes kplato/toolbar/cr22-action-gantt_chart.png | Bin 0 -> 798 bytes kplato/toolbar/cr22-action-indent_task.png | Bin 0 -> 410 bytes kplato/toolbar/cr22-action-move_task_down.png | Bin 0 -> 378 bytes kplato/toolbar/cr22-action-move_task_up.png | Bin 0 -> 328 bytes kplato/toolbar/cr22-action-pert_chart.png | Bin 0 -> 856 bytes .../toolbar/cr22-action-project_calculate.png | Bin 0 -> 1031 bytes kplato/toolbar/cr22-action-resources.png | Bin 0 -> 1247 bytes kplato/toolbar/cr22-action-unindent_task.png | Bin 0 -> 399 bytes kpresenter/AUTHORS | 9 + kpresenter/CHANGES | 282 + kpresenter/KPrAboutData.h | 49 + kpresenter/KPrAutoFormObjectIface.cpp | 54 + kpresenter/KPrAutoFormObjectIface.h | 48 + kpresenter/KPrAutoformObject.cpp | 378 + kpresenter/KPrAutoformObject.h | 82 + kpresenter/KPrBackDia.cpp | 420 + kpresenter/KPrBackDia.h | 134 + kpresenter/KPrBackground.cpp | 653 + kpresenter/KPrBackground.h | 188 + kpresenter/KPrBezierCurveObject.cpp | 302 + kpresenter/KPrBezierCurveObject.h | 90 + kpresenter/KPrBgSpellCheck.cpp | 60 + kpresenter/KPrBgSpellCheck.h | 42 + kpresenter/KPrBrush.cpp | 247 + kpresenter/KPrBrush.h | 50 + kpresenter/KPrBrushProperty.cpp | 498 + kpresenter/KPrBrushProperty.h | 88 + kpresenter/KPrCanvas.cpp | 5704 ++ kpresenter/KPrCanvas.h | 938 + kpresenter/KPrClosedLineObject.cpp | 339 + kpresenter/KPrClosedLineObject.h | 84 + kpresenter/KPrCommand.cpp | 2827 + kpresenter/KPrCommand.h | 1094 + kpresenter/KPrConfig.cpp | 1128 + kpresenter/KPrConfig.h | 228 + kpresenter/KPrCubicBezierCurveObjectIface.cpp | 65 + kpresenter/KPrCubicBezierCurveObjectIface.h | 50 + kpresenter/KPrCustomSlideShowDia.cpp | 461 + kpresenter/KPrCustomSlideShowDia.h | 117 + kpresenter/KPrDocument.cpp | 4857 + kpresenter/KPrDocument.h | 714 + kpresenter/KPrDocumentIface.cpp | 571 + kpresenter/KPrDocumentIface.h | 188 + kpresenter/KPrDuplicateObjDia.cpp | 125 + kpresenter/KPrDuplicateObjDia.h | 54 + kpresenter/KPrEffectDia.cpp | 528 + kpresenter/KPrEffectDia.h | 94 + kpresenter/KPrEffectHandler.cpp | 1055 + kpresenter/KPrEffectHandler.h | 345 + kpresenter/KPrEllipseObject.cpp | 128 + kpresenter/KPrEllipseObject.h | 64 + kpresenter/KPrFactory.cpp | 84 + kpresenter/KPrFactory.h | 48 + kpresenter/KPrFactoryInit.cpp | 24 + kpresenter/KPrFindReplace.cpp | 64 + kpresenter/KPrFindReplace.h | 63 + kpresenter/KPrFreehandObject.cpp | 106 + kpresenter/KPrFreehandObject.h | 54 + kpresenter/KPrFreehandObjectIface.cpp | 67 + kpresenter/KPrFreehandObjectIface.h | 50 + kpresenter/KPrGeneralProperty.cpp | 254 + kpresenter/KPrGeneralProperty.h | 82 + kpresenter/KPrGotoPage.cpp | 91 + kpresenter/KPrGotoPage.h | 53 + kpresenter/KPrGradient.cpp | 136 + kpresenter/KPrGradient.h | 97 + kpresenter/KPrGradientCollection.cpp | 73 + kpresenter/KPrGradientCollection.h | 63 + kpresenter/KPrGroupObject.cpp | 642 + kpresenter/KPrGroupObject.h | 116 + kpresenter/KPrImageEffectDia.cpp | 412 + kpresenter/KPrImageEffectDia.h | 83 + kpresenter/KPrImportStyleDia.cpp | 157 + kpresenter/KPrImportStyleDia.h | 47 + kpresenter/KPrLineObject.cpp | 499 + kpresenter/KPrLineObject.h | 84 + kpresenter/KPrLineObjectIface.cpp | 66 + kpresenter/KPrLineObjectIface.h | 49 + kpresenter/KPrLoadingInfo.h | 87 + kpresenter/KPrMSPresentationSetup.cpp | 619 + kpresenter/KPrMSPresentationSetup.h | 159 + kpresenter/KPrMarginWidget.cpp | 129 + kpresenter/KPrMarginWidget.h | 57 + kpresenter/KPrMoveHelpLineDia.cpp | 154 + kpresenter/KPrMoveHelpLineDia.h | 95 + kpresenter/KPrNoteBar.cpp | 197 + kpresenter/KPrNoteBar.h | 65 + kpresenter/KPrObject.cpp | 2172 + kpresenter/KPrObject.h | 557 + kpresenter/KPrObject2DIface.cpp | 124 + kpresenter/KPrObject2DIface.h | 59 + kpresenter/KPrObjectIface.cpp | 288 + kpresenter/KPrObjectIface.h | 101 + kpresenter/KPrObjectProperties.cpp | 310 + kpresenter/KPrObjectProperties.h | 98 + kpresenter/KPrPBPreview.cpp | 125 + kpresenter/KPrPBPreview.h | 82 + kpresenter/KPrPage.cpp | 2614 + kpresenter/KPrPage.h | 607 + kpresenter/KPrPageEffects.cpp | 1590 + kpresenter/KPrPageEffects.h | 121 + kpresenter/KPrPageIface.cpp | 699 + kpresenter/KPrPageIface.h | 137 + kpresenter/KPrPartObject.cpp | 203 + kpresenter/KPrPartObject.h | 69 + kpresenter/KPrPenStyleWidget.cpp | 279 + kpresenter/KPrPenStyleWidget.h | 67 + kpresenter/KPrPgConfDia.cpp | 324 + kpresenter/KPrPgConfDia.h | 90 + kpresenter/KPrPicturePreview.cpp | 307 + kpresenter/KPrPicturePreview.h | 74 + kpresenter/KPrPictureProperty.cpp | 132 + kpresenter/KPrPictureProperty.h | 53 + kpresenter/KPrPieObject.cpp | 607 + kpresenter/KPrPieObject.h | 109 + kpresenter/KPrPieObjectIface.cpp | 83 + kpresenter/KPrPieObjectIface.h | 52 + kpresenter/KPrPiePreview.cpp | 66 + kpresenter/KPrPiePreview.h | 58 + kpresenter/KPrPieProperty.cpp | 141 + kpresenter/KPrPieProperty.h | 55 + kpresenter/KPrPixmapObject.cpp | 958 + kpresenter/KPrPixmapObject.h | 153 + kpresenter/KPrPixmapObjectIface.cpp | 101 + kpresenter/KPrPixmapObjectIface.h | 56 + kpresenter/KPrPointObject.cpp | 276 + kpresenter/KPrPointObject.h | 74 + kpresenter/KPrPolyLineObjectIface.cpp | 45 + kpresenter/KPrPolyLineObjectIface.h | 43 + kpresenter/KPrPolygonObject.cpp | 377 + kpresenter/KPrPolygonObject.h | 88 + kpresenter/KPrPolygonObjectIface.cpp | 62 + kpresenter/KPrPolygonObjectIface.h | 49 + kpresenter/KPrPolygonPreview.cpp | 120 + kpresenter/KPrPolygonPreview.h | 61 + kpresenter/KPrPolygonProperty.cpp | 134 + kpresenter/KPrPolygonProperty.h | 55 + kpresenter/KPrPolylineObject.cpp | 91 + kpresenter/KPrPolylineObject.h | 56 + kpresenter/KPrPresDurationDia.cpp | 81 + kpresenter/KPrPresDurationDia.h | 59 + kpresenter/KPrPrinterDlg.cpp | 114 + kpresenter/KPrPrinterDlg.h | 56 + kpresenter/KPrPropertyEditor.cpp | 499 + kpresenter/KPrPropertyEditor.h | 84 + .../KPrQuadricBezierCurveObjectIface.cpp | 66 + kpresenter/KPrQuadricBezierCurveObjectIface.h | 50 + kpresenter/KPrRectObject.cpp | 219 + kpresenter/KPrRectObject.h | 75 + kpresenter/KPrRectObjectIface.cpp | 52 + kpresenter/KPrRectObjectIface.h | 44 + kpresenter/KPrRectPreview.cpp | 50 + kpresenter/KPrRectPreview.h | 51 + kpresenter/KPrRectProperty.cpp | 147 + kpresenter/KPrRectProperty.h | 60 + kpresenter/KPrRotationDialogImpl.cpp | 174 + kpresenter/KPrRotationDialogImpl.h | 136 + kpresenter/KPrSVGPathParser.cpp | 179 + kpresenter/KPrSVGPathParser.h | 92 + kpresenter/KPrShadowDialogImpl.cpp | 91 + kpresenter/KPrShadowDialogImpl.h | 41 + kpresenter/KPrSideBar.cpp | 1111 + kpresenter/KPrSideBar.h | 182 + kpresenter/KPrSlideTransitionDia.cpp | 413 + kpresenter/KPrSlideTransitionDia.h | 79 + kpresenter/KPrSoundPlayer.cpp | 111 + kpresenter/KPrSoundPlayer.h | 63 + kpresenter/KPrStyleManager.cpp | 61 + kpresenter/KPrStyleManager.h | 49 + kpresenter/KPrTextDocument.cpp | 103 + kpresenter/KPrTextDocument.h | 55 + kpresenter/KPrTextObject.cpp | 2586 + kpresenter/KPrTextObject.h | 312 + kpresenter/KPrTextObjectIface.cpp | 366 + kpresenter/KPrTextObjectIface.h | 110 + kpresenter/KPrTextPreview.cpp | 101 + kpresenter/KPrTextPreview.h | 30 + kpresenter/KPrTextProperty.cpp | 139 + kpresenter/KPrTextProperty.h | 67 + kpresenter/KPrTextViewIface.cpp | 122 + kpresenter/KPrTextViewIface.h | 56 + kpresenter/KPrTransEffectDia.cpp | 466 + kpresenter/KPrTransEffectDia.h | 138 + kpresenter/KPrUtils.cpp | 448 + kpresenter/KPrUtils.h | 62 + kpresenter/KPrVariableCollection.cpp | 200 + kpresenter/KPrVariableCollection.h | 71 + kpresenter/KPrView.cpp | 6480 ++ kpresenter/KPrView.h | 1228 + kpresenter/KPrViewIface.cpp | 719 + kpresenter/KPrViewIface.h | 238 + kpresenter/KPrWebPresentation.cpp | 1305 + kpresenter/KPrWebPresentation.h | 227 + kpresenter/KoPointArray.cpp | 320 + kpresenter/KoPointArray.h | 65 + kpresenter/Makefile.am | 104 + kpresenter/TODO | 117 + kpresenter/autoformEdit/AFChoose.cpp | 202 + kpresenter/autoformEdit/AFChoose.h | 89 + kpresenter/autoformEdit/ATFInterpreter.cpp | 453 + kpresenter/autoformEdit/ATFInterpreter.h | 175 + kpresenter/autoformEdit/Makefile.am | 12 + kpresenter/autoforms/.autoforms | 2 + kpresenter/autoforms/Arrows/.directory | 41 + kpresenter/autoforms/Arrows/ArrowDown.atf | 255 + kpresenter/autoforms/Arrows/ArrowDown.desktop | 49 + kpresenter/autoforms/Arrows/ArrowDown.png | Bin 0 -> 309 bytes kpresenter/autoforms/Arrows/ArrowLeft.atf | 255 + kpresenter/autoforms/Arrows/ArrowLeft.desktop | 49 + kpresenter/autoforms/Arrows/ArrowLeft.png | Bin 0 -> 311 bytes kpresenter/autoforms/Arrows/ArrowLeftDown.atf | 255 + .../autoforms/Arrows/ArrowLeftDown.desktop | 49 + kpresenter/autoforms/Arrows/ArrowLeftDown.png | Bin 0 -> 337 bytes kpresenter/autoforms/Arrows/ArrowLeftUp.atf | 255 + .../autoforms/Arrows/ArrowLeftUp.desktop | 49 + kpresenter/autoforms/Arrows/ArrowLeftUp.png | Bin 0 -> 340 bytes kpresenter/autoforms/Arrows/ArrowRight.atf | 255 + .../autoforms/Arrows/ArrowRight.desktop | 49 + kpresenter/autoforms/Arrows/ArrowRight.png | Bin 0 -> 320 bytes .../autoforms/Arrows/ArrowRightDown.atf | 255 + .../autoforms/Arrows/ArrowRightDown.desktop | 49 + .../autoforms/Arrows/ArrowRightDown.png | Bin 0 -> 338 bytes kpresenter/autoforms/Arrows/ArrowRightUp.atf | 255 + .../autoforms/Arrows/ArrowRightUp.desktop | 49 + kpresenter/autoforms/Arrows/ArrowRightUp.png | Bin 0 -> 333 bytes kpresenter/autoforms/Arrows/ArrowUp.atf | 255 + kpresenter/autoforms/Arrows/ArrowUp.desktop | 49 + kpresenter/autoforms/Arrows/ArrowUp.png | Bin 0 -> 309 bytes kpresenter/autoforms/Arrows/Makefile.am | 18 + kpresenter/autoforms/Connections/.directory | 42 + .../autoforms/Connections/Connection1.atf | 131 + .../autoforms/Connections/Connection1.desktop | 71 + .../autoforms/Connections/Connection1.png | Bin 0 -> 259 bytes .../autoforms/Connections/Connection10.atf | 131 + .../Connections/Connection10.desktop | 71 + .../autoforms/Connections/Connection10.png | Bin 0 -> 246 bytes .../autoforms/Connections/Connection11.atf | 131 + .../Connections/Connection11.desktop | 71 + .../autoforms/Connections/Connection11.png | Bin 0 -> 246 bytes .../autoforms/Connections/Connection12.atf | 131 + .../Connections/Connection12.desktop | 71 + .../autoforms/Connections/Connection12.png | Bin 0 -> 245 bytes .../autoforms/Connections/Connection2.atf | 131 + .../autoforms/Connections/Connection2.desktop | 71 + .../autoforms/Connections/Connection2.png | Bin 0 -> 262 bytes .../autoforms/Connections/Connection3.atf | 131 + .../autoforms/Connections/Connection3.desktop | 71 + .../autoforms/Connections/Connection3.png | Bin 0 -> 262 bytes .../autoforms/Connections/Connection4.atf | 131 + .../autoforms/Connections/Connection4.desktop | 71 + .../autoforms/Connections/Connection4.png | Bin 0 -> 264 bytes .../autoforms/Connections/Connection5.atf | 224 + .../autoforms/Connections/Connection5.desktop | 71 + .../autoforms/Connections/Connection5.png | Bin 0 -> 254 bytes .../autoforms/Connections/Connection6.atf | 224 + .../autoforms/Connections/Connection6.desktop | 71 + .../autoforms/Connections/Connection6.png | Bin 0 -> 251 bytes .../autoforms/Connections/Connection7.atf | 224 + .../autoforms/Connections/Connection7.desktop | 71 + .../autoforms/Connections/Connection7.png | Bin 0 -> 250 bytes .../autoforms/Connections/Connection8.atf | 224 + .../autoforms/Connections/Connection8.desktop | 71 + .../autoforms/Connections/Connection8.png | Bin 0 -> 250 bytes .../autoforms/Connections/Connection9.atf | 131 + .../autoforms/Connections/Connection9.desktop | 71 + .../autoforms/Connections/Connection9.png | Bin 0 -> 244 bytes kpresenter/autoforms/Connections/Makefile.am | 24 + kpresenter/autoforms/Makefile.am | 6 + kpresenter/brushpropertyui.ui | 86 + kpresenter/configure.in.in | 1 + kpresenter/dtd/Makefile.am | 4 + kpresenter/dtd/kpresenter.dtd | 777 + kpresenter/generalpropertyui.ui | 193 + kpresenter/global.h | 299 + kpresenter/gradientpropertyui.ui | 178 + kpresenter/imageEffectBase.ui | 1480 + kpresenter/insertpagedia.ui | 185 + kpresenter/kprconverter.pl | 174 + kpresenter/kpresenter.desktop | 85 + kpresenter/kpresenter.rc | 682 + kpresenter/kpresenter_readonly.rc | 82 + kpresenter/kpresenterpart.desktop | 83 + kpresenter/main.cpp | 46 + kpresenter/marginui.ui | 167 + kpresenter/penstyle.ui | 199 + kpresenter/pics/Makefile.am | 6 + kpresenter/pics/hi16-app-kpresenter.png | Bin 0 -> 989 bytes kpresenter/pics/hi22-app-kpresenter.png | Bin 0 -> 1258 bytes kpresenter/pics/hi32-app-kpresenter.png | Bin 0 -> 1809 bytes kpresenter/pics/hi48-app-kpresenter.png | Bin 0 -> 2657 bytes kpresenter/pics/rotate/Makefile.am | 4 + kpresenter/pics/rotate/bl.png | Bin 0 -> 576 bytes kpresenter/pics/rotate/bldn.png | Bin 0 -> 557 bytes kpresenter/pics/rotate/bm.png | Bin 0 -> 538 bytes kpresenter/pics/rotate/bmdn.png | Bin 0 -> 509 bytes kpresenter/pics/rotate/br.png | Bin 0 -> 602 bytes kpresenter/pics/rotate/brdn.png | Bin 0 -> 562 bytes kpresenter/pics/rotate/ml.png | Bin 0 -> 520 bytes kpresenter/pics/rotate/mldn.png | Bin 0 -> 505 bytes kpresenter/pics/rotate/mr.png | Bin 0 -> 525 bytes kpresenter/pics/rotate/mrdn.png | Bin 0 -> 502 bytes kpresenter/pics/rotate/tl.png | Bin 0 -> 553 bytes kpresenter/pics/rotate/tldn.png | Bin 0 -> 534 bytes kpresenter/pics/rotate/tm.png | Bin 0 -> 525 bytes kpresenter/pics/rotate/tmdn.png | Bin 0 -> 497 bytes kpresenter/pics/rotate/tr.png | Bin 0 -> 575 bytes kpresenter/pics/rotate/trdn.png | Bin 0 -> 554 bytes kpresenter/pics/webslideshow-sidebar.png | Bin 0 -> 11299 bytes kpresenter/picturepropertyui.ui | 180 + kpresenter/piepropertyui.ui | 146 + kpresenter/polygonpropertyui.ui | 151 + kpresenter/presstep.h | 52 + kpresenter/rectpropertyui.ui | 181 + kpresenter/rotationpropertyui.ui | 166 + kpresenter/scripts/automate_presentation.sh | 25 + kpresenter/scripts/mkstandalone.sh | 91 + kpresenter/shadowdialog.ui | 499 + kpresenter/slideshow/Makefile.am | 5 + kpresenter/slideshow/first.bmp | Bin 0 -> 3126 bytes kpresenter/slideshow/first.jpeg | Bin 0 -> 1110 bytes kpresenter/slideshow/first.png | Bin 0 -> 2452 bytes kpresenter/slideshow/home.bmp | Bin 0 -> 4194 bytes kpresenter/slideshow/home.jpeg | Bin 0 -> 1402 bytes kpresenter/slideshow/home.png | Bin 0 -> 951 bytes kpresenter/slideshow/last.bmp | Bin 0 -> 3126 bytes kpresenter/slideshow/last.jpeg | Bin 0 -> 1130 bytes kpresenter/slideshow/last.png | Bin 0 -> 2483 bytes kpresenter/slideshow/next.bmp | Bin 0 -> 3126 bytes kpresenter/slideshow/next.jpeg | Bin 0 -> 1120 bytes kpresenter/slideshow/next.png | Bin 0 -> 2478 bytes kpresenter/slideshow/prev.bmp | Bin 0 -> 3126 bytes kpresenter/slideshow/prev.jpeg | Bin 0 -> 1116 bytes kpresenter/slideshow/prev.png | Bin 0 -> 2519 bytes kpresenter/slidetransitionwidget.ui | 308 + kpresenter/templates/A4/.directory | 7 + kpresenter/templates/A4/Makefile.am | 20 + .../templates/A4/OneColumnLandscape.kpt | Bin 0 -> 1140 bytes kpresenter/templates/A4/OneColumnPortrait.kpt | Bin 0 -> 1141 bytes kpresenter/templates/A4/TitleLandscape.kpt | Bin 0 -> 1111 bytes kpresenter/templates/A4/TitlePortrait.kpt | Bin 0 -> 1113 bytes .../templates/A4/TwoColumnLandscape.kpt | Bin 0 -> 1153 bytes kpresenter/templates/A4/TwoColumnPortrait.kpt | Bin 0 -> 1151 bytes kpresenter/templates/A4/emptyLandscape.kpt | Bin 0 -> 999 bytes kpresenter/templates/A4/emptyPortrait.kpt | Bin 0 -> 996 bytes kpresenter/templates/Makefile.am | 1 + kpresenter/templates/README | 9 + kpresenter/templates/Screen/.directory | 59 + kpresenter/templates/Screen/Makefile.am | 16 + .../templates/Screen/OneColumnLandscape.kpt | 101 + .../templates/Screen/TitleLandscape.kpt | 83 + .../templates/Screen/TwoColumnLandscape.kpt | 119 + .../templates/Screen/emptyLandscape.kpt | 64 + .../templates/Screenpresentations/.directory | 49 + .../BlueBreezeDouble.desktop | 90 + .../Screenpresentations/BlueBreezeDouble.kpt | Bin 0 -> 3490 bytes .../BlueBreezePicture.desktop | 92 + .../Screenpresentations/BlueBreezePicture.kpt | Bin 0 -> 93363 bytes .../BlueBreezeSingle.desktop | 90 + .../Screenpresentations/BlueBreezeSingle.kpt | Bin 0 -> 3425 bytes .../Screenpresentations/CopperPlain.desktop | 85 + .../Screenpresentations/CopperPlain.kpt | Bin 0 -> 3922 bytes .../GradientBlueRed.desktop | 101 + .../Screenpresentations/GradientBlueRed.kpt | Bin 0 -> 1227 bytes .../templates/Screenpresentations/Makefile.am | 18 + .../SnowyMountains.desktop | 100 + .../Screenpresentations/SnowyMountains.kpt | Bin 0 -> 61271 bytes .../TotallyNewProduct.desktop | 100 + .../Screenpresentations/TotallyNewProduct.kpt | Bin 0 -> 75755 bytes .../Screenpresentations/classroom.desktop | 78 + .../Screenpresentations/classroom.kpt | Bin 0 -> 104924 bytes .../hi48-action-template_bluebreezedouble.png | Bin 0 -> 995 bytes ...hi48-action-template_bluebreezepicture.png | Bin 0 -> 2718 bytes .../hi48-action-template_bluebreezesingle.png | Bin 0 -> 748 bytes .../hi48-action-template_classroom.png | Bin 0 -> 1779 bytes .../hi48-action-template_copperplain.png | Bin 0 -> 294 bytes .../hi48-action-template_gradientbluered.png | Bin 0 -> 252 bytes .../hi48-action-template_kde.png | Bin 0 -> 310 bytes .../hi48-action-template_kde2.png | Bin 0 -> 353 bytes .../hi48-action-template_kde3.png | Bin 0 -> 601 bytes .../hi48-action-template_savannah.png | Bin 0 -> 1390 bytes .../hi48-action-template_screenplain.png | Bin 0 -> 182 bytes .../hi48-action-template_snowymountains.png | Bin 0 -> 2785 bytes ...hi48-action-template_totallynewproduct.png | Bin 0 -> 2458 bytes .../templates/Screenpresentations/kde.desktop | 45 + .../templates/Screenpresentations/kde.kpt | Bin 0 -> 4382 bytes .../Screenpresentations/kde2.desktop | 47 + .../templates/Screenpresentations/kde2.kpt | Bin 0 -> 4314 bytes .../Screenpresentations/kde3.desktop | 45 + .../templates/Screenpresentations/kde3.kpt | Bin 0 -> 46091 bytes .../Screenpresentations/savannah.desktop | 64 + .../Screenpresentations/savannah.kpt | Bin 0 -> 71306 bytes .../common_desktop/OneColumnLandscape.desktop | 107 + .../common_desktop/OneColumnPortrait.desktop | 102 + .../common_desktop/TitleLandscape.desktop | 109 + .../common_desktop/TitlePortrait.desktop | 102 + .../common_desktop/TwoColumnLandscape.desktop | 106 + .../common_desktop/TwoColumnPortrait.desktop | 102 + .../common_desktop/emptyLandscape.desktop | 100 + .../common_desktop/emptyPortrait.desktop | 91 + kpresenter/templates/common_icon/Makefile.am | 3 + .../cr48-action-template_emptylandscape.png | Bin 0 -> 443 bytes .../cr48-action-template_emptyportrait.png | Bin 0 -> 469 bytes ...r48-action-template_onecolumnlandscape.png | Bin 0 -> 812 bytes ...cr48-action-template_onecolumnportrait.png | Bin 0 -> 892 bytes .../cr48-action-template_titlelandscape.png | Bin 0 -> 529 bytes .../cr48-action-template_titleportrait.png | Bin 0 -> 584 bytes ...r48-action-template_twocolumnlandscape.png | Bin 0 -> 918 bytes ...cr48-action-template_twocolumnportrait.png | Bin 0 -> 1155 bytes .../crsc-action-template_emptylandscape.svgz | Bin 0 -> 1415 bytes .../crsc-action-template_emptyportrait.svgz | Bin 0 -> 1432 bytes ...sc-action-template_onecolumnlandscape.svgz | Bin 0 -> 1816 bytes ...rsc-action-template_onecolumnportrait.svgz | Bin 0 -> 1830 bytes .../crsc-action-template_titlelandscape.svgz | Bin 0 -> 1581 bytes .../crsc-action-template_titleportrait.svgz | Bin 0 -> 1595 bytes ...sc-action-template_twocolumnlandscape.svgz | Bin 0 -> 1889 bytes ...rsc-action-template_twocolumnportrait.svgz | Bin 0 -> 1910 bytes kpresenter/templates/legal/.directory | 24 + kpresenter/templates/legal/Makefile.am | 20 + .../templates/legal/OneColumnLandscape.kpt | Bin 0 -> 1148 bytes .../templates/legal/OneColumnPortrait.kpt | Bin 0 -> 1175 bytes kpresenter/templates/legal/TitleLandscape.kpt | Bin 0 -> 1119 bytes kpresenter/templates/legal/TitlePortrait.kpt | Bin 0 -> 1113 bytes .../templates/legal/TwoColumnLandscape.kpt | Bin 0 -> 1167 bytes .../templates/legal/TwoColumnPortrait.kpt | Bin 0 -> 1158 bytes kpresenter/templates/legal/emptyLandscape.kpt | Bin 0 -> 1008 bytes kpresenter/templates/legal/emptyPortrait.kpt | Bin 0 -> 1008 bytes kpresenter/templates/letter/.directory | 43 + kpresenter/templates/letter/Makefile.am | 20 + .../templates/letter/OneColumnLandscape.kpt | Bin 0 -> 1141 bytes .../templates/letter/OneColumnPortrait.kpt | Bin 0 -> 1142 bytes .../templates/letter/TitleLandscape.kpt | Bin 0 -> 1113 bytes kpresenter/templates/letter/TitlePortrait.kpt | Bin 0 -> 1113 bytes .../templates/letter/TwoColumnLandscape.kpt | Bin 0 -> 1152 bytes .../templates/letter/TwoColumnPortrait.kpt | Bin 0 -> 1151 bytes .../templates/letter/emptyLandscape.kpt | Bin 0 -> 999 bytes kpresenter/templates/letter/emptyPortrait.kpt | Bin 0 -> 999 bytes kpresenter/tests/oasis-kpresenter.sh | 87 + kpresenter/textpropertyui.ui | 61 + kpresenter/toolbar/Makefile.am | 2 + kpresenter/toolbar/action-alignobjs.svg | 886 + kpresenter/toolbar/action-autoform.svg | 151 + kpresenter/toolbar/action-circle.svg | 152 + .../action-closed_cubicbeziercurve.svg | 444 + kpresenter/toolbar/action-closed_freehand.svg | 482 + kpresenter/toolbar/action-closed_polyline.svg | 482 + .../action-closed_quadricbeziercurve.svg | 402 + .../toolbar/action-cubicbeziercurve.svg | 432 + kpresenter/toolbar/action-effect.png.svg | 973 + kpresenter/toolbar/action-effect.svg | 879 + kpresenter/toolbar/action-freehand.svg | 481 + kpresenter/toolbar/action-line.svg | 539 + kpresenter/toolbar/action-penbrush.svg | 3337 + kpresenter/toolbar/action-pie.svg | 603 + kpresenter/toolbar/action-polygon.svg | 147 + kpresenter/toolbar/action-polyline.svg | 327 + .../toolbar/action-quadricbeziercurve.svg | 393 + kpresenter/toolbar/action-rectangle.svg | 150 + kpresenter/toolbar/action-slide_effect.svg | 680 + kpresenter/toolbar/cr16-action-alignobjs.png | Bin 0 -> 444 bytes kpresenter/toolbar/cr16-action-alignobjs.svg | 1066 + kpresenter/toolbar/cr16-action-autoform.png | Bin 0 -> 536 bytes kpresenter/toolbar/cr16-action-circle.png | Bin 0 -> 626 bytes .../cr16-action-closed_cubicbeziercurve.png | Bin 0 -> 429 bytes .../toolbar/cr16-action-closed_freehand.png | Bin 0 -> 589 bytes .../toolbar/cr16-action-closed_polyline.png | Bin 0 -> 487 bytes .../cr16-action-closed_quadricbeziercurve.png | Bin 0 -> 495 bytes .../toolbar/cr16-action-cubicbeziercurve.png | Bin 0 -> 288 bytes kpresenter/toolbar/cr16-action-effect.png | Bin 0 -> 997 bytes kpresenter/toolbar/cr16-action-freehand.png | Bin 0 -> 416 bytes kpresenter/toolbar/cr16-action-line.png | Bin 0 -> 240 bytes kpresenter/toolbar/cr16-action-penbrush.png | Bin 0 -> 946 bytes kpresenter/toolbar/cr16-action-pie.png | Bin 0 -> 625 bytes kpresenter/toolbar/cr16-action-polygon.png | Bin 0 -> 598 bytes kpresenter/toolbar/cr16-action-polyline.png | Bin 0 -> 273 bytes .../cr16-action-quadricbeziercurve.png | Bin 0 -> 303 bytes kpresenter/toolbar/cr16-action-rectangle.png | Bin 0 -> 410 bytes .../toolbar/cr16-action-slide_effect.png | Bin 0 -> 824 bytes kpresenter/toolbar/cr22-action-alignobjs.png | Bin 0 -> 485 bytes kpresenter/toolbar/cr22-action-alignobjs.svg | 1061 + kpresenter/toolbar/cr22-action-arrange.png | Bin 0 -> 429 bytes kpresenter/toolbar/cr22-action-autoform.png | Bin 0 -> 663 bytes kpresenter/toolbar/cr22-action-cakes.png | Bin 0 -> 330 bytes kpresenter/toolbar/cr22-action-cakes3d.png | Bin 0 -> 332 bytes kpresenter/toolbar/cr22-action-circle.png | Bin 0 -> 861 bytes .../cr22-action-closed_cubicbeziercurve.png | Bin 0 -> 624 bytes .../toolbar/cr22-action-closed_freehand.png | Bin 0 -> 880 bytes .../toolbar/cr22-action-closed_polyline.png | Bin 0 -> 691 bytes .../cr22-action-closed_quadricbeziercurve.png | Bin 0 -> 758 bytes .../toolbar/cr22-action-cubicbeziercurve.png | Bin 0 -> 373 bytes .../toolbar/cr22-action-edit_picture.png | Bin 0 -> 930 bytes kpresenter/toolbar/cr22-action-edit_pie.png | Bin 0 -> 435 bytes .../toolbar/cr22-action-edit_polygon.png | Bin 0 -> 268 bytes kpresenter/toolbar/cr22-action-effect.png | Bin 0 -> 1592 bytes kpresenter/toolbar/cr22-action-freehand.png | Bin 0 -> 579 bytes kpresenter/toolbar/cr22-action-line.png | Bin 0 -> 306 bytes .../toolbar/cr22-action-line_arrow_begin.png | Bin 0 -> 135 bytes .../toolbar/cr22-action-line_arrow_end.png | Bin 0 -> 137 bytes kpresenter/toolbar/cr22-action-line_begin.png | Bin 0 -> 419 bytes .../toolbar/cr22-action-line_circle_begin.png | Bin 0 -> 137 bytes .../toolbar/cr22-action-line_circle_end.png | Bin 0 -> 136 bytes .../cr22-action-line_dimension_line_begin.png | Bin 0 -> 144 bytes .../cr22-action-line_dimension_line_end.png | Bin 0 -> 134 bytes .../cr22-action-line_double_arrow_begin.png | Bin 0 -> 190 bytes .../cr22-action-line_double_arrow_end.png | Bin 0 -> 193 bytes ...22-action-line_double_line_arrow_begin.png | Bin 0 -> 184 bytes ...cr22-action-line_double_line_arrow_end.png | Bin 0 -> 185 bytes kpresenter/toolbar/cr22-action-line_end.png | Bin 0 -> 368 bytes .../cr22-action-line_line_arrow_begin.png | Bin 0 -> 168 bytes .../cr22-action-line_line_arrow_end.png | Bin 0 -> 193 bytes .../toolbar/cr22-action-line_normal_begin.png | Bin 0 -> 90 bytes .../toolbar/cr22-action-line_normal_end.png | Bin 0 -> 90 bytes .../toolbar/cr22-action-line_rect_begin.png | Bin 0 -> 103 bytes .../toolbar/cr22-action-line_rect_end.png | Bin 0 -> 109 bytes .../toolbar/cr22-action-mini_autoform.png | Bin 0 -> 274 bytes .../toolbar/cr22-action-mini_circle.png | Bin 0 -> 282 bytes .../toolbar/cr22-action-mini_clipart.png | Bin 0 -> 336 bytes kpresenter/toolbar/cr22-action-mini_line.png | Bin 0 -> 240 bytes kpresenter/toolbar/cr22-action-mini_pie.png | Bin 0 -> 319 bytes .../toolbar/cr22-action-mini_polygon.png | Bin 0 -> 138 bytes kpresenter/toolbar/cr22-action-mini_rect.png | Bin 0 -> 259 bytes kpresenter/toolbar/cr22-action-pen_style.png | Bin 0 -> 237 bytes .../toolbar/cr22-action-pen_style_dash.png | Bin 0 -> 107 bytes .../toolbar/cr22-action-pen_style_dashdot.png | Bin 0 -> 115 bytes .../cr22-action-pen_style_dashdotdot.png | Bin 0 -> 110 bytes .../toolbar/cr22-action-pen_style_dot.png | Bin 0 -> 101 bytes .../toolbar/cr22-action-pen_style_nopen.png | Bin 0 -> 88 bytes .../toolbar/cr22-action-pen_style_solid.png | Bin 0 -> 106 bytes kpresenter/toolbar/cr22-action-pen_width.png | Bin 0 -> 218 bytes kpresenter/toolbar/cr22-action-pen_width1.png | Bin 0 -> 106 bytes .../toolbar/cr22-action-pen_width10.png | Bin 0 -> 108 bytes kpresenter/toolbar/cr22-action-pen_width2.png | Bin 0 -> 108 bytes kpresenter/toolbar/cr22-action-pen_width3.png | Bin 0 -> 107 bytes kpresenter/toolbar/cr22-action-pen_width4.png | Bin 0 -> 110 bytes kpresenter/toolbar/cr22-action-pen_width5.png | Bin 0 -> 109 bytes kpresenter/toolbar/cr22-action-pen_width6.png | Bin 0 -> 108 bytes kpresenter/toolbar/cr22-action-pen_width7.png | Bin 0 -> 108 bytes kpresenter/toolbar/cr22-action-pen_width8.png | Bin 0 -> 109 bytes kpresenter/toolbar/cr22-action-pen_width9.png | Bin 0 -> 108 bytes kpresenter/toolbar/cr22-action-penbrush.png | Bin 0 -> 1487 bytes kpresenter/toolbar/cr22-action-pgnum.png | Bin 0 -> 299 bytes kpresenter/toolbar/cr22-action-pie.png | Bin 0 -> 851 bytes kpresenter/toolbar/cr22-action-polygon.png | Bin 0 -> 791 bytes kpresenter/toolbar/cr22-action-polyline.png | Bin 0 -> 341 bytes .../cr22-action-quadricbeziercurve.png | Bin 0 -> 389 bytes kpresenter/toolbar/cr22-action-rectangle.png | Bin 0 -> 562 bytes .../toolbar/cr22-action-slide_effect.png | Bin 0 -> 1253 bytes kpresenter/toolbar/cr22-action-webpres.png | Bin 0 -> 420 bytes kpresenter/toolbar/cr32-action-alignobjs.png | Bin 0 -> 946 bytes kpresenter/toolbar/cr32-action-autoform.png | Bin 0 -> 1006 bytes kpresenter/toolbar/cr32-action-circle.png | Bin 0 -> 1214 bytes .../cr32-action-closed_cubicbeziercurve.png | Bin 0 -> 972 bytes .../toolbar/cr32-action-closed_freehand.png | Bin 0 -> 1288 bytes .../toolbar/cr32-action-closed_polyline.png | Bin 0 -> 1090 bytes .../cr32-action-closed_quadricbeziercurve.png | Bin 0 -> 1166 bytes .../toolbar/cr32-action-cubicbeziercurve.png | Bin 0 -> 480 bytes kpresenter/toolbar/cr32-action-effect.png | Bin 0 -> 2753 bytes kpresenter/toolbar/cr32-action-freehand.png | Bin 0 -> 814 bytes kpresenter/toolbar/cr32-action-line.png | Bin 0 -> 406 bytes kpresenter/toolbar/cr32-action-penbrush.png | Bin 0 -> 2552 bytes kpresenter/toolbar/cr32-action-pie.png | Bin 0 -> 1256 bytes kpresenter/toolbar/cr32-action-polygon.png | Bin 0 -> 1195 bytes kpresenter/toolbar/cr32-action-polyline.png | Bin 0 -> 507 bytes .../cr32-action-quadricbeziercurve.png | Bin 0 -> 552 bytes kpresenter/toolbar/cr32-action-rectangle.png | Bin 0 -> 750 bytes .../toolbar/cr32-action-slide_effect.png | Bin 0 -> 1911 bytes kpresenter/toolbar/cr48-action-alignobjs.png | Bin 0 -> 1616 bytes kpresenter/toolbar/cr48-action-autoform.png | Bin 0 -> 1490 bytes kpresenter/toolbar/cr48-action-circle.png | Bin 0 -> 1882 bytes .../cr48-action-closed_cubicbeziercurve.png | Bin 0 -> 1480 bytes .../toolbar/cr48-action-closed_freehand.png | Bin 0 -> 2062 bytes .../toolbar/cr48-action-closed_polyline.png | Bin 0 -> 1620 bytes .../cr48-action-closed_quadricbeziercurve.png | Bin 0 -> 1730 bytes .../toolbar/cr48-action-cubicbeziercurve.png | Bin 0 -> 706 bytes kpresenter/toolbar/cr48-action-effect.png | Bin 0 -> 4817 bytes kpresenter/toolbar/cr48-action-freehand.png | Bin 0 -> 1310 bytes kpresenter/toolbar/cr48-action-line.png | Bin 0 -> 670 bytes kpresenter/toolbar/cr48-action-penbrush.png | Bin 0 -> 4571 bytes kpresenter/toolbar/cr48-action-pie.png | Bin 0 -> 1981 bytes kpresenter/toolbar/cr48-action-polygon.png | Bin 0 -> 1866 bytes kpresenter/toolbar/cr48-action-polyline.png | Bin 0 -> 816 bytes .../cr48-action-quadricbeziercurve.png | Bin 0 -> 837 bytes kpresenter/toolbar/cr48-action-rectangle.png | Bin 0 -> 1189 bytes .../toolbar/cr48-action-slide_effect.png | Bin 0 -> 3328 bytes krita/AUTHORS | 20 + krita/ChangeLog | 1 + krita/HACKING | 93 + krita/IMAGE_LIBRARIES | 259 + krita/Makefile.am | 47 + krita/README | 13 + krita/TODO | 181 + krita/UIcomments | 59 + krita/colorspaces/Makefile.am | 15 + krita/colorspaces/README | 11 + krita/colorspaces/cmyk_u16/Makefile.am | 30 + krita/colorspaces/cmyk_u16/cmyk_u16_plugin.cc | 61 + krita/colorspaces/cmyk_u16/cmyk_u16_plugin.h | 37 + .../cmyk_u16/kis_cmyk_u16_colorspace.cc | 714 + .../cmyk_u16/kis_cmyk_u16_colorspace.h | 123 + .../cmyk_u16/krita_cmyk_u16_plugin.desktop | 85 + krita/colorspaces/cmyk_u8/Makefile.am | 20 + krita/colorspaces/cmyk_u8/cmyk_plugin.cc | 66 + krita/colorspaces/cmyk_u8/cmyk_plugin.h | 37 + krita/colorspaces/cmyk_u8/cmykplugin.rc | 7 + krita/colorspaces/cmyk_u8/composite.h | 76 + .../cmyk_u8/kis_cmyk_colorspace.cc | 710 + .../colorspaces/cmyk_u8/kis_cmyk_colorspace.h | 126 + .../cmyk_u8/kritacmykplugin.desktop | 99 + .../colorspaces/cmyk_u8/templates/.directory | 5 + .../colorspaces/cmyk_u8/templates/Makefile.am | 8 + .../cr48-action-template_cmyk_empty.png | Bin 0 -> 431 bytes .../crsc-action-template_cmyk_empty.svgz | Bin 0 -> 1655 bytes .../cmyk_u8/templates/white_2000x800.desktop | 100 + .../cmyk_u8/templates/white_2000x800.kra | Bin 0 -> 17590 bytes krita/colorspaces/gray_u16/Makefile.am | 29 + krita/colorspaces/gray_u16/gray_u16_plugin.cc | 63 + krita/colorspaces/gray_u16/gray_u16_plugin.h | 37 + .../gray_u16/kis_gray_u16_colorspace.cc | 658 + .../gray_u16/kis_gray_u16_colorspace.h | 118 + .../gray_u16/krita_gray_u16_plugin.desktop | 83 + krita/colorspaces/gray_u8/Makefile.am | 31 + krita/colorspaces/gray_u8/gray_plugin.cc | 77 + krita/colorspaces/gray_u8/gray_plugin.h | 36 + krita/colorspaces/gray_u8/grayplugin.rc | 7 + .../gray_u8/kis_gray_colorspace.cc | 997 + .../colorspaces/gray_u8/kis_gray_colorspace.h | 114 + .../gray_u8/kritagrayplugin.desktop | 97 + .../colorspaces/gray_u8/templates/.directory | 48 + .../colorspaces/gray_u8/templates/Makefile.am | 8 + .../cr48-action-template_gray_empty.png | Bin 0 -> 1367 bytes .../crsc-action-template_gray_empty.svgz | Bin 0 -> 1725 bytes .../gray_u8/templates/white_640x480.desktop | 99 + .../gray_u8/templates/white_640x480.kra | Bin 0 -> 2824 bytes krita/colorspaces/gray_u8/tests/Makefile.am | 17 + ...s_strategy_colorspace_grayscale_tester.cpp | 155 + ...kis_strategy_colorspace_grayscale_tester.h | 34 + krita/colorspaces/lms_f32/Makefile.am | 28 + .../lms_f32/kis_lms_f32_colorspace.cc | 385 + .../lms_f32/kis_lms_f32_colorspace.h | 157 + .../lms_f32/krita_lms_f32_plugin.desktop | 77 + krita/colorspaces/lms_f32/lms_f32_plugin.cc | 64 + krita/colorspaces/lms_f32/lms_f32_plugin.h | 39 + krita/colorspaces/lms_f32/lms_f32_plugin.rc | 9 + krita/colorspaces/rgb_f16half/Makefile.am | 35 + .../rgb_f16half/kis_rgb_f16half_colorspace.cc | 952 + .../rgb_f16half/kis_rgb_f16half_colorspace.h | 144 + .../krita_rgb_f16half_plugin.desktop | 76 + .../rgb_f16half/rgb_f16half_plugin.cc | 63 + .../rgb_f16half/rgb_f16half_plugin.h | 38 + .../rgb_f16half/rgb_f16half_plugin.rc | 9 + .../colorspaces/rgb_f16half/tests/Makefile.am | 19 + .../kis_rgb_f16half_colorspace_tester.cc | 545 + .../tests/kis_rgb_f16half_colorspace_tester.h | 47 + krita/colorspaces/rgb_f32/Makefile.am | 34 + .../rgb_f32/kis_rgb_f32_colorspace.cc | 949 + .../rgb_f32/kis_rgb_f32_colorspace.h | 165 + .../rgb_f32/krita_rgb_f32_plugin.desktop | 77 + krita/colorspaces/rgb_f32/rgb_f32_plugin.cc | 63 + krita/colorspaces/rgb_f32/rgb_f32_plugin.h | 38 + krita/colorspaces/rgb_f32/rgb_f32_plugin.rc | 9 + krita/colorspaces/rgb_f32/tests/Makefile.am | 17 + .../kis_strategy_colorspace_rgb_f32_tester.cc | 541 + .../kis_strategy_colorspace_rgb_f32_tester.h | 47 + krita/colorspaces/rgb_u16/Makefile.am | 32 + .../rgb_u16/kis_rgb_u16_colorspace.cc | 869 + .../rgb_u16/kis_rgb_u16_colorspace.h | 128 + .../rgb_u16/krita_rgb_u16_plugin.desktop | 80 + krita/colorspaces/rgb_u16/rgb_u16_plugin.cc | 61 + krita/colorspaces/rgb_u16/rgb_u16_plugin.h | 36 + krita/colorspaces/rgb_u16/tests/Makefile.am | 17 + .../kis_strategy_colorspace_rgb_u16_tester.cc | 524 + .../kis_strategy_colorspace_rgb_u16_tester.h | 46 + krita/colorspaces/rgb_u8/Makefile.am | 33 + krita/colorspaces/rgb_u8/composite.h | 868 + .../colorspaces/rgb_u8/kis_rgb_colorspace.cc | 1501 + krita/colorspaces/rgb_u8/kis_rgb_colorspace.h | 116 + .../colorspaces/rgb_u8/kritargbplugin.desktop | 99 + krita/colorspaces/rgb_u8/rgb_plugin.cc | 74 + krita/colorspaces/rgb_u8/rgb_plugin.h | 37 + krita/colorspaces/rgb_u8/rgbplugin.rc | 9 + krita/colorspaces/rgb_u8/templates/.directory | 6 + .../colorspaces/rgb_u8/templates/Makefile.am | 8 + .../cr48-action-template_rgb_empty.png | Bin 0 -> 2363 bytes .../crsc-action-template_rgb_empty.svgz | Bin 0 -> 1818 bytes .../templates/transparent_1024x768.desktop | 91 + .../rgb_u8/templates/transparent_1024x768.kra | Bin 0 -> 7141 bytes .../templates/transparent_1280x1024.desktop | 92 + .../templates/transparent_1280x1024.kra | Bin 0 -> 9806 bytes .../templates/transparent_1600x1200.desktop | 97 + .../templates/transparent_1600x1200.kra | Bin 0 -> 13147 bytes .../templates/transparent_640x480.desktop | 92 + .../rgb_u8/templates/transparent_640x480.kra | Bin 0 -> 4947 bytes .../rgb_u8/templates/white_1024x768.desktop | 102 + .../rgb_u8/templates/white_1024x768.kra | Bin 0 -> 5323 bytes .../rgb_u8/templates/white_1280x1024.desktop | 95 + .../rgb_u8/templates/white_1280x1024.kra | Bin 0 -> 7988 bytes .../rgb_u8/templates/white_1600x1200.desktop | 95 + .../rgb_u8/templates/white_1600x1200.kra | Bin 0 -> 11442 bytes .../rgb_u8/templates/white_640x480.desktop | 102 + .../rgb_u8/templates/white_640x480.kra | Bin 0 -> 3164 bytes krita/colorspaces/rgb_u8/tests/Makefile.am | 17 + .../kis_strategy_colorspace_rgb_tester.cpp | 197 + .../kis_strategy_colorspace_rgb_tester.h | 34 + krita/colorspaces/wet/Makefile.am | 27 + krita/colorspaces/wet/kis_texture_filter.cc | 43 + krita/colorspaces/wet/kis_texture_filter.h | 38 + krita/colorspaces/wet/kis_texture_painter.cc | 92 + krita/colorspaces/wet/kis_texture_painter.h | 40 + krita/colorspaces/wet/kis_wet_colorspace.cc | 514 + krita/colorspaces/wet/kis_wet_colorspace.h | 219 + .../colorspaces/wet/kis_wet_palette_widget.cc | 245 + .../colorspaces/wet/kis_wet_palette_widget.h | 67 + .../wet/kis_wetness_visualisation_filter.cc | 77 + .../wet/kis_wetness_visualisation_filter.h | 50 + krita/colorspaces/wet/kis_wetop.cc | 230 + krita/colorspaces/wet/kis_wetop.h | 73 + krita/colorspaces/wet/kritawetplugin.desktop | 86 + krita/colorspaces/wet/todo | 24 + krita/colorspaces/wet/wdgpressure.ui | 60 + krita/colorspaces/wet/wet_plugin.cc | 128 + krita/colorspaces/wet/wet_plugin.h | 45 + krita/colorspaces/wet/wetdreams/Makefile | 6 + krita/colorspaces/wet/wetdreams/wetmain.c | 517 + krita/colorspaces/wet/wetdreams/wetpaint.c | 101 + krita/colorspaces/wet/wetdreams/wetpaint.h | 4 + krita/colorspaces/wet/wetdreams/wetphysics.c | 334 + krita/colorspaces/wet/wetdreams/wetphysics.h | 9 + krita/colorspaces/wet/wetdreams/wetpix.c | 332 + krita/colorspaces/wet/wetdreams/wetpix.h | 87 + krita/colorspaces/wet/wetdreams/wettexture.c | 84 + krita/colorspaces/wet/wetdreams/wettexture.h | 9 + krita/colorspaces/wet/wetphysicsfilter.cc | 424 + krita/colorspaces/wet/wetphysicsfilter.h | 87 + krita/colorspaces/wet/wetplugin.rc | 8 + krita/colorspaces/wetsticky/Makefile.am | 25 + krita/colorspaces/wetsticky/README | 42 + krita/colorspaces/wetsticky/TODO | 7 + .../colorspaces/wetsticky/brushop/Makefile.am | 28 + krita/colorspaces/wetsticky/brushop/README | 2 + .../wetsticky/brushop/kis_wsbrushop.cc | 117 + .../wetsticky/brushop/kis_wsbrushop.h | 56 + .../brushop/kritawsbrushpaintop.desktop | 73 + .../wetsticky/brushop/wetpaintbrush.png | Bin 0 -> 1328 bytes .../brushop/wsbrushpaintop_plugin.cc | 56 + .../wetsticky/brushop/wsbrushpaintop_plugin.h | 43 + .../wetsticky/kis_wet_sticky_colorspace.cc | 605 + .../wetsticky/kis_wet_sticky_colorspace.h | 148 + .../wetsticky/kis_ws_engine_filter.cc | 180 + .../wetsticky/kis_ws_engine_filter.h | 77 + .../wetsticky/kritawsplugin.desktop | 46 + .../wetsticky/wet_sticky_plugin.cc | 60 + .../colorspaces/wetsticky/wet_sticky_plugin.h | 41 + krita/colorspaces/wetsticky/ws/GNU | 0 .../wetsticky/ws/GNU Public Licence.txt | 341 + krita/colorspaces/wetsticky/ws/README | 4 + krita/colorspaces/wetsticky/ws/TODO | 24 + krita/colorspaces/wetsticky/ws/after.jpg | Bin 0 -> 29607 bytes krita/colorspaces/wetsticky/ws/anim.c | 154 + krita/colorspaces/wetsticky/ws/before.jpg | Bin 0 -> 15496 bytes krita/colorspaces/wetsticky/ws/canvas.c | 514 + krita/colorspaces/wetsticky/ws/canvas.h | 70 + krita/colorspaces/wetsticky/ws/cmap.c | 681 + krita/colorspaces/wetsticky/ws/constants.h | 69 + krita/colorspaces/wetsticky/ws/engine.c | 802 + krita/colorspaces/wetsticky/ws/engine.h | 33 + krita/colorspaces/wetsticky/ws/engine3.c | 617 + krita/colorspaces/wetsticky/ws/load_ppm.c | 244 + krita/colorspaces/wetsticky/ws/main.c | 105 + krita/colorspaces/wetsticky/ws/makefile | 55 + krita/colorspaces/wetsticky/ws/mona.pgm | Bin 0 -> 86269 bytes .../colorspaces/wetsticky/ws/ogl_interface.c | 302 + krita/colorspaces/wetsticky/ws/test2.jpg | Bin 0 -> 13050 bytes krita/colorspaces/wetsticky/ws/test3.jpg | Bin 0 -> 21238 bytes krita/colorspaces/wetsticky/ws/types.h | 72 + .../colorspaces/wetsticky/ws/win_interface.h | 28 + krita/colorspaces/wetsticky/ws/x_interface.c | 795 + krita/colorspaces/wetsticky/wstool.ui | 262 + krita/colorspaces/ycbcr_u16/Makefile.am | 27 + .../ycbcr_u16/kis_ycbcr_u16_colorspace.cc | 338 + .../ycbcr_u16/kis_ycbcr_u16_colorspace.h | 144 + .../ycbcr_u16/krita_ycbcr_u16_plugin.desktop | 71 + .../colorspaces/ycbcr_u16/ycbcr_u16_plugin.cc | 60 + .../colorspaces/ycbcr_u16/ycbcr_u16_plugin.h | 37 + krita/colorspaces/ycbcr_u8/Makefile.am | 29 + .../ycbcr_u8/kis_ycbcr_u8_colorspace.cc | 344 + .../ycbcr_u8/kis_ycbcr_u8_colorspace.h | 144 + .../ycbcr_u8/krita_ycbcr_u8_plugin.desktop | 71 + krita/colorspaces/ycbcr_u8/ycbcr_u8_plugin.cc | 62 + krita/colorspaces/ycbcr_u8/ycbcr_u8_plugin.h | 37 + krita/configure.in.bot | 19 + krita/configure.in.in | 110 + krita/core/Makefile.am | 59 + krita/core/createdcop.py | 171 + krita/core/kis_adjustment_layer.cc | 252 + krita/core/kis_adjustment_layer.h | 105 + krita/core/kis_alpha_mask.cc | 132 + krita/core/kis_alpha_mask.h | 106 + krita/core/kis_autobrush_resource.cc | 106 + krita/core/kis_autobrush_resource.h | 71 + krita/core/kis_autogradient_resource.cc | 221 + krita/core/kis_autogradient_resource.h | 88 + krita/core/kis_background.cc | 155 + krita/core/kis_background.h | 49 + krita/core/kis_basic_math_toolbox.cpp | 137 + krita/core/kis_basic_math_toolbox.h | 44 + krita/core/kis_boundary.cc | 83 + krita/core/kis_boundary.h | 57 + krita/core/kis_brush.cc | 1333 + krita/core/kis_brush.h | 191 + krita/core/kis_change_profile_visitor.h | 109 + krita/core/kis_colorspace_convert_visitor.h | 101 + krita/core/kis_command.cc | 43 + krita/core/kis_command.h | 55 + krita/core/kis_convolution_painter.cc | 426 + krita/core/kis_convolution_painter.h | 95 + krita/core/kis_crop_visitor.h | 109 + krita/core/kis_datamanager.h | 217 + krita/core/kis_exif_info.cc | 66 + krita/core/kis_exif_info.h | 58 + krita/core/kis_exif_value.cc | 678 + krita/core/kis_exif_value.h | 270 + krita/core/kis_fill_painter.cc | 407 + krita/core/kis_fill_painter.h | 207 + krita/core/kis_filter.cc | 133 + krita/core/kis_filter.h | 200 + krita/core/kis_filter_config_widget.cc | 31 + krita/core/kis_filter_config_widget.h | 49 + krita/core/kis_filter_configuration.cc | 185 + krita/core/kis_filter_configuration.h | 105 + krita/core/kis_filter_registry.cc | 82 + krita/core/kis_filter_registry.h | 52 + krita/core/kis_filter_strategy.cc | 192 + krita/core/kis_filter_strategy.h | 150 + krita/core/kis_gradient.cc | 639 + krita/core/kis_gradient.h | 264 + krita/core/kis_gradient_painter.cc | 723 + krita/core/kis_gradient_painter.h | 84 + krita/core/kis_group_layer.cc | 428 + krita/core/kis_group_layer.h | 140 + krita/core/kis_histogram.cc | 215 + krita/core/kis_histogram.h | 150 + krita/core/kis_image.cc | 1702 + krita/core/kis_image.h | 460 + krita/core/kis_image_iface.cc | 97 + krita/core/kis_image_iface.h | 65 + krita/core/kis_imagepipe_brush.cc | 456 + krita/core/kis_imagepipe_brush.h | 168 + krita/core/kis_iterator.cc | 142 + krita/core/kis_iterator.h | 173 + krita/core/kis_iteratorpixeltrait.h | 131 + krita/core/kis_iterators_pixel.cc | 59 + krita/core/kis_iterators_pixel.h | 154 + krita/core/kis_layer.cc | 611 + krita/core/kis_layer.h | 256 + krita/core/kis_layer_visitor.h | 43 + krita/core/kis_math_toolbox.cpp | 166 + krita/core/kis_math_toolbox.h | 123 + krita/core/kis_merge_visitor.h | 358 + krita/core/kis_meta_registry.cc | 68 + krita/core/kis_meta_registry.h | 49 + krita/core/kis_nameserver.cc | 49 + krita/core/kis_nameserver.h | 40 + krita/core/kis_paint_device.cc | 1285 + krita/core/kis_paint_device.h | 596 + krita/core/kis_paint_device_action.h | 43 + krita/core/kis_paint_device_iface.cc | 74 + krita/core/kis_paint_device_iface.h | 85 + krita/core/kis_paint_layer.cc | 509 + krita/core/kis_paint_layer.h | 156 + krita/core/kis_painter.cc | 928 + krita/core/kis_painter.h | 432 + krita/core/kis_paintop.cc | 113 + krita/core/kis_paintop.h | 141 + krita/core/kis_paintop_registry.cc | 139 + krita/core/kis_paintop_registry.h | 83 + krita/core/kis_palette.cc | 306 + krita/core/kis_palette.h | 112 + krita/core/kis_part_layer_iface.h | 36 + krita/core/kis_pattern.cc | 335 + krita/core/kis_pattern.h | 79 + krita/core/kis_perspective_grid.cpp | 100 + krita/core/kis_perspective_grid.h | 107 + krita/core/kis_perspective_math.cpp | 546 + krita/core/kis_perspective_math.h | 70 + .../core/kis_perspectivetransform_worker.cpp | 121 + krita/core/kis_perspectivetransform_worker.h | 52 + krita/core/kis_point.h | 48 + krita/core/kis_random_accessor.cpp | 58 + krita/core/kis_random_accessor.h | 95 + krita/core/kis_random_sub_accessor.cpp | 84 + krita/core/kis_random_sub_accessor.h | 45 + krita/core/kis_rect.cc | 28 + krita/core/kis_rect.h | 50 + krita/core/kis_resource.cc | 62 + krita/core/kis_resource.h | 83 + krita/core/kis_rotate_visitor.cc | 406 + krita/core/kis_rotate_visitor.h | 80 + krita/core/kis_scale_visitor.cc | 279 + krita/core/kis_scale_visitor.h | 204 + krita/core/kis_selected_transaction.cc | 73 + krita/core/kis_selected_transaction.h | 50 + krita/core/kis_selection.cc | 582 + krita/core/kis_selection.h | 160 + krita/core/kis_shear_visitor.h | 95 + krita/core/kis_strategy_move.cc | 148 + krita/core/kis_strategy_move.h | 59 + krita/core/kis_substrate.h | 78 + krita/core/kis_thread.h | 57 + krita/core/kis_thread_pool.cc | 192 + krita/core/kis_thread_pool.h | 70 + krita/core/kis_transaction.cc | 94 + krita/core/kis_transaction.h | 46 + krita/core/kis_transform_visitor.h | 137 + krita/core/kis_transform_worker.cc | 676 + krita/core/kis_transform_worker.h | 79 + krita/core/kis_types.h | 90 + krita/core/kis_vec.cc | 67 + krita/core/kis_vec.h | 405 + krita/core/tests/Makefile.am | 30 + .../tests/kis_filter_configuration_tester.cc | 67 + .../tests/kis_filter_configuration_tester.h | 34 + krita/core/tests/kis_image_tester.cpp | 88 + krita/core/tests/kis_image_tester.h | 32 + krita/core/tests/kis_integer_maths_tester.cpp | 93 + krita/core/tests/kis_integer_maths_tester.h | 34 + krita/core/tiles/Makefile.am | 23 + krita/core/tiles/kis_memento.cc | 154 + krita/core/tiles/kis_memento.h | 147 + krita/core/tiles/kis_tile.cc | 152 + krita/core/tiles/kis_tile.h | 87 + krita/core/tiles/kis_tile_global.h | 23 + krita/core/tiles/kis_tiled_random_accessor.cc | 115 + krita/core/tiles/kis_tiled_random_accessor.h | 66 + krita/core/tiles/kis_tileddatamanager.cc | 1044 + krita/core/tiles/kis_tileddatamanager.h | 233 + krita/core/tiles/kis_tiledhlineiterator.cc | 213 + krita/core/tiles/kis_tilediterator.cc | 131 + krita/core/tiles/kis_tilediterator.h | 213 + krita/core/tiles/kis_tiledrectiterator.cc | 242 + krita/core/tiles/kis_tiledvlineiterator.cc | 154 + krita/core/tiles/kis_tilemanager.cc | 578 + krita/core/tiles/kis_tilemanager.h | 139 + krita/core/tiles/tests/Makefile.am | 15 + .../tiles/tests/kis_tiled_data_tester.cpp | 74 + .../core/tiles/tests/kis_tiled_data_tester.h | 32 + krita/data/Makefile.am | 7 + krita/data/README | 13 + krita/data/brushes/10x10square.gbr | Bin 0 -> 143 bytes krita/data/brushes/10x10squareBlur.gbr | Bin 0 -> 148 bytes krita/data/brushes/11circle.gbr | Bin 0 -> 161 bytes krita/data/brushes/11fcircle.gbr | Bin 0 -> 159 bytes krita/data/brushes/13circle.gbr | Bin 0 -> 209 bytes krita/data/brushes/13fcircle.gbr | Bin 0 -> 207 bytes krita/data/brushes/15circle.gbr | Bin 0 -> 265 bytes krita/data/brushes/15fcircle.gbr | Bin 0 -> 263 bytes krita/data/brushes/17circle.gbr | Bin 0 -> 329 bytes krita/data/brushes/17fcircle.gbr | Bin 0 -> 327 bytes krita/data/brushes/19circle.gbr | Bin 0 -> 401 bytes krita/data/brushes/19fcircle.gbr | Bin 0 -> 399 bytes krita/data/brushes/1circle.gbr | Bin 0 -> 41 bytes krita/data/brushes/20x20square.gbr | Bin 0 -> 443 bytes krita/data/brushes/20x20squareBlur.gbr | Bin 0 -> 448 bytes krita/data/brushes/3circle.gbr | Bin 0 -> 49 bytes krita/data/brushes/3fcircle.gbr | Bin 0 -> 47 bytes krita/data/brushes/5circle.gbr | Bin 0 -> 65 bytes krita/data/brushes/5fcircle.gbr | Bin 0 -> 63 bytes krita/data/brushes/5x5square.gbr | Bin 0 -> 66 bytes krita/data/brushes/5x5squareBlur.gbr | Bin 0 -> 71 bytes krita/data/brushes/7circle.gbr | Bin 0 -> 89 bytes krita/data/brushes/7fcircle.gbr | Bin 0 -> 87 bytes krita/data/brushes/9circle.gbr | Bin 0 -> 121 bytes krita/data/brushes/9fcircle.gbr | Bin 0 -> 119 bytes krita/data/brushes/BRUSHES.README | 19 + krita/data/brushes/COPYING | 340 + krita/data/brushes/DStar11.gbr | Bin 0 -> 168 bytes krita/data/brushes/DStar17.gbr | Bin 0 -> 336 bytes krita/data/brushes/DStar25.gbr | Bin 0 -> 672 bytes krita/data/brushes/Makefile.am | 69 + krita/data/brushes/SketchBrush-16.gih | Bin 0 -> 1618 bytes krita/data/brushes/SketchBrush-32.gih | Bin 0 -> 5458 bytes krita/data/brushes/SketchBrush-64.gih | Bin 0 -> 20818 bytes krita/data/brushes/callig1.gbr | Bin 0 -> 147 bytes krita/data/brushes/callig2.gbr | Bin 0 -> 447 bytes krita/data/brushes/callig3.gbr | Bin 0 -> 272 bytes krita/data/brushes/callig4.gbr | Bin 0 -> 72 bytes krita/data/brushes/confetti.gbr | Bin 0 -> 793 bytes krita/data/brushes/confetti.gih | Bin 0 -> 8076 bytes krita/data/brushes/cursor.gbr | Bin 0 -> 899 bytes krita/data/brushes/cursor_big_lb.gbr | Bin 0 -> 2858 bytes krita/data/brushes/cursor_big_lw.gbr | Bin 0 -> 2858 bytes krita/data/brushes/cursor_big_rb.gbr | Bin 0 -> 2858 bytes krita/data/brushes/cursor_big_rw.gbr | Bin 0 -> 2858 bytes krita/data/brushes/cursor_lw.gbr | Bin 0 -> 1802 bytes krita/data/brushes/cursor_resize_diag_1.gbr | Bin 0 -> 1072 bytes krita/data/brushes/cursor_resize_diag_2.gbr | Bin 0 -> 1072 bytes krita/data/brushes/cursor_resize_hor.gbr | Bin 0 -> 958 bytes krita/data/brushes/cursor_resize_vert.gbr | Bin 0 -> 959 bytes krita/data/brushes/cursor_rw.gbr | Bin 0 -> 1802 bytes krita/data/brushes/cursor_small_lb.gbr | Bin 0 -> 1004 bytes krita/data/brushes/cursor_small_lw.gbr | Bin 0 -> 1004 bytes krita/data/brushes/cursor_small_rb.gbr | Bin 0 -> 1004 bytes krita/data/brushes/cursor_small_rw.gbr | Bin 0 -> 1004 bytes krita/data/brushes/cursor_tiny_lw.gbr | Bin 0 -> 523 bytes krita/data/brushes/cursor_tiny_rw.gbr | Bin 0 -> 523 bytes krita/data/brushes/cursor_up.gbr | Bin 0 -> 1606 bytes krita/data/brushes/dunes.gbr | Bin 0 -> 1100 bytes krita/data/brushes/feltpen.gih | Bin 0 -> 118795 bytes krita/data/brushes/galaxy.gbr | Bin 0 -> 2636 bytes krita/data/brushes/galaxy_big.gbr | Bin 0 -> 10037 bytes krita/data/brushes/galaxy_small.gbr | Bin 0 -> 749 bytes krita/data/brushes/hsparks.gih | Bin 0 -> 127644 bytes krita/data/brushes/pepper.gbr | Bin 0 -> 11991 bytes krita/data/brushes/pixel.gbr | Bin 0 -> 48 bytes krita/data/brushes/vine.gih | Bin 0 -> 116027 bytes krita/data/gradients/Abstract_1.ggr | 9 + krita/data/gradients/Abstract_2.ggr | 9 + krita/data/gradients/Abstract_3.ggr | 9 + krita/data/gradients/Aneurism.ggr | 11 + krita/data/gradients/Blinds.ggr | 12 + krita/data/gradients/Blue_Green.ggr | 5 + krita/data/gradients/Browns.ggr | 14 + krita/data/gradients/Brushed_Aluminium.ggr | 27 + krita/data/gradients/Burning_Paper.ggr | 9 + krita/data/gradients/Burning_Transparency.ggr | 9 + krita/data/gradients/CD.ggr | 21 + krita/data/gradients/CD_Half.ggr | 12 + krita/data/gradients/Caribbean_Blues.ggr | 6 + krita/data/gradients/Coffee.ggr | 4 + krita/data/gradients/Cold_Steel.ggr | 5 + krita/data/gradients/Cold_Steel_2.ggr | 6 + krita/data/gradients/Crown_molding.ggr | 9 + krita/data/gradients/Dark_1.ggr | 6 + krita/data/gradients/Deep_Sea.ggr | 5 + krita/data/gradients/Default.ggr | 4 + krita/data/gradients/Flare_Glow_Angular_1.ggr | 49 + krita/data/gradients/Flare_Glow_Radial_1.ggr | 7 + krita/data/gradients/Flare_Glow_Radial_2.ggr | 8 + krita/data/gradients/Flare_Glow_Radial_3.ggr | 8 + krita/data/gradients/Flare_Glow_Radial_4.ggr | 6 + krita/data/gradients/Flare_Radial_101.ggr | 10 + krita/data/gradients/Flare_Radial_102.ggr | 9 + krita/data/gradients/Flare_Radial_103.ggr | 4 + krita/data/gradients/Flare_Rays_Radial_1.ggr | 5 + krita/data/gradients/Flare_Rays_Radial_2.ggr | 5 + krita/data/gradients/Flare_Rays_Size_1.ggr | 19 + krita/data/gradients/Flare_Sizefac_101.ggr | 4 + krita/data/gradients/Four_bars.ggr | 11 + krita/data/gradients/French_flag.ggr | 6 + krita/data/gradients/French_flag_smooth.ggr | 5 + .../Full_saturation_spectrum_CCW.ggr | 4 + .../gradients/Full_saturation_spectrum_CW.ggr | 4 + krita/data/gradients/German_flag.ggr | 6 + krita/data/gradients/German_flag_smooth.ggr | 5 + krita/data/gradients/Golden.ggr | 17 + krita/data/gradients/Greens.ggr | 12 + krita/data/gradients/Horizon_1.ggr | 8 + krita/data/gradients/Horizon_2.ggr | 8 + krita/data/gradients/Incandescent.ggr | 7 + krita/data/gradients/Land_1.ggr | 8 + krita/data/gradients/Land_and_Sea.ggr | 8 + krita/data/gradients/Makefile.am | 4 + krita/data/gradients/Metallic_Something.ggr | 11 + krita/data/gradients/Mexican_flag.ggr | 6 + krita/data/gradients/Mexican_flag_smooth.ggr | 5 + krita/data/gradients/Nauseating_Headache.ggr | 28 + krita/data/gradients/Neon_Cyan.ggr | 7 + krita/data/gradients/Neon_Green.ggr | 7 + krita/data/gradients/Neon_Yellow.ggr | 7 + krita/data/gradients/Pastel_Rainbow.ggr | 4 + krita/data/gradients/Pastels.ggr | 17 + krita/data/gradients/Purples.ggr | 10 + krita/data/gradients/Radial_Eyeball_Blue.ggr | 8 + krita/data/gradients/Radial_Eyeball_Brown.ggr | 8 + krita/data/gradients/Radial_Eyeball_Green.ggr | 8 + krita/data/gradients/Radial_Glow_1.ggr | 8 + krita/data/gradients/Radial_Rainbow_Hoop.ggr | 6 + krita/data/gradients/Romanian_flag.ggr | 6 + krita/data/gradients/Romanian_flag_smooth.ggr | 5 + krita/data/gradients/Rounded_edge.ggr | 10 + krita/data/gradients/Shadows_1.ggr | 8 + krita/data/gradients/Shadows_2.ggr | 8 + krita/data/gradients/Shadows_3.ggr | 9 + krita/data/gradients/Skyline.ggr | 8 + krita/data/gradients/Skyline_polluted.ggr | 8 + krita/data/gradients/Square_Wood_Frame.ggr | 9 + krita/data/gradients/Sunrise.ggr | 9 + krita/data/gradients/Three_bars_sin.ggr | 9 + krita/data/gradients/Tropical_Colors.ggr | 12 + krita/data/gradients/Tube_Red.ggr | 10 + krita/data/gradients/Wood_1.ggr | 6 + krita/data/gradients/Wood_2.ggr | 12 + krita/data/gradients/Yellow_Contrast.ggr | 10 + krita/data/gradients/Yellow_Orange.ggr | 5 + krita/data/images/Azay-Le-Rideau.jpg | Bin 0 -> 82588 bytes krita/data/images/Makefile.am | 6 + krita/data/images/WeyDesc.png | Bin 0 -> 1061517 bytes krita/data/images/evenings.jpg | Bin 0 -> 53508 bytes krita/data/images/hakonepa.jpg | Bin 0 -> 58723 bytes krita/data/images/hiro_awate.jpg | Bin 0 -> 54282 bytes krita/data/images/paintbrush.png | Bin 0 -> 13185 bytes krita/data/images/previewfilter.png | Bin 0 -> 5987 bytes krita/data/krita_filter.desktop | 47 + krita/data/krita_paintop.desktop | 41 + krita/data/krita_plugin.desktop | 42 + krita/data/krita_tool.desktop | 46 + krita/data/palettes/40_Colors.gpl | 43 + krita/data/palettes/Anchor.gpl | 448 + krita/data/palettes/Bears.gpl | 259 + krita/data/palettes/Bgold.gpl | 259 + krita/data/palettes/Blues.gpl | 261 + krita/data/palettes/Borders.gpl | 259 + krita/data/palettes/Browns_And_Yellows.gpl | 25 + krita/data/palettes/Caramel.gpl | 259 + krita/data/palettes/Cascade.gpl | 259 + krita/data/palettes/China.gpl | 259 + krita/data/palettes/Coldfire.gpl | 259 + krita/data/palettes/Cool_Colors.gpl | 11 + krita/data/palettes/Cranes.gpl | 259 + krita/data/palettes/DMC.gpl | 458 + krita/data/palettes/Dark_pastels.gpl | 259 + krita/data/palettes/Default.gpl | 26 + krita/data/palettes/Ega.gpl | 244 + krita/data/palettes/Firecode.gpl | 259 + krita/data/palettes/Gold.gpl | 259 + krita/data/palettes/GrayViolet.gpl | 259 + krita/data/palettes/Grayblue.gpl | 259 + krita/data/palettes/Grays.gpl | 34 + krita/data/palettes/Greens.gpl | 259 + krita/data/palettes/Hilite.gpl | 259 + krita/data/palettes/Khaki.gpl | 258 + krita/data/palettes/Lights.gpl | 28 + krita/data/palettes/Madeira.gpl | 372 + krita/data/palettes/Makefile.am | 50 + krita/data/palettes/Muted.gpl | 81 + krita/data/palettes/Named_Colors.gpl | 452 + krita/data/palettes/News3.gpl | 259 + krita/data/palettes/Op2.gpl | 259 + krita/data/palettes/Paintjet.gpl | 22 + krita/data/palettes/Pantone_Coated_Approx.gpl | 949 + krita/data/palettes/Pastels.gpl | 21 + krita/data/palettes/Plasma.gpl | 260 + krita/data/palettes/Reds.gpl | 259 + krita/data/palettes/Reds_And_Purples.gpl | 33 + krita/data/palettes/Royal.gpl | 259 + krita/data/palettes/Topographic.gpl | 265 + krita/data/palettes/Visibone.gpl | 346 + krita/data/palettes/Visibone_2.gpl | 266 + krita/data/palettes/Volcano.gpl | 259 + krita/data/palettes/Warm_Colors.gpl | 10 + krita/data/palettes/Web.gpl | 220 + krita/data/palettes/new_kde.gpl | 48 + krita/data/patterns/3dgreen.pat | Bin 0 -> 6108 bytes krita/data/patterns/Craters.pat | Bin 0 -> 39707 bytes krita/data/patterns/Makefile.am | 5 + krita/data/patterns/Moonfoot.pat | Bin 0 -> 14442 bytes krita/data/patterns/Stripes1px.pat | Bin 0 -> 9253 bytes krita/data/patterns/Stripes2px.pat | Bin 0 -> 9248 bytes krita/data/patterns/amethyst.pat | Bin 0 -> 12321 bytes krita/data/patterns/bark.pat | Bin 0 -> 22173 bytes krita/data/patterns/blue.pat | Bin 0 -> 6108 bytes krita/data/patterns/bluegrid.pat | Bin 0 -> 1909 bytes krita/data/patterns/bluesquares.pat | Bin 0 -> 48037 bytes krita/data/patterns/blueweb.pat | Bin 0 -> 12321 bytes krita/data/patterns/brick.pat | Bin 0 -> 27674 bytes krita/data/patterns/burlap.pat | Bin 0 -> 27676 bytes krita/data/patterns/burlwood.pat | Bin 0 -> 27681 bytes krita/data/patterns/choc_swirl.pat | Bin 0 -> 7538 bytes krita/data/patterns/corkboard.pat | Bin 0 -> 10097 bytes krita/data/patterns/cracked.pat | Bin 0 -> 62238 bytes krita/data/patterns/crinklepaper.pat | Bin 0 -> 49191 bytes krita/data/patterns/electric.pat | Bin 0 -> 9638 bytes krita/data/patterns/fibers.pat | Bin 0 -> 7531 bytes krita/data/patterns/granite1.pat | Bin 0 -> 10035 bytes krita/data/patterns/ground1.pat | Bin 0 -> 30034 bytes krita/data/patterns/ice.pat | Bin 0 -> 43228 bytes krita/data/patterns/java.pat | Bin 0 -> 12315 bytes krita/data/patterns/leather.pat | Bin 0 -> 12320 bytes krita/data/patterns/leaves.pat | Bin 0 -> 7537 bytes krita/data/patterns/leopard.pat | Bin 0 -> 11921 bytes krita/data/patterns/lightning.pat | Bin 0 -> 40707 bytes krita/data/patterns/marble1.pat | Bin 0 -> 16418 bytes krita/data/patterns/marble2.pat | Bin 0 -> 16418 bytes krita/data/patterns/marble3.pat | Bin 0 -> 12322 bytes krita/data/patterns/nops.pat | Bin 0 -> 49178 bytes krita/data/patterns/paper.pat | Bin 0 -> 10030 bytes krita/data/patterns/parque1.pat | Bin 0 -> 12322 bytes krita/data/patterns/parque2.pat | Bin 0 -> 12322 bytes krita/data/patterns/parque3.pat | Bin 0 -> 12322 bytes krita/data/patterns/pastel.pat | Bin 0 -> 12325 bytes krita/data/patterns/pine.pat | Bin 0 -> 10781 bytes krita/data/patterns/pink_marble.pat | Bin 0 -> 49188 bytes krita/data/patterns/pool.pat | Bin 0 -> 6111 bytes krita/data/patterns/qube1.pat | Bin 0 -> 5331 bytes krita/data/patterns/rain.pat | Bin 0 -> 35021 bytes krita/data/patterns/recessed.pat | Bin 0 -> 6433 bytes krita/data/patterns/redcube.pat | Bin 0 -> 12320 bytes krita/data/patterns/rock.pat | Bin 0 -> 30510 bytes krita/data/patterns/sky.pat | Bin 0 -> 11002 bytes krita/data/patterns/slate.pat | Bin 0 -> 16414 bytes krita/data/patterns/sm_squares.pat | Bin 0 -> 7538 bytes krita/data/patterns/starfield.pat | Bin 0 -> 49163 bytes krita/data/patterns/stone33.pat | Bin 0 -> 73034 bytes krita/data/patterns/terra.pat | Bin 0 -> 12318 bytes krita/data/patterns/walnut.pat | Bin 0 -> 49183 bytes krita/data/patterns/warning.pat | Bin 0 -> 1233 bytes krita/data/patterns/wood1.pat | Bin 0 -> 27690 bytes krita/data/patterns/wood2.pat | Bin 0 -> 30030 bytes krita/data/patterns/wood3.pat | Bin 0 -> 7532 bytes krita/data/patterns/wood4.pat | Bin 0 -> 7532 bytes krita/data/patterns/wood5.pat | Bin 0 -> 27677 bytes krita/data/profiles/Adobe.icm | Bin 0 -> 2036 bytes krita/data/profiles/Apple.icm | Bin 0 -> 2036 bytes krita/data/profiles/CIE.icm | Bin 0 -> 2036 bytes krita/data/profiles/CMY.icm | Bin 0 -> 101936 bytes krita/data/profiles/ColorMatch.icm | Bin 0 -> 2044 bytes krita/data/profiles/Makefile.am | 4 + krita/data/profiles/NTSC.icm | Bin 0 -> 2044 bytes krita/data/profiles/PAL.icm | Bin 0 -> 2040 bytes krita/data/profiles/README | 5 + krita/data/profiles/SMPTE-C.icm | Bin 0 -> 2052 bytes krita/data/profiles/WideGamut.icm | Bin 0 -> 2044 bytes krita/data/profiles/cmyk.icm | Bin 0 -> 725408 bytes krita/data/profiles/fogra27l.icm | Bin 0 -> 225824 bytes krita/data/profiles/lcmslabi.icm | Bin 0 -> 154326 bytes krita/data/profiles/lcmsxyzi.icm | Bin 0 -> 154323 bytes krita/data/profiles/monoscnr.icm | Bin 0 -> 410 bytes krita/data/profiles/sRGB.icm | Bin 0 -> 2032 bytes .../profiles/srgb_color_space_profile.icm | Bin 0 -> 3144 bytes krita/data/profiles/srgbspac.icm | Bin 0 -> 28202 bytes krita/data/profiles/tifflab8spac.icm | Bin 0 -> 200182 bytes krita/data/profiles/ycc601.icm | Bin 0 -> 101940 bytes krita/data/profiles/ycc709.icm | Bin 0 -> 101940 bytes krita/data/templates/.directory | 56 + krita/design.h | 27 + krita/doc/DESIGN.obsolete | 179 + krita/doc/Developing Krita Plugins.odt | Bin 0 -> 50195 bytes krita/doc/autoextending paintdevices | 54 + krita/doc/background_paper.txt | 84 + krita/doc/brush.txt | 36 + krita/doc/channels_masks_selections | 12 + krita/doc/colordiff | 68 + krita/doc/colorspaces.xmi | 41965 ++++++++ krita/doc/colorstrategyAPI | 58 + krita/doc/controller.xmi | 39776 ++++++++ krita/doc/coordinates.txt | 9 + krita/doc/dirty.txt | 53 + krita/doc/doc-outline | 187 + krita/doc/histograms.xmi | 4145 + krita/doc/hooks | 33 + krita/doc/howtofilters.txt | 30 + krita/doc/impexp.txt | 41 + krita/doc/krita-features | 215 + krita/doc/krita.kpr | Bin 0 -> 2857392 bytes krita/doc/krita.pdf | Bin 0 -> 2701148 bytes krita/doc/krita.xmi | 56432 +++++++++++ krita/doc/large_files | 36 + krita/doc/layersupdatesignals.flw | Bin 0 -> 10783 bytes krita/doc/manual/krita.kwd | Bin 0 -> 2505240 bytes krita/doc/oasis | 5 + krita/doc/paint_device.txt | 98 + krita/doc/palettedesign.txt | 34 + krita/doc/plugins.txt | 32 + krita/doc/profiles.txt | 125 + krita/doc/resolution.txt | 40 + krita/doc/scripts/dcop.py | 14 + krita/doc/sdk | 10 + krita/doc/selections | 127 + krita/doc/the preview widget | 81 + krita/doc/transform_undo.txt | 38 + krita/dtd/Makefile.am | 4 + krita/dtd/krita.dtd | 93 + krita/extracti18n.pl | 90 + krita/krita.desktop | 95 + krita/krita.rc | 199 + krita/krita_part_init.cc | 23 + krita/krita_readonly.rc | 35 + krita/kritacolor/Makefile.am | 45 + krita/kritacolor/README | 4 + krita/kritacolor/TODO | 11 + krita/kritacolor/colorspaces/Makefile.am | 20 + .../colorspaces/kis_alpha_colorspace.cc | 296 + .../colorspaces/kis_alpha_colorspace.h | 93 + .../colorspaces/kis_lab_colorspace.cc | 571 + .../colorspaces/kis_lab_colorspace.h | 153 + .../colorspaces/kis_xyz_colorspace.cc | 624 + .../colorspaces/kis_xyz_colorspace.h | 112 + krita/kritacolor/kis_abstract_colorspace.cc | 762 + krita/kritacolor/kis_abstract_colorspace.h | 312 + .../kis_basic_histogram_producers.cc | 484 + .../kis_basic_histogram_producers.h | 197 + krita/kritacolor/kis_channelinfo.h | 115 + krita/kritacolor/kis_color.cc | 185 + krita/kritacolor/kis_color.h | 90 + krita/kritacolor/kis_color_conversions.cc | 427 + krita/kritacolor/kis_color_conversions.h | 49 + krita/kritacolor/kis_colorspace.cc | 39 + krita/kritacolor/kis_colorspace.h | 450 + .../kis_colorspace_factory_registry.cc | 222 + .../kis_colorspace_factory_registry.h | 120 + krita/kritacolor/kis_colorspace_iface.cc | 39 + krita/kritacolor/kis_colorspace_iface.h | 43 + krita/kritacolor/kis_composite_op.cc | 138 + krita/kritacolor/kis_composite_op.h | 103 + .../kritacolor/kis_f16half_base_colorspace.cc | 125 + .../kritacolor/kis_f16half_base_colorspace.h | 107 + krita/kritacolor/kis_f32_base_colorspace.cc | 125 + krita/kritacolor/kis_f32_base_colorspace.h | 83 + krita/kritacolor/kis_histogram_producer.cc | 67 + krita/kritacolor/kis_histogram_producer.h | 129 + krita/kritacolor/kis_profile.cc | 208 + krita/kritacolor/kis_profile.h | 98 + krita/kritacolor/kis_u16_base_colorspace.cc | 148 + krita/kritacolor/kis_u16_base_colorspace.h | 80 + krita/kritacolor/kis_u8_base_colorspace.cc | 118 + krita/kritacolor/kis_u8_base_colorspace.h | 77 + krita/kritacolor/krita_colorspace.desktop | 38 + krita/kritacolor/tests/Makefile.am | 16 + .../tests/kis_color_conversions_tester.cpp | 227 + .../tests/kis_color_conversions_tester.h | 44 + krita/kritapart.desktop | 91 + krita/main.cc | 43 + krita/pics/Makefile.am | 22 + krita/pics/deletelayer.png | Bin 0 -> 375 bytes krita/pics/height.png | Bin 0 -> 201 bytes krita/pics/hi128-app-krita.png | Bin 0 -> 9548 bytes krita/pics/hi16-app-krita.png | Bin 0 -> 637 bytes krita/pics/hi22-app-krita.png | Bin 0 -> 929 bytes krita/pics/hi32-app-krita.png | Bin 0 -> 1486 bytes krita/pics/hi48-app-krita.png | Bin 0 -> 2586 bytes krita/pics/hi64-app-krita.png | Bin 0 -> 3835 bytes krita/pics/krita.svg | 509 + krita/pics/linked.png | Bin 0 -> 527 bytes krita/pics/locked.png | Bin 0 -> 556 bytes krita/pics/lowerlayer.png | Bin 0 -> 362 bytes krita/pics/newlayer.png | Bin 0 -> 425 bytes krita/pics/novisible.png | Bin 0 -> 720 bytes krita/pics/raiselayer.png | Bin 0 -> 343 bytes krita/pics/shade.png | Bin 0 -> 234 bytes krita/pics/tablet.png | Bin 0 -> 4452 bytes krita/pics/tool_screenshot.png | Bin 0 -> 851 bytes krita/pics/unlinked.png | Bin 0 -> 362 bytes krita/pics/unlocked.png | Bin 0 -> 604 bytes krita/pics/visible.png | Bin 0 -> 770 bytes krita/pics/width.png | Bin 0 -> 178 bytes krita/plugins/Makefile.am | 5 + krita/plugins/README | 42 + krita/plugins/configure.in.in | 2 + krita/plugins/filters/Makefile.am | 4 + krita/plugins/filters/blur/Makefile.am | 21 + krita/plugins/filters/blur/blur.cc | 50 + krita/plugins/filters/blur/blur.h | 37 + krita/plugins/filters/blur/kis_blur_filter.cc | 143 + krita/plugins/filters/blur/kis_blur_filter.h | 49 + krita/plugins/filters/blur/kis_wdg_blur.cc | 116 + krita/plugins/filters/blur/kis_wdg_blur.h | 49 + .../filters/blur/kritablurfilter.desktop | 38 + krita/plugins/filters/blur/wdgblur.ui | 227 + krita/plugins/filters/bumpmap/Makefile.am | 18 + krita/plugins/filters/bumpmap/bumpmap.cc | 533 + krita/plugins/filters/bumpmap/bumpmap.h | 129 + .../bumpmap/kritabumpmapfilter.desktop | 71 + krita/plugins/filters/bumpmap/wdgbumpmap.ui | 374 + krita/plugins/filters/cimg/.kdev_ignore | 0 krita/plugins/filters/cimg/CImg.h | 19174 ++++ krita/plugins/filters/cimg/Makefile.am | 34 + krita/plugins/filters/cimg/kis_cimg_filter.cc | 711 + krita/plugins/filters/cimg/kis_cimg_filter.h | 124 + krita/plugins/filters/cimg/kis_cimg_plugin.cc | 44 + krita/plugins/filters/cimg/kis_cimg_plugin.h | 32 + .../filters/cimg/kis_cimgconfig_widget.cc | 94 + .../filters/cimg/kis_cimgconfig_widget.h | 49 + krita/plugins/filters/cimg/kritacimg.desktop | 79 + krita/plugins/filters/cimg/wdg_cimg.ui | 298 + krita/plugins/filters/colorify/Colorify.cpp | 122 + krita/plugins/filters/colorify/Colorify.h | 56 + .../filters/colorify/KisWdgColorify.cpp | 50 + .../plugins/filters/colorify/KisWdgColorify.h | 44 + krita/plugins/filters/colorify/Makefile.am | 22 + .../filters/colorify/WdgColorifyBase.ui | 97 + .../colorify/kritacolorifyfilter.desktop | 42 + krita/plugins/filters/colors/Makefile.am | 20 + krita/plugins/filters/colors/colors.cc | 53 + krita/plugins/filters/colors/colors.h | 37 + .../filters/colors/kis_color_to_alpha.cc | 95 + .../filters/colors/kis_color_to_alpha.h | 47 + .../filters/colors/kis_minmax_filters.cc | 162 + .../filters/colors/kis_minmax_filters.h | 56 + .../filters/colors/kis_wdg_color_to_alpha.cc | 55 + .../filters/colors/kis_wdg_color_to_alpha.h | 44 + .../kritaextensioncolorsfilters.desktop | 42 + .../filters/colors/wdgcolortoalphabase.ui | 113 + .../plugins/filters/colorsfilters/Makefile.am | 25 + .../filters/colorsfilters/colorsfilters.cc | 315 + .../filters/colorsfilters/colorsfilters.h | 73 + .../kis_brightness_contrast_filter.cc | 347 + .../kis_brightness_contrast_filter.h | 84 + .../colorsfilters/kis_perchannel_filter.cc | 421 + .../colorsfilters/kis_perchannel_filter.h | 99 + .../colorsfilters/kritacolorsfilter.desktop | 94 + .../colorsfilters/wdg_brightness_contrast.ui | 292 + .../filters/colorsfilters/wdg_perchannel.ui | 190 + .../filters/convolutionfilters/Makefile.am | 27 + .../convolutionfilters/convolutionfilters.cc | 176 + .../convolutionfilters/convolutionfilters.h | 152 + .../kis_convolution_filter.cc | 138 + .../kis_convolution_filter.h | 98 + .../kis_custom_convolution_filter.cc | 93 + .../kis_custom_convolution_filter.h | 54 + ...lution_filter_configuration_base_widget.ui | 189 + ...convolution_filter_configuration_widget.cc | 83 + ..._convolution_filter_configuration_widget.h | 45 + .../kritaconvolutionfilters.desktop | 75 + .../plugins/filters/cubismfilter/Makefile.am | 24 + .../filters/cubismfilter/kis_cubism_filter.cc | 453 + .../filters/cubismfilter/kis_cubism_filter.h | 78 + .../cubismfilter/kis_cubism_filter_plugin.cc | 42 + .../cubismfilter/kis_cubism_filter_plugin.h | 32 + .../filters/cubismfilter/kis_polygon.cc | 102 + .../filters/cubismfilter/kis_polygon.h | 37 + .../cubismfilter/kritacubismfilter.desktop | 85 + .../plugins/filters/embossfilter/Makefile.am | 23 + .../filters/embossfilter/kis_emboss_filter.cc | 179 + .../filters/embossfilter/kis_emboss_filter.h | 62 + .../embossfilter/kis_emboss_filter_plugin.cc | 40 + .../embossfilter/kis_emboss_filter_plugin.h | 32 + .../embossfilter/kritaembossfilter.desktop | 71 + krita/plugins/filters/example/Makefile.am | 21 + krita/plugins/filters/example/example.cc | 95 + krita/plugins/filters/example/example.h | 47 + .../filters/example/kritaexample.desktop | 81 + .../filters/fastcolortransfer/Makefile.am | 22 + .../fastcolortransfer/fastcolortransfer.cc | 206 + .../fastcolortransfer/fastcolortransfer.h | 55 + .../kis_wdg_fastcolortransfer.cpp | 50 + .../kis_wdg_fastcolortransfer.h | 47 + .../kritafastcolortransfer.desktop | 69 + .../fastcolortransfer/wdgfastcolortransfer.ui | 75 + .../plugins/filters/halftone/kis_halftone.cpp | 190 + krita/plugins/filters/halftone/kis_halftone.h | 79 + .../filters/imageenhancement/Makefile.am | 26 + .../imageenhancement/imageenhancement.cpp | 73 + .../imageenhancement/imageenhancement.h | 34 + .../kis_simple_noise_reducer.cpp | 129 + .../kis_simple_noise_reducer.h | 59 + .../kis_wavelet_noise_reduction.cpp | 130 + .../kis_wavelet_noise_reduction.h | 68 + .../kritaimageenhancement.desktop | 80 + .../filters/lenscorrectionfilter/Makefile.am | 22 + .../kis_wdg_lens_correction.cpp | 74 + .../kis_wdg_lens_correction.h | 43 + .../kritalenscorrectionfilter.desktop | 69 + .../lenscorrectionfilter.cc | 152 + .../lenscorrectionfilter.h | 53 + .../wdglenscorrectionoptions.ui | 229 + krita/plugins/filters/levelfilter/Makefile.am | 24 + .../filters/levelfilter/kgradientslider.cc | 338 + .../filters/levelfilter/kgradientslider.h | 84 + .../filters/levelfilter/kis_level_filter.cc | 324 + .../filters/levelfilter/kis_level_filter.h | 93 + .../levelfilter/kritalevelfilter.desktop | 73 + .../filters/levelfilter/levelfilter.cc | 67 + .../plugins/filters/levelfilter/levelfilter.h | 35 + .../plugins/filters/levelfilter/wdg_level.ui | 331 + krita/plugins/filters/noisefilter/Makefile.am | 22 + .../filters/noisefilter/kis_wdg_noise.cpp | 59 + .../filters/noisefilter/kis_wdg_noise.h | 43 + .../noisefilter/kritanoisefilter.desktop | 77 + .../filters/noisefilter/noisefilter.cc | 128 + .../plugins/filters/noisefilter/noisefilter.h | 52 + .../filters/noisefilter/wdgnoiseoptions.ui | 111 + .../filters/oilpaintfilter/Makefile.am | 23 + .../oilpaintfilter/kis_oilpaint_filter.cc | 256 + .../oilpaintfilter/kis_oilpaint_filter.h | 69 + .../kis_oilpaint_filter_plugin.cc | 43 + .../kis_oilpaint_filter_plugin.h | 32 + .../kritaoilpaintfilter.desktop | 77 + .../filters/pixelizefilter/Makefile.am | 23 + .../pixelizefilter/kis_pixelize_filter.cc | 188 + .../pixelizefilter/kis_pixelize_filter.h | 61 + .../kis_pixelize_filter_plugin.cc | 43 + .../kis_pixelize_filter_plugin.h | 32 + .../kritapixelizefilter.desktop | 83 + .../filters/raindropsfilter/Makefile.am | 23 + .../raindropsfilter/kis_raindrops_filter.cc | 439 + .../raindropsfilter/kis_raindrops_filter.h | 67 + .../kis_raindrops_filter_plugin.cc | 44 + .../kis_raindrops_filter_plugin.h | 33 + .../kritaraindropsfilter.desktop | 81 + .../filters/randompickfilter/Makefile.am | 22 + .../randompickfilter/kis_wdg_random_pick.cpp | 64 + .../randompickfilter/kis_wdg_random_pick.h | 43 + .../kritarandompickfilter.desktop | 65 + .../randompickfilter/randompickfilter.cc | 131 + .../randompickfilter/randompickfilter.h | 52 + .../randompickfilter/wdgrandompickoptions.ui | 135 + .../plugins/filters/roundcorners/Makefile.am | 22 + .../roundcorners/kis_round_corners_filter.cc | 158 + .../roundcorners/kis_round_corners_filter.h | 58 + .../kis_round_corners_filter_plugin.cc | 43 + .../kis_round_corners_filter_plugin.h | 32 + .../kritaroundcornersfilter.desktop | 39 + .../filters/smalltilesfilter/Makefile.am | 22 + .../kis_small_tiles_filter.cc | 187 + .../smalltilesfilter/kis_small_tiles_filter.h | 70 + .../kis_small_tiles_filter_plugin.cc | 43 + .../kis_small_tiles_filter_plugin.h | 32 + .../kritasmalltilesfilter.desktop | 39 + krita/plugins/filters/sobelfilter/Makefile.am | 22 + .../filters/sobelfilter/kis_sobel_filter.cc | 217 + .../filters/sobelfilter/kis_sobel_filter.h | 75 + .../sobelfilter/kis_sobel_filter_plugin.cc | 43 + .../sobelfilter/kis_sobel_filter_plugin.h | 32 + .../sobelfilter/kritasobelfilter.desktop | 39 + krita/plugins/filters/threadtest/Makefile.am | 18 + .../threadtest/kritathreadtest.desktop | 38 + .../plugins/filters/threadtest/threadtest.cc | 140 + krita/plugins/filters/threadtest/threadtest.h | 46 + krita/plugins/filters/unsharp/Makefile.am | 19 + .../filters/unsharp/kis_unsharp_filter.cc | 152 + .../filters/unsharp/kis_unsharp_filter.h | 47 + .../filters/unsharp/kis_wdg_unsharp.cc | 52 + .../plugins/filters/unsharp/kis_wdg_unsharp.h | 44 + .../unsharp/kritaunsharpfilter.desktop | 40 + krita/plugins/filters/unsharp/unsharp.cc | 50 + krita/plugins/filters/unsharp/unsharp.h | 37 + krita/plugins/filters/unsharp/wdgunsharp.ui | 138 + krita/plugins/filters/wavefilter/Makefile.am | 22 + .../filters/wavefilter/kis_wdg_wave.cpp | 90 + .../plugins/filters/wavefilter/kis_wdg_wave.h | 43 + .../wavefilter/kritawavefilter.desktop | 72 + .../plugins/filters/wavefilter/wavefilter.cc | 169 + krita/plugins/filters/wavefilter/wavefilter.h | 53 + .../filters/wavefilter/wdgwaveoptions.ui | 281 + krita/plugins/paintops/Makefile.am | 2 + .../paintops/defaultpaintops/Makefile.am | 38 + krita/plugins/paintops/defaultpaintops/README | 3 + .../paintops/defaultpaintops/airbrush.png | Bin 0 -> 1037 bytes .../defaultpaintops/defaultpaintops_plugin.cc | 70 + .../defaultpaintops/defaultpaintops_plugin.h | 35 + .../paintops/defaultpaintops/eraser.png | Bin 0 -> 734 bytes .../defaultpaintops/kis_airbrushop.cc | 150 + .../paintops/defaultpaintops/kis_airbrushop.h | 60 + .../paintops/defaultpaintops/kis_brushop.cc | 284 + .../paintops/defaultpaintops/kis_brushop.h | 112 + .../defaultpaintops/kis_convolveop.cc | 58 + .../paintops/defaultpaintops/kis_convolveop.h | 56 + .../kis_dlgbrushcurvecontrol.ui | 271 + .../defaultpaintops/kis_duplicateop.cc | 341 + .../defaultpaintops/kis_duplicateop.h | 62 + .../paintops/defaultpaintops/kis_eraseop.cc | 140 + .../paintops/defaultpaintops/kis_eraseop.h | 56 + .../paintops/defaultpaintops/kis_penop.cc | 132 + .../paintops/defaultpaintops/kis_penop.h | 58 + .../paintops/defaultpaintops/kis_smudgeop.cc | 328 + .../paintops/defaultpaintops/kis_smudgeop.h | 117 + .../kritadefaultpaintops.desktop | 93 + .../paintops/defaultpaintops/paintbrush.png | Bin 0 -> 769 bytes .../paintops/defaultpaintops/pencil.png | Bin 0 -> 793 bytes .../paintops/defaultpaintops/src/README | 2 + .../defaultpaintops/src/pencil_01.svg | 637 + .../src/pencil_jonathan_dietrich_01.svg | 434 + .../src/pennello_mauro_olivo_01.svg | 616 + krita/plugins/tools/Makefile.am | 3 + krita/plugins/tools/defaulttools/Makefile.am | 82 + .../tools/defaulttools/closedhand_cursor.xpm | 28 + .../tools/defaulttools/default_tools.cc | 88 + .../tools/defaulttools/default_tools.h | 43 + .../tools/defaulttools/kis_tool_brush.cc | 167 + .../tools/defaulttools/kis_tool_brush.h | 86 + .../defaulttools/kis_tool_colorpicker.cc | 298 + .../tools/defaulttools/kis_tool_colorpicker.h | 87 + .../tools/defaulttools/kis_tool_duplicate.cc | 255 + .../tools/defaulttools/kis_tool_duplicate.h | 91 + .../tools/defaulttools/kis_tool_ellipse.cc | 186 + .../tools/defaulttools/kis_tool_ellipse.h | 90 + .../tools/defaulttools/kis_tool_fill.cc | 233 + .../tools/defaulttools/kis_tool_fill.h | 108 + .../tools/defaulttools/kis_tool_gradient.cc | 309 + .../tools/defaulttools/kis_tool_gradient.h | 123 + .../tools/defaulttools/kis_tool_line.cc | 254 + .../tools/defaulttools/kis_tool_line.h | 99 + .../tools/defaulttools/kis_tool_move.cc | 181 + .../tools/defaulttools/kis_tool_move.h | 88 + .../tools/defaulttools/kis_tool_pan.cc | 96 + .../plugins/tools/defaulttools/kis_tool_pan.h | 79 + .../tools/defaulttools/kis_tool_rectangle.cc | 187 + .../tools/defaulttools/kis_tool_rectangle.h | 95 + .../tools/defaulttools/kis_tool_text.cc | 198 + .../tools/defaulttools/kis_tool_text.h | 80 + .../tools/defaulttools/kis_tool_zoom.cc | 191 + .../tools/defaulttools/kis_tool_zoom.h | 97 + .../defaulttools/kritadefaulttools.desktop | 56 + .../tools/defaulttools/openhand_cursor.xpm | 28 + .../tools/defaulttools/tool_color_fill.png | Bin 0 -> 1101 bytes .../tools/defaulttools/tool_colorpicker.png | Bin 0 -> 711 bytes .../tools/defaulttools/tool_duplicate.png | Bin 0 -> 1086 bytes .../defaulttools/tool_duplicate_cursor.png | Bin 0 -> 308 bytes .../tools/defaulttools/tool_ellipse.png | Bin 0 -> 523 bytes .../defaulttools/tool_ellipse_cursor.png | Bin 0 -> 308 bytes .../tools/defaulttools/tool_fill_cursor.png | Bin 0 -> 515 bytes .../tools/defaulttools/tool_freehand.png | Bin 0 -> 657 bytes .../defaulttools/tool_freehand_cursor.png | Bin 0 -> 260 bytes .../tools/defaulttools/tool_gradient.png | Bin 0 -> 385 bytes .../defaulttools/tool_gradient_cursor.png | Bin 0 -> 293 bytes .../plugins/tools/defaulttools/tool_line.png | Bin 0 -> 353 bytes .../tools/defaulttools/tool_line_cursor.png | Bin 0 -> 247 bytes .../plugins/tools/defaulttools/tool_move.png | Bin 0 -> 662 bytes krita/plugins/tools/defaulttools/tool_pan.png | Bin 0 -> 862 bytes .../tools/defaulttools/tool_rectangle.png | Bin 0 -> 333 bytes .../defaulttools/tool_rectangle_cursor.png | Bin 0 -> 229 bytes .../plugins/tools/defaulttools/tool_text.png | Bin 0 -> 890 bytes .../tools/defaulttools/tool_text_cursor.png | Bin 0 -> 299 bytes .../plugins/tools/defaulttools/tool_zoom.png | Bin 0 -> 876 bytes .../defaulttools/tool_zoom_minus_cursor.png | Bin 0 -> 282 bytes .../defaulttools/tool_zoom_plus_cursor.png | Bin 0 -> 301 bytes .../tools/defaulttools/wdgcolorpicker.ui | 167 + .../plugins/tools/selectiontools/Makefile.am | 55 + .../selectiontools/kis_tool_move_selection.cc | 223 + .../selectiontools/kis_tool_move_selection.h | 74 + .../selectiontools/kis_tool_select_brush.cc | 168 + .../selectiontools/kis_tool_select_brush.h | 82 + .../kis_tool_select_contiguous.cc | 234 + .../kis_tool_select_contiguous.h | 94 + .../kis_tool_select_elliptical.cc | 321 + .../kis_tool_select_elliptical.h | 98 + .../selectiontools/kis_tool_select_eraser.cc | 156 + .../selectiontools/kis_tool_select_eraser.h | 81 + .../selectiontools/kis_tool_select_outline.cc | 295 + .../selectiontools/kis_tool_select_outline.h | 100 + .../kis_tool_select_polygonal.cc | 315 + .../kis_tool_select_polygonal.h | 105 + .../kis_tool_select_rectangular.cc | 323 + .../kis_tool_select_rectangular.h | 94 + .../kritaselectiontools.desktop | 52 + .../tools/selectiontools/selection_tools.cc | 77 + .../tools/selectiontools/selection_tools.h | 43 + .../selectiontools/tool_brush_selection.png | Bin 0 -> 1051 bytes .../selectiontools/tool_brush_selection.svg | 827 + .../tool_brush_selection_cursor.png | Bin 0 -> 338 bytes .../tool_contiguous_selection.png | Bin 0 -> 835 bytes .../tool_contiguous_selection_cursor.png | Bin 0 -> 320 bytes .../tool_elliptical_selection.png | Bin 0 -> 702 bytes .../tool_elliptical_selection.svg | 256 + .../tool_elliptical_selection_cursor.png | Bin 0 -> 295 bytes .../selectiontools/tool_eraser_selection.png | Bin 0 -> 1086 bytes .../selectiontools/tool_eraser_selection.svg | 1993 + .../tool_eraser_selection_cursor.png | Bin 0 -> 340 bytes .../selectiontools/tool_outline_selection.png | Bin 0 -> 555 bytes .../selectiontools/tool_outline_selection.svg | 329 + .../tool_outline_selection_cursor.png | Bin 0 -> 358 bytes .../tool_polygonal_selection.png | Bin 0 -> 575 bytes .../tool_polygonal_selection.svg | 364 + .../tool_polygonal_selection_cursor.png | Bin 0 -> 432 bytes .../selectiontools/tool_rect_selection.png | Bin 0 -> 522 bytes .../selectiontools/tool_rect_selection.svg | 191 + .../tool_rectangular_selection_cursor.png | Bin 0 -> 223 bytes krita/plugins/tools/tool_crop/Makefile.am | 36 + .../plugins/tools/tool_crop/kis_tool_crop.cc | 925 + krita/plugins/tools/tool_crop/kis_tool_crop.h | 148 + .../tools/tool_crop/kritatoolcrop.desktop | 47 + krita/plugins/tools/tool_crop/tool_crop.cc | 62 + krita/plugins/tools/tool_crop/tool_crop.h | 42 + krita/plugins/tools/tool_crop/tool_crop.png | Bin 0 -> 692 bytes .../tools/tool_crop/tool_crop_cursor.png | Bin 0 -> 305 bytes .../plugins/tools/tool_crop/wdg_tool_crop.ui | 216 + krita/plugins/tools/tool_curves/Makefile.am | 55 + .../tools/tool_curves/kis_curve_framework.cc | 260 + .../tools/tool_curves/kis_curve_framework.h | 354 + .../tools/tool_curves/kis_tool_bezier.cc | 366 + .../tools/tool_curves/kis_tool_bezier.h | 97 + .../tool_curves/kis_tool_bezier_paint.cc | 115 + .../tools/tool_curves/kis_tool_bezier_paint.h | 62 + .../tool_curves/kis_tool_bezier_select.cc | 104 + .../tool_curves/kis_tool_bezier_select.h | 62 + .../tools/tool_curves/kis_tool_curve.cc | 593 + .../tools/tool_curves/kis_tool_curve.h | 204 + .../tools/tool_curves/kis_tool_example.cc | 108 + .../tools/tool_curves/kis_tool_example.h | 66 + .../tools/tool_curves/kis_tool_moutline.cc | 809 + .../tools/tool_curves/kis_tool_moutline.h | 131 + .../tools/tool_curves/kritatoolcurves.desktop | 36 + .../tools/tool_curves/tool_bezier_cursor.png | Bin 0 -> 2853 bytes .../tools/tool_curves/tool_bezier_paint.png | Bin 0 -> 679 bytes .../tools/tool_curves/tool_bezier_select.png | Bin 0 -> 636 bytes .../tools/tool_curves/tool_curve_dragging.png | Bin 0 -> 2955 bytes .../plugins/tools/tool_curves/tool_curves.cc | 67 + krita/plugins/tools/tool_curves/tool_curves.h | 35 + .../tools/tool_curves/tool_example.png | Bin 0 -> 2917 bytes .../tools/tool_curves/tool_example_cursor.png | Bin 0 -> 2853 bytes .../tools/tool_curves/tool_moutline.png | Bin 0 -> 777 bytes .../tool_curves/tool_moutline_cursor.png | Bin 0 -> 2857 bytes .../tool_curves/tool_moutline_editing.png | Bin 0 -> 2967 bytes .../tools/tool_curves/wdg_tool_example.ui | 128 + krita/plugins/tools/tool_filter/Makefile.am | 37 + .../plugins/tools/tool_filter/kis_filterop.cc | 154 + .../plugins/tools/tool_filter/kis_filterop.h | 63 + .../tools/tool_filter/kis_tool_filter.cc | 154 + .../tools/tool_filter/kis_tool_filter.h | 80 + .../tools/tool_filter/kritatoolfilter.desktop | 92 + .../plugins/tools/tool_filter/tool_filter.cc | 68 + krita/plugins/tools/tool_filter/tool_filter.h | 42 + .../plugins/tools/tool_filter/tool_filter.png | Bin 0 -> 496 bytes .../plugins/tools/tool_filter/tool_filter.svg | 468 + .../tools/tool_filter/tool_filter_cursor.png | Bin 0 -> 294 bytes .../tools/tool_perspectivegrid/Makefile.am | 34 + .../kis_tool_perspectivegrid.cc | 499 + .../kis_tool_perspectivegrid.h | 110 + .../kritatoolperspectivegrid.desktop | 35 + .../tool_perspectivegrid.cc | 62 + .../tool_perspectivegrid.h | 42 + .../tool_perspectivegrid.png | Bin 0 -> 737 bytes .../tool_perspectivegrid.svg | 87 + .../tool_perspectivetransform/Makefile.am | 34 + .../kis_tool_perspectivetransform.cc | 742 + .../kis_tool_perspectivetransform.h | 130 + .../kritatoolperspectivetransform.desktop | 37 + .../tool_perspectivetransform.cc | 63 + .../tool_perspectivetransform.h | 42 + .../tool_perspectivetransform.png | Bin 0 -> 690 bytes .../tool_perspectivetransform.svg | 87 + krita/plugins/tools/tool_polygon/Makefile.am | 35 + .../tools/tool_polygon/kis_tool_polygon.cc | 252 + .../tools/tool_polygon/kis_tool_polygon.h | 101 + .../tool_polygon/kritatoolpolygon.desktop | 52 + .../tools/tool_polygon/tool_polygon.cc | 62 + .../plugins/tools/tool_polygon/tool_polygon.h | 38 + .../tools/tool_polygon/tool_polygon.png | Bin 0 -> 772 bytes .../tool_polygon/tool_polygon_cursor.png | Bin 0 -> 401 bytes krita/plugins/tools/tool_polyline/Makefile.am | 35 + .../tools/tool_polyline/kis_tool_polyline.cc | 271 + .../tools/tool_polyline/kis_tool_polyline.h | 108 + .../tool_polyline/kritatoolpolyline.desktop | 49 + .../plugins/tools/tool_polyline/polyline.png | Bin 0 -> 586 bytes .../tools/tool_polyline/tool_polyline.cc | 64 + .../tools/tool_polyline/tool_polyline.h | 42 + .../tool_polyline/tool_polyline_cursor.png | Bin 0 -> 396 bytes .../tools/tool_selectsimilar/Makefile.am | 31 + .../kis_tool_selectsimilar.cc | 271 + .../kis_tool_selectsimilar.h | 101 + .../kritatoolselectsimilar.desktop | 43 + .../tools/tool_selectsimilar/selectsimilar.cc | 61 + .../tools/tool_selectsimilar/selectsimilar.h | 34 + .../tool_similar_selection.png | Bin 0 -> 723 bytes .../tool_similar_selection.svg | 2118 + .../tool_similar_selection_minus_cursor.png | Bin 0 -> 612 bytes .../tool_similar_selection_plus_cursor.png | Bin 0 -> 629 bytes krita/plugins/tools/tool_star/Makefile.am | 36 + .../plugins/tools/tool_star/kis_tool_star.cc | 245 + krita/plugins/tools/tool_star/kis_tool_star.h | 100 + .../tools/tool_star/kritatoolstar.desktop | 52 + krita/plugins/tools/tool_star/tool_star.cc | 62 + krita/plugins/tools/tool_star/tool_star.h | 42 + krita/plugins/tools/tool_star/tool_star.png | Bin 0 -> 624 bytes .../tools/tool_star/tool_star_cursor.png | Bin 0 -> 366 bytes .../plugins/tools/tool_star/wdg_tool_star.ui | 128 + .../plugins/tools/tool_transform/Makefile.am | 36 + .../tool_transform/kis_tool_transform.cc | 916 + .../tools/tool_transform/kis_tool_transform.h | 154 + .../tool_transform/kritatooltransform.desktop | 46 + .../tools/tool_transform/rotate_cursor.xpm | 29 + .../tools/tool_transform/tool_transform.cc | 64 + .../tools/tool_transform/tool_transform.h | 42 + .../tools/tool_transform/tool_transform.png | Bin 0 -> 457 bytes .../tool_transform/wdg_tool_transform.ui | 243 + krita/plugins/viewplugins/Makefile.am | 24 + .../viewplugins/colorrange/Makefile.am | 24 + .../viewplugins/colorrange/colorrange.cc | 82 + .../viewplugins/colorrange/colorrange.h | 44 + .../viewplugins/colorrange/colorrange.rc | 10 + .../viewplugins/colorrange/dlg_colorrange.cc | 351 + .../viewplugins/colorrange/dlg_colorrange.h | 99 + .../colorrange/kritacolorrange.desktop | 40 + .../viewplugins/colorrange/wdg_colorrange.ui | 252 + .../colorspaceconversion/Makefile.am | 26 + .../colorspaceconversion.cc | 155 + .../colorspaceconversion.h | 50 + .../colorspaceconversion.rc | 11 + .../dlg_colorspaceconversion.cc | 91 + .../dlg_colorspaceconversion.h | 49 + .../kritacolorspaceconversion.desktop | 40 + .../wdgconvertcolorspace.ui | 218 + .../viewplugins/dropshadow/Makefile.am | 30 + .../viewplugins/dropshadow/dlg_dropshadow.cc | 117 + .../viewplugins/dropshadow/dlg_dropshadow.h | 59 + .../viewplugins/dropshadow/dropshadow.rc | 11 + .../viewplugins/dropshadow/kis_dropshadow.cc | 758 + .../viewplugins/dropshadow/kis_dropshadow.h | 71 + .../dropshadow/kis_dropshadow_plugin.cc | 91 + .../dropshadow/kis_dropshadow_plugin.h | 45 + .../dropshadow/kritadropshadow.desktop | 39 + .../viewplugins/dropshadow/wdg_dropshadow.ui | 235 + .../viewplugins/filtersgallery/Makefile.am | 25 + .../filtersgallery/filters_gallery.cc | 138 + .../filtersgallery/filters_gallery.h | 53 + .../filtersgallery/kis_dlg_filtersgallery.cc | 133 + .../filtersgallery/kis_dlg_filtersgallery.h | 68 + .../filtersgallery/kis_wdg_filtersgallery.ui | 123 + .../kritafiltersgallery.desktop | 45 + .../filtersgallery/kritafiltersgallery.rc | 9 + .../plugins/viewplugins/histogram/Makefile.am | 24 + .../viewplugins/histogram/dlg_histogram.cc | 68 + .../viewplugins/histogram/dlg_histogram.h | 57 + .../viewplugins/histogram/histogram.cc | 105 + .../plugins/viewplugins/histogram/histogram.h | 49 + .../viewplugins/histogram/histogram.rc | 10 + .../histogram/kis_histogram_widget.cc | 147 + .../histogram/kis_histogram_widget.h | 54 + .../histogram/kritahistogram.desktop | 43 + .../viewplugins/histogram/wdghistogram.ui | 229 + .../viewplugins/histogram_docker/Makefile.am | 21 + .../histogram_docker/histogramdocker.cc | 192 + .../histogram_docker/histogramdocker.h | 79 + .../kis_accumulating_producer.cc | 102 + .../kis_accumulating_producer.h | 76 + .../histogram_docker/kis_cachedhistogram.cc | 37 + .../histogram_docker/kis_cachedhistogram.h | 53 + .../kis_imagerasteredcache.cc | 162 + .../histogram_docker/kis_imagerasteredcache.h | 80 + .../kritahistogramdocker.desktop | 40 + .../histogram_docker/kritahistogramdocker.rc | 3 + .../viewplugins/history_docker/Makefile.am | 18 + .../history_docker/historydocker.cc | 58 + .../history_docker/historydocker.h | 34 + .../history_docker/kritahistorydocker.desktop | 73 + .../plugins/viewplugins/imagesize/Makefile.am | 24 + .../viewplugins/imagesize/configure.in.in | 1 + .../viewplugins/imagesize/dlg_imagesize.cc | 277 + .../viewplugins/imagesize/dlg_imagesize.h | 82 + .../viewplugins/imagesize/dlg_layersize.cc | 261 + .../viewplugins/imagesize/dlg_layersize.h | 73 + .../viewplugins/imagesize/imagesize.cc | 190 + .../plugins/viewplugins/imagesize/imagesize.h | 48 + .../viewplugins/imagesize/imagesize.rc | 15 + .../imagesize/kritaimagesize.desktop | 39 + .../viewplugins/imagesize/wdg_imagesize.ui | 365 + .../viewplugins/imagesize/wdg_layersize.ui | 234 + .../viewplugins/imagesize/wdg_resolution.ui | 152 + .../viewplugins/modify_selection/Makefile.am | 26 + .../modify_selection/dlg_border_selection.cc | 76 + .../modify_selection/dlg_border_selection.h | 48 + .../modify_selection/dlg_grow_selection.cc | 76 + .../modify_selection/dlg_grow_selection.h | 48 + .../modify_selection/dlg_shrink_selection.cc | 81 + .../modify_selection/dlg_shrink_selection.h | 49 + .../kritamodifyselection.desktop | 40 + .../modify_selection/modify_selection.cc | 158 + .../modify_selection/modify_selection.h | 46 + .../modify_selection/modify_selection.rc | 10 + .../modify_selection/wdg_border_selection.ui | 57 + .../modify_selection/wdg_grow_selection.ui | 57 + .../modify_selection/wdg_shrink_selection.ui | 68 + .../viewplugins/performancetest/Makefile.am | 24 + .../performancetest/dlg_perftest.cc | 110 + .../performancetest/dlg_perftest.h | 55 + .../performancetest/kritaperftest.desktop | 41 + .../viewplugins/performancetest/perftest.cc | 1198 + .../viewplugins/performancetest/perftest.h | 75 + .../viewplugins/performancetest/perftest.rc | 9 + .../performancetest/wdg_perftest.ui | 283 + .../viewplugins/rotateimage/Makefile.am | 24 + .../rotateimage/dlg_rotateimage.cc | 147 + .../viewplugins/rotateimage/dlg_rotateimage.h | 65 + .../rotateimage/kritarotateimage.desktop | 40 + .../viewplugins/rotateimage/rotateimage.cc | 134 + .../viewplugins/rotateimage/rotateimage.h | 49 + .../viewplugins/rotateimage/rotateimage.rc | 25 + .../rotateimage/wdg_rotateimage.ui | 245 + .../viewplugins/screenshot/Makefile.am | 26 + .../screenshot/kritascreenshot.desktop | 47 + .../viewplugins/screenshot/ksnapshot.cpp | 499 + .../viewplugins/screenshot/ksnapshot.h | 135 + .../viewplugins/screenshot/ksnapshotwidget.ui | 335 + .../screenshot/ksnapshotwidget.ui.h | 118 + krita/plugins/viewplugins/screenshot/main.cpp | 38 + .../viewplugins/screenshot/regiongrabber.cpp | 170 + .../viewplugins/screenshot/regiongrabber.h | 71 + .../screenshot/screenshot-kpresenter.rc | 9 + .../screenshot/screenshot-krita.rc | 9 + .../screenshot/screenshot-kword.rc | 9 + .../viewplugins/screenshot/screenshot.cpp | 78 + .../viewplugins/screenshot/screenshot.h | 42 + .../plugins/viewplugins/scripting/Makefile.am | 28 + .../scripting/kritacore/Makefile.am | 29 + .../scripting/kritacore/kritacoremodule.cpp | 288 + .../scripting/kritacore/kritacoremodule.h | 205 + .../scripting/kritacore/krs_brush.cpp | 41 + .../scripting/kritacore/krs_brush.h | 48 + .../scripting/kritacore/krs_color.cpp | 42 + .../scripting/kritacore/krs_color.h | 49 + .../scripting/kritacore/krs_doc.cpp | 46 + .../viewplugins/scripting/kritacore/krs_doc.h | 53 + .../scripting/kritacore/krs_filter.cpp | 76 + .../scripting/kritacore/krs_filter.h | 76 + .../kritacore/krs_filter_configuration.cpp | 72 + .../kritacore/krs_filter_configuration.h | 65 + .../scripting/kritacore/krs_histogram.cpp | 104 + .../scripting/kritacore/krs_histogram.h | 115 + .../scripting/kritacore/krs_image.cpp | 148 + .../scripting/kritacore/krs_image.h | 94 + .../scripting/kritacore/krs_iterator.h | 306 + .../scripting/kritacore/krs_paint_layer.cpp | 207 + .../scripting/kritacore/krs_paint_layer.h | 140 + .../scripting/kritacore/krs_painter.cpp | 358 + .../scripting/kritacore/krs_painter.h | 242 + .../scripting/kritacore/krs_pattern.cpp | 39 + .../scripting/kritacore/krs_pattern.h | 48 + .../kritacore/krs_script_progress.cpp | 67 + .../scripting/kritacore/krs_script_progress.h | 77 + .../scripting/kritacore/krs_wavelet.cpp | 114 + .../scripting/kritacore/krs_wavelet.h | 92 + .../scripting/kritascripting.desktop | 81 + .../scripting/kritascripting/Makefile.am | 19 + .../kritascripting/kis_script_monitor.cpp | 51 + .../kritascripting/kis_script_monitor.h | 50 + .../kritascripting/kis_script_progress.cpp | 64 + .../kritascripting/kis_script_progress.h | 54 + .../viewplugins/scripting/samples/Makefile.am | 3 + .../scripting/samples/python/Makefile.am | 5 + .../scripting/samples/python/invert.py | 48 + .../scripting/samples/python/invertpython.rc | 9 + .../scripting/samples/python/reshapehisto.py | 300 + .../scripting/samples/python/reshapehisto.rc | 9 + .../scripting/samples/ruby/Makefile.am | 18 + .../scripting/samples/ruby/changecs.rb | 5 + .../scripting/samples/ruby/changecs.rc | 9 + .../scripting/samples/ruby/filterstest.rb | 31 + .../scripting/samples/ruby/filterstest.rc | 9 + .../scripting/samples/ruby/invert.rb | 45 + .../scripting/samples/ruby/invertruby.rc | 9 + .../scripting/samples/ruby/randompaint.rb | 98 + .../scripting/samples/ruby/randompaint.rc | 9 + .../scripting/samples/ruby/torture-filters.rb | 70 + .../scripting/samples/ruby/torture-filters.rc | 9 + .../samples/ruby/torture-painting.rb | 133 + .../samples/ruby/torture-painting.rc | 9 + .../viewplugins/scripting/scripting.cc | 111 + .../plugins/viewplugins/scripting/scripting.h | 53 + .../viewplugins/scripting/scripting.rc | 10 + .../viewplugins/selectopaque/Makefile.am | 24 + .../selectopaque/kritaselectopaque.desktop | 26 + .../viewplugins/selectopaque/selectopaque.cc | 116 + .../viewplugins/selectopaque/selectopaque.h | 44 + .../viewplugins/selectopaque/selectopaque.rc | 10 + .../viewplugins/separate_channels/Makefile.am | 26 + .../separate_channels/dlg_separate.cc | 110 + .../separate_channels/dlg_separate.h | 67 + .../separate_channels/imageseparate.rc | 9 + .../kis_channel_separator.cc | 301 + .../separate_channels/kis_channel_separator.h | 69 + .../kis_separate_channels_plugin.cc | 96 + .../kis_separate_channels_plugin.h | 45 + .../kritaseparatechannels.desktop | 42 + .../separate_channels/wdg_separations.ui | 182 + .../viewplugins/shearimage/Makefile.am | 24 + .../viewplugins/shearimage/dlg_shearimage.cc | 96 + .../viewplugins/shearimage/dlg_shearimage.h | 54 + .../shearimage/kritashearimage.desktop | 37 + .../viewplugins/shearimage/shearimage.cc | 113 + .../viewplugins/shearimage/shearimage.h | 46 + .../viewplugins/shearimage/shearimage.rc | 13 + .../viewplugins/shearimage/wdg_shearimage.ui | 102 + .../plugins/viewplugins/substrate/Makefile.am | 25 + .../viewplugins/substrate/dlg_substrate.cc | 59 + .../viewplugins/substrate/dlg_substrate.h | 61 + .../substrate/kis_repeating_substrate.cc | 0 .../substrate/kis_repeating_substrate.h | 69 + .../substrate/kritasubstrate.desktop | 35 + .../viewplugins/substrate/substrate.cc | 78 + .../plugins/viewplugins/substrate/substrate.h | 44 + .../viewplugins/substrate/substrate.rc | 8 + .../viewplugins/substrate/wdgsubstrate.ui | 221 + .../viewplugins/variations/Makefile.am | 25 + .../viewplugins/variations/dlg_variations.cc | 58 + .../viewplugins/variations/dlg_variations.h | 61 + .../variations/kritavariations.desktop | 40 + .../viewplugins/variations/variations.cc | 88 + .../viewplugins/variations/variations.h | 44 + .../viewplugins/variations/variations.rc | 8 + .../viewplugins/variations/wdg_variations.ui | 897 + krita/sdk/Makefile.am | 23 + krita/sdk/kis_annotation.h | 89 + krita/sdk/kis_canvas_controller.h | 200 + krita/sdk/kis_canvas_observer.h | 55 + krita/sdk/kis_canvas_subject.h | 192 + krita/sdk/kis_debug_areas.h | 34 + krita/sdk/kis_generic_registry.h | 166 + krita/sdk/kis_global.h | 83 + krita/sdk/kis_id.h | 108 + krita/sdk/kis_integer_maths.h | 111 + krita/sdk/kis_progress_display_interface.h | 76 + krita/sdk/kis_progress_subject.cc | 29 + krita/sdk/kis_progress_subject.h | 44 + krita/sdk/kis_shared_ptr_vector.h | 70 + krita/sdk/kis_undo_adapter.h | 67 + krita/todo-1.6 | 74 + krita/ui/Makefile.am | 75 + krita/ui/imageviewer.cc | 78 + krita/ui/imageviewer.h | 52 + krita/ui/kcurve.cc | 450 + krita/ui/kcurve.h | 79 + krita/ui/kis_aboutdata.h | 68 + krita/ui/kis_autobrush.cc | 177 + krita/ui/kis_autobrush.h | 55 + krita/ui/kis_autogradient.cc | 147 + krita/ui/kis_autogradient.h | 52 + krita/ui/kis_birdeye_box.cc | 311 + krita/ui/kis_birdeye_box.h | 68 + krita/ui/kis_boundary_painter.cc | 81 + krita/ui/kis_boundary_painter.h | 33 + krita/ui/kis_brush_chooser.cc | 102 + krita/ui/kis_brush_chooser.h | 51 + krita/ui/kis_button_event.h | 45 + krita/ui/kis_button_press_event.h | 31 + krita/ui/kis_button_release_event.h | 31 + krita/ui/kis_canvas.cc | 1355 + krita/ui/kis_canvas.h | 381 + krita/ui/kis_canvas_painter.cc | 1440 + krita/ui/kis_canvas_painter.h | 356 + krita/ui/kis_clipboard.cc | 287 + krita/ui/kis_clipboard.h | 79 + krita/ui/kis_cmb_composite.cc | 88 + krita/ui/kis_cmb_composite.h | 70 + krita/ui/kis_cmb_idlist.cc | 97 + krita/ui/kis_cmb_idlist.h | 67 + krita/ui/kis_color_cup.cc | 118 + krita/ui/kis_color_cup.h | 94 + krita/ui/kis_config.cc | 442 + krita/ui/kis_config.h | 143 + krita/ui/kis_controlframe.cc | 343 + krita/ui/kis_controlframe.h | 128 + krita/ui/kis_cursor.cc | 374 + krita/ui/kis_cursor.h | 73 + krita/ui/kis_custom_brush.cc | 158 + krita/ui/kis_custom_brush.h | 62 + krita/ui/kis_custom_image_widget.cc | 110 + krita/ui/kis_custom_image_widget.h | 57 + krita/ui/kis_custom_palette.cc | 151 + krita/ui/kis_custom_palette.h | 61 + krita/ui/kis_custom_pattern.cc | 118 + krita/ui/kis_custom_pattern.h | 60 + krita/ui/kis_dlg_adj_layer_props.cc | 168 + krita/ui/kis_dlg_adj_layer_props.h | 80 + krita/ui/kis_dlg_adjustment_layer.cc | 193 + krita/ui/kis_dlg_adjustment_layer.h | 85 + krita/ui/kis_dlg_apply_profile.cc | 96 + krita/ui/kis_dlg_apply_profile.h | 48 + krita/ui/kis_dlg_image_properties.cc | 173 + krita/ui/kis_dlg_image_properties.h | 61 + krita/ui/kis_dlg_layer_properties.cc | 106 + krita/ui/kis_dlg_layer_properties.h | 53 + krita/ui/kis_dlg_new_layer.cc | 159 + krita/ui/kis_dlg_new_layer.h | 60 + krita/ui/kis_dlg_preferences.cc | 821 + krita/ui/kis_dlg_preferences.h | 270 + krita/ui/kis_doc.cc | 1171 + krita/ui/kis_doc.h | 223 + krita/ui/kis_doc_iface.cc | 67 + krita/ui/kis_doc_iface.h | 50 + krita/ui/kis_double_click_event.h | 31 + krita/ui/kis_double_widget.cc | 147 + krita/ui/kis_double_widget.h | 77 + krita/ui/kis_event.h | 62 + krita/ui/kis_factory.cc | 153 + krita/ui/kis_factory.h | 58 + krita/ui/kis_filter_manager.cc | 408 + krita/ui/kis_filter_manager.h | 86 + krita/ui/kis_filters_listview.cc | 250 + krita/ui/kis_filters_listview.h | 143 + krita/ui/kis_gradient_chooser.cc | 77 + krita/ui/kis_gradient_chooser.h | 61 + krita/ui/kis_gradient_slider_widget.cc | 219 + krita/ui/kis_gradient_slider_widget.h | 79 + krita/ui/kis_grid_drawer.cpp | 223 + krita/ui/kis_grid_drawer.h | 71 + krita/ui/kis_grid_manager.cpp | 156 + krita/ui/kis_grid_manager.h | 64 + krita/ui/kis_histogram_view.cc | 354 + krita/ui/kis_histogram_view.h | 103 + krita/ui/kis_icon_item.cc | 116 + krita/ui/kis_icon_item.h | 48 + krita/ui/kis_iconwidget.cc | 80 + krita/ui/kis_iconwidget.h | 49 + krita/ui/kis_import_catcher.cc | 80 + krita/ui/kis_import_catcher.h | 57 + krita/ui/kis_input_device.cc | 101 + krita/ui/kis_input_device.h | 86 + krita/ui/kis_int_spinbox.cc | 198 + krita/ui/kis_int_spinbox.h | 198 + krita/ui/kis_itemchooser.cc | 81 + krita/ui/kis_itemchooser.h | 64 + krita/ui/kis_label_cursor_pos.cc | 53 + krita/ui/kis_label_cursor_pos.h | 42 + krita/ui/kis_label_progress.cc | 214 + krita/ui/kis_label_progress.h | 65 + krita/ui/kis_label_zoom.cc | 21 + krita/ui/kis_label_zoom.h | 33 + krita/ui/kis_layerbox.cc | 675 + krita/ui/kis_layerbox.h | 123 + krita/ui/kis_layerlist.cc | 220 + krita/ui/kis_layerlist.h | 79 + krita/ui/kis_load_visitor.h | 187 + krita/ui/kis_matrix_widget.ui | 210 + krita/ui/kis_matrix_widget.ui.h | 17 + krita/ui/kis_move_event.h | 31 + krita/ui/kis_multi_bool_filter_widget.cc | 68 + krita/ui/kis_multi_bool_filter_widget.h | 55 + krita/ui/kis_multi_double_filter_widget.cc | 103 + krita/ui/kis_multi_double_filter_widget.h | 77 + krita/ui/kis_multi_integer_filter_widget.cc | 104 + krita/ui/kis_multi_integer_filter_widget.h | 81 + krita/ui/kis_opengl_canvas.cc | 127 + krita/ui/kis_opengl_canvas.h | 72 + krita/ui/kis_opengl_canvas_painter.cc | 849 + krita/ui/kis_opengl_canvas_painter.h | 212 + krita/ui/kis_opengl_image_context.cc | 371 + krita/ui/kis_opengl_image_context.h | 156 + krita/ui/kis_paintop_box.cc | 249 + krita/ui/kis_paintop_box.h | 103 + krita/ui/kis_palette_view.cc | 150 + krita/ui/kis_palette_view.h | 69 + krita/ui/kis_palette_widget.cc | 162 + krita/ui/kis_palette_widget.h | 79 + krita/ui/kis_part_layer.cc | 260 + krita/ui/kis_part_layer.h | 147 + krita/ui/kis_part_layer_handler.cc | 94 + krita/ui/kis_part_layer_handler.h | 57 + krita/ui/kis_pattern_chooser.cc | 57 + krita/ui/kis_pattern_chooser.h | 41 + krita/ui/kis_perspective_grid_manager.cpp | 159 + krita/ui/kis_perspective_grid_manager.h | 54 + krita/ui/kis_populate_visitor.h | 117 + krita/ui/kis_previewdialog.cc | 46 + krita/ui/kis_previewdialog.h | 44 + krita/ui/kis_previewwidget.cc | 409 + krita/ui/kis_previewwidget.h | 140 + krita/ui/kis_previewwidgetbase.ui | 271 + krita/ui/kis_qpaintdevice_canvas.cc | 120 + krita/ui/kis_qpaintdevice_canvas.h | 67 + krita/ui/kis_qpaintdevice_canvas_painter.cc | 647 + krita/ui/kis_qpaintdevice_canvas_painter.h | 189 + krita/ui/kis_resource_mediator.cc | 117 + krita/ui/kis_resource_mediator.h | 72 + krita/ui/kis_resourceserver.cc | 199 + krita/ui/kis_resourceserver.h | 90 + krita/ui/kis_ruler.cc | 367 + krita/ui/kis_ruler.h | 80 + krita/ui/kis_save_visitor.h | 171 + krita/ui/kis_savexml_visitor.h | 144 + krita/ui/kis_selection_manager.cc | 1643 + krita/ui/kis_selection_manager.h | 136 + krita/ui/kis_selection_options.cc | 70 + krita/ui/kis_selection_options.h | 56 + krita/ui/kis_text_brush.cc | 74 + krita/ui/kis_text_brush.h | 70 + krita/ui/kis_tool.cc | 69 + krita/ui/kis_tool.h | 143 + krita/ui/kis_tool_controller.h | 39 + krita/ui/kis_tool_dummy.cc | 111 + krita/ui/kis_tool_dummy.h | 84 + krita/ui/kis_tool_factory.h | 41 + krita/ui/kis_tool_freehand.cc | 354 + krita/ui/kis_tool_freehand.h | 102 + krita/ui/kis_tool_manager.cc | 303 + krita/ui/kis_tool_manager.h | 102 + krita/ui/kis_tool_non_paint.cc | 115 + krita/ui/kis_tool_non_paint.h | 84 + krita/ui/kis_tool_paint.cc | 260 + krita/ui/kis_tool_paint.h | 118 + krita/ui/kis_tool_registry.cc | 111 + krita/ui/kis_tool_registry.h | 59 + krita/ui/kis_tool_shape.cc | 67 + krita/ui/kis_tool_shape.h | 52 + krita/ui/kis_tool_types.h | 34 + krita/ui/kis_view.cc | 4018 + krita/ui/kis_view.h | 663 + krita/ui/kis_view_iface.cc | 98 + krita/ui/kis_view_iface.h | 58 + krita/ui/kobirdeyepanel.cpp | 619 + krita/ui/kobirdeyepanel.h | 262 + krita/ui/layerlist.cpp | 1325 + krita/ui/layerlist.h | 268 + krita/ui/squeezedcombobox.cpp | 167 + krita/ui/squeezedcombobox.h | 136 + krita/ui/wdgapplyprofile.ui | 172 + krita/ui/wdgautobrush.ui | 355 + krita/ui/wdgautogradient.ui | 399 + krita/ui/wdgbirdeye.ui | 304 + krita/ui/wdgcolorsettings.ui | 357 + krita/ui/wdgcustombrush.ui | 199 + krita/ui/wdgcustompalette.ui | 88 + krita/ui/wdgcustompattern.ui | 156 + krita/ui/wdgdisplaysettings.ui | 90 + krita/ui/wdggeneralsettings.ui | 183 + krita/ui/wdggridsettings.ui | 468 + krita/ui/wdglayerbox.ui | 299 + krita/ui/wdglayerproperties.ui | 170 + krita/ui/wdgnewimage.ui | 435 + krita/ui/wdgpalettechooser.ui | 105 + krita/ui/wdgperformancesettings.ui | 146 + krita/ui/wdgpressuresettings.ui | 66 + krita/ui/wdgselectionoptions.ui | 64 + krita/ui/wdgshapeoptions.ui | 98 + krita/ui/wdgtabletdevicesettings.ui | 193 + krita/ui/wdgtabletsettings.ui | 104 + krita/ui/wdgtextbrush.ui | 158 + kspread/AUTHORS | 30 + kspread/CHANGES | 410 + kspread/DEBUG | 11 + kspread/DESIGN.html | 745 + kspread/Doxyfile | 1153 + kspread/FORMATTING_DESIGN | 97 + kspread/KSpreadAppIface.cc | 83 + kspread/KSpreadAppIface.h | 48 + kspread/KSpreadCellIface.cc | 1238 + kspread/KSpreadCellIface.h | 175 + kspread/KSpreadColumnIface.cc | 65 + kspread/KSpreadColumnIface.h | 50 + kspread/KSpreadDocIface.cc | 221 + kspread/KSpreadDocIface.h | 82 + kspread/KSpreadLayoutIface.cc | 415 + kspread/KSpreadLayoutIface.h | 103 + kspread/KSpreadMapIface.cc | 125 + kspread/KSpreadMapIface.h | 58 + kspread/KSpreadRowIface.cc | 63 + kspread/KSpreadRowIface.h | 51 + kspread/KSpreadTableIface.cc | 434 + kspread/KSpreadTableIface.h | 111 + kspread/KSpreadViewIface.cc | 459 + kspread/KSpreadViewIface.h | 147 + kspread/Makefile.am | 73 + kspread/OASIS.txt | 240 + kspread/TODO | 504 + kspread/commands.cc | 946 + kspread/commands.h | 471 + kspread/damages.cc | 83 + kspread/damages.h | 93 + kspread/demos/features.ksp | Bin 0 -> 4615 bytes kspread/demos/testcases.ksp | Bin 0 -> 2002 bytes kspread/dependencies.cc | 682 + kspread/dependencies.h | 84 + kspread/dialogs/Makefile.am | 74 + kspread/dialogs/SheetSelectWidget.ui | 270 + kspread/dialogs/font_cell_format.ui | 226 + kspread/dialogs/kspread_dlg_angle.cc | 86 + kspread/dialogs/kspread_dlg_angle.h | 52 + kspread/dialogs/kspread_dlg_area.cc | 101 + kspread/dialogs/kspread_dlg_area.h | 55 + kspread/dialogs/kspread_dlg_comment.cc | 83 + kspread/dialogs/kspread_dlg_comment.h | 55 + kspread/dialogs/kspread_dlg_conditional.cc | 679 + kspread/dialogs/kspread_dlg_conditional.h | 103 + kspread/dialogs/kspread_dlg_cons.cc | 687 + kspread/dialogs/kspread_dlg_cons.h | 83 + kspread/dialogs/kspread_dlg_csv.cc | 735 + kspread/dialogs/kspread_dlg_csv.h | 130 + kspread/dialogs/kspread_dlg_database.cc | 1179 + kspread/dialogs/kspread_dlg_database.h | 143 + kspread/dialogs/kspread_dlg_find.cc | 167 + kspread/dialogs/kspread_dlg_find.h | 97 + kspread/dialogs/kspread_dlg_format.cc | 352 + kspread/dialogs/kspread_dlg_format.h | 81 + kspread/dialogs/kspread_dlg_formula.cc | 763 + kspread/dialogs/kspread_dlg_formula.h | 179 + kspread/dialogs/kspread_dlg_goalseek.cc | 486 + kspread/dialogs/kspread_dlg_goalseek.h | 116 + kspread/dialogs/kspread_dlg_goto.cc | 87 + kspread/dialogs/kspread_dlg_goto.h | 55 + kspread/dialogs/kspread_dlg_insert.cc | 148 + kspread/dialogs/kspread_dlg_insert.h | 65 + kspread/dialogs/kspread_dlg_layout.cc | 3928 + kspread/dialogs/kspread_dlg_layout.h | 636 + kspread/dialogs/kspread_dlg_list.cc | 321 + kspread/dialogs/kspread_dlg_list.h | 71 + kspread/dialogs/kspread_dlg_paperlayout.cc | 554 + kspread/dialogs/kspread_dlg_paperlayout.h | 94 + kspread/dialogs/kspread_dlg_pasteinsert.cc | 77 + kspread/dialogs/kspread_dlg_pasteinsert.h | 53 + kspread/dialogs/kspread_dlg_preference.cc | 1042 + kspread/dialogs/kspread_dlg_preference.h | 223 + kspread/dialogs/kspread_dlg_reference.cc | 368 + kspread/dialogs/kspread_dlg_reference.h | 92 + kspread/dialogs/kspread_dlg_resize2.cc | 183 + kspread/dialogs/kspread_dlg_resize2.h | 74 + kspread/dialogs/kspread_dlg_series.cc | 213 + kspread/dialogs/kspread_dlg_series.h | 66 + kspread/dialogs/kspread_dlg_show.cc | 112 + kspread/dialogs/kspread_dlg_show.h | 54 + kspread/dialogs/kspread_dlg_showColRow.cc | 152 + kspread/dialogs/kspread_dlg_showColRow.h | 56 + kspread/dialogs/kspread_dlg_sort.cc | 748 + kspread/dialogs/kspread_dlg_sort.h | 111 + kspread/dialogs/kspread_dlg_special.cc | 135 + kspread/dialogs/kspread_dlg_special.h | 55 + kspread/dialogs/kspread_dlg_styles.cc | 332 + kspread/dialogs/kspread_dlg_styles.h | 77 + kspread/dialogs/kspread_dlg_subtotal.cc | 321 + kspread/dialogs/kspread_dlg_subtotal.h | 72 + kspread/dialogs/kspread_dlg_validity.cc | 814 + kspread/dialogs/kspread_dlg_validity.h | 81 + kspread/dialogs/kspreadsubtotal.ui | 222 + kspread/dialogs/link.cc | 288 + kspread/dialogs/link.h | 57 + kspread/dialogs/position_cell_format.ui | 411 + kspread/dialogs/protection_cell_format.ui | 180 + kspread/dialogs/sheet_properties.cc | 192 + kspread/dialogs/sheet_properties.h | 93 + kspread/dialogs/sheet_properties_base.ui | 258 + kspread/digest.cc | 853 + kspread/digest.h | 56 + kspread/doc/PAINTING.html | 267 + kspread/doc/README | 10 + kspread/dtd/Makefile.am | 4 + kspread/dtd/kspread.dtd | 447 + kspread/extensions/Makefile.am | 6 + kspread/extensions/builtin.xml | 4 + kspread/extensions/conversion.xml | 277 + kspread/extensions/database.xml | 298 + kspread/extensions/datetime.xml | 600 + kspread/extensions/engineering.xml | 728 + kspread/extensions/financial.xml | 880 + kspread/extensions/information.xml | 297 + kspread/extensions/logic.xml | 221 + kspread/extensions/math.xml | 1194 + kspread/extensions/reference.xml | 207 + kspread/extensions/statistical.xml | 1410 + kspread/extensions/text.xml | 594 + kspread/extensions/trig.xml | 280 + kspread/formula.cc | 1535 + kspread/formula.h | 350 + kspread/functions.cc | 526 + kspread/functions.h | 171 + kspread/ksploadinginfo.h | 81 + kspread/kspread.desktop | 80 + kspread/kspread.rc | 240 + kspread/kspread_aboutdata.h | 68 + kspread/kspread_autofill.cc | 1217 + kspread/kspread_autofill.h | 118 + kspread/kspread_brush.cc | 271 + kspread/kspread_brush.h | 93 + kspread/kspread_canvas.cc | 6167 ++ kspread/kspread_canvas.h | 730 + kspread/kspread_cell.cc | 7348 ++ kspread/kspread_cell.h | 1103 + kspread/kspread_cluster.cc | 1449 + kspread/kspread_cluster.h | 320 + kspread/kspread_condition.cc | 670 + kspread/kspread_condition.h | 150 + kspread/kspread_doc.cc | 2462 + kspread/kspread_doc.h | 736 + kspread/kspread_editors.cc | 1589 + kspread/kspread_editors.h | 318 + kspread/kspread_events.cc | 19 + kspread/kspread_events.h | 36 + kspread/kspread_factory.cc | 101 + kspread/kspread_factory.h | 55 + kspread/kspread_factory_init.cc | 23 + kspread/kspread_format.cc | 3582 + kspread/kspread_format.h | 797 + kspread/kspread_functions_conversion.cc | 266 + kspread/kspread_functions_database.cc | 537 + kspread/kspread_functions_datetime.cc | 650 + kspread/kspread_functions_engineering.cc | 1256 + kspread/kspread_functions_financial.cc | 907 + kspread/kspread_functions_helper.cc | 135 + kspread/kspread_functions_helper.h | 47 + kspread/kspread_functions_information.cc | 285 + kspread/kspread_functions_logic.cc | 183 + kspread/kspread_functions_math.cc | 1144 + kspread/kspread_functions_reference.cc | 342 + kspread/kspread_functions_statistical.cc | 1243 + kspread/kspread_functions_text.cc | 636 + kspread/kspread_functions_trig.cc | 194 + kspread/kspread_generalProperty.cpp | 255 + kspread/kspread_generalProperty.h | 87 + kspread/kspread_genvalidationstyle.cc | 401 + kspread/kspread_genvalidationstyle.h | 99 + kspread/kspread_global.h | 202 + kspread/kspread_handler.cc | 194 + kspread/kspread_handler.h | 90 + kspread/kspread_locale.cc | 106 + kspread/kspread_locale.h | 24 + kspread/kspread_map.cc | 524 + kspread/kspread_map.h | 210 + kspread/kspread_numformat.cc | 1634 + kspread/kspread_object.cc | 1621 + kspread/kspread_object.h | 429 + kspread/kspread_pen.cc | 69 + kspread/kspread_pen.h | 68 + kspread/kspread_propertyEditor.cpp | 500 + kspread/kspread_propertyEditor.h | 90 + kspread/kspread_readonly.rc | 16 + kspread/kspread_sheet.cc | 8577 ++ kspread/kspread_sheet.h | 1385 + kspread/kspread_sheetprint.cc | 1807 + kspread/kspread_sheetprint.h | 718 + kspread/kspread_style.cc | 3214 + kspread/kspread_style.h | 491 + kspread/kspread_style_manager.cc | 396 + kspread/kspread_style_manager.h | 103 + kspread/kspread_toolbox.cc | 230 + kspread/kspread_toolbox.h | 98 + kspread/kspread_types.h | 45 + kspread/kspread_undo.cc | 3001 + kspread/kspread_undo.h | 694 + kspread/kspread_util.cc | 1218 + kspread/kspread_util.h | 355 + kspread/kspread_value.cc | 970 + kspread/kspread_value.h | 437 + kspread/kspread_view.cc | 7545 ++ kspread/kspread_view.h | 753 + kspread/kspreadpart.desktop | 118 + kspread/ksprsavinginfo.h | 61 + kspread/main.cc | 46 + kspread/manipulator.cc | 1723 + kspread/manipulator.h | 562 + kspread/manipulator_data.cc | 197 + kspread/manipulator_data.h | 114 + kspread/pics/Makefile.am | 3 + kspread/pics/hi16-app-kspread.png | Bin 0 -> 1079 bytes kspread/pics/hi22-app-kspread.png | Bin 0 -> 1441 bytes kspread/pics/hi32-app-kspread.png | Bin 0 -> 2664 bytes kspread/pics/hi48-app-kspread.png | Bin 0 -> 4533 bytes kspread/plugins/Makefile.am | 5 + kspread/plugins/calculator/Makefile.am | 29 + kspread/plugins/calculator/configdlg.cpp | 199 + kspread/plugins/calculator/configdlg.h | 111 + kspread/plugins/calculator/configure.in.in | 45 + kspread/plugins/calculator/dlabel.cpp | 65 + kspread/plugins/calculator/dlabel.h | 65 + kspread/plugins/calculator/kcalc.cpp | 1787 + kspread/plugins/calculator/kcalc.h | 447 + kspread/plugins/calculator/kcalc_core.cpp | 2192 + kspread/plugins/calculator/kcalctype.h | 104 + kspread/plugins/calculator/kspreadcalc.rc | 8 + kspread/plugins/calculator/main.cpp | 199 + kspread/plugins/calculator/main.h | 76 + kspread/plugins/calculator/pics/Makefile.am | 4 + .../calculator/pics/lo16-app-kspreadcalc.png | Bin 0 -> 280 bytes .../calculator/pics/lo22-app-kspreadcalc.png | Bin 0 -> 588 bytes .../calculator/pics/lo32-app-kspreadcalc.png | Bin 0 -> 987 bytes kspread/plugins/calculator/stats.cpp | 334 + kspread/plugins/calculator/stats.h | 80 + kspread/plugins/calculator/uninstall.desktop | 3 + kspread/plugins/calculator/version.h | 1 + kspread/plugins/insertcalendar/Makefile.am | 26 + .../plugins/insertcalendar/insertcalendar.rc | 8 + .../kspread_insertcalendardialog.cc | 150 + .../kspread_insertcalendardialog.h | 165 + .../kspread_insertcalendardialogbase.ui | 207 + .../kspread_plugininsertcalendar.cc | 281 + .../kspread_plugininsertcalendar.h | 113 + kspread/plugins/scripting/Makefile.am | 23 + .../scripting/kspreadcore/CMakeLists.txt | 56 + .../plugins/scripting/kspreadcore/Makefile.am | 23 + .../scripting/kspreadcore/krs_cell.cpp | 211 + .../plugins/scripting/kspreadcore/krs_cell.h | 170 + .../plugins/scripting/kspreadcore/krs_doc.cpp | 135 + .../plugins/scripting/kspreadcore/krs_doc.h | 122 + .../scripting/kspreadcore/krs_sheet.cpp | 103 + .../plugins/scripting/kspreadcore/krs_sheet.h | 140 + .../kspreadcore/kspreadcoremodule.cpp | 82 + .../scripting/kspreadcore/kspreadcoremodule.h | 82 + .../scripting/kspreadscripting.desktop | 80 + kspread/plugins/scripting/scripting.cc | 84 + kspread/plugins/scripting/scripting.h | 49 + kspread/plugins/scripting/scripting.rc | 13 + kspread/plugins/scripting/scripts/Makefile.am | 1 + .../scripts/exporthtml/ExportHtml.py | 179 + .../scripts/exporthtml/ExportHtml.rc | 9 + .../scripting/scripts/exporthtml/Makefile.am | 2 + .../scripts/scripteditor/Makefile.am | 2 + .../scripts/scripteditor/ScriptEditor.py | 1089 + .../scripts/scripteditor/ScriptEditor.rc | 9 + kspread/region.cc | 956 + kspread/region.h | 449 + kspread/selection.cc | 1009 + kspread/selection.h | 254 + kspread/sheetstyles/Makefile.am | 5 + kspread/sheetstyles/standard1.ksts | 4 + kspread/sheetstyles/standard1.png | Bin 0 -> 725 bytes kspread/sheetstyles/standard1.xml | 161 + kspread/sheetstyles/standard2.ksts | 4 + kspread/sheetstyles/standard2.png | Bin 0 -> 754 bytes kspread/sheetstyles/standard2.xml | 181 + kspread/templates/Business/.directory | 52 + .../templates/Business/BalanceSheet.desktop | 51 + kspread/templates/Business/BalanceSheet.kst | 1123 + .../templates/Business/ExpenseReport.desktop | 59 + kspread/templates/Business/ExpenseReport.kst | 1255 + kspread/templates/Business/Invoice.desktop | 53 + kspread/templates/Business/Invoice.kst | 2988 + kspread/templates/Business/Makefile.am | 8 + .../templates/Business/PackingSlip.desktop | 47 + kspread/templates/Business/PackingSlip.kst | 1450 + .../templates/Business/PriceQuotation.desktop | 48 + kspread/templates/Business/PriceQuotation.kst | 2276 + .../cr48-action-template_balancesheet.png | Bin 0 -> 1179 bytes .../cr48-action-template_expensereport.png | Bin 0 -> 2416 bytes .../Business/cr48-action-template_invoice.png | Bin 0 -> 1091 bytes .../cr48-action-template_packingslip.png | Bin 0 -> 1386 bytes .../cr48-action-template_pricequotation.png | Bin 0 -> 1171 bytes .../crsc-action-template_balancesheet.svgz | Bin 0 -> 1801 bytes .../crsc-action-template_expensereport.svgz | Bin 0 -> 2807 bytes .../crsc-action-template_invoice.svgz | Bin 0 -> 1808 bytes .../crsc-action-template_packingslip.svgz | Bin 0 -> 2030 bytes .../crsc-action-template_pricequotation.svgz | Bin 0 -> 2660 bytes kspread/templates/General/.directory | 56 + kspread/templates/General/Makefile.am | 9 + .../templates/General/StudentIDCard.desktop | 58 + kspread/templates/General/StudentIDCard.kst | 1034 + kspread/templates/General/Worksheet.desktop | 63 + kspread/templates/General/Worksheet.kst | 32 + .../cr48-action-template_studentidcard.png | Bin 0 -> 2315 bytes .../cr48-action-template_worksheet.png | Bin 0 -> 615 bytes .../crsc-action-template_studentidcard.svgz | Bin 0 -> 1987 bytes .../crsc-action-template_worksheet.svgz | Bin 0 -> 1458 bytes kspread/templates/HomeFamily/.directory | 47 + kspread/templates/HomeFamily/BMI.desktop | 93 + kspread/templates/HomeFamily/BMI.kst | 209 + .../HomeFamily/CreditCardTracker.desktop | 50 + .../HomeFamily/CreditCardTracker.kst | 1675 + kspread/templates/HomeFamily/Makefile.am | 9 + kspread/templates/HomeFamily/MenuPlan.desktop | 52 + kspread/templates/HomeFamily/MenuPlan.kst | 937 + .../HomeFamily/VacationChecklist.desktop | 51 + .../HomeFamily/VacationChecklist.kst | 722 + .../HomeFamily/cr48-action-template_bmi.png | Bin 0 -> 1647 bytes ...cr48-action-template_creditcardtracker.png | Bin 0 -> 1862 bytes .../cr48-action-template_menuplan.png | Bin 0 -> 1469 bytes ...cr48-action-template_vacationchecklist.png | Bin 0 -> 1644 bytes .../HomeFamily/crsc-action-template_bmi.svgz | Bin 0 -> 1797 bytes ...rsc-action-template_creditcardtracker.svgz | Bin 0 -> 3730 bytes .../crsc-action-template_menuplan.svgz | Bin 0 -> 2203 bytes ...rsc-action-template_vacationchecklist.svgz | Bin 0 -> 2292 bytes kspread/templates/Makefile.am | 1 + kspread/tests/Makefile.am | 33 + kspread/tests/README | 2 + kspread/tests/formula_tester.cc | 448 + kspread/tests/formula_tester.h | 64 + kspread/tests/generate-openformula-tests | 44 + kspread/tests/inspector.cc | 261 + kspread/tests/inspector.h | 46 + kspread/tests/oasis-kspread.sh | 87 + kspread/tests/test_formula.cc | 60 + kspread/tests/tester.cc | 54 + kspread/tests/tester.h | 50 + kspread/tests/testrunner.cc | 132 + kspread/tests/testrunner.h | 51 + kspread/tests/value_tester.cc | 307 + kspread/tests/value_tester.h | 44 + kspread/toolbar/Makefile.am | 3 + kspread/toolbar/crystalsvg/Makefile.am | 2 + kspread/toolbar/crystalsvg/README | 10 + .../crystalsvg/cr16-action-adjustcol.png | Bin 0 -> 226 bytes .../crystalsvg/cr16-action-adjustrow.png | Bin 0 -> 268 bytes .../crystalsvg/cr16-action-black_sum.png | Bin 0 -> 179 bytes .../crystalsvg/cr16-action-border_all.png | Bin 0 -> 178 bytes .../crystalsvg/cr16-action-border_bottom.png | Bin 0 -> 174 bytes .../crystalsvg/cr16-action-border_fall.png | Bin 0 -> 234 bytes .../cr16-action-border_horizontal.png | Bin 0 -> 177 bytes .../crystalsvg/cr16-action-border_inside.png | Bin 0 -> 193 bytes .../crystalsvg/cr16-action-border_left.png | Bin 0 -> 183 bytes .../crystalsvg/cr16-action-border_outline.png | Bin 0 -> 211 bytes .../crystalsvg/cr16-action-border_remove.png | Bin 0 -> 169 bytes .../crystalsvg/cr16-action-border_right.png | Bin 0 -> 186 bytes .../crystalsvg/cr16-action-border_top.png | Bin 0 -> 174 bytes .../crystalsvg/cr16-action-border_up.png | Bin 0 -> 230 bytes .../cr16-action-border_vertical.png | Bin 0 -> 191 bytes .../crystalsvg/cr16-action-cell_edit.png | Bin 0 -> 211 bytes .../crystalsvg/cr16-action-cell_layout.png | Bin 0 -> 335 bytes .../toolbar/crystalsvg/cr16-action-chart.png | Bin 0 -> 265 bytes .../crystalsvg/cr16-action-comment.png | Bin 0 -> 467 bytes .../crystalsvg/cr16-action-delete_table.png | Bin 0 -> 303 bytes .../crystalsvg/cr16-action-deletecell.png | Bin 0 -> 325 bytes .../crystalsvg/cr16-action-dissociatecell.png | Bin 0 -> 200 bytes .../cr16-action-first_letter_upper.png | Bin 0 -> 216 bytes .../toolbar/crystalsvg/cr16-action-funct.png | Bin 0 -> 391 bytes .../cr16-action-hide_table_column.png | Bin 0 -> 228 bytes .../crystalsvg/cr16-action-hide_table_row.png | Bin 0 -> 247 bytes .../crystalsvg/cr16-action-insert_link.png | Bin 0 -> 924 bytes .../crystalsvg/cr16-action-insertcell.png | Bin 0 -> 269 bytes .../crystalsvg/cr16-action-insertcellcopy.png | Bin 0 -> 253 bytes .../crystalsvg/cr16-action-inserttable.png | Bin 0 -> 184 bytes .../cr16-action-mergecell-horizontal.png | Bin 0 -> 295 bytes .../cr16-action-mergecell-vertical.png | Bin 0 -> 319 bytes .../crystalsvg/cr16-action-mergecell.png | Bin 0 -> 413 bytes .../toolbar/crystalsvg/cr16-action-middle.png | Bin 0 -> 157 bytes .../toolbar/crystalsvg/cr16-action-money.png | Bin 0 -> 280 bytes .../crystalsvg/cr16-action-multirow.png | Bin 0 -> 192 bytes .../crystalsvg/cr16-action-oscilloscope.png | Bin 0 -> 310 bytes .../crystalsvg/cr16-action-percent.png | Bin 0 -> 260 bytes .../crystalsvg/cr16-action-precminus.png | Bin 0 -> 447 bytes .../crystalsvg/cr16-action-precplus.png | Bin 0 -> 433 bytes .../crystalsvg/cr16-action-removecell.png | Bin 0 -> 499 bytes .../crystalsvg/cr16-action-removecomment.png | Bin 0 -> 618 bytes .../crystalsvg/cr16-action-resizecol.png | Bin 0 -> 442 bytes .../crystalsvg/cr16-action-resizerow.png | Bin 0 -> 468 bytes .../toolbar/crystalsvg/cr16-action-series.png | Bin 0 -> 235 bytes .../cr16-action-show_table_column.png | Bin 0 -> 245 bytes .../crystalsvg/cr16-action-show_table_row.png | Bin 0 -> 255 bytes .../crystalsvg/cr16-action-sort_decrease.png | Bin 0 -> 222 bytes .../crystalsvg/cr16-action-sort_incr.png | Bin 0 -> 284 bytes .../crystalsvg/cr16-action-special_paste.png | Bin 0 -> 427 bytes .../crystalsvg/cr16-action-text_bottom.png | Bin 0 -> 156 bytes .../crystalsvg/cr16-action-text_top.png | Bin 0 -> 155 bytes .../crystalsvg/cr16-action-vertical_text.png | Bin 0 -> 201 bytes .../crystalsvg/cr22-action-black_sum.png | Bin 0 -> 380 bytes .../crystalsvg/cr22-action-border_all.png | Bin 0 -> 189 bytes .../crystalsvg/cr22-action-border_bottom.png | Bin 0 -> 183 bytes .../crystalsvg/cr22-action-border_fall.png | Bin 0 -> 260 bytes .../cr22-action-border_horizontal.png | Bin 0 -> 192 bytes .../crystalsvg/cr22-action-border_inside.png | Bin 0 -> 192 bytes .../crystalsvg/cr22-action-border_left.png | Bin 0 -> 199 bytes .../crystalsvg/cr22-action-border_outline.png | Bin 0 -> 212 bytes .../crystalsvg/cr22-action-border_remove.png | Bin 0 -> 183 bytes .../crystalsvg/cr22-action-border_right.png | Bin 0 -> 203 bytes .../crystalsvg/cr22-action-border_top.png | Bin 0 -> 193 bytes .../crystalsvg/cr22-action-border_up.png | Bin 0 -> 259 bytes .../cr22-action-border_vertical.png | Bin 0 -> 192 bytes .../toolbar/crystalsvg/cr22-action-funct.png | Bin 0 -> 438 bytes .../crystalsvg/cr22-action-insert_chart.png | Bin 0 -> 880 bytes .../crystalsvg/cr22-action-insert_link.png | Bin 0 -> 1817 bytes .../cr22-action-mergecell-horizontal.png | Bin 0 -> 434 bytes .../cr22-action-mergecell-vertical.png | Bin 0 -> 460 bytes .../crystalsvg/cr22-action-mergecell.png | Bin 0 -> 429 bytes .../toolbar/crystalsvg/cr22-action-middle.png | Bin 0 -> 722 bytes .../toolbar/crystalsvg/cr22-action-money.png | Bin 0 -> 767 bytes .../crystalsvg/cr22-action-multirow.png | Bin 0 -> 559 bytes .../crystalsvg/cr22-action-percent.png | Bin 0 -> 350 bytes .../crystalsvg/cr22-action-prec_minus.png | Bin 0 -> 584 bytes .../crystalsvg/cr22-action-prec_plus.png | Bin 0 -> 583 bytes .../crystalsvg/cr22-action-sort_decrease.png | Bin 0 -> 614 bytes .../crystalsvg/cr22-action-sort_incr.png | Bin 0 -> 584 bytes .../crystalsvg/cr22-action-text_bottom.png | Bin 0 -> 631 bytes .../crystalsvg/cr22-action-text_top.png | Bin 0 -> 638 bytes .../crystalsvg/cr32-action-border_all.png | Bin 0 -> 203 bytes .../crystalsvg/cr32-action-border_bottom.png | Bin 0 -> 212 bytes .../crystalsvg/cr32-action-border_fall.png | Bin 0 -> 314 bytes .../cr32-action-border_horizontal.png | Bin 0 -> 218 bytes .../crystalsvg/cr32-action-border_inside.png | Bin 0 -> 223 bytes .../crystalsvg/cr32-action-border_left.png | Bin 0 -> 220 bytes .../crystalsvg/cr32-action-border_outline.png | Bin 0 -> 235 bytes .../crystalsvg/cr32-action-border_remove.png | Bin 0 -> 211 bytes .../crystalsvg/cr32-action-border_right.png | Bin 0 -> 225 bytes .../crystalsvg/cr32-action-border_top.png | Bin 0 -> 215 bytes .../crystalsvg/cr32-action-border_up.png | Bin 0 -> 310 bytes .../cr32-action-border_vertical.png | Bin 0 -> 217 bytes .../toolbar/crystalsvg/cr32-action-funct.png | Bin 0 -> 454 bytes .../crystalsvg/cr32-action-percent.png | Bin 0 -> 416 bytes .../crystalsvg/cr32-action-prec_minus.png | Bin 0 -> 285 bytes .../crystalsvg/cr32-action-prec_plus.png | Bin 0 -> 345 bytes kspread/valuecalc.cc | 1992 + kspread/valuecalc.h | 273 + kspread/valueconverter.cc | 342 + kspread/valueconverter.h | 61 + kspread/valueformatter.cc | 649 + kspread/valueformatter.h | 87 + kspread/valueparser.cc | 631 + kspread/valueparser.h | 84 + kugar/AUTHORS | 8 + kugar/CHANGES | 116 + kugar/ChangeLog | 108 + kugar/Makefile.am | 8 + kugar/README | 85 + kugar/TODO | 46 + kugar/cr16-mime-kugardata.png | Bin 0 -> 1315 bytes kugar/cr32-mime-kugardata.png | Bin 0 -> 1963 bytes kugar/hi16-app-kugar.png | Bin 0 -> 1139 bytes kugar/hi22-app-kugar.png | Bin 0 -> 1542 bytes kugar/hi32-app-kugar.png | Bin 0 -> 2545 bytes kugar/hi48-app-kugar.png | Bin 0 -> 4030 bytes kugar/kudesigner/Makefile.am | 42 + kugar/kudesigner/kudesigner.desktop | 159 + kugar/kudesigner/kudesigner_aboutdata.h | 56 + kugar/kudesigner/kudesigner_doc.cpp | 294 + kugar/kudesigner/kudesigner_doc.h | 97 + kugar/kudesigner/kudesigner_factory.cpp | 99 + kugar/kudesigner/kudesigner_factory.h | 47 + kugar/kudesigner/kudesigner_part.cpp | 22 + kugar/kudesigner/kudesigner_readonly.rc | 8 + kugar/kudesigner/kudesigner_view.cpp | 411 + kugar/kudesigner/kudesigner_view.h | 140 + kugar/kudesigner/kudesignerui.rc | 68 + kugar/kudesigner/main.cpp | 46 + kugar/kudesigner/pics/Makefile.am | 1 + kugar/kudesigner/pics/lo16-app-kudesigner.png | Bin 0 -> 376 bytes kugar/kudesigner/pics/lo32-app-kudesigner.png | Bin 0 -> 575 bytes kugar/kudesigner/templates/General/.directory | 55 + kugar/kudesigner/templates/General/A0.desktop | 7 + kugar/kudesigner/templates/General/A0.ktm | 9 + kugar/kudesigner/templates/General/A1.desktop | 7 + kugar/kudesigner/templates/General/A1.ktm | 9 + kugar/kudesigner/templates/General/A2.desktop | 7 + kugar/kudesigner/templates/General/A2.ktm | 9 + kugar/kudesigner/templates/General/A3.desktop | 7 + kugar/kudesigner/templates/General/A3.ktm | 9 + kugar/kudesigner/templates/General/A4.desktop | 9 + kugar/kudesigner/templates/General/A4.ktm | 9 + kugar/kudesigner/templates/General/A5.desktop | 6 + kugar/kudesigner/templates/General/A5.ktm | 9 + kugar/kudesigner/templates/General/A6.desktop | 7 + kugar/kudesigner/templates/General/A6.ktm | 9 + kugar/kudesigner/templates/General/A7.desktop | 7 + kugar/kudesigner/templates/General/A7.ktm | 9 + kugar/kudesigner/templates/General/A8.desktop | 7 + kugar/kudesigner/templates/General/A8.ktm | 9 + kugar/kudesigner/templates/General/A9.desktop | 7 + kugar/kudesigner/templates/General/A9.ktm | 9 + kugar/kudesigner/templates/General/B0.desktop | 8 + kugar/kudesigner/templates/General/B0.ktm | 9 + kugar/kudesigner/templates/General/B1.desktop | 8 + kugar/kudesigner/templates/General/B1.ktm | 9 + .../kudesigner/templates/General/B10.desktop | 8 + kugar/kudesigner/templates/General/B10.ktm | 9 + kugar/kudesigner/templates/General/B2.desktop | 8 + kugar/kudesigner/templates/General/B2.ktm | 9 + kugar/kudesigner/templates/General/B3.desktop | 8 + kugar/kudesigner/templates/General/B3.ktm | 9 + kugar/kudesigner/templates/General/B4.desktop | 7 + kugar/kudesigner/templates/General/B4.ktm | 9 + kugar/kudesigner/templates/General/B5.desktop | 8 + kugar/kudesigner/templates/General/B5.ktm | 9 + kugar/kudesigner/templates/General/B6.desktop | 8 + kugar/kudesigner/templates/General/B6.ktm | 9 + kugar/kudesigner/templates/General/B7.desktop | 8 + kugar/kudesigner/templates/General/B7.ktm | 9 + kugar/kudesigner/templates/General/B8.desktop | 8 + kugar/kudesigner/templates/General/B8.ktm | 9 + kugar/kudesigner/templates/General/B9.desktop | 8 + kugar/kudesigner/templates/General/B9.ktm | 9 + .../kudesigner/templates/General/C5E.desktop | 8 + kugar/kudesigner/templates/General/C5E.ktm | 9 + .../templates/General/Comm10E.desktop | 8 + .../kudesigner/templates/General/Comm10E.ktm | 9 + .../kudesigner/templates/General/DLE.desktop | 7 + kugar/kudesigner/templates/General/DLE.ktm | 9 + .../templates/General/Executive.desktop | 24 + .../templates/General/Executive.ktm | 9 + .../templates/General/Folio.desktop | 21 + kugar/kudesigner/templates/General/Folio.ktm | 9 + .../templates/General/Ledger.desktop | 24 + kugar/kudesigner/templates/General/Ledger.ktm | 9 + .../templates/General/Legal.desktop | 26 + kugar/kudesigner/templates/General/Legal.ktm | 9 + .../templates/General/Letter.desktop | 33 + kugar/kudesigner/templates/General/Letter.ktm | 9 + .../kudesigner/templates/General/Makefile.am | 15 + .../templates/General/NPageSize.desktop | 2 + .../templates/General/Tabloid.desktop | 28 + .../kudesigner/templates/General/Tabloid.ktm | 9 + .../General/cr48-action-template_iso.png | Bin 0 -> 1078 bytes .../General/cr48-action-template_us.png | Bin 0 -> 1095 bytes .../General/crsc-action-template_iso.svgz | Bin 0 -> 1639 bytes .../General/crsc-action-template_us.svgz | Bin 0 -> 1640 bytes kugar/kudesigner/templates/Makefile.am | 1 + kugar/kudesigner/toolbar/Makefile.am | 2 + .../toolbar/cr22-action-frame_field.png | Bin 0 -> 406 bytes kugar/kudesigner/toolbar/cr22-action-id.png | Bin 0 -> 1278 bytes kugar/kudesigner/toolbar/cr22-action-idf.png | Bin 0 -> 1410 bytes kugar/kudesigner/toolbar/cr22-action-idh.png | Bin 0 -> 1385 bytes kugar/kudesigner/toolbar/cr22-action-ipf.png | Bin 0 -> 1345 bytes kugar/kudesigner/toolbar/cr22-action-iph.png | Bin 0 -> 1360 bytes kugar/kudesigner/toolbar/cr22-action-irf.png | Bin 0 -> 1436 bytes kugar/kudesigner/toolbar/cr22-action-irh.png | Bin 0 -> 1431 bytes kugar/kudesigner_lib/Makefile.am | 17 + kugar/kudesigner_lib/band.cpp | 127 + kugar/kudesigner_lib/band.h | 62 + kugar/kudesigner_lib/box.cpp | 43 + kugar/kudesigner_lib/box.h | 80 + kugar/kudesigner_lib/calcfield.cpp | 56 + kugar/kudesigner_lib/calcfield.h | 46 + kugar/kudesigner_lib/canvas.cpp | 386 + kugar/kudesigner_lib/canvas.h | 96 + kugar/kudesigner_lib/command.cpp | 301 + kugar/kudesigner_lib/command.h | 183 + kugar/kudesigner_lib/commdefs.cpp | 71 + kugar/kudesigner_lib/commdefs.h | 79 + kugar/kudesigner_lib/detail.cpp | 52 + kugar/kudesigner_lib/detail.h | 43 + kugar/kudesigner_lib/detailbase.cpp | 45 + kugar/kudesigner_lib/detailbase.h | 44 + kugar/kudesigner_lib/detailfooter.cpp | 49 + kugar/kudesigner_lib/detailfooter.h | 43 + kugar/kudesigner_lib/detailheader.cpp | 49 + kugar/kudesigner_lib/detailheader.h | 43 + kugar/kudesigner_lib/field.cpp | 104 + kugar/kudesigner_lib/field.h | 47 + kugar/kudesigner_lib/kugartemplate.cpp | 411 + kugar/kudesigner_lib/kugartemplate.h | 88 + kugar/kudesigner_lib/label.cpp | 256 + kugar/kudesigner_lib/label.h | 57 + kugar/kudesigner_lib/line.cpp | 129 + kugar/kudesigner_lib/line.h | 48 + kugar/kudesigner_lib/pagefooter.cpp | 54 + kugar/kudesigner_lib/pagefooter.h | 43 + kugar/kudesigner_lib/pageheader.cpp | 55 + kugar/kudesigner_lib/pageheader.h | 44 + kugar/kudesigner_lib/plugin.cpp | 28 + kugar/kudesigner_lib/plugin.h | 74 + kugar/kudesigner_lib/propertyserializer.cpp | 76 + kugar/kudesigner_lib/propertyserializer.h | 46 + kugar/kudesigner_lib/reportfooter.cpp | 56 + kugar/kudesigner_lib/reportfooter.h | 43 + kugar/kudesigner_lib/reportheader.cpp | 54 + kugar/kudesigner_lib/reportheader.h | 44 + kugar/kudesigner_lib/reportitem.cpp | 247 + kugar/kudesigner_lib/reportitem.h | 82 + kugar/kudesigner_lib/section.cpp | 37 + kugar/kudesigner_lib/section.h | 48 + kugar/kudesigner_lib/specialfield.cpp | 69 + kugar/kudesigner_lib/specialfield.h | 49 + kugar/kudesigner_lib/structurewidget.cpp | 239 + kugar/kudesigner_lib/structurewidget.h | 62 + kugar/kudesigner_lib/view.cpp | 841 + kugar/kudesigner_lib/view.h | 149 + kugar/lib/Makefile.am | 19 + kugar/lib/inputmask.cpp | 359 + kugar/lib/inputmask.h | 61 + kugar/lib/mcalcobject.cpp | 66 + kugar/lib/mcalcobject.h | 56 + kugar/lib/mfieldobject.cpp | 261 + kugar/lib/mfieldobject.h | 102 + kugar/lib/mlabelobject.cpp | 174 + kugar/lib/mlabelobject.h | 92 + kugar/lib/mlineobject.cpp | 119 + kugar/lib/mlineobject.h | 83 + kugar/lib/mpagecollection.cpp | 190 + kugar/lib/mpagecollection.h | 108 + kugar/lib/mpagedisplay.cpp | 63 + kugar/lib/mpagedisplay.h | 55 + kugar/lib/mreportdetail.cpp | 123 + kugar/lib/mreportdetail.h | 89 + kugar/lib/mreportengine.cpp | 1081 + kugar/lib/mreportengine.h | 210 + kugar/lib/mreportobject.cpp | 225 + kugar/lib/mreportobject.h | 127 + kugar/lib/mreportsection.cpp | 326 + kugar/lib/mreportsection.h | 190 + kugar/lib/mreportviewer.cpp | 411 + kugar/lib/mreportviewer.h | 94 + kugar/lib/mspecialobject.cpp | 86 + kugar/lib/mspecialobject.h | 91 + kugar/lib/mutil.cpp | 127 + kugar/lib/mutil.h | 59 + kugar/part/Makefile.am | 35 + kugar/part/kugar.desktop | 76 + kugar/part/kugar_about.h | 53 + kugar/part/kugar_factory.cpp | 92 + kugar/part/kugar_factory.h | 36 + kugar/part/kugar_part.cpp | 259 + kugar/part/kugar_part.h | 68 + kugar/part/kugar_view.cpp | 131 + kugar/part/kugar_view.h | 53 + kugar/part/kugarpart.desktop | 118 + kugar/part/kugarpart.rc | 21 + kugar/part/kugartemplate.dtd | 155 + kugar/part/main.cpp | 44 + kugar/samples/Makefile.am | 4 + kugar/samples/sample1.kdf | 33 + kugar/samples/sample1.ktf | 152 + kugar/samples/sample2.kdf | 49 + kugar/samples/sample2.ktf | 240 + kugar/samples/sample3.kdf | 36 + kugar/samples/sample3.ktf | 165 + kword/AUTHORS | 4 + kword/CHANGES | 409 + kword/DEBUG | 15 + kword/DESIGN | 129 + kword/HACKING | 218 + kword/KWAboutData.h | 65 + kword/KWAnchor.cpp | 306 + kword/KWAnchor.h | 85 + kword/KWAnchorPos.h | 40 + kword/KWBgSpellCheck.cpp | 60 + kword/KWBgSpellCheck.h | 44 + kword/KWCanvas.cpp | 2493 + kword/KWCanvas.h | 488 + kword/KWCollectFramesetsVisitor.cpp | 41 + kword/KWCollectFramesetsVisitor.h | 41 + kword/KWCommand.cpp | 2094 + kword/KWCommand.h | 901 + kword/KWConfig.cpp | 1118 + kword/KWConfig.h | 203 + kword/KWConfigFootNoteDia.cpp | 216 + kword/KWConfigFootNoteDia.h | 58 + kword/KWCreateBookmarkDia.cpp | 155 + kword/KWCreateBookmarkDia.h | 65 + kword/KWCreateBookmarkDiaBase.ui | 57 + kword/KWDeleteDia.cpp | 90 + kword/KWDeleteDia.h | 65 + kword/KWDocStruct.cpp | 1264 + kword/KWDocStruct.h | 353 + kword/KWDocument.cpp | 5466 + kword/KWDocument.h | 1020 + kword/KWEditPersonnalExpression.cpp | 370 + kword/KWEditPersonnalExpression.h | 70 + kword/KWFactory.cpp | 87 + kword/KWFactory.h | 46 + kword/KWFactoryInit.cpp | 23 + kword/KWFindReplace.cpp | 62 + kword/KWFindReplace.h | 56 + kword/KWFootNoteDia.cpp | 138 + kword/KWFootNoteDia.h | 65 + kword/KWFormulaFrameSet.cpp | 540 + kword/KWFormulaFrameSet.h | 177 + kword/KWFrame.cpp | 753 + kword/KWFrame.h | 335 + kword/KWFrameDia.cpp | 2490 + kword/KWFrameDia.h | 224 + kword/KWFrameLayout.cpp | 649 + kword/KWFrameLayout.h | 119 + kword/KWFrameList.cpp | 197 + kword/KWFrameList.h | 111 + kword/KWFrameSet.cpp | 1277 + kword/KWFrameSet.h | 504 + kword/KWFrameSetEdit.cpp | 68 + kword/KWFrameSetEdit.h | 120 + kword/KWFrameStyle.cpp | 289 + kword/KWFrameStyle.h | 139 + kword/KWFrameStyleManager.cpp | 671 + kword/KWFrameStyleManager.h | 209 + kword/KWFrameView.cpp | 481 + kword/KWFrameView.h | 190 + kword/KWFrameViewManager.cpp | 434 + kword/KWFrameViewManager.h | 238 + kword/KWImportStyleDia.cpp | 343 + kword/KWImportStyleDia.h | 76 + kword/KWInsertDia.cpp | 85 + kword/KWInsertDia.h | 55 + kword/KWInsertPageDia.cpp | 53 + kword/KWInsertPageDia.h | 38 + kword/KWInsertPicDia.cpp | 180 + kword/KWInsertPicDia.h | 62 + kword/KWInsertTOCCommand.cpp | 261 + kword/KWInsertTOCCommand.h | 52 + kword/KWLoadingInfo.cpp | 14 + kword/KWLoadingInfo.h | 94 + kword/KWMailMergeDataBase.cpp | 559 + kword/KWMailMergeDataBase.h | 164 + kword/KWMailMergeDataSource.cpp | 8 + kword/KWMailMergeDataSource.h | 76 + kword/KWMailMergeLabelAction.cpp | 152 + kword/KWMailMergeLabelAction.h | 44 + kword/KWOasisLoader.cpp | 358 + kword/KWOasisLoader.h | 64 + kword/KWOasisSaver.cpp | 158 + kword/KWOasisSaver.h | 78 + kword/KWPage.cpp | 139 + kword/KWPage.h | 128 + kword/KWPageManager.cpp | 251 + kword/KWPageManager.h | 142 + kword/KWPartFrameSet.cpp | 378 + kword/KWPartFrameSet.h | 169 + kword/KWPictureFrameSet.cpp | 258 + kword/KWPictureFrameSet.h | 96 + kword/KWResizeTableDia.cpp | 102 + kword/KWResizeTableDia.h | 65 + kword/KWSelectBookmarkDiaBase.ui | 76 + kword/KWSortDia.cpp | 53 + kword/KWSortDia.h | 38 + kword/KWSplitCellDia.cpp | 97 + kword/KWSplitCellDia.h | 56 + kword/KWStartupWidget.cpp | 93 + kword/KWStartupWidget.h | 62 + kword/KWStartupWidgetBase.ui | 103 + kword/KWStatisticsDialog.cpp | 354 + kword/KWStatisticsDialog.h | 61 + kword/KWStyleManager.cpp | 68 + kword/KWStyleManager.h | 49 + kword/KWTableDia.cpp | 366 + kword/KWTableDia.h | 113 + kword/KWTableFrameSet.cpp | 2943 + kword/KWTableFrameSet.h | 747 + kword/KWTableStyle.cpp | 219 + kword/KWTableStyle.h | 131 + kword/KWTableStyleManager.cpp | 716 + kword/KWTableStyleManager.h | 156 + kword/KWTableTemplate.cpp | 299 + kword/KWTableTemplate.h | 145 + kword/KWTableTemplateSelector.cpp | 680 + kword/KWTableTemplateSelector.h | 126 + kword/KWTextDocument.cpp | 327 + kword/KWTextDocument.h | 73 + kword/KWTextFrameSet.cpp | 4154 + kword/KWTextFrameSet.h | 547 + kword/KWTextImage.cpp | 161 + kword/KWTextImage.h | 74 + kword/KWTextParag.cpp | 859 + kword/KWTextParag.h | 98 + kword/KWVariable.cpp | 739 + kword/KWVariable.h | 183 + kword/KWView.cpp | 7756 ++ kword/KWView.h | 879 + kword/KWViewMode.cpp | 603 + kword/KWViewMode.h | 297 + kword/KWordDocIface.cpp | 639 + kword/KWordDocIface.h | 195 + kword/KWordFootNoteFrameSetIface.cpp | 54 + kword/KWordFootNoteFrameSetIface.h | 48 + kword/KWordFormulaFrameSetEditIface.cpp | 276 + kword/KWordFormulaFrameSetEditIface.h | 101 + kword/KWordFormulaFrameSetIface.cpp | 48 + kword/KWordFormulaFrameSetIface.h | 45 + kword/KWordFrameSetIface.cpp | 520 + kword/KWordFrameSetIface.h | 104 + kword/KWordMailMergeDatabaseIface.h | 52 + kword/KWordPartFrameSetIface.cpp | 49 + kword/KWordPartFrameSetIface.h | 43 + kword/KWordPictureFrameSetIface.cpp | 47 + kword/KWordPictureFrameSetIface.h | 47 + kword/KWordTableFrameSetIface.cpp | 87 + kword/KWordTableFrameSetIface.h | 51 + kword/KWordTextFrameSetEditIface.cpp | 161 + kword/KWordTextFrameSetEditIface.h | 58 + kword/KWordTextFrameSetIface.cpp | 310 + kword/KWordTextFrameSetIface.h | 102 + kword/KWordViewIface.cpp | 466 + kword/KWordViewIface.h | 151 + kword/Makefile.am | 94 + kword/OASIS | 72 + kword/TODO | 60 + kword/data/Makefile.am | 2 + kword/data/framestyles.xml | 108 + kword/data/tablestyles.xml | 53 + kword/data/tabletemplates.xml | 62 + kword/defs.h | 84 + kword/demos/DTPTest.kwt | 380 + kword/demos/bidi.kwd | Bin 0 -> 3155 bytes kword/demos/chapters.kwd | 1541 + kword/demos/eurosign.kwd | 260 + kword/demos/flatland.kwd | Bin 0 -> 105355 bytes kword/demos/framestest.kwd | 710 + kword/demos/mars.kwd | Bin 0 -> 222700 bytes kword/demos/statistics.kwd | Bin 0 -> 2033 bytes kword/dtd/DEBUG | 11 + kword/dtd/Makefile.am | 16 + kword/dtd/framestyles.dtd | 52 + kword/dtd/kword.dtd | 1426 + kword/dtd/tablestyles.dtd | 29 + kword/dtd/tabletemplates.dtd | 57 + kword/expression/Makefile.am | 4 + kword/expression/expression.xml | 114 + kword/horizontalline/Makefile.am | 4 + kword/horizontalline/line.png | Bin 0 -> 275 bytes kword/kwmailmerge.desktop | 71 + kword/kword.desktop | 81 + kword/kword.rc | 511 + kword/kword_readonly.rc | 58 + kword/kwordmailmergedatabaseiface.cpp | 31 + kword/kwordpart.desktop | 102 + kword/mailmerge/KWClassicSerialDataSource.cpp | 569 + kword/mailmerge/KWClassicSerialDataSource.h | 172 + kword/mailmerge/Makefile.am | 22 + kword/mailmerge/configure.in.in | 41 + kword/mailmerge/kabc/KWMailMergeKABC.cpp | 551 + kword/mailmerge/kabc/KWMailMergeKABC.h | 185 + .../mailmerge/kabc/KWMailMergeKABCConfig.cpp | 546 + kword/mailmerge/kabc/KWMailMergeKABCConfig.h | 149 + kword/mailmerge/kabc/Makefile.am | 17 + kword/mailmerge/kabc/addresspicker.ui | 297 + kword/mailmerge/kabc/kwmailmerge_kabc.desktop | 105 + kword/mailmerge/kspread/Makefile.am | 16 + .../mailmerge/kspread/kwmailmerge_kspread.cpp | 211 + .../kspread/kwmailmerge_kspread.desktop | 101 + kword/mailmerge/kspread/kwmailmerge_kspread.h | 106 + .../kspread/kwmailmerge_kspread_config.cpp | 125 + .../kspread/kwmailmerge_kspread_config.h | 61 + .../mailmerge/kwserialletter_classic.desktop | 122 + kword/mailmerge/sql/KWMySqlCursor.h | 69 + kword/mailmerge/sql/KWQtSqlEasyFilter.cpp | 98 + kword/mailmerge/sql/KWQtSqlEasyFilter.h | 29 + kword/mailmerge/sql/KWQtSqlMailMergeOpen.cpp | 123 + kword/mailmerge/sql/KWQtSqlMailMergeOpen.h | 57 + .../sql/KWQtSqlPowerSerialDataSource.cpp | 256 + .../sql/KWQtSqlPowerSerialDataSource.h | 96 + .../mailmerge/sql/KWQtSqlSerialDataSource.cpp | 218 + kword/mailmerge/sql/KWQtSqlSerialDataSource.h | 85 + .../sql/KWQtSqlSerialDataSourceBase.cpp | 105 + .../sql/KWQtSqlSerialDataSourceBase.h | 63 + kword/mailmerge/sql/Makefile.am | 28 + kword/mailmerge/sql/kwqtsqlpower.ui | 233 + .../sql/kwserialletter_qtsqldb.desktop | 106 + .../sql/kwserialletter_qtsqldb_power.desktop | 107 + kword/mailmerge/sql/qtsqldatasourceeditor.ui | 158 + .../mailmerge/sql/qtsqldatasourceeditor.ui.h | 13 + kword/mailmerge/sql/qtsqlopenwidget.ui | 301 + kword/main.cpp | 43 + kword/pics/Makefile.am | 3 + kword/pics/hi16-app-kword.png | Bin 0 -> 1062 bytes kword/pics/hi22-app-kword.png | Bin 0 -> 1367 bytes kword/pics/hi32-app-kword.png | Bin 0 -> 2322 bytes kword/pics/hi48-app-kword.png | Bin 0 -> 3919 bytes kword/stylenames.cpp | 74 + kword/templates/CardsAndLabels/.directory | 47 + .../CardsAndLabels/BusinessCards10.desktop | 55 + .../CardsAndLabels/BusinessCards10.kwt | Bin 0 -> 2842 bytes .../CardsAndLabels/LabelsL16.desktop | 56 + kword/templates/CardsAndLabels/LabelsL16.kwt | Bin 0 -> 3044 bytes kword/templates/CardsAndLabels/Makefile.am | 11 + .../cr48-action-template_businesscards10.png | Bin 0 -> 812 bytes .../cr48-action-template_labelsl16.png | Bin 0 -> 950 bytes .../crsc-action-template_businesscards10.svgz | Bin 0 -> 1545 bytes .../crsc-action-template_labelsl16.svgz | Bin 0 -> 1581 bytes kword/templates/Envelopes/.directory | 48 + kword/templates/Envelopes/EnvelopeC6.desktop | 57 + kword/templates/Envelopes/EnvelopeC6.kwt | 250 + kword/templates/Envelopes/EnvelopeDL.desktop | 57 + kword/templates/Envelopes/EnvelopeDL.kwt | 267 + kword/templates/Envelopes/Makefile.am | 11 + .../cr48-action-template_envelopec6.png | Bin 0 -> 1114 bytes .../cr48-action-template_envelopedl.png | Bin 0 -> 1062 bytes .../crsc-action-template_envelopec6.svgz | Bin 0 -> 1500 bytes .../crsc-action-template_envelopedl.svgz | Bin 0 -> 1487 bytes kword/templates/Makefile.am | 1 + kword/templates/Wordprocessing/.directory | 46 + kword/templates/Wordprocessing/A4.desktop | 85 + kword/templates/Wordprocessing/A4.kwt | 84 + .../Wordprocessing/ColorfulA4.desktop | 84 + kword/templates/Wordprocessing/ColorfulA4.odt | Bin 0 -> 5778 bytes .../Wordprocessing/ColorfulLetter.desktop | 84 + .../Wordprocessing/ColorfulLetter.odt | Bin 0 -> 5848 bytes kword/templates/Wordprocessing/FaxA4.desktop | 98 + kword/templates/Wordprocessing/FaxA4.odt | Bin 0 -> 5765 bytes .../Wordprocessing/FaxLetter.desktop | 98 + kword/templates/Wordprocessing/FaxLetter.odt | Bin 0 -> 5880 bytes kword/templates/Wordprocessing/Letter.desktop | 86 + kword/templates/Wordprocessing/Letter.kwt | 84 + kword/templates/Wordprocessing/Makefile.am | 13 + kword/templates/Wordprocessing/Memo.desktop | 69 + kword/templates/Wordprocessing/Memo.kwt | 806 + kword/templates/Wordprocessing/PlainText.kwt | 85 + .../Wordprocessing/ProfessionalA4.desktop | 85 + .../Wordprocessing/ProfessionalA4.odt | Bin 0 -> 4204 bytes .../Wordprocessing/ProfessionalLetter.desktop | 85 + .../Wordprocessing/ProfessionalLetter.odt | Bin 0 -> 4218 bytes .../Wordprocessing/TwoColumns.desktop | 114 + kword/templates/Wordprocessing/TwoColumns.kwt | 85 + .../Wordprocessing/TwoColumnsLetter.desktop | 110 + .../Wordprocessing/TwoColumnsLetter.kwt | 85 + .../cr128-action-template_colorful.png | Bin 0 -> 14622 bytes .../cr48-action-template_a4.png | Bin 0 -> 1078 bytes .../cr48-action-template_colorful.png | Bin 0 -> 4997 bytes .../cr48-action-template_fax.png | Bin 0 -> 1108 bytes .../cr48-action-template_letter.png | Bin 0 -> 1095 bytes .../cr48-action-template_memo.png | Bin 0 -> 1140 bytes .../cr48-action-template_plaintext.png | Bin 0 -> 1022 bytes .../cr48-action-template_twocolumns.png | Bin 0 -> 1606 bytes .../crsc-action-template_a4.svgz | Bin 0 -> 1620 bytes .../crsc-action-template_fax.svgz | Bin 0 -> 1869 bytes .../crsc-action-template_letter.svgz | Bin 0 -> 1630 bytes .../crsc-action-template_memo.svgz | Bin 0 -> 2139 bytes .../crsc-action-template_plaintext.svgz | Bin 0 -> 1604 bytes .../crsc-action-template_twocolumns.svgz | Bin 0 -> 1703 bytes kword/templates/make_template.pl | 35 + kword/tests/FrameTester.cpp | 152 + kword/tests/FrameTester.h | 59 + kword/tests/FrameViewTester.cpp | 295 + kword/tests/FrameViewTester.h | 27 + kword/tests/KWPageManagerTester.cpp | 320 + kword/tests/KWPageManagerTester.h | 30 + kword/tests/Makefile.am | 25 + kword/tests/README | 26 + kword/tests/checkFilter.pl | 52 + kword/tests/oasis-kword.sh | 108 + kword/toolbar/Makefile.am | 3 + kword/toolbar/cr22-action-run_bounding.png | Bin 0 -> 740 bytes kword/toolbar/cr22-action-run_not.png | Bin 0 -> 638 bytes kword/toolbar/cr22-action-run_skip.png | Bin 0 -> 601 bytes kword/toolbar/cr22-action-sl_addentry.png | Bin 0 -> 391 bytes kword/toolbar/cr22-action-sl_addrecord.png | Bin 0 -> 412 bytes kword/toolbar/cr22-action-sl_delentry.png | Bin 0 -> 371 bytes kword/toolbar/cr22-action-sl_delrecord.png | Bin 0 -> 390 bytes lib/CHANGES | 88 + lib/Makefile.am | 28 + lib/NAMING | 6 + lib/configure.in.in | 30 + lib/configure.in.mid | 58 + lib/kdoc.rules | 20 + lib/kformula/AUTHORS | 4 + lib/kformula/DESIGN | 364 + lib/kformula/FILTERS | 35 + lib/kformula/Makefile.am | 39 + lib/kformula/MatrixDialog.cc | 77 + lib/kformula/MatrixDialog.h | 54 + lib/kformula/README | 45 + lib/kformula/TODO | 227 + lib/kformula/actionelement.cc | 77 + lib/kformula/actionelement.h | 49 + lib/kformula/basicelement.cc | 400 + lib/kformula/basicelement.h | 548 + lib/kformula/bracketelement.cc | 1005 + lib/kformula/bracketelement.h | 436 + lib/kformula/config/Makefile.am | 27 + lib/kformula/config/esstixeight.font | 31 + lib/kformula/config/esstixeleven.font | 7 + lib/kformula/config/esstixfifteen.font | 7 + lib/kformula/config/esstixfive.font | 17 + lib/kformula/config/esstixfour.font | 41 + lib/kformula/config/esstixfourteen.font | 11 + lib/kformula/config/esstixnine.font | 7 + lib/kformula/config/esstixone.font | 57 + lib/kformula/config/esstixseven.font | 16 + lib/kformula/config/esstixseventeen.font | 7 + lib/kformula/config/esstixsix.font | 12 + lib/kformula/config/esstixsixteen.font | 7 + lib/kformula/config/esstixten.font | 52 + lib/kformula/config/esstixthirteen.font | 7 + lib/kformula/config/esstixthree.font | 75 + lib/kformula/config/esstixtwelve.font | 7 + lib/kformula/config/esstixtwo.font | 35 + lib/kformula/config/euclid%20math%20one.font | 151 + lib/kformula/config/euclid%20math%20two.font | 131 + lib/kformula/config/euclid%20symbol.font | 188 + lib/kformula/config/mt%20extra.font | 144 + lib/kformula/config/mt%20symbol.font | 188 + lib/kformula/config/symbol.font | 188 + lib/kformula/config/unicode.tbl | 635 + lib/kformula/contextstyle.cc | 765 + lib/kformula/contextstyle.h | 480 + lib/kformula/creationstrategy.cc | 144 + lib/kformula/creationstrategy.h | 113 + lib/kformula/dtd/Makefile.am | 4 + lib/kformula/dtd/kformula.dtd | 95 + lib/kformula/elementindex.h | 33 + lib/kformula/elementtype.cc | 765 + lib/kformula/elementtype.h | 503 + lib/kformula/elementvisitor.h | 70 + lib/kformula/encloseelement.cc | 44 + lib/kformula/encloseelement.h | 42 + lib/kformula/entities.cc | 2037 + lib/kformula/entities.h | 49 + lib/kformula/errorelement.cc | 51 + lib/kformula/errorelement.h | 51 + lib/kformula/fonts/Arev.ttf | Bin 0 -> 348154 bytes lib/kformula/fonts/ArevBI.ttf | Bin 0 -> 361426 bytes lib/kformula/fonts/ArevBd.ttf | Bin 0 -> 347796 bytes lib/kformula/fonts/ArevIt.ttf | Bin 0 -> 360544 bytes lib/kformula/fonts/LICENSE.AREV | 47 + lib/kformula/fonts/LICENSE.BAKOMA | 40 + lib/kformula/fonts/LICENSE.BITSTREAM | 42 + lib/kformula/fonts/Makefile.am | 11 + lib/kformula/fonts/README | 10 + lib/kformula/fonts/cmex10.ttf | Bin 0 -> 21092 bytes lib/kformula/fontstyle.cc | 891 + lib/kformula/fontstyle.h | 193 + lib/kformula/formulacursor.cc | 746 + lib/kformula/formulacursor.h | 465 + lib/kformula/formulaelement.cc | 336 + lib/kformula/formulaelement.h | 234 + lib/kformula/fractionelement.cc | 657 + lib/kformula/fractionelement.h | 255 + lib/kformula/glyphelement.cc | 159 + lib/kformula/glyphelement.h | 68 + lib/kformula/identifierelement.cc | 206 + lib/kformula/identifierelement.h | 62 + lib/kformula/indexelement.cc | 1763 + lib/kformula/indexelement.h | 442 + lib/kformula/kformulacommand.cc | 625 + lib/kformula/kformulacommand.h | 562 + lib/kformula/kformulacompatibility.cc | 402 + lib/kformula/kformulacompatibility.h | 74 + lib/kformula/kformulaconfigpage.cc | 543 + lib/kformula/kformulaconfigpage.h | 150 + lib/kformula/kformulacontainer.cc | 643 + lib/kformula/kformulacontainer.h | 439 + lib/kformula/kformuladefs.h | 430 + lib/kformula/kformuladocument.cc | 1299 + lib/kformula/kformuladocument.h | 510 + lib/kformula/kformulainputfilter.cc | 24 + lib/kformula/kformulainputfilter.h | 57 + lib/kformula/kformulalib.h | 32 + lib/kformula/kformulamathmlread.cc | 1794 + lib/kformula/kformulamathmlread.h | 100 + lib/kformula/kformulamimesource.cc | 154 + lib/kformula/kformulamimesource.h | 60 + lib/kformula/kformulaview.cc | 413 + lib/kformula/kformulaview.h | 189 + lib/kformula/kformulawidget.cc | 171 + lib/kformula/kformulawidget.h | 119 + lib/kformula/main.cc | 298 + lib/kformula/mathml.xml | 25 + lib/kformula/matrixelement.cc | 2692 + lib/kformula/matrixelement.h | 464 + lib/kformula/numberelement.cc | 153 + lib/kformula/numberelement.h | 47 + lib/kformula/oasiscreationstrategy.cc | 210 + lib/kformula/oasiscreationstrategy.h | 77 + lib/kformula/oldformula | Bin 0 -> 318 bytes lib/kformula/operatordictionary.cc | 4266 + lib/kformula/operatordictionary.h | 75 + lib/kformula/operatorelement.cc | 547 + lib/kformula/operatorelement.h | 83 + lib/kformula/paddedelement.cc | 296 + lib/kformula/paddedelement.h | 75 + lib/kformula/phantomelement.cc | 39 + lib/kformula/phantomelement.h | 51 + lib/kformula/pics/Makefile.am | 1 + lib/kformula/pics/crystalsvg/Makefile.am | 5 + .../pics/crystalsvg/cr16-action-abs.png | Bin 0 -> 270 bytes .../pics/crystalsvg/cr16-action-brackets.png | Bin 0 -> 286 bytes .../pics/crystalsvg/cr16-action-frac.png | Bin 0 -> 214 bytes .../pics/crystalsvg/cr16-action-gsub.png | Bin 0 -> 190 bytes .../pics/crystalsvg/cr16-action-gsup.png | Bin 0 -> 191 bytes .../pics/crystalsvg/cr16-action-int.png | Bin 0 -> 594 bytes .../pics/crystalsvg/cr16-action-lsub.png | Bin 0 -> 240 bytes .../pics/crystalsvg/cr16-action-lsup.png | Bin 0 -> 237 bytes .../pics/crystalsvg/cr16-action-matrix.png | Bin 0 -> 245 bytes .../pics/crystalsvg/cr16-action-multiline.png | Bin 0 -> 310 bytes .../crystalsvg/cr16-action-onetwomatrix.png | Bin 0 -> 249 bytes .../pics/crystalsvg/cr16-action-over.png | Bin 0 -> 302 bytes .../pics/crystalsvg/cr16-action-paren.png | Bin 0 -> 316 bytes .../pics/crystalsvg/cr16-action-prod.png | Bin 0 -> 196 bytes .../pics/crystalsvg/cr16-action-rsub.png | Bin 0 -> 240 bytes .../pics/crystalsvg/cr16-action-rsup.png | Bin 0 -> 228 bytes .../pics/crystalsvg/cr16-action-sqrt.png | Bin 0 -> 431 bytes .../pics/crystalsvg/cr16-action-sum.png | Bin 0 -> 376 bytes .../pics/crystalsvg/cr16-action-under.png | Bin 0 -> 311 bytes .../pics/crystalsvg/cr22-action-abs.png | Bin 0 -> 710 bytes .../pics/crystalsvg/cr22-action-brackets.png | Bin 0 -> 740 bytes .../pics/crystalsvg/cr22-action-frac.png | Bin 0 -> 491 bytes .../pics/crystalsvg/cr22-action-gsub.png | Bin 0 -> 322 bytes .../pics/crystalsvg/cr22-action-gsup.png | Bin 0 -> 309 bytes .../pics/crystalsvg/cr22-action-inscol.png | Bin 0 -> 304 bytes .../pics/crystalsvg/cr22-action-insrow.png | Bin 0 -> 287 bytes .../pics/crystalsvg/cr22-action-int.png | Bin 0 -> 708 bytes .../pics/crystalsvg/cr22-action-lsub.png | Bin 0 -> 376 bytes .../pics/crystalsvg/cr22-action-lsup.png | Bin 0 -> 362 bytes .../pics/crystalsvg/cr22-action-matrix.png | Bin 0 -> 176 bytes .../pics/crystalsvg/cr22-action-multiline.png | Bin 0 -> 294 bytes .../crystalsvg/cr22-action-onetwomatrix.png | Bin 0 -> 527 bytes .../pics/crystalsvg/cr22-action-over.png | Bin 0 -> 737 bytes .../pics/crystalsvg/cr22-action-paren.png | Bin 0 -> 744 bytes .../pics/crystalsvg/cr22-action-prod.png | Bin 0 -> 380 bytes .../pics/crystalsvg/cr22-action-remcol.png | Bin 0 -> 326 bytes .../pics/crystalsvg/cr22-action-remrow.png | Bin 0 -> 303 bytes .../pics/crystalsvg/cr22-action-rsub.png | Bin 0 -> 371 bytes .../pics/crystalsvg/cr22-action-rsup.png | Bin 0 -> 395 bytes .../pics/crystalsvg/cr22-action-sqrt.png | Bin 0 -> 442 bytes .../pics/crystalsvg/cr22-action-sum.png | Bin 0 -> 764 bytes .../pics/crystalsvg/cr22-action-under.png | Bin 0 -> 728 bytes .../pics/crystalsvg/cr32-action-abs.png | Bin 0 -> 606 bytes .../pics/crystalsvg/cr32-action-brackets.png | Bin 0 -> 475 bytes .../pics/crystalsvg/cr32-action-frac.png | Bin 0 -> 346 bytes .../pics/crystalsvg/cr32-action-gsub.png | Bin 0 -> 283 bytes .../pics/crystalsvg/cr32-action-gsup.png | Bin 0 -> 278 bytes .../pics/crystalsvg/cr32-action-int.png | Bin 0 -> 436 bytes .../pics/crystalsvg/cr32-action-lsub.png | Bin 0 -> 402 bytes .../pics/crystalsvg/cr32-action-lsup.png | Bin 0 -> 402 bytes .../pics/crystalsvg/cr32-action-matrix.png | Bin 0 -> 636 bytes .../pics/crystalsvg/cr32-action-multiline.png | Bin 0 -> 733 bytes .../crystalsvg/cr32-action-onetwomatrix.png | Bin 0 -> 386 bytes .../pics/crystalsvg/cr32-action-over.png | Bin 0 -> 646 bytes .../pics/crystalsvg/cr32-action-paren.png | Bin 0 -> 480 bytes .../pics/crystalsvg/cr32-action-prod.png | Bin 0 -> 308 bytes .../pics/crystalsvg/cr32-action-rsub.png | Bin 0 -> 402 bytes .../pics/crystalsvg/cr32-action-rsup.png | Bin 0 -> 389 bytes .../pics/crystalsvg/cr32-action-sqrt.png | Bin 0 -> 473 bytes .../pics/crystalsvg/cr32-action-sum.png | Bin 0 -> 324 bytes .../pics/crystalsvg/cr32-action-under.png | Bin 0 -> 645 bytes lib/kformula/prototype/README | 9 + lib/kformula/prototype/engine.py | 1180 + lib/kformula/prototype/gensymbolfontmap.py | 250 + lib/kformula/prototype/main.py | 13 + lib/kformula/prototype/symbol.xml | 2375 + lib/kformula/prototype/unicode.py | 192 + lib/kformula/rootelement.cc | 680 + lib/kformula/rootelement.h | 273 + lib/kformula/scripts/bycodes.py | 63 + lib/kformula/scripts/bynames.py | 153 + lib/kformula/scripts/oper-dict.py | 256 + lib/kformula/scrollview.h | 32 + lib/kformula/sequenceelement.cc | 1934 + lib/kformula/sequenceelement.h | 620 + lib/kformula/sequenceparser.cc | 241 + lib/kformula/sequenceparser.h | 132 + lib/kformula/spaceelement.cc | 431 + lib/kformula/spaceelement.h | 167 + lib/kformula/stringelement.cc | 88 + lib/kformula/stringelement.h | 49 + lib/kformula/styleelement.cc | 390 + lib/kformula/styleelement.h | 81 + lib/kformula/symbolaction.cc | 174 + lib/kformula/symbolaction.h | 52 + lib/kformula/symbolelement.cc | 906 + lib/kformula/symbolelement.h | 313 + lib/kformula/symbolfontmapping.cc | 171 + lib/kformula/symboltable.cc | 152 + lib/kformula/symboltable.h | 148 + lib/kformula/textelement.cc | 567 + lib/kformula/textelement.h | 287 + lib/kformula/tokenelement.cc | 124 + lib/kformula/tokenelement.h | 61 + lib/kformula/tokenstyleelement.cc | 624 + lib/kformula/tokenstyleelement.h | 168 + lib/kformula/unicodetable.cc | 546 + lib/kofficecore/DESIGN | 113 + lib/kofficecore/KoApplication.cpp | 249 + lib/kofficecore/KoApplication.h | 85 + lib/kofficecore/KoApplicationIface.cc | 97 + lib/kofficecore/KoApplicationIface.h | 66 + lib/kofficecore/KoChild.cpp | 366 + lib/kofficecore/KoChild.h | 312 + lib/kofficecore/KoContainerHandler.cpp | 395 + lib/kofficecore/KoContainerHandler.h | 137 + lib/kofficecore/KoDetailsPane.cpp | 470 + lib/kofficecore/KoDetailsPane.h | 132 + lib/kofficecore/KoDocInfoPropsFactory.cpp | 27 + lib/kofficecore/KoDocument.cpp | 2672 + lib/kofficecore/KoDocument.h | 1158 + lib/kofficecore/KoDocumentChild.cpp | 523 + lib/kofficecore/KoDocumentChild.h | 180 + lib/kofficecore/KoDocumentIface.cc | 568 + lib/kofficecore/KoDocumentIface.h | 157 + lib/kofficecore/KoDocumentInfo.cpp | 943 + lib/kofficecore/KoDocumentInfo.h | 196 + lib/kofficecore/KoDocumentInfoDlg.cpp | 555 + lib/kofficecore/KoDocumentInfoDlg.h | 85 + lib/kofficecore/KoDocument_p.h | 41 + lib/kofficecore/KoDom.cpp | 30 + lib/kofficecore/KoDom.h | 70 + lib/kofficecore/KoFactory.cpp | 45 + lib/kofficecore/KoFactory.h | 39 + lib/kofficecore/KoFileDialog.cpp | 125 + lib/kofficecore/KoFileDialog.h | 55 + lib/kofficecore/KoFilter.cpp | 151 + lib/kofficecore/KoFilter.h | 315 + lib/kofficecore/KoFilterChain.cpp | 936 + lib/kofficecore/KoFilterChain.h | 410 + lib/kofficecore/KoFilterManager.cpp | 602 + lib/kofficecore/KoFilterManager.h | 178 + lib/kofficecore/KoFilterManager_p.h | 46 + lib/kofficecore/KoFrame.cpp | 393 + lib/kofficecore/KoFrame.h | 65 + lib/kofficecore/KoGenStyles.cpp | 405 + lib/kofficecore/KoGenStyles.h | 463 + lib/kofficecore/KoGlobal.cpp | 205 + lib/kofficecore/KoGlobal.h | 107 + lib/kofficecore/KoMainWindow.cpp | 1701 + lib/kofficecore/KoMainWindow.h | 387 + lib/kofficecore/KoMainWindowIface.cc | 65 + lib/kofficecore/KoMainWindowIface.h | 48 + lib/kofficecore/KoOasisLoadingContext.cpp | 124 + lib/kofficecore/KoOasisLoadingContext.h | 122 + lib/kofficecore/KoOasisSettings.cpp | 224 + lib/kofficecore/KoOasisSettings.h | 179 + lib/kofficecore/KoOasisStore.cpp | 194 + lib/kofficecore/KoOasisStore.h | 96 + lib/kofficecore/KoOasisStyles.cpp | 1604 + lib/kofficecore/KoOasisStyles.h | 165 + lib/kofficecore/KoOpenPane.cpp | 315 + lib/kofficecore/KoOpenPane.h | 90 + lib/kofficecore/KoPageLayout.cpp | 242 + lib/kofficecore/KoPageLayout.h | 260 + lib/kofficecore/KoPicture.cpp | 290 + lib/kofficecore/KoPicture.h | 259 + lib/kofficecore/KoPictureBase.cpp | 142 + lib/kofficecore/KoPictureBase.h | 128 + lib/kofficecore/KoPictureClipart.cpp | 150 + lib/kofficecore/KoPictureClipart.h | 102 + lib/kofficecore/KoPictureCollection.cpp | 324 + lib/kofficecore/KoPictureCollection.h | 171 + lib/kofficecore/KoPictureEps.cpp | 447 + lib/kofficecore/KoPictureEps.h | 136 + lib/kofficecore/KoPictureImage.cpp | 194 + lib/kofficecore/KoPictureImage.h | 123 + lib/kofficecore/KoPictureKey.cpp | 151 + lib/kofficecore/KoPictureKey.h | 154 + lib/kofficecore/KoPictureShared.cpp | 535 + lib/kofficecore/KoPictureShared.h | 214 + lib/kofficecore/KoPictureWmf.cpp | 137 + lib/kofficecore/KoPictureWmf.h | 108 + lib/kofficecore/KoPoint.h | 128 + lib/kofficecore/KoQueryTrader.cpp | 214 + lib/kofficecore/KoQueryTrader.h | 178 + lib/kofficecore/KoRect.cpp | 274 + lib/kofficecore/KoRect.h | 148 + lib/kofficecore/KoSetPropCommand.h | 86 + lib/kofficecore/KoSize.h | 230 + lib/kofficecore/KoSpeaker.cpp | 602 + lib/kofficecore/KoSpeaker.h | 204 + lib/kofficecore/KoStyleStack.cpp | 296 + lib/kofficecore/KoStyleStack.h | 201 + lib/kofficecore/KoTemplates.cpp | 379 + lib/kofficecore/KoTemplates.h | 150 + lib/kofficecore/KoUnit.cpp | 215 + lib/kofficecore/KoUnit.h | 175 + lib/kofficecore/KoView.cpp | 868 + lib/kofficecore/KoView.h | 502 + lib/kofficecore/KoViewIface.cc | 76 + lib/kofficecore/KoViewIface.h | 56 + lib/kofficecore/KoXmlNS.cpp | 44 + lib/kofficecore/KoXmlNS.h | 55 + lib/kofficecore/KoXmlReader.cpp | 1568 + lib/kofficecore/KoXmlReader.h | 320 + lib/kofficecore/Koversiondialog.cpp | 143 + lib/kofficecore/Koversiondialog.h | 68 + lib/kofficecore/Makefile.am | 70 + lib/kofficecore/THOUGHTS | 164 + lib/kofficecore/document-info.dtd | 80 + lib/kofficecore/kkbdaccessextensions.cpp | 667 + lib/kofficecore/kkbdaccessextensions.h | 175 + lib/kofficecore/koDetailsPaneBase.ui | 238 + lib/kofficecore/koDocumentInfoAboutWidget.ui | 352 + lib/kofficecore/koDocumentInfoAuthorWidget.ui | 311 + .../koDocumentInfoUserMetadataWidget.ui | 233 + lib/kofficecore/koOpenPaneBase.ui | 144 + lib/kofficecore/kodocinfopropspage.desktop | 68 + lib/kofficecore/koffice_export.h | 210 + lib/kofficecore/koffice_shell.rc | 58 + lib/kofficecore/kofficeversion.cc | 46 + lib/kofficecore/kofficeversion.h | 86 + lib/kofficecore/priorityqueue.h | 216 + lib/kofficecore/tests/Makefile.am | 40 + lib/kofficecore/tests/filter_graph.cpp | 115 + lib/kofficecore/tests/filterchain_test.cpp | 107 + lib/kofficecore/tests/kodomtest.cpp | 129 + lib/kofficecore/tests/kogenstylestest.cpp | 270 + lib/kofficecore/tests/kooasissettingstest.cpp | 106 + lib/kofficecore/tests/kooasisstoretest.cpp | 58 + lib/kofficecore/tests/kopointtest.cpp | 89 + lib/kofficecore/tests/korecttest.cpp | 53 + lib/kofficecore/tests/koxmlreadertest.cpp | 2074 + lib/kofficecore/tests/priorityqueue_test.cpp | 87 + lib/kofficeui/KoBrush.cpp | 64 + lib/kofficeui/KoBrush.h | 106 + lib/kofficeui/KoCharSelectDia.cpp | 116 + lib/kofficeui/KoCharSelectDia.h | 76 + lib/kofficeui/KoCommandHistory.cpp | 446 + lib/kofficeui/KoCommandHistory.h | 198 + lib/kofficeui/KoContextCelp.cpp | 595 + lib/kofficeui/KoContextCelp.h | 279 + lib/kofficeui/KoEditPath.cpp | 98 + lib/kofficeui/KoEditPath.h | 55 + lib/kofficeui/KoGeneralPropertyUi.ui | 193 + lib/kofficeui/KoGuideLineDia.cpp | 131 + lib/kofficeui/KoGuideLineDia.h | 96 + lib/kofficeui/KoGuides.cpp | 926 + lib/kofficeui/KoGuides.h | 421 + lib/kofficeui/KoImageResource.cpp | 117 + lib/kofficeui/KoImageResource.h | 38 + lib/kofficeui/KoInsertLink.cpp | 549 + lib/kofficeui/KoInsertLink.h | 148 + lib/kofficeui/KoKoolBar.cpp | 489 + lib/kofficeui/KoKoolBar.h | 166 + lib/kofficeui/KoPageLayoutColumns.cpp | 70 + lib/kofficeui/KoPageLayoutColumns.h | 75 + lib/kofficeui/KoPageLayoutColumnsBase.ui | 99 + lib/kofficeui/KoPageLayoutDia.cpp | 402 + lib/kofficeui/KoPageLayoutDia.h | 200 + lib/kofficeui/KoPageLayoutHeader.cpp | 73 + lib/kofficeui/KoPageLayoutHeader.h | 56 + lib/kofficeui/KoPageLayoutHeaderBase.ui | 221 + lib/kofficeui/KoPageLayoutSize.cpp | 350 + lib/kofficeui/KoPageLayoutSize.h | 118 + lib/kofficeui/KoPartSelectAction.cpp | 80 + lib/kofficeui/KoPartSelectAction.h | 57 + lib/kofficeui/KoPartSelectDia.cpp | 93 + lib/kofficeui/KoPartSelectDia.h | 70 + lib/kofficeui/KoPen.cpp | 69 + lib/kofficeui/KoPen.h | 68 + lib/kofficeui/KoPictureFilePreview.cpp | 121 + lib/kofficeui/KoPictureFilePreview.h | 67 + lib/kofficeui/KoRuler.cpp | 1202 + lib/kofficeui/KoRuler.h | 372 + lib/kofficeui/KoSelectAction.cpp | 193 + lib/kofficeui/KoSelectAction.h | 90 + lib/kofficeui/KoTabBar.cpp | 913 + lib/kofficeui/KoTabBar.h | 275 + lib/kofficeui/KoTabChooser.cpp | 175 + lib/kofficeui/KoTabChooser.h | 80 + lib/kofficeui/KoTemplateChooseDia.cpp | 829 + lib/kofficeui/KoTemplateChooseDia.h | 250 + lib/kofficeui/KoTemplateCreateDia.cpp | 497 + lib/kofficeui/KoTemplateCreateDia.h | 75 + lib/kofficeui/KoToolBox.cpp | 256 + lib/kofficeui/KoToolBox.h | 119 + lib/kofficeui/KoTooluButton.cpp | 858 + lib/kofficeui/KoTooluButton.h | 183 + lib/kofficeui/KoUnitWidgets.cpp | 455 + lib/kofficeui/KoUnitWidgets.h | 246 + lib/kofficeui/KoZoomAction.cpp | 115 + lib/kofficeui/KoZoomAction.h | 82 + lib/kofficeui/KoZoomHandler.cpp | 72 + lib/kofficeui/KoZoomHandler.h | 163 + lib/kofficeui/KoZoomMode.cpp | 49 + lib/kofficeui/KoZoomMode.h | 54 + lib/kofficeui/Kolinestyleaction.cpp | 88 + lib/kofficeui/Kolinestyleaction.h | 58 + lib/kofficeui/Kolinewidthaction.cpp | 200 + lib/kofficeui/Kolinewidthaction.h | 112 + lib/kofficeui/Makefile.am | 61 + lib/kofficeui/kcoloractions.cpp | 348 + lib/kofficeui/kcoloractions.h | 101 + lib/kofficeui/koffice.widgets | 32 + lib/kofficeui/pics/Makefile.am | 12 + lib/kofficeui/pics/koKoolBarDown.png | Bin 0 -> 398 bytes lib/kofficeui/pics/koKoolBarUp.png | Bin 0 -> 399 bytes lib/kofficeui/pics/koLandscape.png | Bin 0 -> 883 bytes lib/kofficeui/pics/koPortrait.png | Bin 0 -> 890 bytes lib/kofficeui/pics/koRulerFirst.png | Bin 0 -> 191 bytes lib/kofficeui/pics/koRulerLeft.png | Bin 0 -> 201 bytes lib/kofficeui/pics/koffice-logo.png | Bin 0 -> 10988 bytes lib/kofficeui/pics/kounitdoublecombobox.png | Bin 0 -> 1211 bytes lib/kofficeui/pics/kounitdoublelineedit.png | Bin 0 -> 1169 bytes lib/kofficeui/pics/kounitdoublespinbox2.png | Bin 0 -> 832 bytes .../pics/kounitdoublespincombobox.png | Bin 0 -> 1211 bytes lib/kofficeui/tests/Makefile.am | 15 + lib/kofficeui/tests/coloraction_test.cpp | 112 + lib/kofficeui/tests/coloraction_test.h | 44 + lib/kofficeui/tkaction.cpp | 300 + lib/kofficeui/tkaction.h | 123 + lib/kofficeui/tkcoloractions.cpp | 621 + lib/kofficeui/tkcoloractions.h | 169 + lib/kofficeui/tkcombobox.cpp | 123 + lib/kofficeui/tkcombobox.h | 41 + lib/kofficeui/tktoolbarbutton.cpp | 532 + lib/kofficeui/tktoolbarbutton.h | 227 + lib/kopainter/Makefile.am | 21 + lib/kopainter/koColor.cc | 742 + lib/kopainter/koColor.h | 217 + lib/kopainter/koColorChooser.cc | 675 + lib/kopainter/koColorChooser.h | 236 + lib/kopainter/koColorSlider.cc | 365 + lib/kopainter/koColorSlider.h | 119 + lib/kopainter/koFrameButton.cc | 102 + lib/kopainter/koFrameButton.h | 60 + lib/kopainter/koIconChooser.cc | 482 + lib/kopainter/koIconChooser.h | 145 + lib/kopainter/ko_cmyk_widget.cc | 403 + lib/kopainter/ko_cmyk_widget.h | 116 + lib/kopainter/ko_color_wheel.cc | 117 + lib/kopainter/ko_color_wheel.h | 54 + lib/kopainter/ko_gray_widget.cc | 157 + lib/kopainter/ko_gray_widget.h | 80 + lib/kopainter/ko_hsv_widget.cc | 274 + lib/kopainter/ko_hsv_widget.h | 99 + lib/kopainter/ko_rgb_widget.cc | 235 + lib/kopainter/ko_rgb_widget.h | 98 + lib/kopainter/kogradientmanager.cc | 559 + lib/kopainter/kogradientmanager.h | 115 + lib/kopainter/svgnamedcolors.h | 306 + lib/kopainter/svgpathparser.cc | 577 + lib/kopainter/svgpathparser.h | 60 + lib/kopalette/Makefile.am | 25 + lib/kopalette/kopalette.cc | 91 + lib/kopalette/kopalette.h | 75 + lib/kopalette/kopalettemanager.cc | 616 + lib/kopalette/kopalettemanager.h | 223 + lib/kopalette/kotabpalette.cc | 136 + lib/kopalette/kotabpalette.h | 64 + lib/kopalette/kotoolboxpalette.cc | 121 + lib/kopalette/kotoolboxpalette.h | 56 + lib/koproperty/Makefile.am | 22 + lib/koproperty/TODO | 8 + lib/koproperty/cr16-action-button_no.png | Bin 0 -> 1165 bytes lib/koproperty/customproperty.cpp | 376 + lib/koproperty/customproperty.h | 123 + lib/koproperty/editor.cpp | 1027 + lib/koproperty/editor.h | 188 + lib/koproperty/editoritem.cpp | 619 + lib/koproperty/editoritem.h | 129 + lib/koproperty/editors/Makefile.am | 13 + lib/koproperty/editors/booledit.cpp | 213 + lib/koproperty/editors/booledit.h | 77 + lib/koproperty/editors/coloredit.cpp | 96 + lib/koproperty/editors/coloredit.h | 56 + lib/koproperty/editors/combobox.cpp | 199 + lib/koproperty/editors/combobox.h | 59 + lib/koproperty/editors/cursoredit.cpp | 138 + lib/koproperty/editors/cursoredit.h | 50 + lib/koproperty/editors/dateedit.cpp | 89 + lib/koproperty/editors/dateedit.h | 56 + lib/koproperty/editors/datetimeedit.cpp | 89 + lib/koproperty/editors/datetimeedit.h | 56 + lib/koproperty/editors/dummywidget.cpp | 63 + lib/koproperty/editors/dummywidget.h | 53 + lib/koproperty/editors/fontedit.cpp | 156 + lib/koproperty/editors/fontedit.h | 57 + lib/koproperty/editors/linestyledit.cpp | 225 + lib/koproperty/editors/linestyleedit.h | 55 + lib/koproperty/editors/pixmapedit.cpp | 247 + lib/koproperty/editors/pixmapedit.h | 72 + lib/koproperty/editors/pointedit.cpp | 91 + lib/koproperty/editors/pointedit.h | 56 + lib/koproperty/editors/rectedit.cpp | 92 + lib/koproperty/editors/rectedit.h | 55 + lib/koproperty/editors/sizeedit.cpp | 91 + lib/koproperty/editors/sizeedit.h | 55 + lib/koproperty/editors/sizepolicyedit.cpp | 122 + lib/koproperty/editors/sizepolicyedit.h | 59 + lib/koproperty/editors/spinbox.cpp | 329 + lib/koproperty/editors/spinbox.h | 117 + lib/koproperty/editors/stringedit.cpp | 74 + lib/koproperty/editors/stringedit.h | 53 + lib/koproperty/editors/stringlistedit.cpp | 111 + lib/koproperty/editors/stringlistedit.h | 60 + lib/koproperty/editors/symbolcombo.cpp | 122 + lib/koproperty/editors/symbolcombo.h | 58 + lib/koproperty/editors/timeedit.cpp | 87 + lib/koproperty/editors/timeedit.h | 55 + lib/koproperty/editors/urledit.cpp | 96 + lib/koproperty/editors/urledit.h | 55 + lib/koproperty/factory.cpp | 265 + lib/koproperty/factory.h | 168 + lib/koproperty/koproperty_global.h | 29 + lib/koproperty/property.cpp | 778 + lib/koproperty/property.h | 443 + lib/koproperty/set.cpp | 535 + lib/koproperty/set.h | 254 + lib/koproperty/test/Makefile.am | 17 + lib/koproperty/test/main.cpp | 68 + lib/koproperty/test/test.cpp | 126 + lib/koproperty/test/test.h | 47 + lib/koproperty/utils.h | 49 + lib/koproperty/widget.cpp | 232 + lib/koproperty/widget.h | 120 + lib/koproperty/widgetproxy.cpp | 125 + lib/koproperty/widgetproxy.h | 63 + lib/kotext/AutoFormat | 52 + lib/kotext/DESIGN | 104 + lib/kotext/DateFormatWidget.cpp | 178 + lib/kotext/DateFormatWidget.h | 22 + lib/kotext/IsoDuration.h | 109 + lib/kotext/KFontDialog_local.cpp | 821 + lib/kotext/KFontDialog_local.h | 515 + lib/kotext/KoAutoFormat.cpp | 2533 + lib/kotext/KoAutoFormat.h | 420 + lib/kotext/KoAutoFormatDia.cpp | 1142 + lib/kotext/KoAutoFormatDia.h | 174 + lib/kotext/KoBgSpellCheck.cpp | 321 + lib/kotext/KoBgSpellCheck.h | 79 + lib/kotext/KoBorder.cpp | 318 + lib/kotext/KoBorder.h | 97 + lib/kotext/KoChangeCaseDia.cpp | 70 + lib/kotext/KoChangeCaseDia.h | 46 + lib/kotext/KoCommentDia.cpp | 73 + lib/kotext/KoCommentDia.h | 45 + lib/kotext/KoCompletionBase.ui | 370 + lib/kotext/KoCompletionDia.cpp | 201 + lib/kotext/KoCompletionDia.h | 68 + lib/kotext/KoComplexText.cpp | 1476 + lib/kotext/KoComplexText.h | 131 + lib/kotext/KoCreateStyleDia.cpp | 63 + lib/kotext/KoCreateStyleDia.h | 44 + lib/kotext/KoCustomVariablesDia.cpp | 336 + lib/kotext/KoCustomVariablesDia.h | 167 + lib/kotext/KoDecorationTab.cpp | 150 + lib/kotext/KoDecorationTab.h | 70 + lib/kotext/KoFontDia.cpp | 305 + lib/kotext/KoFontDia.h | 101 + lib/kotext/KoFontDiaPreview.cpp | 442 + lib/kotext/KoFontDiaPreview.h | 84 + lib/kotext/KoFontTab.cpp | 56 + lib/kotext/KoFontTab.h | 52 + lib/kotext/KoHighlightingTab.cpp | 151 + lib/kotext/KoHighlightingTab.h | 67 + lib/kotext/KoImportStyleDia.cpp | 126 + lib/kotext/KoImportStyleDia.h | 70 + lib/kotext/KoLanguageTab.cpp | 65 + lib/kotext/KoLanguageTab.h | 42 + lib/kotext/KoLayoutTab.cpp | 147 + lib/kotext/KoLayoutTab.h | 53 + lib/kotext/KoListStyleStack.cpp | 46 + lib/kotext/KoListStyleStack.h | 91 + lib/kotext/KoOasisContext.cpp | 135 + lib/kotext/KoOasisContext.h | 186 + lib/kotext/KoParagCounter.cpp | 987 + lib/kotext/KoParagCounter.h | 243 + lib/kotext/KoParagDecorationTab.ui | 402 + lib/kotext/KoParagDia.cpp | 2289 + lib/kotext/KoParagDia.h | 597 + lib/kotext/KoParagDia_p.h | 147 + lib/kotext/KoParagLayout.cpp | 948 + lib/kotext/KoParagLayout.h | 180 + lib/kotext/KoParagStyle.cpp | 284 + lib/kotext/KoParagStyle.h | 109 + lib/kotext/KoRichText.cpp | 1769 + lib/kotext/KoRichText.h | 851 + lib/kotext/KoSearchDia.cpp | 930 + lib/kotext/KoSearchDia.h | 338 + lib/kotext/KoSpell.cpp | 246 + lib/kotext/KoSpell.h | 105 + lib/kotext/KoStyleCollection.cpp | 254 + lib/kotext/KoStyleCollection.h | 122 + lib/kotext/KoStyleManager.cpp | 794 + lib/kotext/KoStyleManager.h | 185 + lib/kotext/KoTextBookmark.cpp | 50 + lib/kotext/KoTextBookmark.h | 106 + lib/kotext/KoTextCommand.cpp | 401 + lib/kotext/KoTextCommand.h | 173 + lib/kotext/KoTextCustomItem.cpp | 153 + lib/kotext/KoTextCustomItem.h | 146 + lib/kotext/KoTextDocument.cpp | 1592 + lib/kotext/KoTextDocument.h | 619 + lib/kotext/KoTextFormat.cpp | 1889 + lib/kotext/KoTextFormat.h | 499 + lib/kotext/KoTextFormatter.cpp | 1069 + lib/kotext/KoTextFormatter.h | 114 + lib/kotext/KoTextIterator.cpp | 389 + lib/kotext/KoTextIterator.h | 154 + lib/kotext/KoTextObject.cpp | 2809 + lib/kotext/KoTextObject.h | 641 + lib/kotext/KoTextParag.cpp | 3305 + lib/kotext/KoTextParag.h | 583 + lib/kotext/KoTextView.cpp | 1549 + lib/kotext/KoTextView.h | 306 + lib/kotext/KoTextViewIface.cc | 667 + lib/kotext/KoTextViewIface.h | 178 + lib/kotext/KoTextZoomHandler.cpp | 89 + lib/kotext/KoTextZoomHandler.h | 136 + lib/kotext/KoUserStyle.cpp | 36 + lib/kotext/KoUserStyle.h | 55 + lib/kotext/KoUserStyleCollection.cpp | 147 + lib/kotext/KoUserStyleCollection.h | 154 + lib/kotext/KoVariable.cpp | 2877 + lib/kotext/KoVariable.h | 807 + lib/kotext/Makefile.am | 32 + lib/kotext/TODO | 13 + lib/kotext/TimeFormatWidget.cpp | 139 + lib/kotext/TimeFormatWidget.h | 22 + lib/kotext/configure.in.bot | 6 + lib/kotext/configure.in.in | 16 + lib/kotext/kodecorationtabbase.ui | 360 + lib/kotext/kofonttabbase.ui | 28 + lib/kotext/kohighlightingtabbase.ui | 140 + lib/kotext/kohyphen/Makefile.am | 21 + lib/kotext/kohyphen/hnjalloc.c | 72 + lib/kotext/kohyphen/hnjalloc.h | 46 + lib/kotext/kohyphen/hyphdicts/Makefile.am | 4 + lib/kotext/kohyphen/hyphdicts/dicts.xml | 21 + lib/kotext/kohyphen/hyphdicts/hyph_cs.dic | 3637 + lib/kotext/kohyphen/hyphdicts/hyph_da.dic | 1146 + lib/kotext/kohyphen/hyphdicts/hyph_de.dic | 5799 ++ lib/kotext/kohyphen/hyphdicts/hyph_en.dic | 11388 +++ lib/kotext/kohyphen/hyphdicts/hyph_en_CA.dic | 11388 +++ lib/kotext/kohyphen/hyphdicts/hyph_es.dic | 468 + lib/kotext/kohyphen/hyphdicts/hyph_et.dic | 3690 + lib/kotext/kohyphen/hyphdicts/hyph_fr.dic | 1067 + lib/kotext/kohyphen/hyphdicts/hyph_hu.dic | 83320 ++++++++++++++++ lib/kotext/kohyphen/hyphdicts/hyph_it.dic | 410 + lib/kotext/kohyphen/hyphdicts/hyph_nl.dic | 12725 +++ lib/kotext/kohyphen/hyphdicts/hyph_pt.dic | 308 + lib/kotext/kohyphen/hyphdicts/hyph_pt_BR.dic | 308 + lib/kotext/kohyphen/hyphdicts/hyph_pt_PT.dic | 308 + lib/kotext/kohyphen/hyphdicts/hyph_ru.dic | 3875 + lib/kotext/kohyphen/hyphdicts/hyph_sk.dic | 2468 + lib/kotext/kohyphen/hyphdicts/hyph_sl.dic | 1070 + lib/kotext/kohyphen/hyphdicts/hyph_sv.dic | 4697 + lib/kotext/kohyphen/hyphdicts/hyph_uk.dic | 1654 + lib/kotext/kohyphen/hyphen.c | 500 + lib/kotext/kohyphen/hyphen.h | 77 + lib/kotext/kohyphen/kohyphen.cpp | 231 + lib/kotext/kohyphen/kohyphen.h | 129 + lib/kotext/kohyphen/kohyphentest.cpp | 73 + lib/kotext/kolanguagetabbase.ui | 76 + lib/kotext/kolayouttabbase.ui | 295 + lib/kotext/tests/KoUserStyleTester.cpp | 162 + lib/kotext/tests/KoUserStyleTester.h | 34 + lib/kotext/tests/Makefile.am | 24 + lib/kotext/tests/kobordertest.cpp | 113 + lib/kotext/tests/kotextformattertest.cpp | 220 + lib/kotext/tests/kovariabletest.cpp | 67 + lib/kotext/timedateformatwidget.ui | 218 + lib/kross/CHANGES | 20 + lib/kross/Makefile.am | 22 + lib/kross/Makefile.global | 2 + lib/kross/api/Makefile.am | 47 + lib/kross/api/callable.cpp | 139 + lib/kross/api/callable.h | 147 + lib/kross/api/class.h | 89 + lib/kross/api/dict.cpp | 47 + lib/kross/api/dict.h | 69 + lib/kross/api/event.h | 229 + lib/kross/api/eventaction.cpp | 77 + lib/kross/api/eventaction.h | 86 + lib/kross/api/eventscript.cpp | 47 + lib/kross/api/eventscript.h | 65 + lib/kross/api/eventsignal.cpp | 66 + lib/kross/api/eventsignal.h | 79 + lib/kross/api/eventslot.cpp | 222 + lib/kross/api/eventslot.h | 123 + lib/kross/api/exception.cpp | 71 + lib/kross/api/exception.h | 102 + lib/kross/api/function.h | 132 + lib/kross/api/interpreter.cpp | 151 + lib/kross/api/interpreter.h | 197 + lib/kross/api/list.cpp | 69 + lib/kross/api/list.h | 167 + lib/kross/api/module.h | 80 + lib/kross/api/object.cpp | 63 + lib/kross/api/object.h | 152 + lib/kross/api/proxy.h | 342 + lib/kross/api/qtobject.cpp | 235 + lib/kross/api/qtobject.h | 135 + lib/kross/api/script.cpp | 59 + lib/kross/api/script.h | 140 + lib/kross/api/value.h | 91 + lib/kross/api/variant.cpp | 168 + lib/kross/api/variant.h | 207 + lib/kross/configure.in.bot | 16 + lib/kross/configure.in.in | 108 + lib/kross/main/Makefile.am | 33 + lib/kross/main/krossconfig.cpp | 36 + lib/kross/main/krossconfig.h | 116 + lib/kross/main/mainmodule.cpp | 117 + lib/kross/main/mainmodule.h | 181 + lib/kross/main/manager.cpp | 248 + lib/kross/main/manager.h | 168 + lib/kross/main/scriptaction.cpp | 247 + lib/kross/main/scriptaction.h | 309 + lib/kross/main/scriptcontainer.cpp | 293 + lib/kross/main/scriptcontainer.h | 210 + lib/kross/main/scriptguiclient.cpp | 384 + lib/kross/main/scriptguiclient.h | 217 + lib/kross/main/wdgscriptsmanager.cpp | 354 + lib/kross/main/wdgscriptsmanager.h | 60 + lib/kross/main/wdgscriptsmanagerbase.ui | 247 + lib/kross/python/Makefile.am | 33 + lib/kross/python/cxx/Config.hxx | 74 + lib/kross/python/cxx/Exception.hxx | 212 + lib/kross/python/cxx/Extensions.hxx | 756 + .../python/cxx/IndirectPythonInterface.cxx | 550 + .../python/cxx/IndirectPythonInterface.hxx | 156 + lib/kross/python/cxx/Legal.html | 40 + lib/kross/python/cxx/Makefile.am | 19 + lib/kross/python/cxx/Objects.hxx | 2804 + lib/kross/python/cxx/PyCXX.html | 2131 + lib/kross/python/cxx/README.html | 436 + lib/kross/python/cxx/Readme.Kross.txt | 16 + lib/kross/python/cxx/Version.txt | 1 + lib/kross/python/cxx/cxx_extensions.cxx | 1287 + lib/kross/python/cxx/cxxextensions.c | 19 + lib/kross/python/cxx/cxxsupport.cxx | 142 + lib/kross/python/pythonconfig.h | 105 + lib/kross/python/pythonextension.cpp | 445 + lib/kross/python/pythonextension.h | 221 + lib/kross/python/pythoninterpreter.cpp | 255 + lib/kross/python/pythoninterpreter.h | 90 + lib/kross/python/pythonmodule.cpp | 100 + lib/kross/python/pythonmodule.h | 76 + lib/kross/python/pythonobject.cpp | 94 + lib/kross/python/pythonobject.h | 95 + lib/kross/python/pythonscript.cpp | 460 + lib/kross/python/pythonscript.h | 98 + lib/kross/python/pythonsecurity.cpp | 181 + lib/kross/python/pythonsecurity.h | 109 + lib/kross/python/scripts/Makefile.am | 4 + .../python/scripts/RestrictedPython/Eval.py | 118 + .../python/scripts/RestrictedPython/Guards.py | 136 + .../python/scripts/RestrictedPython/Limits.py | 46 + .../scripts/RestrictedPython/Makefile.am | 4 + .../RestrictedPython/MutatingWalker.py | 74 + .../RestrictedPython/PrintCollector.py | 23 + .../scripts/RestrictedPython/RCompile.py | 235 + .../RestrictedPython/RestrictionMutator.py | 372 + .../RestrictedPython/SelectCompiler.py | 28 + .../scripts/RestrictedPython/Utilities.py | 77 + .../scripts/RestrictedPython/__init__.py | 19 + lib/kross/python/scripts/gui.py | 396 + lib/kross/readme.dox | 28 + lib/kross/ruby/Makefile.am | 16 + lib/kross/ruby/rubyconfig.h | 42 + lib/kross/ruby/rubyextension.cpp | 378 + lib/kross/ruby/rubyextension.h | 162 + lib/kross/ruby/rubyinterpreter.cpp | 149 + lib/kross/ruby/rubyinterpreter.h | 73 + lib/kross/ruby/rubymodule.cpp | 68 + lib/kross/ruby/rubymodule.h | 73 + lib/kross/ruby/rubyscript.cpp | 193 + lib/kross/ruby/rubyscript.h | 98 + lib/kross/runner/Makefile.am | 11 + lib/kross/runner/main.cpp | 144 + lib/kross/test/Makefile.am | 17 + lib/kross/test/main.cpp | 190 + lib/kross/test/testaction.cpp | 49 + lib/kross/test/testaction.h | 50 + lib/kross/test/testcase.py | 144 + lib/kross/test/testcase.rb | 15 + lib/kross/test/testgui.py | 149 + lib/kross/test/testkexidb.py | 214 + lib/kross/test/testobject.cpp | 96 + lib/kross/test/testobject.h | 64 + lib/kross/test/testperformance.py | 75 + lib/kross/test/testplugin.cpp | 126 + lib/kross/test/testplugin.h | 75 + lib/kross/test/testscripting.rc | 33 + lib/kross/test/testwindow.cpp | 110 + lib/kross/test/testwindow.h | 55 + lib/kwmf/Makefile.am | 19 + lib/kwmf/kowmfpaint.cc | 297 + lib/kwmf/kowmfpaint.h | 127 + lib/kwmf/kowmfread.cc | 101 + lib/kwmf/kowmfread.h | 154 + lib/kwmf/kowmfreadprivate.cc | 1251 + lib/kwmf/kowmfreadprivate.h | 362 + lib/kwmf/kowmfstack.cc | 38 + lib/kwmf/kowmfstack.h | 74 + lib/kwmf/kowmfstruct.h | 147 + lib/kwmf/kowmfwrite.cc | 456 + lib/kwmf/kowmfwrite.h | 142 + lib/kwmf/kwmf.cc | 964 + lib/kwmf/kwmf.h | 220 + lib/kwmf/metafuncs.h | 90 + lib/kwmf/qwmf.cc | 1258 + lib/kwmf/qwmf.h | 231 + lib/kwmf/wmfstruct.h | 107 + lib/store/KoDirectoryStore.cpp | 117 + lib/store/KoDirectoryStore.h | 54 + lib/store/KoStore.cpp | 629 + lib/store/KoStore.h | 381 + lib/store/KoStoreBase.cpp | 29 + lib/store/KoStoreBase.h | 51 + lib/store/KoStoreDevice.h | 88 + lib/store/KoStoreDrag.cpp | 35 + lib/store/KoStoreDrag.h | 55 + lib/store/KoTarStore.cpp | 206 + lib/store/KoTarStore.h | 65 + lib/store/KoXmlWriter.cpp | 427 + lib/store/KoXmlWriter.h | 281 + lib/store/KoZipStore.cpp | 237 + lib/store/KoZipStore.h | 61 + lib/store/Makefile.am | 13 + lib/store/SPEC | 122 + lib/store/fix_storage.pl | 217 + lib/store/tests/Makefile.am | 18 + lib/store/tests/storage_test.cpp | 220 + lib/store/tests/storedroptest.cpp | 138 + lib/store/tests/xmlwritertest.cpp | 144 + lib/store/tests/xmlwritertest.h | 46 + lib/store/update_kzip.sh | 26 + lib/templatescript.sh | 155 + mimetypes/Makefile.am | 9 + mimetypes/kde33/Makefile.am | 16 + .../vnd.oasis.opendocument.chart.desktop | 54 + .../vnd.oasis.opendocument.formula.desktop | 56 + ...sis.opendocument.graphics-template.desktop | 56 + .../vnd.oasis.opendocument.graphics.desktop | 55 + .../vnd.oasis.opendocument.image.desktop | 56 + ...opendocument.presentation-template.desktop | 56 + ...nd.oasis.opendocument.presentation.desktop | 55 + ....opendocument.spreadsheet-template.desktop | 56 + ...vnd.oasis.opendocument.spreadsheet.desktop | 56 + ...d.oasis.opendocument.text-template.desktop | 56 + .../kde33/vnd.oasis.opendocument.text.desktop | 56 + mimetypes/kde351/Makefile.am | 5 + mimetypes/kde351/x-raw.desktop | 43 + pics/Makefile.am | 3 + pics/crystalsvg/Makefile.am | 4 + pics/crystalsvg/cr16-action-borderoutline.png | Bin 0 -> 211 bytes pics/crystalsvg/cr16-action-bring_forward.png | Bin 0 -> 688 bytes pics/crystalsvg/cr16-action-color_fill.png | Bin 0 -> 731 bytes pics/crystalsvg/cr16-action-color_line.png | Bin 0 -> 641 bytes .../cr16-action-delete_table_col.png | Bin 0 -> 350 bytes .../cr16-action-delete_table_row.png | Bin 0 -> 362 bytes pics/crystalsvg/cr16-action-documentinfo.png | Bin 0 -> 854 bytes pics/crystalsvg/cr16-action-enumList.png | Bin 0 -> 144 bytes pics/crystalsvg/cr16-action-fontsizedown.png | Bin 0 -> 749 bytes pics/crystalsvg/cr16-action-fontsizeup.png | Bin 0 -> 745 bytes .../cr16-action-format_decreaseindent.png | Bin 0 -> 219 bytes .../cr16-action-format_increaseindent.png | Bin 0 -> 220 bytes pics/crystalsvg/cr16-action-frame_edit.png | Bin 0 -> 410 bytes pics/crystalsvg/cr16-action-frame_formula.png | Bin 0 -> 368 bytes pics/crystalsvg/cr16-action-frame_image.png | Bin 0 -> 661 bytes pics/crystalsvg/cr16-action-frame_query.png | Bin 0 -> 407 bytes .../cr16-action-frame_spreadsheet.png | Bin 0 -> 269 bytes pics/crystalsvg/cr16-action-frame_text.png | Bin 0 -> 327 bytes pics/crystalsvg/cr16-action-inline_image.png | Bin 0 -> 1137 bytes pics/crystalsvg/cr16-action-inline_table.png | Bin 0 -> 517 bytes .../cr16-action-insert_table_col.png | Bin 0 -> 512 bytes .../cr16-action-insert_table_row.png | Bin 0 -> 522 bytes pics/crystalsvg/cr16-action-kdb_form.png | Bin 0 -> 267 bytes pics/crystalsvg/cr16-action-kdb_table.png | Bin 0 -> 272 bytes pics/crystalsvg/cr16-action-linewidth.png | Bin 0 -> 153 bytes pics/crystalsvg/cr16-action-send_backward.png | Bin 0 -> 623 bytes pics/crystalsvg/cr16-action-spacedouble.png | Bin 0 -> 452 bytes pics/crystalsvg/cr16-action-spacesimple.png | Bin 0 -> 443 bytes pics/crystalsvg/cr16-action-spacetriple.png | Bin 0 -> 459 bytes pics/crystalsvg/cr16-action-tab_first.png | Bin 0 -> 121 bytes pics/crystalsvg/cr16-action-tab_last.png | Bin 0 -> 125 bytes pics/crystalsvg/cr16-action-tab_left.png | Bin 0 -> 118 bytes pics/crystalsvg/cr16-action-tab_right.png | Bin 0 -> 123 bytes pics/crystalsvg/cr16-action-text_sub.png | Bin 0 -> 194 bytes pics/crystalsvg/cr16-action-text_super.png | Bin 0 -> 185 bytes pics/crystalsvg/cr16-action-textcolor.png | Bin 0 -> 189 bytes pics/crystalsvg/cr16-action-unsortedList.png | Bin 0 -> 159 bytes .../cr16-action-view_orientation.png | Bin 0 -> 496 bytes pics/crystalsvg/cr16-action-view_remove.png | Bin 0 -> 333 bytes pics/crystalsvg/cr16-action-view_split.png | Bin 0 -> 406 bytes pics/crystalsvg/cr16-app-go.png | Bin 0 -> 1082 bytes pics/crystalsvg/cr16-app-key_bindings.png | Bin 0 -> 709 bytes pics/crystalsvg/cr16-app-style.png | Bin 0 -> 906 bytes pics/crystalsvg/cr22-action-aobottom.png | Bin 0 -> 429 bytes pics/crystalsvg/cr22-action-aocenterh.png | Bin 0 -> 430 bytes pics/crystalsvg/cr22-action-aocenterv.png | Bin 0 -> 377 bytes pics/crystalsvg/cr22-action-aoleft.png | Bin 0 -> 454 bytes pics/crystalsvg/cr22-action-aoright.png | Bin 0 -> 453 bytes pics/crystalsvg/cr22-action-aotop.png | Bin 0 -> 443 bytes pics/crystalsvg/cr22-action-borderbottom.png | Bin 0 -> 254 bytes pics/crystalsvg/cr22-action-borderleft.png | Bin 0 -> 260 bytes pics/crystalsvg/cr22-action-borderoutline.png | Bin 0 -> 212 bytes pics/crystalsvg/cr22-action-borderright.png | Bin 0 -> 262 bytes pics/crystalsvg/cr22-action-bordertop.png | Bin 0 -> 255 bytes pics/crystalsvg/cr22-action-bring_forward.png | Bin 0 -> 876 bytes pics/crystalsvg/cr22-action-cancel.png | Bin 0 -> 882 bytes pics/crystalsvg/cr22-action-char.png | Bin 0 -> 342 bytes pics/crystalsvg/cr22-action-clipart.png | Bin 0 -> 436 bytes .../cr22-action-clipart_from_file.png | Bin 0 -> 439 bytes pics/crystalsvg/cr22-action-color_fill.png | Bin 0 -> 1096 bytes pics/crystalsvg/cr22-action-color_line.png | Bin 0 -> 909 bytes .../cr22-action-delete_table_col.png | Bin 0 -> 411 bytes .../cr22-action-delete_table_row.png | Bin 0 -> 411 bytes pics/crystalsvg/cr22-action-delslide.png | Bin 0 -> 377 bytes pics/crystalsvg/cr22-action-enumList.png | Bin 0 -> 775 bytes pics/crystalsvg/cr22-action-fontsizedown.png | Bin 0 -> 1076 bytes pics/crystalsvg/cr22-action-fontsizeup.png | Bin 0 -> 1070 bytes .../cr22-action-format_decreaseindent.png | Bin 0 -> 624 bytes .../cr22-action-format_increaseindent.png | Bin 0 -> 632 bytes pics/crystalsvg/cr22-action-frame_chart.png | Bin 0 -> 597 bytes pics/crystalsvg/cr22-action-frame_edit.png | Bin 0 -> 716 bytes pics/crystalsvg/cr22-action-frame_formula.png | Bin 0 -> 427 bytes pics/crystalsvg/cr22-action-frame_image.png | Bin 0 -> 921 bytes pics/crystalsvg/cr22-action-frame_query.png | Bin 0 -> 599 bytes .../cr22-action-frame_spreadsheet.png | Bin 0 -> 362 bytes pics/crystalsvg/cr22-action-frame_text.png | Bin 0 -> 337 bytes pics/crystalsvg/cr22-action-group.png | Bin 0 -> 347 bytes pics/crystalsvg/cr22-action-inline_image.png | Bin 0 -> 908 bytes pics/crystalsvg/cr22-action-inline_table.png | Bin 0 -> 528 bytes .../cr22-action-insert_table_col.png | Bin 0 -> 582 bytes .../cr22-action-insert_table_row.png | Bin 0 -> 582 bytes pics/crystalsvg/cr22-action-lower.png | Bin 0 -> 429 bytes pics/crystalsvg/cr22-action-neonpen.png | Bin 0 -> 339 bytes pics/crystalsvg/cr22-action-newslide.png | Bin 0 -> 394 bytes pics/crystalsvg/cr22-action-ok.png | Bin 0 -> 768 bytes pics/crystalsvg/cr22-action-page.png | Bin 0 -> 691 bytes pics/crystalsvg/cr22-action-raise.png | Bin 0 -> 513 bytes pics/crystalsvg/cr22-action-select.png | Bin 0 -> 549 bytes pics/crystalsvg/cr22-action-send_backward.png | Bin 0 -> 859 bytes pics/crystalsvg/cr22-action-shadow.png | Bin 0 -> 533 bytes pics/crystalsvg/cr22-action-shadowB.png | Bin 0 -> 437 bytes pics/crystalsvg/cr22-action-shadowL.png | Bin 0 -> 494 bytes pics/crystalsvg/cr22-action-shadowLB.png | Bin 0 -> 498 bytes pics/crystalsvg/cr22-action-shadowLU.png | Bin 0 -> 538 bytes pics/crystalsvg/cr22-action-shadowR.png | Bin 0 -> 495 bytes pics/crystalsvg/cr22-action-shadowRB.png | Bin 0 -> 533 bytes pics/crystalsvg/cr22-action-shadowRU.png | Bin 0 -> 528 bytes pics/crystalsvg/cr22-action-shadowU.png | Bin 0 -> 495 bytes pics/crystalsvg/cr22-action-slide.png | Bin 0 -> 195 bytes pics/crystalsvg/cr22-action-spacedouble.png | Bin 0 -> 662 bytes pics/crystalsvg/cr22-action-spacesimple.png | Bin 0 -> 636 bytes pics/crystalsvg/cr22-action-spacetriple.png | Bin 0 -> 639 bytes pics/crystalsvg/cr22-action-sub.png | Bin 0 -> 319 bytes pics/crystalsvg/cr22-action-super.png | Bin 0 -> 324 bytes .../cr22-action-toggle_docbrowser.png | Bin 0 -> 415 bytes pics/crystalsvg/cr22-action-ungroup.png | Bin 0 -> 374 bytes pics/crystalsvg/cr22-action-unsortedList.png | Bin 0 -> 735 bytes pics/crystalsvg/cr22-action-view_remove.png | Bin 0 -> 405 bytes pics/crystalsvg/cr32-action-bring_forward.png | Bin 0 -> 1313 bytes .../cr32-action-delete_table_col.png | Bin 0 -> 741 bytes .../cr32-action-delete_table_row.png | Bin 0 -> 1212 bytes pics/crystalsvg/cr32-action-fontsizedown.png | Bin 0 -> 1721 bytes pics/crystalsvg/cr32-action-fontsizeup.png | Bin 0 -> 1681 bytes pics/crystalsvg/cr32-action-grid.png | Bin 0 -> 870 bytes .../cr32-action-insert_table_col.png | Bin 0 -> 837 bytes .../cr32-action-insert_table_row.png | Bin 0 -> 1271 bytes pics/crystalsvg/cr32-action-send_backward.png | Bin 0 -> 1294 bytes pics/crystalsvg/cr32-action-sort_az.png | Bin 0 -> 266 bytes pics/crystalsvg/cr32-action-spacedouble.png | Bin 0 -> 993 bytes pics/crystalsvg/cr32-action-spacesimple.png | Bin 0 -> 995 bytes pics/crystalsvg/cr32-action-spacetriple.png | Bin 0 -> 967 bytes pics/crystalsvg/cr32-action-view_remove.png | Bin 0 -> 306 bytes pics/crystalsvg/cr32-app-go.png | Bin 0 -> 3043 bytes pics/crystalsvg/cr48-action-bring_forward.png | Bin 0 -> 1991 bytes pics/crystalsvg/cr48-action-fontsizedown.png | Bin 0 -> 2706 bytes pics/crystalsvg/cr48-action-fontsizeup.png | Bin 0 -> 2735 bytes pics/crystalsvg/cr48-action-send_backward.png | Bin 0 -> 2027 bytes pics/crystalsvg/cr48-action-spacedouble.png | Bin 0 -> 1359 bytes pics/crystalsvg/cr48-action-spacesimple.png | Bin 0 -> 1352 bytes pics/crystalsvg/cr48-action-spacetriple.png | Bin 0 -> 1379 bytes pics/crystalsvg/cr48-app-key_bindings.png | Bin 0 -> 2568 bytes .../crystalsvg/crsc-action-bring_forward.svgz | Bin 0 -> 2608 bytes .../crystalsvg/crsc-action-send_backward.svgz | Bin 0 -> 3137 bytes pics/crystalsvg/crsc-action-spacedouble.svgz | 255 + pics/crystalsvg/crsc-action-spacesimple.svgz | 252 + pics/crystalsvg/crsc-action-spacetriple.svgz | 254 + plugins/Makefile.am | 1 + plugins/scan/Makefile.am | 24 + plugins/scan/scan-kpresenter.rc | 9 + plugins/scan/scan-krita.rc | 9 + plugins/scan/scan-kword.rc | 9 + plugins/scan/scan.cpp | 84 + plugins/scan/scan.h | 43 + servicetypes/Makefile.am | 4 + servicetypes/kochart.desktop | 4 + servicetypes/kofficepart.desktop | 85 + servicetypes/kofilter.desktop | 82 + servicetypes/kofilterwrapper.desktop | 60 + servicetypes/koplugin.desktop | 77 + stamp-h.in | 0 subdirs | 26 + templates/Illustration.desktop | 108 + templates/Illustration.karbon | Bin 0 -> 303 bytes templates/Makefile.am | 7 + templates/Presentation.desktop | 113 + templates/Presentation.kpt | Bin 0 -> 1043 bytes templates/README | 3 + templates/SpreadSheet.desktop | 116 + templates/SpreadSheet.kst | Bin 0 -> 423 bytes templates/TextDocument.desktop | 118 + templates/TextDocument.kwt | Bin 0 -> 835 bytes templates/insert_ident_string.sh | 37 + tools/Makefile.am | 2 + tools/README | 8 + tools/converter/Makefile.am | 11 + tools/converter/koconverter.cpp | 162 + tools/converter/koconverter.h | 34 + tools/kfile-plugins/Makefile.am | 1 + tools/kfile-plugins/RETURNED_ITEMS | 11 + tools/kfile-plugins/abiword/Makefile.am | 22 + tools/kfile-plugins/abiword/kfile_abiword.cpp | 145 + .../abiword/kfile_abiword.desktop | 49 + tools/kfile-plugins/abiword/kfile_abiword.h | 42 + tools/kfile-plugins/gnumeric/Makefile.am | 22 + .../kfile-plugins/gnumeric/kfile_gnumeric.cpp | 123 + .../gnumeric/kfile_gnumeric.desktop | 49 + tools/kfile-plugins/gnumeric/kfile_gnumeric.h | 42 + tools/kfile-plugins/koffice/Makefile.am | 22 + tools/kfile-plugins/koffice/kfile_koffice.cpp | 116 + .../koffice/kfile_koffice.desktop | 66 + tools/kfile-plugins/koffice/kfile_koffice.h | 42 + tools/kfile-plugins/ooo/Makefile.am | 22 + tools/kfile-plugins/ooo/kfile_ooo.cpp | 588 + tools/kfile-plugins/ooo/kfile_ooo.desktop | 57 + tools/kfile-plugins/ooo/kfile_ooo.h | 77 + tools/kthesaurus/KThesaurus.desktop | 78 + tools/kthesaurus/Makefile.am | 16 + tools/kthesaurus/README | 4 + tools/kthesaurus/main.cc | 87 + tools/quickprint/Makefile.am | 2 + tools/quickprint/karbon_konqi.desktop | 63 + tools/quickprint/kchart_konqi.desktop | 63 + tools/quickprint/kexi_konqi.desktop | 63 + tools/quickprint/kformula_konqi.desktop | 63 + tools/quickprint/kivio_konqi.desktop | 63 + tools/quickprint/kpresenter_konqi.desktop | 63 + tools/quickprint/krita_konqi.desktop | 63 + tools/quickprint/kspread_konqi.desktop | 63 + tools/quickprint/kword_konqi.desktop | 63 + tools/scripts/check_koffice_install.sh | 98 + tools/scripts/check_msword_import.sh | 89 + tools/scripts/gdb_output_to_text.pl | 10 + tools/scripts/koffice-devel-gdb | 27 + tools/spell/Makefile.am | 24 + tools/spell/kspelltool.desktop | 135 + tools/spell/main.cc | 137 + tools/spell/main.h | 36 + tools/spell/uninstall.desktop | 2 + tools/thesaurus/Makefile.am | 24 + tools/thesaurus/README | 28 + tools/thesaurus/extract.pl | 186 + tools/thesaurus/main.cc | 816 + tools/thesaurus/main.h | 163 + tools/thesaurus/thesaurus.txt | 20796 ++++ tools/thesaurus/thesaurustool.desktop | 126 + tools/thumbnail/Makefile.am | 16 + tools/thumbnail/clipartcreator.cpp | 63 + tools/thumbnail/clipartcreator.h | 33 + tools/thumbnail/clipartthumbnail.desktop | 45 + tools/thumbnail/kofficecreator.cpp | 125 + tools/thumbnail/kofficecreator.h | 49 + tools/thumbnail/kofficethumbnail.desktop | 70 + tools/thumbnail/otherofficethumbnail.desktop | 69 + vpat_koffice1.4.1.sxw | Bin 0 -> 20544 bytes 10386 files changed, 2065153 insertions(+) create mode 100644 AUTHORS create mode 100644 COPYING create mode 100644 COPYING.LIB create mode 100644 Doxyfile.temp create mode 100644 INSTALL create mode 100644 Mainpage.dox create mode 100644 Makefile.am create mode 100644 Makefile.am.in create mode 100644 Makefile.cvs create mode 100644 README create mode 100644 README.APPS create mode 100644 README.PACKAGERS create mode 100644 acinclude.m4 create mode 100644 aclocal.m4 create mode 100644 autocorrect/Makefile.am create mode 100644 autocorrect/autocorrect.xml create mode 100644 autocorrect/en_US.xml create mode 100644 changes-1.4 create mode 100644 changes-1.5 create mode 100644 config.h.in create mode 100644 configure.files create mode 100644 configure.in create mode 100644 configure.in.in create mode 100644 doc/.directory create mode 100644 doc/CookBook.odt create mode 100644 doc/Makefile.am create mode 100644 doc/TODO create mode 100644 doc/api/Doxyfile.am create mode 100644 doc/api/Doxyfile.koffice create mode 100644 doc/api/doxyndex.sh create mode 100644 doc/api/header.html create mode 100644 doc/api/kfontdialog.png create mode 100644 doc/api/mainheader.html create mode 100644 doc/karbon/Makefile.am create mode 100644 doc/karbon/index.docbook create mode 100644 doc/kchart/Makefile.am create mode 100644 doc/kchart/cr22-action-chart_line.png create mode 100644 doc/kchart/cr22-action-data.png create mode 100644 doc/kchart/cr22-action-options.png create mode 100644 doc/kchart/cr22-action-wizard.png create mode 100644 doc/kchart/file-toolbar.png create mode 100644 doc/kchart/file-toolbar2.png create mode 100644 doc/kchart/frame_chart.png create mode 100644 doc/kchart/index.docbook create mode 100644 doc/kchart/kchart-config1.png create mode 100644 doc/kchart/kchart-config2.png create mode 100644 doc/kchart/kchart-config3.png create mode 100644 doc/kchart/kchart-config4.png create mode 100644 doc/kchart/kchart-config5.png create mode 100644 doc/kchart/kchart-config6.png create mode 100644 doc/kchart/kchart-config7.png create mode 100644 doc/kchart/kchart-config8.png create mode 100644 doc/kchart/kchart-dataeditor.png create mode 100644 doc/kchart/kchart-default.png create mode 100644 doc/kchart/kchart-example1-1.png create mode 100644 doc/kchart/kchart-example1-2.png create mode 100644 doc/kchart/kchart-example1-3.png create mode 100644 doc/kchart/kchart-example1-4.png create mode 100644 doc/kchart/kchart-example1-5.png create mode 100644 doc/kchart/kchart-example1-6.png create mode 100644 doc/kchart/kchart-example1-7.png create mode 100644 doc/kchart/kchart-example1-8.png create mode 100644 doc/kchart/kchart-example1-9.png create mode 100644 doc/kchart/kchart-kspread-bar.png create mode 100644 doc/kchart/kchart-kspread.png create mode 100644 doc/kchart/kchart-startupdialog.png create mode 100644 doc/kchart/kchart-wizard0.png create mode 100644 doc/kchart/kchart-wizard1.png create mode 100644 doc/kchart/kchart-wizard2.png create mode 100644 doc/kchart/kchart-wizard3.png create mode 100644 doc/kchart/kchart-wizard4.png create mode 100644 doc/kchart/shortcut.png create mode 100644 doc/kchart/toolbars.png create mode 100644 doc/kexi/Makefile.am create mode 100644 doc/kexi/basics.docbook create mode 100644 doc/kexi/building.docbook create mode 100644 doc/kexi/comparing.docbook create mode 100644 doc/kexi/configuration.docbook create mode 100644 doc/kexi/contact-example.png create mode 100644 doc/kexi/credits.docbook create mode 100644 doc/kexi/database.docbook create mode 100644 doc/kexi/designingforms.docbook create mode 100644 doc/kexi/enteringdataintotables.docbook create mode 100644 doc/kexi/enteringdatausingforms.docbook create mode 100644 doc/kexi/index.docbook create mode 100644 doc/kexi/intro.docbook create mode 100644 doc/kexi/menus.docbook create mode 100644 doc/kexi/querydesigning.docbook create mode 100644 doc/kformula/Makefile.am create mode 100644 doc/kformula/ambiguous-string.png create mode 100644 doc/kformula/correct_index_location.png create mode 100644 doc/kformula/definite_integral.png create mode 100644 doc/kformula/file-toolbar.png create mode 100644 doc/kformula/file-toolbar2.png create mode 100644 doc/kformula/green1.png create mode 100644 doc/kformula/green2.png create mode 100644 doc/kformula/greens.png create mode 100644 doc/kformula/incorrect_index_location.png create mode 100644 doc/kformula/index.docbook create mode 100644 doc/kformula/index_smear.png create mode 100644 doc/kformula/kfontinst1.png create mode 100644 doc/kformula/kfontinst2.png create mode 100644 doc/kformula/kfontinst3.png create mode 100644 doc/kformula/kfontinst4.png create mode 100644 doc/kformula/kfontinst5.png create mode 100644 doc/kformula/kfontinst6.png create mode 100644 doc/kformula/lower-index.png create mode 100644 doc/kformula/matrix-view.png create mode 100644 doc/kformula/matrix.png create mode 100644 doc/kformula/negative_thin_space.png create mode 100644 doc/kformula/path-integral.png create mode 100644 doc/kformula/rk-edit0.png create mode 100644 doc/kformula/rk-edit1.png create mode 100644 doc/kformula/rk-edit2.png create mode 100644 doc/kformula/scilab-edit.png create mode 100644 doc/kformula/scilab.png create mode 100644 doc/kformula/shortcut0.png create mode 100644 doc/kformula/shortcut1.png create mode 100644 doc/kformula/sin.png create mode 100644 doc/kformula/toolbars.png create mode 100644 doc/kformula/upper-index.png create mode 100644 doc/kivio/Makefile.am create mode 100644 doc/kivio/credits.docbook create mode 100644 doc/kivio/index.docbook create mode 100644 doc/kivio/introduction.docbook create mode 100644 doc/kivio/usage.docbook create mode 100644 doc/kivio/working.docbook create mode 100644 doc/koffice.desktop create mode 100644 doc/koffice/Makefile.am create mode 100644 doc/koffice/index.docbook create mode 100644 doc/koshell/Makefile.am create mode 100644 doc/koshell/index.docbook create mode 100644 doc/koshell/koshell1.png create mode 100644 doc/koshell/main-view.png create mode 100644 doc/koshell/new-dialog.png create mode 100644 doc/koshell/side-pane.png create mode 100644 doc/kplato/Makefile.am create mode 100644 doc/kplato/commands.docbook create mode 100644 doc/kplato/configure-wbs.png create mode 100644 doc/kplato/configure1.png create mode 100644 doc/kplato/configure2.1.png create mode 100644 doc/kplato/configure2.png create mode 100644 doc/kplato/definitions.docbook create mode 100644 doc/kplato/edit-accounts.png create mode 100644 doc/kplato/edit-accounts1.png create mode 100644 doc/kplato/edit-calendar.png create mode 100644 doc/kplato/edit-calendar1.png create mode 100644 doc/kplato/edit-calendar2.png create mode 100644 doc/kplato/edit-resources.png create mode 100644 doc/kplato/edit-resources1.png create mode 100644 doc/kplato/edit-worktime.png create mode 100644 doc/kplato/index.docbook create mode 100644 doc/kplato/mainwindow.docbook create mode 100644 doc/kplato/mainwindow1.png create mode 100644 doc/kplato/options.docbook create mode 100644 doc/kplato/project-settings.png create mode 100644 doc/kplato/wbs.docbook create mode 100644 doc/kplato/wbs.png create mode 100644 doc/kplato/wbs1.png create mode 100644 doc/kplato/wbs2.png create mode 100644 doc/kplato/wbs3.png create mode 100644 doc/kpresenter/Makefile.am create mode 100644 doc/kpresenter/a11y.docbook create mode 100644 doc/kpresenter/autocorrection1.png create mode 100644 doc/kpresenter/autocorrection2.png create mode 100644 doc/kpresenter/autocorrection3.png create mode 100644 doc/kpresenter/autocorrection4.png create mode 100644 doc/kpresenter/barstyle1.png create mode 100644 doc/kpresenter/barstyle3.png create mode 100644 doc/kpresenter/barstyle4.png create mode 100644 doc/kpresenter/barstyle5.png create mode 100644 doc/kpresenter/barstyle6.png create mode 100644 doc/kpresenter/barstyle7.png create mode 100644 doc/kpresenter/break.png create mode 100644 doc/kpresenter/changeformat.png create mode 100644 doc/kpresenter/completion.png create mode 100644 doc/kpresenter/configure1.png create mode 100644 doc/kpresenter/configure2.png create mode 100644 doc/kpresenter/configure3.png create mode 100644 doc/kpresenter/configure4.png create mode 100644 doc/kpresenter/configure4a.png create mode 100644 doc/kpresenter/configure4a1.png create mode 100644 doc/kpresenter/configure4b.png create mode 100644 doc/kpresenter/configure4c.png create mode 100644 doc/kpresenter/configure5.png create mode 100644 doc/kpresenter/configure6.png create mode 100644 doc/kpresenter/configure6b.png create mode 100644 doc/kpresenter/configure6c.png create mode 100644 doc/kpresenter/configure6d.png create mode 100644 doc/kpresenter/configure6e.png create mode 100644 doc/kpresenter/configure7.png create mode 100644 doc/kpresenter/faq.docbook create mode 100644 doc/kpresenter/great-presentations.docbook create mode 100644 doc/kpresenter/guides.docbook create mode 100644 doc/kpresenter/htmlshow1.png create mode 100644 doc/kpresenter/htmlshow2.png create mode 100644 doc/kpresenter/htmlshow3.png create mode 100644 doc/kpresenter/htmlshow4.png create mode 100644 doc/kpresenter/htmlshow5.png create mode 100644 doc/kpresenter/htmlshow6.png create mode 100644 doc/kpresenter/htmlshow7.png create mode 100644 doc/kpresenter/htmlshow8.png create mode 100644 doc/kpresenter/htmlshow9.png create mode 100644 doc/kpresenter/index.docbook create mode 100644 doc/kpresenter/kbd-focus-ext.png create mode 100644 doc/kpresenter/link.png create mode 100644 doc/kpresenter/menus.docbook create mode 100644 doc/kpresenter/mousenav.png create mode 100644 doc/kpresenter/msexport1.png create mode 100644 doc/kpresenter/msexport2.png create mode 100644 doc/kpresenter/msexport2b.png create mode 100644 doc/kpresenter/msexport3.png create mode 100644 doc/kpresenter/msexport4.png create mode 100644 doc/kpresenter/options.docbook create mode 100644 doc/kpresenter/properties.png create mode 100644 doc/kpresenter/screen.docbook create mode 100644 doc/kpresenter/settings01.png create mode 100644 doc/kpresenter/settings03.png create mode 100644 doc/kpresenter/settings04.png create mode 100644 doc/kpresenter/template02.png create mode 100644 doc/kpresenter/template03.png create mode 100644 doc/kpresenter/template04.png create mode 100644 doc/kpresenter/template05.png create mode 100644 doc/kpresenter/template06.png create mode 100644 doc/kpresenter/template07.png create mode 100644 doc/kpresenter/textmenu1.png create mode 100644 doc/kpresenter/textmenu2.png create mode 100644 doc/kpresenter/toolsmenu01.png create mode 100644 doc/kpresenter/tts.png create mode 100644 doc/kpresenter/tut01.png create mode 100644 doc/kpresenter/tut02.png create mode 100644 doc/kpresenter/tut03.png create mode 100644 doc/kpresenter/tut04.png create mode 100644 doc/kpresenter/tut05.png create mode 100644 doc/kpresenter/tut06.png create mode 100644 doc/kpresenter/tut07.png create mode 100644 doc/kpresenter/tut08.png create mode 100644 doc/kpresenter/tut09.png create mode 100644 doc/kpresenter/tut10.png create mode 100644 doc/kpresenter/tut11.png create mode 100644 doc/kpresenter/tut12.png create mode 100644 doc/kpresenter/tut13.png create mode 100644 doc/kpresenter/tut14.png create mode 100644 doc/kpresenter/tut15.png create mode 100644 doc/kpresenter/tut16.png create mode 100644 doc/kpresenter/tut17.png create mode 100644 doc/kpresenter/tut18.png create mode 100644 doc/kpresenter/tut19.png create mode 100644 doc/kpresenter/tut20.png create mode 100644 doc/kpresenter/tut21.png create mode 100644 doc/kpresenter/tut22.png create mode 100644 doc/kpresenter/tut23.png create mode 100644 doc/kpresenter/tut24.png create mode 100644 doc/kpresenter/tut25.png create mode 100644 doc/kpresenter/tut26.png create mode 100644 doc/kpresenter/tutorial.docbook create mode 100644 doc/kpresenter/zoomfactor.png create mode 100644 doc/krita/Makefile.am create mode 100644 doc/krita/README.SCREENSHOTS create mode 100644 doc/krita/commands-dialogs.docbook create mode 100644 doc/krita/commands-menus.docbook create mode 100644 doc/krita/commands-palettes.docbook create mode 100644 doc/krita/commands-toolbars.docbook create mode 100644 doc/krita/commands.docbook create mode 100644 doc/krita/createdocument.png create mode 100644 doc/krita/credits.docbook create mode 100644 doc/krita/crocusses-autocontrast.png create mode 100644 doc/krita/crocusses-blur.png create mode 100644 doc/krita/crocusses-brightnesscontrast.png create mode 100644 doc/krita/crocusses-bumpmap.png create mode 100644 doc/krita/crocusses-coloradjustment.png create mode 100644 doc/krita/crocusses-colortoalpha.png create mode 100644 doc/krita/crocusses-colortransfer.png create mode 100644 doc/krita/crocusses-customconvolution.png create mode 100644 doc/krita/crocusses-desaturate.png create mode 100644 doc/krita/crocusses-edgebottom.png create mode 100644 doc/krita/crocusses-edgeleft.png create mode 100644 doc/krita/crocusses-edgeright.png create mode 100644 doc/krita/crocusses-embossall.png create mode 100644 doc/krita/crocusses-embosshorvert.png create mode 100644 doc/krita/crocusses-embossvariable.png create mode 100644 doc/krita/crocusses-gaussianblur.png create mode 100644 doc/krita/crocusses-gaussiannoise.png create mode 100644 doc/krita/crocusses-invert.png create mode 100644 doc/krita/crocusses-lenscorrection.png create mode 100644 doc/krita/crocusses-maximizechannel.png create mode 100644 doc/krita/crocusses-meanremoval.png create mode 100644 doc/krita/crocusses-minimizechannel.png create mode 100644 doc/krita/crocusses-oilpaint.png create mode 100644 doc/krita/crocusses-pixelize.png create mode 100644 doc/krita/crocusses-raindrops.png create mode 100644 doc/krita/crocusses-randomnoise.png create mode 100644 doc/krita/crocusses-randompick.png create mode 100644 doc/krita/crocusses-roundcorners.png create mode 100644 doc/krita/crocusses-sharpen.png create mode 100644 doc/krita/crocusses-smalltiles.png create mode 100644 doc/krita/crocusses-sobel.png create mode 100644 doc/krita/crocusses-topedge.png create mode 100644 doc/krita/crocusses-unsharpmask.png create mode 100644 doc/krita/crocusses-wave.png create mode 100644 doc/krita/crocusses-waveletnoise.png create mode 100644 doc/krita/crocusses.png create mode 100644 doc/krita/developers-plugins.docbook create mode 100644 doc/krita/developers-scripting.docbook create mode 100644 doc/krita/developers.docbook create mode 100644 doc/krita/dialogs-addpalette.png create mode 100644 doc/krita/dialogs-blur.png create mode 100644 doc/krita/dialogs-brightnesscontrast.png create mode 100644 doc/krita/dialogs-bumpmap.png create mode 100644 doc/krita/dialogs-coloradjustment.png create mode 100644 doc/krita/dialogs-colorrange.png create mode 100644 doc/krita/dialogs-colortoalpha.png create mode 100644 doc/krita/dialogs-colortransfer.png create mode 100644 doc/krita/dialogs-convertimagetype.png create mode 100644 doc/krita/dialogs-convertlayertype.png create mode 100644 doc/krita/dialogs-cubism.png create mode 100644 doc/krita/dialogs-customconvolution.png create mode 100644 doc/krita/dialogs-documentinformation.png create mode 100644 doc/krita/dialogs-dropshadow.png create mode 100644 doc/krita/dialogs-emboss.png create mode 100644 doc/krita/dialogs-filtersgallery.png create mode 100644 doc/krita/dialogs-gaussiannoise.png create mode 100644 doc/krita/dialogs-histogram.png create mode 100644 doc/krita/dialogs-imageproperties.png create mode 100644 doc/krita/dialogs-imagerestoration.png create mode 100644 doc/krita/dialogs-imagesize.png create mode 100644 doc/krita/dialogs-layerproperties.png create mode 100644 doc/krita/dialogs-layersize.png create mode 100644 doc/krita/dialogs-lenscorrection.png create mode 100644 doc/krita/dialogs-newadjustmentlayer.png create mode 100644 doc/krita/dialogs-newlayer.png create mode 100644 doc/krita/dialogs-oilpaint.png create mode 100644 doc/krita/dialogs-pixelize.png create mode 100644 doc/krita/dialogs-raindrops.png create mode 100644 doc/krita/dialogs-randomnoise.png create mode 100644 doc/krita/dialogs-randompick.png create mode 100644 doc/krita/dialogs-rotateimage.png create mode 100644 doc/krita/dialogs-rotatelayer.png create mode 100644 doc/krita/dialogs-roundcorners.png create mode 100644 doc/krita/dialogs-separateimage.png create mode 100644 doc/krita/dialogs-shearimage.png create mode 100644 doc/krita/dialogs-shearlayer.png create mode 100644 doc/krita/dialogs-smalltiles.png create mode 100644 doc/krita/dialogs-sobel.png create mode 100644 doc/krita/dialogs-substrate.png create mode 100644 doc/krita/dialogs-unsharpmask.png create mode 100644 doc/krita/dialogs-wave.png create mode 100644 doc/krita/dialogs-waveletnoise.png create mode 100644 doc/krita/faq.docbook create mode 100644 doc/krita/index.docbook create mode 100644 doc/krita/installation.docbook create mode 100644 doc/krita/introduction.docbook create mode 100644 doc/krita/mainscreen.png create mode 100644 doc/krita/mountains-burn.png create mode 100644 doc/krita/mountains-color.png create mode 100644 doc/krita/mountains-darken.png create mode 100644 doc/krita/mountains-divide.png create mode 100644 doc/krita/mountains-dodge.png create mode 100644 doc/krita/mountains-hue.png create mode 100644 doc/krita/mountains-lighten.png create mode 100644 doc/krita/mountains-multiply.png create mode 100644 doc/krita/mountains-normal.png create mode 100644 doc/krita/mountains-original.png create mode 100644 doc/krita/mountains-overlay.png create mode 100644 doc/krita/mountains-saturation.png create mode 100644 doc/krita/mountains-screen.png create mode 100644 doc/krita/mountains-value.png create mode 100644 doc/krita/mountains.png create mode 100644 doc/krita/newimage.png create mode 100644 doc/krita/palettes-colors-gray.png create mode 100644 doc/krita/palettes-colors-hsv.png create mode 100644 doc/krita/palettes-colors-palettes.png create mode 100644 doc/krita/palettes-colors-rgb.png create mode 100644 doc/krita/palettes-colors-watercolors.png create mode 100644 doc/krita/palettes-controlbox-bezier.png create mode 100644 doc/krita/palettes-controlbox-brush.png create mode 100644 doc/krita/palettes-controlbox-colorpicker.png create mode 100644 doc/krita/palettes-controlbox-contiguousfill.png create mode 100644 doc/krita/palettes-controlbox-crop.png create mode 100644 doc/krita/palettes-controlbox-duplicate.png create mode 100644 doc/krita/palettes-controlbox-ellipse.png create mode 100644 doc/krita/palettes-controlbox-fill.png create mode 100644 doc/krita/palettes-controlbox-gradient.png create mode 100644 doc/krita/palettes-controlbox-histogram.png create mode 100644 doc/krita/palettes-controlbox-line.png create mode 100644 doc/krita/palettes-controlbox-overview.png create mode 100644 doc/krita/palettes-controlbox-paintwithfilters.png create mode 100644 doc/krita/palettes-controlbox-polygon.png create mode 100644 doc/krita/palettes-controlbox-polyline.png create mode 100644 doc/krita/palettes-controlbox-rectangle.png create mode 100644 doc/krita/palettes-controlbox-select.png create mode 100644 doc/krita/palettes-controlbox-selectcontiguous.png create mode 100644 doc/krita/palettes-controlbox-selectmagnetic.png create mode 100644 doc/krita/palettes-controlbox-selectsimilar.png create mode 100644 doc/krita/palettes-controlbox-star.png create mode 100644 doc/krita/palettes-controlbox-text.png create mode 100644 doc/krita/palettes-controlbox-transform.png create mode 100644 doc/krita/palettes-layers-layers.png create mode 100644 doc/krita/palettes-layers-scriptsmanager.png create mode 100644 doc/krita/preferences-color.png create mode 100644 doc/krita/preferences-display.png create mode 100644 doc/krita/preferences-general.png create mode 100644 doc/krita/preferences-grid.png create mode 100644 doc/krita/preferences-performance.png create mode 100644 doc/krita/preferences-sidebar.png create mode 100644 doc/krita/preferences-tablet.png create mode 100644 doc/krita/settings.docbook create mode 100644 doc/krita/tool-bezier-example.png create mode 100644 doc/krita/tool-bezier-example2.png create mode 100644 doc/krita/tool-bezier-example3.png create mode 100644 doc/krita/tool-bezier.png create mode 100644 doc/krita/tool-brush.png create mode 100644 doc/krita/tool-colorpicker.png create mode 100644 doc/krita/tool-contiguousfill.png create mode 100644 doc/krita/tool-crop.png create mode 100644 doc/krita/tool-duplicate.png create mode 100644 doc/krita/tool-ellipse.png create mode 100644 doc/krita/tool-eraseselection.png create mode 100644 doc/krita/tool-gradient.png create mode 100644 doc/krita/tool-line.png create mode 100644 doc/krita/tool-move.png create mode 100644 doc/krita/tool-paintselection.png create mode 100644 doc/krita/tool-paintwithfilters-example.png create mode 100644 doc/krita/tool-paintwithfilters.png create mode 100644 doc/krita/tool-pan.png create mode 100644 doc/krita/tool-perspectivegrid.png create mode 100644 doc/krita/tool-perspectivetransform.png create mode 100644 doc/krita/tool-polygon.png create mode 100644 doc/krita/tool-polyline.png create mode 100644 doc/krita/tool-rectangle.png create mode 100644 doc/krita/tool-selectbezier.png create mode 100644 doc/krita/tool-selectcontiguous.png create mode 100644 doc/krita/tool-selectelliptical.png create mode 100644 doc/krita/tool-selectmagnetic.png create mode 100644 doc/krita/tool-selectoutline.png create mode 100644 doc/krita/tool-selectpolygonal.png create mode 100644 doc/krita/tool-selectrectangular.png create mode 100644 doc/krita/tool-selectsimilar.png create mode 100644 doc/krita/tool-star.png create mode 100644 doc/krita/tool-text.png create mode 100644 doc/krita/tool-transform.png create mode 100644 doc/krita/tool-zoom.png create mode 100644 doc/krita/toolbar-brushes-brushshapes-autobrush.png create mode 100644 doc/krita/toolbar-brushes-brushshapes-custombrush.png create mode 100644 doc/krita/toolbar-brushes-brushshapes-predefined.png create mode 100644 doc/krita/toolbar-brushes-gradients.png create mode 100644 doc/krita/toolbar-brushes-patterns-custompattern.png create mode 100644 doc/krita/toolbar-brushes-patterns.png create mode 100644 doc/krita/toolbar-brushesandstuff.png create mode 100644 doc/krita/toolbar-edit.png create mode 100644 doc/krita/toolbar-file.png create mode 100644 doc/krita/toolbar-krita.png create mode 100644 doc/krita/toolbar-navigation.png create mode 100644 doc/krita/toolbar-transformationtools.png create mode 100644 doc/krita/toolbars-button-zoomin.png create mode 100644 doc/krita/toolbars-button-zoomout.png create mode 100644 doc/krita/tutorial-quick-starts.docbook create mode 100644 doc/krita/tutorial-quick-starts1.png create mode 100644 doc/krita/tutorial-quick-starts10.png create mode 100644 doc/krita/tutorial-quick-starts11.png create mode 100644 doc/krita/tutorial-quick-starts12.png create mode 100644 doc/krita/tutorial-quick-starts2.png create mode 100644 doc/krita/tutorial-quick-starts3.png create mode 100644 doc/krita/tutorial-quick-starts4.png create mode 100644 doc/krita/tutorial-quick-starts5.png create mode 100644 doc/krita/tutorial-quick-starts6.png create mode 100644 doc/krita/tutorial-quick-starts7.png create mode 100644 doc/krita/tutorial-quick-starts8.png create mode 100644 doc/krita/tutorial-quick-starts9.png create mode 100644 doc/krita/tutorial-select-layer-1.png create mode 100644 doc/krita/tutorial-select-layer-10.png create mode 100644 doc/krita/tutorial-select-layer-11.png create mode 100644 doc/krita/tutorial-select-layer-12.png create mode 100644 doc/krita/tutorial-select-layer-13.png create mode 100644 doc/krita/tutorial-select-layer-2.png create mode 100644 doc/krita/tutorial-select-layer-3.png create mode 100644 doc/krita/tutorial-select-layer-4.png create mode 100644 doc/krita/tutorial-select-layer-5.png create mode 100644 doc/krita/tutorial-select-layer-6.png create mode 100644 doc/krita/tutorial-select-layer-7.png create mode 100644 doc/krita/tutorial-select-layer-8.png create mode 100644 doc/krita/tutorial-select-layer-9.png create mode 100644 doc/krita/tutorial-select-layer-sample.png create mode 100644 doc/krita/tutorial-select-layer.docbook create mode 100644 doc/krita/tutorial-starting.docbook create mode 100644 doc/krita/tutorial-tablet-1.png create mode 100644 doc/krita/tutorial-tablet-2.png create mode 100644 doc/krita/tutorial-tablet-3.png create mode 100644 doc/krita/tutorial-tablet.docbook create mode 100644 doc/krita/tutorial.docbook create mode 100644 doc/krita/using-colorspaces.docbook create mode 100644 doc/krita/using-filters.docbook create mode 100644 doc/krita/using-images.docbook create mode 100644 doc/krita/using-layers.docbook create mode 100644 doc/krita/using-selections-1.png create mode 100644 doc/krita/using-selections-2.png create mode 100644 doc/krita/using-selections-3.png create mode 100644 doc/krita/using-selections-4.png create mode 100644 doc/krita/using-selections-5.png create mode 100644 doc/krita/using-selections-6.png create mode 100644 doc/krita/using-selections.docbook create mode 100644 doc/krita/using-views.docbook create mode 100644 doc/kspread/Makefile.am create mode 100644 doc/kspread/a11y.docbook create mode 100644 doc/kspread/advanced.docbook create mode 100644 doc/kspread/basics.docbook create mode 100644 doc/kspread/cellformat0.png create mode 100644 doc/kspread/cellformat1.png create mode 100644 doc/kspread/cellformat2.png create mode 100644 doc/kspread/cellformat3.png create mode 100644 doc/kspread/cellformat4.png create mode 100644 doc/kspread/cellformat5.png create mode 100644 doc/kspread/cellformat6.png create mode 100644 doc/kspread/cellformat7.png create mode 100644 doc/kspread/cellprotection1.png create mode 100644 doc/kspread/cellprotection2.png create mode 100644 doc/kspread/chart1.png create mode 100644 doc/kspread/commands.docbook create mode 100644 doc/kspread/config.docbook create mode 100644 doc/kspread/configdialog.docbook create mode 100644 doc/kspread/configure1.png create mode 100644 doc/kspread/configure2.png create mode 100644 doc/kspread/configure3.png create mode 100644 doc/kspread/configure4.png create mode 100644 doc/kspread/configure5.png create mode 100644 doc/kspread/configure6.png create mode 100644 doc/kspread/copy1.png create mode 100644 doc/kspread/currency.png create mode 100644 doc/kspread/decreasedecimal.png create mode 100644 doc/kspread/faq.docbook create mode 100644 doc/kspread/format.docbook create mode 100644 doc/kspread/hideformula1.png create mode 100644 doc/kspread/hideformula2.png create mode 100644 doc/kspread/hideformula3.png create mode 100644 doc/kspread/hideformula4.png create mode 100644 doc/kspread/hideformula5.png create mode 100644 doc/kspread/importexport.docbook create mode 100644 doc/kspread/increasedecimal.png create mode 100644 doc/kspread/index.docbook create mode 100644 doc/kspread/kbd-focus-ext.png create mode 100644 doc/kspread/mousenav.png create mode 100644 doc/kspread/newdocument.png create mode 100644 doc/kspread/percent.png create mode 100644 doc/kspread/sheetproperties.png create mode 100644 doc/kspread/shortcut1.png create mode 100644 doc/kspread/shortcut2.png create mode 100644 doc/kspread/shortcut3.png create mode 100644 doc/kspread/sort1.png create mode 100644 doc/kspread/starting1.png create mode 100644 doc/kspread/tts.png create mode 100644 doc/kugar/Makefile.am create mode 100644 doc/kugar/add_detail.png create mode 100644 doc/kugar/add_detail_footer.png create mode 100644 doc/kugar/add_detail_header.png create mode 100644 doc/kugar/datadtd.docbook create mode 100644 doc/kugar/dataref.docbook create mode 100644 doc/kugar/designer.docbook create mode 100644 doc/kugar/file_new.png create mode 100644 doc/kugar/index.docbook create mode 100644 doc/kugar/kugar.png create mode 100644 doc/kugar/progguide.docbook create mode 100644 doc/kugar/props.png create mode 100644 doc/kugar/starting.docbook create mode 100644 doc/kugar/template-elements.docbook create mode 100644 doc/kugar/template.docbook create mode 100644 doc/kugar/templatedtd.docbook create mode 100644 doc/kugar/tut_edit_height.png create mode 100644 doc/kugar/tut_empty_report.png create mode 100644 doc/kugar/tut_file_new.png create mode 100644 doc/kugar/tut_rep_complete.png create mode 100644 doc/kugar/tut_rep_generated.png create mode 100644 doc/kugar/tut_rep_look1.png create mode 100644 doc/kugar/tut_rep_look2.png create mode 100644 doc/kugar/tut_set_level.png create mode 100644 doc/kugar/tutorial.docbook create mode 100644 doc/kword/ChooseTempDia.png create mode 100644 doc/kword/Makefile.am create mode 100644 doc/kword/Tut1.png create mode 100644 doc/kword/Tut11a.png create mode 100644 doc/kword/Tut11b.png create mode 100644 doc/kword/Tut13.png create mode 100644 doc/kword/Tut13a.png create mode 100644 doc/kword/Tut14.png create mode 100644 doc/kword/Tut14a.png create mode 100644 doc/kword/Tut14b.png create mode 100644 doc/kword/Tut15.png create mode 100644 doc/kword/Tut15b.png create mode 100644 doc/kword/Tut16.png create mode 100644 doc/kword/Tut18.png create mode 100644 doc/kword/Tut19.png create mode 100644 doc/kword/Tut2.png create mode 100644 doc/kword/Tut21.png create mode 100644 doc/kword/Tut22.png create mode 100644 doc/kword/Tut3.png create mode 100644 doc/kword/Tut4.png create mode 100644 doc/kword/Tut7.png create mode 100644 doc/kword/Tut8.png create mode 100644 doc/kword/a11y.docbook create mode 100644 doc/kword/addentry.png create mode 100644 doc/kword/addrecord.png create mode 100644 doc/kword/alignBlock.png create mode 100644 doc/kword/alignCenter.png create mode 100644 doc/kword/alignLeft.png create mode 100644 doc/kword/alignRight.png create mode 100644 doc/kword/auto1.png create mode 100644 doc/kword/auto2.png create mode 100644 doc/kword/auto3.png create mode 100644 doc/kword/auto4.png create mode 100644 doc/kword/autocompdlg.png create mode 100644 doc/kword/back.png create mode 100644 doc/kword/basic.png create mode 100644 doc/kword/basics.docbook create mode 100644 doc/kword/bbord.png create mode 100644 doc/kword/bdcolorbut.png create mode 100644 doc/kword/bdselbut.png create mode 100644 doc/kword/bdsizebut.png create mode 100644 doc/kword/beginning.png create mode 100644 doc/kword/bkgdcolorbut.png create mode 100644 doc/kword/bold.png create mode 100644 doc/kword/bookmarks.docbook create mode 100644 doc/kword/borbutB.png create mode 100644 doc/kword/borbutL.png create mode 100644 doc/kword/borbutR.png create mode 100644 doc/kword/borbutT.png create mode 100644 doc/kword/bord.png create mode 100644 doc/kword/bordtb.png create mode 100644 doc/kword/bullist.png create mode 100644 doc/kword/cftb.png create mode 100644 doc/kword/chapnumb.docbook create mode 100644 doc/kword/chcase.png create mode 100644 doc/kword/chcolorbut.png create mode 100644 doc/kword/chfontbut.png create mode 100644 doc/kword/chsizebut.png create mode 100644 doc/kword/chstylebut.png create mode 100644 doc/kword/clearright.png create mode 100644 doc/kword/colin.png create mode 100644 doc/kword/colorseldlg.png create mode 100644 doc/kword/colout.png create mode 100644 doc/kword/columns.docbook create mode 100644 doc/kword/ctab.png create mode 100644 doc/kword/ctab2.png create mode 100644 doc/kword/decindbut.png create mode 100644 doc/kword/delentry.png create mode 100644 doc/kword/delrecord.png create mode 100644 doc/kword/doccomments.docbook create mode 100644 doc/kword/doclinks.docbook create mode 100644 doc/kword/docstruct.docbook create mode 100644 doc/kword/docstruct.png create mode 100644 doc/kword/docvariables.docbook create mode 100644 doc/kword/dtab.png create mode 100644 doc/kword/dtab2.png create mode 100644 doc/kword/dtpfmtpg1.png create mode 100644 doc/kword/editcopy.png create mode 100644 doc/kword/editcut.png create mode 100644 doc/kword/editing.docbook create mode 100644 doc/kword/editpaste.png create mode 100644 doc/kword/edittb.png create mode 100644 doc/kword/end.png create mode 100644 doc/kword/enumlist.png create mode 100644 doc/kword/exoffset.png create mode 100644 doc/kword/expression.png create mode 100644 doc/kword/expressions.docbook create mode 100644 doc/kword/exst.png create mode 100644 doc/kword/exul.png create mode 100644 doc/kword/fchardlg.png create mode 100644 doc/kword/fchardlg2.png create mode 100644 doc/kword/fchardlg3.png create mode 100644 doc/kword/fchardlg4.png create mode 100644 doc/kword/fchardlg5.png create mode 100644 doc/kword/filefloppy.png create mode 100644 doc/kword/filenew2.png create mode 100644 doc/kword/fileopen.png create mode 100644 doc/kword/fileprint.png create mode 100644 doc/kword/fileprint2.png create mode 100644 doc/kword/filetb.png create mode 100644 doc/kword/find.png create mode 100644 doc/kword/finddlg.png create mode 100644 doc/kword/finddlg2.png create mode 100644 doc/kword/footcfg1.png create mode 100644 doc/kword/footcfg2.png create mode 100644 doc/kword/footcfg3.png create mode 100644 doc/kword/footend.png create mode 100644 doc/kword/footendnotes.docbook create mode 100644 doc/kword/formabs.png create mode 100644 doc/kword/formatchar.docbook create mode 100644 doc/kword/formatframes.docbook create mode 100644 doc/kword/formatpara.docbook create mode 100644 doc/kword/formbrac.png create mode 100644 doc/kword/formcbrac.png create mode 100644 doc/kword/formfrac.png create mode 100644 doc/kword/formframe1.png create mode 100644 doc/kword/formframe2.png create mode 100644 doc/kword/formframe3.png create mode 100644 doc/kword/formframe4.png create mode 100644 doc/kword/formframe5.png create mode 100644 doc/kword/formframe6.png create mode 100644 doc/kword/forminteg.png create mode 100644 doc/kword/formllind.png create mode 100644 doc/kword/formlrind.png create mode 100644 doc/kword/formmat.png create mode 100644 doc/kword/formover.png create mode 100644 doc/kword/formprod.png create mode 100644 doc/kword/formsbrac.png create mode 100644 doc/kword/formspecchar.png create mode 100644 doc/kword/formsqrt.png create mode 100644 doc/kword/formsum.png create mode 100644 doc/kword/formtb.png create mode 100644 doc/kword/formulas.docbook create mode 100644 doc/kword/formulind.png create mode 100644 doc/kword/formunder.png create mode 100644 doc/kword/formurind.png create mode 100644 doc/kword/forward.png create mode 100644 doc/kword/fpara1.png create mode 100644 doc/kword/fpara2.png create mode 100644 doc/kword/fpara3.png create mode 100644 doc/kword/fpara4.png create mode 100644 doc/kword/fpara5.png create mode 100644 doc/kword/fpicture.png create mode 100644 doc/kword/framers.png create mode 100644 doc/kword/frames.docbook create mode 100644 doc/kword/framestylist.png create mode 100644 doc/kword/fundimentals.docbook create mode 100644 doc/kword/graphics.docbook create mode 100644 doc/kword/headerfooter.docbook create mode 100644 doc/kword/incindbut.png create mode 100644 doc/kword/index.docbook create mode 100644 doc/kword/inscoldlg.png create mode 100644 doc/kword/insdate.png create mode 100644 doc/kword/insertfile.docbook create mode 100644 doc/kword/insgrph1.png create mode 100644 doc/kword/insgrph2.png create mode 100644 doc/kword/insrowdlg.png create mode 100644 doc/kword/instab1.png create mode 100644 doc/kword/instb.png create mode 100644 doc/kword/instime.png create mode 100644 doc/kword/intro1.png create mode 100644 doc/kword/intro2.png create mode 100644 doc/kword/intro3.png create mode 100644 doc/kword/ital.png create mode 100644 doc/kword/joincell.png create mode 100644 doc/kword/kbd-focus-ext.png create mode 100644 doc/kword/kformappcol.png create mode 100644 doc/kword/kformapprow.png create mode 100644 doc/kword/kforminscol.png create mode 100644 doc/kword/kforminsrow.png create mode 100644 doc/kword/kformremcol.png create mode 100644 doc/kword/kformremrow.png create mode 100644 doc/kword/kpart.png create mode 100644 doc/kword/kparts.docbook create mode 100644 doc/kword/landscape.png create mode 100644 doc/kword/larrow.png create mode 100644 doc/kword/lbord.png create mode 100644 doc/kword/linkdlg.png create mode 100644 doc/kword/listdepth1.png create mode 100644 doc/kword/listdepth2.png create mode 100644 doc/kword/listdepth3.png create mode 100644 doc/kword/lists.docbook create mode 100644 doc/kword/ltab.png create mode 100644 doc/kword/ltab2.png create mode 100644 doc/kword/mailmerge.docbook create mode 100644 doc/kword/mbtb.docbook create mode 100644 doc/kword/migrating.docbook create mode 100644 doc/kword/mmerge1.png create mode 100644 doc/kword/mmerge1a.png create mode 100644 doc/kword/mmerge2.png create mode 100644 doc/kword/mmergeab1.png create mode 100644 doc/kword/mmergekspread1.png create mode 100644 doc/kword/mmergesql1.png create mode 100644 doc/kword/mmergesql2.png create mode 100644 doc/kword/mousenav.png create mode 100644 doc/kword/numtxtbut.png create mode 100644 doc/kword/opendlg.png create mode 100644 doc/kword/opt.docbook create mode 100644 doc/kword/opt1.png create mode 100644 doc/kword/opt2.png create mode 100644 doc/kword/opt3.png create mode 100644 doc/kword/opt4.png create mode 100644 doc/kword/opt5.png create mode 100644 doc/kword/opt6.png create mode 100644 doc/kword/optkb.png create mode 100644 doc/kword/optkb2.png create mode 100644 doc/kword/opttb.png create mode 100644 doc/kword/pageformat.docbook create mode 100644 doc/kword/paratb.png create mode 100644 doc/kword/part-kformula.png create mode 100644 doc/kword/part-kspread.png create mode 100644 doc/kword/picture.png create mode 100644 doc/kword/pntdlg.png create mode 100644 doc/kword/pntdlg1.png create mode 100644 doc/kword/portrait.png create mode 100644 doc/kword/rarrow.png create mode 100644 doc/kword/rbord.png create mode 100644 doc/kword/redo.png create mode 100644 doc/kword/repldlg.png create mode 100644 doc/kword/rowin.png create mode 100644 doc/kword/rowout.png create mode 100644 doc/kword/rtab.png create mode 100644 doc/kword/rtab2.png create mode 100644 doc/kword/ruler.png create mode 100644 doc/kword/saturation.png create mode 100644 doc/kword/saved1.png create mode 100644 doc/kword/saved2.png create mode 100644 doc/kword/savedlg.png create mode 100644 doc/kword/savetmpl1.png create mode 100644 doc/kword/scan.png create mode 100644 doc/kword/scan2.png create mode 100644 doc/kword/screen.png create mode 100644 doc/kword/select1.png create mode 100644 doc/kword/spell.png create mode 100644 doc/kword/spelldlg.png create mode 100644 doc/kword/stkout.png create mode 100644 doc/kword/storeprint.docbook create mode 100644 doc/kword/styldlg1.png create mode 100644 doc/kword/styleimport.png create mode 100644 doc/kword/styles.docbook create mode 100644 doc/kword/subscbut.png create mode 100644 doc/kword/sum.png create mode 100644 doc/kword/supscbut.png create mode 100644 doc/kword/table.docbook create mode 100644 doc/kword/tableprop1.png create mode 100644 doc/kword/tableprop2.png create mode 100644 doc/kword/tablestylist.png create mode 100644 doc/kword/tabstops.docbook create mode 100644 doc/kword/tb1.png create mode 100644 doc/kword/tb2.png create mode 100644 doc/kword/tb3.png create mode 100644 doc/kword/tb4.png create mode 100644 doc/kword/tblsty.png create mode 100644 doc/kword/tbord.png create mode 100644 doc/kword/techinfo.docbook create mode 100644 doc/kword/tedittb.png create mode 100644 doc/kword/templatecreation.docbook create mode 100644 doc/kword/textstyex.png create mode 100644 doc/kword/tfcreatebut.png create mode 100644 doc/kword/thesaurus.png create mode 100644 doc/kword/toc.docbook create mode 100644 doc/kword/tts.png create mode 100644 doc/kword/tutorial.docbook create mode 100644 doc/kword/undl.png create mode 100644 doc/kword/undo.png create mode 100644 doc/kword/value.png create mode 100644 doc/kword/viewsize.png create mode 100644 doc/kword/wbw.png create mode 100644 doc/kword/wpfmtpg1.png create mode 100644 doc/kword/wpfmtpg2.png create mode 100644 doc/kword/wpfmtpg3.png create mode 100644 doc/kword/zoom.png create mode 100644 doc/thesaurus/Makefile.am create mode 100644 doc/thesaurus/index.docbook create mode 100644 example/Makefile.am create mode 100644 example/README create mode 100644 example/configure.in.in create mode 100644 example/configure.in.in.koffice create mode 100644 example/example.desktop create mode 100644 example/example.rc create mode 100644 example/example_aboutdata.h create mode 100644 example/example_factory.cc create mode 100644 example/example_factory.h create mode 100644 example/example_part.cc create mode 100644 example/example_part.h create mode 100644 example/example_readonly.rc create mode 100644 example/example_view.cc create mode 100644 example/example_view.h create mode 100644 example/examplepart.desktop create mode 100644 example/main.cc create mode 100644 example/x-vnd.kde.example.desktop create mode 100644 filters/Makefile.am create mode 100644 filters/configure.in.mid create mode 100644 filters/filterstatus.xml create mode 100644 filters/generic_wrapper/Makefile.am create mode 100644 filters/generic_wrapper/README create mode 100644 filters/generic_wrapper/generic_filter.cc create mode 100644 filters/generic_wrapper/generic_filter.desktop create mode 100644 filters/generic_wrapper/generic_filter.h create mode 100644 filters/karbon/Makefile.am create mode 100644 filters/karbon/ai/Makefile.am create mode 100644 filters/karbon/ai/ai3handler.cc create mode 100644 filters/karbon/ai/ai3handler.h create mode 100644 filters/karbon/ai/ai88handler.cc create mode 100644 filters/karbon/ai/ai88handler.h create mode 100644 filters/karbon/ai/aicolor.cc create mode 100644 filters/karbon/ai/aicolor.h create mode 100644 filters/karbon/ai/aielement.cc create mode 100644 filters/karbon/ai/aielement.h create mode 100644 filters/karbon/ai/aiimport.cc create mode 100644 filters/karbon/ai/aiimport.h create mode 100644 filters/karbon/ai/ailexer.cc create mode 100644 filters/karbon/ai/ailexer.h create mode 100644 filters/karbon/ai/aiparserbase.cc create mode 100644 filters/karbon/ai/aiparserbase.h create mode 100644 filters/karbon/ai/karbon_ai_import.desktop create mode 100644 filters/karbon/ai/karbonaiparserbase.cc create mode 100644 filters/karbon/ai/karbonaiparserbase.h create mode 100644 filters/karbon/applixgraphics/Makefile.am create mode 100644 filters/karbon/applixgraphics/applixgraphicimport.cc create mode 100644 filters/karbon/applixgraphics/applixgraphicimport.h create mode 100644 filters/karbon/applixgraphics/kontour_applixgraphic_import.desktop create mode 100644 filters/karbon/applixgraphics/status.html create mode 100644 filters/karbon/eps/Makefile.am create mode 100644 filters/karbon/eps/epsexport.cc create mode 100644 filters/karbon/eps/epsexport.h create mode 100644 filters/karbon/eps/epsexportdlg.cc create mode 100644 filters/karbon/eps/epsexportdlg.h create mode 100644 filters/karbon/eps/epsimport.cc create mode 100644 filters/karbon/eps/epsimport.h create mode 100644 filters/karbon/eps/karbon_eps_export.desktop create mode 100644 filters/karbon/eps/karbon_eps_import.desktop create mode 100644 filters/karbon/eps/karbon_ps_import.desktop create mode 100644 filters/karbon/eps/pscommentlexer.cc create mode 100644 filters/karbon/eps/pscommentlexer.h create mode 100644 filters/karbon/kontour/Makefile.am create mode 100644 filters/karbon/kontour/karbon_kontour_import.desktop create mode 100644 filters/karbon/kontour/kontourimport.cpp create mode 100644 filters/karbon/kontour/kontourimport.h create mode 100644 filters/karbon/msod/Makefile.am create mode 100644 filters/karbon/msod/karbon_msod_import.desktop create mode 100644 filters/karbon/msod/msod.cc create mode 100644 filters/karbon/msod/msod.h create mode 100644 filters/karbon/msod/msodimport.cc create mode 100644 filters/karbon/msod/msodimport.h create mode 100644 filters/karbon/msod/status.html create mode 100644 filters/karbon/oodraw/Makefile.am create mode 100644 filters/karbon/oodraw/karbon_oodraw_import.desktop create mode 100644 filters/karbon/oodraw/oodrawimport.cc create mode 100644 filters/karbon/oodraw/oodrawimport.h create mode 100644 filters/karbon/png/Makefile.am create mode 100644 filters/karbon/png/karbon_png_export.desktop create mode 100644 filters/karbon/png/pngexport.cc create mode 100644 filters/karbon/png/pngexport.h create mode 100644 filters/karbon/svg/Makefile.am create mode 100644 filters/karbon/svg/TODO create mode 100644 filters/karbon/svg/color.h create mode 100644 filters/karbon/svg/karbon_svg_export.desktop create mode 100644 filters/karbon/svg/karbon_svg_import.desktop create mode 100644 filters/karbon/svg/svgexport.cc create mode 100644 filters/karbon/svg/svgexport.h create mode 100644 filters/karbon/svg/svggraphiccontext.h create mode 100644 filters/karbon/svg/svgimport.cc create mode 100644 filters/karbon/svg/svgimport.h create mode 100644 filters/karbon/wmf/Makefile.am create mode 100644 filters/karbon/wmf/karbon_wmf_export.desktop create mode 100644 filters/karbon/wmf/karbon_wmf_import.desktop create mode 100644 filters/karbon/wmf/wmfexport.cc create mode 100644 filters/karbon/wmf/wmfexport.h create mode 100644 filters/karbon/wmf/wmfimport.cc create mode 100644 filters/karbon/wmf/wmfimport.h create mode 100644 filters/karbon/wmf/wmfimportparser.cc create mode 100644 filters/karbon/wmf/wmfimportparser.h create mode 100644 filters/karbon/xaml/Makefile.am create mode 100644 filters/karbon/xaml/color.h create mode 100644 filters/karbon/xaml/karbon_xaml_export.desktop create mode 100644 filters/karbon/xaml/karbon_xaml_import.desktop create mode 100644 filters/karbon/xaml/xamlexport.cc create mode 100644 filters/karbon/xaml/xamlexport.h create mode 100644 filters/karbon/xaml/xamlgraphiccontext.h create mode 100644 filters/karbon/xaml/xamlimport.cc create mode 100644 filters/karbon/xaml/xamlimport.h create mode 100644 filters/karbon/xcf/Makefile.am create mode 100644 filters/karbon/xcf/karbon_xcf_export.desktop create mode 100644 filters/karbon/xcf/xcfexport.cc create mode 100644 filters/karbon/xcf/xcfexport.h create mode 100644 filters/karbon/xfig/karbon_xfig_import.desktop create mode 100644 filters/karbon/xfig/status.html create mode 100644 filters/karbon/xfig/xfigimport.cc create mode 100644 filters/karbon/xfig/xfigimport.h create mode 100644 filters/karbon/xfig/xfigimport_factory.cc create mode 100644 filters/karbon/xfig/xfigimport_factory.h create mode 100644 filters/kchart/Makefile.am create mode 100644 filters/kchart/bmp/Makefile.am create mode 100644 filters/kchart/bmp/bmpexport.cpp create mode 100644 filters/kchart/bmp/bmpexport.h create mode 100644 filters/kchart/bmp/kchart_bmp_export.desktop create mode 100644 filters/kchart/jpeg/Makefile.am create mode 100644 filters/kchart/jpeg/jpegexport.cpp create mode 100644 filters/kchart/jpeg/jpegexport.h create mode 100644 filters/kchart/jpeg/kchart_jpeg_export.desktop create mode 100644 filters/kchart/libimageexport/Makefile.am create mode 100644 filters/kchart/libimageexport/imageexport.cpp create mode 100644 filters/kchart/libimageexport/imageexport.h create mode 100644 filters/kchart/mng/Makefile.am create mode 100644 filters/kchart/mng/kchart_mng_export.desktop create mode 100644 filters/kchart/mng/mngexport.cpp create mode 100644 filters/kchart/mng/mngexport.h create mode 100644 filters/kchart/png/Makefile.am create mode 100644 filters/kchart/png/kchart_png_export.desktop create mode 100644 filters/kchart/png/pngexport.cpp create mode 100644 filters/kchart/png/pngexport.h create mode 100644 filters/kchart/png/status.html create mode 100644 filters/kchart/svg/Makefile.am create mode 100644 filters/kchart/svg/kchart_svg_export.desktop create mode 100644 filters/kchart/svg/status.html create mode 100644 filters/kchart/svg/svgexport.cc create mode 100644 filters/kchart/svg/svgexport.h create mode 100644 filters/kchart/xbm/Makefile.am create mode 100644 filters/kchart/xbm/kchart_xbm_export.desktop create mode 100644 filters/kchart/xbm/xbmexport.cpp create mode 100644 filters/kchart/xbm/xbmexport.h create mode 100644 filters/kchart/xpm/Makefile.am create mode 100644 filters/kchart/xpm/kchart_xpm_export.desktop create mode 100644 filters/kchart/xpm/xpmexport.cpp create mode 100644 filters/kchart/xpm/xpmexport.h create mode 100644 filters/kformula/Makefile.am create mode 100644 filters/kformula/latex/Makefile.am create mode 100644 filters/kformula/latex/kformula_latex_export.desktop create mode 100644 filters/kformula/latex/latexexport.cc create mode 100644 filters/kformula/latex/latexexport.h create mode 100644 filters/kformula/mathml/Makefile.am create mode 100644 filters/kformula/mathml/kformula_mathml_export.desktop create mode 100644 filters/kformula/mathml/kformula_mathml_import.desktop create mode 100644 filters/kformula/mathml/mathmlexport.cc create mode 100644 filters/kformula/mathml/mathmlexport.h create mode 100644 filters/kformula/mathml/mathmlimport.cc create mode 100644 filters/kformula/mathml/mathmlimport.h create mode 100644 filters/kformula/png/Makefile.am create mode 100644 filters/kformula/png/kformula_png_export.desktop create mode 100644 filters/kformula/png/pngexport.cc create mode 100644 filters/kformula/png/pngexport.h create mode 100644 filters/kformula/png/pngexportdia.cc create mode 100644 filters/kformula/png/pngexportdia.h create mode 100644 filters/kformula/svg/Makefile.am create mode 100644 filters/kformula/svg/kformula_svg_export.desktop create mode 100644 filters/kformula/svg/svgexport.cc create mode 100644 filters/kformula/svg/svgexport.h create mode 100644 filters/kivio/Makefile.am create mode 100644 filters/kivio/imageexport/Makefile.am create mode 100644 filters/kivio/imageexport/kivio_image_export.desktop create mode 100644 filters/kivio/imageexport/kivio_imageexport.cpp create mode 100644 filters/kivio/imageexport/kivio_imageexport.h create mode 100644 filters/kivio/imageexport/kivio_imageexportdialog.cpp create mode 100644 filters/kivio/imageexport/kivio_imageexportdialog.h create mode 100644 filters/kivio/imageexport/kivio_imageexportwidget.ui create mode 100644 filters/kpresenter/Makefile.am create mode 100644 filters/kpresenter/bmp/Makefile.am create mode 100644 filters/kpresenter/bmp/bmpexport.cpp create mode 100644 filters/kpresenter/bmp/bmpexport.h create mode 100644 filters/kpresenter/bmp/kpresenter_bmp_export.desktop create mode 100644 filters/kpresenter/jpeg/Makefile.am create mode 100644 filters/kpresenter/jpeg/jpegexport.cpp create mode 100644 filters/kpresenter/jpeg/jpegexport.h create mode 100644 filters/kpresenter/jpeg/kpresenter_jpeg_export.desktop create mode 100644 filters/kpresenter/kword/Makefile.am create mode 100644 filters/kpresenter/kword/kprkword.cc create mode 100644 filters/kpresenter/kword/kprkword.desktop create mode 100644 filters/kpresenter/kword/kprkword.h create mode 100644 filters/kpresenter/kword/status.html create mode 100644 filters/kpresenter/libimageexport/Makefile.am create mode 100644 filters/kpresenter/libimageexport/imageexport.cpp create mode 100644 filters/kpresenter/libimageexport/imageexport.h create mode 100644 filters/kpresenter/magicpoint/Makefile.am create mode 100644 filters/kpresenter/magicpoint/kpresenter_magicpoint_import.desktop create mode 100755 filters/kpresenter/magicpoint/mgp2kpr.py create mode 100644 filters/kpresenter/mng/Makefile.am create mode 100644 filters/kpresenter/mng/kpresenter_mng_export.desktop create mode 100644 filters/kpresenter/mng/mngexport.cpp create mode 100644 filters/kpresenter/mng/mngexport.h create mode 100644 filters/kpresenter/ooimpress/Makefile.am create mode 100644 filters/kpresenter/ooimpress/kpresenter_ooimpress_export.desktop create mode 100644 filters/kpresenter/ooimpress/kpresenter_ooimpress_import.desktop create mode 100644 filters/kpresenter/ooimpress/ooimpressexport.cc create mode 100644 filters/kpresenter/ooimpress/ooimpressexport.h create mode 100644 filters/kpresenter/ooimpress/ooimpressimport.cc create mode 100644 filters/kpresenter/ooimpress/ooimpressimport.h create mode 100644 filters/kpresenter/ooimpress/status.html create mode 100644 filters/kpresenter/ooimpress/stylefactory.cc create mode 100644 filters/kpresenter/ooimpress/stylefactory.h create mode 100644 filters/kpresenter/png/Makefile.am create mode 100644 filters/kpresenter/png/kpresenter_png_export.desktop create mode 100644 filters/kpresenter/png/pngexport.cpp create mode 100644 filters/kpresenter/png/pngexport.h create mode 100644 filters/kpresenter/powerpoint/Makefile.am create mode 100644 filters/kpresenter/powerpoint/import/Makefile.am create mode 100644 filters/kpresenter/powerpoint/import/kpresenter_powerpoint_import.desktop create mode 100644 filters/kpresenter/powerpoint/import/powerpointimport.cc create mode 100644 filters/kpresenter/powerpoint/import/powerpointimport.h create mode 100644 filters/kpresenter/powerpoint/libppt/Makefile.am create mode 100644 filters/kpresenter/powerpoint/libppt/libppt.h create mode 100644 filters/kpresenter/powerpoint/libppt/objects.cpp create mode 100644 filters/kpresenter/powerpoint/libppt/objects.h create mode 100644 filters/kpresenter/powerpoint/libppt/pole.cpp create mode 100644 filters/kpresenter/powerpoint/libppt/pole.h create mode 100644 filters/kpresenter/powerpoint/libppt/powerpoint.cpp create mode 100644 filters/kpresenter/powerpoint/libppt/powerpoint.h create mode 100644 filters/kpresenter/powerpoint/libppt/presentation.cpp create mode 100644 filters/kpresenter/powerpoint/libppt/presentation.h create mode 100644 filters/kpresenter/powerpoint/libppt/slide.cpp create mode 100644 filters/kpresenter/powerpoint/libppt/slide.h create mode 100644 filters/kpresenter/powerpoint/libppt/testppt.cpp create mode 100644 filters/kpresenter/powerpoint/libppt/ustring.cpp create mode 100644 filters/kpresenter/powerpoint/libppt/ustring.h create mode 100644 filters/kpresenter/svg/Makefile.am create mode 100644 filters/kpresenter/svg/kpresenter_svg_export.desktop create mode 100644 filters/kpresenter/svg/svgexport.cc create mode 100644 filters/kpresenter/svg/svgexport.h create mode 100644 filters/kpresenter/xbm/Makefile.am create mode 100644 filters/kpresenter/xbm/kpresenter_xbm_export.desktop create mode 100644 filters/kpresenter/xbm/xbmexport.cpp create mode 100644 filters/kpresenter/xbm/xbmexport.h create mode 100644 filters/kpresenter/xpm/Makefile.am create mode 100644 filters/kpresenter/xpm/kpresenter_xpm_export.desktop create mode 100644 filters/kpresenter/xpm/xpmexport.cpp create mode 100644 filters/kpresenter/xpm/xpmexport.h create mode 100644 filters/krita/Makefile.am create mode 100644 filters/krita/configure.in.in create mode 100644 filters/krita/gmagick/Makefile.am create mode 100644 filters/krita/gmagick/configure.in.bot create mode 100644 filters/krita/gmagick/kis_image_magick_converter.cc create mode 100644 filters/krita/gmagick/kis_image_magick_converter.h create mode 100644 filters/krita/gmagick/krita_magick.desktop create mode 100644 filters/krita/gmagick/krita_magick_export.desktop create mode 100644 filters/krita/gmagick/krita_magick_import.desktop create mode 100644 filters/krita/gmagick/magickexport.cpp create mode 100644 filters/krita/gmagick/magickexport.h create mode 100644 filters/krita/gmagick/magickimport.cpp create mode 100644 filters/krita/gmagick/magickimport.h create mode 100644 filters/krita/jpeg/Makefile.am create mode 100644 filters/krita/jpeg/configure.in.bot create mode 100644 filters/krita/jpeg/iccjpeg.c create mode 100644 filters/krita/jpeg/iccjpeg.h create mode 100644 filters/krita/jpeg/kis_jpeg_converter.cc create mode 100644 filters/krita/jpeg/kis_jpeg_converter.h create mode 100644 filters/krita/jpeg/kis_jpeg_export.cc create mode 100644 filters/krita/jpeg/kis_jpeg_export.h create mode 100644 filters/krita/jpeg/kis_jpeg_import.cc create mode 100644 filters/krita/jpeg/kis_jpeg_import.h create mode 100644 filters/krita/jpeg/kis_wdg_options_jpeg.ui create mode 100644 filters/krita/jpeg/krita_jpeg.desktop create mode 100644 filters/krita/jpeg/krita_jpeg_export.desktop create mode 100644 filters/krita/jpeg/krita_jpeg_import.desktop create mode 100644 filters/krita/libkisexif/Makefile.am create mode 100644 filters/krita/libkisexif/kis_exif_io.cpp create mode 100644 filters/krita/libkisexif/kis_exif_io.h create mode 100644 filters/krita/magick/Makefile.am create mode 100644 filters/krita/magick/configure.in.bot create mode 100644 filters/krita/magick/kis_image_magick_converter.cc create mode 100644 filters/krita/magick/kis_image_magick_converter.h create mode 100644 filters/krita/magick/krita_magick.desktop create mode 100644 filters/krita/magick/krita_magick_export.desktop create mode 100644 filters/krita/magick/krita_magick_import.desktop create mode 100644 filters/krita/magick/magickexport.cpp create mode 100644 filters/krita/magick/magickexport.h create mode 100644 filters/krita/magick/magickimport.cpp create mode 100644 filters/krita/magick/magickimport.h create mode 100644 filters/krita/openexr/Makefile.am create mode 100644 filters/krita/openexr/configure.in.bot create mode 100644 filters/krita/openexr/kis_openexr_export.cpp create mode 100644 filters/krita/openexr/kis_openexr_export.h create mode 100644 filters/krita/openexr/kis_openexr_import.cpp create mode 100644 filters/krita/openexr/kis_openexr_import.h create mode 100644 filters/krita/openexr/krita_openexr.desktop create mode 100644 filters/krita/openexr/krita_openexr_export.desktop create mode 100644 filters/krita/openexr/krita_openexr_import.desktop create mode 100644 filters/krita/pdf/Makefile.am create mode 100644 filters/krita/pdf/configure.in.bot create mode 100644 filters/krita/pdf/configure.in.in create mode 100644 filters/krita/pdf/kis_pdf_import.cpp create mode 100644 filters/krita/pdf/kis_pdf_import.h create mode 100644 filters/krita/pdf/kis_pdf_import_widget.cpp create mode 100644 filters/krita/pdf/kis_pdf_import_widget.h create mode 100644 filters/krita/pdf/krita_pdf.desktop create mode 100644 filters/krita/pdf/krita_pdf_import.desktop create mode 100644 filters/krita/pdf/pdfimportwidgetbase.ui create mode 100644 filters/krita/png/Makefile.am create mode 100644 filters/krita/png/configure.in.bot create mode 100644 filters/krita/png/kis_png_converter.cc create mode 100644 filters/krita/png/kis_png_converter.h create mode 100644 filters/krita/png/kis_png_export.cc create mode 100644 filters/krita/png/kis_png_export.h create mode 100644 filters/krita/png/kis_png_import.cc create mode 100644 filters/krita/png/kis_png_import.h create mode 100644 filters/krita/png/kis_wdg_options_png.ui create mode 100644 filters/krita/png/krita_png.desktop create mode 100644 filters/krita/png/krita_png_export.desktop create mode 100644 filters/krita/png/krita_png_import.desktop create mode 100644 filters/krita/raw/Makefile.am create mode 100644 filters/krita/raw/dcraw.1 create mode 100644 filters/krita/raw/dcraw.c create mode 100644 filters/krita/raw/kis_raw_import.cpp create mode 100644 filters/krita/raw/kis_raw_import.h create mode 100644 filters/krita/raw/krita_raw.desktop create mode 100644 filters/krita/raw/krita_raw_import.desktop create mode 100644 filters/krita/raw/wdgrawimport.ui create mode 100644 filters/krita/tiff/Makefile.am create mode 100644 filters/krita/tiff/configure.in.bot create mode 100644 filters/krita/tiff/kis_dlg_options_tiff.cpp create mode 100644 filters/krita/tiff/kis_dlg_options_tiff.h create mode 100644 filters/krita/tiff/kis_tiff_converter.cc create mode 100644 filters/krita/tiff/kis_tiff_converter.h create mode 100644 filters/krita/tiff/kis_tiff_export.cc create mode 100644 filters/krita/tiff/kis_tiff_export.h create mode 100644 filters/krita/tiff/kis_tiff_import.cc create mode 100644 filters/krita/tiff/kis_tiff_import.h create mode 100644 filters/krita/tiff/kis_tiff_reader.cc create mode 100644 filters/krita/tiff/kis_tiff_reader.h create mode 100644 filters/krita/tiff/kis_tiff_stream.cc create mode 100644 filters/krita/tiff/kis_tiff_stream.h create mode 100644 filters/krita/tiff/kis_tiff_writer_visitor.cpp create mode 100644 filters/krita/tiff/kis_tiff_writer_visitor.h create mode 100644 filters/krita/tiff/kis_tiff_ycbcr_reader.cc create mode 100644 filters/krita/tiff/kis_tiff_ycbcr_reader.h create mode 100644 filters/krita/tiff/kis_wdg_options_tiff.ui create mode 100644 filters/krita/tiff/kis_ycbcr_colorspace.h create mode 100644 filters/krita/tiff/krita_tiff.desktop create mode 100644 filters/krita/tiff/krita_tiff_export.desktop create mode 100644 filters/krita/tiff/krita_tiff_import.desktop create mode 100644 filters/krita/xcf/Makefile.am create mode 100644 filters/krita/xcf/krita_xcf_export.desktop create mode 100644 filters/krita/xcf/krita_xcf_import.desktop create mode 100644 filters/krita/xcf/xcf/README create mode 100644 filters/krita/xcf/xcf/xcf-load.cc create mode 100644 filters/krita/xcf/xcf/xcf-load.h create mode 100644 filters/krita/xcf/xcf/xcf-private.h create mode 100644 filters/krita/xcf/xcf/xcf-read.cc create mode 100644 filters/krita/xcf/xcf/xcf-read.h create mode 100644 filters/krita/xcf/xcf/xcf-save.cc create mode 100644 filters/krita/xcf/xcf/xcf-save.h create mode 100644 filters/krita/xcf/xcf/xcf-seek.cc create mode 100644 filters/krita/xcf/xcf/xcf-seek.h create mode 100644 filters/krita/xcf/xcf/xcf-write.cc create mode 100644 filters/krita/xcf/xcf/xcf-write.h create mode 100644 filters/krita/xcf/xcfexport.cpp create mode 100644 filters/krita/xcf/xcfexport.h create mode 100644 filters/krita/xcf/xcfimport.cpp create mode 100644 filters/krita/xcf/xcfimport.h create mode 100644 filters/kspread/Makefile.am create mode 100644 filters/kspread/applixspread/Makefile.am create mode 100644 filters/kspread/applixspread/applixspreadimport.cc create mode 100644 filters/kspread/applixspread/applixspreadimport.h create mode 100644 filters/kspread/applixspread/kspread_applixspread_import.desktop create mode 100644 filters/kspread/applixspread/status.html create mode 100644 filters/kspread/csv/DESIGN create mode 100644 filters/kspread/csv/Makefile.am create mode 100644 filters/kspread/csv/README create mode 100644 filters/kspread/csv/TODO create mode 100644 filters/kspread/csv/csvdialog.cpp create mode 100644 filters/kspread/csv/csvdialog.h create mode 100644 filters/kspread/csv/csvexport.cc create mode 100644 filters/kspread/csv/csvexport.h create mode 100644 filters/kspread/csv/csvexportdialog.cpp create mode 100644 filters/kspread/csv/csvexportdialog.h create mode 100644 filters/kspread/csv/csvimport.cc create mode 100644 filters/kspread/csv/csvimport.h create mode 100644 filters/kspread/csv/dialogui.ui create mode 100644 filters/kspread/csv/exportdialogui.ui create mode 100644 filters/kspread/csv/kspread_csv_export.desktop create mode 100644 filters/kspread/csv/kspread_csv_import.desktop create mode 100644 filters/kspread/csv/status.html create mode 100644 filters/kspread/csv/xmltree.cc create mode 100644 filters/kspread/csv/xmltree.h create mode 100644 filters/kspread/dbase/Makefile.am create mode 100644 filters/kspread/dbase/dbase.cpp create mode 100644 filters/kspread/dbase/dbase.h create mode 100644 filters/kspread/dbase/dbaseimport.cc create mode 100644 filters/kspread/dbase/dbaseimport.h create mode 100644 filters/kspread/dbase/kspread_dbase_import.desktop create mode 100644 filters/kspread/dbase/status.html create mode 100755 filters/kspread/dbase/test/birth.dbf create mode 100644 filters/kspread/dbase/test/browser.dbf create mode 100755 filters/kspread/dbase/test/stability.dbf create mode 100644 filters/kspread/excel/Makefile.am create mode 100644 filters/kspread/excel/excelexport.cc create mode 100644 filters/kspread/excel/excelexport.h create mode 100644 filters/kspread/excel/import/Makefile.am create mode 100644 filters/kspread/excel/import/README create mode 100644 filters/kspread/excel/import/excelimport.cc create mode 100644 filters/kspread/excel/import/excelimport.h create mode 100644 filters/kspread/excel/import/kspread_excel_import.desktop create mode 100644 filters/kspread/excel/kspread_excel_export.desktop create mode 100644 filters/kspread/excel/sidewinder/Makefile.am create mode 100644 filters/kspread/excel/sidewinder/README.Sidewinder create mode 100644 filters/kspread/excel/sidewinder/cell.cpp create mode 100644 filters/kspread/excel/sidewinder/cell.h create mode 100644 filters/kspread/excel/sidewinder/excel.cpp create mode 100644 filters/kspread/excel/sidewinder/excel.h create mode 100644 filters/kspread/excel/sidewinder/format.cpp create mode 100644 filters/kspread/excel/sidewinder/format.h create mode 100644 filters/kspread/excel/sidewinder/pole.cpp create mode 100644 filters/kspread/excel/sidewinder/pole.h create mode 100644 filters/kspread/excel/sidewinder/sheet.cpp create mode 100644 filters/kspread/excel/sidewinder/sheet.h create mode 100644 filters/kspread/excel/sidewinder/swinder.h create mode 100644 filters/kspread/excel/sidewinder/ustring.cpp create mode 100644 filters/kspread/excel/sidewinder/ustring.h create mode 100644 filters/kspread/excel/sidewinder/value.cpp create mode 100644 filters/kspread/excel/sidewinder/value.h create mode 100644 filters/kspread/excel/sidewinder/workbook.cpp create mode 100644 filters/kspread/excel/sidewinder/workbook.h create mode 100644 filters/kspread/gnumeric/Makefile.am create mode 100644 filters/kspread/gnumeric/README create mode 100644 filters/kspread/gnumeric/gnumeric.xsd create mode 100644 filters/kspread/gnumeric/gnumericexport.cc create mode 100644 filters/kspread/gnumeric/gnumericexport.h create mode 100644 filters/kspread/gnumeric/gnumericimport.cc create mode 100644 filters/kspread/gnumeric/gnumericimport.h create mode 100644 filters/kspread/gnumeric/kspread_gnumeric_export.desktop create mode 100644 filters/kspread/gnumeric/kspread_gnumeric_import.desktop create mode 100644 filters/kspread/gnumeric/status.html create mode 100644 filters/kspread/html/CHANGELOG create mode 100644 filters/kspread/html/Makefile.am create mode 100644 filters/kspread/html/exportdialog.cc create mode 100644 filters/kspread/html/exportdialog.h create mode 100644 filters/kspread/html/exportwidget.ui create mode 100644 filters/kspread/html/htmlexport.cc create mode 100644 filters/kspread/html/htmlexport.h create mode 100644 filters/kspread/html/kspread_html_export.desktop create mode 100644 filters/kspread/html/status.html create mode 100644 filters/kspread/kexi/Makefile.am create mode 100644 filters/kspread/kexi/kspread_kexi_import.desktop create mode 100644 filters/kspread/kexi/kspread_kexiimport.cc create mode 100644 filters/kspread/kexi/kspread_kexiimport.h create mode 100644 filters/kspread/kexi/kspread_kexiimportdialog.cc create mode 100644 filters/kspread/kexi/kspread_kexiimportdialog.h create mode 100644 filters/kspread/kexi/kspread_kexiimportdialogbase.ui create mode 100644 filters/kspread/latex/BUGS create mode 100644 filters/kspread/latex/Makefile.am create mode 100644 filters/kspread/latex/TODO create mode 100644 filters/kspread/latex/export/Changelog create mode 100644 filters/kspread/latex/export/Makefile.am create mode 100644 filters/kspread/latex/export/cell.cc create mode 100644 filters/kspread/latex/export/cell.h create mode 100644 filters/kspread/latex/export/column.cc create mode 100644 filters/kspread/latex/export/column.h create mode 100644 filters/kspread/latex/export/config.cc create mode 100644 filters/kspread/latex/export/config.h create mode 100644 filters/kspread/latex/export/document.cc create mode 100644 filters/kspread/latex/export/document.h create mode 100644 filters/kspread/latex/export/fileheader.cc create mode 100644 filters/kspread/latex/export/fileheader.h create mode 100644 filters/kspread/latex/export/format.cc create mode 100644 filters/kspread/latex/export/format.h create mode 100644 filters/kspread/latex/export/formula.cc create mode 100644 filters/kspread/latex/export/formula.h create mode 100644 filters/kspread/latex/export/kspread_latex_export.desktop create mode 100644 filters/kspread/latex/export/kspreadlatexexportdiaImpl.cc create mode 100644 filters/kspread/latex/export/kspreadlatexexportdiaImpl.h create mode 100644 filters/kspread/latex/export/latexexport.cc create mode 100644 filters/kspread/latex/export/latexexport.h create mode 100644 filters/kspread/latex/export/latexexportIface.cc create mode 100644 filters/kspread/latex/export/latexexportIface.h create mode 100644 filters/kspread/latex/export/latexexportdia.ui create mode 100644 filters/kspread/latex/export/map.cc create mode 100644 filters/kspread/latex/export/map.h create mode 100644 filters/kspread/latex/export/pen.cc create mode 100644 filters/kspread/latex/export/pen.h create mode 100644 filters/kspread/latex/export/row.cc create mode 100644 filters/kspread/latex/export/row.h create mode 100644 filters/kspread/latex/export/spreadsheet.cc create mode 100644 filters/kspread/latex/export/spreadsheet.h create mode 100644 filters/kspread/latex/export/table.cc create mode 100644 filters/kspread/latex/export/table.h create mode 100644 filters/kspread/latex/export/xmlparser.cc create mode 100644 filters/kspread/latex/export/xmlparser.h create mode 100644 filters/kspread/latex/status.html create mode 100644 filters/kspread/libkspreadexport/KSpreadBaseWorker.cc create mode 100644 filters/kspread/libkspreadexport/KSpreadBaseWorker.h create mode 100644 filters/kspread/libkspreadexport/KSpreadLeader.cc create mode 100644 filters/kspread/libkspreadexport/KSpreadLeader.h create mode 100644 filters/kspread/libkspreadexport/Makefile.am create mode 100644 filters/kspread/opencalc/Makefile.am create mode 100644 filters/kspread/opencalc/kspread_opencalc_export.desktop create mode 100644 filters/kspread/opencalc/kspread_opencalc_import.desktop create mode 100644 filters/kspread/opencalc/opencalcexport.cc create mode 100644 filters/kspread/opencalc/opencalcexport.h create mode 100644 filters/kspread/opencalc/opencalcimport.cc create mode 100644 filters/kspread/opencalc/opencalcimport.h create mode 100644 filters/kspread/opencalc/opencalcstyleexport.cc create mode 100644 filters/kspread/opencalc/opencalcstyleexport.h create mode 100644 filters/kspread/opencalc/status.html create mode 100644 filters/kspread/qpro/Makefile.am create mode 100644 filters/kspread/qpro/kspread_qpro_import.desktop create mode 100644 filters/kspread/qpro/libqpro/AUTHORS create mode 100644 filters/kspread/qpro/libqpro/COPYING create mode 100644 filters/kspread/qpro/libqpro/ChangeLog create mode 100644 filters/kspread/qpro/libqpro/INSTALL create mode 100644 filters/kspread/qpro/libqpro/Makefile.am create mode 100644 filters/kspread/qpro/libqpro/NEWS create mode 100644 filters/kspread/qpro/libqpro/README create mode 100644 filters/kspread/qpro/libqpro/TODO create mode 100644 filters/kspread/qpro/libqpro/libqpro.lsm create mode 100644 filters/kspread/qpro/libqpro/qpro/Makefile.am create mode 100644 filters/kspread/qpro/libqpro/qpro/common.h create mode 100644 filters/kspread/qpro/libqpro/qpro/formula.h create mode 100644 filters/kspread/qpro/libqpro/qpro/record.h create mode 100644 filters/kspread/qpro/libqpro/qpro/record_factory.h create mode 100644 filters/kspread/qpro/libqpro/qpro/stream.h create mode 100644 filters/kspread/qpro/libqpro/qpro/tablenames.h create mode 100644 filters/kspread/qpro/libqpro/src/Makefile.am create mode 100644 filters/kspread/qpro/libqpro/src/formula.cc create mode 100644 filters/kspread/qpro/libqpro/src/record.cc create mode 100644 filters/kspread/qpro/libqpro/src/record_factory.cc create mode 100644 filters/kspread/qpro/libqpro/src/stream.cc create mode 100644 filters/kspread/qpro/libqpro/src/tablenames.cc create mode 100644 filters/kspread/qpro/qproformula.cc create mode 100644 filters/kspread/qpro/qproformula.h create mode 100644 filters/kspread/qpro/qproimport.cc create mode 100644 filters/kspread/qpro/qproimport.h create mode 100644 filters/kspread/qpro/status.html create mode 100644 filters/kugar/Makefile.am create mode 100644 filters/kugar/kugarnop/Makefile.am create mode 100644 filters/kugar/kugarnop/kugar_kugar_import.desktop create mode 100644 filters/kugar/kugarnop/kugarnopimport.cpp create mode 100644 filters/kugar/kugarnop/kugarnopimport.h create mode 100644 filters/kword/Makefile.am create mode 100644 filters/kword/abiword/CHANGES create mode 100644 filters/kword/abiword/FileFormats.html create mode 100644 filters/kword/abiword/ImportField.cc create mode 100644 filters/kword/abiword/ImportField.h create mode 100644 filters/kword/abiword/ImportFormatting.cc create mode 100644 filters/kword/abiword/ImportFormatting.h create mode 100644 filters/kword/abiword/ImportHelpers.cc create mode 100644 filters/kword/abiword/ImportHelpers.h create mode 100644 filters/kword/abiword/ImportStyle.cc create mode 100644 filters/kword/abiword/ImportStyle.h create mode 100644 filters/kword/abiword/Makefile.am create mode 100644 filters/kword/abiword/NOTES create mode 100644 filters/kword/abiword/TODO create mode 100644 filters/kword/abiword/abiwordexport.cc create mode 100644 filters/kword/abiword/abiwordexport.h create mode 100644 filters/kword/abiword/abiwordimport.cc create mode 100644 filters/kword/abiword/abiwordimport.h create mode 100644 filters/kword/abiword/kword_abiword_export.desktop create mode 100644 filters/kword/abiword/kword_abiword_import.desktop create mode 100644 filters/kword/abiword/status.html create mode 100644 filters/kword/amipro/FileFormat.txt create mode 100644 filters/kword/amipro/Makefile.am create mode 100644 filters/kword/amipro/amiproexport.cc create mode 100644 filters/kword/amipro/amiproexport.h create mode 100644 filters/kword/amipro/amiproimport.cc create mode 100644 filters/kword/amipro/amiproimport.h create mode 100644 filters/kword/amipro/amiproparser.cpp create mode 100644 filters/kword/amipro/amiproparser.h create mode 100644 filters/kword/amipro/kword_amipro_export.desktop create mode 100644 filters/kword/amipro/kword_amipro_import.desktop create mode 100644 filters/kword/amipro/status.html create mode 100644 filters/kword/amipro/test/README create mode 100755 filters/kword/amipro/test/align.sam create mode 100755 filters/kword/amipro/test/format.sam create mode 100755 filters/kword/amipro/test/plain.sam create mode 100644 filters/kword/amipro/test/textfrm.sam create mode 100644 filters/kword/amipro/test/umlaut.sam create mode 100644 filters/kword/applixword/Makefile.am create mode 100644 filters/kword/applixword/applixwordimport.cc create mode 100644 filters/kword/applixword/applixwordimport.h create mode 100644 filters/kword/applixword/kword_applixword_import.desktop create mode 100644 filters/kword/applixword/status.html create mode 100644 filters/kword/ascii/ExportDialog.cc create mode 100644 filters/kword/ascii/ExportDialog.h create mode 100644 filters/kword/ascii/ExportDialogUI.ui create mode 100644 filters/kword/ascii/ImportDialog.cc create mode 100644 filters/kword/ascii/ImportDialog.h create mode 100644 filters/kword/ascii/ImportDialogUI.ui create mode 100644 filters/kword/ascii/Makefile.am create mode 100644 filters/kword/ascii/TODO create mode 100644 filters/kword/ascii/asciiexport.cc create mode 100644 filters/kword/ascii/asciiexport.h create mode 100644 filters/kword/ascii/asciiimport.cc create mode 100644 filters/kword/ascii/asciiimport.h create mode 100644 filters/kword/ascii/kword_ascii_export.desktop create mode 100644 filters/kword/ascii/kword_ascii_import.desktop create mode 100644 filters/kword/ascii/status.html create mode 100644 filters/kword/docbook/Makefile.am create mode 100644 filters/kword/docbook/docbookexport.cc create mode 100644 filters/kword/docbook/docbookexport.h create mode 100644 filters/kword/docbook/kword_docbook_export.desktop create mode 100644 filters/kword/docbook/status.html create mode 100644 filters/kword/hancomword/Makefile.am create mode 100644 filters/kword/hancomword/hancomwordimport.cpp create mode 100644 filters/kword/hancomword/hancomwordimport.h create mode 100644 filters/kword/hancomword/kword_hancomword_import.desktop create mode 100644 filters/kword/hancomword/pole.cpp create mode 100644 filters/kword/hancomword/pole.h create mode 100644 filters/kword/html/Makefile.am create mode 100644 filters/kword/html/export/CHANGELOG create mode 100644 filters/kword/html/export/ExportBasic.cc create mode 100644 filters/kword/html/export/ExportBasic.h create mode 100644 filters/kword/html/export/ExportCss.cc create mode 100644 filters/kword/html/export/ExportCss.h create mode 100644 filters/kword/html/export/ExportDialog.cc create mode 100644 filters/kword/html/export/ExportDialog.h create mode 100644 filters/kword/html/export/ExportDialogUI.ui create mode 100644 filters/kword/html/export/ExportDocStruct.cc create mode 100644 filters/kword/html/export/ExportDocStruct.h create mode 100644 filters/kword/html/export/ExportFilter.cc create mode 100644 filters/kword/html/export/ExportFilter.h create mode 100644 filters/kword/html/export/Makefile.am create mode 100644 filters/kword/html/export/htmlexport.cc create mode 100644 filters/kword/html/export/htmlexport.h create mode 100644 filters/kword/html/export/kword_html_export.desktop create mode 100644 filters/kword/html/import/Makefile.am create mode 100644 filters/kword/html/import/htmlimport.cpp create mode 100644 filters/kword/html/import/htmlimport.h create mode 100644 filters/kword/html/import/khtmlreader.cpp create mode 100644 filters/kword/html/import/khtmlreader.h create mode 100644 filters/kword/html/import/kwdwriter.cpp create mode 100644 filters/kword/html/import/kwdwriter.h create mode 100644 filters/kword/html/import/kword_html_import.desktop create mode 100644 filters/kword/html/import/test/bigtest.htm create mode 100644 filters/kword/html/import/test/brtest.htm create mode 100644 filters/kword/html/import/test/colortest.htm create mode 100644 filters/kword/html/import/test/heading.htm create mode 100644 filters/kword/html/import/test/heading2.htm create mode 100644 filters/kword/html/import/test/headingbelowultest.htm create mode 100644 filters/kword/html/import/test/newlinesbetween1and2test.htm create mode 100644 filters/kword/html/import/test/newlinetest.htm create mode 100644 filters/kword/html/import/test/pretext.htm create mode 100644 filters/kword/html/import/test/stylealigninsertslinefeed.htm create mode 100644 filters/kword/html/import/test/stylefontsizetest.htm create mode 100644 filters/kword/html/import/test/styletextaligncentertest.htm create mode 100644 filters/kword/html/import/test/ullevel.htm create mode 100644 filters/kword/html/import/test/ullevel2.htm create mode 100644 filters/kword/html/import/test/ultest.htm create mode 100644 filters/kword/html/import/test/ultext.htm create mode 100644 filters/kword/html/import/test/ultext2.htm create mode 100644 filters/kword/html/status.html create mode 100644 filters/kword/kword1.3/Makefile.am create mode 100644 filters/kword/kword1.3/import/CHANGELOG create mode 100644 filters/kword/kword1.3/import/Makefile.am create mode 100644 filters/kword/kword1.3/import/README create mode 100644 filters/kword/kword1.3/import/TESTFILES.xml create mode 100644 filters/kword/kword1.3/import/TODO create mode 100644 filters/kword/kword1.3/import/kword13document.cpp create mode 100644 filters/kword/kword1.3/import/kword13document.h create mode 100644 filters/kword/kword1.3/import/kword13format.cpp create mode 100644 filters/kword/kword1.3/import/kword13format.h create mode 100644 filters/kword/kword1.3/import/kword13formatone.cpp create mode 100644 filters/kword/kword1.3/import/kword13formatone.h create mode 100644 filters/kword/kword1.3/import/kword13formatother.cpp create mode 100644 filters/kword/kword1.3/import/kword13formatother.h create mode 100644 filters/kword/kword1.3/import/kword13frameset.cpp create mode 100644 filters/kword/kword1.3/import/kword13frameset.h create mode 100644 filters/kword/kword1.3/import/kword13import.cpp create mode 100644 filters/kword/kword1.3/import/kword13import.h create mode 100644 filters/kword/kword1.3/import/kword13layout.cpp create mode 100644 filters/kword/kword1.3/import/kword13layout.h create mode 100644 filters/kword/kword1.3/import/kword13oasisgenerator.cpp create mode 100644 filters/kword/kword1.3/import/kword13oasisgenerator.h create mode 100644 filters/kword/kword1.3/import/kword13paragraph.cpp create mode 100644 filters/kword/kword1.3/import/kword13paragraph.h create mode 100644 filters/kword/kword1.3/import/kword13parser.cpp create mode 100644 filters/kword/kword1.3/import/kword13parser.h create mode 100644 filters/kword/kword1.3/import/kword13picture.cpp create mode 100644 filters/kword/kword1.3/import/kword13picture.h create mode 100644 filters/kword/kword1.3/import/kword13postparsing.cpp create mode 100644 filters/kword/kword1.3/import/kword13postparsing.h create mode 100644 filters/kword/kword1.3/import/kword13utils.cpp create mode 100644 filters/kword/kword1.3/import/kword13utils.h create mode 100644 filters/kword/kword1.3/import/kword_kword1dot3_import.desktop create mode 100644 filters/kword/kword1.3/import/uninstall.desktop create mode 100644 filters/kword/latex/BUGS create mode 100644 filters/kword/latex/Makefile.am create mode 100644 filters/kword/latex/TODO create mode 100644 filters/kword/latex/export/Changelog create mode 100644 filters/kword/latex/export/MARKUPS create mode 100644 filters/kword/latex/export/Makefile.am create mode 100644 filters/kword/latex/export/anchor.cc create mode 100644 filters/kword/latex/export/anchor.h create mode 100644 filters/kword/latex/export/border.h create mode 100644 filters/kword/latex/export/config.cc create mode 100644 filters/kword/latex/export/config.h create mode 100644 filters/kword/latex/export/document.cc create mode 100644 filters/kword/latex/export/document.h create mode 100644 filters/kword/latex/export/element.cc create mode 100644 filters/kword/latex/export/element.h create mode 100644 filters/kword/latex/export/fileheader.cc create mode 100644 filters/kword/latex/export/fileheader.h create mode 100644 filters/kword/latex/export/footnote.cc create mode 100644 filters/kword/latex/export/footnote.h create mode 100644 filters/kword/latex/export/format.cc create mode 100644 filters/kword/latex/export/format.h create mode 100644 filters/kword/latex/export/formula.cc create mode 100644 filters/kword/latex/export/formula.h create mode 100644 filters/kword/latex/export/key.cc create mode 100644 filters/kword/latex/export/key.h create mode 100644 filters/kword/latex/export/kword_latex_export.desktop create mode 100644 filters/kword/latex/export/kwordlatexexportdia.cc create mode 100644 filters/kword/latex/export/kwordlatexexportdia.h create mode 100644 filters/kword/latex/export/latexexport.cc create mode 100644 filters/kword/latex/export/latexexport.h create mode 100644 filters/kword/latex/export/latexexportIface.cc create mode 100644 filters/kword/latex/export/latexexportIface.h create mode 100644 filters/kword/latex/export/latexexportdia.ui create mode 100644 filters/kword/latex/export/layout.cc create mode 100644 filters/kword/latex/export/layout.h create mode 100644 filters/kword/latex/export/listeformat.cc create mode 100644 filters/kword/latex/export/listeformat.h create mode 100644 filters/kword/latex/export/listelement.cc create mode 100644 filters/kword/latex/export/listelement.h create mode 100644 filters/kword/latex/export/listepara.cc create mode 100644 filters/kword/latex/export/listepara.h create mode 100644 filters/kword/latex/export/listtable.cc create mode 100644 filters/kword/latex/export/listtable.h create mode 100644 filters/kword/latex/export/para.cc create mode 100644 filters/kword/latex/export/para.h create mode 100644 filters/kword/latex/export/pixmapFrame.cc create mode 100644 filters/kword/latex/export/pixmapFrame.h create mode 100644 filters/kword/latex/export/table.cc create mode 100644 filters/kword/latex/export/table.h create mode 100644 filters/kword/latex/export/texlauncher.cc create mode 100644 filters/kword/latex/export/textFrame.cc create mode 100644 filters/kword/latex/export/textFrame.h create mode 100644 filters/kword/latex/export/textformat.cc create mode 100644 filters/kword/latex/export/textformat.h create mode 100644 filters/kword/latex/export/textzone.cc create mode 100644 filters/kword/latex/export/textzone.h create mode 100644 filters/kword/latex/export/variableformat.cc create mode 100644 filters/kword/latex/export/variableformat.h create mode 100644 filters/kword/latex/export/variablezone.cc create mode 100644 filters/kword/latex/export/variablezone.h create mode 100644 filters/kword/latex/export/xml2latexparser.cc create mode 100644 filters/kword/latex/export/xml2latexparser.h create mode 100644 filters/kword/latex/export/xmlparser.cc create mode 100644 filters/kword/latex/export/xmlparser.h create mode 100644 filters/kword/latex/import/ChangeLog create mode 100644 filters/kword/latex/import/Makefile.am create mode 100644 filters/kword/latex/import/config.cc create mode 100644 filters/kword/latex/import/config.h create mode 100644 filters/kword/latex/import/generator/Makefile.am create mode 100644 filters/kword/latex/import/generator/body.cc create mode 100644 filters/kword/latex/import/generator/body.h create mode 100644 filters/kword/latex/import/generator/document.cc create mode 100644 filters/kword/latex/import/generator/document.h create mode 100644 filters/kword/latex/import/generator/kwordgenerator.cc create mode 100644 filters/kword/latex/import/generator/kwordgenerator.h create mode 100644 filters/kword/latex/import/generator/latex.cc create mode 100644 filters/kword/latex/import/generator/latex.h create mode 100644 filters/kword/latex/import/generator/paragraph.cc create mode 100644 filters/kword/latex/import/generator/paragraph.h create mode 100644 filters/kword/latex/import/kword_latex_import.desktop create mode 100644 filters/kword/latex/import/lateximport.cc create mode 100644 filters/kword/latex/import/lateximport.h create mode 100644 filters/kword/latex/import/lateximportdia.cc create mode 100644 filters/kword/latex/import/lateximportdia.h create mode 100644 filters/kword/latex/import/parser/Makefile.am create mode 100644 filters/kword/latex/import/parser/command.cc create mode 100644 filters/kword/latex/import/parser/command.h create mode 100644 filters/kword/latex/import/parser/comment.cc create mode 100644 filters/kword/latex/import/parser/comment.h create mode 100644 filters/kword/latex/import/parser/element.cc create mode 100644 filters/kword/latex/import/parser/element.h create mode 100644 filters/kword/latex/import/parser/env.cc create mode 100644 filters/kword/latex/import/parser/env.h create mode 100644 filters/kword/latex/import/parser/group.cc create mode 100644 filters/kword/latex/import/parser/group.h create mode 100644 filters/kword/latex/import/parser/latexparser.cc create mode 100644 filters/kword/latex/import/parser/latexparser.h create mode 100644 filters/kword/latex/import/parser/main.cc create mode 100644 filters/kword/latex/import/parser/option.h create mode 100644 filters/kword/latex/import/parser/param.cc create mode 100644 filters/kword/latex/import/parser/param.h create mode 100644 filters/kword/latex/import/parser/stack.h create mode 100644 filters/kword/latex/import/parser/texparser.l create mode 100644 filters/kword/latex/import/parser/texparser.lex create mode 100644 filters/kword/latex/import/parser/texscaner.y create mode 100644 filters/kword/latex/import/parser/text.cc create mode 100644 filters/kword/latex/import/parser/text.h create mode 100644 filters/kword/latex/status.html create mode 100644 filters/kword/libexport/CHANGES create mode 100644 filters/kword/libexport/KWEFBaseWorker.cc create mode 100644 filters/kword/libexport/KWEFBaseWorker.h create mode 100644 filters/kword/libexport/KWEFKWordLeader.cc create mode 100644 filters/kword/libexport/KWEFKWordLeader.h create mode 100644 filters/kword/libexport/KWEFStructures.cc create mode 100644 filters/kword/libexport/KWEFStructures.h create mode 100644 filters/kword/libexport/KWEFUtil.cc create mode 100644 filters/kword/libexport/KWEFUtil.h create mode 100644 filters/kword/libexport/Makefile.am create mode 100644 filters/kword/libexport/ProcessDocument.cc create mode 100644 filters/kword/libexport/ProcessDocument.h create mode 100644 filters/kword/libexport/TODO create mode 100644 filters/kword/libexport/TagProcessing.cc create mode 100644 filters/kword/libexport/TagProcessing.h create mode 100644 filters/kword/msword/Makefile.am create mode 100644 filters/kword/msword/README create mode 100644 filters/kword/msword/configure.in.bot create mode 100644 filters/kword/msword/configure.in.in create mode 100644 filters/kword/msword/conversion.cpp create mode 100644 filters/kword/msword/conversion.h create mode 100644 filters/kword/msword/document.cpp create mode 100644 filters/kword/msword/document.h create mode 100644 filters/kword/msword/graphicshandler.cpp create mode 100644 filters/kword/msword/graphicshandler.h create mode 100644 filters/kword/msword/kword_msword_import.desktop create mode 100644 filters/kword/msword/missing create mode 100644 filters/kword/msword/mswordimport.cpp create mode 100644 filters/kword/msword/mswordimport.h create mode 100644 filters/kword/msword/tablehandler.cpp create mode 100644 filters/kword/msword/tablehandler.h create mode 100644 filters/kword/msword/texthandler.cpp create mode 100644 filters/kword/msword/texthandler.h create mode 100644 filters/kword/msword/versionmagic.h create mode 100644 filters/kword/mswrite/IMPERFECT create mode 100644 filters/kword/mswrite/ImportDialog.cc create mode 100644 filters/kword/mswrite/ImportDialog.h create mode 100644 filters/kword/mswrite/ImportDialogUI.ui create mode 100644 filters/kword/mswrite/Makefile.am create mode 100644 filters/kword/mswrite/ROADMAP create mode 100644 filters/kword/mswrite/config.libmswrite.h create mode 100644 filters/kword/mswrite/kword_mswrite_export.desktop create mode 100644 filters/kword/mswrite/kword_mswrite_import.desktop create mode 100644 filters/kword/mswrite/libmswrite.cpp create mode 100644 filters/kword/mswrite/libmswrite.h create mode 100644 filters/kword/mswrite/libmswrite_defs.cpp create mode 100644 filters/kword/mswrite/libmswrite_defs.h create mode 100644 filters/kword/mswrite/list.h create mode 100644 filters/kword/mswrite/mswriteexport.cc create mode 100644 filters/kword/mswrite/mswriteexport.h create mode 100644 filters/kword/mswrite/mswriteimport.cc create mode 100644 filters/kword/mswrite/mswriteimport.h create mode 100644 filters/kword/mswrite/status.html create mode 100644 filters/kword/mswrite/structures.cpp create mode 100644 filters/kword/mswrite/structures.h create mode 100644 filters/kword/mswrite/structures_generated.cpp create mode 100644 filters/kword/mswrite/structures_generated.h create mode 100644 filters/kword/mswrite/structures_private.cpp create mode 100644 filters/kword/mswrite/structures_private.h create mode 100644 filters/kword/oowriter/CHANGES create mode 100644 filters/kword/oowriter/ExportFilter.cc create mode 100644 filters/kword/oowriter/ExportFilter.h create mode 100644 filters/kword/oowriter/Makefile.am create mode 100644 filters/kword/oowriter/README create mode 100644 filters/kword/oowriter/TODO create mode 100644 filters/kword/oowriter/conversion.cc create mode 100644 filters/kword/oowriter/conversion.h create mode 100644 filters/kword/oowriter/kword_oowriter_export.desktop create mode 100644 filters/kword/oowriter/kword_oowriter_import.desktop create mode 100644 filters/kword/oowriter/oowriterexport.cc create mode 100644 filters/kword/oowriter/oowriterexport.h create mode 100644 filters/kword/oowriter/oowriterimport.cc create mode 100644 filters/kword/oowriter/oowriterimport.h create mode 100644 filters/kword/palmdoc/Makefile.am create mode 100644 filters/kword/palmdoc/kword_palmdoc_export.desktop create mode 100644 filters/kword/palmdoc/kword_palmdoc_import.desktop create mode 100644 filters/kword/palmdoc/palmdb.cpp create mode 100644 filters/kword/palmdoc/palmdb.h create mode 100644 filters/kword/palmdoc/palmdoc.cpp create mode 100644 filters/kword/palmdoc/palmdoc.h create mode 100644 filters/kword/palmdoc/palmdocexport.cc create mode 100644 filters/kword/palmdoc/palmdocexport.h create mode 100644 filters/kword/palmdoc/palmdocimport.cc create mode 100644 filters/kword/palmdoc/palmdocimport.h create mode 100644 filters/kword/palmdoc/status.html create mode 100644 filters/kword/pdf/CHANGELOG create mode 100644 filters/kword/pdf/DESIGN create mode 100644 filters/kword/pdf/FilterDevice.cpp create mode 100644 filters/kword/pdf/FilterDevice.h create mode 100644 filters/kword/pdf/FilterPage.cpp create mode 100644 filters/kword/pdf/FilterPage.h create mode 100644 filters/kword/pdf/LICENSE create mode 100644 filters/kword/pdf/Makefile.am create mode 100644 filters/kword/pdf/README create mode 100644 filters/kword/pdf/README.xpdf create mode 100644 filters/kword/pdf/TODO create mode 100644 filters/kword/pdf/data.cpp create mode 100644 filters/kword/pdf/data.h create mode 100644 filters/kword/pdf/dialog.cpp create mode 100644 filters/kword/pdf/dialog.h create mode 100644 filters/kword/pdf/diffs/goo_enable-final.diff create mode 100644 filters/kword/pdf/diffs/goo_gfile.diff create mode 100644 filters/kword/pdf/diffs/xpdf_TextOutputDev.diff create mode 100644 filters/kword/pdf/diffs/xpdf_includes.diff create mode 100644 filters/kword/pdf/diffs/xpdf_security_integer_overflow.diff create mode 100644 filters/kword/pdf/diffs/xpdf_security_integer_overflow_2.diff create mode 100644 filters/kword/pdf/fstring.cpp create mode 100644 filters/kword/pdf/fstring.h create mode 100644 filters/kword/pdf/kword_pdf_import.desktop create mode 100644 filters/kword/pdf/misc.cpp create mode 100644 filters/kword/pdf/misc.h create mode 100644 filters/kword/pdf/pdfdocument.cpp create mode 100644 filters/kword/pdf/pdfdocument.h create mode 100644 filters/kword/pdf/pdfimport.cpp create mode 100644 filters/kword/pdf/pdfimport.h create mode 100644 filters/kword/pdf/status.html create mode 100644 filters/kword/pdf/transform.cpp create mode 100644 filters/kword/pdf/transform.h create mode 100644 filters/kword/pdf/xpdf/ANNOUNCE create mode 100644 filters/kword/pdf/xpdf/CHANGES create mode 100644 filters/kword/pdf/xpdf/COPYING create mode 100644 filters/kword/pdf/xpdf/Makefile.am create mode 100644 filters/kword/pdf/xpdf/README create mode 100644 filters/kword/pdf/xpdf/configure.in.in create mode 100644 filters/kword/pdf/xpdf/goo/GHash.cc create mode 100644 filters/kword/pdf/xpdf/goo/GHash.h create mode 100644 filters/kword/pdf/xpdf/goo/GList.cc create mode 100644 filters/kword/pdf/xpdf/goo/GList.h create mode 100644 filters/kword/pdf/xpdf/goo/GString.cc create mode 100644 filters/kword/pdf/xpdf/goo/GString.h create mode 100644 filters/kword/pdf/xpdf/goo/Makefile.am create mode 100644 filters/kword/pdf/xpdf/goo/aconf.h create mode 100644 filters/kword/pdf/xpdf/goo/gfile.cc create mode 100644 filters/kword/pdf/xpdf/goo/gfile.h create mode 100644 filters/kword/pdf/xpdf/goo/gmem.c create mode 100644 filters/kword/pdf/xpdf/goo/gmem.h create mode 100644 filters/kword/pdf/xpdf/goo/gmempp.cc create mode 100644 filters/kword/pdf/xpdf/goo/gtypes.h create mode 100644 filters/kword/pdf/xpdf/goo/parseargs.c create mode 100644 filters/kword/pdf/xpdf/goo/parseargs.h create mode 100644 filters/kword/pdf/xpdf/xpdf/Annot.cc create mode 100644 filters/kword/pdf/xpdf/xpdf/Annot.h create mode 100644 filters/kword/pdf/xpdf/xpdf/Array.cc create mode 100644 filters/kword/pdf/xpdf/xpdf/Array.h create mode 100644 filters/kword/pdf/xpdf/xpdf/BuiltinFont.cc create mode 100644 filters/kword/pdf/xpdf/xpdf/BuiltinFont.h create mode 100644 filters/kword/pdf/xpdf/xpdf/BuiltinFontTables.cc create mode 100644 filters/kword/pdf/xpdf/xpdf/BuiltinFontTables.h create mode 100644 filters/kword/pdf/xpdf/xpdf/CMap.cc create mode 100644 filters/kword/pdf/xpdf/xpdf/CMap.h create mode 100644 filters/kword/pdf/xpdf/xpdf/Catalog.cc create mode 100644 filters/kword/pdf/xpdf/xpdf/Catalog.h create mode 100644 filters/kword/pdf/xpdf/xpdf/CharCodeToUnicode.cc create mode 100644 filters/kword/pdf/xpdf/xpdf/CharCodeToUnicode.h create mode 100644 filters/kword/pdf/xpdf/xpdf/CharTypes.h create mode 100644 filters/kword/pdf/xpdf/xpdf/CompactFontTables.h create mode 100644 filters/kword/pdf/xpdf/xpdf/Decrypt.cc create mode 100644 filters/kword/pdf/xpdf/xpdf/Decrypt.h create mode 100644 filters/kword/pdf/xpdf/xpdf/Dict.cc create mode 100644 filters/kword/pdf/xpdf/xpdf/Dict.h create mode 100644 filters/kword/pdf/xpdf/xpdf/DisplayFontTable.h create mode 100644 filters/kword/pdf/xpdf/xpdf/Error.cc create mode 100644 filters/kword/pdf/xpdf/xpdf/Error.h create mode 100644 filters/kword/pdf/xpdf/xpdf/ErrorCodes.h create mode 100644 filters/kword/pdf/xpdf/xpdf/FTFont.cc create mode 100644 filters/kword/pdf/xpdf/xpdf/FTFont.h create mode 100644 filters/kword/pdf/xpdf/xpdf/FontEncodingTables.cc create mode 100644 filters/kword/pdf/xpdf/xpdf/FontEncodingTables.h create mode 100644 filters/kword/pdf/xpdf/xpdf/FontFile.cc create mode 100644 filters/kword/pdf/xpdf/xpdf/FontFile.h create mode 100644 filters/kword/pdf/xpdf/xpdf/Function.cc create mode 100644 filters/kword/pdf/xpdf/xpdf/Function.h create mode 100644 filters/kword/pdf/xpdf/xpdf/Gfx.cc create mode 100644 filters/kword/pdf/xpdf/xpdf/Gfx.h create mode 100644 filters/kword/pdf/xpdf/xpdf/GfxFont.cc create mode 100644 filters/kword/pdf/xpdf/xpdf/GfxFont.h create mode 100644 filters/kword/pdf/xpdf/xpdf/GfxState.cc create mode 100644 filters/kword/pdf/xpdf/xpdf/GfxState.h create mode 100644 filters/kword/pdf/xpdf/xpdf/GlobalParams.cc create mode 100644 filters/kword/pdf/xpdf/xpdf/GlobalParams.h create mode 100644 filters/kword/pdf/xpdf/xpdf/ImageOutputDev.cc create mode 100644 filters/kword/pdf/xpdf/xpdf/ImageOutputDev.h create mode 100644 filters/kword/pdf/xpdf/xpdf/JBIG2Stream.cc create mode 100644 filters/kword/pdf/xpdf/xpdf/JBIG2Stream.h create mode 100644 filters/kword/pdf/xpdf/xpdf/Lexer.cc create mode 100644 filters/kword/pdf/xpdf/xpdf/Lexer.h create mode 100644 filters/kword/pdf/xpdf/xpdf/Link.cc create mode 100644 filters/kword/pdf/xpdf/xpdf/Link.h create mode 100644 filters/kword/pdf/xpdf/xpdf/Makefile.am create mode 100644 filters/kword/pdf/xpdf/xpdf/NameToCharCode.cc create mode 100644 filters/kword/pdf/xpdf/xpdf/NameToCharCode.h create mode 100644 filters/kword/pdf/xpdf/xpdf/NameToUnicodeTable.h create mode 100644 filters/kword/pdf/xpdf/xpdf/Object.cc create mode 100644 filters/kword/pdf/xpdf/xpdf/Object.h create mode 100644 filters/kword/pdf/xpdf/xpdf/Outline.cc create mode 100644 filters/kword/pdf/xpdf/xpdf/Outline.h create mode 100644 filters/kword/pdf/xpdf/xpdf/OutputDev.cc create mode 100644 filters/kword/pdf/xpdf/xpdf/OutputDev.h create mode 100644 filters/kword/pdf/xpdf/xpdf/PBMOutputDev.cc create mode 100644 filters/kword/pdf/xpdf/xpdf/PBMOutputDev.h create mode 100644 filters/kword/pdf/xpdf/xpdf/PDFDoc.cc create mode 100644 filters/kword/pdf/xpdf/xpdf/PDFDoc.h create mode 100644 filters/kword/pdf/xpdf/xpdf/PDFDocEncoding.cc create mode 100644 filters/kword/pdf/xpdf/xpdf/PDFDocEncoding.h create mode 100644 filters/kword/pdf/xpdf/xpdf/PSOutputDev.cc create mode 100644 filters/kword/pdf/xpdf/xpdf/PSOutputDev.h create mode 100644 filters/kword/pdf/xpdf/xpdf/PSTokenizer.cc create mode 100644 filters/kword/pdf/xpdf/xpdf/PSTokenizer.h create mode 100644 filters/kword/pdf/xpdf/xpdf/Page.cc create mode 100644 filters/kword/pdf/xpdf/xpdf/Page.h create mode 100644 filters/kword/pdf/xpdf/xpdf/Parser.cc create mode 100644 filters/kword/pdf/xpdf/xpdf/Parser.h create mode 100644 filters/kword/pdf/xpdf/xpdf/SFont.cc create mode 100644 filters/kword/pdf/xpdf/xpdf/SFont.h create mode 100644 filters/kword/pdf/xpdf/xpdf/Stream-CCITT.h create mode 100644 filters/kword/pdf/xpdf/xpdf/Stream.cc create mode 100644 filters/kword/pdf/xpdf/xpdf/Stream.h create mode 100644 filters/kword/pdf/xpdf/xpdf/T1Font.cc create mode 100644 filters/kword/pdf/xpdf/xpdf/T1Font.h create mode 100644 filters/kword/pdf/xpdf/xpdf/TTFont.cc create mode 100644 filters/kword/pdf/xpdf/xpdf/TTFont.h create mode 100644 filters/kword/pdf/xpdf/xpdf/TextOutputDev.cc create mode 100644 filters/kword/pdf/xpdf/xpdf/TextOutputDev.h create mode 100644 filters/kword/pdf/xpdf/xpdf/UTF8.h create mode 100644 filters/kword/pdf/xpdf/xpdf/UnicodeMap.cc create mode 100644 filters/kword/pdf/xpdf/xpdf/UnicodeMap.h create mode 100644 filters/kword/pdf/xpdf/xpdf/UnicodeMapTables.h create mode 100644 filters/kword/pdf/xpdf/xpdf/XOutputDev.cc create mode 100644 filters/kword/pdf/xpdf/xpdf/XOutputDev.h create mode 100644 filters/kword/pdf/xpdf/xpdf/XPDFApp.cc create mode 100644 filters/kword/pdf/xpdf/xpdf/XPDFApp.h create mode 100644 filters/kword/pdf/xpdf/xpdf/XPDFCore.cc create mode 100644 filters/kword/pdf/xpdf/xpdf/XPDFCore.h create mode 100644 filters/kword/pdf/xpdf/xpdf/XPDFTree.cc create mode 100644 filters/kword/pdf/xpdf/xpdf/XPDFTree.h create mode 100644 filters/kword/pdf/xpdf/xpdf/XPDFTreeP.h create mode 100644 filters/kword/pdf/xpdf/xpdf/XPDFViewer.cc create mode 100644 filters/kword/pdf/xpdf/xpdf/XPDFViewer.h create mode 100644 filters/kword/pdf/xpdf/xpdf/XPixmapOutputDev.cc create mode 100644 filters/kword/pdf/xpdf/xpdf/XPixmapOutputDev.h create mode 100644 filters/kword/pdf/xpdf/xpdf/XRef.cc create mode 100644 filters/kword/pdf/xpdf/xpdf/XRef.h create mode 100644 filters/kword/pdf/xpdf/xpdf/about-text.h create mode 100644 filters/kword/pdf/xpdf/xpdf/pdffonts.cc create mode 100644 filters/kword/pdf/xpdf/xpdf/pdfimages.cc create mode 100644 filters/kword/pdf/xpdf/xpdf/pdfinfo.cc create mode 100644 filters/kword/pdf/xpdf/xpdf/pdftopbm.cc create mode 100644 filters/kword/pdf/xpdf/xpdf/pdftops.cc create mode 100644 filters/kword/pdf/xpdf/xpdf/pdftotext.cc create mode 100644 filters/kword/pdf/xpdf/xpdf/xpdf.cc create mode 100644 filters/kword/pdf/xpdf/xpdf/xpdf_config.h create mode 100644 filters/kword/rtf/Makefile.am create mode 100644 filters/kword/rtf/export/CHANGELOG create mode 100644 filters/kword/rtf/export/ExportFilter.cc create mode 100644 filters/kword/rtf/export/ExportFilter.h create mode 100644 filters/kword/rtf/export/Makefile.am create mode 100644 filters/kword/rtf/export/kword_rtf_export.desktop create mode 100644 filters/kword/rtf/export/rtfexport.cc create mode 100644 filters/kword/rtf/export/rtfexport.h create mode 100644 filters/kword/rtf/import/CHANGELOG create mode 100644 filters/kword/rtf/import/Makefile.am create mode 100644 filters/kword/rtf/import/kword_rtf_import.desktop create mode 100644 filters/kword/rtf/import/rtfimport.cpp create mode 100644 filters/kword/rtf/import/rtfimport.h create mode 100644 filters/kword/rtf/import/rtfimport_dom.cpp create mode 100644 filters/kword/rtf/import/rtfimport_dom.h create mode 100644 filters/kword/rtf/import/rtfimport_tokenizer.cpp create mode 100644 filters/kword/rtf/import/rtfimport_tokenizer.h create mode 100644 filters/kword/rtf/status.html create mode 100644 filters/kword/starwriter/Makefile.am create mode 100644 filters/kword/starwriter/README create mode 100644 filters/kword/starwriter/kword_starwriter_import.desktop create mode 100644 filters/kword/starwriter/pole.cpp create mode 100644 filters/kword/starwriter/pole.h create mode 100644 filters/kword/starwriter/starwriterimport.cc create mode 100644 filters/kword/starwriter/starwriterimport.h create mode 100644 filters/kword/starwriter/status.html create mode 100644 filters/kword/wml/Makefile.am create mode 100644 filters/kword/wml/WML11.DTD create mode 100644 filters/kword/wml/kword_wml_export.desktop create mode 100644 filters/kword/wml/kword_wml_import.desktop create mode 100644 filters/kword/wml/status.html create mode 100644 filters/kword/wml/test.wml create mode 100644 filters/kword/wml/wmlexport.cc create mode 100644 filters/kword/wml/wmlexport.h create mode 100644 filters/kword/wml/wmlimport.cc create mode 100644 filters/kword/wml/wmlimport.h create mode 100644 filters/kword/wml/wmlparser.cpp create mode 100644 filters/kword/wml/wmlparser.h create mode 100644 filters/kword/wordperfect/Makefile.am create mode 100644 filters/kword/wordperfect/README create mode 100644 filters/kword/wordperfect/configure.in.bot create mode 100644 filters/kword/wordperfect/configure.in.in create mode 100644 filters/kword/wordperfect/export/Makefile.am create mode 100644 filters/kword/wordperfect/export/kword_wp_export.desktop create mode 100644 filters/kword/wordperfect/export/wp5.cc create mode 100644 filters/kword/wordperfect/export/wp5.h create mode 100644 filters/kword/wordperfect/export/wp6.cc create mode 100644 filters/kword/wordperfect/export/wp6.h create mode 100644 filters/kword/wordperfect/export/wpexport.cc create mode 100644 filters/kword/wordperfect/export/wpexport.h create mode 100644 filters/kword/wordperfect/import/DocumentElement.cxx create mode 100644 filters/kword/wordperfect/import/DocumentElement.hxx create mode 100644 filters/kword/wordperfect/import/DocumentHandler.hxx create mode 100644 filters/kword/wordperfect/import/FilterInternal.hxx create mode 100644 filters/kword/wordperfect/import/FontStyle.cxx create mode 100644 filters/kword/wordperfect/import/FontStyle.hxx create mode 100644 filters/kword/wordperfect/import/ListStyle.cxx create mode 100644 filters/kword/wordperfect/import/ListStyle.hxx create mode 100644 filters/kword/wordperfect/import/Makefile.am create mode 100644 filters/kword/wordperfect/import/PageSpan.cxx create mode 100644 filters/kword/wordperfect/import/PageSpan.hxx create mode 100644 filters/kword/wordperfect/import/SectionStyle.cxx create mode 100644 filters/kword/wordperfect/import/SectionStyle.hxx create mode 100644 filters/kword/wordperfect/import/Style.hxx create mode 100644 filters/kword/wordperfect/import/TableStyle.cxx create mode 100644 filters/kword/wordperfect/import/TableStyle.hxx create mode 100644 filters/kword/wordperfect/import/TextRunStyle.cxx create mode 100644 filters/kword/wordperfect/import/TextRunStyle.hxx create mode 100644 filters/kword/wordperfect/import/WordPerfectCollector.cxx create mode 100644 filters/kword/wordperfect/import/WordPerfectCollector.hxx create mode 100644 filters/kword/wordperfect/import/WriterProperties.hxx create mode 100644 filters/kword/wordperfect/import/kword_wp_import.desktop create mode 100644 filters/kword/wordperfect/import/kwordfilter.cpp create mode 100644 filters/kword/wordperfect/import/kwordfilter.h create mode 100644 filters/kword/wordperfect/import/parser.cpp create mode 100644 filters/kword/wordperfect/import/parser.h create mode 100644 filters/kword/wordperfect/import/wpimport.cc create mode 100644 filters/kword/wordperfect/import/wpimport.h create mode 100644 filters/kword/wordperfect/status.html create mode 100644 filters/kword/wordperfect/status_old.html create mode 100644 filters/kword/wordperfect/test/barcode.wpd create mode 100644 filters/kword/wordperfect/test/cyrillic.wpd create mode 100644 filters/kword/wordperfect/test/docsummary.wp create mode 100644 filters/kword/wordperfect/test/docsummary.wpd create mode 100644 filters/kword/wordperfect/test/fontcolor.wp create mode 100644 filters/kword/wordperfect/test/fontcolor.wpd create mode 100644 filters/kword/wordperfect/test/fontface.wp create mode 100644 filters/kword/wordperfect/test/fontsize.wp create mode 100644 filters/kword/wordperfect/test/formatting.wp create mode 100644 filters/kword/wordperfect/test/formatting.wpd create mode 100644 filters/kword/wordperfect/test/greek.wpd create mode 100644 filters/kword/wordperfect/test/hebrew.wpd create mode 100644 filters/kword/wordperfect/test/iconic.wpd create mode 100644 filters/kword/wordperfect/test/japanese.wpd create mode 100644 filters/kword/wordperfect/test/justification.wp create mode 100644 filters/kword/wordperfect/test/justification.wpd create mode 100644 filters/kword/wordperfect/test/linespace.wp create mode 100644 filters/kword/wordperfect/test/linespace.wpd create mode 100644 filters/kword/wordperfect/test/math.wpd create mode 100644 filters/kword/wordperfect/test/mathext.wpd create mode 100644 filters/kword/wordperfect/test/multinational.wpd create mode 100644 filters/kword/wordperfect/test/pagemargin.wp create mode 100644 filters/kword/wordperfect/test/pagemargin.wpd create mode 100644 filters/kword/wordperfect/test/phonetic.wpd create mode 100644 filters/kword/wordperfect/test/readme create mode 100644 filters/kword/wordperfect/test/table.wp create mode 100644 filters/kword/wordperfect/test/table.wpd create mode 100644 filters/kword/wordperfect/test/typeface.wp create mode 100644 filters/kword/wordperfect/test/typeface.wpd create mode 100644 filters/kword/wordperfect/test/typographic.wpd create mode 100644 filters/kword/wordperfect/test/umlaut.wp create mode 100644 filters/kword/wordperfect/test/umlaut.wpd create mode 100644 filters/libdialogfilter/Makefile.am create mode 100644 filters/libdialogfilter/exportsizedia.cpp create mode 100644 filters/libdialogfilter/exportsizedia.h create mode 100644 filters/liboofilter/Makefile.am create mode 100644 filters/liboofilter/README create mode 100644 filters/liboofilter/liststylestack.cc create mode 100644 filters/liboofilter/liststylestack.h create mode 100644 filters/liboofilter/ooutils.cc create mode 100644 filters/liboofilter/ooutils.h create mode 100644 filters/olefilters/Makefile.am create mode 100644 filters/olefilters/lib/Makefile.am create mode 100644 filters/olefilters/lib/filterbase.cc create mode 100644 filters/olefilters/lib/filterbase.h create mode 100644 filters/olefilters/lib/klaola.cc create mode 100644 filters/olefilters/lib/klaola.h create mode 100644 filters/olefilters/lib/myfile.h create mode 100644 filters/olefilters/olefilter.cc create mode 100644 filters/olefilters/olefilter.h create mode 100644 filters/olefilters/powerpoint97/Makefile.am create mode 100644 filters/olefilters/powerpoint97/README create mode 100644 filters/olefilters/powerpoint97/ole_powerpoint97_import.desktop create mode 100644 filters/olefilters/powerpoint97/powerpoint.cc create mode 100644 filters/olefilters/powerpoint97/powerpoint.h create mode 100644 filters/olefilters/powerpoint97/powerpointfilter.cc create mode 100644 filters/olefilters/powerpoint97/powerpointfilter.h create mode 100644 filters/olefilters/powerpoint97/pptSlide.cpp create mode 100644 filters/olefilters/powerpoint97/pptSlide.h create mode 100644 filters/olefilters/powerpoint97/pptdoc.cc create mode 100644 filters/olefilters/powerpoint97/pptdoc.h create mode 100644 filters/olefilters/powerpoint97/pptxml.cc create mode 100644 filters/olefilters/powerpoint97/pptxml.h create mode 100644 filters/olefilters/powerpoint97/status.html create mode 100644 filters/tests/README create mode 100755 filters/tests/global-filter-test.sh create mode 100644 filters/xsltfilter/Makefile.am create mode 100644 filters/xsltfilter/configure.in.bot create mode 100644 filters/xsltfilter/configure.in.in create mode 100644 filters/xsltfilter/export/Changelog create mode 100644 filters/xsltfilter/export/Makefile.am create mode 100644 filters/xsltfilter/export/TODO create mode 100644 filters/xsltfilter/export/xsl/Makefile.am create mode 100644 filters/xsltfilter/export/xsl/kword/Makefile.am create mode 100644 filters/xsltfilter/export/xsl/kword/xslfo/Makefile.am create mode 100644 filters/xsltfilter/export/xsl/kword/xslfo/kword2xslfo-table.xsl create mode 100644 filters/xsltfilter/export/xsl/kword/xslfo/main.xsl create mode 100644 filters/xsltfilter/export/xslt_export.desktop create mode 100644 filters/xsltfilter/export/xsltdialog.ui create mode 100644 filters/xsltfilter/export/xsltexport.cc create mode 100644 filters/xsltfilter/export/xsltexport.h create mode 100644 filters/xsltfilter/export/xsltexportdia.cc create mode 100644 filters/xsltfilter/export/xsltexportdia.h create mode 100644 filters/xsltfilter/export/xsltproc.cc create mode 100644 filters/xsltfilter/export/xsltproc.h create mode 100644 filters/xsltfilter/import/Changelog create mode 100644 filters/xsltfilter/import/Makefile.am create mode 100644 filters/xsltfilter/import/TODO create mode 100644 filters/xsltfilter/import/xslt_import.desktop create mode 100644 filters/xsltfilter/import/xsltdialog.ui create mode 100644 filters/xsltfilter/import/xsltimport.cc create mode 100644 filters/xsltfilter/import/xsltimport.h create mode 100644 filters/xsltfilter/import/xsltimportdia.cc create mode 100644 filters/xsltfilter/import/xsltimportdia.h create mode 100644 filters/xsltfilter/import/xsltproc.cc create mode 100644 filters/xsltfilter/import/xsltproc.h create mode 100644 filters/xsltfilter/kword2xslfo.xsl create mode 100644 filters/xsltfilter/status.html create mode 100644 install-sh create mode 100644 interfaces/Makefile.am create mode 100644 interfaces/koChart.cc create mode 100644 interfaces/koChart.h create mode 100644 karbon/AUTHORS create mode 100644 karbon/CHANGES create mode 100644 karbon/COPYING.LIB create mode 100644 karbon/GRAPHICS_MEETING create mode 100644 karbon/IDEAS create mode 100644 karbon/Makefile.am create mode 100644 karbon/README create mode 100644 karbon/TODO create mode 100644 karbon/commands/Makefile.am create mode 100644 karbon/commands/valigncmd.cc create mode 100644 karbon/commands/valigncmd.h create mode 100644 karbon/commands/vbooleancmd.cc create mode 100644 karbon/commands/vbooleancmd.h create mode 100644 karbon/commands/vcleanupcmd.cc create mode 100644 karbon/commands/vcleanupcmd.h create mode 100644 karbon/commands/vclipartcmd.cc create mode 100644 karbon/commands/vclipartcmd.h create mode 100644 karbon/commands/vclosepathcmd.cc create mode 100644 karbon/commands/vclosepathcmd.h create mode 100644 karbon/commands/vcommand.cc create mode 100644 karbon/commands/vcommand.h create mode 100644 karbon/commands/vdeletecmd.cc create mode 100644 karbon/commands/vdeletecmd.h create mode 100644 karbon/commands/vdeletenodescmd.cc create mode 100644 karbon/commands/vdeletenodescmd.h create mode 100644 karbon/commands/vdistributecmd.cc create mode 100644 karbon/commands/vdistributecmd.h create mode 100644 karbon/commands/vfillcmd.cc create mode 100644 karbon/commands/vfillcmd.h create mode 100644 karbon/commands/vflattencmd.cc create mode 100644 karbon/commands/vflattencmd.h create mode 100644 karbon/commands/vgroupcmd.cc create mode 100644 karbon/commands/vgroupcmd.h create mode 100644 karbon/commands/vinsertcmd.cc create mode 100644 karbon/commands/vinsertcmd.h create mode 100644 karbon/commands/vlayercmd.cc create mode 100644 karbon/commands/vlayercmd.h create mode 100644 karbon/commands/vreplacingcmd.cc create mode 100644 karbon/commands/vreplacingcmd.h create mode 100644 karbon/commands/vshapecmd.cc create mode 100644 karbon/commands/vshapecmd.h create mode 100644 karbon/commands/vstrokecmd.cc create mode 100644 karbon/commands/vstrokecmd.h create mode 100644 karbon/commands/vtextcmd.cc create mode 100644 karbon/commands/vtextcmd.h create mode 100644 karbon/commands/vtransformcmd.cc create mode 100644 karbon/commands/vtransformcmd.h create mode 100644 karbon/commands/vungroupcmd.cc create mode 100644 karbon/commands/vungroupcmd.h create mode 100644 karbon/commands/vzordercmd.cc create mode 100644 karbon/commands/vzordercmd.h create mode 100644 karbon/configure.in.bot create mode 100644 karbon/configure.in.in create mode 100644 karbon/core/Makefile.am create mode 100644 karbon/core/vclipgroup.cc create mode 100644 karbon/core/vclipgroup.h create mode 100644 karbon/core/vcolor.cc create mode 100644 karbon/core/vcolor.h create mode 100644 karbon/core/vcomposite.cc create mode 100644 karbon/core/vcomposite.h create mode 100644 karbon/core/vcomposite_iface.cc create mode 100644 karbon/core/vcomposite_iface.h create mode 100644 karbon/core/vcursor.cc create mode 100644 karbon/core/vcursor.h create mode 100644 karbon/core/vdashpattern.cc create mode 100644 karbon/core/vdashpattern.h create mode 100644 karbon/core/vdocument.cc create mode 100644 karbon/core/vdocument.h create mode 100644 karbon/core/vfill.cc create mode 100644 karbon/core/vfill.h create mode 100644 karbon/core/vfillrule.h create mode 100644 karbon/core/vglobal.cc create mode 100644 karbon/core/vglobal.h create mode 100644 karbon/core/vgradient.cc create mode 100644 karbon/core/vgradient.h create mode 100644 karbon/core/vgroup.cc create mode 100644 karbon/core/vgroup.h create mode 100644 karbon/core/vgroup_iface.cc create mode 100644 karbon/core/vgroup_iface.h create mode 100644 karbon/core/vimage.cc create mode 100644 karbon/core/vimage.h create mode 100644 karbon/core/vkarbonplugin.cc create mode 100644 karbon/core/vkarbonplugin.h create mode 100644 karbon/core/vlayer.cc create mode 100644 karbon/core/vlayer.h create mode 100644 karbon/core/vlayer_iface.cc create mode 100644 karbon/core/vlayer_iface.h create mode 100644 karbon/core/vobject.cc create mode 100644 karbon/core/vobject.h create mode 100644 karbon/core/vobject_iface.cc create mode 100644 karbon/core/vobject_iface.h create mode 100644 karbon/core/vpath.cc create mode 100644 karbon/core/vpath.h create mode 100644 karbon/core/vpattern.cc create mode 100644 karbon/core/vpattern.h create mode 100644 karbon/core/vsegment.cc create mode 100644 karbon/core/vsegment.h create mode 100644 karbon/core/vselection.cc create mode 100644 karbon/core/vselection.h create mode 100644 karbon/core/vstroke.cc create mode 100644 karbon/core/vstroke.h create mode 100644 karbon/core/vtext.cc create mode 100644 karbon/core/vtext.h create mode 100644 karbon/core/vtext_iface.cc create mode 100644 karbon/core/vtext_iface.h create mode 100644 karbon/core/vvisitor.cc create mode 100644 karbon/core/vvisitor.h create mode 100644 karbon/data/Makefile.am create mode 100644 karbon/data/allcolors.kgr create mode 100644 karbon/data/karbon.desktop create mode 100644 karbon/data/karbon.rc create mode 100644 karbon/data/karbon_module.desktop create mode 100644 karbon/data/karbon_readonly.rc create mode 100644 karbon/data/karbonpart.desktop create mode 100644 karbon/data/simple.kgr create mode 100644 karbon/dialogs/Makefile.am create mode 100644 karbon/dialogs/vcolordlg.cc create mode 100644 karbon/dialogs/vcolordlg.h create mode 100644 karbon/dialogs/vcolortab.cc create mode 100644 karbon/dialogs/vcolortab.h create mode 100644 karbon/dialogs/vconfiguredlg.cc create mode 100644 karbon/dialogs/vconfiguredlg.h create mode 100644 karbon/dialogs/vstrokedlg.cc create mode 100644 karbon/dialogs/vstrokedlg.h create mode 100644 karbon/dockers/Makefile.am create mode 100644 karbon/dockers/vcolordocker.cc create mode 100644 karbon/dockers/vcolordocker.h create mode 100644 karbon/dockers/vdocumentdocker.cc create mode 100644 karbon/dockers/vdocumentdocker.h create mode 100644 karbon/dockers/vstrokedocker.cc create mode 100644 karbon/dockers/vstrokedocker.h create mode 100644 karbon/dockers/vstyledocker.cc create mode 100644 karbon/dockers/vstyledocker.h create mode 100644 karbon/dockers/vtransformdocker.cc create mode 100644 karbon/dockers/vtransformdocker.h create mode 100644 karbon/karbon.dtd create mode 100644 karbon/karbon_aboutdata.h create mode 100644 karbon/karbon_drag.cpp create mode 100644 karbon/karbon_drag.h create mode 100644 karbon/karbon_factory.cc create mode 100644 karbon/karbon_factory.h create mode 100644 karbon/karbon_factory_init.cc create mode 100644 karbon/karbon_grid_data.cpp create mode 100644 karbon/karbon_grid_data.h create mode 100644 karbon/karbon_part.cc create mode 100644 karbon/karbon_part.h create mode 100644 karbon/karbon_part_iface.cc create mode 100644 karbon/karbon_part_iface.h create mode 100644 karbon/karbon_resourceserver.cc create mode 100644 karbon/karbon_resourceserver.h create mode 100644 karbon/karbon_tool_factory.cc create mode 100644 karbon/karbon_tool_factory.h create mode 100644 karbon/karbon_tool_registry.cc create mode 100644 karbon/karbon_tool_registry.h create mode 100644 karbon/karbon_view.cc create mode 100644 karbon/karbon_view.h create mode 100644 karbon/karbon_view_iface.cc create mode 100644 karbon/karbon_view_iface.h create mode 100644 karbon/main.cc create mode 100644 karbon/pics/Makefile.am create mode 100644 karbon/pics/cr16-action-14_layer_deletelayer.png create mode 100644 karbon/pics/cr16-action-14_layer_lowerlayer.png create mode 100644 karbon/pics/cr16-action-14_layer_newlayer.png create mode 100644 karbon/pics/cr16-action-14_layer_novisible.png create mode 100644 karbon/pics/cr16-action-14_layer_raiselayer.png create mode 100644 karbon/pics/cr16-action-14_layer_visible.png create mode 100644 karbon/pics/cr16-action-14_pencil.png create mode 100644 karbon/pics/cr16-action-cap_butt.png create mode 100644 karbon/pics/cr16-action-cap_round.png create mode 100644 karbon/pics/cr16-action-cap_square.png create mode 100644 karbon/pics/cr16-action-colorman.png create mode 100644 karbon/pics/cr16-action-helpdocker.png create mode 100644 karbon/pics/cr16-action-historydocker.png create mode 100644 karbon/pics/cr16-action-join_bevel.png create mode 100644 karbon/pics/cr16-action-join_miter.png create mode 100644 karbon/pics/cr16-action-join_round.png create mode 100644 karbon/pics/cr16-action-layersman.png create mode 100644 karbon/pics/cr16-action-locked.png create mode 100644 karbon/pics/cr16-action-rotate.png create mode 100644 karbon/pics/cr16-action-shear.png create mode 100644 karbon/pics/cr16-action-strokedocker.png create mode 100644 karbon/pics/cr16-action-tooloptions.png create mode 100644 karbon/pics/cr16-action-translate.png create mode 100644 karbon/pics/cr16-action-unlocked.png create mode 100644 karbon/pics/cr22-action-14_ellipse.png create mode 100644 karbon/pics/cr22-action-14_flatten.png create mode 100644 karbon/pics/cr22-action-14_gradient.png create mode 100644 karbon/pics/cr22-action-14_image.png create mode 100644 karbon/pics/cr22-action-14_insertknots.png create mode 100644 karbon/pics/cr22-action-14_pattern.png create mode 100644 karbon/pics/cr22-action-14_pencil.png create mode 100644 karbon/pics/cr22-action-14_polygon.png create mode 100644 karbon/pics/cr22-action-14_polyline.png create mode 100644 karbon/pics/cr22-action-14_rectangle.png create mode 100644 karbon/pics/cr22-action-14_rotate.png create mode 100644 karbon/pics/cr22-action-14_roundcorners.png create mode 100644 karbon/pics/cr22-action-14_roundrect.png create mode 100644 karbon/pics/cr22-action-14_select.png create mode 100644 karbon/pics/cr22-action-14_selectnodes.png create mode 100644 karbon/pics/cr22-action-14_shear.png create mode 100644 karbon/pics/cr22-action-14_sinus.png create mode 100644 karbon/pics/cr22-action-14_spiral.png create mode 100644 karbon/pics/cr22-action-14_star.png create mode 100644 karbon/pics/cr22-action-14_text.png create mode 100644 karbon/pics/cr22-action-14_whirl.png create mode 100644 karbon/pics/cr22-action-14_zoom.png create mode 100644 karbon/pics/cr22-action-colorman.png create mode 100644 karbon/pics/cr22-action-gradientdlg.png create mode 100644 karbon/pics/cr22-action-outlinedlg.png create mode 100644 karbon/pics/cr22-action-pagesetup.png create mode 100644 karbon/pics/cr22-action-solidfilldlg.png create mode 100644 karbon/pics/hi16-action-linestyle.png create mode 100644 karbon/pics/hi16-app-karbon.png create mode 100644 karbon/pics/hi22-action-linestyle.png create mode 100644 karbon/pics/hi22-app-karbon.png create mode 100644 karbon/pics/hi32-app-karbon.png create mode 100644 karbon/pics/hi48-app-karbon.png create mode 100644 karbon/pics/hisc-app-karbon.svgz create mode 100644 karbon/plugins/Makefile.am create mode 100644 karbon/plugins/flattenpath/Makefile.am create mode 100644 karbon/plugins/flattenpath/flattenpathplugin.cc create mode 100644 karbon/plugins/flattenpath/flattenpathplugin.h create mode 100644 karbon/plugins/flattenpath/flattenpathplugin.rc create mode 100644 karbon/plugins/imagetool/Makefile.am create mode 100644 karbon/plugins/imagetool/imagetoolplugin.cc create mode 100644 karbon/plugins/imagetool/imagetoolplugin.h create mode 100644 karbon/plugins/imagetool/imagetoolplugin.rc create mode 100644 karbon/plugins/imagetool/karbonimagetool.desktop create mode 100644 karbon/plugins/imagetool/vimagetool.cc create mode 100644 karbon/plugins/imagetool/vimagetool.h create mode 100644 karbon/plugins/insertknots/Makefile.am create mode 100644 karbon/plugins/insertknots/insertknotsplugin.cc create mode 100644 karbon/plugins/insertknots/insertknotsplugin.h create mode 100644 karbon/plugins/insertknots/insertknotsplugin.rc create mode 100644 karbon/plugins/roundcorners/Makefile.am create mode 100644 karbon/plugins/roundcorners/roundcornersplugin.cc create mode 100644 karbon/plugins/roundcorners/roundcornersplugin.h create mode 100644 karbon/plugins/roundcorners/roundcornersplugin.rc create mode 100644 karbon/plugins/shadoweffect/Makefile.am create mode 100644 karbon/plugins/shadoweffect/shadoweffectplugin.cc create mode 100644 karbon/plugins/shadoweffect/shadoweffectplugin.h create mode 100644 karbon/plugins/shadoweffect/shadoweffectplugin.rc create mode 100644 karbon/plugins/shadoweffect/vshadowdecorator.cc create mode 100644 karbon/plugins/shadoweffect/vshadowdecorator.h create mode 100644 karbon/plugins/whirlpinch/Makefile.am create mode 100644 karbon/plugins/whirlpinch/whirlpinchplugin.cc create mode 100644 karbon/plugins/whirlpinch/whirlpinchplugin.h create mode 100644 karbon/plugins/whirlpinch/whirlpinchplugin.rc create mode 100644 karbon/plugins/zoomtool/Makefile.am create mode 100644 karbon/plugins/zoomtool/karbonzoomtool.desktop create mode 100644 karbon/plugins/zoomtool/vzoomtool.cc create mode 100644 karbon/plugins/zoomtool/vzoomtool.h create mode 100644 karbon/plugins/zoomtool/zoomtoolplugin.cc create mode 100644 karbon/plugins/zoomtool/zoomtoolplugin.h create mode 100644 karbon/plugins/zoomtool/zoomtoolplugin.rc create mode 100644 karbon/render/Makefile.am create mode 100644 karbon/render/art_render_misc.c create mode 100644 karbon/render/art_render_misc.h create mode 100644 karbon/render/art_render_pattern.c create mode 100644 karbon/render/art_render_pattern.h create mode 100644 karbon/render/art_rgb.c create mode 100644 karbon/render/art_rgb.h create mode 100644 karbon/render/art_rgb_affine_private.c create mode 100644 karbon/render/art_rgb_affine_private.h create mode 100644 karbon/render/art_rgb_svp.c create mode 100644 karbon/render/art_rgb_svp.h create mode 100644 karbon/render/art_rgba_affine.c create mode 100644 karbon/render/art_rgba_affine.h create mode 100644 karbon/render/vkopainter.cc create mode 100644 karbon/render/vkopainter.h create mode 100644 karbon/render/vpainter.h create mode 100644 karbon/render/vpainterfactory.cc create mode 100644 karbon/render/vpainterfactory.h create mode 100644 karbon/render/vqpainter.cc create mode 100644 karbon/render/vqpainter.h create mode 100644 karbon/render/xrgbrender/Makefile.am create mode 100644 karbon/render/xrgbrender/gdk-pixbuf-xlib-drawable.c create mode 100644 karbon/render/xrgbrender/gdk-pixbuf-xlib-private.h create mode 100644 karbon/render/xrgbrender/gdk-pixbuf-xlib-render.c create mode 100644 karbon/render/xrgbrender/gdk-pixbuf-xlib.c create mode 100644 karbon/render/xrgbrender/gdk-pixbuf-xlib.h create mode 100644 karbon/render/xrgbrender/gdk-pixbuf-xlibrgb.c create mode 100644 karbon/render/xrgbrender/gdk-pixbuf-xlibrgb.h create mode 100644 karbon/shapes/Makefile.am create mode 100644 karbon/shapes/vellipse.cc create mode 100644 karbon/shapes/vellipse.h create mode 100644 karbon/shapes/vpolygon.cc create mode 100644 karbon/shapes/vpolygon.h create mode 100644 karbon/shapes/vpolyline.cc create mode 100644 karbon/shapes/vpolyline.h create mode 100644 karbon/shapes/vrectangle.cc create mode 100644 karbon/shapes/vrectangle.h create mode 100644 karbon/shapes/vsinus.cc create mode 100644 karbon/shapes/vsinus.h create mode 100644 karbon/shapes/vspiral.cc create mode 100644 karbon/shapes/vspiral.h create mode 100644 karbon/shapes/vstar.cc create mode 100644 karbon/shapes/vstar.h create mode 100644 karbon/templates/Makefile.am create mode 100644 karbon/templates/basic/.directory create mode 100644 karbon/templates/basic/Makefile.am create mode 100644 karbon/templates/basic/cr48-action-template_empty.png create mode 100644 karbon/templates/basic/crsc-action-template_empty.svgz create mode 100644 karbon/templates/basic/empty.desktop create mode 100644 karbon/templates/basic/empty.karbon create mode 100644 karbon/tests/14.karbon create mode 100644 karbon/tests/README create mode 100644 karbon/tests/combined.karbon create mode 100644 karbon/tests/dash.karbon create mode 100644 karbon/tests/grad.karbon create mode 100755 karbon/tests/oasis-karbon.sh create mode 100644 karbon/tests/opacity.karbon create mode 100644 karbon/tests/pat.karbon create mode 100644 karbon/tests/polyline.karbon create mode 100644 karbon/tests/stroke.karbon create mode 100644 karbon/tests/trasparency.karbon create mode 100644 karbon/tools/Makefile.am create mode 100644 karbon/tools/gradienttoolplugin.rc create mode 100644 karbon/tools/karbondefaulttools.desktop create mode 100644 karbon/tools/patterntoolplugin.rc create mode 100644 karbon/tools/vcurvefit.cc create mode 100644 karbon/tools/vcurvefit.h create mode 100644 karbon/tools/vdefaulttools.cc create mode 100644 karbon/tools/vdefaulttools.h create mode 100644 karbon/tools/vellipsetool.cc create mode 100644 karbon/tools/vellipsetool.h create mode 100644 karbon/tools/vgradienttool.cc create mode 100644 karbon/tools/vgradienttool.h create mode 100644 karbon/tools/vpatterntool.cc create mode 100644 karbon/tools/vpatterntool.h create mode 100644 karbon/tools/vpenciltool.cc create mode 100644 karbon/tools/vpenciltool.h create mode 100644 karbon/tools/vpolygontool.cc create mode 100644 karbon/tools/vpolygontool.h create mode 100644 karbon/tools/vpolylinetool.cc create mode 100644 karbon/tools/vpolylinetool.h create mode 100644 karbon/tools/vrectangletool.cc create mode 100644 karbon/tools/vrectangletool.h create mode 100644 karbon/tools/vrotatetool.cc create mode 100644 karbon/tools/vrotatetool.h create mode 100644 karbon/tools/vroundrecttool.cc create mode 100644 karbon/tools/vroundrecttool.h create mode 100644 karbon/tools/vselectnodestool.cc create mode 100644 karbon/tools/vselectnodestool.h create mode 100644 karbon/tools/vselecttool.cc create mode 100644 karbon/tools/vselecttool.h create mode 100644 karbon/tools/vshapetool.cc create mode 100644 karbon/tools/vshapetool.h create mode 100644 karbon/tools/vsheartool.cc create mode 100644 karbon/tools/vsheartool.h create mode 100644 karbon/tools/vsinustool.cc create mode 100644 karbon/tools/vsinustool.h create mode 100644 karbon/tools/vspiraltool.cc create mode 100644 karbon/tools/vspiraltool.h create mode 100644 karbon/tools/vstartool.cc create mode 100644 karbon/tools/vstartool.h create mode 100644 karbon/tools/vtexttool.cc create mode 100644 karbon/tools/vtexttool.h create mode 100644 karbon/usablity-review.txt create mode 100644 karbon/visitors/Makefile.am create mode 100644 karbon/visitors/vcomputeboundingbox.cc create mode 100644 karbon/visitors/vcomputeboundingbox.h create mode 100644 karbon/visitors/vdrawselection.cc create mode 100644 karbon/visitors/vdrawselection.h create mode 100644 karbon/visitors/vselectiondesc.cc create mode 100644 karbon/visitors/vselectiondesc.h create mode 100644 karbon/visitors/vselectnodes.cc create mode 100644 karbon/visitors/vselectnodes.h create mode 100644 karbon/visitors/vselectobjects.cc create mode 100644 karbon/visitors/vselectobjects.h create mode 100644 karbon/visitors/vtransformnodes.cc create mode 100644 karbon/visitors/vtransformnodes.h create mode 100644 karbon/vtool.cc create mode 100644 karbon/vtool.h create mode 100644 karbon/vtoolcontroller.cc create mode 100644 karbon/vtoolcontroller.h create mode 100644 karbon/widgets/Makefile.am create mode 100644 karbon/widgets/vcanvas.cc create mode 100644 karbon/widgets/vcanvas.h create mode 100644 karbon/widgets/vcolorslider.cc create mode 100644 karbon/widgets/vcolorslider.h create mode 100644 karbon/widgets/vgradienttabwidget.cc create mode 100644 karbon/widgets/vgradienttabwidget.h create mode 100644 karbon/widgets/vgradientwidget.cc create mode 100644 karbon/widgets/vgradientwidget.h create mode 100644 karbon/widgets/vreference.cc create mode 100644 karbon/widgets/vreference.h create mode 100644 karbon/widgets/vruler.cc create mode 100644 karbon/widgets/vruler.h create mode 100644 karbon/widgets/vselecttoolbar.cc create mode 100644 karbon/widgets/vselecttoolbar.h create mode 100644 karbon/widgets/vsmallpreview.cc create mode 100644 karbon/widgets/vsmallpreview.h create mode 100644 karbon/widgets/vstatebutton.cc create mode 100644 karbon/widgets/vstatebutton.h create mode 100644 karbon/widgets/vstrokefillpreview.cc create mode 100644 karbon/widgets/vstrokefillpreview.h create mode 100644 karbon/widgets/vtoolbox.cc create mode 100644 karbon/widgets/vtoolbox.h create mode 100644 karbon/widgets/vtranslate.cc create mode 100644 karbon/widgets/vtranslate.h create mode 100644 karbon/widgets/vtypebuttonbox.cc create mode 100644 karbon/widgets/vtypebuttonbox.h create mode 100644 kchart/AUTHORS create mode 100644 kchart/CHANGES create mode 100644 kchart/ChangeLog create mode 100644 kchart/KChartParamsIface.cc create mode 100644 kchart/KChartParamsIface.h create mode 100644 kchart/KChartViewIface.cc create mode 100644 kchart/KChartViewIface.h create mode 100644 kchart/Makefile.am create mode 100644 kchart/TODO create mode 100644 kchart/csvimportdialog.cc create mode 100644 kchart/csvimportdialog.h create mode 100644 kchart/csvimportdialogui.ui create mode 100644 kchart/kchart.desktop create mode 100644 kchart/kchart.rc create mode 100644 kchart/kchartBackgroundPixmapConfigPage.cc create mode 100644 kchart/kchartBackgroundPixmapConfigPage.h create mode 100644 kchart/kchartColorConfigPage.cc create mode 100644 kchart/kchartColorConfigPage.h create mode 100644 kchart/kchartComboConfigPage.cc create mode 100644 kchart/kchartComboConfigPage.h create mode 100644 kchart/kchartConfigDialog.cc create mode 100644 kchart/kchartConfigDialog.h create mode 100644 kchart/kchartDataConfigPage.cc create mode 100644 kchart/kchartDataConfigPage.h create mode 100644 kchart/kchartDataEditor.cc create mode 100644 kchart/kchartDataEditor.h create mode 100644 kchart/kchartFontConfigPage.cc create mode 100644 kchart/kchartFontConfigPage.h create mode 100644 kchart/kchartHeaderFooterConfigPage.cc create mode 100644 kchart/kchartHeaderFooterConfigPage.h create mode 100644 kchart/kchartLegendConfigPage.cc create mode 100644 kchart/kchartLegendConfigPage.h create mode 100644 kchart/kchartLine3dConfigPage.cc create mode 100644 kchart/kchartLine3dConfigPage.h create mode 100644 kchart/kchartPageLayout.cc create mode 100644 kchart/kchartPageLayout.h create mode 100644 kchart/kchartParameter3dConfigPage.cc create mode 100644 kchart/kchartParameter3dConfigPage.h create mode 100644 kchart/kchartParameterConfigPage.cc create mode 100644 kchart/kchartParameterConfigPage.h create mode 100644 kchart/kchartParameterPieConfigPage.cc create mode 100644 kchart/kchartParameterPieConfigPage.h create mode 100644 kchart/kchartParameterPolarConfigPage.cc create mode 100644 kchart/kchartParameterPolarConfigPage.h create mode 100644 kchart/kchartPieConfigPage.cc create mode 100644 kchart/kchartPieConfigPage.h create mode 100644 kchart/kchartPrinterDlg.cc create mode 100644 kchart/kchartPrinterDlg.h create mode 100644 kchart/kchartSubTypeChartPage.cc create mode 100644 kchart/kchartSubTypeChartPage.h create mode 100644 kchart/kchartWizard.cc create mode 100644 kchart/kchartWizard.h create mode 100644 kchart/kchartWizardLabelsLegendPage.cc create mode 100644 kchart/kchartWizardLabelsLegendPage.h create mode 100644 kchart/kchartWizardSelectChartSubTypePage.cc create mode 100644 kchart/kchartWizardSelectChartSubTypePage.h create mode 100644 kchart/kchartWizardSelectChartTypePage.cc create mode 100644 kchart/kchartWizardSelectChartTypePage.h create mode 100644 kchart/kchartWizardSelectDataFormatPage.cc create mode 100644 kchart/kchartWizardSelectDataFormatPage.h create mode 100644 kchart/kchartWizardSelectDataPage.cc create mode 100644 kchart/kchartWizardSelectDataPage.h create mode 100644 kchart/kchartWizardSetupAxesPage.cc create mode 100644 kchart/kchartWizardSetupAxesPage.h create mode 100644 kchart/kchartWizardSetupDataPage.cc create mode 100644 kchart/kchartWizardSetupDataPage.h create mode 100644 kchart/kchart_aboutdata.h create mode 100644 kchart/kchart_factory.cc create mode 100644 kchart/kchart_factory.h create mode 100644 kchart/kchart_factory_init.cc create mode 100644 kchart/kchart_params.cc create mode 100644 kchart/kchart_params.h create mode 100644 kchart/kchart_part.cc create mode 100644 kchart/kchart_part.h create mode 100644 kchart/kchart_readonly.rc create mode 100644 kchart/kchart_view.cc create mode 100644 kchart/kchart_view.h create mode 100644 kchart/kchartcolorarray.h create mode 100644 kchart/kchartpart.desktop create mode 100644 kchart/kdchart/KDChart.cpp create mode 100644 kchart/kdchart/KDChart.h create mode 100644 kchart/kdchart/KDChartAreaPainter.cpp create mode 100644 kchart/kdchart/KDChartAreaPainter.h create mode 100644 kchart/kdchart/KDChartAxesPainter.cpp create mode 100644 kchart/kdchart/KDChartAxesPainter.h create mode 100644 kchart/kdchart/KDChartAxisParams.cpp create mode 100644 kchart/kdchart/KDChartAxisParams.h create mode 100644 kchart/kdchart/KDChartAxisParamsWrapper.cpp create mode 100644 kchart/kdchart/KDChartAxisParamsWrapper.h create mode 100644 kchart/kdchart/KDChartBWPainter.cpp create mode 100644 kchart/kdchart/KDChartBWPainter.h create mode 100644 kchart/kdchart/KDChartBarPainter.cpp create mode 100644 kchart/kdchart/KDChartBarPainter.h create mode 100644 kchart/kdchart/KDChartBaseSeries.cpp create mode 100644 kchart/kdchart/KDChartBaseSeries.h create mode 100644 kchart/kdchart/KDChartCustomBox.cpp create mode 100644 kchart/kdchart/KDChartCustomBox.h create mode 100644 kchart/kdchart/KDChartCustomBoxWrapper.cpp create mode 100644 kchart/kdchart/KDChartCustomBoxWrapper.h create mode 100644 kchart/kdchart/KDChartDataIntern.cpp create mode 100644 kchart/kdchart/KDChartDataIntern.h create mode 100644 kchart/kdchart/KDChartDataRegion.h create mode 100644 kchart/kdchart/KDChartEnums.cpp create mode 100644 kchart/kdchart/KDChartEnums.h create mode 100644 kchart/kdchart/KDChartGlobal.h create mode 100644 kchart/kdchart/KDChartHiLoPainter.cpp create mode 100644 kchart/kdchart/KDChartHiLoPainter.h create mode 100644 kchart/kdchart/KDChartLinesPainter.cpp create mode 100644 kchart/kdchart/KDChartLinesPainter.h create mode 100644 kchart/kdchart/KDChartListTable.h create mode 100644 kchart/kdchart/KDChartNotEnoughSpaceException.h create mode 100644 kchart/kdchart/KDChartObjectFactory.cpp create mode 100644 kchart/kdchart/KDChartObjectFactory.h create mode 100644 kchart/kdchart/KDChartPainter.cpp create mode 100644 kchart/kdchart/KDChartPainter.h create mode 100644 kchart/kdchart/KDChartParams.cpp create mode 100644 kchart/kdchart/KDChartParams.h create mode 100644 kchart/kdchart/KDChartParamsWrapper.cpp create mode 100644 kchart/kdchart/KDChartParamsWrapper.h create mode 100644 kchart/kdchart/KDChartParams_frame.cpp create mode 100644 kchart/kdchart/KDChartParams_io.cpp create mode 100644 kchart/kdchart/KDChartPiePainter.cpp create mode 100644 kchart/kdchart/KDChartPiePainter.h create mode 100644 kchart/kdchart/KDChartPlaneSeries.cpp create mode 100644 kchart/kdchart/KDChartPlaneSeries.h create mode 100644 kchart/kdchart/KDChartPolarPainter.cpp create mode 100644 kchart/kdchart/KDChartPolarPainter.h create mode 100644 kchart/kdchart/KDChartPropertySet.cpp create mode 100644 kchart/kdchart/KDChartPropertySet.h create mode 100644 kchart/kdchart/KDChartRingPainter.cpp create mode 100644 kchart/kdchart/KDChartRingPainter.h create mode 100644 kchart/kdchart/KDChartSeriesCollection.cpp create mode 100644 kchart/kdchart/KDChartSeriesCollection.h create mode 100644 kchart/kdchart/KDChartTable.h create mode 100644 kchart/kdchart/KDChartTableBase.cpp create mode 100644 kchart/kdchart/KDChartTableBase.h create mode 100644 kchart/kdchart/KDChartTableDataWrapper.cpp create mode 100644 kchart/kdchart/KDChartTableDataWrapper.h create mode 100644 kchart/kdchart/KDChartTextPiece.cpp create mode 100644 kchart/kdchart/KDChartTextPiece.h create mode 100644 kchart/kdchart/KDChartUnknownTypeException.h create mode 100644 kchart/kdchart/KDChartVectorSeries.cpp create mode 100644 kchart/kdchart/KDChartVectorSeries.h create mode 100644 kchart/kdchart/KDChartVectorTable.cpp create mode 100644 kchart/kdchart/KDChartVectorTable.h create mode 100644 kchart/kdchart/KDChartWidget.cpp create mode 100644 kchart/kdchart/KDChartWidget.h create mode 100644 kchart/kdchart/KDChartWrapperFactory.cpp create mode 100644 kchart/kdchart/KDChartWrapperFactory.h create mode 100644 kchart/kdchart/KDDrawText.cpp create mode 100644 kchart/kdchart/KDDrawText.h create mode 100644 kchart/kdchart/KDFrame.cpp create mode 100644 kchart/kdchart/KDFrame.h create mode 100644 kchart/kdchart/KDFrameProfileSection.cpp create mode 100644 kchart/kdchart/KDFrameProfileSection.h create mode 100644 kchart/kdchart/KDXMLTools.cpp create mode 100644 kchart/kdchart/KDXMLTools.h create mode 100644 kchart/kdchart/LICENSE create mode 100644 kchart/kdchart/Makefile.am create mode 100644 kchart/kdchart/README create mode 100644 kchart/kdchart/README_BEFORE_HACKING create mode 100644 kchart/kdchart/kdchart_export.h create mode 100644 kchart/main.cc create mode 100644 kchart/pics/Makefile.am create mode 100644 kchart/pics/chart_area_normal.png create mode 100644 kchart/pics/chart_area_normal.svgz create mode 100644 kchart/pics/chart_area_percent.png create mode 100644 kchart/pics/chart_area_percent.svgz create mode 100644 kchart/pics/chart_area_stacked.png create mode 100644 kchart/pics/chart_area_stacked.svgz create mode 100644 kchart/pics/chart_bar_beside.png create mode 100644 kchart/pics/chart_bar_beside.svgz create mode 100644 kchart/pics/chart_bar_layer.png create mode 100644 kchart/pics/chart_bar_layer.svgz create mode 100644 kchart/pics/chart_bar_percent.png create mode 100644 kchart/pics/chart_bar_percent.svgz create mode 100644 kchart/pics/chart_hilo_close.png create mode 100644 kchart/pics/chart_hilo_close.svgz create mode 100644 kchart/pics/chart_hilo_normal.png create mode 100644 kchart/pics/chart_hilo_normal.svgz create mode 100644 kchart/pics/chart_hilo_openclose.png create mode 100644 kchart/pics/chart_hilo_openclose.svgz create mode 100644 kchart/pics/chart_legend_bottom.png create mode 100644 kchart/pics/chart_legend_bottom.svgz create mode 100644 kchart/pics/chart_legend_bottomleft.png create mode 100644 kchart/pics/chart_legend_bottomleft.svgz create mode 100644 kchart/pics/chart_legend_bottomleftbottom.png create mode 100644 kchart/pics/chart_legend_bottomleftbottom.svgz create mode 100644 kchart/pics/chart_legend_bottomleftleft.png create mode 100644 kchart/pics/chart_legend_bottomleftleft.svgz create mode 100644 kchart/pics/chart_legend_bottomright.png create mode 100644 kchart/pics/chart_legend_bottomright.svgz create mode 100644 kchart/pics/chart_legend_bottomrightbottom.png create mode 100644 kchart/pics/chart_legend_bottomrightbottom.svgz create mode 100644 kchart/pics/chart_legend_bottomrightright.png create mode 100644 kchart/pics/chart_legend_bottomrightright.svgz create mode 100644 kchart/pics/chart_legend_left.png create mode 100644 kchart/pics/chart_legend_left.svgz create mode 100644 kchart/pics/chart_legend_nolegend.png create mode 100644 kchart/pics/chart_legend_nolegend.svgz create mode 100644 kchart/pics/chart_legend_right.png create mode 100644 kchart/pics/chart_legend_right.svgz create mode 100644 kchart/pics/chart_legend_top.png create mode 100644 kchart/pics/chart_legend_top.svgz create mode 100644 kchart/pics/chart_legend_topleft.png create mode 100644 kchart/pics/chart_legend_topleft.svgz create mode 100644 kchart/pics/chart_legend_topleftleft.png create mode 100644 kchart/pics/chart_legend_topleftleft.svgz create mode 100644 kchart/pics/chart_legend_toplefttop.png create mode 100644 kchart/pics/chart_legend_toplefttop.svgz create mode 100644 kchart/pics/chart_legend_topright.png create mode 100644 kchart/pics/chart_legend_topright.svgz create mode 100644 kchart/pics/chart_legend_toprightright.png create mode 100644 kchart/pics/chart_legend_toprightright.svgz create mode 100644 kchart/pics/chart_legend_toprighttop.png create mode 100644 kchart/pics/chart_legend_toprighttop.svgz create mode 100644 kchart/pics/chart_legend_vorlage.png create mode 100644 kchart/pics/chart_line_normal.png create mode 100644 kchart/pics/chart_line_normal.svgz create mode 100644 kchart/pics/chart_line_percent.png create mode 100644 kchart/pics/chart_line_percent.svgz create mode 100644 kchart/pics/chart_line_stacked.png create mode 100644 kchart/pics/chart_line_stacked.svgz create mode 100644 kchart/pics/chart_polar_normal.png create mode 100644 kchart/pics/chart_polar_normal.svgz create mode 100644 kchart/pics/chart_polar_percent.png create mode 100644 kchart/pics/chart_polar_percent.svgz create mode 100644 kchart/pics/chart_polar_stacked.png create mode 100644 kchart/pics/chart_polar_stacked.svgz create mode 100644 kchart/pics/hi16-app-kchart.png create mode 100644 kchart/pics/hi32-app-kchart.png create mode 100644 kchart/pics/hi48-app-kchart.png create mode 100644 kchart/templates/.directory create mode 100644 kchart/templates/BarChart.chrt create mode 100644 kchart/templates/BarChart.desktop create mode 100644 kchart/templates/Empty.chrt create mode 100644 kchart/templates/Empty.desktop create mode 100644 kchart/templates/Makefile.am create mode 100644 kchart/templates/cr48-action-template_barchart.png create mode 100644 kchart/templates/cr48-action-template_empty.png create mode 100644 kchart/templates/crsc-action-template_barchart.svgz create mode 100644 kchart/templates/crsc-action-template_empty.svgz create mode 100644 kchart/toolbar/Makefile.am create mode 100644 kchart/toolbar/crystalsvg/Makefile.am create mode 100644 kchart/toolbar/crystalsvg/cr16-action-chart_area.png create mode 100644 kchart/toolbar/crystalsvg/cr16-action-chart_area_3d.png create mode 100644 kchart/toolbar/crystalsvg/cr16-action-chart_bar.png create mode 100644 kchart/toolbar/crystalsvg/cr16-action-chart_bar_3d.png create mode 100644 kchart/toolbar/crystalsvg/cr16-action-chart_boxwhisker.png create mode 100644 kchart/toolbar/crystalsvg/cr16-action-chart_hilo.png create mode 100644 kchart/toolbar/crystalsvg/cr16-action-chart_line.png create mode 100644 kchart/toolbar/crystalsvg/cr16-action-chart_line_3d.png create mode 100644 kchart/toolbar/crystalsvg/cr16-action-chart_pie.png create mode 100644 kchart/toolbar/crystalsvg/cr16-action-chart_pie_3d.png create mode 100644 kchart/toolbar/crystalsvg/cr16-action-chart_polar.png create mode 100644 kchart/toolbar/crystalsvg/cr16-action-chart_ring.png create mode 100644 kchart/toolbar/crystalsvg/cr16-action-data.png create mode 100644 kchart/toolbar/crystalsvg/cr16-action-options.png create mode 100644 kchart/toolbar/crystalsvg/cr16-action-wizard.png create mode 100644 kchart/toolbar/crystalsvg/cr22-action-chart_area.png create mode 100644 kchart/toolbar/crystalsvg/cr22-action-chart_area_3d.png create mode 100644 kchart/toolbar/crystalsvg/cr22-action-chart_bar.png create mode 100644 kchart/toolbar/crystalsvg/cr22-action-chart_bar_3d.png create mode 100644 kchart/toolbar/crystalsvg/cr22-action-chart_boxwhisker.png create mode 100644 kchart/toolbar/crystalsvg/cr22-action-chart_hilo.png create mode 100644 kchart/toolbar/crystalsvg/cr22-action-chart_line.png create mode 100644 kchart/toolbar/crystalsvg/cr22-action-chart_line_3d.png create mode 100644 kchart/toolbar/crystalsvg/cr22-action-chart_pie.png create mode 100644 kchart/toolbar/crystalsvg/cr22-action-chart_pie_3d.png create mode 100644 kchart/toolbar/crystalsvg/cr22-action-chart_polar.png create mode 100644 kchart/toolbar/crystalsvg/cr22-action-chart_ring.png create mode 100644 kchart/toolbar/crystalsvg/cr22-action-data.png create mode 100644 kchart/toolbar/crystalsvg/cr22-action-options.png create mode 100644 kchart/toolbar/crystalsvg/cr22-action-wizard.png create mode 100644 kchart/toolbar/crystalsvg/cr32-action-chart_area.png create mode 100644 kchart/toolbar/crystalsvg/cr32-action-chart_area_3d.png create mode 100644 kchart/toolbar/crystalsvg/cr32-action-chart_bar.png create mode 100644 kchart/toolbar/crystalsvg/cr32-action-chart_bar_3d.png create mode 100644 kchart/toolbar/crystalsvg/cr32-action-chart_boxwhisker.png create mode 100644 kchart/toolbar/crystalsvg/cr32-action-chart_hilo.png create mode 100644 kchart/toolbar/crystalsvg/cr32-action-chart_line.png create mode 100644 kchart/toolbar/crystalsvg/cr32-action-chart_line_3d.png create mode 100644 kchart/toolbar/crystalsvg/cr32-action-chart_pie.png create mode 100644 kchart/toolbar/crystalsvg/cr32-action-chart_pie_3d.png create mode 100644 kchart/toolbar/crystalsvg/cr32-action-chart_polar.png create mode 100644 kchart/toolbar/crystalsvg/cr32-action-chart_ring.png create mode 100644 kchart/toolbar/crystalsvg/cr32-action-data.png create mode 100644 kchart/toolbar/crystalsvg/cr32-action-options.png create mode 100644 kchart/toolbar/crystalsvg/cr32-action-wizard.png create mode 100644 kchart/toolbar/crystalsvg/cr48-action-chart_area.png create mode 100644 kchart/toolbar/crystalsvg/cr48-action-chart_area_3d.png create mode 100644 kchart/toolbar/crystalsvg/cr48-action-chart_bar.png create mode 100644 kchart/toolbar/crystalsvg/cr48-action-chart_bar_3d.png create mode 100644 kchart/toolbar/crystalsvg/cr48-action-chart_boxwhisker.png create mode 100644 kchart/toolbar/crystalsvg/cr48-action-chart_hilo.png create mode 100644 kchart/toolbar/crystalsvg/cr48-action-chart_line.png create mode 100644 kchart/toolbar/crystalsvg/cr48-action-chart_line_3d.png create mode 100644 kchart/toolbar/crystalsvg/cr48-action-chart_pie.png create mode 100644 kchart/toolbar/crystalsvg/cr48-action-chart_pie_3d.png create mode 100644 kchart/toolbar/crystalsvg/cr48-action-chart_polar.png create mode 100644 kchart/toolbar/crystalsvg/cr48-action-chart_ring.png create mode 100644 kchart/toolbar/crystalsvg/cr48-action-options.png create mode 100644 kchart/toolbar/crystalsvg/crsc-action-chart_area.svgz create mode 100644 kchart/toolbar/crystalsvg/crsc-action-chart_area_3d.svgz create mode 100644 kchart/toolbar/crystalsvg/crsc-action-chart_bar.svgz create mode 100644 kchart/toolbar/crystalsvg/crsc-action-chart_bar_3d.svgz create mode 100644 kchart/toolbar/crystalsvg/crsc-action-chart_boxwhisker.svgz create mode 100644 kchart/toolbar/crystalsvg/crsc-action-chart_hilo.svgz create mode 100644 kchart/toolbar/crystalsvg/crsc-action-chart_line.svgz create mode 100644 kchart/toolbar/crystalsvg/crsc-action-chart_line_3d.svgz create mode 100644 kchart/toolbar/crystalsvg/crsc-action-chart_pie.svgz create mode 100644 kchart/toolbar/crystalsvg/crsc-action-chart_pie_3d.svgz create mode 100644 kchart/toolbar/crystalsvg/crsc-action-chart_polar.svgz create mode 100644 kchart/toolbar/crystalsvg/crsc-action-chart_ring.svgz create mode 100644 kchart/toolbar/locolor/Makefile.am create mode 100644 kchart/toolbar/locolor/lo16-action-areas.png create mode 100644 kchart/toolbar/locolor/lo16-action-areas3d.png create mode 100644 kchart/toolbar/locolor/lo16-action-bars.png create mode 100644 kchart/toolbar/locolor/lo16-action-bars3d.png create mode 100644 kchart/toolbar/locolor/lo16-action-cakes.png create mode 100644 kchart/toolbar/locolor/lo16-action-cakes3d.png create mode 100644 kchart/toolbar/locolor/lo16-action-data.png create mode 100644 kchart/toolbar/locolor/lo16-action-hilo.png create mode 100644 kchart/toolbar/locolor/lo16-action-lines.png create mode 100644 kchart/toolbar/locolor/lo16-action-lines3d.png create mode 100644 kchart/toolbar/locolor/lo16-action-options.png create mode 100644 kchart/toolbar/locolor/lo16-action-ring.png create mode 100644 kchart/toolbar/locolor/lo16-action-wizard.png create mode 100644 kdgantt/KDGanttMinimizeSplitter.cpp create mode 100644 kdgantt/KDGanttMinimizeSplitter.h create mode 100644 kdgantt/KDGanttSemiSizingControl.cpp create mode 100644 kdgantt/KDGanttSemiSizingControl.h create mode 100644 kdgantt/KDGanttSizingControl.cpp create mode 100644 kdgantt/KDGanttSizingControl.h create mode 100644 kdgantt/KDGanttView.cpp create mode 100644 kdgantt/KDGanttView.h create mode 100644 kdgantt/KDGanttViewEventItem.cpp create mode 100644 kdgantt/KDGanttViewEventItem.h create mode 100644 kdgantt/KDGanttViewItem.cpp create mode 100644 kdgantt/KDGanttViewItem.h create mode 100644 kdgantt/KDGanttViewItemDrag.cpp create mode 100644 kdgantt/KDGanttViewItemDrag.h create mode 100644 kdgantt/KDGanttViewSubwidgets.cpp create mode 100644 kdgantt/KDGanttViewSubwidgets.h create mode 100644 kdgantt/KDGanttViewSummaryItem.cpp create mode 100644 kdgantt/KDGanttViewSummaryItem.h create mode 100644 kdgantt/KDGanttViewTaskItem.cpp create mode 100644 kdgantt/KDGanttViewTaskItem.h create mode 100644 kdgantt/KDGanttViewTaskLink.cpp create mode 100644 kdgantt/KDGanttViewTaskLink.h create mode 100644 kdgantt/KDGanttViewTaskLinkGroup.cpp create mode 100644 kdgantt/KDGanttViewTaskLinkGroup.h create mode 100644 kdgantt/KDGanttXMLTools.cpp create mode 100644 kdgantt/KDGanttXMLTools.h create mode 100644 kdgantt/Makefile.am create mode 100644 kdgantt/README_BEFORE_HACKING create mode 100644 kdgantt/itemAttributeDialog.ui create mode 100644 kdgantt/itemAttributeDialog.ui.h create mode 100644 kdgantt/qlayoutengine_p.h create mode 100644 kexi/3rdparty/Makefile.am create mode 100644 kexi/3rdparty/README.3rdparty create mode 100644 kexi/3rdparty/configure.in.in create mode 100644 kexi/3rdparty/kexisql/Makefile.am create mode 100644 kexi/3rdparty/kexisql/Makefile.msvc create mode 100644 kexi/3rdparty/kexisql/kexisql.def create mode 100644 kexi/3rdparty/kexisql/src/Makefile.am create mode 100644 kexi/3rdparty/kexisql/src/attach.c create mode 100644 kexi/3rdparty/kexisql/src/auth.c create mode 100644 kexi/3rdparty/kexisql/src/btree.c create mode 100644 kexi/3rdparty/kexisql/src/btree.h create mode 100644 kexi/3rdparty/kexisql/src/btree_rb.c create mode 100644 kexi/3rdparty/kexisql/src/build.c create mode 100644 kexi/3rdparty/kexisql/src/copy.c create mode 100644 kexi/3rdparty/kexisql/src/date.c create mode 100644 kexi/3rdparty/kexisql/src/delete.c create mode 100644 kexi/3rdparty/kexisql/src/encode.c create mode 100644 kexi/3rdparty/kexisql/src/expr.c create mode 100644 kexi/3rdparty/kexisql/src/func.c create mode 100644 kexi/3rdparty/kexisql/src/hash.c create mode 100644 kexi/3rdparty/kexisql/src/hash.h create mode 100644 kexi/3rdparty/kexisql/src/insert.c create mode 100644 kexi/3rdparty/kexisql/src/main.c create mode 100644 kexi/3rdparty/kexisql/src/opcodes.c create mode 100644 kexi/3rdparty/kexisql/src/opcodes.h create mode 100644 kexi/3rdparty/kexisql/src/os.c create mode 100644 kexi/3rdparty/kexisql/src/os.h create mode 100644 kexi/3rdparty/kexisql/src/pager.c create mode 100644 kexi/3rdparty/kexisql/src/pager.h create mode 100644 kexi/3rdparty/kexisql/src/parse.c create mode 100644 kexi/3rdparty/kexisql/src/parse.h create mode 100644 kexi/3rdparty/kexisql/src/parse.out create mode 100644 kexi/3rdparty/kexisql/src/parse.y create mode 100644 kexi/3rdparty/kexisql/src/patches/shell.c.patch create mode 100644 kexi/3rdparty/kexisql/src/pragma.c create mode 100644 kexi/3rdparty/kexisql/src/printf.c create mode 100644 kexi/3rdparty/kexisql/src/random.c create mode 100644 kexi/3rdparty/kexisql/src/select.c create mode 100644 kexi/3rdparty/kexisql/src/shell.c create mode 100644 kexi/3rdparty/kexisql/src/sqlite.h create mode 100644 kexi/3rdparty/kexisql/src/sqliteInt.h create mode 100644 kexi/3rdparty/kexisql/src/sqliteconfig.h create mode 100644 kexi/3rdparty/kexisql/src/table.c create mode 100644 kexi/3rdparty/kexisql/src/tclsqlite.c create mode 100644 kexi/3rdparty/kexisql/src/threadtest.c create mode 100644 kexi/3rdparty/kexisql/src/tokenize.c create mode 100644 kexi/3rdparty/kexisql/src/trigger.c create mode 100644 kexi/3rdparty/kexisql/src/update.c create mode 100644 kexi/3rdparty/kexisql/src/util.c create mode 100644 kexi/3rdparty/kexisql/src/vacuum.c create mode 100644 kexi/3rdparty/kexisql/src/vdbe.c create mode 100644 kexi/3rdparty/kexisql/src/vdbe.h create mode 100644 kexi/3rdparty/kexisql/src/vdbeInt.h create mode 100644 kexi/3rdparty/kexisql/src/vdbeaux.c create mode 100644 kexi/3rdparty/kexisql/src/where.c create mode 100644 kexi/3rdparty/kexisql/tool/Makefile.am create mode 100644 kexi/3rdparty/kexisql/tool/diffdb.c create mode 100644 kexi/3rdparty/kexisql/tool/lemon.c create mode 100644 kexi/3rdparty/kexisql/tool/lempar.c create mode 100755 kexi/3rdparty/kexisql/tool/opcodes.sh create mode 100644 kexi/3rdparty/kexisql3/Makefile.am create mode 100644 kexi/3rdparty/kexisql3/Makefile.msvc create mode 100644 kexi/3rdparty/kexisql3/Makefile.msvc.release create mode 100644 kexi/3rdparty/kexisql3/README create mode 100755 kexi/3rdparty/kexisql3/mkdll.sh create mode 100755 kexi/3rdparty/kexisql3/mkso.sh create mode 100755 kexi/3rdparty/kexisql3/publish.sh create mode 100644 kexi/3rdparty/kexisql3/spec.template create mode 100755 kexi/3rdparty/kexisql3/sqlite3.1 create mode 100644 kexi/3rdparty/kexisql3/sqlite3.def create mode 100644 kexi/3rdparty/kexisql3/src/Makefile.am create mode 100644 kexi/3rdparty/kexisql3/src/alter.c create mode 100644 kexi/3rdparty/kexisql3/src/analyze.c create mode 100644 kexi/3rdparty/kexisql3/src/attach.c create mode 100644 kexi/3rdparty/kexisql3/src/auth.c create mode 100644 kexi/3rdparty/kexisql3/src/btree.c create mode 100644 kexi/3rdparty/kexisql3/src/btree.h create mode 100644 kexi/3rdparty/kexisql3/src/build.c create mode 100644 kexi/3rdparty/kexisql3/src/callback.c create mode 100644 kexi/3rdparty/kexisql3/src/complete.c create mode 100644 kexi/3rdparty/kexisql3/src/date.c create mode 100644 kexi/3rdparty/kexisql3/src/delete.c create mode 100644 kexi/3rdparty/kexisql3/src/expr.c create mode 100644 kexi/3rdparty/kexisql3/src/func.c create mode 100644 kexi/3rdparty/kexisql3/src/hash.c create mode 100644 kexi/3rdparty/kexisql3/src/hash.h create mode 100644 kexi/3rdparty/kexisql3/src/insert.c create mode 100644 kexi/3rdparty/kexisql3/src/kexisql.h create mode 100644 kexi/3rdparty/kexisql3/src/keywordhash.h create mode 100755 kexi/3rdparty/kexisql3/src/ksqlite2to3 create mode 100644 kexi/3rdparty/kexisql3/src/legacy.c create mode 100644 kexi/3rdparty/kexisql3/src/main.c create mode 100644 kexi/3rdparty/kexisql3/src/md5.c create mode 100644 kexi/3rdparty/kexisql3/src/opcodes.c create mode 100644 kexi/3rdparty/kexisql3/src/opcodes.h create mode 100644 kexi/3rdparty/kexisql3/src/os.h create mode 100644 kexi/3rdparty/kexisql3/src/os_common.h create mode 100644 kexi/3rdparty/kexisql3/src/os_mac.c create mode 100644 kexi/3rdparty/kexisql3/src/os_mac.h create mode 100644 kexi/3rdparty/kexisql3/src/os_unix.c create mode 100644 kexi/3rdparty/kexisql3/src/os_unix.h create mode 100644 kexi/3rdparty/kexisql3/src/os_win.c create mode 100644 kexi/3rdparty/kexisql3/src/os_win.h create mode 100644 kexi/3rdparty/kexisql3/src/pager.c create mode 100644 kexi/3rdparty/kexisql3/src/pager.h create mode 100644 kexi/3rdparty/kexisql3/src/parse.c create mode 100644 kexi/3rdparty/kexisql3/src/parse.h create mode 100644 kexi/3rdparty/kexisql3/src/parse.y create mode 100644 kexi/3rdparty/kexisql3/src/patches/README create mode 100644 kexi/3rdparty/kexisql3/src/patches/kexisql-3.2.8.patch create mode 100755 kexi/3rdparty/kexisql3/src/patches/mk_patch.sh create mode 100755 kexi/3rdparty/kexisql3/src/patches/remove_id.sh create mode 100644 kexi/3rdparty/kexisql3/src/pragma.c create mode 100644 kexi/3rdparty/kexisql3/src/prepare.c create mode 100644 kexi/3rdparty/kexisql3/src/printf.c create mode 100644 kexi/3rdparty/kexisql3/src/random.c create mode 100644 kexi/3rdparty/kexisql3/src/select.c create mode 100644 kexi/3rdparty/kexisql3/src/shell.c create mode 100644 kexi/3rdparty/kexisql3/src/sqlite.h create mode 100644 kexi/3rdparty/kexisql3/src/sqlite3.h create mode 100644 kexi/3rdparty/kexisql3/src/sqliteInt.h create mode 100644 kexi/3rdparty/kexisql3/src/sqliteconfig.h create mode 100644 kexi/3rdparty/kexisql3/src/table.c create mode 100644 kexi/3rdparty/kexisql3/src/tclsqlite.c create mode 100644 kexi/3rdparty/kexisql3/src/tokenize.c create mode 100644 kexi/3rdparty/kexisql3/src/trigger.c create mode 100644 kexi/3rdparty/kexisql3/src/update.c create mode 100644 kexi/3rdparty/kexisql3/src/utf.c create mode 100644 kexi/3rdparty/kexisql3/src/util.c create mode 100644 kexi/3rdparty/kexisql3/src/vacuum.c create mode 100644 kexi/3rdparty/kexisql3/src/vdbe.c create mode 100644 kexi/3rdparty/kexisql3/src/vdbe.h create mode 100644 kexi/3rdparty/kexisql3/src/vdbeInt.h create mode 100644 kexi/3rdparty/kexisql3/src/vdbeapi.c create mode 100644 kexi/3rdparty/kexisql3/src/vdbeaux.c create mode 100644 kexi/3rdparty/kexisql3/src/vdbefifo.c create mode 100644 kexi/3rdparty/kexisql3/src/vdbemem.c create mode 100644 kexi/3rdparty/kexisql3/src/where.c create mode 100644 kexi/3rdparty/kexisql3/version create mode 100644 kexi/3rdparty/kolibs/KoPageLayoutColumns.cpp create mode 100644 kexi/3rdparty/kolibs/KoPageLayoutColumns.h create mode 100644 kexi/3rdparty/kolibs/KoPageLayoutColumnsBase.ui create mode 100644 kexi/3rdparty/kolibs/KoPageLayoutHeader.cpp create mode 100644 kexi/3rdparty/kolibs/KoPageLayoutHeader.h create mode 100644 kexi/3rdparty/kolibs/KoPageLayoutHeaderBase.ui create mode 100644 kexi/3rdparty/kolibs/KoPageLayoutSize.cpp create mode 100644 kexi/3rdparty/kolibs/KoPageLayoutSize.h create mode 100644 kexi/3rdparty/kolibs/Makefile.am create mode 100644 kexi/3rdparty/kolibs/README create mode 100644 kexi/3rdparty/kolibs/koGlobal.cc create mode 100644 kexi/3rdparty/kolibs/koGlobal.h create mode 100644 kexi/3rdparty/kolibs/koPageLayout.cpp create mode 100644 kexi/3rdparty/kolibs/koPageLayout.h create mode 100644 kexi/3rdparty/kolibs/koPageLayoutDia.cc create mode 100644 kexi/3rdparty/kolibs/koPageLayoutDia.h create mode 100644 kexi/3rdparty/kolibs/koUnit.cc create mode 100644 kexi/3rdparty/kolibs/koUnit.h create mode 100644 kexi/3rdparty/kolibs/koUnitWidgets.cc create mode 100644 kexi/3rdparty/kolibs/koUnitWidgets.h create mode 100644 kexi/3rdparty/kolibs/koffice_export.h create mode 100644 kexi/3rdparty/uuid/ChangeLog create mode 100644 kexi/3rdparty/uuid/Makefile.am create mode 100644 kexi/3rdparty/uuid/clear.c create mode 100644 kexi/3rdparty/uuid/compare.c create mode 100644 kexi/3rdparty/uuid/configure.in create mode 100644 kexi/3rdparty/uuid/copy.c create mode 100644 kexi/3rdparty/uuid/gen_uuid.c create mode 100644 kexi/3rdparty/uuid/gen_uuid_nt.c create mode 100644 kexi/3rdparty/uuid/isnull.c create mode 100644 kexi/3rdparty/uuid/libuuid.3.in create mode 100644 kexi/3rdparty/uuid/pack.c create mode 100644 kexi/3rdparty/uuid/parse.c create mode 100644 kexi/3rdparty/uuid/tst_uuid.c create mode 100644 kexi/3rdparty/uuid/unpack.c create mode 100644 kexi/3rdparty/uuid/unparse.c create mode 100644 kexi/3rdparty/uuid/uuid.h create mode 100644 kexi/3rdparty/uuid/uuid.pro create mode 100644 kexi/3rdparty/uuid/uuidP.h create mode 100644 kexi/3rdparty/uuid/uuid_clear.3.in create mode 100644 kexi/3rdparty/uuid/uuid_compare.3.in create mode 100644 kexi/3rdparty/uuid/uuid_copy.3.in create mode 100644 kexi/3rdparty/uuid/uuid_generate.3.in create mode 100644 kexi/3rdparty/uuid/uuid_is_null.3.in create mode 100644 kexi/3rdparty/uuid/uuid_parse.3.in create mode 100644 kexi/3rdparty/uuid/uuid_time.3.in create mode 100644 kexi/3rdparty/uuid/uuid_time.c create mode 100644 kexi/3rdparty/uuid/uuid_types.h.in create mode 100644 kexi/3rdparty/uuid/uuid_unparse.3.in create mode 100644 kexi/CHANGES create mode 100644 kexi/Makefile.am create mode 100644 kexi/Makefile.global create mode 100644 kexi/README create mode 100644 kexi/chartable.txt create mode 100644 kexi/configure.in.in create mode 100644 kexi/core/Makefile.am create mode 100644 kexi/core/kexi.cpp create mode 100644 kexi/core/kexi.h create mode 100644 kexi/core/kexi_global.cpp create mode 100644 kexi/core/kexiaboutdata.cpp create mode 100644 kexi/core/kexiaboutdata.h create mode 100644 kexi/core/kexiactioncategories.cpp create mode 100644 kexi/core/kexiactioncategories.h create mode 100644 kexi/core/kexiactionproxy.cpp create mode 100644 kexi/core/kexiactionproxy.h create mode 100644 kexi/core/kexiactionproxy_p.h create mode 100644 kexi/core/kexiblobbuffer.cpp create mode 100644 kexi/core/kexiblobbuffer.h create mode 100644 kexi/core/kexicmdlineargs.h create mode 100644 kexi/core/kexicontexthelp.cpp create mode 100644 kexi/core/kexicontexthelp.h create mode 100644 kexi/core/kexicontexthelp_p.h create mode 100644 kexi/core/kexidataiteminterface.cpp create mode 100644 kexi/core/kexidataiteminterface.h create mode 100644 kexi/core/kexidbconnectionset.cpp create mode 100644 kexi/core/kexidbconnectionset.h create mode 100644 kexi/core/kexidbshortcutfile.cpp create mode 100644 kexi/core/kexidbshortcutfile.h create mode 100644 kexi/core/kexidialogbase.cpp create mode 100644 kexi/core/kexidialogbase.h create mode 100644 kexi/core/kexidragobjects.cpp create mode 100644 kexi/core/kexidragobjects.h create mode 100644 kexi/core/kexievents.cpp create mode 100644 kexi/core/kexievents.h create mode 100644 kexi/core/kexiguimsghandler.cpp create mode 100644 kexi/core/kexiguimsghandler.h create mode 100644 kexi/core/kexiinternalpart.cpp create mode 100644 kexi/core/kexiinternalpart.h create mode 100644 kexi/core/keximainwindow.cpp create mode 100644 kexi/core/keximainwindow.h create mode 100644 kexi/core/kexipart.cpp create mode 100644 kexi/core/kexipart.h create mode 100644 kexi/core/kexipartdatasource.cpp create mode 100644 kexi/core/kexipartdatasource.h create mode 100644 kexi/core/kexipartguiclient.h create mode 100644 kexi/core/kexipartinfo.cpp create mode 100644 kexi/core/kexipartinfo.h create mode 100644 kexi/core/kexipartinfo_p.h create mode 100644 kexi/core/kexipartitem.cpp create mode 100644 kexi/core/kexipartitem.h create mode 100644 kexi/core/kexipartmanager.cpp create mode 100644 kexi/core/kexipartmanager.h create mode 100644 kexi/core/kexiproject.cpp create mode 100644 kexi/core/kexiproject.h create mode 100644 kexi/core/kexiprojectconnectiondata.cpp create mode 100644 kexi/core/kexiprojectconnectiondata.h create mode 100644 kexi/core/kexiprojectdata.cpp create mode 100644 kexi/core/kexiprojectdata.h create mode 100644 kexi/core/kexiprojectset.cpp create mode 100644 kexi/core/kexiprojectset.h create mode 100644 kexi/core/kexisearchandreplaceiface.cpp create mode 100644 kexi/core/kexisearchandreplaceiface.h create mode 100644 kexi/core/kexisharedactionhost.cpp create mode 100644 kexi/core/kexisharedactionhost.h create mode 100644 kexi/core/kexisharedactionhost_p.h create mode 100644 kexi/core/kexistartupdata.cpp create mode 100644 kexi/core/kexistartupdata.h create mode 100644 kexi/core/kexistaticpart.cpp create mode 100644 kexi/core/kexistaticpart.h create mode 100644 kexi/core/kexitabledesignerinterface.cpp create mode 100644 kexi/core/kexitabledesignerinterface.h create mode 100644 kexi/core/kexitemplateloader.cpp create mode 100644 kexi/core/kexitemplateloader.h create mode 100644 kexi/core/kexitextmsghandler.cpp create mode 100644 kexi/core/kexitextmsghandler.h create mode 100644 kexi/core/kexiuseraction.cpp create mode 100644 kexi/core/kexiuseraction.h create mode 100644 kexi/core/kexiuseractionmethod.cpp create mode 100644 kexi/core/kexiuseractionmethod.h create mode 100644 kexi/core/kexiviewbase.cpp create mode 100644 kexi/core/kexiviewbase.h create mode 100644 kexi/data/Makefile.am create mode 100644 kexi/data/kde34compat/Makefile.am create mode 100644 kexi/data/kde34compat/msaccess.magic create mode 100644 kexi/data/kde34compat/sqlite.magic create mode 100644 kexi/data/kde34compat/x-sqlite2.desktop create mode 100644 kexi/data/kde34compat/x-sqlite3.desktop create mode 100644 kexi/data/kexi.magic create mode 100644 kexi/data/kexihandler.desktop create mode 100644 kexi/data/kexirc create mode 100644 kexi/data/kexiui.rc create mode 100644 kexi/data/tips create mode 100644 kexi/data/x-kexi-connectiondata.desktop create mode 100644 kexi/data/x-kexiproject-shortcut.desktop create mode 100644 kexi/data/x-kexiproject-sqlite.desktop create mode 100644 kexi/data/x-kexiproject-sqlite2.desktop create mode 100644 kexi/data/x-kexiproject-sqlite3.desktop create mode 100644 kexi/debian/changelog create mode 100644 kexi/debian/compat create mode 100644 kexi/debian/control create mode 100644 kexi/debian/copyright create mode 100644 kexi/debian/debiandirs create mode 100644 kexi/debian/kexi-mysql-driver.install create mode 100644 kexi/debian/kexi-mysql-driver.postinst create mode 100644 kexi/debian/kexi-mysql-driver.postrm create mode 100644 kexi/debian/kexi-postgresql-driver.install create mode 100644 kexi/debian/kexi-postgresql-driver.postinst create mode 100644 kexi/debian/kexi-postgresql-driver.postrm create mode 100644 kexi/debian/kexi.install create mode 100644 kexi/debian/kexi.manpages create mode 100644 kexi/debian/kexi.menu create mode 100644 kexi/debian/kexi.postinst create mode 100644 kexi/debian/kexi.postrm create mode 100644 kexi/debian/kformdesigner.menu create mode 100644 kexi/debian/libkexi-dev.install create mode 100644 kexi/debian/libkexi-dev.postinst create mode 100644 kexi/debian/libkexi-dev.postrm create mode 100644 kexi/debian/man/kexi.1 create mode 100644 kexi/debian/man/kformdesigner.1 create mode 100644 kexi/debian/man/ksqlite.1 create mode 100644 kexi/debian/man/ksqlite2.1 create mode 100644 kexi/debian/man/ksqlite2to3.1 create mode 100644 kexi/debian/overrides/kexi create mode 100644 kexi/debian/overrides/kexi-postgresql-driver create mode 100644 kexi/debian/rules create mode 100644 kexi/doc/README create mode 100644 kexi/doc/common/bottom1.png create mode 100644 kexi/doc/common/bottom2.png create mode 100644 kexi/doc/common/docheadergears.png create mode 100644 kexi/doc/common/doctop1a-online.png create mode 100644 kexi/doc/common/doxygen.css create mode 100644 kexi/doc/common/footer.html create mode 100644 kexi/doc/common/grad.png create mode 100644 kexi/doc/common/header.html create mode 100644 kexi/doc/common/headerbg.png create mode 100644 kexi/doc/common/kde-common.css create mode 100644 kexi/doc/common/kde-default.css create mode 100644 kexi/doc/common/kde-web.css create mode 100644 kexi/doc/common/kmenu.png create mode 100644 kexi/doc/common/shadow.png create mode 100644 kexi/doc/common/web-docbottom.png create mode 100755 kexi/doc/dev/CHANGELOG-Kexi-js create mode 100644 kexi/doc/dev/INTERESTING create mode 100644 kexi/doc/dev/TODO-Kexi-js create mode 100644 kexi/doc/dev/advantages.txt create mode 100644 kexi/doc/dev/alter_table_type_conversions.ods create mode 100644 kexi/doc/dev/auto_update_service.txt create mode 100644 kexi/doc/dev/compile_time_options.txt create mode 100644 kexi/doc/dev/kexi_alter_table.txt create mode 100644 kexi/doc/dev/kexi_final_mode.txt create mode 100644 kexi/doc/dev/kexi_general_import_export.txt create mode 100644 kexi/doc/dev/kexi_guidelines.txt create mode 100644 kexi/doc/dev/kexi_i18n_guidelines.txt create mode 100644 kexi/doc/dev/kexi_import.txt create mode 100644 kexi/doc/dev/kexi_issues.txt create mode 100644 kexi/doc/dev/kexidb_api_changes.txt create mode 100644 kexi/doc/dev/kexidb_issues.txt create mode 100644 kexi/doc/dev/kexidb_sql.txt create mode 100644 kexi/doc/dev/kexisql_grammar_notes.txt create mode 100644 kexi/doc/dev/lib_dependency.odg create mode 100644 kexi/doc/dev/lib_dependency.png create mode 100644 kexi/doc/dev/mysql_bugs.txt create mode 100644 kexi/doc/dev/naming_conventions.txt create mode 100644 kexi/doc/dev/pgsql_issues.txt create mode 100644 kexi/doc/dev/settings.txt create mode 100644 kexi/doc/dev/sql_engine_specifics.txt create mode 100644 kexi/doc/dev/sqlite_issues.txt create mode 100644 kexi/doc/dev/tableview_issues.txt create mode 100644 kexi/doc/handbook/docbook-status.txt create mode 100644 kexi/doc/handbook/html.tmp/01_01_00_what_is_db.html create mode 100644 kexi/doc/handbook/html.tmp/01_02_00_db_spreadsheet.html create mode 100644 kexi/doc/handbook/html.tmp/01_03_00_design.html create mode 100644 kexi/doc/handbook/html.tmp/01_04_00_who_needs.html create mode 100644 kexi/doc/handbook/html.tmp/01_05_00_db_software.html create mode 100644 kexi/doc/handbook/html.tmp/02_00_00_idx_intro_to_kexi.html create mode 100644 kexi/doc/handbook/html.tmp/02_01_00_what_is_kexi.html create mode 100644 kexi/doc/handbook/html.tmp/02_02_00_features_of_kexi.html create mode 100644 kexi/doc/handbook/html.tmp/02_03_00_is_kexi_for_me.html create mode 100644 kexi/doc/handbook/html.tmp/02_04_00_differences.html create mode 100644 kexi/doc/handbook/html.tmp/04_00_00_idx_basics_kexi.html create mode 100644 kexi/doc/handbook/html.tmp/04_01_00_project_files.html create mode 100644 kexi/doc/handbook/html.tmp/04_02_00_running_kexi.html create mode 100644 kexi/doc/handbook/html.tmp/04_03_00_creating_database.html create mode 100644 kexi/doc/handbook/html.tmp/04_04_00_project_opening.html create mode 100644 kexi/doc/handbook/html.tmp/04_05_00_help_on_help.html create mode 100644 kexi/doc/handbook/html.tmp/04_06_00_main_application_elements.html create mode 100644 kexi/doc/handbook/html.tmp/04_06_01_project_navigator.html create mode 100644 kexi/doc/handbook/html.tmp/04_06_02_object_windows.html create mode 100644 kexi/doc/handbook/html.tmp/04_06_03_property_editor.html create mode 100644 kexi/doc/handbook/html.tmp/05_00_00_idx_building_simple_database.html create mode 100644 kexi/doc/handbook/html.tmp/05_01_00_table_designing.html create mode 100644 kexi/doc/handbook/html.tmp/05_02_00_entering_data_into_tables.html create mode 100755 kexi/doc/handbook/html.tmp/05_03_00_query_designing.html create mode 100644 kexi/doc/handbook/html.tmp/05_04_00_form_designing.html create mode 100644 kexi/doc/handbook/html.tmp/05_05_00_data_entering_into_forms.html create mode 100644 kexi/doc/handbook/html.tmp/08_00_00_kexi_tuning.html create mode 100644 kexi/doc/handbook/html.tmp/08_01_00_mdi.html create mode 100644 kexi/doc/handbook/html.tmp/08_02_00_dock_undock.html create mode 100644 kexi/doc/handbook/html.tmp/08_03_00_conf_keys.html create mode 100644 kexi/doc/handbook/translation-status.txt create mode 100644 kexi/doc/kexidb/kexidb.doxygen create mode 100644 kexi/doc/plan/kexi-announce.txt create mode 100644 kexi/examples/Makefile.am create mode 100644 kexi/examples/README create mode 100644 kexi/examples/Simple_Database.kexi.sql create mode 100755 kexi/examples/build_kexi_file.sh create mode 100755 kexi/examples/build_kexi_files.sh create mode 100755 kexi/examples/update_sql_files.sh create mode 100644 kexi/formeditor/Makefile.am create mode 100644 kexi/formeditor/TODO create mode 100644 kexi/formeditor/commands.cpp create mode 100644 kexi/formeditor/commands.h create mode 100644 kexi/formeditor/connectiondialog.cpp create mode 100644 kexi/formeditor/connectiondialog.h create mode 100644 kexi/formeditor/container.cpp create mode 100644 kexi/formeditor/container.h create mode 100644 kexi/formeditor/editlistviewdialog.cpp create mode 100644 kexi/formeditor/editlistviewdialog.h create mode 100644 kexi/formeditor/events.cpp create mode 100644 kexi/formeditor/events.h create mode 100644 kexi/formeditor/factories/Makefile.am create mode 100644 kexi/formeditor/factories/containerfactory.cpp create mode 100644 kexi/formeditor/factories/containerfactory.h create mode 100644 kexi/formeditor/factories/kformdesigner_containers.desktop create mode 100644 kexi/formeditor/factories/kformdesigner_stdwidgets.desktop create mode 100644 kexi/formeditor/factories/stdwidgetfactory.cpp create mode 100644 kexi/formeditor/factories/stdwidgetfactory.h create mode 100644 kexi/formeditor/form.cpp create mode 100644 kexi/formeditor/form.h create mode 100644 kexi/formeditor/formIO.cpp create mode 100644 kexi/formeditor/formIO.h create mode 100644 kexi/formeditor/formmanager.cpp create mode 100644 kexi/formeditor/formmanager.h create mode 100644 kexi/formeditor/kdevelop_plugin/Makefile.am create mode 100644 kexi/formeditor/kdevelop_plugin/kfd_kdev_part.cpp create mode 100644 kexi/formeditor/kdevelop_plugin/kfd_kdev_part.h create mode 100644 kexi/formeditor/kdevelop_plugin/kformdesigner_kdev_part.desktop create mode 100644 kexi/formeditor/kdevelop_plugin/kformdesigner_part.rc create mode 100644 kexi/formeditor/kdevelop_plugin/kformdesigner_part_shell.rc create mode 100644 kexi/formeditor/kfdpixmapedit.cpp create mode 100644 kexi/formeditor/kfdpixmapedit.h create mode 100644 kexi/formeditor/libactionwidget.cpp create mode 100644 kexi/formeditor/libactionwidget.h create mode 100644 kexi/formeditor/objecttree.cpp create mode 100644 kexi/formeditor/objecttree.h create mode 100644 kexi/formeditor/objecttreeview.cpp create mode 100644 kexi/formeditor/objecttreeview.h create mode 100644 kexi/formeditor/resizehandle.cpp create mode 100644 kexi/formeditor/resizehandle.h create mode 100644 kexi/formeditor/richtextdialog.cpp create mode 100644 kexi/formeditor/richtextdialog.h create mode 100644 kexi/formeditor/scripting/Makefile.am create mode 100644 kexi/formeditor/scripting/formscript.cpp create mode 100644 kexi/formeditor/scripting/formscript.h create mode 100644 kexi/formeditor/scripting/scriptIO.cpp create mode 100644 kexi/formeditor/scripting/scriptIO.h create mode 100644 kexi/formeditor/scripting/scriptmanager.cpp create mode 100644 kexi/formeditor/scripting/scriptmanager.h create mode 100644 kexi/formeditor/spring.cpp create mode 100644 kexi/formeditor/spring.h create mode 100644 kexi/formeditor/tabstopdialog.cpp create mode 100644 kexi/formeditor/tabstopdialog.h create mode 100644 kexi/formeditor/test/Makefile.am create mode 100644 kexi/formeditor/test/cr16-app-kformdesigner.png create mode 100644 kexi/formeditor/test/cr22-app-kformdesigner.png create mode 100644 kexi/formeditor/test/cr32-app-kformdesigner.png create mode 100644 kexi/formeditor/test/kfd_mainwindow.cpp create mode 100644 kexi/formeditor/test/kfd_mainwindow.h create mode 100644 kexi/formeditor/test/kfd_mainwindow.rc create mode 100644 kexi/formeditor/test/kfd_part.cpp create mode 100644 kexi/formeditor/test/kfd_part.h create mode 100644 kexi/formeditor/test/kformdesigner.desktop create mode 100644 kexi/formeditor/test/kformdesigner_part.desktop create mode 100644 kexi/formeditor/test/kformdesigner_part.rc create mode 100644 kexi/formeditor/test/kformdesigner_part_shell.rc create mode 100644 kexi/formeditor/test/main.cpp create mode 100644 kexi/formeditor/utils.cpp create mode 100644 kexi/formeditor/utils.h create mode 100644 kexi/formeditor/widgetfactory.cpp create mode 100644 kexi/formeditor/widgetfactory.desktop create mode 100644 kexi/formeditor/widgetfactory.h create mode 100644 kexi/formeditor/widgetlibrary.cpp create mode 100644 kexi/formeditor/widgetlibrary.h create mode 100644 kexi/formeditor/widgetpropertyset.cpp create mode 100644 kexi/formeditor/widgetpropertyset.h create mode 100644 kexi/formeditor/widgetwithsubpropertiesinterface.cpp create mode 100644 kexi/formeditor/widgetwithsubpropertiesinterface.h create mode 100644 kexi/kexi.desktop create mode 100644 kexi/kexi_export.h create mode 100644 kexi/kexi_global.h create mode 100644 kexi/kexi_version.h create mode 100644 kexi/kexidb/Makefile.am create mode 100644 kexi/kexidb/admin.cpp create mode 100644 kexi/kexidb/admin.h create mode 100644 kexi/kexidb/alter.cpp create mode 100644 kexi/kexidb/alter.h create mode 100644 kexi/kexidb/common.pro create mode 100644 kexi/kexidb/connection.cpp create mode 100644 kexi/kexidb/connection.h create mode 100644 kexi/kexidb/connection_p.h create mode 100644 kexi/kexidb/connectiondata.cpp create mode 100644 kexi/kexidb/connectiondata.h create mode 100644 kexi/kexidb/cursor.cpp create mode 100644 kexi/kexidb/cursor.h create mode 100644 kexi/kexidb/cursor_p.h create mode 100644 kexi/kexidb/dbobjectnamevalidator.cpp create mode 100644 kexi/kexidb/dbobjectnamevalidator.h create mode 100644 kexi/kexidb/dbproperties.cpp create mode 100644 kexi/kexidb/dbproperties.h create mode 100644 kexi/kexidb/driver.cpp create mode 100644 kexi/kexidb/driver.h create mode 100644 kexi/kexidb/driver_p.cpp create mode 100644 kexi/kexidb/driver_p.h create mode 100644 kexi/kexidb/drivermanager.cpp create mode 100644 kexi/kexidb/drivermanager.h create mode 100644 kexi/kexidb/drivermanager_p.h create mode 100644 kexi/kexidb/drivers/Makefile.am create mode 100644 kexi/kexidb/drivers/common.pro create mode 100644 kexi/kexidb/drivers/configure.in.bot create mode 100644 kexi/kexidb/drivers/configure.in.in create mode 100644 kexi/kexidb/drivers/drivers.pro create mode 100644 kexi/kexidb/drivers/mySQL/Makefile.am create mode 100644 kexi/kexidb/drivers/mySQL/kexidb_mysqldriver.desktop create mode 100644 kexi/kexidb/drivers/mySQL/mySQL.pro create mode 100644 kexi/kexidb/drivers/mySQL/mysqlconnection.cpp create mode 100644 kexi/kexidb/drivers/mySQL/mysqlconnection.h create mode 100644 kexi/kexidb/drivers/mySQL/mysqlconnection_p.cpp create mode 100644 kexi/kexidb/drivers/mySQL/mysqlconnection_p.h create mode 100644 kexi/kexidb/drivers/mySQL/mysqlcursor.cpp create mode 100644 kexi/kexidb/drivers/mySQL/mysqlcursor.h create mode 100644 kexi/kexidb/drivers/mySQL/mysqldriver.cpp create mode 100644 kexi/kexidb/drivers/mySQL/mysqldriver.h create mode 100644 kexi/kexidb/drivers/mySQL/mysqlkeywords.cpp create mode 100644 kexi/kexidb/drivers/mySQL/mysqlpreparedstatement.cpp create mode 100644 kexi/kexidb/drivers/mySQL/mysqlpreparedstatement.h create mode 100644 kexi/kexidb/drivers/odbc/Makefile.am create mode 100644 kexi/kexidb/drivers/odbc/kexidb_odbcdriver.desktop create mode 100644 kexi/kexidb/drivers/odbc/odbcconnection.cpp create mode 100644 kexi/kexidb/drivers/odbc/odbcconnection.h create mode 100644 kexi/kexidb/drivers/odbc/odbcdriver.cpp create mode 100644 kexi/kexidb/drivers/odbc/odbcdriver.h create mode 100644 kexi/kexidb/drivers/pqxx/Makefile.am create mode 100644 kexi/kexidb/drivers/pqxx/README create mode 100644 kexi/kexidb/drivers/pqxx/kexidb_pqxxsqldriver.desktop create mode 100644 kexi/kexidb/drivers/pqxx/pqxxconnection.cpp create mode 100644 kexi/kexidb/drivers/pqxx/pqxxconnection.h create mode 100644 kexi/kexidb/drivers/pqxx/pqxxconnection_p.cpp create mode 100644 kexi/kexidb/drivers/pqxx/pqxxconnection_p.h create mode 100644 kexi/kexidb/drivers/pqxx/pqxxcursor.cpp create mode 100644 kexi/kexidb/drivers/pqxx/pqxxcursor.h create mode 100644 kexi/kexidb/drivers/pqxx/pqxxdriver.cpp create mode 100644 kexi/kexidb/drivers/pqxx/pqxxdriver.h create mode 100644 kexi/kexidb/drivers/pqxx/pqxxkeywords.cpp create mode 100644 kexi/kexidb/drivers/pqxx/pqxxpreparedstatement.cpp create mode 100644 kexi/kexidb/drivers/pqxx/pqxxpreparedstatement.h create mode 100644 kexi/kexidb/drivers/sqlite/Makefile.am create mode 100644 kexi/kexidb/drivers/sqlite/driver/sqlite.h create mode 100644 kexi/kexidb/drivers/sqlite/kexidb_sqlite3driver.desktop create mode 100644 kexi/kexidb/drivers/sqlite/sqlite.pro create mode 100644 kexi/kexidb/drivers/sqlite/sqlite_common.pro create mode 100644 kexi/kexidb/drivers/sqlite/sqliteadmin.cpp create mode 100644 kexi/kexidb/drivers/sqlite/sqliteadmin.h create mode 100644 kexi/kexidb/drivers/sqlite/sqlitealter.cpp create mode 100644 kexi/kexidb/drivers/sqlite/sqliteconnection.cpp create mode 100644 kexi/kexidb/drivers/sqlite/sqliteconnection.h create mode 100644 kexi/kexidb/drivers/sqlite/sqliteconnection_p.h create mode 100644 kexi/kexidb/drivers/sqlite/sqlitecursor.cpp create mode 100644 kexi/kexidb/drivers/sqlite/sqlitecursor.h create mode 100644 kexi/kexidb/drivers/sqlite/sqlitedriver.cpp create mode 100644 kexi/kexidb/drivers/sqlite/sqlitedriver.h create mode 100644 kexi/kexidb/drivers/sqlite/sqlitekeywords.cpp create mode 100644 kexi/kexidb/drivers/sqlite/sqlitepreparedstatement.cpp create mode 100644 kexi/kexidb/drivers/sqlite/sqlitepreparedstatement.h create mode 100644 kexi/kexidb/drivers/sqlite/sqlitevacuum.cpp create mode 100644 kexi/kexidb/drivers/sqlite/sqlitevacuum.h create mode 100644 kexi/kexidb/drivers/sqlite2/Makefile.am create mode 100644 kexi/kexidb/drivers/sqlite2/kexidb_sqlite2driver.desktop create mode 100644 kexi/kexidb/drivers/sqlite2/sqlite2.pro create mode 100644 kexi/kexidb/drivers/sqlite2/sqliteadmin.cpp create mode 100644 kexi/kexidb/drivers/sqlite2/sqliteadmin.h create mode 100644 kexi/kexidb/drivers/sqlite2/sqlitealter.cpp create mode 100644 kexi/kexidb/drivers/sqlite2/sqliteconnection.cpp create mode 100644 kexi/kexidb/drivers/sqlite2/sqliteconnection.h create mode 100644 kexi/kexidb/drivers/sqlite2/sqliteconnection_p.h create mode 100644 kexi/kexidb/drivers/sqlite2/sqlitecursor.cpp create mode 100644 kexi/kexidb/drivers/sqlite2/sqlitecursor.h create mode 100644 kexi/kexidb/drivers/sqlite2/sqlitedriver.cpp create mode 100644 kexi/kexidb/drivers/sqlite2/sqlitedriver.h create mode 100644 kexi/kexidb/drivers/sqlite2/sqlitepreparedstatement.cpp create mode 100644 kexi/kexidb/error.h create mode 100644 kexi/kexidb/expression.cpp create mode 100644 kexi/kexidb/expression.h create mode 100644 kexi/kexidb/field.cpp create mode 100644 kexi/kexidb/field.h create mode 100644 kexi/kexidb/fieldlist.cpp create mode 100644 kexi/kexidb/fieldlist.h create mode 100644 kexi/kexidb/fieldvalidator.cpp create mode 100644 kexi/kexidb/fieldvalidator.h create mode 100644 kexi/kexidb/global.cpp create mode 100644 kexi/kexidb/global.h create mode 100644 kexi/kexidb/indexschema.cpp create mode 100644 kexi/kexidb/indexschema.h create mode 100644 kexi/kexidb/kexidb.pro create mode 100644 kexi/kexidb/kexidb_driver.desktop create mode 100644 kexi/kexidb/kexidb_export.h create mode 100644 kexi/kexidb/keywords.cpp create mode 100644 kexi/kexidb/lookupfieldschema.cpp create mode 100644 kexi/kexidb/lookupfieldschema.h create mode 100644 kexi/kexidb/msghandler.cpp create mode 100644 kexi/kexidb/msghandler.h create mode 100644 kexi/kexidb/object.cpp create mode 100644 kexi/kexidb/object.h create mode 100644 kexi/kexidb/parser/Makefile.am create mode 100644 kexi/kexidb/parser/TODO create mode 100755 kexi/kexidb/parser/extract_tokens.sh create mode 100644 kexi/kexidb/parser/parser.cpp create mode 100644 kexi/kexidb/parser/parser.h create mode 100644 kexi/kexidb/parser/parser_p.cpp create mode 100644 kexi/kexidb/parser/parser_p.h create mode 100644 kexi/kexidb/parser/sqlparser.cpp create mode 100644 kexi/kexidb/parser/sqlparser.h create mode 100644 kexi/kexidb/parser/sqlparser.y create mode 100644 kexi/kexidb/parser/sqlscanner.cpp create mode 100644 kexi/kexidb/parser/sqlscanner.l create mode 100644 kexi/kexidb/parser/sqltypes.h create mode 100644 kexi/kexidb/parser/tokens.cpp create mode 100644 kexi/kexidb/preparedstatement.cpp create mode 100644 kexi/kexidb/preparedstatement.h create mode 100644 kexi/kexidb/queryschema.cpp create mode 100644 kexi/kexidb/queryschema.h create mode 100644 kexi/kexidb/queryschemaparameter.cpp create mode 100644 kexi/kexidb/queryschemaparameter.h create mode 100644 kexi/kexidb/record.h create mode 100644 kexi/kexidb/relationship.cpp create mode 100644 kexi/kexidb/relationship.h create mode 100644 kexi/kexidb/roweditbuffer.cpp create mode 100644 kexi/kexidb/roweditbuffer.h create mode 100644 kexi/kexidb/schemadata.cpp create mode 100644 kexi/kexidb/schemadata.h create mode 100644 kexi/kexidb/simplecommandlineapp.cpp create mode 100644 kexi/kexidb/simplecommandlineapp.h create mode 100644 kexi/kexidb/tableschema.cpp create mode 100644 kexi/kexidb/tableschema.h create mode 100644 kexi/kexidb/transaction.cpp create mode 100644 kexi/kexidb/transaction.h create mode 100644 kexi/kexidb/utils.cpp create mode 100644 kexi/kexidb/utils.h create mode 100644 kexi/kexidb/utils_p.h create mode 100644 kexi/kexiutils/Makefile.am create mode 100644 kexi/kexiutils/debuggui.cpp create mode 100755 kexi/kexiutils/generate_transliteration_table.sh create mode 100644 kexi/kexiutils/identifier.cpp create mode 100644 kexi/kexiutils/identifier.h create mode 100644 kexi/kexiutils/kexiutils_export.h create mode 100644 kexi/kexiutils/longlongvalidator.cpp create mode 100644 kexi/kexiutils/longlongvalidator.h create mode 100644 kexi/kexiutils/styleproxy.cpp create mode 100644 kexi/kexiutils/styleproxy.h create mode 100644 kexi/kexiutils/transliteration_table.cpp.bz2 create mode 100644 kexi/kexiutils/transliteration_table.cpp.patch create mode 100644 kexi/kexiutils/transliteration_table.h create mode 100644 kexi/kexiutils/transliteration_table.readme create mode 100644 kexi/kexiutils/tristate.h create mode 100755 kexi/kexiutils/update_transliteration_table_patch.sh create mode 100644 kexi/kexiutils/utils.cpp create mode 100644 kexi/kexiutils/utils.h create mode 100644 kexi/kexiutils/utils_p.h create mode 100644 kexi/kexiutils/validator.cpp create mode 100644 kexi/kexiutils/validator.h create mode 100644 kexi/main.cpp create mode 100644 kexi/main/Makefile.am create mode 100644 kexi/main/configure.in.in create mode 100644 kexi/main/kde2_closebutton.xpm create mode 100644 kexi/main/kexifinddialog.cpp create mode 100644 kexi/main/kexifinddialog.h create mode 100644 kexi/main/kexifinddialogbase.ui create mode 100644 kexi/main/keximainwindowimpl.cpp create mode 100644 kexi/main/keximainwindowimpl.h create mode 100644 kexi/main/keximainwindowimpl_p.h create mode 100644 kexi/main/kexinamedialog.cpp create mode 100644 kexi/main/kexinamedialog.h create mode 100644 kexi/main/kexinamewidget.cpp create mode 100644 kexi/main/kexinamewidget.h create mode 100644 kexi/main/kexinewstuff.cpp create mode 100644 kexi/main/kexinewstuff.h create mode 100644 kexi/main/kexistatusbar.cpp create mode 100644 kexi/main/kexistatusbar.h create mode 100644 kexi/main/ksplitter.h create mode 100644 kexi/main/printing/Makefile.am create mode 100644 kexi/main/printing/kexisimpleprintingengine.cpp create mode 100644 kexi/main/printing/kexisimpleprintingengine.h create mode 100644 kexi/main/printing/kexisimpleprintingpagesetup.cpp create mode 100644 kexi/main/printing/kexisimpleprintingpagesetup.h create mode 100644 kexi/main/printing/kexisimpleprintingpagesetupbase.ui create mode 100644 kexi/main/printing/kexisimpleprintingpart.cpp create mode 100644 kexi/main/printing/kexisimpleprintingpart.h create mode 100644 kexi/main/printing/kexisimpleprintpreviewwindow.cpp create mode 100644 kexi/main/printing/kexisimpleprintpreviewwindow.h create mode 100644 kexi/main/printing/kexisimpleprintpreviewwindow_p.h create mode 100644 kexi/main/startup/KexiConnSelector.cpp create mode 100644 kexi/main/startup/KexiConnSelector.h create mode 100644 kexi/main/startup/KexiConnSelectorBase.ui create mode 100644 kexi/main/startup/KexiDBTitlePage.cpp create mode 100644 kexi/main/startup/KexiDBTitlePage.h create mode 100644 kexi/main/startup/KexiDBTitlePageBase.ui create mode 100644 kexi/main/startup/KexiNewPrjTypeSelector.ui create mode 100644 kexi/main/startup/KexiNewProjectWizard.cpp create mode 100644 kexi/main/startup/KexiNewProjectWizard.h create mode 100644 kexi/main/startup/KexiOpenExistingFile.ui create mode 100644 kexi/main/startup/KexiProjectSelector.cpp create mode 100644 kexi/main/startup/KexiProjectSelector.h create mode 100644 kexi/main/startup/KexiProjectSelectorBase.ui create mode 100644 kexi/main/startup/KexiServerDBNamePage.ui create mode 100644 kexi/main/startup/KexiStartup.cpp create mode 100644 kexi/main/startup/KexiStartup.h create mode 100644 kexi/main/startup/KexiStartupDialog.cpp create mode 100644 kexi/main/startup/KexiStartupDialog.h create mode 100644 kexi/main/startup/KexiStartupDialogTemplatesPage.cpp create mode 100644 kexi/main/startup/KexiStartupDialogTemplatesPage.h create mode 100644 kexi/main/startup/KexiStartupFileDialog.cpp create mode 100644 kexi/main/startup/KexiStartupFileDialog.h create mode 100644 kexi/main/startup/KexiStartupFileDialogBase_win.h create mode 100644 kexi/main/startup/KexiStartupFileDialog_win.cpp create mode 100644 kexi/main/startup/KexiStartup_p.cpp create mode 100644 kexi/main/startup/KexiStartup_p.h create mode 100644 kexi/main/startup/Makefile.am create mode 100644 kexi/migration/Makefile.am create mode 100644 kexi/migration/configure.in.in create mode 100644 kexi/migration/importoptionsdlg.cpp create mode 100644 kexi/migration/importoptionsdlg.h create mode 100644 kexi/migration/importwizard.cpp create mode 100644 kexi/migration/importwizard.h create mode 100644 kexi/migration/keximigrate.cpp create mode 100644 kexi/migration/keximigrate.h create mode 100644 kexi/migration/keximigratedata.cpp create mode 100644 kexi/migration/keximigratedata.h create mode 100644 kexi/migration/keximigratetest.cpp create mode 100644 kexi/migration/keximigration_driver.desktop create mode 100644 kexi/migration/migratemanager.cpp create mode 100644 kexi/migration/migratemanager.h create mode 100644 kexi/migration/migratemanager_p.h create mode 100644 kexi/migration/mysql/Makefile.am create mode 100644 kexi/migration/mysql/keximigrate_mysql.desktop create mode 100644 kexi/migration/mysql/mysqlmigrate.cpp create mode 100644 kexi/migration/mysql/mysqlmigrate.h create mode 100644 kexi/migration/pqxx/Makefile.am create mode 100644 kexi/migration/pqxx/keximigrate_pqxx.desktop create mode 100644 kexi/migration/pqxx/pg_type.h create mode 100644 kexi/migration/pqxx/pqxxmigrate.cpp create mode 100644 kexi/migration/pqxx/pqxxmigrate.h create mode 100644 kexi/migration/txt/Makefile.am create mode 100644 kexi/migration/txt/txtmigrate.cpp create mode 100644 kexi/migration/txt/txtmigrate.h create mode 100644 kexi/pics/Makefile.am create mode 100755 kexi/pics/blendkdeicons.sh create mode 100644 kexi/pics/cp-wiz.png create mode 100644 kexi/pics/cr128-action-form_action.png create mode 100644 kexi/pics/cr16-action-add_field.png create mode 100644 kexi/pics/cr16-action-aofit.png create mode 100644 kexi/pics/cr16-action-aogrid.png create mode 100644 kexi/pics/cr16-action-aopos2grid.png create mode 100644 kexi/pics/cr16-action-autofield.png create mode 100644 kexi/pics/cr16-action-autonumber.png create mode 100644 kexi/pics/cr16-action-business_user.png create mode 100644 kexi/pics/cr16-action-button.png create mode 100644 kexi/pics/cr16-action-button_no.png create mode 100644 kexi/pics/cr16-action-check.png create mode 100644 kexi/pics/cr16-action-clear_table_contents.png create mode 100644 kexi/pics/cr16-action-combo.png create mode 100644 kexi/pics/cr16-action-database.png create mode 100644 kexi/pics/cr16-action-database_import.png create mode 100644 kexi/pics/cr16-action-delete_table_row.png create mode 100644 kexi/pics/cr16-action-form.png create mode 100644 kexi/pics/cr16-action-form_action.png create mode 100644 kexi/pics/cr16-action-form_newobj.png create mode 100644 kexi/pics/cr16-action-grid.png create mode 100644 kexi/pics/cr16-action-insert_table_row.png create mode 100644 kexi/pics/cr16-action-key.png create mode 100644 kexi/pics/cr16-action-line.png create mode 100644 kexi/pics/cr16-action-line_horizontal.png create mode 100644 kexi/pics/cr16-action-line_vertical.png create mode 100644 kexi/pics/cr16-action-lineedit.png create mode 100644 kexi/pics/cr16-action-macro.png create mode 100644 kexi/pics/cr16-action-macro_newobj.png create mode 100644 kexi/pics/cr16-action-mouse_pointer.png create mode 100644 kexi/pics/cr16-action-multiple_obj.png create mode 100644 kexi/pics/cr16-action-navigator_first.png create mode 100644 kexi/pics/cr16-action-navigator_last.png create mode 100644 kexi/pics/cr16-action-navigator_new.png create mode 100644 kexi/pics/cr16-action-navigator_next.png create mode 100644 kexi/pics/cr16-action-navigator_prev.png create mode 100644 kexi/pics/cr16-action-new_sign.png create mode 100644 kexi/pics/cr16-action-pixmaplabel.png create mode 100644 kexi/pics/cr16-action-query.png create mode 100644 kexi/pics/cr16-action-query_newobj.png create mode 100644 kexi/pics/cr16-action-radio.png create mode 100644 kexi/pics/cr16-action-relation.png create mode 100644 kexi/pics/cr16-action-report.png create mode 100644 kexi/pics/cr16-action-report_newobj.png create mode 100644 kexi/pics/cr16-action-script.png create mode 100644 kexi/pics/cr16-action-script_newobj.png create mode 100644 kexi/pics/cr16-action-select_item.png create mode 100644 kexi/pics/cr16-action-sort_az.png create mode 100644 kexi/pics/cr16-action-sort_za.png create mode 100644 kexi/pics/cr16-action-spring.png create mode 100644 kexi/pics/cr16-action-spring_vertical.png create mode 100644 kexi/pics/cr16-action-state_data.png create mode 100644 kexi/pics/cr16-action-state_edit.png create mode 100644 kexi/pics/cr16-action-state_sql.png create mode 100644 kexi/pics/cr16-action-state_text.png create mode 100644 kexi/pics/cr16-action-subform.png create mode 100644 kexi/pics/cr16-action-table.png create mode 100644 kexi/pics/cr16-action-table_newobj.png create mode 100644 kexi/pics/cr16-action-tabwidget.png create mode 100644 kexi/pics/cr16-action-test_it.png create mode 100644 kexi/pics/cr16-action-textedit.png create mode 100644 kexi/pics/cr16-action-unknown_widget.png create mode 100644 kexi/pics/cr16-action-widgets.png create mode 100644 kexi/pics/cr16-mime-kexiproject_sqlite.png create mode 100644 kexi/pics/cr16-mime-kexiproject_sqlite.xcf create mode 100644 kexi/pics/cr16-mime-kexiproject_sqlite2.png create mode 100644 kexi/pics/cr16-mime-kexiproject_sqlite2.xcf create mode 100644 kexi/pics/cr22-action-alignobjs.png create mode 100644 kexi/pics/cr22-action-aobottom.png create mode 100644 kexi/pics/cr22-action-aofit.png create mode 100644 kexi/pics/cr22-action-aogrid.png create mode 100644 kexi/pics/cr22-action-aoleft.png create mode 100644 kexi/pics/cr22-action-aonarrowest.png create mode 100644 kexi/pics/cr22-action-aopos2grid.png create mode 100644 kexi/pics/cr22-action-aoright.png create mode 100644 kexi/pics/cr22-action-aoshortest.png create mode 100644 kexi/pics/cr22-action-aotallest.png create mode 100644 kexi/pics/cr22-action-aotop.png create mode 100644 kexi/pics/cr22-action-aowidest.png create mode 100644 kexi/pics/cr22-action-autofield.png create mode 100644 kexi/pics/cr22-action-business_user.png create mode 100644 kexi/pics/cr22-action-button.png create mode 100644 kexi/pics/cr22-action-check.png create mode 100644 kexi/pics/cr22-action-clear_table_contents.png create mode 100644 kexi/pics/cr22-action-combo.png create mode 100644 kexi/pics/cr22-action-database.png create mode 100644 kexi/pics/cr22-action-database_import.png create mode 100644 kexi/pics/cr22-action-dateedit.png create mode 100644 kexi/pics/cr22-action-datetimeedit.png create mode 100644 kexi/pics/cr22-action-delete_table_row.png create mode 100644 kexi/pics/cr22-action-form.png create mode 100644 kexi/pics/cr22-action-form_action.png create mode 100644 kexi/pics/cr22-action-form_edit.png create mode 100644 kexi/pics/cr22-action-frame.png create mode 100644 kexi/pics/cr22-action-grid.png create mode 100644 kexi/pics/cr22-action-groupbox.png create mode 100644 kexi/pics/cr22-action-insert_table_row.png create mode 100644 kexi/pics/cr22-action-key.png create mode 100644 kexi/pics/cr22-action-label.png create mode 100644 kexi/pics/cr22-action-line.png create mode 100644 kexi/pics/cr22-action-line_horizontal.png create mode 100644 kexi/pics/cr22-action-line_vertical.png create mode 100644 kexi/pics/cr22-action-lineedit.png create mode 100644 kexi/pics/cr22-action-listbox.png create mode 100644 kexi/pics/cr22-action-listview.png create mode 100644 kexi/pics/cr22-action-lower.png create mode 100644 kexi/pics/cr22-action-macro.png create mode 100644 kexi/pics/cr22-action-macro_newobj.png create mode 100644 kexi/pics/cr22-action-mouse_pointer.png create mode 100644 kexi/pics/cr22-action-multiple_obj.png create mode 100644 kexi/pics/cr22-action-new_sign.png create mode 100644 kexi/pics/cr22-action-pixmaplabel.png create mode 100644 kexi/pics/cr22-action-progress.png create mode 100644 kexi/pics/cr22-action-radio.png create mode 100644 kexi/pics/cr22-action-raise.png create mode 100644 kexi/pics/cr22-action-relation.png create mode 100644 kexi/pics/cr22-action-signalslot.png create mode 100644 kexi/pics/cr22-action-slider.png create mode 100644 kexi/pics/cr22-action-sort_az.png create mode 100644 kexi/pics/cr22-action-sort_za.png create mode 100644 kexi/pics/cr22-action-spin.png create mode 100644 kexi/pics/cr22-action-spring.png create mode 100644 kexi/pics/cr22-action-spring_vertical.png create mode 100644 kexi/pics/cr22-action-state_data.png create mode 100644 kexi/pics/cr22-action-state_edit.png create mode 100644 kexi/pics/cr22-action-state_sql.png create mode 100644 kexi/pics/cr22-action-state_text.png create mode 100644 kexi/pics/cr22-action-subform.png create mode 100644 kexi/pics/cr22-action-table.png create mode 100644 kexi/pics/cr22-action-table_newobj.png create mode 100644 kexi/pics/cr22-action-tabwidget.png create mode 100644 kexi/pics/cr22-action-test_it.png create mode 100644 kexi/pics/cr22-action-textedit.png create mode 100644 kexi/pics/cr22-action-timeedit.png create mode 100644 kexi/pics/cr22-action-unknown_widget.png create mode 100644 kexi/pics/cr22-action-urlrequest.png create mode 100644 kexi/pics/cr22-action-widgets.png create mode 100644 kexi/pics/cr22-action-widgetstack.png create mode 100644 kexi/pics/cr32-action-business_user.png create mode 100644 kexi/pics/cr32-action-clear_table_contents.png create mode 100644 kexi/pics/cr32-action-database.png create mode 100644 kexi/pics/cr32-action-database_import.png create mode 100644 kexi/pics/cr32-action-delete_table_row.png create mode 100644 kexi/pics/cr32-action-form.png create mode 100644 kexi/pics/cr32-action-form_action.png create mode 100644 kexi/pics/cr32-action-grid.png create mode 100644 kexi/pics/cr32-action-insert_table_row.png create mode 100644 kexi/pics/cr32-action-key.png create mode 100644 kexi/pics/cr32-action-macro.png create mode 100644 kexi/pics/cr32-action-macro_newobj.png create mode 100644 kexi/pics/cr32-action-new_sign.png create mode 100644 kexi/pics/cr32-action-pixmaplabel.png create mode 100644 kexi/pics/cr32-action-query.png create mode 100644 kexi/pics/cr32-action-spring.png create mode 100644 kexi/pics/cr32-action-state_data.png create mode 100644 kexi/pics/cr32-action-state_sql.png create mode 100644 kexi/pics/cr32-action-state_text.png create mode 100644 kexi/pics/cr32-action-table.png create mode 100644 kexi/pics/cr32-action-table_newobj.png create mode 100644 kexi/pics/cr32-mime-kexiproject_shortcut.png create mode 100644 kexi/pics/cr32-mime-kexiproject_shortcut.xcf create mode 100644 kexi/pics/cr32-mime-kexiproject_sqlite.png create mode 100644 kexi/pics/cr32-mime-kexiproject_sqlite.xcf create mode 100644 kexi/pics/cr32-mime-kexiproject_sqlite2.png create mode 100644 kexi/pics/cr32-mime-kexiproject_sqlite2.xcf create mode 100644 kexi/pics/cr48-action-database_import.png create mode 100644 kexi/pics/cr48-action-form_action.png create mode 100644 kexi/pics/cr48-action-key.png create mode 100644 kexi/pics/cr64-action-business_user.png create mode 100644 kexi/pics/cr64-action-database.png create mode 100644 kexi/pics/cr64-action-form_action.png create mode 100644 kexi/pics/database-80.png create mode 100755 kexi/pics/generate_newobj_icons.sh create mode 100644 kexi/pics/hi16-app-kexi.png create mode 100644 kexi/pics/hi22-app-kexi.png create mode 100644 kexi/pics/hi32-app-kexi.png create mode 100644 kexi/pics/hi48-app-kexi.png create mode 100644 kexi/pics/hisc-app-kexi.svgz create mode 100644 kexi/pics/imagebox.png create mode 100644 kexi/pics/kexi_yellow.svg create mode 100644 kexi/pics/tableview_pen.png create mode 100644 kexi/pics/tableview_plus.png create mode 100644 kexi/pics/wiz-temlate.png create mode 100644 kexi/pics/wiz-template.png create mode 100644 kexi/plugins/Makefile.am create mode 100644 kexi/plugins/Makefile.common create mode 100644 kexi/plugins/configure.in.in create mode 100644 kexi/plugins/configure.in.mid create mode 100644 kexi/plugins/forms/Makefile.am create mode 100644 kexi/plugins/forms/kexiactionselectiondialog.cpp create mode 100644 kexi/plugins/forms/kexiactionselectiondialog.h create mode 100644 kexi/plugins/forms/kexiactionselectiondialog_p.h create mode 100644 kexi/plugins/forms/kexidataawarewidgetinfo.cpp create mode 100644 kexi/plugins/forms/kexidataawarewidgetinfo.h create mode 100644 kexi/plugins/forms/kexidataprovider.cpp create mode 100644 kexi/plugins/forms/kexidataprovider.h create mode 100644 kexi/plugins/forms/kexidatasourcepage.cpp create mode 100644 kexi/plugins/forms/kexidatasourcepage.h create mode 100644 kexi/plugins/forms/kexidbfactory.cpp create mode 100644 kexi/plugins/forms/kexidbfactory.h create mode 100644 kexi/plugins/forms/kexidbtextwidgetinterface.cpp create mode 100644 kexi/plugins/forms/kexidbtextwidgetinterface.h create mode 100644 kexi/plugins/forms/kexiformdataiteminterface.cpp create mode 100644 kexi/plugins/forms/kexiformdataiteminterface.h create mode 100644 kexi/plugins/forms/kexiformeventhandler.cpp create mode 100644 kexi/plugins/forms/kexiformeventhandler.h create mode 100644 kexi/plugins/forms/kexiformhandler.desktop create mode 100644 kexi/plugins/forms/kexiformmanager.cpp create mode 100644 kexi/plugins/forms/kexiformmanager.h create mode 100644 kexi/plugins/forms/kexiformpart.cpp create mode 100644 kexi/plugins/forms/kexiformpart.h create mode 100644 kexi/plugins/forms/kexiformpartinstui.rc create mode 100644 kexi/plugins/forms/kexiformpartui.rc create mode 100644 kexi/plugins/forms/kexiforms.cpp create mode 100644 kexi/plugins/forms/kexiformscrollview.cpp create mode 100644 kexi/plugins/forms/kexiformscrollview.h create mode 100644 kexi/plugins/forms/kexiformview.cpp create mode 100644 kexi/plugins/forms/kexiformview.h create mode 100644 kexi/plugins/forms/kformdesigner_kexidbfactory.desktop create mode 100644 kexi/plugins/forms/widgets/Makefile.am create mode 100644 kexi/plugins/forms/widgets/kexidbautofield.cpp create mode 100644 kexi/plugins/forms/widgets/kexidbautofield.h create mode 100644 kexi/plugins/forms/widgets/kexidbcheckbox.cpp create mode 100644 kexi/plugins/forms/widgets/kexidbcheckbox.h create mode 100644 kexi/plugins/forms/widgets/kexidbcombobox.cpp create mode 100644 kexi/plugins/forms/widgets/kexidbcombobox.h create mode 100644 kexi/plugins/forms/widgets/kexidbdateedit.cpp create mode 100644 kexi/plugins/forms/widgets/kexidbdateedit.h create mode 100644 kexi/plugins/forms/widgets/kexidbdatetimeedit.cpp create mode 100644 kexi/plugins/forms/widgets/kexidbdatetimeedit.h create mode 100644 kexi/plugins/forms/widgets/kexidbdoublespinbox.cpp create mode 100644 kexi/plugins/forms/widgets/kexidbdoublespinbox.h create mode 100644 kexi/plugins/forms/widgets/kexidbform.cpp create mode 100644 kexi/plugins/forms/widgets/kexidbform.h create mode 100644 kexi/plugins/forms/widgets/kexidbimagebox.cpp create mode 100644 kexi/plugins/forms/widgets/kexidbimagebox.h create mode 100644 kexi/plugins/forms/widgets/kexidbintspinbox.cpp create mode 100644 kexi/plugins/forms/widgets/kexidbintspinbox.h create mode 100644 kexi/plugins/forms/widgets/kexidblabel.cpp create mode 100644 kexi/plugins/forms/widgets/kexidblabel.h create mode 100644 kexi/plugins/forms/widgets/kexidblineedit.cpp create mode 100644 kexi/plugins/forms/widgets/kexidblineedit.h create mode 100644 kexi/plugins/forms/widgets/kexidbsubform.cpp create mode 100644 kexi/plugins/forms/widgets/kexidbsubform.h create mode 100644 kexi/plugins/forms/widgets/kexidbtextedit.cpp create mode 100644 kexi/plugins/forms/widgets/kexidbtextedit.h create mode 100644 kexi/plugins/forms/widgets/kexidbtimeedit.cpp create mode 100644 kexi/plugins/forms/widgets/kexidbtimeedit.h create mode 100644 kexi/plugins/forms/widgets/kexidbutils.cpp create mode 100644 kexi/plugins/forms/widgets/kexidbutils.h create mode 100644 kexi/plugins/forms/widgets/kexiframe.cpp create mode 100644 kexi/plugins/forms/widgets/kexiframe.h create mode 100644 kexi/plugins/forms/widgets/kexiframeutils_p.cpp create mode 100644 kexi/plugins/forms/widgets/kexipushbutton.cpp create mode 100644 kexi/plugins/forms/widgets/kexipushbutton.h create mode 100644 kexi/plugins/importexport/Makefile.am create mode 100644 kexi/plugins/importexport/csv/Makefile.am create mode 100644 kexi/plugins/importexport/csv/kexicsv_importexporthandler.desktop create mode 100644 kexi/plugins/importexport/csv/kexicsv_importexportpart.cpp create mode 100644 kexi/plugins/importexport/csv/kexicsv_importexportpart.h create mode 100644 kexi/plugins/importexport/csv/kexicsvexport.cpp create mode 100644 kexi/plugins/importexport/csv/kexicsvexport.h create mode 100644 kexi/plugins/importexport/csv/kexicsvexportwizard.cpp create mode 100644 kexi/plugins/importexport/csv/kexicsvexportwizard.h create mode 100644 kexi/plugins/importexport/csv/kexicsvimportdialog.cpp create mode 100644 kexi/plugins/importexport/csv/kexicsvimportdialog.h create mode 100644 kexi/plugins/importexport/csv/kexicsvimportoptionsdlg.cpp create mode 100644 kexi/plugins/importexport/csv/kexicsvimportoptionsdlg.h create mode 100644 kexi/plugins/importexport/csv/kexicsvwidgets.cpp create mode 100644 kexi/plugins/importexport/csv/kexicsvwidgets.h create mode 100644 kexi/plugins/macros/Makefile.am create mode 100644 kexi/plugins/macros/configure.in.in create mode 100644 kexi/plugins/macros/kexiactions/Makefile.am create mode 100644 kexi/plugins/macros/kexiactions/datatableaction.cpp create mode 100644 kexi/plugins/macros/kexiactions/datatableaction.h create mode 100644 kexi/plugins/macros/kexiactions/executeaction.cpp create mode 100644 kexi/plugins/macros/kexiactions/executeaction.h create mode 100644 kexi/plugins/macros/kexiactions/kexiaction.cpp create mode 100644 kexi/plugins/macros/kexiactions/kexiaction.h create mode 100644 kexi/plugins/macros/kexiactions/kexivariable.h create mode 100644 kexi/plugins/macros/kexiactions/messageaction.cpp create mode 100644 kexi/plugins/macros/kexiactions/messageaction.h create mode 100644 kexi/plugins/macros/kexiactions/navigateaction.cpp create mode 100644 kexi/plugins/macros/kexiactions/navigateaction.h create mode 100644 kexi/plugins/macros/kexiactions/objectnamevariable.h create mode 100644 kexi/plugins/macros/kexiactions/objectvariable.h create mode 100644 kexi/plugins/macros/kexiactions/openaction.cpp create mode 100644 kexi/plugins/macros/kexiactions/openaction.h create mode 100644 kexi/plugins/macros/kexipart/Makefile.am create mode 100644 kexi/plugins/macros/kexipart/keximacrodesignview.cpp create mode 100644 kexi/plugins/macros/kexipart/keximacrodesignview.h create mode 100644 kexi/plugins/macros/kexipart/keximacroerror.cpp create mode 100644 kexi/plugins/macros/kexipart/keximacroerror.h create mode 100644 kexi/plugins/macros/kexipart/keximacroerrorbase.ui create mode 100644 kexi/plugins/macros/kexipart/keximacrohandler.desktop create mode 100644 kexi/plugins/macros/kexipart/keximacropart.cpp create mode 100644 kexi/plugins/macros/kexipart/keximacropart.h create mode 100644 kexi/plugins/macros/kexipart/keximacroproperty.cpp create mode 100644 kexi/plugins/macros/kexipart/keximacroproperty.h create mode 100644 kexi/plugins/macros/kexipart/keximacrotextview.cpp create mode 100644 kexi/plugins/macros/kexipart/keximacrotextview.h create mode 100644 kexi/plugins/macros/kexipart/keximacroview.cpp create mode 100644 kexi/plugins/macros/kexipart/keximacroview.h create mode 100644 kexi/plugins/macros/lib/Makefile.am create mode 100644 kexi/plugins/macros/lib/action.cpp create mode 100644 kexi/plugins/macros/lib/action.h create mode 100644 kexi/plugins/macros/lib/context.cpp create mode 100644 kexi/plugins/macros/lib/context.h create mode 100644 kexi/plugins/macros/lib/exception.cpp create mode 100644 kexi/plugins/macros/lib/exception.h create mode 100644 kexi/plugins/macros/lib/komacro_export.h create mode 100644 kexi/plugins/macros/lib/macro.cpp create mode 100644 kexi/plugins/macros/lib/macro.h create mode 100644 kexi/plugins/macros/lib/macroitem.cpp create mode 100644 kexi/plugins/macros/lib/macroitem.h create mode 100644 kexi/plugins/macros/lib/manager.cpp create mode 100644 kexi/plugins/macros/lib/manager.h create mode 100644 kexi/plugins/macros/lib/metamethod.cpp create mode 100644 kexi/plugins/macros/lib/metamethod.h create mode 100644 kexi/plugins/macros/lib/metaobject.cpp create mode 100644 kexi/plugins/macros/lib/metaobject.h create mode 100644 kexi/plugins/macros/lib/metaparameter.cpp create mode 100644 kexi/plugins/macros/lib/metaparameter.h create mode 100644 kexi/plugins/macros/lib/variable.cpp create mode 100644 kexi/plugins/macros/lib/variable.h create mode 100644 kexi/plugins/macros/lib/xmlhandler.cpp create mode 100644 kexi/plugins/macros/lib/xmlhandler.h create mode 100644 kexi/plugins/macros/tests/Makefile.am create mode 100644 kexi/plugins/macros/tests/actiontests.cpp create mode 100644 kexi/plugins/macros/tests/actiontests.h create mode 100644 kexi/plugins/macros/tests/commontests.cpp create mode 100644 kexi/plugins/macros/tests/commontests.h create mode 100644 kexi/plugins/macros/tests/komacrotest.cpp create mode 100644 kexi/plugins/macros/tests/komacrotestbase.h create mode 100644 kexi/plugins/macros/tests/komacrotestgui.cpp create mode 100644 kexi/plugins/macros/tests/macroitemtests.cpp create mode 100644 kexi/plugins/macros/tests/macroitemtests.h create mode 100644 kexi/plugins/macros/tests/macrotests.cpp create mode 100644 kexi/plugins/macros/tests/macrotests.h create mode 100644 kexi/plugins/macros/tests/testaction.cpp create mode 100644 kexi/plugins/macros/tests/testaction.h create mode 100644 kexi/plugins/macros/tests/testobject.cpp create mode 100644 kexi/plugins/macros/tests/testobject.h create mode 100644 kexi/plugins/macros/tests/variabletests.cpp create mode 100644 kexi/plugins/macros/tests/variabletests.h create mode 100644 kexi/plugins/macros/tests/xmlhandlertests.cpp create mode 100644 kexi/plugins/macros/tests/xmlhandlertests.h create mode 100644 kexi/plugins/macros/tests/xmlhandlertests2.cpp create mode 100644 kexi/plugins/macros/tests/xmlhandlertests2.h create mode 100644 kexi/plugins/migration/Makefile.am create mode 100644 kexi/plugins/migration/keximigrationhandler.desktop create mode 100644 kexi/plugins/migration/keximigrationpart.cpp create mode 100644 kexi/plugins/migration/keximigrationpart.h create mode 100644 kexi/plugins/queries/Makefile.am create mode 100644 kexi/plugins/queries/kexiaddparamdialog.cpp create mode 100644 kexi/plugins/queries/kexiaddparamdialog.h create mode 100644 kexi/plugins/queries/kexiaddparamwidget.ui create mode 100644 kexi/plugins/queries/kexidynamicqueryparameterdialog.cpp create mode 100644 kexi/plugins/queries/kexidynamicqueryparameterdialog.h create mode 100644 kexi/plugins/queries/kexiparameterlisteditor.ui create mode 100644 kexi/plugins/queries/kexiquerydesignerguieditor.cpp create mode 100644 kexi/plugins/queries/kexiquerydesignerguieditor.h create mode 100644 kexi/plugins/queries/kexiquerydesignersql.cpp create mode 100644 kexi/plugins/queries/kexiquerydesignersql.h create mode 100644 kexi/plugins/queries/kexiquerydesignersqlhistory.cpp create mode 100644 kexi/plugins/queries/kexiquerydesignersqlhistory.h create mode 100644 kexi/plugins/queries/kexiqueryhandler.desktop create mode 100644 kexi/plugins/queries/kexiquerypart.cpp create mode 100644 kexi/plugins/queries/kexiquerypart.h create mode 100644 kexi/plugins/queries/kexiquerypartinstui.rc create mode 100644 kexi/plugins/queries/kexiquerypartui.rc create mode 100644 kexi/plugins/queries/kexiqueryview.cpp create mode 100644 kexi/plugins/queries/kexiqueryview.h create mode 100644 kexi/plugins/relations/Makefile.am create mode 100644 kexi/plugins/relations/kexirelationhandler.desktop create mode 100644 kexi/plugins/relations/kexirelationmaindlg.cpp create mode 100644 kexi/plugins/relations/kexirelationmaindlg.h create mode 100644 kexi/plugins/relations/kexirelationpartimpl.cpp create mode 100644 kexi/plugins/relations/kexirelationpartimpl.h create mode 100644 kexi/plugins/relations/kexirelationpartinstui.rc create mode 100644 kexi/plugins/relations/kexirelationpartui.rc create mode 100644 kexi/plugins/reports/Makefile.am create mode 100644 kexi/plugins/reports/kexireportfactory.cpp create mode 100644 kexi/plugins/reports/kexireportfactory.h create mode 100644 kexi/plugins/reports/kexireportform.cpp create mode 100644 kexi/plugins/reports/kexireportform.h create mode 100644 kexi/plugins/reports/kexireporthandler.desktop create mode 100644 kexi/plugins/reports/kexireportpart.cpp create mode 100644 kexi/plugins/reports/kexireportpart.h create mode 100644 kexi/plugins/reports/kexireportpartinstui.rc create mode 100644 kexi/plugins/reports/kexireportpartui.rc create mode 100644 kexi/plugins/reports/kexireports.cpp create mode 100644 kexi/plugins/reports/kexireportview.cpp create mode 100644 kexi/plugins/reports/kexireportview.h create mode 100644 kexi/plugins/reports/kformdesigner_kexireportfactory.desktop create mode 100644 kexi/plugins/reports/reportwidgets.cpp create mode 100644 kexi/plugins/reports/reportwidgets.h create mode 100644 kexi/plugins/scripting/Makefile.am create mode 100644 kexi/plugins/scripting/README create mode 100644 kexi/plugins/scripting/kexiapp/Makefile.am create mode 100644 kexi/plugins/scripting/kexiapp/kexiappmainwindow.cpp create mode 100644 kexi/plugins/scripting/kexiapp/kexiappmainwindow.h create mode 100644 kexi/plugins/scripting/kexiapp/kexiappmodule.cpp create mode 100644 kexi/plugins/scripting/kexiapp/kexiappmodule.h create mode 100644 kexi/plugins/scripting/kexiapp/kexiapppart.cpp create mode 100644 kexi/plugins/scripting/kexiapp/kexiapppart.h create mode 100644 kexi/plugins/scripting/kexidb.doxyfile create mode 100644 kexi/plugins/scripting/kexidb/Makefile.am create mode 100644 kexi/plugins/scripting/kexidb/kexidbconnection.cpp create mode 100644 kexi/plugins/scripting/kexidb/kexidbconnection.h create mode 100644 kexi/plugins/scripting/kexidb/kexidbconnectiondata.cpp create mode 100644 kexi/plugins/scripting/kexidb/kexidbconnectiondata.h create mode 100644 kexi/plugins/scripting/kexidb/kexidbcursor.cpp create mode 100644 kexi/plugins/scripting/kexidb/kexidbcursor.h create mode 100644 kexi/plugins/scripting/kexidb/kexidbdriver.cpp create mode 100644 kexi/plugins/scripting/kexidb/kexidbdriver.h create mode 100644 kexi/plugins/scripting/kexidb/kexidbdrivermanager.cpp create mode 100644 kexi/plugins/scripting/kexidb/kexidbdrivermanager.h create mode 100644 kexi/plugins/scripting/kexidb/kexidbfield.cpp create mode 100644 kexi/plugins/scripting/kexidb/kexidbfield.h create mode 100644 kexi/plugins/scripting/kexidb/kexidbfieldlist.cpp create mode 100644 kexi/plugins/scripting/kexidb/kexidbfieldlist.h create mode 100644 kexi/plugins/scripting/kexidb/kexidbmodule.cpp create mode 100644 kexi/plugins/scripting/kexidb/kexidbmodule.h create mode 100644 kexi/plugins/scripting/kexidb/kexidbparser.cpp create mode 100644 kexi/plugins/scripting/kexidb/kexidbparser.h create mode 100644 kexi/plugins/scripting/kexidb/kexidbschema.cpp create mode 100644 kexi/plugins/scripting/kexidb/kexidbschema.h create mode 100644 kexi/plugins/scripting/kexidb/kexidbtransaction.cpp create mode 100644 kexi/plugins/scripting/kexidb/kexidbtransaction.h create mode 100644 kexi/plugins/scripting/kexidb/readme.dox create mode 100644 kexi/plugins/scripting/kexiscripting/Makefile.am create mode 100644 kexi/plugins/scripting/kexiscripting/kexiscriptdesignview.cpp create mode 100644 kexi/plugins/scripting/kexiscripting/kexiscriptdesignview.h create mode 100644 kexi/plugins/scripting/kexiscripting/kexiscripteditor.cpp create mode 100644 kexi/plugins/scripting/kexiscripting/kexiscripteditor.h create mode 100644 kexi/plugins/scripting/kexiscripting/kexiscripthandler.desktop create mode 100644 kexi/plugins/scripting/kexiscripting/kexiscriptpart.cpp create mode 100644 kexi/plugins/scripting/kexiscripting/kexiscriptpart.h create mode 100644 kexi/plugins/scripting/kexiscripting/kexiscriptpartinstui.rc create mode 100644 kexi/plugins/scripting/kexiscripting/kexiscriptpartui.rc create mode 100644 kexi/plugins/scripting/scripts/Makefile.am create mode 100644 kexi/plugins/scripting/scripts/copycenter/CopyCenter.py create mode 100644 kexi/plugins/scripting/scripts/copycenter/CopyCenter.rc create mode 100644 kexi/plugins/scripting/scripts/copycenter/CopyCenterPluginKexiDB.py create mode 100644 kexi/plugins/scripting/scripts/copycenter/CopyCenterPluginQtSQL.py create mode 100644 kexi/plugins/scripting/scripts/copycenter/Makefile.am create mode 100644 kexi/plugins/scripting/scripts/copycenter/readme.html create mode 100644 kexi/plugins/scripting/scripts/exportxhtml/ExportXHTML.py create mode 100644 kexi/plugins/scripting/scripts/exportxhtml/ExportXHTML.rc create mode 100644 kexi/plugins/scripting/scripts/exportxhtml/Makefile.am create mode 100755 kexi/plugins/scripting/scripts/importxhtml/ImportXHTML.py create mode 100644 kexi/plugins/scripting/scripts/importxhtml/ImportXHTML.rc create mode 100644 kexi/plugins/scripting/scripts/importxhtml/Makefile.am create mode 100644 kexi/plugins/scripting/scripts/projectdocumentor/Makefile.am create mode 100755 kexi/plugins/scripting/scripts/projectdocumentor/ProjectDocumentor.py create mode 100644 kexi/plugins/scripting/scripts/projectdocumentor/ProjectDocumentor.rc create mode 100644 kexi/plugins/scripting/scripts/python/Makefile.am create mode 100644 kexi/plugins/scripting/scripts/python/kexiapp/Makefile.am create mode 100755 kexi/plugins/scripting/scripts/python/kexiapp/__init__.py create mode 100644 kexi/plugins/tables/Makefile.am create mode 100644 kexi/plugins/tables/kexilookupcolumnpage.cpp create mode 100644 kexi/plugins/tables/kexilookupcolumnpage.h create mode 100644 kexi/plugins/tables/kexitabledesigner_dataview.cpp create mode 100644 kexi/plugins/tables/kexitabledesigner_dataview.h create mode 100644 kexi/plugins/tables/kexitabledesignercommands.cpp create mode 100644 kexi/plugins/tables/kexitabledesignercommands.h create mode 100644 kexi/plugins/tables/kexitabledesignerview.cpp create mode 100644 kexi/plugins/tables/kexitabledesignerview.h create mode 100644 kexi/plugins/tables/kexitabledesignerview_p.cpp create mode 100644 kexi/plugins/tables/kexitabledesignerview_p.h create mode 100644 kexi/plugins/tables/kexitablehandler.desktop create mode 100644 kexi/plugins/tables/kexitablepart.cpp create mode 100644 kexi/plugins/tables/kexitablepart.h create mode 100644 kexi/plugins/tables/kexitablepartinstui.rc create mode 100644 kexi/plugins/tables/kexitablepartui.rc create mode 100644 kexi/tests/Makefile.am create mode 100644 kexi/tests/README create mode 100644 kexi/tests/altertable/1.kexi create mode 100644 kexi/tests/altertable/Makefile.am create mode 100644 kexi/tests/altertable/README create mode 100644 kexi/tests/altertable/TODO create mode 100644 kexi/tests/altertable/alltypes.altertable create mode 100644 kexi/tests/altertable/altertable.cpp create mode 100644 kexi/tests/altertable/altertable.h create mode 100644 kexi/tests/altertable/defaultvalues.altertable create mode 100644 kexi/tests/gui/finddialog/finddialog.pro create mode 100644 kexi/tests/gui/finddialog/kexifinddialog.cpp create mode 100644 kexi/tests/gui/finddialog/kexifinddialog.h create mode 100644 kexi/tests/gui/finddialog/kexifinddialogbase.ui create mode 100644 kexi/tests/gui/finddialog/main.cpp create mode 100644 kexi/tests/newapi/Makefile.am create mode 100644 kexi/tests/newapi/README create mode 100644 kexi/tests/newapi/cursors_test.h create mode 100644 kexi/tests/newapi/dbcreation_test.h create mode 100644 kexi/tests/newapi/dr_prop_test.h create mode 100644 kexi/tests/newapi/main.cpp create mode 100644 kexi/tests/newapi/mysqlcursor.cpp create mode 100644 kexi/tests/newapi/mysqlcursortest_create.sql create mode 100644 kexi/tests/newapi/mysqlcursortest_expectedoutput create mode 100644 kexi/tests/newapi/newapi.pro create mode 100644 kexi/tests/newapi/parser_test.h create mode 100644 kexi/tests/newapi/schema.sql create mode 100644 kexi/tests/newapi/schema_test.h create mode 100755 kexi/tests/newapi/sqltest create mode 100755 kexi/tests/newapi/sqltest_int create mode 100644 kexi/tests/newapi/statements.txt create mode 100644 kexi/tests/newapi/tables_test.h create mode 100644 kexi/tests/newapi/tableview_test.h create mode 100644 kexi/tests/parser/Makefile.am create mode 100644 kexi/tests/parser/README create mode 100644 kexi/tests/parser/db create mode 100644 kexi/tests/parser/main.cpp create mode 100644 kexi/tests/parser/parser.pro create mode 100644 kexi/tests/startup/Makefile.am create mode 100644 kexi/tests/startup/main.cpp create mode 100644 kexi/tests/startup/testdb.kexis create mode 100644 kexi/tests/tableview/Makefile.am create mode 100644 kexi/tests/tableview/README create mode 100644 kexi/tests/tableview/main.cpp create mode 100644 kexi/tests/tableview/tableview.pro create mode 100644 kexi/tests/tests.pro create mode 100644 kexi/tests/widgets/Makefile.am create mode 100644 kexi/tests/widgets/kexidbdrivercombotest.cpp create mode 100644 kexi/tools/Makefile.am create mode 100644 kexi/tools/add_column/Makefile.am create mode 100755 kexi/tools/add_column/kexi_add_column create mode 100644 kexi/tools/add_column/kexi_add_column_gui create mode 100644 kexi/tools/add_column/kexi_add_column_gui_transl_pl.sh create mode 100755 kexi/tools/build_tarball/build_kexi_tarball.sh create mode 100644 kexi/tools/build_tarball/kexi.lsm create mode 100644 kexi/tools/delete_column/Makefile.am create mode 100644 kexi/tools/delete_column/README create mode 100755 kexi/tools/delete_column/kexi_delete_column create mode 100755 kexi/tools/delete_column/kexi_delete_column_gui create mode 100644 kexi/tools/delete_column/kexi_delete_column_gui_transl_pl.sh create mode 100644 kexi/tools/feedback/create_kexifeedback.sh create mode 100644 kexi/tools/sql_keywords/Makefile create mode 100644 kexi/tools/sql_keywords/kexi_reserved create mode 100755 kexi/tools/sql_keywords/sql_keywords.sh create mode 100644 kexi/widget/Makefile.am create mode 100644 kexi/widget/kexibrowser.cpp create mode 100644 kexi/widget/kexibrowser.h create mode 100644 kexi/widget/kexibrowser_p.h create mode 100644 kexi/widget/kexibrowseritem.cpp create mode 100644 kexi/widget/kexibrowseritem.h create mode 100644 kexi/widget/kexicharencodingcombobox.cpp create mode 100644 kexi/widget/kexicharencodingcombobox.h create mode 100644 kexi/widget/kexicustompropertyfactory.cpp create mode 100644 kexi/widget/kexicustompropertyfactory.h create mode 100644 kexi/widget/kexicustompropertyfactory_p.cpp create mode 100644 kexi/widget/kexicustompropertyfactory_p.h create mode 100644 kexi/widget/kexidataawareview.cpp create mode 100644 kexi/widget/kexidataawareview.h create mode 100644 kexi/widget/kexidatasourcecombobox.cpp create mode 100644 kexi/widget/kexidatasourcecombobox.h create mode 100644 kexi/widget/kexidatatable.cpp create mode 100644 kexi/widget/kexidatatable.h create mode 100644 kexi/widget/kexidbconnectionwidget.cpp create mode 100644 kexi/widget/kexidbconnectionwidget.h create mode 100644 kexi/widget/kexidbconnectionwidgetbase.ui create mode 100644 kexi/widget/kexidbconnectionwidgetdetailsbase.ui create mode 100644 kexi/widget/kexidbconnectionwidgetdetailsbase.ui.h create mode 100644 kexi/widget/kexidbdrivercombobox.cpp create mode 100644 kexi/widget/kexidbdrivercombobox.h create mode 100644 kexi/widget/kexidswelcome.cpp create mode 100644 kexi/widget/kexidswelcome.h create mode 100644 kexi/widget/kexieditor.cpp create mode 100644 kexi/widget/kexieditor.h create mode 100644 kexi/widget/kexifieldcombobox.cpp create mode 100644 kexi/widget/kexifieldcombobox.h create mode 100644 kexi/widget/kexifieldlistview.cpp create mode 100644 kexi/widget/kexifieldlistview.h create mode 100644 kexi/widget/kexifilterdlg.cpp create mode 100644 kexi/widget/kexifilterdlg.h create mode 100644 kexi/widget/kexiprjtypeselector.cpp create mode 100644 kexi/widget/kexiprjtypeselector.h create mode 100644 kexi/widget/kexiprjtypeselectorbase.ui create mode 100644 kexi/widget/kexiprjtypeselectorbase.ui.h create mode 100644 kexi/widget/kexipropertyeditorview.cpp create mode 100644 kexi/widget/kexipropertyeditorview.h create mode 100644 kexi/widget/kexiquerydesignersqleditor.cpp create mode 100644 kexi/widget/kexiquerydesignersqleditor.h create mode 100644 kexi/widget/kexiqueryparameters.cpp create mode 100644 kexi/widget/kexiqueryparameters.h create mode 100644 kexi/widget/kexiscrollview.cpp create mode 100644 kexi/widget/kexiscrollview.h create mode 100644 kexi/widget/kexisectionheader.cpp create mode 100644 kexi/widget/kexisectionheader.h create mode 100644 kexi/widget/kexismalltoolbutton.cpp create mode 100644 kexi/widget/kexismalltoolbutton.h create mode 100644 kexi/widget/pixmapcollection.cpp create mode 100644 kexi/widget/pixmapcollection.h create mode 100644 kexi/widget/relations/Makefile.am create mode 100644 kexi/widget/relations/kexirelationview.cpp create mode 100644 kexi/widget/relations/kexirelationview.h create mode 100644 kexi/widget/relations/kexirelationviewconnection.cpp create mode 100644 kexi/widget/relations/kexirelationviewconnection.h create mode 100644 kexi/widget/relations/kexirelationviewtable.cpp create mode 100644 kexi/widget/relations/kexirelationviewtable.h create mode 100644 kexi/widget/relations/kexirelationwidget.cpp create mode 100644 kexi/widget/relations/kexirelationwidget.h create mode 100644 kexi/widget/relations/r1.xpm create mode 100644 kexi/widget/relations/rn.xpm create mode 100644 kexi/widget/tableview/Makefile.am create mode 100644 kexi/widget/tableview/autonumber.png create mode 100644 kexi/widget/tableview/kexiblobtableedit.cpp create mode 100644 kexi/widget/tableview/kexiblobtableedit.h create mode 100644 kexi/widget/tableview/kexibooltableedit.cpp create mode 100644 kexi/widget/tableview/kexibooltableedit.h create mode 100644 kexi/widget/tableview/kexicelleditorfactory.cpp create mode 100644 kexi/widget/tableview/kexicelleditorfactory.h create mode 100644 kexi/widget/tableview/kexicomboboxbase.cpp create mode 100644 kexi/widget/tableview/kexicomboboxbase.h create mode 100644 kexi/widget/tableview/kexicomboboxpopup.cpp create mode 100644 kexi/widget/tableview/kexicomboboxpopup.h create mode 100644 kexi/widget/tableview/kexicomboboxtableedit.cpp create mode 100644 kexi/widget/tableview/kexicomboboxtableedit.h create mode 100644 kexi/widget/tableview/kexidataawareobjectiface.cpp create mode 100644 kexi/widget/tableview/kexidataawareobjectiface.h create mode 100644 kexi/widget/tableview/kexidataawarepropertyset.cpp create mode 100644 kexi/widget/tableview/kexidataawarepropertyset.h create mode 100644 kexi/widget/tableview/kexidatatableview.cpp create mode 100644 kexi/widget/tableview/kexidatatableview.h create mode 100644 kexi/widget/tableview/kexidatetableedit.cpp create mode 100644 kexi/widget/tableview/kexidatetableedit.h create mode 100644 kexi/widget/tableview/kexidatetimetableedit.cpp create mode 100644 kexi/widget/tableview/kexidatetimetableedit.h create mode 100644 kexi/widget/tableview/kexiinputtableedit.cpp create mode 100644 kexi/widget/tableview/kexiinputtableedit.h create mode 100644 kexi/widget/tableview/kexitableedit.cpp create mode 100644 kexi/widget/tableview/kexitableedit.h create mode 100644 kexi/widget/tableview/kexitableitem.cpp create mode 100644 kexi/widget/tableview/kexitableitem.h create mode 100644 kexi/widget/tableview/kexitableview.cpp create mode 100644 kexi/widget/tableview/kexitableview.h create mode 100644 kexi/widget/tableview/kexitableview_p.cpp create mode 100644 kexi/widget/tableview/kexitableview_p.h create mode 100644 kexi/widget/tableview/kexitableviewdata.cpp create mode 100644 kexi/widget/tableview/kexitableviewdata.h create mode 100644 kexi/widget/tableview/kexitableviewheader.cpp create mode 100644 kexi/widget/tableview/kexitableviewheader.h create mode 100644 kexi/widget/tableview/kexitextformatter.cpp create mode 100644 kexi/widget/tableview/kexitextformatter.h create mode 100644 kexi/widget/tableview/kexitimetableedit.cpp create mode 100644 kexi/widget/tableview/kexitimetableedit.h create mode 100644 kexi/widget/utils/Makefile.am create mode 100644 kexi/widget/utils/kexiarrowtip.cpp create mode 100644 kexi/widget/utils/kexiarrowtip.h create mode 100644 kexi/widget/utils/kexicomboboxdropdownbutton.cpp create mode 100644 kexi/widget/utils/kexicomboboxdropdownbutton.h create mode 100644 kexi/widget/utils/kexicontextmenuutils.cpp create mode 100644 kexi/widget/utils/kexicontextmenuutils.h create mode 100644 kexi/widget/utils/kexidatetimeformatter.cpp create mode 100644 kexi/widget/utils/kexidatetimeformatter.h create mode 100644 kexi/widget/utils/kexidisplayutils.cpp create mode 100644 kexi/widget/utils/kexidisplayutils.h create mode 100644 kexi/widget/utils/kexidropdownbutton.cpp create mode 100644 kexi/widget/utils/kexidropdownbutton.h create mode 100644 kexi/widget/utils/kexiflowlayout.cpp create mode 100644 kexi/widget/utils/kexiflowlayout.h create mode 100644 kexi/widget/utils/kexigradientwidget.cpp create mode 100644 kexi/widget/utils/kexigradientwidget.h create mode 100644 kexi/widget/utils/kexirecordmarker.cpp create mode 100644 kexi/widget/utils/kexirecordmarker.h create mode 100644 kexi/widget/utils/kexirecordnavigator.cpp create mode 100644 kexi/widget/utils/kexirecordnavigator.h create mode 100644 kexi/widget/utils/kexisharedactionclient.cpp create mode 100644 kexi/widget/utils/kexisharedactionclient.h create mode 100644 kexi/widget/utils/kexitooltip.cpp create mode 100644 kexi/widget/utils/kexitooltip.h create mode 100644 kexi/widget/utils/klistviewitemtemplate.h create mode 100644 kformula/AUTHORS create mode 100644 kformula/DESIGN create mode 100644 kformula/Makefile.am create mode 100644 kformula/TODO create mode 100644 kformula/formulastring.cc create mode 100644 kformula/formulastring.h create mode 100644 kformula/fsparser.cc create mode 100644 kformula/fsparser.h create mode 100644 kformula/kfconfig.cc create mode 100644 kformula/kfconfig.h create mode 100644 kformula/kformula.desktop create mode 100644 kformula/kformula.rc create mode 100644 kformula/kformula.xpm create mode 100644 kformula/kformula_aboutdata.h create mode 100644 kformula/kformula_doc.cc create mode 100644 kformula/kformula_doc.h create mode 100644 kformula/kformula_factory.cc create mode 100644 kformula/kformula_factory.h create mode 100644 kformula/kformula_readonly.rc create mode 100644 kformula/kformula_view.cc create mode 100644 kformula/kformula_view.h create mode 100644 kformula/kformula_view_iface.cc create mode 100644 kformula/kformula_view_iface.h create mode 100644 kformula/kformulapart.desktop create mode 100644 kformula/kformulawidget.cc create mode 100644 kformula/kformulawidget.h create mode 100644 kformula/main.cc create mode 100644 kformula/pics/Makefile.am create mode 100644 kformula/pics/hi16-app-kformula.png create mode 100644 kformula/pics/hi22-app-kformula.png create mode 100644 kformula/pics/hi32-app-kformula.png create mode 100644 kformula/pics/hi48-app-kformula.png create mode 100755 kformula/tests/oasis-kformula.sh create mode 100644 kformula/tips create mode 100644 kivio/AUTHORS create mode 100644 kivio/CHANGELOG create mode 100644 kivio/CHANGES create mode 100644 kivio/LICENSE create mode 100644 kivio/Makefile.am create mode 100644 kivio/NOTES create mode 100644 kivio/README create mode 100644 kivio/configure.in.in create mode 100644 kivio/kivio-extract-i18n-desc.pl create mode 100644 kivio/kivio.spec create mode 100644 kivio/kiviopart/KIvioDocIface.cc create mode 100644 kivio/kiviopart/KIvioDocIface.h create mode 100644 kivio/kiviopart/KIvioLayerIface.cc create mode 100644 kivio/kiviopart/KIvioLayerIface.h create mode 100644 kivio/kiviopart/KIvioMapIface.cc create mode 100644 kivio/kiviopart/KIvioMapIface.h create mode 100644 kivio/kiviopart/KIvioPageIface.cc create mode 100644 kivio/kiviopart/KIvioPageIface.h create mode 100644 kivio/kiviopart/KIvioStencilIface.cc create mode 100644 kivio/kiviopart/KIvioStencilIface.h create mode 100644 kivio/kiviopart/KIvioViewIface.cc create mode 100644 kivio/kiviopart/KIvioViewIface.h create mode 100644 kivio/kiviopart/Makefile.am create mode 100644 kivio/kiviopart/addstenciltool.cpp create mode 100644 kivio/kiviopart/addstenciltool.h create mode 100644 kivio/kiviopart/config/Makefile.am create mode 100644 kivio/kiviopart/config/kivio.kcfg create mode 100644 kivio/kiviopart/config/kivio_config.cpp create mode 100644 kivio/kiviopart/config/kivio_config.h create mode 100644 kivio/kiviopart/config/kivio_settings.kcfgc create mode 100644 kivio/kiviopart/hi16-app-kivio.png create mode 100644 kivio/kiviopart/hi22-app-kivio.png create mode 100644 kivio/kiviopart/hi32-app-kivio.png create mode 100644 kivio/kiviopart/hi48-app-kivio.png create mode 100644 kivio/kiviopart/kivio.desktop create mode 100644 kivio/kiviopart/kivio.rc create mode 100644 kivio/kiviopart/kivio_aboutdata.h create mode 100644 kivio/kiviopart/kivio_canvas.cpp create mode 100644 kivio/kiviopart/kivio_canvas.h create mode 100644 kivio/kiviopart/kivio_command.cc create mode 100644 kivio/kiviopart/kivio_command.h create mode 100644 kivio/kiviopart/kivio_dlg_pageshow.cpp create mode 100644 kivio/kiviopart/kivio_dlg_pageshow.h create mode 100644 kivio/kiviopart/kivio_doc.cpp create mode 100644 kivio/kiviopart/kivio_doc.h create mode 100644 kivio/kiviopart/kivio_factory.cpp create mode 100644 kivio/kiviopart/kivio_factory.h create mode 100644 kivio/kiviopart/kivio_grid_data.cpp create mode 100644 kivio/kiviopart/kivio_grid_data.h create mode 100644 kivio/kiviopart/kivio_icon_view.cpp create mode 100644 kivio/kiviopart/kivio_icon_view.h create mode 100644 kivio/kiviopart/kivio_intra_stencil_data.cpp create mode 100644 kivio/kiviopart/kivio_intra_stencil_data.h create mode 100644 kivio/kiviopart/kivio_map.cpp create mode 100644 kivio/kiviopart/kivio_map.h create mode 100644 kivio/kiviopart/kivio_page.cpp create mode 100644 kivio/kiviopart/kivio_page.h create mode 100644 kivio/kiviopart/kivio_part_init.cc create mode 100644 kivio/kiviopart/kivio_readonly.rc create mode 100644 kivio/kiviopart/kivio_spawner_drag.cpp create mode 100644 kivio/kiviopart/kivio_spawner_drag.h create mode 100644 kivio/kiviopart/kivio_stackbar.cpp create mode 100644 kivio/kiviopart/kivio_stackbar.h create mode 100644 kivio/kiviopart/kivio_stencil_geometry_panel.cpp create mode 100644 kivio/kiviopart/kivio_stencil_geometry_panel.h create mode 100644 kivio/kiviopart/kivio_view.cpp create mode 100644 kivio/kiviopart/kivio_view.h create mode 100644 kivio/kiviopart/kivio_zoomaction.cpp create mode 100644 kivio/kiviopart/kivio_zoomaction.h create mode 100644 kivio/kiviopart/kivioarrowheadaction.cpp create mode 100644 kivio/kiviopart/kivioarrowheadaction.h create mode 100644 kivio/kiviopart/kiviodragobject.cpp create mode 100644 kivio/kiviopart/kiviodragobject.h create mode 100644 kivio/kiviopart/kivioglobal.cpp create mode 100644 kivio/kiviopart/kivioglobal.h create mode 100644 kivio/kiviopart/kiviopart.desktop create mode 100644 kivio/kiviopart/kiviosdk/Makefile.am create mode 100644 kivio/kiviopart/kiviosdk/diapathparser.cpp create mode 100644 kivio/kiviopart/kiviosdk/diapathparser.h create mode 100644 kivio/kiviopart/kiviosdk/kivio_1d_stencil.cpp create mode 100644 kivio/kiviopart/kiviosdk/kivio_1d_stencil.h create mode 100644 kivio/kiviopart/kiviosdk/kivio_arrowhead.cpp create mode 100644 kivio/kiviopart/kiviosdk/kivio_arrowhead.h create mode 100644 kivio/kiviopart/kiviosdk/kivio_base_connector_stencil.cpp create mode 100644 kivio/kiviopart/kiviosdk/kivio_base_connector_stencil.h create mode 100644 kivio/kiviopart/kiviosdk/kivio_base_target_stencil.cpp create mode 100644 kivio/kiviopart/kiviosdk/kivio_base_target_stencil.h create mode 100644 kivio/kiviopart/kiviosdk/kivio_common.cpp create mode 100644 kivio/kiviopart/kiviosdk/kivio_common.h create mode 100644 kivio/kiviopart/kiviosdk/kivio_connector_point.cpp create mode 100644 kivio/kiviopart/kiviosdk/kivio_connector_point.h create mode 100644 kivio/kiviopart/kiviosdk/kivio_connector_target.cpp create mode 100644 kivio/kiviopart/kiviosdk/kivio_connector_target.h create mode 100644 kivio/kiviopart/kiviosdk/kivio_custom_drag_data.cpp create mode 100644 kivio/kiviopart/kiviosdk/kivio_custom_drag_data.h create mode 100644 kivio/kiviopart/kiviosdk/kivio_dia_stencil_spawner.cpp create mode 100644 kivio/kiviopart/kiviosdk/kivio_dia_stencil_spawner.h create mode 100644 kivio/kiviopart/kiviosdk/kivio_fill_style.cpp create mode 100644 kivio/kiviopart/kiviosdk/kivio_fill_style.h create mode 100644 kivio/kiviopart/kiviosdk/kivio_gradient.cpp create mode 100644 kivio/kiviopart/kiviosdk/kivio_gradient.h create mode 100644 kivio/kiviopart/kiviosdk/kivio_group_stencil.cpp create mode 100644 kivio/kiviopart/kiviosdk/kivio_group_stencil.h create mode 100644 kivio/kiviopart/kiviosdk/kivio_layer.cpp create mode 100644 kivio/kiviopart/kiviosdk/kivio_layer.h create mode 100644 kivio/kiviopart/kiviosdk/kivio_layers.h create mode 100644 kivio/kiviopart/kiviosdk/kivio_line_style.cpp create mode 100644 kivio/kiviopart/kiviosdk/kivio_line_style.h create mode 100644 kivio/kiviopart/kiviosdk/kivio_painter.cpp create mode 100644 kivio/kiviopart/kiviosdk/kivio_painter.h create mode 100644 kivio/kiviopart/kiviosdk/kivio_plugin_stencil_spawner.cpp create mode 100644 kivio/kiviopart/kiviosdk/kivio_plugin_stencil_spawner.h create mode 100644 kivio/kiviopart/kiviosdk/kivio_point.cpp create mode 100644 kivio/kiviopart/kiviosdk/kivio_point.h create mode 100644 kivio/kiviopart/kiviosdk/kivio_py_stencil.cpp create mode 100644 kivio/kiviopart/kiviosdk/kivio_py_stencil.h create mode 100644 kivio/kiviopart/kiviosdk/kivio_py_stencil_spawner.cpp create mode 100644 kivio/kiviopart/kiviosdk/kivio_py_stencil_spawner.h create mode 100644 kivio/kiviopart/kiviosdk/kivio_screen_painter.cpp create mode 100644 kivio/kiviopart/kiviosdk/kivio_screen_painter.h create mode 100644 kivio/kiviopart/kiviosdk/kivio_shape.cpp create mode 100644 kivio/kiviopart/kiviosdk/kivio_shape.h create mode 100644 kivio/kiviopart/kiviosdk/kivio_shape_data.cpp create mode 100644 kivio/kiviopart/kiviosdk/kivio_shape_data.h create mode 100644 kivio/kiviopart/kiviosdk/kivio_shape_painter.cpp create mode 100644 kivio/kiviopart/kiviosdk/kivio_shape_painter.h create mode 100644 kivio/kiviopart/kiviosdk/kivio_sml_stencil.cpp create mode 100644 kivio/kiviopart/kiviosdk/kivio_sml_stencil.h create mode 100644 kivio/kiviopart/kiviosdk/kivio_sml_stencil_spawner.cpp create mode 100644 kivio/kiviopart/kiviosdk/kivio_sml_stencil_spawner.h create mode 100644 kivio/kiviopart/kiviosdk/kivio_stencil.cpp create mode 100644 kivio/kiviopart/kiviosdk/kivio_stencil.h create mode 100644 kivio/kiviopart/kiviosdk/kivio_stencil_spawner.cpp create mode 100644 kivio/kiviopart/kiviosdk/kivio_stencil_spawner.h create mode 100644 kivio/kiviopart/kiviosdk/kivio_stencil_spawner_info.cpp create mode 100644 kivio/kiviopart/kiviosdk/kivio_stencil_spawner_info.h create mode 100644 kivio/kiviopart/kiviosdk/kivio_stencil_spawner_set.cpp create mode 100644 kivio/kiviopart/kiviosdk/kivio_stencil_spawner_set.h create mode 100644 kivio/kiviopart/kiviosdk/kivio_text_style.cpp create mode 100644 kivio/kiviopart/kiviosdk/kivio_text_style.h create mode 100644 kivio/kiviopart/kiviosdk/kivio_wrap.cpp create mode 100644 kivio/kiviopart/kiviosdk/kiviopolylineconnector.cpp create mode 100644 kivio/kiviopart/kiviosdk/kiviopolylineconnector.h create mode 100644 kivio/kiviopart/kiviosdk/kiviostencilfactory.h create mode 100644 kivio/kiviopart/kiviosdk/polylineconnectorspawner.cpp create mode 100644 kivio/kiviopart/kiviosdk/polylineconnectorspawner.h create mode 100644 kivio/kiviopart/kiviosdk/py_kivio.h create mode 100644 kivio/kiviopart/kiviosdk/tkmath.h create mode 100644 kivio/kiviopart/kiviostencilsetaction.cpp create mode 100644 kivio/kiviopart/kiviostencilsetaction.h create mode 100644 kivio/kiviopart/kiviostencilsetinstaller.cpp create mode 100644 kivio/kiviopart/kiviostencilsetinstaller.h create mode 100644 kivio/kiviopart/main.cpp create mode 100644 kivio/kiviopart/pics/Makefile.am create mode 100644 kivio/kiviopart/pics/cr16-action-arrowheads.png create mode 100644 kivio/kiviopart/pics/cr22-action-arrowheads.png create mode 100644 kivio/kiviopart/pics/cr22-action-font_bold.png create mode 100644 kivio/kiviopart/pics/cr22-action-font_italic.png create mode 100644 kivio/kiviopart/pics/cr22-action-font_under.png create mode 100644 kivio/kiviopart/pics/cr22-action-open_stencilset.png create mode 100644 kivio/kiviopart/pics/cr32-action-arrowheads.png create mode 100644 kivio/kiviopart/pics/hi16-action-add_stencil.png create mode 100644 kivio/kiviopart/pics/hi16-action-align_bottom.png create mode 100644 kivio/kiviopart/pics/hi16-action-align_top.png create mode 100644 kivio/kiviopart/pics/hi16-action-align_vcenter.png create mode 100644 kivio/kiviopart/pics/hi16-action-bring_stencil_to_front.png create mode 100644 kivio/kiviopart/pics/hi16-action-copy_stencil.png create mode 100644 kivio/kiviopart/pics/hi16-action-cut_stencil.png create mode 100644 kivio/kiviopart/pics/hi16-action-end_arrowhead.png create mode 100644 kivio/kiviopart/pics/hi16-action-fillcolor.png create mode 100644 kivio/kiviopart/pics/hi16-action-font_bold.png create mode 100644 kivio/kiviopart/pics/hi16-action-font_italic.png create mode 100644 kivio/kiviopart/pics/hi16-action-font_names.png create mode 100644 kivio/kiviopart/pics/hi16-action-font_size.png create mode 100644 kivio/kiviopart/pics/hi16-action-font_under.png create mode 100644 kivio/kiviopart/pics/hi16-action-group_stencils.png create mode 100644 kivio/kiviopart/pics/hi16-action-guides_horizontal.png create mode 100644 kivio/kiviopart/pics/hi16-action-guides_vertical.png create mode 100644 kivio/kiviopart/pics/hi16-action-item_add.png create mode 100644 kivio/kiviopart/pics/hi16-action-item_remove.png create mode 100644 kivio/kiviopart/pics/hi16-action-item_rename.png create mode 100644 kivio/kiviopart/pics/hi16-action-layer_add.png create mode 100644 kivio/kiviopart/pics/hi16-action-layer_connect.png create mode 100644 kivio/kiviopart/pics/hi16-action-layer_editable.png create mode 100644 kivio/kiviopart/pics/hi16-action-layer_noconnect.png create mode 100644 kivio/kiviopart/pics/hi16-action-layer_noeditable.png create mode 100644 kivio/kiviopart/pics/hi16-action-layer_noprint.png create mode 100644 kivio/kiviopart/pics/hi16-action-layer_novisible.png create mode 100644 kivio/kiviopart/pics/hi16-action-layer_print.png create mode 100644 kivio/kiviopart/pics/hi16-action-layer_remove.png create mode 100644 kivio/kiviopart/pics/hi16-action-layer_visible.png create mode 100644 kivio/kiviopart/pics/hi16-action-linestyle.png create mode 100644 kivio/kiviopart/pics/hi16-action-linewidth.png create mode 100644 kivio/kiviopart/pics/hi16-action-open_stencilset.png create mode 100644 kivio/kiviopart/pics/hi16-action-page_disabled.png create mode 100644 kivio/kiviopart/pics/hi16-action-page_enabled.png create mode 100644 kivio/kiviopart/pics/hi16-action-paste_stencil.png create mode 100644 kivio/kiviopart/pics/hi16-action-pencolor.png create mode 100644 kivio/kiviopart/pics/hi16-action-remove_stencil.png create mode 100644 kivio/kiviopart/pics/hi16-action-send_stencil_to_back.png create mode 100644 kivio/kiviopart/pics/hi16-action-start_arrowhead.png create mode 100644 kivio/kiviopart/pics/hi16-action-textcolor.png create mode 100644 kivio/kiviopart/pics/hi16-action-ungroup_stencils.png create mode 100644 kivio/kiviopart/pics/hi16-action-view_grid.png create mode 100644 kivio/kiviopart/pics/hi16-action-view_guidelines.png create mode 100644 kivio/kiviopart/pics/hi16-action-view_manager.png create mode 100644 kivio/kiviopart/pics/hi16-action-view_margins.png create mode 100644 kivio/kiviopart/pics/hi16-action-view_page.png create mode 100644 kivio/kiviopart/pics/hi16-action-view_pageborder.png create mode 100644 kivio/kiviopart/pics/hi16-action-view_ruler.png create mode 100644 kivio/kiviopart/pics/hi16-action-zoom_disabled.png create mode 100644 kivio/kiviopart/pics/hi16-action-zoom_enabled.png create mode 100644 kivio/kiviopart/pics/hi22-action-add_target.png create mode 100644 kivio/kiviopart/pics/hi22-action-arrowheads.png create mode 100644 kivio/kiviopart/pics/hi22-action-bring_stencil_to_front.png create mode 100644 kivio/kiviopart/pics/hi22-action-close_stencilset.png create mode 100644 kivio/kiviopart/pics/hi22-action-font_bold.png create mode 100644 kivio/kiviopart/pics/hi22-action-font_italic.png create mode 100644 kivio/kiviopart/pics/hi22-action-font_under.png create mode 100644 kivio/kiviopart/pics/hi22-action-group_stencils.png create mode 100644 kivio/kiviopart/pics/hi22-action-linestyle.png create mode 100644 kivio/kiviopart/pics/hi22-action-linewidth.png create mode 100644 kivio/kiviopart/pics/hi22-action-open_stencilset.png create mode 100644 kivio/kiviopart/pics/hi22-action-select_all.png create mode 100644 kivio/kiviopart/pics/hi22-action-send_stencil_to_back.png create mode 100644 kivio/kiviopart/pics/hi22-action-ungroup_stencils.png create mode 100644 kivio/kiviopart/pics/hi22-action-unselect_all.png create mode 100644 kivio/kiviopart/pics/hi22-action-view_grid.png create mode 100644 kivio/kiviopart/pics/hi22-action-view_margins.png create mode 100644 kivio/kiviopart/pics/hi22-action-view_pageborder.png create mode 100644 kivio/kiviopart/pics/hi22-action-view_ruler.png create mode 100644 kivio/kiviopart/pics/hi32-action-bring_stencil_to_front.png create mode 100644 kivio/kiviopart/pics/hi32-action-close_stencilset.png create mode 100644 kivio/kiviopart/pics/hi32-action-font_bold.png create mode 100644 kivio/kiviopart/pics/hi32-action-font_italic.png create mode 100644 kivio/kiviopart/pics/hi32-action-font_under.png create mode 100644 kivio/kiviopart/pics/hi32-action-group_stencils.png create mode 100644 kivio/kiviopart/pics/hi32-action-open_stencilset.png create mode 100644 kivio/kiviopart/pics/hi32-action-select_all.png create mode 100644 kivio/kiviopart/pics/hi32-action-send_stencil_to_back.png create mode 100644 kivio/kiviopart/pics/hi32-action-ungroup_stencils.png create mode 100644 kivio/kiviopart/pics/hi32-action-unselect_all.png create mode 100644 kivio/kiviopart/pics/hi32-action-view_grid.png create mode 100644 kivio/kiviopart/pics/hi32-action-view_margins.png create mode 100644 kivio/kiviopart/pics/hi32-action-view_pageborder.png create mode 100644 kivio/kiviopart/pics/hi32-action-view_ruler.png create mode 100644 kivio/kiviopart/stencilbarbutton.cpp create mode 100644 kivio/kiviopart/stencilbarbutton.h create mode 100644 kivio/kiviopart/stencilbardockmanager.cpp create mode 100644 kivio/kiviopart/stencilbardockmanager.h create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/Makefile.am create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/arrow-chevron.png create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/arrow-chevron.shape create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/arrow-down.png create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/arrow-down.shape create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/arrow-left-notched.png create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/arrow-left-notched.shape create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/arrow-left-right-up.png create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/arrow-left-right-up.shape create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/arrow-left-right.png create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/arrow-left-right.shape create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/arrow-left-up.png create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/arrow-left-up.shape create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/arrow-left.png create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/arrow-left.shape create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/arrow-pentagon.png create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/arrow-pentagon.shape create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/arrow-quad.png create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/arrow-quad.shape create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/arrow-right-notched.png create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/arrow-right-notched.shape create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/arrow-right.png create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/arrow-right.shape create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/arrow-up-down-left.png create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/arrow-up-down-left.shape create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/arrow-up-down.png create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/arrow-up-down.shape create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/arrow-up.png create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/arrow-up.shape create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/circle-quarter.png create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/circle-quarter.shape create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/circle.png create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/circle.shape create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/cross-maltese.png create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/cross-maltese.shape create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/cross-swiss.png create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/cross-swiss.shape create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/desc create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/diamond.png create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/diamond.shape create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/heart.png create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/heart.shape create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/heptagon.png create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/heptagon.shape create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/hexagon.png create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/hexagon.shape create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/icon.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/moon-quarter.png create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/moon-quarter.shape create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/octagon.png create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/octagon.shape create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/parallelogram-horizontal.png create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/parallelogram-horizontal.shape create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/parallelogram-vertical.png create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/parallelogram-vertical.shape create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/pentagon.png create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/pentagon.shape create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/square.png create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/square.shape create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/star4.png create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/star4.shape create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/star4curved.png create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/star4curved.shape create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/star5.png create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/star5.shape create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/star6.png create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/star6.shape create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/star7.png create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/star7.shape create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/star8.png create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/star8.shape create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/star8curved.png create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/star8curved.shape create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/star8sharp.png create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/star8sharp.shape create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/sun.png create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/sun.shape create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/trapezoid.png create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/trapezoid.shape create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/triangle-isoceles.png create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/triangle-isoceles.shape create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/triangle-rightangle.png create mode 100644 kivio/kiviopart/stencils/Dia/Assorted/triangle-rightangle.shape create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/Makefile.am create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/desc create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/ground.shape create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/ground.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/hcapacitor.shape create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/hcapacitor.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/hdiode.shape create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/hdiode.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/hfuse_de.shape create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/hfuse_de.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/hinductor.shape create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/hinductor.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/hinductor_de.shape create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/hinductor_de.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/hjumper.png create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/hjumper.shape create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/hled_de.shape create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/hled_de.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/hpowersource_de.shape create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/hpowersource_de.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/hresistor.shape create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/hresistor.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/hresistor_de.shape create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/hresistor_de.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/hzener.shape create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/hzener.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/icon.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/lamp_de.shape create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/lamp_de.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/microphone_de.shape create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/microphone_de.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/nmos_de.shape create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/nmos_de.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/npn.shape create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/npn.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/opamp.shape create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/opamp.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/pmos_de.shape create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/pmos_de.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/pnp.shape create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/pnp.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/speaker_de.shape create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/speaker_de.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/vcapacitor.shape create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/vcapacitor.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/vdiode.shape create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/vdiode.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/vfuse_de.shape create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/vfuse_de.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/vinductor.shape create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/vinductor.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/vinductor_de.shape create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/vinductor_de.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/vled_de.shape create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/vled_de.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/vpowersource_de.shape create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/vpowersource_de.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/vresistor.shape create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/vresistor.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/vresistor_de.shape create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/vresistor_de.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/vzener.shape create mode 100644 kivio/kiviopart/stencils/Dia/Circuit/vzener.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/1000.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/1000.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/100baset_hub.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/100baset_hub.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/10700.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/10700.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/15200.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/15200.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/3174.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/3174.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/3x74.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/3x74.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/5000.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/5000.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/5002.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/5002.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/5500.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/5500.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/6701.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/6701.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/6705.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/6705.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/6732.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/6732.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/7500ars.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/7500ars.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/7505.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/7505.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/7507.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/7507.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/Makefile.am create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/accesspoint.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/accesspoint.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/adm.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/adm.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/asic.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/asic.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/ata.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/ata.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/atm3800.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/atm3800.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/atm_fast_gigabit_etherswitch.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/atm_fast_gigabit_etherswitch.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/atm_router.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/atm_router.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/atm_switch.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/atm_switch.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/atm_tag_sw_gigabit_router.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/atm_tag_sw_gigabit_router.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/atm_tag_switch_router.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/atm_tag_switch_router.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/bbfw.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/bbfw.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/bbfw_media.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/bbfw_media.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/bbsm.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/bbsm.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/branch_office.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/branch_office.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/breakout_box.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/breakout_box.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/bridge.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/bridge.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/broadband_router.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/broadband_router.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/bts10200.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/bts10200.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/ca.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/ca.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/cable_modem.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/cable_modem.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/callmanager.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/callmanager.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/car.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/car.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/catalyst_access_gateway.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/catalyst_access_gateway.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/cddi_fddi.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/cddi_fddi.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/cdm.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/cdm.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/cellular_phone.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/cellular_phone.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/centri.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/centri.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/cisco_hub.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/cisco_hub.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/ciscosecurity.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/ciscosecurity.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/ciscoworks.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/ciscoworks.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/class45_switch.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/class45_switch.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/cloud.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/cloud.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/communications_server.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/communications_server.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/content_engine.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/content_engine.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/content_service_router.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/content_service_router.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/content_switch.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/content_switch.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/content_switch_module.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/content_switch_module.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/css1100.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/css1100.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/csu_dsu.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/csu_dsu.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/cte.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/cte.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/desc create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/directory_server.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/directory_server.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/diskette.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/diskette.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/distributed_director.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/distributed_director.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/dot_dot.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/dot_dot.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/dpt.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/dpt.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/dslam.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/dslam.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/dwdm_filter.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/dwdm_filter.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/end_office.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/end_office.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/fax.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/fax.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/fc_storage.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/fc_storage.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/fddi_ring.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/fddi_ring.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/file_cabinet.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/file_cabinet.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/file_server.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/file_server.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/firewall.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/firewall.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/front_end_processor.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/front_end_processor.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/general_appliance.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/general_appliance.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/generic_building.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/generic_building.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/generic_gateway.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/generic_gateway.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/generic_processor.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/generic_processor.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/generic_softswitch.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/generic_softswitch.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/gigabit_switch_router_atm_tag.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/gigabit_switch_router_atm_tag.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/government_building.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/government_building.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/h323.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/h323.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/handheld.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/handheld.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/hootphone.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/hootphone.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/host.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/host.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/hp_mini.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/hp_mini.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/hub.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/hub.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/iad_router.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/iad_router.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/ibm_mainframe.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/ibm_mainframe.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/ibm_mini.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/ibm_mini.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/ibm_tower.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/ibm_tower.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/icm.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/icm.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/icon.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/ics.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/ics.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/ios_firewall.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/ios_firewall.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/ip.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/ip.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/ip_dsl.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/ip_dsl.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/ip_phone.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/ip_phone.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/ip_softphone.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/ip_softphone.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/ip_telephony_router.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/ip_telephony_router.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/iptc.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/iptc.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/iptv_broadcast_server.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/iptv_broadcast_server.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/iptv_content_manager.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/iptv_content_manager.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/isdn_switch.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/isdn_switch.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/itp.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/itp.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/key.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/key.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/lan_to_lan.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/lan_to_lan.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/laptop.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/laptop.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/layer3_switch.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/layer3_switch.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/localdirector.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/localdirector.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/lock.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/lock.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/longreach_cpe.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/longreach_cpe.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/mac_woman.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/mac_woman.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/macintosh.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/macintosh.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/man_woman.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/man_woman.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/mas_gateway.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/mas_gateway.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/mau.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/mau.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/mdu.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/mdu.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/me1100.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/me1100.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/metro1500.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/metro1500.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/mgx8220.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/mgx8220.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/mgx8240.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/mgx8240.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/mgx8260.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/mgx8260.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/microphone.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/microphone.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/microwebserver.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/microwebserver.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/mini_vax.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/mini_vax.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/modem.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/modem.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/moh_server.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/moh_server.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/multilayer_switch.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/multilayer_switch.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/multiswitch_device.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/multiswitch_device.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/mux.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/mux.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/netflow_router.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/netflow_router.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/netranger.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/netranger.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/netsonar.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/netsonar.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/network_management.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/network_management.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/octel.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/octel.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/ons15500.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/ons15500.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/optical_amplifier.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/optical_amplifier.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/optical_services_router.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/optical_services_router.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/optical_transport.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/optical_transport.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/pad.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/pad.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/pad_x28.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/pad_x28.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/pbx.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/pbx.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/pbx_switch.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/pbx_switch.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/pc.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/pc.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/pc_adapter_card.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/pc_adapter_card.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/pc_man.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/pc_man.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/pc_router_card.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/pc_router_card.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/pc_video.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/pc_video.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/pda.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/pda.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/phone.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/phone.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/phone_fax.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/phone_fax.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/pix_firewall.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/pix_firewall.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/printer.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/printer.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/programmable_switch.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/programmable_switch.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/protocol_translator.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/protocol_translator.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/pxf.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/pxf.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/radio_tower.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/radio_tower.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/ratemux.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/ratemux.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/relational_database.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/relational_database.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/repeater.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/repeater.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/route_switch_processor.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/route_switch_processor.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/router.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/router.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/router_in_building.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/router_in_building.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/router_with_firewall.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/router_with_firewall.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/router_with_silicon_switch.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/router_with_silicon_switch.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/rps.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/rps.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/running_man.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/running_man.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/satellite.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/satellite.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/satellite_dish.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/satellite_dish.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/sc2200.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/sc2200.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/sc2200_vsc3000_host.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/sc2200_vsc3000_host.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/scanner.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/scanner.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/server_with_pc_router.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/server_with_pc_router.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/sip_proxy_server.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/sip_proxy_server.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/sitting_woman.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/sitting_woman.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/small_business.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/small_business.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/small_hub.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/small_hub.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/softphone.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/softphone.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/software_based_server.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/software_based_server.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/speaker.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/speaker.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/standing_man.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/standing_man.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/stb.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/stb.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/storage_array.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/storage_array.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/storage_router.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/storage_router.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/stp.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/stp.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/sun_workstation.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/sun_workstation.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/supercomputer.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/supercomputer.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/svx.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/svx.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/system_controller.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/system_controller.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/tablet.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/tablet.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/tdm_router.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/tdm_router.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/telecommuter.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/telecommuter.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/telecommuter_house.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/telecommuter_house.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/telecommuter_house_router.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/telecommuter_house_router.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/terminal.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/terminal.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/tokenring.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/tokenring.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/transpath.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/transpath.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/truck.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/truck.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/turret.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/turret.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/tv.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/tv.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/ubr910.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/ubr910.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/unity_server.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/unity_server.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/universal_gateway.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/universal_gateway.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/university.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/university.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/ups.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/ups.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/video_camera.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/video_camera.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/vip.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/vip.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/voice_atm_switch.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/voice_atm_switch.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/voice_commserver.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/voice_commserver.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/voice_router.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/voice_router.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/voice_switch.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/voice_switch.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/voice_switch2.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/voice_switch2.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/vpn_concentrator.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/vpn_concentrator.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/vpn_gateway.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/vpn_gateway.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/vsc3000.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/vsc3000.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/wavelength_router.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/wavelength_router.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/web_browser.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/web_browser.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/web_cluster.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/web_cluster.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/wireless.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/wireless.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/wireless_bridge.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/wireless_bridge.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/wireless_transport.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/wireless_transport.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/workgroup_director.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/workgroup_director.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/workgroup_switch.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/workgroup_switch.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/workstation.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/workstation.shape create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/www_server.png create mode 100644 kivio/kiviopart/stencils/Dia/Cisco/www_server.shape create mode 100644 kivio/kiviopart/stencils/Dia/Civil/Makefile.am create mode 100644 kivio/kiviopart/stencils/Dia/Civil/bvrest.shape create mode 100644 kivio/kiviopart/stencils/Dia/Civil/bvrest.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Civil/civil_aerator.shape create mode 100644 kivio/kiviopart/stencils/Dia/Civil/civil_aerator.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Civil/civil_arrow_right.shape create mode 100644 kivio/kiviopart/stencils/Dia/Civil/civil_arrow_right.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Civil/civil_arrow_up.shape create mode 100644 kivio/kiviopart/stencils/Dia/Civil/civil_arrow_up.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Civil/civil_backflow_preventer.shape create mode 100644 kivio/kiviopart/stencils/Dia/Civil/civil_backflow_preventer.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Civil/civil_basin.shape create mode 100644 kivio/kiviopart/stencils/Dia/Civil/civil_basin.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Civil/civil_container.shape create mode 100644 kivio/kiviopart/stencils/Dia/Civil/civil_container.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Civil/civil_final-settling_basin.shape create mode 100644 kivio/kiviopart/stencils/Dia/Civil/civil_final-settling_basin.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Civil/civil_frequency_converter.shape create mode 100644 kivio/kiviopart/stencils/Dia/Civil/civil_frequency_converter.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Civil/civil_gas_bottle.shape create mode 100644 kivio/kiviopart/stencils/Dia/Civil/civil_gas_bottle.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Civil/civil_horizontal_limiting_line.shape create mode 100644 kivio/kiviopart/stencils/Dia/Civil/civil_horizontal_limiting_line.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Civil/civil_horizontal_valve.shape create mode 100644 kivio/kiviopart/stencils/Dia/Civil/civil_horizontal_valve.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Civil/civil_motor.shape create mode 100644 kivio/kiviopart/stencils/Dia/Civil/civil_motor.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Civil/civil_preliminary_clarification_tank.shape create mode 100644 kivio/kiviopart/stencils/Dia/Civil/civil_preliminary_clarification_tank.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Civil/civil_rotor.shape create mode 100644 kivio/kiviopart/stencils/Dia/Civil/civil_rotor.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Civil/civil_soil.shape create mode 100644 kivio/kiviopart/stencils/Dia/Civil/civil_soil.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Civil/civil_vertical_limiting_line.shape create mode 100644 kivio/kiviopart/stencils/Dia/Civil/civil_vertical_limiting_line.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Civil/civil_vertical_propeller.shape create mode 100644 kivio/kiviopart/stencils/Dia/Civil/civil_vertical_propeller.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Civil/desc create mode 100644 kivio/kiviopart/stencils/Dia/Civil/hcompressor.shape create mode 100644 kivio/kiviopart/stencils/Dia/Civil/hcompressor.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Civil/hpump.shape create mode 100644 kivio/kiviopart/stencils/Dia/Civil/hpump.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Civil/hrest.shape create mode 100644 kivio/kiviopart/stencils/Dia/Civil/hrest.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Civil/icon.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Civil/line.shape create mode 100644 kivio/kiviopart/stencils/Dia/Civil/line.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Civil/vcompressor.shape create mode 100644 kivio/kiviopart/stencils/Dia/Civil/vcompressor.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Civil/vpump.shape create mode 100644 kivio/kiviopart/stencils/Dia/Civil/vpump.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Civil/vrest.shape create mode 100644 kivio/kiviopart/stencils/Dia/Civil/vrest.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Civil/water_level.shape create mode 100644 kivio/kiviopart/stencils/Dia/Civil/water_level.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Contact/Makefile.am create mode 100644 kivio/kiviopart/stencils/Dia/Contact/c_if.shape create mode 100644 kivio/kiviopart/stencils/Dia/Contact/c_if.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Contact/c_ifnot.shape create mode 100644 kivio/kiviopart/stencils/Dia/Contact/c_ifnot.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Contact/c_lamp.shape create mode 100644 kivio/kiviopart/stencils/Dia/Contact/c_lamp.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Contact/c_relay.shape create mode 100644 kivio/kiviopart/stencils/Dia/Contact/c_relay.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Contact/desc create mode 100644 kivio/kiviopart/stencils/Dia/Contact/icon.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Contact/l_if.shape create mode 100644 kivio/kiviopart/stencils/Dia/Contact/l_if.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Contact/l_ifnot.shape create mode 100644 kivio/kiviopart/stencils/Dia/Contact/l_ifnot.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Contact/l_out.shape create mode 100644 kivio/kiviopart/stencils/Dia/Contact/l_out.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Contact/l_outj.shape create mode 100644 kivio/kiviopart/stencils/Dia/Contact/l_outj.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Contact/l_outnot.shape create mode 100644 kivio/kiviopart/stencils/Dia/Contact/l_outnot.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Contact/l_outr.shape create mode 100644 kivio/kiviopart/stencils/Dia/Contact/l_outr.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Contact/l_outrcep.shape create mode 100644 kivio/kiviopart/stencils/Dia/Contact/l_outrcep.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Contact/l_outs.shape create mode 100644 kivio/kiviopart/stencils/Dia/Contact/l_outs.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Contact/l_sout.shape create mode 100644 kivio/kiviopart/stencils/Dia/Contact/l_sout.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Contact/l_soutnot.shape create mode 100644 kivio/kiviopart/stencils/Dia/Contact/l_soutnot.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Contact/l_soutr.shape create mode 100644 kivio/kiviopart/stencils/Dia/Contact/l_soutr.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Contact/l_souts.shape create mode 100644 kivio/kiviopart/stencils/Dia/Contact/l_souts.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Electric/Makefile.am create mode 100644 kivio/kiviopart/stencils/Dia/Electric/cnx.shape create mode 100644 kivio/kiviopart/stencils/Dia/Electric/cnx.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Electric/command.shape create mode 100644 kivio/kiviopart/stencils/Dia/Electric/command.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Electric/contact_f.shape create mode 100644 kivio/kiviopart/stencils/Dia/Electric/contact_f.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Electric/contact_o.shape create mode 100644 kivio/kiviopart/stencils/Dia/Electric/contact_o.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Electric/desc create mode 100644 kivio/kiviopart/stencils/Dia/Electric/icon.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Electric/intpos_f.shape create mode 100644 kivio/kiviopart/stencils/Dia/Electric/intpos_f.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Electric/intpos_o.shape create mode 100644 kivio/kiviopart/stencils/Dia/Electric/intpos_o.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Electric/lamp.shape create mode 100644 kivio/kiviopart/stencils/Dia/Electric/lamp.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Electric/relay.shape create mode 100644 kivio/kiviopart/stencils/Dia/Electric/relay.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Jigsaw/Makefile.am create mode 100644 kivio/kiviopart/stencils/Dia/Jigsaw/desc create mode 100644 kivio/kiviopart/stencils/Dia/Jigsaw/icon.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Jigsaw/part_iiii.shape create mode 100644 kivio/kiviopart/stencils/Dia/Jigsaw/part_iiii.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Jigsaw/part_iiio.shape create mode 100644 kivio/kiviopart/stencils/Dia/Jigsaw/part_iiio.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Jigsaw/part_iioi.shape create mode 100644 kivio/kiviopart/stencils/Dia/Jigsaw/part_iioi.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Jigsaw/part_iioo.shape create mode 100644 kivio/kiviopart/stencils/Dia/Jigsaw/part_iioo.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Jigsaw/part_ioii.shape create mode 100644 kivio/kiviopart/stencils/Dia/Jigsaw/part_ioii.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Jigsaw/part_ioio.shape create mode 100644 kivio/kiviopart/stencils/Dia/Jigsaw/part_ioio.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Jigsaw/part_iooi.shape create mode 100644 kivio/kiviopart/stencils/Dia/Jigsaw/part_iooi.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Jigsaw/part_iooo.shape create mode 100644 kivio/kiviopart/stencils/Dia/Jigsaw/part_iooo.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Jigsaw/part_oiii.shape create mode 100644 kivio/kiviopart/stencils/Dia/Jigsaw/part_oiii.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Jigsaw/part_oiio.shape create mode 100644 kivio/kiviopart/stencils/Dia/Jigsaw/part_oiio.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Jigsaw/part_oioi.shape create mode 100644 kivio/kiviopart/stencils/Dia/Jigsaw/part_oioi.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Jigsaw/part_oioo.shape create mode 100644 kivio/kiviopart/stencils/Dia/Jigsaw/part_oioo.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Jigsaw/part_ooii.shape create mode 100644 kivio/kiviopart/stencils/Dia/Jigsaw/part_ooii.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Jigsaw/part_ooio.shape create mode 100644 kivio/kiviopart/stencils/Dia/Jigsaw/part_ooio.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Jigsaw/part_oooi.shape create mode 100644 kivio/kiviopart/stencils/Dia/Jigsaw/part_oooi.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Jigsaw/part_oooo.shape create mode 100644 kivio/kiviopart/stencils/Dia/Jigsaw/part_oooo.xpm create mode 100644 kivio/kiviopart/stencils/Dia/MSE/Makefile.am create mode 100644 kivio/kiviopart/stencils/Dia/MSE/demultiplexer.shape create mode 100644 kivio/kiviopart/stencils/Dia/MSE/demultiplexer.xpm create mode 100644 kivio/kiviopart/stencils/Dia/MSE/desc create mode 100644 kivio/kiviopart/stencils/Dia/MSE/icon.xpm create mode 100644 kivio/kiviopart/stencils/Dia/MSE/large_extension_node.shape create mode 100644 kivio/kiviopart/stencils/Dia/MSE/large_extension_node.xpm create mode 100644 kivio/kiviopart/stencils/Dia/MSE/multiplexer.shape create mode 100644 kivio/kiviopart/stencils/Dia/MSE/multiplexer.xpm create mode 100644 kivio/kiviopart/stencils/Dia/MSE/node_center.shape create mode 100644 kivio/kiviopart/stencils/Dia/MSE/node_center.xpm create mode 100644 kivio/kiviopart/stencils/Dia/MSE/small_extension_node.shape create mode 100644 kivio/kiviopart/stencils/Dia/MSE/small_extension_node.xpm create mode 100644 kivio/kiviopart/stencils/Dia/MSE/tacsat.shape create mode 100644 kivio/kiviopart/stencils/Dia/MSE/tacsat.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Makefile.am create mode 100644 kivio/kiviopart/stencils/Dia/Network/Makefile.am create mode 100644 kivio/kiviopart/stencils/Dia/Network/antenna.shape create mode 100644 kivio/kiviopart/stencils/Dia/Network/antenna.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Network/computer.shape create mode 100644 kivio/kiviopart/stencils/Dia/Network/computer.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Network/dat_external.shape create mode 100644 kivio/kiviopart/stencils/Dia/Network/dat_external.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Network/desc create mode 100644 kivio/kiviopart/stencils/Dia/Network/digitizing_board.png create mode 100644 kivio/kiviopart/stencils/Dia/Network/digitizing_board.shape create mode 100644 kivio/kiviopart/stencils/Dia/Network/disc.shape create mode 100644 kivio/kiviopart/stencils/Dia/Network/disc.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Network/diskette.shape create mode 100644 kivio/kiviopart/stencils/Dia/Network/diskette.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Network/firewall.shape create mode 100644 kivio/kiviopart/stencils/Dia/Network/firewall.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Network/flash.shape create mode 100644 kivio/kiviopart/stencils/Dia/Network/flash.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Network/genmonitor.shape create mode 100644 kivio/kiviopart/stencils/Dia/Network/genmonitor.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Network/hub.shape create mode 100644 kivio/kiviopart/stencils/Dia/Network/hub.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Network/icon.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Network/mobile_phone.shape create mode 100644 kivio/kiviopart/stencils/Dia/Network/mobile_phone.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Network/modem.shape create mode 100644 kivio/kiviopart/stencils/Dia/Network/modem.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Network/modularswitch.shape create mode 100644 kivio/kiviopart/stencils/Dia/Network/modularswitch.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Network/monitor.shape create mode 100644 kivio/kiviopart/stencils/Dia/Network/monitor.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Network/nwcloud.shape create mode 100644 kivio/kiviopart/stencils/Dia/Network/nwcloud.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Network/pc_bigtower.shape create mode 100644 kivio/kiviopart/stencils/Dia/Network/pc_bigtower.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Network/pc_desktop.shape create mode 100644 kivio/kiviopart/stencils/Dia/Network/pc_desktop.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Network/pc_miditower.shape create mode 100644 kivio/kiviopart/stencils/Dia/Network/pc_miditower.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Network/pc_minitower.shape create mode 100644 kivio/kiviopart/stencils/Dia/Network/pc_minitower.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Network/plotter.png create mode 100644 kivio/kiviopart/stencils/Dia/Network/plotter.shape create mode 100644 kivio/kiviopart/stencils/Dia/Network/printer.shape create mode 100644 kivio/kiviopart/stencils/Dia/Network/printer.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Network/rj45plug.shape create mode 100644 kivio/kiviopart/stencils/Dia/Network/rj45plug.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Network/router-symbol.shape create mode 100644 kivio/kiviopart/stencils/Dia/Network/router-symbol.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Network/sceadplug.shape create mode 100644 kivio/kiviopart/stencils/Dia/Network/sceadplug.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Network/speaker.shape create mode 100644 kivio/kiviopart/stencils/Dia/Network/speaker.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Network/speaker_amp.shape create mode 100644 kivio/kiviopart/stencils/Dia/Network/speaker_amp.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Network/switch-atm-symbol.shape create mode 100644 kivio/kiviopart/stencils/Dia/Network/switch-atm-symbol.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Network/switch-symbol.shape create mode 100644 kivio/kiviopart/stencils/Dia/Network/switch-symbol.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Network/telephone.png create mode 100644 kivio/kiviopart/stencils/Dia/Network/telephone.shape create mode 100644 kivio/kiviopart/stencils/Dia/Network/workstation.shape create mode 100644 kivio/kiviopart/stencils/Dia/Network/workstation.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Network/zip-disk.shape create mode 100644 kivio/kiviopart/stencils/Dia/Network/zip-disk.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Pneumatic/Makefile.am create mode 100644 kivio/kiviopart/stencils/Dia/Pneumatic/cnx.shape create mode 100644 kivio/kiviopart/stencils/Dia/Pneumatic/cnx.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Pneumatic/comelec1.shape create mode 100644 kivio/kiviopart/stencils/Dia/Pneumatic/comelec1.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Pneumatic/comelec2.shape create mode 100644 kivio/kiviopart/stencils/Dia/Pneumatic/comelec2.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Pneumatic/commusc.shape create mode 100644 kivio/kiviopart/stencils/Dia/Pneumatic/commusc.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Pneumatic/compb.shape create mode 100644 kivio/kiviopart/stencils/Dia/Pneumatic/compb.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Pneumatic/compilh.shape create mode 100644 kivio/kiviopart/stencils/Dia/Pneumatic/compilh.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Pneumatic/compilp.shape create mode 100644 kivio/kiviopart/stencils/Dia/Pneumatic/compilp.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Pneumatic/compush.shape create mode 100644 kivio/kiviopart/stencils/Dia/Pneumatic/compush.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Pneumatic/comspr.shape create mode 100644 kivio/kiviopart/stencils/Dia/Pneumatic/comspr.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Pneumatic/dejack.shape create mode 100644 kivio/kiviopart/stencils/Dia/Pneumatic/dejack.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Pneumatic/desc create mode 100644 kivio/kiviopart/stencils/Dia/Pneumatic/dist22.shape create mode 100644 kivio/kiviopart/stencils/Dia/Pneumatic/dist22.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Pneumatic/dist32.shape create mode 100644 kivio/kiviopart/stencils/Dia/Pneumatic/dist32.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Pneumatic/dist42.shape create mode 100644 kivio/kiviopart/stencils/Dia/Pneumatic/dist42.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Pneumatic/dist52.shape create mode 100644 kivio/kiviopart/stencils/Dia/Pneumatic/dist52.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Pneumatic/drain.shape create mode 100644 kivio/kiviopart/stencils/Dia/Pneumatic/drain.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Pneumatic/icon.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Pneumatic/press.shape create mode 100644 kivio/kiviopart/stencils/Dia/Pneumatic/press.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Pneumatic/presshy.shape create mode 100644 kivio/kiviopart/stencils/Dia/Pneumatic/presshy.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Pneumatic/presspn.shape create mode 100644 kivio/kiviopart/stencils/Dia/Pneumatic/presspn.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Pneumatic/seijack.shape create mode 100644 kivio/kiviopart/stencils/Dia/Pneumatic/seijack.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Pneumatic/seojack.shape create mode 100644 kivio/kiviopart/stencils/Dia/Pneumatic/seojack.xpm create mode 100644 kivio/kiviopart/stencils/Dia/SDL/Makefile.am create mode 100644 kivio/kiviopart/stencils/Dia/SDL/block.shape create mode 100644 kivio/kiviopart/stencils/Dia/SDL/block.xpm create mode 100644 kivio/kiviopart/stencils/Dia/SDL/comment.shape create mode 100644 kivio/kiviopart/stencils/Dia/SDL/comment.xpm create mode 100644 kivio/kiviopart/stencils/Dia/SDL/decision.shape create mode 100644 kivio/kiviopart/stencils/Dia/SDL/decision.xpm create mode 100644 kivio/kiviopart/stencils/Dia/SDL/desc create mode 100644 kivio/kiviopart/stencils/Dia/SDL/function.shape create mode 100644 kivio/kiviopart/stencils/Dia/SDL/function.xpm create mode 100644 kivio/kiviopart/stencils/Dia/SDL/header.shape create mode 100644 kivio/kiviopart/stencils/Dia/SDL/header.xpm create mode 100644 kivio/kiviopart/stencils/Dia/SDL/icon.xpm create mode 100644 kivio/kiviopart/stencils/Dia/SDL/inout.shape create mode 100644 kivio/kiviopart/stencils/Dia/SDL/inout.xpm create mode 100644 kivio/kiviopart/stencils/Dia/SDL/macro.shape create mode 100644 kivio/kiviopart/stencils/Dia/SDL/macro.xpm create mode 100644 kivio/kiviopart/stencils/Dia/SDL/note.shape create mode 100644 kivio/kiviopart/stencils/Dia/SDL/note.xpm create mode 100644 kivio/kiviopart/stencils/Dia/SDL/process.shape create mode 100644 kivio/kiviopart/stencils/Dia/SDL/process.xpm create mode 100644 kivio/kiviopart/stencils/Dia/SDL/receive.shape create mode 100644 kivio/kiviopart/stencils/Dia/SDL/receive.xpm create mode 100644 kivio/kiviopart/stencils/Dia/SDL/return.shape create mode 100644 kivio/kiviopart/stencils/Dia/SDL/return.xpm create mode 100644 kivio/kiviopart/stencils/Dia/SDL/save.shape create mode 100644 kivio/kiviopart/stencils/Dia/SDL/save.xpm create mode 100644 kivio/kiviopart/stencils/Dia/SDL/send.shape create mode 100644 kivio/kiviopart/stencils/Dia/SDL/send.xpm create mode 100644 kivio/kiviopart/stencils/Dia/SDL/service.shape create mode 100644 kivio/kiviopart/stencils/Dia/SDL/service.xpm create mode 100644 kivio/kiviopart/stencils/Dia/SDL/state.shape create mode 100644 kivio/kiviopart/stencils/Dia/SDL/state.xpm create mode 100644 kivio/kiviopart/stencils/Dia/SDL/stop.shape create mode 100644 kivio/kiviopart/stencils/Dia/SDL/stop.xpm create mode 100644 kivio/kiviopart/stencils/Dia/SDL/task.shape create mode 100644 kivio/kiviopart/stencils/Dia/SDL/task.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Sybase/Makefile.am create mode 100644 kivio/kiviopart/stencils/Dia/Sybase/client.shape create mode 100644 kivio/kiviopart/stencils/Dia/Sybase/client.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Sybase/dataserver.shape create mode 100644 kivio/kiviopart/stencils/Dia/Sybase/dataserver.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Sybase/desc create mode 100644 kivio/kiviopart/stencils/Dia/Sybase/icon.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Sybase/ltm.shape create mode 100644 kivio/kiviopart/stencils/Dia/Sybase/ltm.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Sybase/repserver.shape create mode 100644 kivio/kiviopart/stencils/Dia/Sybase/repserver.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Sybase/rsm.shape create mode 100644 kivio/kiviopart/stencils/Dia/Sybase/rsm.xpm create mode 100644 kivio/kiviopart/stencils/Dia/Sybase/stableq.shape create mode 100644 kivio/kiviopart/stencils/Dia/Sybase/stableq.xpm create mode 100644 kivio/kiviopart/stencils/Dia/desc create mode 100644 kivio/kiviopart/stencils/Dia/icon.xpm create mode 100644 kivio/kiviopart/stencils/Flowcharting/BasicFlowcharting/Card.sml create mode 100644 kivio/kiviopart/stencils/Flowcharting/BasicFlowcharting/Card.xpm create mode 100644 kivio/kiviopart/stencils/Flowcharting/BasicFlowcharting/Data.sml create mode 100644 kivio/kiviopart/stencils/Flowcharting/BasicFlowcharting/Data.xpm create mode 100644 kivio/kiviopart/stencils/Flowcharting/BasicFlowcharting/Decision.sml create mode 100644 kivio/kiviopart/stencils/Flowcharting/BasicFlowcharting/Decision.xpm create mode 100644 kivio/kiviopart/stencils/Flowcharting/BasicFlowcharting/DirectData.sml create mode 100644 kivio/kiviopart/stencils/Flowcharting/BasicFlowcharting/DirectData.xpm create mode 100644 kivio/kiviopart/stencils/Flowcharting/BasicFlowcharting/Display.sml create mode 100644 kivio/kiviopart/stencils/Flowcharting/BasicFlowcharting/Display.xpm create mode 100644 kivio/kiviopart/stencils/Flowcharting/BasicFlowcharting/Document.sml create mode 100644 kivio/kiviopart/stencils/Flowcharting/BasicFlowcharting/Document.xpm create mode 100644 kivio/kiviopart/stencils/Flowcharting/BasicFlowcharting/InternalStorage.sml create mode 100644 kivio/kiviopart/stencils/Flowcharting/BasicFlowcharting/InternalStorage.xpm create mode 100644 kivio/kiviopart/stencils/Flowcharting/BasicFlowcharting/LICENSE create mode 100644 kivio/kiviopart/stencils/Flowcharting/BasicFlowcharting/LoopLimit.sml create mode 100644 kivio/kiviopart/stencils/Flowcharting/BasicFlowcharting/LoopLimit.xpm create mode 100644 kivio/kiviopart/stencils/Flowcharting/BasicFlowcharting/Makefile.am create mode 100644 kivio/kiviopart/stencils/Flowcharting/BasicFlowcharting/ManualInput.sml create mode 100644 kivio/kiviopart/stencils/Flowcharting/BasicFlowcharting/ManualInput.xpm create mode 100644 kivio/kiviopart/stencils/Flowcharting/BasicFlowcharting/ManualOperation.sml create mode 100644 kivio/kiviopart/stencils/Flowcharting/BasicFlowcharting/ManualOperation.xpm create mode 100644 kivio/kiviopart/stencils/Flowcharting/BasicFlowcharting/OffPageRef.sml create mode 100644 kivio/kiviopart/stencils/Flowcharting/BasicFlowcharting/OffPageRef.xpm create mode 100644 kivio/kiviopart/stencils/Flowcharting/BasicFlowcharting/OnPageRef.sml create mode 100644 kivio/kiviopart/stencils/Flowcharting/BasicFlowcharting/OnPageRef.xpm create mode 100644 kivio/kiviopart/stencils/Flowcharting/BasicFlowcharting/PaperTape.sml create mode 100644 kivio/kiviopart/stencils/Flowcharting/BasicFlowcharting/PaperTape.xpm create mode 100644 kivio/kiviopart/stencils/Flowcharting/BasicFlowcharting/PredefinedProcess.sml create mode 100644 kivio/kiviopart/stencils/Flowcharting/BasicFlowcharting/PredefinedProcess.xpm create mode 100644 kivio/kiviopart/stencils/Flowcharting/BasicFlowcharting/Preperation.sml create mode 100644 kivio/kiviopart/stencils/Flowcharting/BasicFlowcharting/Preperation.xpm create mode 100644 kivio/kiviopart/stencils/Flowcharting/BasicFlowcharting/Process.sml create mode 100644 kivio/kiviopart/stencils/Flowcharting/BasicFlowcharting/Process.xpm create mode 100644 kivio/kiviopart/stencils/Flowcharting/BasicFlowcharting/PyStencil.spy create mode 100644 kivio/kiviopart/stencils/Flowcharting/BasicFlowcharting/PyStencil.xpm create mode 100644 kivio/kiviopart/stencils/Flowcharting/BasicFlowcharting/SequentialData.sml create mode 100644 kivio/kiviopart/stencils/Flowcharting/BasicFlowcharting/SequentialData.xpm create mode 100644 kivio/kiviopart/stencils/Flowcharting/BasicFlowcharting/StoredData.sml create mode 100644 kivio/kiviopart/stencils/Flowcharting/BasicFlowcharting/StoredData.xpm create mode 100644 kivio/kiviopart/stencils/Flowcharting/BasicFlowcharting/Terminator.sml create mode 100644 kivio/kiviopart/stencils/Flowcharting/BasicFlowcharting/Terminator.xpm create mode 100644 kivio/kiviopart/stencils/Flowcharting/BasicFlowcharting/desc create mode 100644 kivio/kiviopart/stencils/Flowcharting/BasicFlowcharting/icon.xpm create mode 100644 kivio/kiviopart/stencils/Flowcharting/Extended/Data_Store.sml create mode 100644 kivio/kiviopart/stencils/Flowcharting/Extended/Data_Store.xpm create mode 100644 kivio/kiviopart/stencils/Flowcharting/Extended/Database.sml create mode 100644 kivio/kiviopart/stencils/Flowcharting/Extended/Database.xpm create mode 100644 kivio/kiviopart/stencils/Flowcharting/Extended/Makefile.am create mode 100644 kivio/kiviopart/stencils/Flowcharting/Extended/Process.sml create mode 100644 kivio/kiviopart/stencils/Flowcharting/Extended/Process.xpm create mode 100644 kivio/kiviopart/stencils/Flowcharting/Extended/Source_or_Sink.sml create mode 100644 kivio/kiviopart/stencils/Flowcharting/Extended/Source_or_Sink.xpm create mode 100644 kivio/kiviopart/stencils/Flowcharting/Extended/desc create mode 100644 kivio/kiviopart/stencils/Flowcharting/Extended/icon.xpm create mode 100644 kivio/kiviopart/stencils/Flowcharting/Logic/Makefile.am create mode 100644 kivio/kiviopart/stencils/Flowcharting/Logic/and.sml create mode 100644 kivio/kiviopart/stencils/Flowcharting/Logic/and.xpm create mode 100644 kivio/kiviopart/stencils/Flowcharting/Logic/buffer.sml create mode 100644 kivio/kiviopart/stencils/Flowcharting/Logic/buffer.xpm create mode 100644 kivio/kiviopart/stencils/Flowcharting/Logic/connector.sml create mode 100644 kivio/kiviopart/stencils/Flowcharting/Logic/connector.xpm create mode 100644 kivio/kiviopart/stencils/Flowcharting/Logic/desc create mode 100644 kivio/kiviopart/stencils/Flowcharting/Logic/icon.xpm create mode 100644 kivio/kiviopart/stencils/Flowcharting/Logic/inverter.sml create mode 100644 kivio/kiviopart/stencils/Flowcharting/Logic/inverter.xpm create mode 100644 kivio/kiviopart/stencils/Flowcharting/Logic/nand.sml create mode 100644 kivio/kiviopart/stencils/Flowcharting/Logic/nand.xpm create mode 100644 kivio/kiviopart/stencils/Flowcharting/Logic/nor.sml create mode 100644 kivio/kiviopart/stencils/Flowcharting/Logic/nor.xpm create mode 100644 kivio/kiviopart/stencils/Flowcharting/Logic/not.sml create mode 100644 kivio/kiviopart/stencils/Flowcharting/Logic/not.xpm create mode 100644 kivio/kiviopart/stencils/Flowcharting/Logic/or.sml create mode 100644 kivio/kiviopart/stencils/Flowcharting/Logic/or.xpm create mode 100644 kivio/kiviopart/stencils/Flowcharting/Logic/xor.sml create mode 100644 kivio/kiviopart/stencils/Flowcharting/Logic/xor.xpm create mode 100644 kivio/kiviopart/stencils/Flowcharting/Makefile.am create mode 100644 kivio/kiviopart/stencils/Flowcharting/desc create mode 100644 kivio/kiviopart/stencils/Flowcharting/icon.xpm create mode 100644 kivio/kiviopart/stencils/Geographic/Flags/Austria.sml create mode 100644 kivio/kiviopart/stencils/Geographic/Flags/Austria.xpm create mode 100644 kivio/kiviopart/stencils/Geographic/Flags/Belgium.sml create mode 100644 kivio/kiviopart/stencils/Geographic/Flags/Belgium.xpm create mode 100644 kivio/kiviopart/stencils/Geographic/Flags/Finland.sml create mode 100644 kivio/kiviopart/stencils/Geographic/Flags/Finland.xpm create mode 100644 kivio/kiviopart/stencils/Geographic/Flags/France.sml create mode 100644 kivio/kiviopart/stencils/Geographic/Flags/France.xpm create mode 100644 kivio/kiviopart/stencils/Geographic/Flags/Germany.sml create mode 100644 kivio/kiviopart/stencils/Geographic/Flags/Germany.xpm create mode 100644 kivio/kiviopart/stencils/Geographic/Flags/GreatBritain.sml create mode 100644 kivio/kiviopart/stencils/Geographic/Flags/GreatBritain.xpm create mode 100644 kivio/kiviopart/stencils/Geographic/Flags/Greece.sml create mode 100644 kivio/kiviopart/stencils/Geographic/Flags/Greece.xpm create mode 100644 kivio/kiviopart/stencils/Geographic/Flags/Iceland.sml create mode 100644 kivio/kiviopart/stencils/Geographic/Flags/Iceland.xpm create mode 100644 kivio/kiviopart/stencils/Geographic/Flags/Ireland.sml create mode 100644 kivio/kiviopart/stencils/Geographic/Flags/Ireland.xpm create mode 100644 kivio/kiviopart/stencils/Geographic/Flags/Italy.sml create mode 100644 kivio/kiviopart/stencils/Geographic/Flags/Italy.xpm create mode 100644 kivio/kiviopart/stencils/Geographic/Flags/Japan.sml create mode 100644 kivio/kiviopart/stencils/Geographic/Flags/Japan.xpm create mode 100644 kivio/kiviopart/stencils/Geographic/Flags/Luxemburg.sml create mode 100644 kivio/kiviopart/stencils/Geographic/Flags/Luxemburg.xpm create mode 100644 kivio/kiviopart/stencils/Geographic/Flags/Makefile.am create mode 100644 kivio/kiviopart/stencils/Geographic/Flags/Netherlands.sml create mode 100644 kivio/kiviopart/stencils/Geographic/Flags/Netherlands.xpm create mode 100644 kivio/kiviopart/stencils/Geographic/Flags/Norway.sml create mode 100644 kivio/kiviopart/stencils/Geographic/Flags/Norway.xpm create mode 100644 kivio/kiviopart/stencils/Geographic/Flags/Poland.sml create mode 100644 kivio/kiviopart/stencils/Geographic/Flags/Poland.xpm create mode 100644 kivio/kiviopart/stencils/Geographic/Flags/Sweden.sml create mode 100644 kivio/kiviopart/stencils/Geographic/Flags/Sweden.xpm create mode 100644 kivio/kiviopart/stencils/Geographic/Flags/Switzerland.sml create mode 100644 kivio/kiviopart/stencils/Geographic/Flags/Switzerland.xpm create mode 100644 kivio/kiviopart/stencils/Geographic/Flags/USA.sml create mode 100644 kivio/kiviopart/stencils/Geographic/Flags/USA.xpm create mode 100644 kivio/kiviopart/stencils/Geographic/Flags/desc create mode 100644 kivio/kiviopart/stencils/Geographic/Flags/icon.xpm create mode 100644 kivio/kiviopart/stencils/Geographic/Makefile.am create mode 100644 kivio/kiviopart/stencils/Geographic/Maps/Belgium.sml create mode 100644 kivio/kiviopart/stencils/Geographic/Maps/Belgium.xpm create mode 100644 kivio/kiviopart/stencils/Geographic/Maps/Europe.sml create mode 100644 kivio/kiviopart/stencils/Geographic/Maps/Europe.xpm create mode 100644 kivio/kiviopart/stencils/Geographic/Maps/Makefile.am create mode 100644 kivio/kiviopart/stencils/Geographic/Maps/desc create mode 100644 kivio/kiviopart/stencils/Geographic/Maps/icon.xpm create mode 100644 kivio/kiviopart/stencils/Geographic/desc create mode 100644 kivio/kiviopart/stencils/Geographic/icon.xpm create mode 100644 kivio/kiviopart/stencils/Hardware/Computer/3FloppyDisk.sml create mode 100644 kivio/kiviopart/stencils/Hardware/Computer/3FloppyDisk.xpm create mode 100644 kivio/kiviopart/stencils/Hardware/Computer/DesktopPC2D.sml create mode 100644 kivio/kiviopart/stencils/Hardware/Computer/DesktopPC2D.xpm create mode 100644 kivio/kiviopart/stencils/Hardware/Computer/DesktopPC3D.sml create mode 100644 kivio/kiviopart/stencils/Hardware/Computer/DesktopPC3D.xpm create mode 100644 kivio/kiviopart/stencils/Hardware/Computer/HDD.sml create mode 100644 kivio/kiviopart/stencils/Hardware/Computer/HDD.xpm create mode 100644 kivio/kiviopart/stencils/Hardware/Computer/Makefile.am create mode 100644 kivio/kiviopart/stencils/Hardware/Computer/MinitowerDesktopPC2D.sml create mode 100644 kivio/kiviopart/stencils/Hardware/Computer/MinitowerDesktopPC2D.xpm create mode 100644 kivio/kiviopart/stencils/Hardware/Computer/MinitowerDesktopPC3D.sml create mode 100644 kivio/kiviopart/stencils/Hardware/Computer/MinitowerDesktopPC3D.xpm create mode 100644 kivio/kiviopart/stencils/Hardware/Computer/Notebook.sml create mode 100644 kivio/kiviopart/stencils/Hardware/Computer/Notebook.xpm create mode 100644 kivio/kiviopart/stencils/Hardware/Computer/PCIcard.sml create mode 100644 kivio/kiviopart/stencils/Hardware/Computer/PCIcard.xpm create mode 100644 kivio/kiviopart/stencils/Hardware/Computer/Rack.sml create mode 100644 kivio/kiviopart/stencils/Hardware/Computer/Rack.xpm create mode 100644 kivio/kiviopart/stencils/Hardware/Computer/Terminal.png create mode 100644 kivio/kiviopart/stencils/Hardware/Computer/Terminal.sml create mode 100644 kivio/kiviopart/stencils/Hardware/Computer/Workstation3D.sml create mode 100644 kivio/kiviopart/stencils/Hardware/Computer/Workstation3D.xpm create mode 100644 kivio/kiviopart/stencils/Hardware/Computer/XTerminal.sml create mode 100644 kivio/kiviopart/stencils/Hardware/Computer/XTerminal.xpm create mode 100644 kivio/kiviopart/stencils/Hardware/Computer/desc create mode 100644 kivio/kiviopart/stencils/Hardware/Computer/icon.xpm create mode 100644 kivio/kiviopart/stencils/Hardware/Computer/keyboard.sml create mode 100644 kivio/kiviopart/stencils/Hardware/Computer/keyboard.xpm create mode 100644 kivio/kiviopart/stencils/Hardware/Computer/printer1.sml create mode 100644 kivio/kiviopart/stencils/Hardware/Computer/printer1.xpm create mode 100644 kivio/kiviopart/stencils/Hardware/Computer/printer2.sml create mode 100644 kivio/kiviopart/stencils/Hardware/Computer/printer2.xpm create mode 100644 kivio/kiviopart/stencils/Hardware/Computer/proxy.sml create mode 100644 kivio/kiviopart/stencils/Hardware/Computer/proxy.xpm create mode 100644 kivio/kiviopart/stencils/Hardware/Makefile.am create mode 100644 kivio/kiviopart/stencils/Hardware/Miscellaneous/CellPhone.sml create mode 100644 kivio/kiviopart/stencils/Hardware/Miscellaneous/CellPhone.xpm create mode 100644 kivio/kiviopart/stencils/Hardware/Miscellaneous/Makefile.am create mode 100644 kivio/kiviopart/stencils/Hardware/Miscellaneous/cd-rom.sml create mode 100644 kivio/kiviopart/stencils/Hardware/Miscellaneous/cd-rom.xpm create mode 100644 kivio/kiviopart/stencils/Hardware/Miscellaneous/desc create mode 100644 kivio/kiviopart/stencils/Hardware/Miscellaneous/icon.xpm create mode 100644 kivio/kiviopart/stencils/Hardware/Miscellaneous/key.sml create mode 100644 kivio/kiviopart/stencils/Hardware/Miscellaneous/key.xpm create mode 100644 kivio/kiviopart/stencils/Hardware/desc create mode 100644 kivio/kiviopart/stencils/Hardware/icon.xpm create mode 100644 kivio/kiviopart/stencils/Makefile.am create mode 100644 kivio/kiviopart/stencils/Miscellaneous/Arrows/Arrow.sml create mode 100644 kivio/kiviopart/stencils/Miscellaneous/Arrows/Arrow.xpm create mode 100644 kivio/kiviopart/stencils/Miscellaneous/Arrows/Makefile.am create mode 100644 kivio/kiviopart/stencils/Miscellaneous/Arrows/Multiple_Arrow_1.sml create mode 100644 kivio/kiviopart/stencils/Miscellaneous/Arrows/Multiple_Arrow_1.xpm create mode 100644 kivio/kiviopart/stencils/Miscellaneous/Arrows/Multiple_Arrow_2.sml create mode 100644 kivio/kiviopart/stencils/Miscellaneous/Arrows/Multiple_Arrow_2.xpm create mode 100644 kivio/kiviopart/stencils/Miscellaneous/Arrows/Multiple_Arrow_3.sml create mode 100644 kivio/kiviopart/stencils/Miscellaneous/Arrows/Multiple_Arrow_3.xpm create mode 100644 kivio/kiviopart/stencils/Miscellaneous/Arrows/Sun_Arrow.sml create mode 100644 kivio/kiviopart/stencils/Miscellaneous/Arrows/Sun_Arrow.xpm create mode 100644 kivio/kiviopart/stencils/Miscellaneous/Arrows/desc create mode 100644 kivio/kiviopart/stencils/Miscellaneous/Arrows/icon.xpm create mode 100755 kivio/kiviopart/stencils/Miscellaneous/Buildings/Factory.sml create mode 100644 kivio/kiviopart/stencils/Miscellaneous/Buildings/Factory.xpm create mode 100755 kivio/kiviopart/stencils/Miscellaneous/Buildings/House.sml create mode 100644 kivio/kiviopart/stencils/Miscellaneous/Buildings/House.xpm create mode 100644 kivio/kiviopart/stencils/Miscellaneous/Buildings/Makefile.am create mode 100644 kivio/kiviopart/stencils/Miscellaneous/Buildings/Office.sml create mode 100644 kivio/kiviopart/stencils/Miscellaneous/Buildings/Office.xpm create mode 100644 kivio/kiviopart/stencils/Miscellaneous/Buildings/Office2.xpm create mode 100755 kivio/kiviopart/stencils/Miscellaneous/Buildings/desc create mode 100644 kivio/kiviopart/stencils/Miscellaneous/Buildings/icon.xpm create mode 100644 kivio/kiviopart/stencils/Miscellaneous/ER/Makefile.am create mode 100644 kivio/kiviopart/stencils/Miscellaneous/ER/attribute.sml create mode 100644 kivio/kiviopart/stencils/Miscellaneous/ER/derivedattribute.sml create mode 100644 kivio/kiviopart/stencils/Miscellaneous/ER/desc create mode 100644 kivio/kiviopart/stencils/Miscellaneous/ER/entity.sml create mode 100644 kivio/kiviopart/stencils/Miscellaneous/ER/icon.png create mode 100644 kivio/kiviopart/stencils/Miscellaneous/ER/multivaluedattribute.sml create mode 100644 kivio/kiviopart/stencils/Miscellaneous/ER/relationship.sml create mode 100644 kivio/kiviopart/stencils/Miscellaneous/ER/weakentity.sml create mode 100644 kivio/kiviopart/stencils/Miscellaneous/ER/weakrelationship.sml create mode 100644 kivio/kiviopart/stencils/Miscellaneous/Makefile.am create mode 100644 kivio/kiviopart/stencils/Miscellaneous/NassiShneiderman/Makefile.am create mode 100644 kivio/kiviopart/stencils/Miscellaneous/NassiShneiderman/block.png create mode 100644 kivio/kiviopart/stencils/Miscellaneous/NassiShneiderman/block.sml create mode 100644 kivio/kiviopart/stencils/Miscellaneous/NassiShneiderman/box.png create mode 100644 kivio/kiviopart/stencils/Miscellaneous/NassiShneiderman/box.sml create mode 100644 kivio/kiviopart/stencils/Miscellaneous/NassiShneiderman/call.png create mode 100644 kivio/kiviopart/stencils/Miscellaneous/NassiShneiderman/call.sml create mode 100644 kivio/kiviopart/stencils/Miscellaneous/NassiShneiderman/choice-add.png create mode 100644 kivio/kiviopart/stencils/Miscellaneous/NassiShneiderman/choice-add.sml create mode 100644 kivio/kiviopart/stencils/Miscellaneous/NassiShneiderman/choice.png create mode 100644 kivio/kiviopart/stencils/Miscellaneous/NassiShneiderman/choice.sml create mode 100644 kivio/kiviopart/stencils/Miscellaneous/NassiShneiderman/conditional-head1.png create mode 100644 kivio/kiviopart/stencils/Miscellaneous/NassiShneiderman/conditional-head1.sml create mode 100644 kivio/kiviopart/stencils/Miscellaneous/NassiShneiderman/conditional-head2.png create mode 100644 kivio/kiviopart/stencils/Miscellaneous/NassiShneiderman/conditional-head2.sml create mode 100644 kivio/kiviopart/stencils/Miscellaneous/NassiShneiderman/conditional.png create mode 100644 kivio/kiviopart/stencils/Miscellaneous/NassiShneiderman/conditional.sml create mode 100644 kivio/kiviopart/stencils/Miscellaneous/NassiShneiderman/desc create mode 100644 kivio/kiviopart/stencils/Miscellaneous/NassiShneiderman/exit.png create mode 100644 kivio/kiviopart/stencils/Miscellaneous/NassiShneiderman/exit.sml create mode 100644 kivio/kiviopart/stencils/Miscellaneous/NassiShneiderman/footloop.png create mode 100644 kivio/kiviopart/stencils/Miscellaneous/NassiShneiderman/footloop.sml create mode 100644 kivio/kiviopart/stencils/Miscellaneous/NassiShneiderman/headloop.png create mode 100644 kivio/kiviopart/stencils/Miscellaneous/NassiShneiderman/headloop.sml create mode 100644 kivio/kiviopart/stencils/Miscellaneous/NassiShneiderman/icon.png create mode 100644 kivio/kiviopart/stencils/Miscellaneous/NassiShneiderman/statement.png create mode 100644 kivio/kiviopart/stencils/Miscellaneous/NassiShneiderman/statement.sml create mode 100755 kivio/kiviopart/stencils/Miscellaneous/People/Bad.sml create mode 100644 kivio/kiviopart/stencils/Miscellaneous/People/Bad.xpm create mode 100755 kivio/kiviopart/stencils/Miscellaneous/People/Blue_Collar_Worker.sml create mode 100644 kivio/kiviopart/stencils/Miscellaneous/People/Blue_Collar_Worker.xpm create mode 100755 kivio/kiviopart/stencils/Miscellaneous/People/Good.sml create mode 100644 kivio/kiviopart/stencils/Miscellaneous/People/Good.xpm create mode 100755 kivio/kiviopart/stencils/Miscellaneous/People/Group.sml create mode 100644 kivio/kiviopart/stencils/Miscellaneous/People/Group.xpm create mode 100644 kivio/kiviopart/stencils/Miscellaneous/People/Makefile.am create mode 100755 kivio/kiviopart/stencils/Miscellaneous/People/Man.sml create mode 100644 kivio/kiviopart/stencils/Miscellaneous/People/Man.xpm create mode 100755 kivio/kiviopart/stencils/Miscellaneous/People/White_Collar_Worker.sml create mode 100644 kivio/kiviopart/stencils/Miscellaneous/People/White_Collar_Worker.xpm create mode 100755 kivio/kiviopart/stencils/Miscellaneous/People/Woman.sml create mode 100644 kivio/kiviopart/stencils/Miscellaneous/People/Woman.xpm create mode 100755 kivio/kiviopart/stencils/Miscellaneous/People/Woman_Shape.sml create mode 100644 kivio/kiviopart/stencils/Miscellaneous/People/Woman_Shape.xpm create mode 100755 kivio/kiviopart/stencils/Miscellaneous/People/desc create mode 100644 kivio/kiviopart/stencils/Miscellaneous/People/icon.xpm create mode 100644 kivio/kiviopart/stencils/Miscellaneous/Transport/Makefile.am create mode 100644 kivio/kiviopart/stencils/Miscellaneous/Transport/Truck.sml create mode 100644 kivio/kiviopart/stencils/Miscellaneous/Transport/Truck.xpm create mode 100755 kivio/kiviopart/stencils/Miscellaneous/Transport/desc create mode 100644 kivio/kiviopart/stencils/Miscellaneous/Transport/icon.xpm create mode 100644 kivio/kiviopart/stencils/Miscellaneous/desc create mode 100644 kivio/kiviopart/stencils/Miscellaneous/icon.xpm create mode 100755 kivio/kiviopart/stencils/UML/ActivityDiagrams/Activity.sml create mode 100755 kivio/kiviopart/stencils/UML/ActivityDiagrams/Activity.xpm create mode 100755 kivio/kiviopart/stencils/UML/ActivityDiagrams/BranchMerge.sml create mode 100755 kivio/kiviopart/stencils/UML/ActivityDiagrams/BranchMerge.xpm create mode 100755 kivio/kiviopart/stencils/UML/ActivityDiagrams/End.sml create mode 100755 kivio/kiviopart/stencils/UML/ActivityDiagrams/End.xpm create mode 100755 kivio/kiviopart/stencils/UML/ActivityDiagrams/ForkJoin.sml create mode 100755 kivio/kiviopart/stencils/UML/ActivityDiagrams/ForkJoin.xpm create mode 100644 kivio/kiviopart/stencils/UML/ActivityDiagrams/Makefile.am create mode 100755 kivio/kiviopart/stencils/UML/ActivityDiagrams/Start.sml create mode 100755 kivio/kiviopart/stencils/UML/ActivityDiagrams/Start.xpm create mode 100755 kivio/kiviopart/stencils/UML/ActivityDiagrams/desc create mode 100755 kivio/kiviopart/stencils/UML/ActivityDiagrams/icon.xpm create mode 100755 kivio/kiviopart/stencils/UML/ClassDiagrams/Class.sml create mode 100755 kivio/kiviopart/stencils/UML/ClassDiagrams/Class.xpm create mode 100755 kivio/kiviopart/stencils/UML/ClassDiagrams/ClassConceptual.sml create mode 100755 kivio/kiviopart/stencils/UML/ClassDiagrams/ClassConceptual.xpm create mode 100755 kivio/kiviopart/stencils/UML/ClassDiagrams/Interface.sml create mode 100755 kivio/kiviopart/stencils/UML/ClassDiagrams/Interface.xpm create mode 100644 kivio/kiviopart/stencils/UML/ClassDiagrams/Makefile.am create mode 100755 kivio/kiviopart/stencils/UML/ClassDiagrams/Note.sml create mode 100755 kivio/kiviopart/stencils/UML/ClassDiagrams/Note.xpm create mode 100755 kivio/kiviopart/stencils/UML/ClassDiagrams/TemplateClass.sml create mode 100755 kivio/kiviopart/stencils/UML/ClassDiagrams/TemplateClass.xpm create mode 100755 kivio/kiviopart/stencils/UML/ClassDiagrams/desc create mode 100755 kivio/kiviopart/stencils/UML/ClassDiagrams/icon.xpm create mode 100644 kivio/kiviopart/stencils/UML/Makefile.am create mode 100755 kivio/kiviopart/stencils/UML/desc create mode 100755 kivio/kiviopart/stencils/UML/icon.xpm create mode 100644 kivio/kiviopart/tiles/Makefile.am create mode 100644 kivio/kiviopart/tiles/tile_scissors1.xpm create mode 100644 kivio/kiviopart/tiles/tile_skulls1.xpm create mode 100644 kivio/kiviopart/tiles/tile_yellow_swirl.xpm create mode 100644 kivio/kiviopart/tools/Makefile.am create mode 100644 kivio/kiviopart/tools/kivio_mousetool.cpp create mode 100644 kivio/kiviopart/tools/kivio_mousetool.h create mode 100644 kivio/kiviopart/tools/kivio_plugin.cpp create mode 100644 kivio/kiviopart/tools/kivio_plugin.h create mode 100644 kivio/kiviopart/tools/kivio_pluginmanager.cpp create mode 100644 kivio/kiviopart/tools/kivio_pluginmanager.h create mode 100644 kivio/kiviopart/tools/kivio_tool.rc create mode 100644 kivio/kiviopart/tools/mousetoolaction.cpp create mode 100644 kivio/kiviopart/tools/mousetoolaction.h create mode 100644 kivio/kiviopart/ui/Makefile.am create mode 100644 kivio/kiviopart/ui/addstencilsetdialog.cpp create mode 100644 kivio/kiviopart/ui/addstencilsetdialog.h create mode 100644 kivio/kiviopart/ui/aligndialog.ui create mode 100644 kivio/kiviopart/ui/export_page_dialog.cpp create mode 100644 kivio/kiviopart/ui/export_page_dialog.h create mode 100644 kivio/kiviopart/ui/export_page_dialog_base.ui create mode 100644 kivio/kiviopart/ui/kivio_birdeye_panel.cpp create mode 100644 kivio/kiviopart/ui/kivio_birdeye_panel.h create mode 100644 kivio/kiviopart/ui/kivio_birdeye_panel_base.ui create mode 100644 kivio/kiviopart/ui/kivio_layer_panel.cpp create mode 100644 kivio/kiviopart/ui/kivio_layer_panel.h create mode 100644 kivio/kiviopart/ui/kivio_layer_panel_base.ui create mode 100644 kivio/kiviopart/ui/kivio_protection_panel.cpp create mode 100644 kivio/kiviopart/ui/kivio_protection_panel.h create mode 100644 kivio/kiviopart/ui/kivio_protection_panel_base.ui create mode 100644 kivio/kiviopart/ui/kivioaddstencilsetpanel.cpp create mode 100644 kivio/kiviopart/ui/kivioaddstencilsetpanel.h create mode 100644 kivio/kiviopart/ui/kivioaligndialog.cpp create mode 100644 kivio/kiviopart/ui/kivioaligndialog.h create mode 100644 kivio/kiviopart/ui/kivioarrowheadformatdlg.cpp create mode 100644 kivio/kiviopart/ui/kivioarrowheadformatdlg.h create mode 100644 kivio/kiviopart/ui/kiviooptionsdialog.cpp create mode 100644 kivio/kiviopart/ui/kiviooptionsdialog.h create mode 100644 kivio/kiviopart/ui/kiviostencilformatdlg.cpp create mode 100644 kivio/kiviopart/ui/kiviostencilformatdlg.h create mode 100644 kivio/kiviopart/ui/kiviostencilsetwidget.ui create mode 100644 kivio/kiviopart/ui/kiviotextformatdlg.cpp create mode 100644 kivio/kiviopart/ui/kiviotextformatdlg.h create mode 100644 kivio/kiviopart/ui/layerlisttooltip.cpp create mode 100644 kivio/kiviopart/ui/layerlisttooltip.h create mode 100644 kivio/kiviopart/ui/objectlistpalette.cpp create mode 100644 kivio/kiviopart/ui/objectlistpalette.h create mode 100644 kivio/plugins/Makefile.am create mode 100644 kivio/plugins/kivioconnectortool/Makefile.am create mode 100644 kivio/plugins/kivioconnectortool/cr22-action-kivio_connector.png create mode 100644 kivio/plugins/kivioconnectortool/hi22-action-kivio_connector.png create mode 100644 kivio/plugins/kivioconnectortool/kivio_connector_cursor1.png create mode 100644 kivio/plugins/kivioconnectortool/kivio_connector_cursor2.png create mode 100644 kivio/plugins/kivioconnectortool/kivioconnectortool.desktop create mode 100644 kivio/plugins/kivioconnectortool/kivioconnectortool.rc create mode 100644 kivio/plugins/kivioconnectortool/plugin.cpp create mode 100644 kivio/plugins/kivioconnectortool/plugin.h create mode 100644 kivio/plugins/kivioconnectortool/straight_connector/Makefile.am create mode 100644 kivio/plugins/kivioconnectortool/straight_connector/straight_connector.cpp create mode 100644 kivio/plugins/kivioconnectortool/straight_connector/straight_connector.h create mode 100644 kivio/plugins/kivioconnectortool/straight_connector/straight_connector.xpm create mode 100644 kivio/plugins/kivioconnectortool/tool_connector.cpp create mode 100644 kivio/plugins/kivioconnectortool/tool_connector.h create mode 100644 kivio/plugins/kivioselecttool/Makefile.am create mode 100644 kivio/plugins/kivioselecttool/kivioselecttool.desktop create mode 100644 kivio/plugins/kivioselecttool/kivioselecttool.rc create mode 100644 kivio/plugins/kivioselecttool/plugin.cpp create mode 100644 kivio/plugins/kivioselecttool/plugin.h create mode 100644 kivio/plugins/kivioselecttool/select_pics/Makefile.am create mode 100644 kivio/plugins/kivioselecttool/select_pics/kivio_arrow.xpm create mode 100644 kivio/plugins/kivioselecttool/tool_select.cpp create mode 100644 kivio/plugins/kivioselecttool/tool_select.h create mode 100644 kivio/plugins/kiviosmlconnector/Makefile.am create mode 100644 kivio/plugins/kiviosmlconnector/README create mode 100644 kivio/plugins/kiviosmlconnector/kiviosmlconnector.desktop create mode 100644 kivio/plugins/kiviosmlconnector/kiviosmlconnector.rc create mode 100644 kivio/plugins/kiviosmlconnector/plugin.cpp create mode 100644 kivio/plugins/kiviosmlconnector/plugin.h create mode 100644 kivio/plugins/kiviosmlconnector/sml_connector/Makefile.am create mode 100644 kivio/plugins/kiviosmlconnector/sml_connector/sml_connector.cpp create mode 100644 kivio/plugins/kiviosmlconnector/sml_connector/sml_connector.h create mode 100644 kivio/plugins/kiviosmlconnector/sml_connector/sml_connector.xpm create mode 100644 kivio/plugins/kiviosmlconnector/tool_connector.cpp create mode 100644 kivio/plugins/kiviosmlconnector/tool_connector.h create mode 100644 kivio/plugins/kiviotargettool/Makefile.am create mode 100644 kivio/plugins/kiviotargettool/kiviotargettool.cpp create mode 100644 kivio/plugins/kiviotargettool/kiviotargettool.desktop create mode 100644 kivio/plugins/kiviotargettool/kiviotargettool.h create mode 100644 kivio/plugins/kiviotargettool/kiviotargettool.rc create mode 100644 kivio/plugins/kiviotargettool/kiviotargettoolfactory.cpp create mode 100644 kivio/plugins/kiviotargettool/kiviotargettoolfactory.h create mode 100644 kivio/plugins/kiviotexttool/Makefile.am create mode 100644 kivio/plugins/kiviotexttool/Text.sml create mode 100644 kivio/plugins/kiviotexttool/Text.xpm create mode 100644 kivio/plugins/kiviotexttool/kivio_stenciltexteditorui.ui create mode 100644 kivio/plugins/kiviotexttool/kivio_text.xpm create mode 100644 kivio/plugins/kiviotexttool/kivio_text_cursor.xpm create mode 100644 kivio/plugins/kiviotexttool/kiviotexttool.desktop create mode 100644 kivio/plugins/kiviotexttool/kiviotexttool.rc create mode 100644 kivio/plugins/kiviotexttool/plugin.cpp create mode 100644 kivio/plugins/kiviotexttool/plugin.h create mode 100644 kivio/plugins/kiviotexttool/stenciltexteditor.cpp create mode 100644 kivio/plugins/kiviotexttool/stenciltexteditor.h create mode 100644 kivio/plugins/kiviotexttool/tool_text.cpp create mode 100644 kivio/plugins/kiviotexttool/tool_text.h create mode 100644 kivio/plugins/kiviozoomtool/Makefile.am create mode 100644 kivio/plugins/kiviozoomtool/kiviozoomtool.desktop create mode 100644 kivio/plugins/kiviozoomtool/kiviozoomtool.rc create mode 100644 kivio/plugins/kiviozoomtool/plugin.cpp create mode 100644 kivio/plugins/kiviozoomtool/plugin.h create mode 100644 kivio/plugins/kiviozoomtool/tool_zoom.cpp create mode 100644 kivio/plugins/kiviozoomtool/tool_zoom.h create mode 100644 kivio/plugins/kiviozoomtool/zoom_pics/Makefile.am create mode 100644 kivio/plugins/kiviozoomtool/zoom_pics/kivio_zoom.xpm create mode 100644 kivio/plugins/kiviozoomtool/zoom_pics/kivio_zoom_allobject.xpm create mode 100644 kivio/plugins/kiviozoomtool/zoom_pics/kivio_zoom_hand.xpm create mode 100644 kivio/plugins/kiviozoomtool/zoom_pics/kivio_zoom_height.xpm create mode 100644 kivio/plugins/kiviozoomtool/zoom_pics/kivio_zoom_minus.xpm create mode 100644 kivio/plugins/kiviozoomtool/zoom_pics/kivio_zoom_page.xpm create mode 100644 kivio/plugins/kiviozoomtool/zoom_pics/kivio_zoom_plus.xpm create mode 100644 kivio/plugins/kiviozoomtool/zoom_pics/kivio_zoom_selected.xpm create mode 100644 kivio/plugins/kiviozoomtool/zoom_pics/kivio_zoom_width.xpm create mode 100644 kivio/stencil-format.kwd create mode 100644 kivio/templates/Makefile.am create mode 100644 kivio/templates/basic/.directory create mode 100644 kivio/templates/basic/Makefile.am create mode 100644 kivio/templates/basic/basicflow.desktop create mode 100644 kivio/templates/basic/basicflow.kft create mode 100644 kivio/templates/basic/cr48-action-template_basicflow.png create mode 100644 kivio/templates/basic/cr48-action-template_empty.png create mode 100644 kivio/templates/basic/crsc-action-template_basicworkflow.svgz create mode 100644 kivio/templates/basic/crsc-action-template_empty.svgz create mode 100644 kivio/templates/basic/empty.desktop create mode 100644 kivio/templates/basic/empty.kft create mode 100644 koffice.lsm create mode 100644 koshell/AUTHORS create mode 100644 koshell/Makefile.am create mode 100644 koshell/TODO create mode 100644 koshell/hi128-app-koshell.png create mode 100644 koshell/hi16-app-koshell.png create mode 100644 koshell/hi22-app-koshell.png create mode 100644 koshell/hi32-app-koshell.png create mode 100644 koshell/hi48-app-koshell.png create mode 100644 koshell/hi64-app-koshell.png create mode 100644 koshell/hisc-app-koshell.svgz create mode 100644 koshell/iconsidepane.cpp create mode 100644 koshell/iconsidepane.h create mode 100644 koshell/koshell.desktop create mode 100644 koshell/koshell.kcfg create mode 100644 koshell/koshell_main.cc create mode 100644 koshell/koshell_shell.cc create mode 100644 koshell/koshell_shell.h create mode 100644 koshell/koshellsettings.kcfgc create mode 100644 koshell/koshellui.rc create mode 100644 kounavail/Makefile.am create mode 100644 kounavail/README create mode 100644 kounavail/kounavail.cc create mode 100644 kounavail/kounavail.desktop create mode 100644 kounavail/kounavail.h create mode 100644 kounavail/test-kounavail.kwd create mode 100644 kounavail/test-kounavail2.kwd create mode 100644 kplato/KPtViewIface.cc create mode 100644 kplato/KPtViewIface.h create mode 100644 kplato/Makefile.am create mode 100644 kplato/TODO create mode 100644 kplato/intervalitem.h create mode 100644 kplato/kplato.desktop create mode 100644 kplato/kplato.dtd create mode 100644 kplato/kplato.kdevelop create mode 100644 kplato/kplato.rc create mode 100644 kplato/kplato_readonly.rc create mode 100644 kplato/kplatopart.desktop create mode 100644 kplato/kptaboutdata.h create mode 100644 kplato/kptaccount.cc create mode 100644 kplato/kptaccount.h create mode 100644 kplato/kptaccountsdialog.cc create mode 100644 kplato/kptaccountsdialog.h create mode 100644 kplato/kptaccountspanel.cc create mode 100644 kplato/kptaccountspanel.h create mode 100644 kplato/kptaccountspanelbase.ui create mode 100644 kplato/kptaccountsview.cc create mode 100644 kplato/kptaccountsview.h create mode 100644 kplato/kptaccountsviewconfigdialog.cc create mode 100644 kplato/kptaccountsviewconfigdialog.h create mode 100644 kplato/kptaccountsviewconfigurepanelbase.ui create mode 100644 kplato/kptappointment.cc create mode 100644 kplato/kptappointment.h create mode 100644 kplato/kptcalendar.cc create mode 100644 kplato/kptcalendar.h create mode 100644 kplato/kptcalendaredit.cc create mode 100644 kplato/kptcalendaredit.h create mode 100644 kplato/kptcalendareditbase.cc create mode 100644 kplato/kptcalendareditbase.h create mode 100644 kplato/kptcalendarlistdialog.cc create mode 100644 kplato/kptcalendarlistdialog.h create mode 100644 kplato/kptcalendarlistdialogbase.cc create mode 100644 kplato/kptcalendarlistdialogbase.h create mode 100644 kplato/kptcalendarlistpanel.ui create mode 100644 kplato/kptcalendarpanel.cc create mode 100644 kplato/kptcalendarpanel.h create mode 100644 kplato/kptcanvasitem.cc create mode 100644 kplato/kptcanvasitem.h create mode 100644 kplato/kptcommand.cc create mode 100644 kplato/kptcommand.h create mode 100644 kplato/kptconfig.cc create mode 100644 kplato/kptconfig.h create mode 100644 kplato/kptconfigbehaviorpanel.cc create mode 100644 kplato/kptconfigbehaviorpanel.h create mode 100644 kplato/kptconfigbehaviorpanelbase.ui create mode 100644 kplato/kptconfigbehaviorpanelbase.ui.h create mode 100644 kplato/kptconfigdialog.cc create mode 100644 kplato/kptconfigdialog.h create mode 100644 kplato/kptconfigtaskpanelbase.ui create mode 100644 kplato/kptcontext.cc create mode 100644 kplato/kptcontext.h create mode 100644 kplato/kptdatetable.cc create mode 100644 kplato/kptdatetable.h create mode 100644 kplato/kptdatetime.cc create mode 100644 kplato/kptdatetime.h create mode 100644 kplato/kptdoublelistviewbase.cc create mode 100644 kplato/kptdoublelistviewbase.h create mode 100644 kplato/kptduration.cc create mode 100644 kplato/kptduration.h create mode 100644 kplato/kptdurationwidget.cw create mode 100644 kplato/kptdurationwidget.ui create mode 100644 kplato/kptdurationwidget.ui.h create mode 100644 kplato/kpteffortcostmap.h create mode 100644 kplato/kptfactory.cc create mode 100644 kplato/kptfactory.h create mode 100644 kplato/kptganttview.cc create mode 100644 kplato/kptganttview.h create mode 100644 kplato/kptintervaledit.cc create mode 100644 kplato/kptintervaledit.h create mode 100644 kplato/kptintervaleditbase.ui create mode 100644 kplato/kptmainprojectdialog.cc create mode 100644 kplato/kptmainprojectdialog.h create mode 100644 kplato/kptmainprojectpanel.cc create mode 100644 kplato/kptmainprojectpanel.h create mode 100644 kplato/kptmainprojectpanelbase.ui create mode 100644 kplato/kptmap.h create mode 100644 kplato/kptmilestoneprogressdialog.cc create mode 100644 kplato/kptmilestoneprogressdialog.h create mode 100644 kplato/kptmilestoneprogresspanel.cc create mode 100644 kplato/kptmilestoneprogresspanel.h create mode 100644 kplato/kptmilestoneprogresspanelbase.ui create mode 100644 kplato/kptnode.cc create mode 100644 kplato/kptnode.h create mode 100644 kplato/kptpart.cc create mode 100644 kplato/kptpart.h create mode 100644 kplato/kptpertcanvas.cc create mode 100644 kplato/kptpertcanvas.h create mode 100644 kplato/kptpertview.cc create mode 100644 kplato/kptpertview.h create mode 100644 kplato/kptproject.cc create mode 100644 kplato/kptproject.h create mode 100644 kplato/kptprojectdialog.cc create mode 100644 kplato/kptprojectdialog.h create mode 100644 kplato/kptprojectdialogbase.ui create mode 100644 kplato/kptrelation.cc create mode 100644 kplato/kptrelation.h create mode 100644 kplato/kptrelationdialog.cc create mode 100644 kplato/kptrelationdialog.h create mode 100644 kplato/kptreportview.cc create mode 100644 kplato/kptreportview.h create mode 100644 kplato/kptrequestresourcespanel.cc create mode 100644 kplato/kptrequestresourcespanel.h create mode 100644 kplato/kptresource.cc create mode 100644 kplato/kptresource.h create mode 100644 kplato/kptresourceappointmentsview.cc create mode 100644 kplato/kptresourceappointmentsview.h create mode 100644 kplato/kptresourcedialog.cc create mode 100644 kplato/kptresourcedialog.h create mode 100644 kplato/kptresourcesdialog.cc create mode 100644 kplato/kptresourcesdialog.h create mode 100644 kplato/kptresourcespanel.cc create mode 100644 kplato/kptresourcespanel.h create mode 100644 kplato/kptresourceview.cc create mode 100644 kplato/kptresourceview.h create mode 100644 kplato/kptschedule.cc create mode 100644 kplato/kptschedule.h create mode 100644 kplato/kptstandardworktimedialog.cc create mode 100644 kplato/kptstandardworktimedialog.h create mode 100644 kplato/kptsummarytaskdialog.cc create mode 100644 kplato/kptsummarytaskdialog.h create mode 100644 kplato/kptsummarytaskgeneralpanel.cc create mode 100644 kplato/kptsummarytaskgeneralpanel.h create mode 100644 kplato/kptsummarytaskgeneralpanelbase.ui create mode 100644 kplato/kpttask.cc create mode 100644 kplato/kpttask.h create mode 100644 kplato/kpttaskappointmentsview.cc create mode 100644 kplato/kpttaskappointmentsview.h create mode 100644 kplato/kpttaskappointmentsview.ui.h create mode 100644 kplato/kpttaskcostpanel.cc create mode 100644 kplato/kpttaskcostpanel.h create mode 100644 kplato/kpttaskcostpanelbase.ui create mode 100644 kplato/kpttaskdefaultpanel.cc create mode 100644 kplato/kpttaskdefaultpanel.h create mode 100644 kplato/kpttaskdialog.cc create mode 100644 kplato/kpttaskdialog.h create mode 100644 kplato/kpttaskgeneralpanel.cc create mode 100644 kplato/kpttaskgeneralpanel.h create mode 100644 kplato/kpttaskgeneralpanelbase.ui create mode 100644 kplato/kpttasknotespanelbase.ui create mode 100644 kplato/kpttaskprogressdialog.cc create mode 100644 kplato/kpttaskprogressdialog.h create mode 100644 kplato/kpttaskprogresspanel.cc create mode 100644 kplato/kpttaskprogresspanel.h create mode 100644 kplato/kpttaskprogresspanelbase.ui create mode 100644 kplato/kpttaskresourcespanelbase.ui create mode 100644 kplato/kpttaskresourcespanelbase.ui.h create mode 100644 kplato/kptview.cc create mode 100644 kplato/kptview.h create mode 100644 kplato/kptwbsdefinition.cc create mode 100644 kplato/kptwbsdefinition.h create mode 100644 kplato/kptwbsdefinitiondialog.cc create mode 100644 kplato/kptwbsdefinitiondialog.h create mode 100644 kplato/kptwbsdefinitionpanel.cc create mode 100644 kplato/kptwbsdefinitionpanel.h create mode 100644 kplato/kptwbsdefinitionpanelbase.ui create mode 100644 kplato/kptxmlloaderobject.h create mode 100644 kplato/main.cc create mode 100644 kplato/pics/Makefile.am create mode 100644 kplato/pics/cr128-app-kplato.png create mode 100644 kplato/pics/cr16-app-kplato.png create mode 100644 kplato/pics/cr22-app-kplato.png create mode 100644 kplato/pics/cr32-app-kplato.png create mode 100644 kplato/pics/cr48-app-kplato.png create mode 100644 kplato/pics/cr64-app-kplato.png create mode 100644 kplato/pics/crsc-app-kplato.svgz create mode 100644 kplato/relationpanel.ui create mode 100644 kplato/reports/Makefile.am create mode 100644 kplato/reports/README create mode 100644 kplato/reports/resourcelist.desktop create mode 100644 kplato/reports/resourcelist.ktf create mode 100644 kplato/reports/tasklist.desktop create mode 100644 kplato/reports/tasklist.ktf create mode 100644 kplato/resourcedialogbase.ui create mode 100644 kplato/resourcespanelbase.ui create mode 100644 kplato/standardworktimedialogbase.ui create mode 100644 kplato/templates/Makefile.am create mode 100644 kplato/templates/Simple/.directory create mode 100644 kplato/templates/Simple/8HourDay-40HourWeek.desktop create mode 100644 kplato/templates/Simple/8HourDay-40HourWeek.kplatot create mode 100644 kplato/templates/Simple/Makefile.am create mode 100644 kplato/templates/Simple/Plain.desktop create mode 100644 kplato/templates/Simple/Plain.kplatot create mode 100644 kplato/templates/Simple/cr48-action-template_timechart.png create mode 100644 kplato/templates/Simple/crsc-action-template_timechart.svgz create mode 100644 kplato/tests/CalendarTester.cpp create mode 100644 kplato/tests/CalendarTester.h create mode 100644 kplato/tests/DateTimeTester.cpp create mode 100644 kplato/tests/DateTimeTester.h create mode 100644 kplato/tests/DurationTester.cpp create mode 100644 kplato/tests/DurationTester.h create mode 100644 kplato/tests/Makefile.am create mode 100644 kplato/toolbar/Makefile.am create mode 100644 kplato/toolbar/cr22-action-accounts.png create mode 100644 kplato/toolbar/cr22-action-add_milestone.png create mode 100644 kplato/toolbar/cr22-action-add_sub_task.png create mode 100644 kplato/toolbar/cr22-action-add_task.png create mode 100644 kplato/toolbar/cr22-action-gantt_chart.png create mode 100644 kplato/toolbar/cr22-action-indent_task.png create mode 100644 kplato/toolbar/cr22-action-move_task_down.png create mode 100644 kplato/toolbar/cr22-action-move_task_up.png create mode 100644 kplato/toolbar/cr22-action-pert_chart.png create mode 100644 kplato/toolbar/cr22-action-project_calculate.png create mode 100644 kplato/toolbar/cr22-action-resources.png create mode 100644 kplato/toolbar/cr22-action-unindent_task.png create mode 100644 kpresenter/AUTHORS create mode 100644 kpresenter/CHANGES create mode 100644 kpresenter/KPrAboutData.h create mode 100644 kpresenter/KPrAutoFormObjectIface.cpp create mode 100644 kpresenter/KPrAutoFormObjectIface.h create mode 100644 kpresenter/KPrAutoformObject.cpp create mode 100644 kpresenter/KPrAutoformObject.h create mode 100644 kpresenter/KPrBackDia.cpp create mode 100644 kpresenter/KPrBackDia.h create mode 100644 kpresenter/KPrBackground.cpp create mode 100644 kpresenter/KPrBackground.h create mode 100644 kpresenter/KPrBezierCurveObject.cpp create mode 100644 kpresenter/KPrBezierCurveObject.h create mode 100644 kpresenter/KPrBgSpellCheck.cpp create mode 100644 kpresenter/KPrBgSpellCheck.h create mode 100644 kpresenter/KPrBrush.cpp create mode 100644 kpresenter/KPrBrush.h create mode 100644 kpresenter/KPrBrushProperty.cpp create mode 100644 kpresenter/KPrBrushProperty.h create mode 100644 kpresenter/KPrCanvas.cpp create mode 100644 kpresenter/KPrCanvas.h create mode 100644 kpresenter/KPrClosedLineObject.cpp create mode 100644 kpresenter/KPrClosedLineObject.h create mode 100644 kpresenter/KPrCommand.cpp create mode 100644 kpresenter/KPrCommand.h create mode 100644 kpresenter/KPrConfig.cpp create mode 100644 kpresenter/KPrConfig.h create mode 100644 kpresenter/KPrCubicBezierCurveObjectIface.cpp create mode 100644 kpresenter/KPrCubicBezierCurveObjectIface.h create mode 100644 kpresenter/KPrCustomSlideShowDia.cpp create mode 100644 kpresenter/KPrCustomSlideShowDia.h create mode 100644 kpresenter/KPrDocument.cpp create mode 100644 kpresenter/KPrDocument.h create mode 100644 kpresenter/KPrDocumentIface.cpp create mode 100644 kpresenter/KPrDocumentIface.h create mode 100644 kpresenter/KPrDuplicateObjDia.cpp create mode 100644 kpresenter/KPrDuplicateObjDia.h create mode 100644 kpresenter/KPrEffectDia.cpp create mode 100644 kpresenter/KPrEffectDia.h create mode 100644 kpresenter/KPrEffectHandler.cpp create mode 100644 kpresenter/KPrEffectHandler.h create mode 100644 kpresenter/KPrEllipseObject.cpp create mode 100644 kpresenter/KPrEllipseObject.h create mode 100644 kpresenter/KPrFactory.cpp create mode 100644 kpresenter/KPrFactory.h create mode 100644 kpresenter/KPrFactoryInit.cpp create mode 100644 kpresenter/KPrFindReplace.cpp create mode 100644 kpresenter/KPrFindReplace.h create mode 100644 kpresenter/KPrFreehandObject.cpp create mode 100644 kpresenter/KPrFreehandObject.h create mode 100644 kpresenter/KPrFreehandObjectIface.cpp create mode 100644 kpresenter/KPrFreehandObjectIface.h create mode 100644 kpresenter/KPrGeneralProperty.cpp create mode 100644 kpresenter/KPrGeneralProperty.h create mode 100644 kpresenter/KPrGotoPage.cpp create mode 100644 kpresenter/KPrGotoPage.h create mode 100644 kpresenter/KPrGradient.cpp create mode 100644 kpresenter/KPrGradient.h create mode 100644 kpresenter/KPrGradientCollection.cpp create mode 100644 kpresenter/KPrGradientCollection.h create mode 100644 kpresenter/KPrGroupObject.cpp create mode 100644 kpresenter/KPrGroupObject.h create mode 100644 kpresenter/KPrImageEffectDia.cpp create mode 100644 kpresenter/KPrImageEffectDia.h create mode 100644 kpresenter/KPrImportStyleDia.cpp create mode 100644 kpresenter/KPrImportStyleDia.h create mode 100644 kpresenter/KPrLineObject.cpp create mode 100644 kpresenter/KPrLineObject.h create mode 100644 kpresenter/KPrLineObjectIface.cpp create mode 100644 kpresenter/KPrLineObjectIface.h create mode 100644 kpresenter/KPrLoadingInfo.h create mode 100644 kpresenter/KPrMSPresentationSetup.cpp create mode 100644 kpresenter/KPrMSPresentationSetup.h create mode 100644 kpresenter/KPrMarginWidget.cpp create mode 100644 kpresenter/KPrMarginWidget.h create mode 100644 kpresenter/KPrMoveHelpLineDia.cpp create mode 100644 kpresenter/KPrMoveHelpLineDia.h create mode 100644 kpresenter/KPrNoteBar.cpp create mode 100644 kpresenter/KPrNoteBar.h create mode 100644 kpresenter/KPrObject.cpp create mode 100644 kpresenter/KPrObject.h create mode 100644 kpresenter/KPrObject2DIface.cpp create mode 100644 kpresenter/KPrObject2DIface.h create mode 100644 kpresenter/KPrObjectIface.cpp create mode 100644 kpresenter/KPrObjectIface.h create mode 100644 kpresenter/KPrObjectProperties.cpp create mode 100644 kpresenter/KPrObjectProperties.h create mode 100644 kpresenter/KPrPBPreview.cpp create mode 100644 kpresenter/KPrPBPreview.h create mode 100644 kpresenter/KPrPage.cpp create mode 100644 kpresenter/KPrPage.h create mode 100644 kpresenter/KPrPageEffects.cpp create mode 100644 kpresenter/KPrPageEffects.h create mode 100644 kpresenter/KPrPageIface.cpp create mode 100644 kpresenter/KPrPageIface.h create mode 100644 kpresenter/KPrPartObject.cpp create mode 100644 kpresenter/KPrPartObject.h create mode 100644 kpresenter/KPrPenStyleWidget.cpp create mode 100644 kpresenter/KPrPenStyleWidget.h create mode 100644 kpresenter/KPrPgConfDia.cpp create mode 100644 kpresenter/KPrPgConfDia.h create mode 100644 kpresenter/KPrPicturePreview.cpp create mode 100644 kpresenter/KPrPicturePreview.h create mode 100644 kpresenter/KPrPictureProperty.cpp create mode 100644 kpresenter/KPrPictureProperty.h create mode 100644 kpresenter/KPrPieObject.cpp create mode 100644 kpresenter/KPrPieObject.h create mode 100644 kpresenter/KPrPieObjectIface.cpp create mode 100644 kpresenter/KPrPieObjectIface.h create mode 100644 kpresenter/KPrPiePreview.cpp create mode 100644 kpresenter/KPrPiePreview.h create mode 100644 kpresenter/KPrPieProperty.cpp create mode 100644 kpresenter/KPrPieProperty.h create mode 100644 kpresenter/KPrPixmapObject.cpp create mode 100644 kpresenter/KPrPixmapObject.h create mode 100644 kpresenter/KPrPixmapObjectIface.cpp create mode 100644 kpresenter/KPrPixmapObjectIface.h create mode 100644 kpresenter/KPrPointObject.cpp create mode 100644 kpresenter/KPrPointObject.h create mode 100644 kpresenter/KPrPolyLineObjectIface.cpp create mode 100644 kpresenter/KPrPolyLineObjectIface.h create mode 100644 kpresenter/KPrPolygonObject.cpp create mode 100644 kpresenter/KPrPolygonObject.h create mode 100644 kpresenter/KPrPolygonObjectIface.cpp create mode 100644 kpresenter/KPrPolygonObjectIface.h create mode 100644 kpresenter/KPrPolygonPreview.cpp create mode 100644 kpresenter/KPrPolygonPreview.h create mode 100644 kpresenter/KPrPolygonProperty.cpp create mode 100644 kpresenter/KPrPolygonProperty.h create mode 100644 kpresenter/KPrPolylineObject.cpp create mode 100644 kpresenter/KPrPolylineObject.h create mode 100644 kpresenter/KPrPresDurationDia.cpp create mode 100644 kpresenter/KPrPresDurationDia.h create mode 100644 kpresenter/KPrPrinterDlg.cpp create mode 100644 kpresenter/KPrPrinterDlg.h create mode 100644 kpresenter/KPrPropertyEditor.cpp create mode 100644 kpresenter/KPrPropertyEditor.h create mode 100644 kpresenter/KPrQuadricBezierCurveObjectIface.cpp create mode 100644 kpresenter/KPrQuadricBezierCurveObjectIface.h create mode 100644 kpresenter/KPrRectObject.cpp create mode 100644 kpresenter/KPrRectObject.h create mode 100644 kpresenter/KPrRectObjectIface.cpp create mode 100644 kpresenter/KPrRectObjectIface.h create mode 100644 kpresenter/KPrRectPreview.cpp create mode 100644 kpresenter/KPrRectPreview.h create mode 100644 kpresenter/KPrRectProperty.cpp create mode 100644 kpresenter/KPrRectProperty.h create mode 100644 kpresenter/KPrRotationDialogImpl.cpp create mode 100644 kpresenter/KPrRotationDialogImpl.h create mode 100644 kpresenter/KPrSVGPathParser.cpp create mode 100644 kpresenter/KPrSVGPathParser.h create mode 100644 kpresenter/KPrShadowDialogImpl.cpp create mode 100644 kpresenter/KPrShadowDialogImpl.h create mode 100644 kpresenter/KPrSideBar.cpp create mode 100644 kpresenter/KPrSideBar.h create mode 100644 kpresenter/KPrSlideTransitionDia.cpp create mode 100644 kpresenter/KPrSlideTransitionDia.h create mode 100644 kpresenter/KPrSoundPlayer.cpp create mode 100644 kpresenter/KPrSoundPlayer.h create mode 100644 kpresenter/KPrStyleManager.cpp create mode 100644 kpresenter/KPrStyleManager.h create mode 100644 kpresenter/KPrTextDocument.cpp create mode 100644 kpresenter/KPrTextDocument.h create mode 100644 kpresenter/KPrTextObject.cpp create mode 100644 kpresenter/KPrTextObject.h create mode 100644 kpresenter/KPrTextObjectIface.cpp create mode 100644 kpresenter/KPrTextObjectIface.h create mode 100644 kpresenter/KPrTextPreview.cpp create mode 100644 kpresenter/KPrTextPreview.h create mode 100644 kpresenter/KPrTextProperty.cpp create mode 100644 kpresenter/KPrTextProperty.h create mode 100644 kpresenter/KPrTextViewIface.cpp create mode 100644 kpresenter/KPrTextViewIface.h create mode 100644 kpresenter/KPrTransEffectDia.cpp create mode 100644 kpresenter/KPrTransEffectDia.h create mode 100644 kpresenter/KPrUtils.cpp create mode 100644 kpresenter/KPrUtils.h create mode 100644 kpresenter/KPrVariableCollection.cpp create mode 100644 kpresenter/KPrVariableCollection.h create mode 100644 kpresenter/KPrView.cpp create mode 100644 kpresenter/KPrView.h create mode 100644 kpresenter/KPrViewIface.cpp create mode 100644 kpresenter/KPrViewIface.h create mode 100644 kpresenter/KPrWebPresentation.cpp create mode 100644 kpresenter/KPrWebPresentation.h create mode 100644 kpresenter/KoPointArray.cpp create mode 100644 kpresenter/KoPointArray.h create mode 100644 kpresenter/Makefile.am create mode 100644 kpresenter/TODO create mode 100644 kpresenter/autoformEdit/AFChoose.cpp create mode 100644 kpresenter/autoformEdit/AFChoose.h create mode 100644 kpresenter/autoformEdit/ATFInterpreter.cpp create mode 100644 kpresenter/autoformEdit/ATFInterpreter.h create mode 100644 kpresenter/autoformEdit/Makefile.am create mode 100644 kpresenter/autoforms/.autoforms create mode 100644 kpresenter/autoforms/Arrows/.directory create mode 100644 kpresenter/autoforms/Arrows/ArrowDown.atf create mode 100644 kpresenter/autoforms/Arrows/ArrowDown.desktop create mode 100644 kpresenter/autoforms/Arrows/ArrowDown.png create mode 100644 kpresenter/autoforms/Arrows/ArrowLeft.atf create mode 100644 kpresenter/autoforms/Arrows/ArrowLeft.desktop create mode 100644 kpresenter/autoforms/Arrows/ArrowLeft.png create mode 100644 kpresenter/autoforms/Arrows/ArrowLeftDown.atf create mode 100644 kpresenter/autoforms/Arrows/ArrowLeftDown.desktop create mode 100644 kpresenter/autoforms/Arrows/ArrowLeftDown.png create mode 100644 kpresenter/autoforms/Arrows/ArrowLeftUp.atf create mode 100644 kpresenter/autoforms/Arrows/ArrowLeftUp.desktop create mode 100644 kpresenter/autoforms/Arrows/ArrowLeftUp.png create mode 100644 kpresenter/autoforms/Arrows/ArrowRight.atf create mode 100644 kpresenter/autoforms/Arrows/ArrowRight.desktop create mode 100644 kpresenter/autoforms/Arrows/ArrowRight.png create mode 100644 kpresenter/autoforms/Arrows/ArrowRightDown.atf create mode 100644 kpresenter/autoforms/Arrows/ArrowRightDown.desktop create mode 100644 kpresenter/autoforms/Arrows/ArrowRightDown.png create mode 100644 kpresenter/autoforms/Arrows/ArrowRightUp.atf create mode 100644 kpresenter/autoforms/Arrows/ArrowRightUp.desktop create mode 100644 kpresenter/autoforms/Arrows/ArrowRightUp.png create mode 100644 kpresenter/autoforms/Arrows/ArrowUp.atf create mode 100644 kpresenter/autoforms/Arrows/ArrowUp.desktop create mode 100644 kpresenter/autoforms/Arrows/ArrowUp.png create mode 100644 kpresenter/autoforms/Arrows/Makefile.am create mode 100644 kpresenter/autoforms/Connections/.directory create mode 100644 kpresenter/autoforms/Connections/Connection1.atf create mode 100644 kpresenter/autoforms/Connections/Connection1.desktop create mode 100644 kpresenter/autoforms/Connections/Connection1.png create mode 100644 kpresenter/autoforms/Connections/Connection10.atf create mode 100644 kpresenter/autoforms/Connections/Connection10.desktop create mode 100644 kpresenter/autoforms/Connections/Connection10.png create mode 100644 kpresenter/autoforms/Connections/Connection11.atf create mode 100644 kpresenter/autoforms/Connections/Connection11.desktop create mode 100644 kpresenter/autoforms/Connections/Connection11.png create mode 100644 kpresenter/autoforms/Connections/Connection12.atf create mode 100644 kpresenter/autoforms/Connections/Connection12.desktop create mode 100644 kpresenter/autoforms/Connections/Connection12.png create mode 100644 kpresenter/autoforms/Connections/Connection2.atf create mode 100644 kpresenter/autoforms/Connections/Connection2.desktop create mode 100644 kpresenter/autoforms/Connections/Connection2.png create mode 100644 kpresenter/autoforms/Connections/Connection3.atf create mode 100644 kpresenter/autoforms/Connections/Connection3.desktop create mode 100644 kpresenter/autoforms/Connections/Connection3.png create mode 100644 kpresenter/autoforms/Connections/Connection4.atf create mode 100644 kpresenter/autoforms/Connections/Connection4.desktop create mode 100644 kpresenter/autoforms/Connections/Connection4.png create mode 100644 kpresenter/autoforms/Connections/Connection5.atf create mode 100644 kpresenter/autoforms/Connections/Connection5.desktop create mode 100644 kpresenter/autoforms/Connections/Connection5.png create mode 100644 kpresenter/autoforms/Connections/Connection6.atf create mode 100644 kpresenter/autoforms/Connections/Connection6.desktop create mode 100644 kpresenter/autoforms/Connections/Connection6.png create mode 100644 kpresenter/autoforms/Connections/Connection7.atf create mode 100644 kpresenter/autoforms/Connections/Connection7.desktop create mode 100644 kpresenter/autoforms/Connections/Connection7.png create mode 100644 kpresenter/autoforms/Connections/Connection8.atf create mode 100644 kpresenter/autoforms/Connections/Connection8.desktop create mode 100644 kpresenter/autoforms/Connections/Connection8.png create mode 100644 kpresenter/autoforms/Connections/Connection9.atf create mode 100644 kpresenter/autoforms/Connections/Connection9.desktop create mode 100644 kpresenter/autoforms/Connections/Connection9.png create mode 100644 kpresenter/autoforms/Connections/Makefile.am create mode 100644 kpresenter/autoforms/Makefile.am create mode 100644 kpresenter/brushpropertyui.ui create mode 100644 kpresenter/configure.in.in create mode 100644 kpresenter/dtd/Makefile.am create mode 100644 kpresenter/dtd/kpresenter.dtd create mode 100644 kpresenter/generalpropertyui.ui create mode 100644 kpresenter/global.h create mode 100644 kpresenter/gradientpropertyui.ui create mode 100644 kpresenter/imageEffectBase.ui create mode 100644 kpresenter/insertpagedia.ui create mode 100644 kpresenter/kprconverter.pl create mode 100644 kpresenter/kpresenter.desktop create mode 100644 kpresenter/kpresenter.rc create mode 100644 kpresenter/kpresenter_readonly.rc create mode 100644 kpresenter/kpresenterpart.desktop create mode 100644 kpresenter/main.cpp create mode 100644 kpresenter/marginui.ui create mode 100644 kpresenter/penstyle.ui create mode 100644 kpresenter/pics/Makefile.am create mode 100644 kpresenter/pics/hi16-app-kpresenter.png create mode 100644 kpresenter/pics/hi22-app-kpresenter.png create mode 100644 kpresenter/pics/hi32-app-kpresenter.png create mode 100644 kpresenter/pics/hi48-app-kpresenter.png create mode 100644 kpresenter/pics/rotate/Makefile.am create mode 100644 kpresenter/pics/rotate/bl.png create mode 100644 kpresenter/pics/rotate/bldn.png create mode 100644 kpresenter/pics/rotate/bm.png create mode 100644 kpresenter/pics/rotate/bmdn.png create mode 100644 kpresenter/pics/rotate/br.png create mode 100644 kpresenter/pics/rotate/brdn.png create mode 100644 kpresenter/pics/rotate/ml.png create mode 100644 kpresenter/pics/rotate/mldn.png create mode 100644 kpresenter/pics/rotate/mr.png create mode 100644 kpresenter/pics/rotate/mrdn.png create mode 100644 kpresenter/pics/rotate/tl.png create mode 100644 kpresenter/pics/rotate/tldn.png create mode 100644 kpresenter/pics/rotate/tm.png create mode 100644 kpresenter/pics/rotate/tmdn.png create mode 100644 kpresenter/pics/rotate/tr.png create mode 100644 kpresenter/pics/rotate/trdn.png create mode 100644 kpresenter/pics/webslideshow-sidebar.png create mode 100644 kpresenter/picturepropertyui.ui create mode 100644 kpresenter/piepropertyui.ui create mode 100644 kpresenter/polygonpropertyui.ui create mode 100644 kpresenter/presstep.h create mode 100644 kpresenter/rectpropertyui.ui create mode 100644 kpresenter/rotationpropertyui.ui create mode 100755 kpresenter/scripts/automate_presentation.sh create mode 100755 kpresenter/scripts/mkstandalone.sh create mode 100644 kpresenter/shadowdialog.ui create mode 100644 kpresenter/slideshow/Makefile.am create mode 100644 kpresenter/slideshow/first.bmp create mode 100644 kpresenter/slideshow/first.jpeg create mode 100644 kpresenter/slideshow/first.png create mode 100644 kpresenter/slideshow/home.bmp create mode 100644 kpresenter/slideshow/home.jpeg create mode 100644 kpresenter/slideshow/home.png create mode 100644 kpresenter/slideshow/last.bmp create mode 100644 kpresenter/slideshow/last.jpeg create mode 100644 kpresenter/slideshow/last.png create mode 100644 kpresenter/slideshow/next.bmp create mode 100644 kpresenter/slideshow/next.jpeg create mode 100644 kpresenter/slideshow/next.png create mode 100644 kpresenter/slideshow/prev.bmp create mode 100644 kpresenter/slideshow/prev.jpeg create mode 100644 kpresenter/slideshow/prev.png create mode 100644 kpresenter/slidetransitionwidget.ui create mode 100644 kpresenter/templates/A4/.directory create mode 100644 kpresenter/templates/A4/Makefile.am create mode 100644 kpresenter/templates/A4/OneColumnLandscape.kpt create mode 100644 kpresenter/templates/A4/OneColumnPortrait.kpt create mode 100644 kpresenter/templates/A4/TitleLandscape.kpt create mode 100644 kpresenter/templates/A4/TitlePortrait.kpt create mode 100644 kpresenter/templates/A4/TwoColumnLandscape.kpt create mode 100644 kpresenter/templates/A4/TwoColumnPortrait.kpt create mode 100644 kpresenter/templates/A4/emptyLandscape.kpt create mode 100644 kpresenter/templates/A4/emptyPortrait.kpt create mode 100644 kpresenter/templates/Makefile.am create mode 100644 kpresenter/templates/README create mode 100644 kpresenter/templates/Screen/.directory create mode 100644 kpresenter/templates/Screen/Makefile.am create mode 100644 kpresenter/templates/Screen/OneColumnLandscape.kpt create mode 100644 kpresenter/templates/Screen/TitleLandscape.kpt create mode 100644 kpresenter/templates/Screen/TwoColumnLandscape.kpt create mode 100644 kpresenter/templates/Screen/emptyLandscape.kpt create mode 100644 kpresenter/templates/Screenpresentations/.directory create mode 100644 kpresenter/templates/Screenpresentations/BlueBreezeDouble.desktop create mode 100644 kpresenter/templates/Screenpresentations/BlueBreezeDouble.kpt create mode 100644 kpresenter/templates/Screenpresentations/BlueBreezePicture.desktop create mode 100644 kpresenter/templates/Screenpresentations/BlueBreezePicture.kpt create mode 100644 kpresenter/templates/Screenpresentations/BlueBreezeSingle.desktop create mode 100644 kpresenter/templates/Screenpresentations/BlueBreezeSingle.kpt create mode 100644 kpresenter/templates/Screenpresentations/CopperPlain.desktop create mode 100644 kpresenter/templates/Screenpresentations/CopperPlain.kpt create mode 100644 kpresenter/templates/Screenpresentations/GradientBlueRed.desktop create mode 100644 kpresenter/templates/Screenpresentations/GradientBlueRed.kpt create mode 100644 kpresenter/templates/Screenpresentations/Makefile.am create mode 100644 kpresenter/templates/Screenpresentations/SnowyMountains.desktop create mode 100644 kpresenter/templates/Screenpresentations/SnowyMountains.kpt create mode 100644 kpresenter/templates/Screenpresentations/TotallyNewProduct.desktop create mode 100644 kpresenter/templates/Screenpresentations/TotallyNewProduct.kpt create mode 100644 kpresenter/templates/Screenpresentations/classroom.desktop create mode 100644 kpresenter/templates/Screenpresentations/classroom.kpt create mode 100644 kpresenter/templates/Screenpresentations/hi48-action-template_bluebreezedouble.png create mode 100644 kpresenter/templates/Screenpresentations/hi48-action-template_bluebreezepicture.png create mode 100644 kpresenter/templates/Screenpresentations/hi48-action-template_bluebreezesingle.png create mode 100644 kpresenter/templates/Screenpresentations/hi48-action-template_classroom.png create mode 100644 kpresenter/templates/Screenpresentations/hi48-action-template_copperplain.png create mode 100644 kpresenter/templates/Screenpresentations/hi48-action-template_gradientbluered.png create mode 100644 kpresenter/templates/Screenpresentations/hi48-action-template_kde.png create mode 100644 kpresenter/templates/Screenpresentations/hi48-action-template_kde2.png create mode 100644 kpresenter/templates/Screenpresentations/hi48-action-template_kde3.png create mode 100644 kpresenter/templates/Screenpresentations/hi48-action-template_savannah.png create mode 100644 kpresenter/templates/Screenpresentations/hi48-action-template_screenplain.png create mode 100644 kpresenter/templates/Screenpresentations/hi48-action-template_snowymountains.png create mode 100644 kpresenter/templates/Screenpresentations/hi48-action-template_totallynewproduct.png create mode 100644 kpresenter/templates/Screenpresentations/kde.desktop create mode 100644 kpresenter/templates/Screenpresentations/kde.kpt create mode 100644 kpresenter/templates/Screenpresentations/kde2.desktop create mode 100644 kpresenter/templates/Screenpresentations/kde2.kpt create mode 100644 kpresenter/templates/Screenpresentations/kde3.desktop create mode 100644 kpresenter/templates/Screenpresentations/kde3.kpt create mode 100644 kpresenter/templates/Screenpresentations/savannah.desktop create mode 100644 kpresenter/templates/Screenpresentations/savannah.kpt create mode 100644 kpresenter/templates/common_desktop/OneColumnLandscape.desktop create mode 100644 kpresenter/templates/common_desktop/OneColumnPortrait.desktop create mode 100644 kpresenter/templates/common_desktop/TitleLandscape.desktop create mode 100644 kpresenter/templates/common_desktop/TitlePortrait.desktop create mode 100644 kpresenter/templates/common_desktop/TwoColumnLandscape.desktop create mode 100644 kpresenter/templates/common_desktop/TwoColumnPortrait.desktop create mode 100644 kpresenter/templates/common_desktop/emptyLandscape.desktop create mode 100644 kpresenter/templates/common_desktop/emptyPortrait.desktop create mode 100644 kpresenter/templates/common_icon/Makefile.am create mode 100644 kpresenter/templates/common_icon/cr48-action-template_emptylandscape.png create mode 100644 kpresenter/templates/common_icon/cr48-action-template_emptyportrait.png create mode 100644 kpresenter/templates/common_icon/cr48-action-template_onecolumnlandscape.png create mode 100644 kpresenter/templates/common_icon/cr48-action-template_onecolumnportrait.png create mode 100644 kpresenter/templates/common_icon/cr48-action-template_titlelandscape.png create mode 100644 kpresenter/templates/common_icon/cr48-action-template_titleportrait.png create mode 100644 kpresenter/templates/common_icon/cr48-action-template_twocolumnlandscape.png create mode 100644 kpresenter/templates/common_icon/cr48-action-template_twocolumnportrait.png create mode 100644 kpresenter/templates/common_icon/crsc-action-template_emptylandscape.svgz create mode 100644 kpresenter/templates/common_icon/crsc-action-template_emptyportrait.svgz create mode 100644 kpresenter/templates/common_icon/crsc-action-template_onecolumnlandscape.svgz create mode 100644 kpresenter/templates/common_icon/crsc-action-template_onecolumnportrait.svgz create mode 100644 kpresenter/templates/common_icon/crsc-action-template_titlelandscape.svgz create mode 100644 kpresenter/templates/common_icon/crsc-action-template_titleportrait.svgz create mode 100644 kpresenter/templates/common_icon/crsc-action-template_twocolumnlandscape.svgz create mode 100644 kpresenter/templates/common_icon/crsc-action-template_twocolumnportrait.svgz create mode 100644 kpresenter/templates/legal/.directory create mode 100644 kpresenter/templates/legal/Makefile.am create mode 100644 kpresenter/templates/legal/OneColumnLandscape.kpt create mode 100644 kpresenter/templates/legal/OneColumnPortrait.kpt create mode 100644 kpresenter/templates/legal/TitleLandscape.kpt create mode 100644 kpresenter/templates/legal/TitlePortrait.kpt create mode 100644 kpresenter/templates/legal/TwoColumnLandscape.kpt create mode 100644 kpresenter/templates/legal/TwoColumnPortrait.kpt create mode 100644 kpresenter/templates/legal/emptyLandscape.kpt create mode 100644 kpresenter/templates/legal/emptyPortrait.kpt create mode 100644 kpresenter/templates/letter/.directory create mode 100644 kpresenter/templates/letter/Makefile.am create mode 100644 kpresenter/templates/letter/OneColumnLandscape.kpt create mode 100644 kpresenter/templates/letter/OneColumnPortrait.kpt create mode 100644 kpresenter/templates/letter/TitleLandscape.kpt create mode 100644 kpresenter/templates/letter/TitlePortrait.kpt create mode 100644 kpresenter/templates/letter/TwoColumnLandscape.kpt create mode 100644 kpresenter/templates/letter/TwoColumnPortrait.kpt create mode 100644 kpresenter/templates/letter/emptyLandscape.kpt create mode 100644 kpresenter/templates/letter/emptyPortrait.kpt create mode 100755 kpresenter/tests/oasis-kpresenter.sh create mode 100644 kpresenter/textpropertyui.ui create mode 100644 kpresenter/toolbar/Makefile.am create mode 100644 kpresenter/toolbar/action-alignobjs.svg create mode 100644 kpresenter/toolbar/action-autoform.svg create mode 100644 kpresenter/toolbar/action-circle.svg create mode 100644 kpresenter/toolbar/action-closed_cubicbeziercurve.svg create mode 100644 kpresenter/toolbar/action-closed_freehand.svg create mode 100644 kpresenter/toolbar/action-closed_polyline.svg create mode 100644 kpresenter/toolbar/action-closed_quadricbeziercurve.svg create mode 100644 kpresenter/toolbar/action-cubicbeziercurve.svg create mode 100644 kpresenter/toolbar/action-effect.png.svg create mode 100644 kpresenter/toolbar/action-effect.svg create mode 100644 kpresenter/toolbar/action-freehand.svg create mode 100644 kpresenter/toolbar/action-line.svg create mode 100644 kpresenter/toolbar/action-penbrush.svg create mode 100644 kpresenter/toolbar/action-pie.svg create mode 100644 kpresenter/toolbar/action-polygon.svg create mode 100644 kpresenter/toolbar/action-polyline.svg create mode 100644 kpresenter/toolbar/action-quadricbeziercurve.svg create mode 100644 kpresenter/toolbar/action-rectangle.svg create mode 100644 kpresenter/toolbar/action-slide_effect.svg create mode 100644 kpresenter/toolbar/cr16-action-alignobjs.png create mode 100644 kpresenter/toolbar/cr16-action-alignobjs.svg create mode 100644 kpresenter/toolbar/cr16-action-autoform.png create mode 100644 kpresenter/toolbar/cr16-action-circle.png create mode 100644 kpresenter/toolbar/cr16-action-closed_cubicbeziercurve.png create mode 100644 kpresenter/toolbar/cr16-action-closed_freehand.png create mode 100644 kpresenter/toolbar/cr16-action-closed_polyline.png create mode 100644 kpresenter/toolbar/cr16-action-closed_quadricbeziercurve.png create mode 100644 kpresenter/toolbar/cr16-action-cubicbeziercurve.png create mode 100644 kpresenter/toolbar/cr16-action-effect.png create mode 100644 kpresenter/toolbar/cr16-action-freehand.png create mode 100644 kpresenter/toolbar/cr16-action-line.png create mode 100644 kpresenter/toolbar/cr16-action-penbrush.png create mode 100644 kpresenter/toolbar/cr16-action-pie.png create mode 100644 kpresenter/toolbar/cr16-action-polygon.png create mode 100644 kpresenter/toolbar/cr16-action-polyline.png create mode 100644 kpresenter/toolbar/cr16-action-quadricbeziercurve.png create mode 100644 kpresenter/toolbar/cr16-action-rectangle.png create mode 100644 kpresenter/toolbar/cr16-action-slide_effect.png create mode 100644 kpresenter/toolbar/cr22-action-alignobjs.png create mode 100644 kpresenter/toolbar/cr22-action-alignobjs.svg create mode 100644 kpresenter/toolbar/cr22-action-arrange.png create mode 100644 kpresenter/toolbar/cr22-action-autoform.png create mode 100644 kpresenter/toolbar/cr22-action-cakes.png create mode 100644 kpresenter/toolbar/cr22-action-cakes3d.png create mode 100644 kpresenter/toolbar/cr22-action-circle.png create mode 100644 kpresenter/toolbar/cr22-action-closed_cubicbeziercurve.png create mode 100644 kpresenter/toolbar/cr22-action-closed_freehand.png create mode 100644 kpresenter/toolbar/cr22-action-closed_polyline.png create mode 100644 kpresenter/toolbar/cr22-action-closed_quadricbeziercurve.png create mode 100644 kpresenter/toolbar/cr22-action-cubicbeziercurve.png create mode 100644 kpresenter/toolbar/cr22-action-edit_picture.png create mode 100644 kpresenter/toolbar/cr22-action-edit_pie.png create mode 100644 kpresenter/toolbar/cr22-action-edit_polygon.png create mode 100644 kpresenter/toolbar/cr22-action-effect.png create mode 100644 kpresenter/toolbar/cr22-action-freehand.png create mode 100644 kpresenter/toolbar/cr22-action-line.png create mode 100644 kpresenter/toolbar/cr22-action-line_arrow_begin.png create mode 100644 kpresenter/toolbar/cr22-action-line_arrow_end.png create mode 100644 kpresenter/toolbar/cr22-action-line_begin.png create mode 100644 kpresenter/toolbar/cr22-action-line_circle_begin.png create mode 100644 kpresenter/toolbar/cr22-action-line_circle_end.png create mode 100644 kpresenter/toolbar/cr22-action-line_dimension_line_begin.png create mode 100644 kpresenter/toolbar/cr22-action-line_dimension_line_end.png create mode 100644 kpresenter/toolbar/cr22-action-line_double_arrow_begin.png create mode 100644 kpresenter/toolbar/cr22-action-line_double_arrow_end.png create mode 100644 kpresenter/toolbar/cr22-action-line_double_line_arrow_begin.png create mode 100644 kpresenter/toolbar/cr22-action-line_double_line_arrow_end.png create mode 100644 kpresenter/toolbar/cr22-action-line_end.png create mode 100644 kpresenter/toolbar/cr22-action-line_line_arrow_begin.png create mode 100644 kpresenter/toolbar/cr22-action-line_line_arrow_end.png create mode 100644 kpresenter/toolbar/cr22-action-line_normal_begin.png create mode 100644 kpresenter/toolbar/cr22-action-line_normal_end.png create mode 100644 kpresenter/toolbar/cr22-action-line_rect_begin.png create mode 100644 kpresenter/toolbar/cr22-action-line_rect_end.png create mode 100644 kpresenter/toolbar/cr22-action-mini_autoform.png create mode 100644 kpresenter/toolbar/cr22-action-mini_circle.png create mode 100644 kpresenter/toolbar/cr22-action-mini_clipart.png create mode 100644 kpresenter/toolbar/cr22-action-mini_line.png create mode 100644 kpresenter/toolbar/cr22-action-mini_pie.png create mode 100644 kpresenter/toolbar/cr22-action-mini_polygon.png create mode 100644 kpresenter/toolbar/cr22-action-mini_rect.png create mode 100644 kpresenter/toolbar/cr22-action-pen_style.png create mode 100644 kpresenter/toolbar/cr22-action-pen_style_dash.png create mode 100644 kpresenter/toolbar/cr22-action-pen_style_dashdot.png create mode 100644 kpresenter/toolbar/cr22-action-pen_style_dashdotdot.png create mode 100644 kpresenter/toolbar/cr22-action-pen_style_dot.png create mode 100644 kpresenter/toolbar/cr22-action-pen_style_nopen.png create mode 100644 kpresenter/toolbar/cr22-action-pen_style_solid.png create mode 100644 kpresenter/toolbar/cr22-action-pen_width.png create mode 100644 kpresenter/toolbar/cr22-action-pen_width1.png create mode 100644 kpresenter/toolbar/cr22-action-pen_width10.png create mode 100644 kpresenter/toolbar/cr22-action-pen_width2.png create mode 100644 kpresenter/toolbar/cr22-action-pen_width3.png create mode 100644 kpresenter/toolbar/cr22-action-pen_width4.png create mode 100644 kpresenter/toolbar/cr22-action-pen_width5.png create mode 100644 kpresenter/toolbar/cr22-action-pen_width6.png create mode 100644 kpresenter/toolbar/cr22-action-pen_width7.png create mode 100644 kpresenter/toolbar/cr22-action-pen_width8.png create mode 100644 kpresenter/toolbar/cr22-action-pen_width9.png create mode 100644 kpresenter/toolbar/cr22-action-penbrush.png create mode 100644 kpresenter/toolbar/cr22-action-pgnum.png create mode 100644 kpresenter/toolbar/cr22-action-pie.png create mode 100644 kpresenter/toolbar/cr22-action-polygon.png create mode 100644 kpresenter/toolbar/cr22-action-polyline.png create mode 100644 kpresenter/toolbar/cr22-action-quadricbeziercurve.png create mode 100644 kpresenter/toolbar/cr22-action-rectangle.png create mode 100644 kpresenter/toolbar/cr22-action-slide_effect.png create mode 100644 kpresenter/toolbar/cr22-action-webpres.png create mode 100644 kpresenter/toolbar/cr32-action-alignobjs.png create mode 100644 kpresenter/toolbar/cr32-action-autoform.png create mode 100644 kpresenter/toolbar/cr32-action-circle.png create mode 100644 kpresenter/toolbar/cr32-action-closed_cubicbeziercurve.png create mode 100644 kpresenter/toolbar/cr32-action-closed_freehand.png create mode 100644 kpresenter/toolbar/cr32-action-closed_polyline.png create mode 100644 kpresenter/toolbar/cr32-action-closed_quadricbeziercurve.png create mode 100644 kpresenter/toolbar/cr32-action-cubicbeziercurve.png create mode 100644 kpresenter/toolbar/cr32-action-effect.png create mode 100644 kpresenter/toolbar/cr32-action-freehand.png create mode 100644 kpresenter/toolbar/cr32-action-line.png create mode 100644 kpresenter/toolbar/cr32-action-penbrush.png create mode 100644 kpresenter/toolbar/cr32-action-pie.png create mode 100644 kpresenter/toolbar/cr32-action-polygon.png create mode 100644 kpresenter/toolbar/cr32-action-polyline.png create mode 100644 kpresenter/toolbar/cr32-action-quadricbeziercurve.png create mode 100644 kpresenter/toolbar/cr32-action-rectangle.png create mode 100644 kpresenter/toolbar/cr32-action-slide_effect.png create mode 100644 kpresenter/toolbar/cr48-action-alignobjs.png create mode 100644 kpresenter/toolbar/cr48-action-autoform.png create mode 100644 kpresenter/toolbar/cr48-action-circle.png create mode 100644 kpresenter/toolbar/cr48-action-closed_cubicbeziercurve.png create mode 100644 kpresenter/toolbar/cr48-action-closed_freehand.png create mode 100644 kpresenter/toolbar/cr48-action-closed_polyline.png create mode 100644 kpresenter/toolbar/cr48-action-closed_quadricbeziercurve.png create mode 100644 kpresenter/toolbar/cr48-action-cubicbeziercurve.png create mode 100644 kpresenter/toolbar/cr48-action-effect.png create mode 100644 kpresenter/toolbar/cr48-action-freehand.png create mode 100644 kpresenter/toolbar/cr48-action-line.png create mode 100644 kpresenter/toolbar/cr48-action-penbrush.png create mode 100644 kpresenter/toolbar/cr48-action-pie.png create mode 100644 kpresenter/toolbar/cr48-action-polygon.png create mode 100644 kpresenter/toolbar/cr48-action-polyline.png create mode 100644 kpresenter/toolbar/cr48-action-quadricbeziercurve.png create mode 100644 kpresenter/toolbar/cr48-action-rectangle.png create mode 100644 kpresenter/toolbar/cr48-action-slide_effect.png create mode 100644 krita/AUTHORS create mode 100644 krita/ChangeLog create mode 100644 krita/HACKING create mode 100644 krita/IMAGE_LIBRARIES create mode 100644 krita/Makefile.am create mode 100644 krita/README create mode 100644 krita/TODO create mode 100644 krita/UIcomments create mode 100644 krita/colorspaces/Makefile.am create mode 100644 krita/colorspaces/README create mode 100644 krita/colorspaces/cmyk_u16/Makefile.am create mode 100644 krita/colorspaces/cmyk_u16/cmyk_u16_plugin.cc create mode 100644 krita/colorspaces/cmyk_u16/cmyk_u16_plugin.h create mode 100644 krita/colorspaces/cmyk_u16/kis_cmyk_u16_colorspace.cc create mode 100644 krita/colorspaces/cmyk_u16/kis_cmyk_u16_colorspace.h create mode 100644 krita/colorspaces/cmyk_u16/krita_cmyk_u16_plugin.desktop create mode 100644 krita/colorspaces/cmyk_u8/Makefile.am create mode 100644 krita/colorspaces/cmyk_u8/cmyk_plugin.cc create mode 100644 krita/colorspaces/cmyk_u8/cmyk_plugin.h create mode 100644 krita/colorspaces/cmyk_u8/cmykplugin.rc create mode 100644 krita/colorspaces/cmyk_u8/composite.h create mode 100644 krita/colorspaces/cmyk_u8/kis_cmyk_colorspace.cc create mode 100644 krita/colorspaces/cmyk_u8/kis_cmyk_colorspace.h create mode 100644 krita/colorspaces/cmyk_u8/kritacmykplugin.desktop create mode 100644 krita/colorspaces/cmyk_u8/templates/.directory create mode 100644 krita/colorspaces/cmyk_u8/templates/Makefile.am create mode 100644 krita/colorspaces/cmyk_u8/templates/cr48-action-template_cmyk_empty.png create mode 100644 krita/colorspaces/cmyk_u8/templates/crsc-action-template_cmyk_empty.svgz create mode 100644 krita/colorspaces/cmyk_u8/templates/white_2000x800.desktop create mode 100644 krita/colorspaces/cmyk_u8/templates/white_2000x800.kra create mode 100644 krita/colorspaces/gray_u16/Makefile.am create mode 100644 krita/colorspaces/gray_u16/gray_u16_plugin.cc create mode 100644 krita/colorspaces/gray_u16/gray_u16_plugin.h create mode 100644 krita/colorspaces/gray_u16/kis_gray_u16_colorspace.cc create mode 100644 krita/colorspaces/gray_u16/kis_gray_u16_colorspace.h create mode 100644 krita/colorspaces/gray_u16/krita_gray_u16_plugin.desktop create mode 100644 krita/colorspaces/gray_u8/Makefile.am create mode 100644 krita/colorspaces/gray_u8/gray_plugin.cc create mode 100644 krita/colorspaces/gray_u8/gray_plugin.h create mode 100644 krita/colorspaces/gray_u8/grayplugin.rc create mode 100644 krita/colorspaces/gray_u8/kis_gray_colorspace.cc create mode 100644 krita/colorspaces/gray_u8/kis_gray_colorspace.h create mode 100644 krita/colorspaces/gray_u8/kritagrayplugin.desktop create mode 100644 krita/colorspaces/gray_u8/templates/.directory create mode 100644 krita/colorspaces/gray_u8/templates/Makefile.am create mode 100644 krita/colorspaces/gray_u8/templates/cr48-action-template_gray_empty.png create mode 100644 krita/colorspaces/gray_u8/templates/crsc-action-template_gray_empty.svgz create mode 100644 krita/colorspaces/gray_u8/templates/white_640x480.desktop create mode 100644 krita/colorspaces/gray_u8/templates/white_640x480.kra create mode 100644 krita/colorspaces/gray_u8/tests/Makefile.am create mode 100644 krita/colorspaces/gray_u8/tests/kis_strategy_colorspace_grayscale_tester.cpp create mode 100644 krita/colorspaces/gray_u8/tests/kis_strategy_colorspace_grayscale_tester.h create mode 100644 krita/colorspaces/lms_f32/Makefile.am create mode 100644 krita/colorspaces/lms_f32/kis_lms_f32_colorspace.cc create mode 100644 krita/colorspaces/lms_f32/kis_lms_f32_colorspace.h create mode 100644 krita/colorspaces/lms_f32/krita_lms_f32_plugin.desktop create mode 100644 krita/colorspaces/lms_f32/lms_f32_plugin.cc create mode 100644 krita/colorspaces/lms_f32/lms_f32_plugin.h create mode 100644 krita/colorspaces/lms_f32/lms_f32_plugin.rc create mode 100644 krita/colorspaces/rgb_f16half/Makefile.am create mode 100644 krita/colorspaces/rgb_f16half/kis_rgb_f16half_colorspace.cc create mode 100644 krita/colorspaces/rgb_f16half/kis_rgb_f16half_colorspace.h create mode 100644 krita/colorspaces/rgb_f16half/krita_rgb_f16half_plugin.desktop create mode 100644 krita/colorspaces/rgb_f16half/rgb_f16half_plugin.cc create mode 100644 krita/colorspaces/rgb_f16half/rgb_f16half_plugin.h create mode 100644 krita/colorspaces/rgb_f16half/rgb_f16half_plugin.rc create mode 100644 krita/colorspaces/rgb_f16half/tests/Makefile.am create mode 100644 krita/colorspaces/rgb_f16half/tests/kis_rgb_f16half_colorspace_tester.cc create mode 100644 krita/colorspaces/rgb_f16half/tests/kis_rgb_f16half_colorspace_tester.h create mode 100644 krita/colorspaces/rgb_f32/Makefile.am create mode 100644 krita/colorspaces/rgb_f32/kis_rgb_f32_colorspace.cc create mode 100644 krita/colorspaces/rgb_f32/kis_rgb_f32_colorspace.h create mode 100644 krita/colorspaces/rgb_f32/krita_rgb_f32_plugin.desktop create mode 100644 krita/colorspaces/rgb_f32/rgb_f32_plugin.cc create mode 100644 krita/colorspaces/rgb_f32/rgb_f32_plugin.h create mode 100644 krita/colorspaces/rgb_f32/rgb_f32_plugin.rc create mode 100644 krita/colorspaces/rgb_f32/tests/Makefile.am create mode 100644 krita/colorspaces/rgb_f32/tests/kis_strategy_colorspace_rgb_f32_tester.cc create mode 100644 krita/colorspaces/rgb_f32/tests/kis_strategy_colorspace_rgb_f32_tester.h create mode 100644 krita/colorspaces/rgb_u16/Makefile.am create mode 100644 krita/colorspaces/rgb_u16/kis_rgb_u16_colorspace.cc create mode 100644 krita/colorspaces/rgb_u16/kis_rgb_u16_colorspace.h create mode 100644 krita/colorspaces/rgb_u16/krita_rgb_u16_plugin.desktop create mode 100644 krita/colorspaces/rgb_u16/rgb_u16_plugin.cc create mode 100644 krita/colorspaces/rgb_u16/rgb_u16_plugin.h create mode 100644 krita/colorspaces/rgb_u16/tests/Makefile.am create mode 100644 krita/colorspaces/rgb_u16/tests/kis_strategy_colorspace_rgb_u16_tester.cc create mode 100644 krita/colorspaces/rgb_u16/tests/kis_strategy_colorspace_rgb_u16_tester.h create mode 100644 krita/colorspaces/rgb_u8/Makefile.am create mode 100644 krita/colorspaces/rgb_u8/composite.h create mode 100644 krita/colorspaces/rgb_u8/kis_rgb_colorspace.cc create mode 100644 krita/colorspaces/rgb_u8/kis_rgb_colorspace.h create mode 100644 krita/colorspaces/rgb_u8/kritargbplugin.desktop create mode 100644 krita/colorspaces/rgb_u8/rgb_plugin.cc create mode 100644 krita/colorspaces/rgb_u8/rgb_plugin.h create mode 100644 krita/colorspaces/rgb_u8/rgbplugin.rc create mode 100644 krita/colorspaces/rgb_u8/templates/.directory create mode 100644 krita/colorspaces/rgb_u8/templates/Makefile.am create mode 100644 krita/colorspaces/rgb_u8/templates/cr48-action-template_rgb_empty.png create mode 100644 krita/colorspaces/rgb_u8/templates/crsc-action-template_rgb_empty.svgz create mode 100644 krita/colorspaces/rgb_u8/templates/transparent_1024x768.desktop create mode 100644 krita/colorspaces/rgb_u8/templates/transparent_1024x768.kra create mode 100644 krita/colorspaces/rgb_u8/templates/transparent_1280x1024.desktop create mode 100644 krita/colorspaces/rgb_u8/templates/transparent_1280x1024.kra create mode 100644 krita/colorspaces/rgb_u8/templates/transparent_1600x1200.desktop create mode 100644 krita/colorspaces/rgb_u8/templates/transparent_1600x1200.kra create mode 100644 krita/colorspaces/rgb_u8/templates/transparent_640x480.desktop create mode 100644 krita/colorspaces/rgb_u8/templates/transparent_640x480.kra create mode 100644 krita/colorspaces/rgb_u8/templates/white_1024x768.desktop create mode 100644 krita/colorspaces/rgb_u8/templates/white_1024x768.kra create mode 100644 krita/colorspaces/rgb_u8/templates/white_1280x1024.desktop create mode 100644 krita/colorspaces/rgb_u8/templates/white_1280x1024.kra create mode 100644 krita/colorspaces/rgb_u8/templates/white_1600x1200.desktop create mode 100644 krita/colorspaces/rgb_u8/templates/white_1600x1200.kra create mode 100644 krita/colorspaces/rgb_u8/templates/white_640x480.desktop create mode 100644 krita/colorspaces/rgb_u8/templates/white_640x480.kra create mode 100644 krita/colorspaces/rgb_u8/tests/Makefile.am create mode 100644 krita/colorspaces/rgb_u8/tests/kis_strategy_colorspace_rgb_tester.cpp create mode 100644 krita/colorspaces/rgb_u8/tests/kis_strategy_colorspace_rgb_tester.h create mode 100644 krita/colorspaces/wet/Makefile.am create mode 100644 krita/colorspaces/wet/kis_texture_filter.cc create mode 100644 krita/colorspaces/wet/kis_texture_filter.h create mode 100644 krita/colorspaces/wet/kis_texture_painter.cc create mode 100644 krita/colorspaces/wet/kis_texture_painter.h create mode 100644 krita/colorspaces/wet/kis_wet_colorspace.cc create mode 100644 krita/colorspaces/wet/kis_wet_colorspace.h create mode 100644 krita/colorspaces/wet/kis_wet_palette_widget.cc create mode 100644 krita/colorspaces/wet/kis_wet_palette_widget.h create mode 100644 krita/colorspaces/wet/kis_wetness_visualisation_filter.cc create mode 100644 krita/colorspaces/wet/kis_wetness_visualisation_filter.h create mode 100644 krita/colorspaces/wet/kis_wetop.cc create mode 100644 krita/colorspaces/wet/kis_wetop.h create mode 100644 krita/colorspaces/wet/kritawetplugin.desktop create mode 100644 krita/colorspaces/wet/todo create mode 100644 krita/colorspaces/wet/wdgpressure.ui create mode 100644 krita/colorspaces/wet/wet_plugin.cc create mode 100644 krita/colorspaces/wet/wet_plugin.h create mode 100644 krita/colorspaces/wet/wetdreams/Makefile create mode 100644 krita/colorspaces/wet/wetdreams/wetmain.c create mode 100644 krita/colorspaces/wet/wetdreams/wetpaint.c create mode 100644 krita/colorspaces/wet/wetdreams/wetpaint.h create mode 100644 krita/colorspaces/wet/wetdreams/wetphysics.c create mode 100644 krita/colorspaces/wet/wetdreams/wetphysics.h create mode 100644 krita/colorspaces/wet/wetdreams/wetpix.c create mode 100644 krita/colorspaces/wet/wetdreams/wetpix.h create mode 100644 krita/colorspaces/wet/wetdreams/wettexture.c create mode 100644 krita/colorspaces/wet/wetdreams/wettexture.h create mode 100644 krita/colorspaces/wet/wetphysicsfilter.cc create mode 100644 krita/colorspaces/wet/wetphysicsfilter.h create mode 100644 krita/colorspaces/wet/wetplugin.rc create mode 100644 krita/colorspaces/wetsticky/Makefile.am create mode 100644 krita/colorspaces/wetsticky/README create mode 100644 krita/colorspaces/wetsticky/TODO create mode 100644 krita/colorspaces/wetsticky/brushop/Makefile.am create mode 100644 krita/colorspaces/wetsticky/brushop/README create mode 100644 krita/colorspaces/wetsticky/brushop/kis_wsbrushop.cc create mode 100644 krita/colorspaces/wetsticky/brushop/kis_wsbrushop.h create mode 100644 krita/colorspaces/wetsticky/brushop/kritawsbrushpaintop.desktop create mode 100644 krita/colorspaces/wetsticky/brushop/wetpaintbrush.png create mode 100644 krita/colorspaces/wetsticky/brushop/wsbrushpaintop_plugin.cc create mode 100644 krita/colorspaces/wetsticky/brushop/wsbrushpaintop_plugin.h create mode 100644 krita/colorspaces/wetsticky/kis_wet_sticky_colorspace.cc create mode 100644 krita/colorspaces/wetsticky/kis_wet_sticky_colorspace.h create mode 100644 krita/colorspaces/wetsticky/kis_ws_engine_filter.cc create mode 100644 krita/colorspaces/wetsticky/kis_ws_engine_filter.h create mode 100644 krita/colorspaces/wetsticky/kritawsplugin.desktop create mode 100644 krita/colorspaces/wetsticky/wet_sticky_plugin.cc create mode 100644 krita/colorspaces/wetsticky/wet_sticky_plugin.h create mode 100644 krita/colorspaces/wetsticky/ws/GNU create mode 100644 krita/colorspaces/wetsticky/ws/GNU Public Licence.txt create mode 100644 krita/colorspaces/wetsticky/ws/README create mode 100644 krita/colorspaces/wetsticky/ws/TODO create mode 100644 krita/colorspaces/wetsticky/ws/after.jpg create mode 100644 krita/colorspaces/wetsticky/ws/anim.c create mode 100644 krita/colorspaces/wetsticky/ws/before.jpg create mode 100644 krita/colorspaces/wetsticky/ws/canvas.c create mode 100644 krita/colorspaces/wetsticky/ws/canvas.h create mode 100644 krita/colorspaces/wetsticky/ws/cmap.c create mode 100644 krita/colorspaces/wetsticky/ws/constants.h create mode 100644 krita/colorspaces/wetsticky/ws/engine.c create mode 100644 krita/colorspaces/wetsticky/ws/engine.h create mode 100644 krita/colorspaces/wetsticky/ws/engine3.c create mode 100644 krita/colorspaces/wetsticky/ws/load_ppm.c create mode 100644 krita/colorspaces/wetsticky/ws/main.c create mode 100644 krita/colorspaces/wetsticky/ws/makefile create mode 100644 krita/colorspaces/wetsticky/ws/mona.pgm create mode 100644 krita/colorspaces/wetsticky/ws/ogl_interface.c create mode 100644 krita/colorspaces/wetsticky/ws/test2.jpg create mode 100644 krita/colorspaces/wetsticky/ws/test3.jpg create mode 100644 krita/colorspaces/wetsticky/ws/types.h create mode 100644 krita/colorspaces/wetsticky/ws/win_interface.h create mode 100644 krita/colorspaces/wetsticky/ws/x_interface.c create mode 100644 krita/colorspaces/wetsticky/wstool.ui create mode 100644 krita/colorspaces/ycbcr_u16/Makefile.am create mode 100644 krita/colorspaces/ycbcr_u16/kis_ycbcr_u16_colorspace.cc create mode 100644 krita/colorspaces/ycbcr_u16/kis_ycbcr_u16_colorspace.h create mode 100644 krita/colorspaces/ycbcr_u16/krita_ycbcr_u16_plugin.desktop create mode 100644 krita/colorspaces/ycbcr_u16/ycbcr_u16_plugin.cc create mode 100644 krita/colorspaces/ycbcr_u16/ycbcr_u16_plugin.h create mode 100644 krita/colorspaces/ycbcr_u8/Makefile.am create mode 100644 krita/colorspaces/ycbcr_u8/kis_ycbcr_u8_colorspace.cc create mode 100644 krita/colorspaces/ycbcr_u8/kis_ycbcr_u8_colorspace.h create mode 100644 krita/colorspaces/ycbcr_u8/krita_ycbcr_u8_plugin.desktop create mode 100644 krita/colorspaces/ycbcr_u8/ycbcr_u8_plugin.cc create mode 100644 krita/colorspaces/ycbcr_u8/ycbcr_u8_plugin.h create mode 100644 krita/configure.in.bot create mode 100644 krita/configure.in.in create mode 100644 krita/core/Makefile.am create mode 100755 krita/core/createdcop.py create mode 100644 krita/core/kis_adjustment_layer.cc create mode 100644 krita/core/kis_adjustment_layer.h create mode 100644 krita/core/kis_alpha_mask.cc create mode 100644 krita/core/kis_alpha_mask.h create mode 100644 krita/core/kis_autobrush_resource.cc create mode 100644 krita/core/kis_autobrush_resource.h create mode 100644 krita/core/kis_autogradient_resource.cc create mode 100644 krita/core/kis_autogradient_resource.h create mode 100644 krita/core/kis_background.cc create mode 100644 krita/core/kis_background.h create mode 100644 krita/core/kis_basic_math_toolbox.cpp create mode 100644 krita/core/kis_basic_math_toolbox.h create mode 100644 krita/core/kis_boundary.cc create mode 100644 krita/core/kis_boundary.h create mode 100644 krita/core/kis_brush.cc create mode 100644 krita/core/kis_brush.h create mode 100644 krita/core/kis_change_profile_visitor.h create mode 100644 krita/core/kis_colorspace_convert_visitor.h create mode 100644 krita/core/kis_command.cc create mode 100644 krita/core/kis_command.h create mode 100644 krita/core/kis_convolution_painter.cc create mode 100644 krita/core/kis_convolution_painter.h create mode 100644 krita/core/kis_crop_visitor.h create mode 100644 krita/core/kis_datamanager.h create mode 100644 krita/core/kis_exif_info.cc create mode 100644 krita/core/kis_exif_info.h create mode 100644 krita/core/kis_exif_value.cc create mode 100644 krita/core/kis_exif_value.h create mode 100644 krita/core/kis_fill_painter.cc create mode 100644 krita/core/kis_fill_painter.h create mode 100644 krita/core/kis_filter.cc create mode 100644 krita/core/kis_filter.h create mode 100644 krita/core/kis_filter_config_widget.cc create mode 100644 krita/core/kis_filter_config_widget.h create mode 100644 krita/core/kis_filter_configuration.cc create mode 100644 krita/core/kis_filter_configuration.h create mode 100644 krita/core/kis_filter_registry.cc create mode 100644 krita/core/kis_filter_registry.h create mode 100644 krita/core/kis_filter_strategy.cc create mode 100644 krita/core/kis_filter_strategy.h create mode 100644 krita/core/kis_gradient.cc create mode 100644 krita/core/kis_gradient.h create mode 100644 krita/core/kis_gradient_painter.cc create mode 100644 krita/core/kis_gradient_painter.h create mode 100644 krita/core/kis_group_layer.cc create mode 100644 krita/core/kis_group_layer.h create mode 100644 krita/core/kis_histogram.cc create mode 100644 krita/core/kis_histogram.h create mode 100644 krita/core/kis_image.cc create mode 100644 krita/core/kis_image.h create mode 100644 krita/core/kis_image_iface.cc create mode 100644 krita/core/kis_image_iface.h create mode 100644 krita/core/kis_imagepipe_brush.cc create mode 100644 krita/core/kis_imagepipe_brush.h create mode 100644 krita/core/kis_iterator.cc create mode 100644 krita/core/kis_iterator.h create mode 100644 krita/core/kis_iteratorpixeltrait.h create mode 100644 krita/core/kis_iterators_pixel.cc create mode 100644 krita/core/kis_iterators_pixel.h create mode 100644 krita/core/kis_layer.cc create mode 100644 krita/core/kis_layer.h create mode 100644 krita/core/kis_layer_visitor.h create mode 100644 krita/core/kis_math_toolbox.cpp create mode 100644 krita/core/kis_math_toolbox.h create mode 100644 krita/core/kis_merge_visitor.h create mode 100644 krita/core/kis_meta_registry.cc create mode 100644 krita/core/kis_meta_registry.h create mode 100644 krita/core/kis_nameserver.cc create mode 100644 krita/core/kis_nameserver.h create mode 100644 krita/core/kis_paint_device.cc create mode 100644 krita/core/kis_paint_device.h create mode 100644 krita/core/kis_paint_device_action.h create mode 100644 krita/core/kis_paint_device_iface.cc create mode 100644 krita/core/kis_paint_device_iface.h create mode 100644 krita/core/kis_paint_layer.cc create mode 100644 krita/core/kis_paint_layer.h create mode 100644 krita/core/kis_painter.cc create mode 100644 krita/core/kis_painter.h create mode 100644 krita/core/kis_paintop.cc create mode 100644 krita/core/kis_paintop.h create mode 100644 krita/core/kis_paintop_registry.cc create mode 100644 krita/core/kis_paintop_registry.h create mode 100644 krita/core/kis_palette.cc create mode 100644 krita/core/kis_palette.h create mode 100644 krita/core/kis_part_layer_iface.h create mode 100644 krita/core/kis_pattern.cc create mode 100644 krita/core/kis_pattern.h create mode 100644 krita/core/kis_perspective_grid.cpp create mode 100644 krita/core/kis_perspective_grid.h create mode 100644 krita/core/kis_perspective_math.cpp create mode 100644 krita/core/kis_perspective_math.h create mode 100644 krita/core/kis_perspectivetransform_worker.cpp create mode 100644 krita/core/kis_perspectivetransform_worker.h create mode 100644 krita/core/kis_point.h create mode 100644 krita/core/kis_random_accessor.cpp create mode 100644 krita/core/kis_random_accessor.h create mode 100644 krita/core/kis_random_sub_accessor.cpp create mode 100644 krita/core/kis_random_sub_accessor.h create mode 100644 krita/core/kis_rect.cc create mode 100644 krita/core/kis_rect.h create mode 100644 krita/core/kis_resource.cc create mode 100644 krita/core/kis_resource.h create mode 100644 krita/core/kis_rotate_visitor.cc create mode 100644 krita/core/kis_rotate_visitor.h create mode 100644 krita/core/kis_scale_visitor.cc create mode 100644 krita/core/kis_scale_visitor.h create mode 100644 krita/core/kis_selected_transaction.cc create mode 100644 krita/core/kis_selected_transaction.h create mode 100644 krita/core/kis_selection.cc create mode 100644 krita/core/kis_selection.h create mode 100644 krita/core/kis_shear_visitor.h create mode 100644 krita/core/kis_strategy_move.cc create mode 100644 krita/core/kis_strategy_move.h create mode 100644 krita/core/kis_substrate.h create mode 100644 krita/core/kis_thread.h create mode 100644 krita/core/kis_thread_pool.cc create mode 100644 krita/core/kis_thread_pool.h create mode 100644 krita/core/kis_transaction.cc create mode 100644 krita/core/kis_transaction.h create mode 100644 krita/core/kis_transform_visitor.h create mode 100644 krita/core/kis_transform_worker.cc create mode 100644 krita/core/kis_transform_worker.h create mode 100644 krita/core/kis_types.h create mode 100644 krita/core/kis_vec.cc create mode 100644 krita/core/kis_vec.h create mode 100644 krita/core/tests/Makefile.am create mode 100644 krita/core/tests/kis_filter_configuration_tester.cc create mode 100644 krita/core/tests/kis_filter_configuration_tester.h create mode 100644 krita/core/tests/kis_image_tester.cpp create mode 100644 krita/core/tests/kis_image_tester.h create mode 100644 krita/core/tests/kis_integer_maths_tester.cpp create mode 100644 krita/core/tests/kis_integer_maths_tester.h create mode 100644 krita/core/tiles/Makefile.am create mode 100644 krita/core/tiles/kis_memento.cc create mode 100644 krita/core/tiles/kis_memento.h create mode 100644 krita/core/tiles/kis_tile.cc create mode 100644 krita/core/tiles/kis_tile.h create mode 100644 krita/core/tiles/kis_tile_global.h create mode 100644 krita/core/tiles/kis_tiled_random_accessor.cc create mode 100644 krita/core/tiles/kis_tiled_random_accessor.h create mode 100644 krita/core/tiles/kis_tileddatamanager.cc create mode 100644 krita/core/tiles/kis_tileddatamanager.h create mode 100644 krita/core/tiles/kis_tiledhlineiterator.cc create mode 100644 krita/core/tiles/kis_tilediterator.cc create mode 100644 krita/core/tiles/kis_tilediterator.h create mode 100644 krita/core/tiles/kis_tiledrectiterator.cc create mode 100644 krita/core/tiles/kis_tiledvlineiterator.cc create mode 100644 krita/core/tiles/kis_tilemanager.cc create mode 100644 krita/core/tiles/kis_tilemanager.h create mode 100644 krita/core/tiles/tests/Makefile.am create mode 100644 krita/core/tiles/tests/kis_tiled_data_tester.cpp create mode 100644 krita/core/tiles/tests/kis_tiled_data_tester.h create mode 100644 krita/data/Makefile.am create mode 100644 krita/data/README create mode 100644 krita/data/brushes/10x10square.gbr create mode 100644 krita/data/brushes/10x10squareBlur.gbr create mode 100644 krita/data/brushes/11circle.gbr create mode 100644 krita/data/brushes/11fcircle.gbr create mode 100644 krita/data/brushes/13circle.gbr create mode 100644 krita/data/brushes/13fcircle.gbr create mode 100644 krita/data/brushes/15circle.gbr create mode 100644 krita/data/brushes/15fcircle.gbr create mode 100644 krita/data/brushes/17circle.gbr create mode 100644 krita/data/brushes/17fcircle.gbr create mode 100644 krita/data/brushes/19circle.gbr create mode 100644 krita/data/brushes/19fcircle.gbr create mode 100644 krita/data/brushes/1circle.gbr create mode 100644 krita/data/brushes/20x20square.gbr create mode 100644 krita/data/brushes/20x20squareBlur.gbr create mode 100644 krita/data/brushes/3circle.gbr create mode 100644 krita/data/brushes/3fcircle.gbr create mode 100644 krita/data/brushes/5circle.gbr create mode 100644 krita/data/brushes/5fcircle.gbr create mode 100644 krita/data/brushes/5x5square.gbr create mode 100644 krita/data/brushes/5x5squareBlur.gbr create mode 100644 krita/data/brushes/7circle.gbr create mode 100644 krita/data/brushes/7fcircle.gbr create mode 100644 krita/data/brushes/9circle.gbr create mode 100644 krita/data/brushes/9fcircle.gbr create mode 100644 krita/data/brushes/BRUSHES.README create mode 100644 krita/data/brushes/COPYING create mode 100644 krita/data/brushes/DStar11.gbr create mode 100644 krita/data/brushes/DStar17.gbr create mode 100644 krita/data/brushes/DStar25.gbr create mode 100644 krita/data/brushes/Makefile.am create mode 100644 krita/data/brushes/SketchBrush-16.gih create mode 100644 krita/data/brushes/SketchBrush-32.gih create mode 100644 krita/data/brushes/SketchBrush-64.gih create mode 100644 krita/data/brushes/callig1.gbr create mode 100644 krita/data/brushes/callig2.gbr create mode 100644 krita/data/brushes/callig3.gbr create mode 100644 krita/data/brushes/callig4.gbr create mode 100644 krita/data/brushes/confetti.gbr create mode 100644 krita/data/brushes/confetti.gih create mode 100644 krita/data/brushes/cursor.gbr create mode 100644 krita/data/brushes/cursor_big_lb.gbr create mode 100644 krita/data/brushes/cursor_big_lw.gbr create mode 100644 krita/data/brushes/cursor_big_rb.gbr create mode 100644 krita/data/brushes/cursor_big_rw.gbr create mode 100644 krita/data/brushes/cursor_lw.gbr create mode 100644 krita/data/brushes/cursor_resize_diag_1.gbr create mode 100644 krita/data/brushes/cursor_resize_diag_2.gbr create mode 100644 krita/data/brushes/cursor_resize_hor.gbr create mode 100644 krita/data/brushes/cursor_resize_vert.gbr create mode 100644 krita/data/brushes/cursor_rw.gbr create mode 100644 krita/data/brushes/cursor_small_lb.gbr create mode 100644 krita/data/brushes/cursor_small_lw.gbr create mode 100644 krita/data/brushes/cursor_small_rb.gbr create mode 100644 krita/data/brushes/cursor_small_rw.gbr create mode 100644 krita/data/brushes/cursor_tiny_lw.gbr create mode 100644 krita/data/brushes/cursor_tiny_rw.gbr create mode 100644 krita/data/brushes/cursor_up.gbr create mode 100644 krita/data/brushes/dunes.gbr create mode 100644 krita/data/brushes/feltpen.gih create mode 100644 krita/data/brushes/galaxy.gbr create mode 100644 krita/data/brushes/galaxy_big.gbr create mode 100644 krita/data/brushes/galaxy_small.gbr create mode 100644 krita/data/brushes/hsparks.gih create mode 100644 krita/data/brushes/pepper.gbr create mode 100644 krita/data/brushes/pixel.gbr create mode 100644 krita/data/brushes/vine.gih create mode 100644 krita/data/gradients/Abstract_1.ggr create mode 100644 krita/data/gradients/Abstract_2.ggr create mode 100644 krita/data/gradients/Abstract_3.ggr create mode 100644 krita/data/gradients/Aneurism.ggr create mode 100644 krita/data/gradients/Blinds.ggr create mode 100644 krita/data/gradients/Blue_Green.ggr create mode 100644 krita/data/gradients/Browns.ggr create mode 100644 krita/data/gradients/Brushed_Aluminium.ggr create mode 100644 krita/data/gradients/Burning_Paper.ggr create mode 100644 krita/data/gradients/Burning_Transparency.ggr create mode 100644 krita/data/gradients/CD.ggr create mode 100644 krita/data/gradients/CD_Half.ggr create mode 100644 krita/data/gradients/Caribbean_Blues.ggr create mode 100644 krita/data/gradients/Coffee.ggr create mode 100644 krita/data/gradients/Cold_Steel.ggr create mode 100644 krita/data/gradients/Cold_Steel_2.ggr create mode 100644 krita/data/gradients/Crown_molding.ggr create mode 100644 krita/data/gradients/Dark_1.ggr create mode 100644 krita/data/gradients/Deep_Sea.ggr create mode 100644 krita/data/gradients/Default.ggr create mode 100644 krita/data/gradients/Flare_Glow_Angular_1.ggr create mode 100644 krita/data/gradients/Flare_Glow_Radial_1.ggr create mode 100644 krita/data/gradients/Flare_Glow_Radial_2.ggr create mode 100644 krita/data/gradients/Flare_Glow_Radial_3.ggr create mode 100644 krita/data/gradients/Flare_Glow_Radial_4.ggr create mode 100644 krita/data/gradients/Flare_Radial_101.ggr create mode 100644 krita/data/gradients/Flare_Radial_102.ggr create mode 100644 krita/data/gradients/Flare_Radial_103.ggr create mode 100644 krita/data/gradients/Flare_Rays_Radial_1.ggr create mode 100644 krita/data/gradients/Flare_Rays_Radial_2.ggr create mode 100644 krita/data/gradients/Flare_Rays_Size_1.ggr create mode 100644 krita/data/gradients/Flare_Sizefac_101.ggr create mode 100644 krita/data/gradients/Four_bars.ggr create mode 100644 krita/data/gradients/French_flag.ggr create mode 100644 krita/data/gradients/French_flag_smooth.ggr create mode 100644 krita/data/gradients/Full_saturation_spectrum_CCW.ggr create mode 100644 krita/data/gradients/Full_saturation_spectrum_CW.ggr create mode 100644 krita/data/gradients/German_flag.ggr create mode 100644 krita/data/gradients/German_flag_smooth.ggr create mode 100644 krita/data/gradients/Golden.ggr create mode 100644 krita/data/gradients/Greens.ggr create mode 100644 krita/data/gradients/Horizon_1.ggr create mode 100644 krita/data/gradients/Horizon_2.ggr create mode 100644 krita/data/gradients/Incandescent.ggr create mode 100644 krita/data/gradients/Land_1.ggr create mode 100644 krita/data/gradients/Land_and_Sea.ggr create mode 100644 krita/data/gradients/Makefile.am create mode 100644 krita/data/gradients/Metallic_Something.ggr create mode 100644 krita/data/gradients/Mexican_flag.ggr create mode 100644 krita/data/gradients/Mexican_flag_smooth.ggr create mode 100644 krita/data/gradients/Nauseating_Headache.ggr create mode 100644 krita/data/gradients/Neon_Cyan.ggr create mode 100644 krita/data/gradients/Neon_Green.ggr create mode 100644 krita/data/gradients/Neon_Yellow.ggr create mode 100644 krita/data/gradients/Pastel_Rainbow.ggr create mode 100644 krita/data/gradients/Pastels.ggr create mode 100644 krita/data/gradients/Purples.ggr create mode 100644 krita/data/gradients/Radial_Eyeball_Blue.ggr create mode 100644 krita/data/gradients/Radial_Eyeball_Brown.ggr create mode 100644 krita/data/gradients/Radial_Eyeball_Green.ggr create mode 100644 krita/data/gradients/Radial_Glow_1.ggr create mode 100644 krita/data/gradients/Radial_Rainbow_Hoop.ggr create mode 100644 krita/data/gradients/Romanian_flag.ggr create mode 100644 krita/data/gradients/Romanian_flag_smooth.ggr create mode 100644 krita/data/gradients/Rounded_edge.ggr create mode 100644 krita/data/gradients/Shadows_1.ggr create mode 100644 krita/data/gradients/Shadows_2.ggr create mode 100644 krita/data/gradients/Shadows_3.ggr create mode 100644 krita/data/gradients/Skyline.ggr create mode 100644 krita/data/gradients/Skyline_polluted.ggr create mode 100644 krita/data/gradients/Square_Wood_Frame.ggr create mode 100644 krita/data/gradients/Sunrise.ggr create mode 100644 krita/data/gradients/Three_bars_sin.ggr create mode 100644 krita/data/gradients/Tropical_Colors.ggr create mode 100644 krita/data/gradients/Tube_Red.ggr create mode 100644 krita/data/gradients/Wood_1.ggr create mode 100644 krita/data/gradients/Wood_2.ggr create mode 100644 krita/data/gradients/Yellow_Contrast.ggr create mode 100644 krita/data/gradients/Yellow_Orange.ggr create mode 100644 krita/data/images/Azay-Le-Rideau.jpg create mode 100644 krita/data/images/Makefile.am create mode 100644 krita/data/images/WeyDesc.png create mode 100644 krita/data/images/evenings.jpg create mode 100644 krita/data/images/hakonepa.jpg create mode 100644 krita/data/images/hiro_awate.jpg create mode 100644 krita/data/images/paintbrush.png create mode 100644 krita/data/images/previewfilter.png create mode 100644 krita/data/krita_filter.desktop create mode 100644 krita/data/krita_paintop.desktop create mode 100644 krita/data/krita_plugin.desktop create mode 100644 krita/data/krita_tool.desktop create mode 100644 krita/data/palettes/40_Colors.gpl create mode 100644 krita/data/palettes/Anchor.gpl create mode 100644 krita/data/palettes/Bears.gpl create mode 100644 krita/data/palettes/Bgold.gpl create mode 100644 krita/data/palettes/Blues.gpl create mode 100644 krita/data/palettes/Borders.gpl create mode 100644 krita/data/palettes/Browns_And_Yellows.gpl create mode 100644 krita/data/palettes/Caramel.gpl create mode 100644 krita/data/palettes/Cascade.gpl create mode 100644 krita/data/palettes/China.gpl create mode 100644 krita/data/palettes/Coldfire.gpl create mode 100644 krita/data/palettes/Cool_Colors.gpl create mode 100644 krita/data/palettes/Cranes.gpl create mode 100644 krita/data/palettes/DMC.gpl create mode 100644 krita/data/palettes/Dark_pastels.gpl create mode 100644 krita/data/palettes/Default.gpl create mode 100644 krita/data/palettes/Ega.gpl create mode 100644 krita/data/palettes/Firecode.gpl create mode 100644 krita/data/palettes/Gold.gpl create mode 100644 krita/data/palettes/GrayViolet.gpl create mode 100644 krita/data/palettes/Grayblue.gpl create mode 100644 krita/data/palettes/Grays.gpl create mode 100644 krita/data/palettes/Greens.gpl create mode 100644 krita/data/palettes/Hilite.gpl create mode 100644 krita/data/palettes/Khaki.gpl create mode 100644 krita/data/palettes/Lights.gpl create mode 100644 krita/data/palettes/Madeira.gpl create mode 100644 krita/data/palettes/Makefile.am create mode 100644 krita/data/palettes/Muted.gpl create mode 100644 krita/data/palettes/Named_Colors.gpl create mode 100644 krita/data/palettes/News3.gpl create mode 100644 krita/data/palettes/Op2.gpl create mode 100644 krita/data/palettes/Paintjet.gpl create mode 100644 krita/data/palettes/Pantone_Coated_Approx.gpl create mode 100644 krita/data/palettes/Pastels.gpl create mode 100644 krita/data/palettes/Plasma.gpl create mode 100644 krita/data/palettes/Reds.gpl create mode 100644 krita/data/palettes/Reds_And_Purples.gpl create mode 100644 krita/data/palettes/Royal.gpl create mode 100644 krita/data/palettes/Topographic.gpl create mode 100644 krita/data/palettes/Visibone.gpl create mode 100644 krita/data/palettes/Visibone_2.gpl create mode 100644 krita/data/palettes/Volcano.gpl create mode 100644 krita/data/palettes/Warm_Colors.gpl create mode 100644 krita/data/palettes/Web.gpl create mode 100644 krita/data/palettes/new_kde.gpl create mode 100644 krita/data/patterns/3dgreen.pat create mode 100644 krita/data/patterns/Craters.pat create mode 100644 krita/data/patterns/Makefile.am create mode 100644 krita/data/patterns/Moonfoot.pat create mode 100644 krita/data/patterns/Stripes1px.pat create mode 100644 krita/data/patterns/Stripes2px.pat create mode 100644 krita/data/patterns/amethyst.pat create mode 100644 krita/data/patterns/bark.pat create mode 100644 krita/data/patterns/blue.pat create mode 100644 krita/data/patterns/bluegrid.pat create mode 100644 krita/data/patterns/bluesquares.pat create mode 100644 krita/data/patterns/blueweb.pat create mode 100644 krita/data/patterns/brick.pat create mode 100644 krita/data/patterns/burlap.pat create mode 100644 krita/data/patterns/burlwood.pat create mode 100644 krita/data/patterns/choc_swirl.pat create mode 100644 krita/data/patterns/corkboard.pat create mode 100644 krita/data/patterns/cracked.pat create mode 100644 krita/data/patterns/crinklepaper.pat create mode 100644 krita/data/patterns/electric.pat create mode 100644 krita/data/patterns/fibers.pat create mode 100644 krita/data/patterns/granite1.pat create mode 100644 krita/data/patterns/ground1.pat create mode 100644 krita/data/patterns/ice.pat create mode 100644 krita/data/patterns/java.pat create mode 100644 krita/data/patterns/leather.pat create mode 100644 krita/data/patterns/leaves.pat create mode 100644 krita/data/patterns/leopard.pat create mode 100644 krita/data/patterns/lightning.pat create mode 100644 krita/data/patterns/marble1.pat create mode 100644 krita/data/patterns/marble2.pat create mode 100644 krita/data/patterns/marble3.pat create mode 100644 krita/data/patterns/nops.pat create mode 100644 krita/data/patterns/paper.pat create mode 100644 krita/data/patterns/parque1.pat create mode 100644 krita/data/patterns/parque2.pat create mode 100644 krita/data/patterns/parque3.pat create mode 100644 krita/data/patterns/pastel.pat create mode 100644 krita/data/patterns/pine.pat create mode 100644 krita/data/patterns/pink_marble.pat create mode 100644 krita/data/patterns/pool.pat create mode 100644 krita/data/patterns/qube1.pat create mode 100644 krita/data/patterns/rain.pat create mode 100644 krita/data/patterns/recessed.pat create mode 100644 krita/data/patterns/redcube.pat create mode 100644 krita/data/patterns/rock.pat create mode 100644 krita/data/patterns/sky.pat create mode 100644 krita/data/patterns/slate.pat create mode 100644 krita/data/patterns/sm_squares.pat create mode 100644 krita/data/patterns/starfield.pat create mode 100644 krita/data/patterns/stone33.pat create mode 100644 krita/data/patterns/terra.pat create mode 100644 krita/data/patterns/walnut.pat create mode 100644 krita/data/patterns/warning.pat create mode 100644 krita/data/patterns/wood1.pat create mode 100644 krita/data/patterns/wood2.pat create mode 100644 krita/data/patterns/wood3.pat create mode 100644 krita/data/patterns/wood4.pat create mode 100644 krita/data/patterns/wood5.pat create mode 100644 krita/data/profiles/Adobe.icm create mode 100644 krita/data/profiles/Apple.icm create mode 100644 krita/data/profiles/CIE.icm create mode 100644 krita/data/profiles/CMY.icm create mode 100644 krita/data/profiles/ColorMatch.icm create mode 100644 krita/data/profiles/Makefile.am create mode 100644 krita/data/profiles/NTSC.icm create mode 100644 krita/data/profiles/PAL.icm create mode 100644 krita/data/profiles/README create mode 100644 krita/data/profiles/SMPTE-C.icm create mode 100644 krita/data/profiles/WideGamut.icm create mode 100644 krita/data/profiles/cmyk.icm create mode 100644 krita/data/profiles/fogra27l.icm create mode 100644 krita/data/profiles/lcmslabi.icm create mode 100644 krita/data/profiles/lcmsxyzi.icm create mode 100644 krita/data/profiles/monoscnr.icm create mode 100644 krita/data/profiles/sRGB.icm create mode 100644 krita/data/profiles/srgb_color_space_profile.icm create mode 100644 krita/data/profiles/srgbspac.icm create mode 100644 krita/data/profiles/tifflab8spac.icm create mode 100644 krita/data/profiles/ycc601.icm create mode 100644 krita/data/profiles/ycc709.icm create mode 100644 krita/data/templates/.directory create mode 100644 krita/design.h create mode 100644 krita/doc/DESIGN.obsolete create mode 100644 krita/doc/Developing Krita Plugins.odt create mode 100644 krita/doc/autoextending paintdevices create mode 100644 krita/doc/background_paper.txt create mode 100644 krita/doc/brush.txt create mode 100644 krita/doc/channels_masks_selections create mode 100644 krita/doc/colordiff create mode 100644 krita/doc/colorspaces.xmi create mode 100644 krita/doc/colorstrategyAPI create mode 100644 krita/doc/controller.xmi create mode 100644 krita/doc/coordinates.txt create mode 100644 krita/doc/dirty.txt create mode 100644 krita/doc/doc-outline create mode 100644 krita/doc/histograms.xmi create mode 100644 krita/doc/hooks create mode 100644 krita/doc/howtofilters.txt create mode 100644 krita/doc/impexp.txt create mode 100644 krita/doc/krita-features create mode 100644 krita/doc/krita.kpr create mode 100644 krita/doc/krita.pdf create mode 100644 krita/doc/krita.xmi create mode 100644 krita/doc/large_files create mode 100644 krita/doc/layersupdatesignals.flw create mode 100644 krita/doc/manual/krita.kwd create mode 100644 krita/doc/oasis create mode 100644 krita/doc/paint_device.txt create mode 100644 krita/doc/palettedesign.txt create mode 100644 krita/doc/plugins.txt create mode 100644 krita/doc/profiles.txt create mode 100644 krita/doc/resolution.txt create mode 100644 krita/doc/scripts/dcop.py create mode 100644 krita/doc/sdk create mode 100644 krita/doc/selections create mode 100644 krita/doc/the preview widget create mode 100644 krita/doc/transform_undo.txt create mode 100644 krita/dtd/Makefile.am create mode 100644 krita/dtd/krita.dtd create mode 100755 krita/extracti18n.pl create mode 100644 krita/krita.desktop create mode 100644 krita/krita.rc create mode 100644 krita/krita_part_init.cc create mode 100644 krita/krita_readonly.rc create mode 100644 krita/kritacolor/Makefile.am create mode 100644 krita/kritacolor/README create mode 100644 krita/kritacolor/TODO create mode 100644 krita/kritacolor/colorspaces/Makefile.am create mode 100644 krita/kritacolor/colorspaces/kis_alpha_colorspace.cc create mode 100644 krita/kritacolor/colorspaces/kis_alpha_colorspace.h create mode 100644 krita/kritacolor/colorspaces/kis_lab_colorspace.cc create mode 100644 krita/kritacolor/colorspaces/kis_lab_colorspace.h create mode 100644 krita/kritacolor/colorspaces/kis_xyz_colorspace.cc create mode 100644 krita/kritacolor/colorspaces/kis_xyz_colorspace.h create mode 100644 krita/kritacolor/kis_abstract_colorspace.cc create mode 100644 krita/kritacolor/kis_abstract_colorspace.h create mode 100644 krita/kritacolor/kis_basic_histogram_producers.cc create mode 100644 krita/kritacolor/kis_basic_histogram_producers.h create mode 100644 krita/kritacolor/kis_channelinfo.h create mode 100644 krita/kritacolor/kis_color.cc create mode 100644 krita/kritacolor/kis_color.h create mode 100644 krita/kritacolor/kis_color_conversions.cc create mode 100644 krita/kritacolor/kis_color_conversions.h create mode 100644 krita/kritacolor/kis_colorspace.cc create mode 100644 krita/kritacolor/kis_colorspace.h create mode 100644 krita/kritacolor/kis_colorspace_factory_registry.cc create mode 100644 krita/kritacolor/kis_colorspace_factory_registry.h create mode 100644 krita/kritacolor/kis_colorspace_iface.cc create mode 100644 krita/kritacolor/kis_colorspace_iface.h create mode 100644 krita/kritacolor/kis_composite_op.cc create mode 100644 krita/kritacolor/kis_composite_op.h create mode 100644 krita/kritacolor/kis_f16half_base_colorspace.cc create mode 100644 krita/kritacolor/kis_f16half_base_colorspace.h create mode 100644 krita/kritacolor/kis_f32_base_colorspace.cc create mode 100644 krita/kritacolor/kis_f32_base_colorspace.h create mode 100644 krita/kritacolor/kis_histogram_producer.cc create mode 100644 krita/kritacolor/kis_histogram_producer.h create mode 100644 krita/kritacolor/kis_profile.cc create mode 100644 krita/kritacolor/kis_profile.h create mode 100644 krita/kritacolor/kis_u16_base_colorspace.cc create mode 100644 krita/kritacolor/kis_u16_base_colorspace.h create mode 100644 krita/kritacolor/kis_u8_base_colorspace.cc create mode 100644 krita/kritacolor/kis_u8_base_colorspace.h create mode 100644 krita/kritacolor/krita_colorspace.desktop create mode 100644 krita/kritacolor/tests/Makefile.am create mode 100644 krita/kritacolor/tests/kis_color_conversions_tester.cpp create mode 100644 krita/kritacolor/tests/kis_color_conversions_tester.h create mode 100644 krita/kritapart.desktop create mode 100644 krita/main.cc create mode 100644 krita/pics/Makefile.am create mode 100644 krita/pics/deletelayer.png create mode 100644 krita/pics/height.png create mode 100644 krita/pics/hi128-app-krita.png create mode 100644 krita/pics/hi16-app-krita.png create mode 100644 krita/pics/hi22-app-krita.png create mode 100644 krita/pics/hi32-app-krita.png create mode 100644 krita/pics/hi48-app-krita.png create mode 100644 krita/pics/hi64-app-krita.png create mode 100644 krita/pics/krita.svg create mode 100644 krita/pics/linked.png create mode 100644 krita/pics/locked.png create mode 100644 krita/pics/lowerlayer.png create mode 100644 krita/pics/newlayer.png create mode 100644 krita/pics/novisible.png create mode 100644 krita/pics/raiselayer.png create mode 100644 krita/pics/shade.png create mode 100644 krita/pics/tablet.png create mode 100644 krita/pics/tool_screenshot.png create mode 100644 krita/pics/unlinked.png create mode 100644 krita/pics/unlocked.png create mode 100644 krita/pics/visible.png create mode 100644 krita/pics/width.png create mode 100644 krita/plugins/Makefile.am create mode 100644 krita/plugins/README create mode 100644 krita/plugins/configure.in.in create mode 100644 krita/plugins/filters/Makefile.am create mode 100644 krita/plugins/filters/blur/Makefile.am create mode 100644 krita/plugins/filters/blur/blur.cc create mode 100644 krita/plugins/filters/blur/blur.h create mode 100644 krita/plugins/filters/blur/kis_blur_filter.cc create mode 100644 krita/plugins/filters/blur/kis_blur_filter.h create mode 100644 krita/plugins/filters/blur/kis_wdg_blur.cc create mode 100644 krita/plugins/filters/blur/kis_wdg_blur.h create mode 100644 krita/plugins/filters/blur/kritablurfilter.desktop create mode 100644 krita/plugins/filters/blur/wdgblur.ui create mode 100644 krita/plugins/filters/bumpmap/Makefile.am create mode 100644 krita/plugins/filters/bumpmap/bumpmap.cc create mode 100644 krita/plugins/filters/bumpmap/bumpmap.h create mode 100644 krita/plugins/filters/bumpmap/kritabumpmapfilter.desktop create mode 100644 krita/plugins/filters/bumpmap/wdgbumpmap.ui create mode 100644 krita/plugins/filters/cimg/.kdev_ignore create mode 100644 krita/plugins/filters/cimg/CImg.h create mode 100644 krita/plugins/filters/cimg/Makefile.am create mode 100644 krita/plugins/filters/cimg/kis_cimg_filter.cc create mode 100644 krita/plugins/filters/cimg/kis_cimg_filter.h create mode 100644 krita/plugins/filters/cimg/kis_cimg_plugin.cc create mode 100644 krita/plugins/filters/cimg/kis_cimg_plugin.h create mode 100644 krita/plugins/filters/cimg/kis_cimgconfig_widget.cc create mode 100644 krita/plugins/filters/cimg/kis_cimgconfig_widget.h create mode 100644 krita/plugins/filters/cimg/kritacimg.desktop create mode 100644 krita/plugins/filters/cimg/wdg_cimg.ui create mode 100644 krita/plugins/filters/colorify/Colorify.cpp create mode 100644 krita/plugins/filters/colorify/Colorify.h create mode 100644 krita/plugins/filters/colorify/KisWdgColorify.cpp create mode 100644 krita/plugins/filters/colorify/KisWdgColorify.h create mode 100644 krita/plugins/filters/colorify/Makefile.am create mode 100644 krita/plugins/filters/colorify/WdgColorifyBase.ui create mode 100644 krita/plugins/filters/colorify/kritacolorifyfilter.desktop create mode 100644 krita/plugins/filters/colors/Makefile.am create mode 100644 krita/plugins/filters/colors/colors.cc create mode 100644 krita/plugins/filters/colors/colors.h create mode 100644 krita/plugins/filters/colors/kis_color_to_alpha.cc create mode 100644 krita/plugins/filters/colors/kis_color_to_alpha.h create mode 100644 krita/plugins/filters/colors/kis_minmax_filters.cc create mode 100644 krita/plugins/filters/colors/kis_minmax_filters.h create mode 100644 krita/plugins/filters/colors/kis_wdg_color_to_alpha.cc create mode 100644 krita/plugins/filters/colors/kis_wdg_color_to_alpha.h create mode 100644 krita/plugins/filters/colors/kritaextensioncolorsfilters.desktop create mode 100644 krita/plugins/filters/colors/wdgcolortoalphabase.ui create mode 100644 krita/plugins/filters/colorsfilters/Makefile.am create mode 100644 krita/plugins/filters/colorsfilters/colorsfilters.cc create mode 100644 krita/plugins/filters/colorsfilters/colorsfilters.h create mode 100644 krita/plugins/filters/colorsfilters/kis_brightness_contrast_filter.cc create mode 100644 krita/plugins/filters/colorsfilters/kis_brightness_contrast_filter.h create mode 100644 krita/plugins/filters/colorsfilters/kis_perchannel_filter.cc create mode 100644 krita/plugins/filters/colorsfilters/kis_perchannel_filter.h create mode 100644 krita/plugins/filters/colorsfilters/kritacolorsfilter.desktop create mode 100644 krita/plugins/filters/colorsfilters/wdg_brightness_contrast.ui create mode 100644 krita/plugins/filters/colorsfilters/wdg_perchannel.ui create mode 100644 krita/plugins/filters/convolutionfilters/Makefile.am create mode 100644 krita/plugins/filters/convolutionfilters/convolutionfilters.cc create mode 100644 krita/plugins/filters/convolutionfilters/convolutionfilters.h create mode 100644 krita/plugins/filters/convolutionfilters/kis_convolution_filter.cc create mode 100644 krita/plugins/filters/convolutionfilters/kis_convolution_filter.h create mode 100644 krita/plugins/filters/convolutionfilters/kis_custom_convolution_filter.cc create mode 100644 krita/plugins/filters/convolutionfilters/kis_custom_convolution_filter.h create mode 100644 krita/plugins/filters/convolutionfilters/kis_custom_convolution_filter_configuration_base_widget.ui create mode 100644 krita/plugins/filters/convolutionfilters/kis_custom_convolution_filter_configuration_widget.cc create mode 100644 krita/plugins/filters/convolutionfilters/kis_custom_convolution_filter_configuration_widget.h create mode 100644 krita/plugins/filters/convolutionfilters/kritaconvolutionfilters.desktop create mode 100644 krita/plugins/filters/cubismfilter/Makefile.am create mode 100644 krita/plugins/filters/cubismfilter/kis_cubism_filter.cc create mode 100644 krita/plugins/filters/cubismfilter/kis_cubism_filter.h create mode 100644 krita/plugins/filters/cubismfilter/kis_cubism_filter_plugin.cc create mode 100644 krita/plugins/filters/cubismfilter/kis_cubism_filter_plugin.h create mode 100644 krita/plugins/filters/cubismfilter/kis_polygon.cc create mode 100644 krita/plugins/filters/cubismfilter/kis_polygon.h create mode 100644 krita/plugins/filters/cubismfilter/kritacubismfilter.desktop create mode 100644 krita/plugins/filters/embossfilter/Makefile.am create mode 100644 krita/plugins/filters/embossfilter/kis_emboss_filter.cc create mode 100644 krita/plugins/filters/embossfilter/kis_emboss_filter.h create mode 100644 krita/plugins/filters/embossfilter/kis_emboss_filter_plugin.cc create mode 100644 krita/plugins/filters/embossfilter/kis_emboss_filter_plugin.h create mode 100644 krita/plugins/filters/embossfilter/kritaembossfilter.desktop create mode 100644 krita/plugins/filters/example/Makefile.am create mode 100644 krita/plugins/filters/example/example.cc create mode 100644 krita/plugins/filters/example/example.h create mode 100644 krita/plugins/filters/example/kritaexample.desktop create mode 100644 krita/plugins/filters/fastcolortransfer/Makefile.am create mode 100644 krita/plugins/filters/fastcolortransfer/fastcolortransfer.cc create mode 100644 krita/plugins/filters/fastcolortransfer/fastcolortransfer.h create mode 100644 krita/plugins/filters/fastcolortransfer/kis_wdg_fastcolortransfer.cpp create mode 100644 krita/plugins/filters/fastcolortransfer/kis_wdg_fastcolortransfer.h create mode 100644 krita/plugins/filters/fastcolortransfer/kritafastcolortransfer.desktop create mode 100644 krita/plugins/filters/fastcolortransfer/wdgfastcolortransfer.ui create mode 100644 krita/plugins/filters/halftone/kis_halftone.cpp create mode 100644 krita/plugins/filters/halftone/kis_halftone.h create mode 100644 krita/plugins/filters/imageenhancement/Makefile.am create mode 100644 krita/plugins/filters/imageenhancement/imageenhancement.cpp create mode 100644 krita/plugins/filters/imageenhancement/imageenhancement.h create mode 100644 krita/plugins/filters/imageenhancement/kis_simple_noise_reducer.cpp create mode 100644 krita/plugins/filters/imageenhancement/kis_simple_noise_reducer.h create mode 100644 krita/plugins/filters/imageenhancement/kis_wavelet_noise_reduction.cpp create mode 100644 krita/plugins/filters/imageenhancement/kis_wavelet_noise_reduction.h create mode 100644 krita/plugins/filters/imageenhancement/kritaimageenhancement.desktop create mode 100644 krita/plugins/filters/lenscorrectionfilter/Makefile.am create mode 100644 krita/plugins/filters/lenscorrectionfilter/kis_wdg_lens_correction.cpp create mode 100644 krita/plugins/filters/lenscorrectionfilter/kis_wdg_lens_correction.h create mode 100644 krita/plugins/filters/lenscorrectionfilter/kritalenscorrectionfilter.desktop create mode 100644 krita/plugins/filters/lenscorrectionfilter/lenscorrectionfilter.cc create mode 100644 krita/plugins/filters/lenscorrectionfilter/lenscorrectionfilter.h create mode 100644 krita/plugins/filters/lenscorrectionfilter/wdglenscorrectionoptions.ui create mode 100644 krita/plugins/filters/levelfilter/Makefile.am create mode 100644 krita/plugins/filters/levelfilter/kgradientslider.cc create mode 100644 krita/plugins/filters/levelfilter/kgradientslider.h create mode 100644 krita/plugins/filters/levelfilter/kis_level_filter.cc create mode 100644 krita/plugins/filters/levelfilter/kis_level_filter.h create mode 100644 krita/plugins/filters/levelfilter/kritalevelfilter.desktop create mode 100644 krita/plugins/filters/levelfilter/levelfilter.cc create mode 100644 krita/plugins/filters/levelfilter/levelfilter.h create mode 100644 krita/plugins/filters/levelfilter/wdg_level.ui create mode 100644 krita/plugins/filters/noisefilter/Makefile.am create mode 100644 krita/plugins/filters/noisefilter/kis_wdg_noise.cpp create mode 100644 krita/plugins/filters/noisefilter/kis_wdg_noise.h create mode 100644 krita/plugins/filters/noisefilter/kritanoisefilter.desktop create mode 100644 krita/plugins/filters/noisefilter/noisefilter.cc create mode 100644 krita/plugins/filters/noisefilter/noisefilter.h create mode 100644 krita/plugins/filters/noisefilter/wdgnoiseoptions.ui create mode 100644 krita/plugins/filters/oilpaintfilter/Makefile.am create mode 100644 krita/plugins/filters/oilpaintfilter/kis_oilpaint_filter.cc create mode 100644 krita/plugins/filters/oilpaintfilter/kis_oilpaint_filter.h create mode 100644 krita/plugins/filters/oilpaintfilter/kis_oilpaint_filter_plugin.cc create mode 100644 krita/plugins/filters/oilpaintfilter/kis_oilpaint_filter_plugin.h create mode 100644 krita/plugins/filters/oilpaintfilter/kritaoilpaintfilter.desktop create mode 100644 krita/plugins/filters/pixelizefilter/Makefile.am create mode 100644 krita/plugins/filters/pixelizefilter/kis_pixelize_filter.cc create mode 100644 krita/plugins/filters/pixelizefilter/kis_pixelize_filter.h create mode 100644 krita/plugins/filters/pixelizefilter/kis_pixelize_filter_plugin.cc create mode 100644 krita/plugins/filters/pixelizefilter/kis_pixelize_filter_plugin.h create mode 100644 krita/plugins/filters/pixelizefilter/kritapixelizefilter.desktop create mode 100644 krita/plugins/filters/raindropsfilter/Makefile.am create mode 100644 krita/plugins/filters/raindropsfilter/kis_raindrops_filter.cc create mode 100644 krita/plugins/filters/raindropsfilter/kis_raindrops_filter.h create mode 100644 krita/plugins/filters/raindropsfilter/kis_raindrops_filter_plugin.cc create mode 100644 krita/plugins/filters/raindropsfilter/kis_raindrops_filter_plugin.h create mode 100644 krita/plugins/filters/raindropsfilter/kritaraindropsfilter.desktop create mode 100644 krita/plugins/filters/randompickfilter/Makefile.am create mode 100644 krita/plugins/filters/randompickfilter/kis_wdg_random_pick.cpp create mode 100644 krita/plugins/filters/randompickfilter/kis_wdg_random_pick.h create mode 100644 krita/plugins/filters/randompickfilter/kritarandompickfilter.desktop create mode 100644 krita/plugins/filters/randompickfilter/randompickfilter.cc create mode 100644 krita/plugins/filters/randompickfilter/randompickfilter.h create mode 100644 krita/plugins/filters/randompickfilter/wdgrandompickoptions.ui create mode 100644 krita/plugins/filters/roundcorners/Makefile.am create mode 100644 krita/plugins/filters/roundcorners/kis_round_corners_filter.cc create mode 100644 krita/plugins/filters/roundcorners/kis_round_corners_filter.h create mode 100644 krita/plugins/filters/roundcorners/kis_round_corners_filter_plugin.cc create mode 100644 krita/plugins/filters/roundcorners/kis_round_corners_filter_plugin.h create mode 100644 krita/plugins/filters/roundcorners/kritaroundcornersfilter.desktop create mode 100644 krita/plugins/filters/smalltilesfilter/Makefile.am create mode 100644 krita/plugins/filters/smalltilesfilter/kis_small_tiles_filter.cc create mode 100644 krita/plugins/filters/smalltilesfilter/kis_small_tiles_filter.h create mode 100644 krita/plugins/filters/smalltilesfilter/kis_small_tiles_filter_plugin.cc create mode 100644 krita/plugins/filters/smalltilesfilter/kis_small_tiles_filter_plugin.h create mode 100644 krita/plugins/filters/smalltilesfilter/kritasmalltilesfilter.desktop create mode 100644 krita/plugins/filters/sobelfilter/Makefile.am create mode 100644 krita/plugins/filters/sobelfilter/kis_sobel_filter.cc create mode 100644 krita/plugins/filters/sobelfilter/kis_sobel_filter.h create mode 100644 krita/plugins/filters/sobelfilter/kis_sobel_filter_plugin.cc create mode 100644 krita/plugins/filters/sobelfilter/kis_sobel_filter_plugin.h create mode 100644 krita/plugins/filters/sobelfilter/kritasobelfilter.desktop create mode 100644 krita/plugins/filters/threadtest/Makefile.am create mode 100644 krita/plugins/filters/threadtest/kritathreadtest.desktop create mode 100644 krita/plugins/filters/threadtest/threadtest.cc create mode 100644 krita/plugins/filters/threadtest/threadtest.h create mode 100644 krita/plugins/filters/unsharp/Makefile.am create mode 100644 krita/plugins/filters/unsharp/kis_unsharp_filter.cc create mode 100644 krita/plugins/filters/unsharp/kis_unsharp_filter.h create mode 100644 krita/plugins/filters/unsharp/kis_wdg_unsharp.cc create mode 100644 krita/plugins/filters/unsharp/kis_wdg_unsharp.h create mode 100644 krita/plugins/filters/unsharp/kritaunsharpfilter.desktop create mode 100644 krita/plugins/filters/unsharp/unsharp.cc create mode 100644 krita/plugins/filters/unsharp/unsharp.h create mode 100644 krita/plugins/filters/unsharp/wdgunsharp.ui create mode 100644 krita/plugins/filters/wavefilter/Makefile.am create mode 100644 krita/plugins/filters/wavefilter/kis_wdg_wave.cpp create mode 100644 krita/plugins/filters/wavefilter/kis_wdg_wave.h create mode 100644 krita/plugins/filters/wavefilter/kritawavefilter.desktop create mode 100644 krita/plugins/filters/wavefilter/wavefilter.cc create mode 100644 krita/plugins/filters/wavefilter/wavefilter.h create mode 100644 krita/plugins/filters/wavefilter/wdgwaveoptions.ui create mode 100644 krita/plugins/paintops/Makefile.am create mode 100644 krita/plugins/paintops/defaultpaintops/Makefile.am create mode 100644 krita/plugins/paintops/defaultpaintops/README create mode 100644 krita/plugins/paintops/defaultpaintops/airbrush.png create mode 100644 krita/plugins/paintops/defaultpaintops/defaultpaintops_plugin.cc create mode 100644 krita/plugins/paintops/defaultpaintops/defaultpaintops_plugin.h create mode 100644 krita/plugins/paintops/defaultpaintops/eraser.png create mode 100644 krita/plugins/paintops/defaultpaintops/kis_airbrushop.cc create mode 100644 krita/plugins/paintops/defaultpaintops/kis_airbrushop.h create mode 100644 krita/plugins/paintops/defaultpaintops/kis_brushop.cc create mode 100644 krita/plugins/paintops/defaultpaintops/kis_brushop.h create mode 100644 krita/plugins/paintops/defaultpaintops/kis_convolveop.cc create mode 100644 krita/plugins/paintops/defaultpaintops/kis_convolveop.h create mode 100644 krita/plugins/paintops/defaultpaintops/kis_dlgbrushcurvecontrol.ui create mode 100644 krita/plugins/paintops/defaultpaintops/kis_duplicateop.cc create mode 100644 krita/plugins/paintops/defaultpaintops/kis_duplicateop.h create mode 100644 krita/plugins/paintops/defaultpaintops/kis_eraseop.cc create mode 100644 krita/plugins/paintops/defaultpaintops/kis_eraseop.h create mode 100644 krita/plugins/paintops/defaultpaintops/kis_penop.cc create mode 100644 krita/plugins/paintops/defaultpaintops/kis_penop.h create mode 100644 krita/plugins/paintops/defaultpaintops/kis_smudgeop.cc create mode 100644 krita/plugins/paintops/defaultpaintops/kis_smudgeop.h create mode 100644 krita/plugins/paintops/defaultpaintops/kritadefaultpaintops.desktop create mode 100644 krita/plugins/paintops/defaultpaintops/paintbrush.png create mode 100644 krita/plugins/paintops/defaultpaintops/pencil.png create mode 100644 krita/plugins/paintops/defaultpaintops/src/README create mode 100644 krita/plugins/paintops/defaultpaintops/src/pencil_01.svg create mode 100644 krita/plugins/paintops/defaultpaintops/src/pencil_jonathan_dietrich_01.svg create mode 100644 krita/plugins/paintops/defaultpaintops/src/pennello_mauro_olivo_01.svg create mode 100644 krita/plugins/tools/Makefile.am create mode 100644 krita/plugins/tools/defaulttools/Makefile.am create mode 100644 krita/plugins/tools/defaulttools/closedhand_cursor.xpm create mode 100644 krita/plugins/tools/defaulttools/default_tools.cc create mode 100644 krita/plugins/tools/defaulttools/default_tools.h create mode 100644 krita/plugins/tools/defaulttools/kis_tool_brush.cc create mode 100644 krita/plugins/tools/defaulttools/kis_tool_brush.h create mode 100644 krita/plugins/tools/defaulttools/kis_tool_colorpicker.cc create mode 100644 krita/plugins/tools/defaulttools/kis_tool_colorpicker.h create mode 100644 krita/plugins/tools/defaulttools/kis_tool_duplicate.cc create mode 100644 krita/plugins/tools/defaulttools/kis_tool_duplicate.h create mode 100644 krita/plugins/tools/defaulttools/kis_tool_ellipse.cc create mode 100644 krita/plugins/tools/defaulttools/kis_tool_ellipse.h create mode 100644 krita/plugins/tools/defaulttools/kis_tool_fill.cc create mode 100644 krita/plugins/tools/defaulttools/kis_tool_fill.h create mode 100644 krita/plugins/tools/defaulttools/kis_tool_gradient.cc create mode 100644 krita/plugins/tools/defaulttools/kis_tool_gradient.h create mode 100644 krita/plugins/tools/defaulttools/kis_tool_line.cc create mode 100644 krita/plugins/tools/defaulttools/kis_tool_line.h create mode 100644 krita/plugins/tools/defaulttools/kis_tool_move.cc create mode 100644 krita/plugins/tools/defaulttools/kis_tool_move.h create mode 100644 krita/plugins/tools/defaulttools/kis_tool_pan.cc create mode 100644 krita/plugins/tools/defaulttools/kis_tool_pan.h create mode 100644 krita/plugins/tools/defaulttools/kis_tool_rectangle.cc create mode 100644 krita/plugins/tools/defaulttools/kis_tool_rectangle.h create mode 100644 krita/plugins/tools/defaulttools/kis_tool_text.cc create mode 100644 krita/plugins/tools/defaulttools/kis_tool_text.h create mode 100644 krita/plugins/tools/defaulttools/kis_tool_zoom.cc create mode 100644 krita/plugins/tools/defaulttools/kis_tool_zoom.h create mode 100644 krita/plugins/tools/defaulttools/kritadefaulttools.desktop create mode 100644 krita/plugins/tools/defaulttools/openhand_cursor.xpm create mode 100644 krita/plugins/tools/defaulttools/tool_color_fill.png create mode 100644 krita/plugins/tools/defaulttools/tool_colorpicker.png create mode 100644 krita/plugins/tools/defaulttools/tool_duplicate.png create mode 100644 krita/plugins/tools/defaulttools/tool_duplicate_cursor.png create mode 100644 krita/plugins/tools/defaulttools/tool_ellipse.png create mode 100644 krita/plugins/tools/defaulttools/tool_ellipse_cursor.png create mode 100644 krita/plugins/tools/defaulttools/tool_fill_cursor.png create mode 100644 krita/plugins/tools/defaulttools/tool_freehand.png create mode 100644 krita/plugins/tools/defaulttools/tool_freehand_cursor.png create mode 100644 krita/plugins/tools/defaulttools/tool_gradient.png create mode 100644 krita/plugins/tools/defaulttools/tool_gradient_cursor.png create mode 100644 krita/plugins/tools/defaulttools/tool_line.png create mode 100644 krita/plugins/tools/defaulttools/tool_line_cursor.png create mode 100644 krita/plugins/tools/defaulttools/tool_move.png create mode 100644 krita/plugins/tools/defaulttools/tool_pan.png create mode 100644 krita/plugins/tools/defaulttools/tool_rectangle.png create mode 100644 krita/plugins/tools/defaulttools/tool_rectangle_cursor.png create mode 100644 krita/plugins/tools/defaulttools/tool_text.png create mode 100644 krita/plugins/tools/defaulttools/tool_text_cursor.png create mode 100644 krita/plugins/tools/defaulttools/tool_zoom.png create mode 100644 krita/plugins/tools/defaulttools/tool_zoom_minus_cursor.png create mode 100644 krita/plugins/tools/defaulttools/tool_zoom_plus_cursor.png create mode 100644 krita/plugins/tools/defaulttools/wdgcolorpicker.ui create mode 100644 krita/plugins/tools/selectiontools/Makefile.am create mode 100644 krita/plugins/tools/selectiontools/kis_tool_move_selection.cc create mode 100644 krita/plugins/tools/selectiontools/kis_tool_move_selection.h create mode 100644 krita/plugins/tools/selectiontools/kis_tool_select_brush.cc create mode 100644 krita/plugins/tools/selectiontools/kis_tool_select_brush.h create mode 100644 krita/plugins/tools/selectiontools/kis_tool_select_contiguous.cc create mode 100644 krita/plugins/tools/selectiontools/kis_tool_select_contiguous.h create mode 100644 krita/plugins/tools/selectiontools/kis_tool_select_elliptical.cc create mode 100644 krita/plugins/tools/selectiontools/kis_tool_select_elliptical.h create mode 100644 krita/plugins/tools/selectiontools/kis_tool_select_eraser.cc create mode 100644 krita/plugins/tools/selectiontools/kis_tool_select_eraser.h create mode 100644 krita/plugins/tools/selectiontools/kis_tool_select_outline.cc create mode 100644 krita/plugins/tools/selectiontools/kis_tool_select_outline.h create mode 100644 krita/plugins/tools/selectiontools/kis_tool_select_polygonal.cc create mode 100644 krita/plugins/tools/selectiontools/kis_tool_select_polygonal.h create mode 100644 krita/plugins/tools/selectiontools/kis_tool_select_rectangular.cc create mode 100644 krita/plugins/tools/selectiontools/kis_tool_select_rectangular.h create mode 100644 krita/plugins/tools/selectiontools/kritaselectiontools.desktop create mode 100644 krita/plugins/tools/selectiontools/selection_tools.cc create mode 100644 krita/plugins/tools/selectiontools/selection_tools.h create mode 100644 krita/plugins/tools/selectiontools/tool_brush_selection.png create mode 100644 krita/plugins/tools/selectiontools/tool_brush_selection.svg create mode 100644 krita/plugins/tools/selectiontools/tool_brush_selection_cursor.png create mode 100644 krita/plugins/tools/selectiontools/tool_contiguous_selection.png create mode 100644 krita/plugins/tools/selectiontools/tool_contiguous_selection_cursor.png create mode 100644 krita/plugins/tools/selectiontools/tool_elliptical_selection.png create mode 100644 krita/plugins/tools/selectiontools/tool_elliptical_selection.svg create mode 100644 krita/plugins/tools/selectiontools/tool_elliptical_selection_cursor.png create mode 100644 krita/plugins/tools/selectiontools/tool_eraser_selection.png create mode 100644 krita/plugins/tools/selectiontools/tool_eraser_selection.svg create mode 100644 krita/plugins/tools/selectiontools/tool_eraser_selection_cursor.png create mode 100644 krita/plugins/tools/selectiontools/tool_outline_selection.png create mode 100644 krita/plugins/tools/selectiontools/tool_outline_selection.svg create mode 100644 krita/plugins/tools/selectiontools/tool_outline_selection_cursor.png create mode 100644 krita/plugins/tools/selectiontools/tool_polygonal_selection.png create mode 100644 krita/plugins/tools/selectiontools/tool_polygonal_selection.svg create mode 100644 krita/plugins/tools/selectiontools/tool_polygonal_selection_cursor.png create mode 100644 krita/plugins/tools/selectiontools/tool_rect_selection.png create mode 100644 krita/plugins/tools/selectiontools/tool_rect_selection.svg create mode 100644 krita/plugins/tools/selectiontools/tool_rectangular_selection_cursor.png create mode 100644 krita/plugins/tools/tool_crop/Makefile.am create mode 100644 krita/plugins/tools/tool_crop/kis_tool_crop.cc create mode 100644 krita/plugins/tools/tool_crop/kis_tool_crop.h create mode 100644 krita/plugins/tools/tool_crop/kritatoolcrop.desktop create mode 100644 krita/plugins/tools/tool_crop/tool_crop.cc create mode 100644 krita/plugins/tools/tool_crop/tool_crop.h create mode 100644 krita/plugins/tools/tool_crop/tool_crop.png create mode 100644 krita/plugins/tools/tool_crop/tool_crop_cursor.png create mode 100644 krita/plugins/tools/tool_crop/wdg_tool_crop.ui create mode 100644 krita/plugins/tools/tool_curves/Makefile.am create mode 100644 krita/plugins/tools/tool_curves/kis_curve_framework.cc create mode 100644 krita/plugins/tools/tool_curves/kis_curve_framework.h create mode 100644 krita/plugins/tools/tool_curves/kis_tool_bezier.cc create mode 100644 krita/plugins/tools/tool_curves/kis_tool_bezier.h create mode 100644 krita/plugins/tools/tool_curves/kis_tool_bezier_paint.cc create mode 100644 krita/plugins/tools/tool_curves/kis_tool_bezier_paint.h create mode 100644 krita/plugins/tools/tool_curves/kis_tool_bezier_select.cc create mode 100644 krita/plugins/tools/tool_curves/kis_tool_bezier_select.h create mode 100644 krita/plugins/tools/tool_curves/kis_tool_curve.cc create mode 100644 krita/plugins/tools/tool_curves/kis_tool_curve.h create mode 100644 krita/plugins/tools/tool_curves/kis_tool_example.cc create mode 100644 krita/plugins/tools/tool_curves/kis_tool_example.h create mode 100644 krita/plugins/tools/tool_curves/kis_tool_moutline.cc create mode 100644 krita/plugins/tools/tool_curves/kis_tool_moutline.h create mode 100644 krita/plugins/tools/tool_curves/kritatoolcurves.desktop create mode 100644 krita/plugins/tools/tool_curves/tool_bezier_cursor.png create mode 100644 krita/plugins/tools/tool_curves/tool_bezier_paint.png create mode 100644 krita/plugins/tools/tool_curves/tool_bezier_select.png create mode 100644 krita/plugins/tools/tool_curves/tool_curve_dragging.png create mode 100644 krita/plugins/tools/tool_curves/tool_curves.cc create mode 100644 krita/plugins/tools/tool_curves/tool_curves.h create mode 100644 krita/plugins/tools/tool_curves/tool_example.png create mode 100644 krita/plugins/tools/tool_curves/tool_example_cursor.png create mode 100644 krita/plugins/tools/tool_curves/tool_moutline.png create mode 100644 krita/plugins/tools/tool_curves/tool_moutline_cursor.png create mode 100644 krita/plugins/tools/tool_curves/tool_moutline_editing.png create mode 100644 krita/plugins/tools/tool_curves/wdg_tool_example.ui create mode 100644 krita/plugins/tools/tool_filter/Makefile.am create mode 100644 krita/plugins/tools/tool_filter/kis_filterop.cc create mode 100644 krita/plugins/tools/tool_filter/kis_filterop.h create mode 100644 krita/plugins/tools/tool_filter/kis_tool_filter.cc create mode 100644 krita/plugins/tools/tool_filter/kis_tool_filter.h create mode 100644 krita/plugins/tools/tool_filter/kritatoolfilter.desktop create mode 100644 krita/plugins/tools/tool_filter/tool_filter.cc create mode 100644 krita/plugins/tools/tool_filter/tool_filter.h create mode 100644 krita/plugins/tools/tool_filter/tool_filter.png create mode 100644 krita/plugins/tools/tool_filter/tool_filter.svg create mode 100644 krita/plugins/tools/tool_filter/tool_filter_cursor.png create mode 100644 krita/plugins/tools/tool_perspectivegrid/Makefile.am create mode 100644 krita/plugins/tools/tool_perspectivegrid/kis_tool_perspectivegrid.cc create mode 100644 krita/plugins/tools/tool_perspectivegrid/kis_tool_perspectivegrid.h create mode 100644 krita/plugins/tools/tool_perspectivegrid/kritatoolperspectivegrid.desktop create mode 100644 krita/plugins/tools/tool_perspectivegrid/tool_perspectivegrid.cc create mode 100644 krita/plugins/tools/tool_perspectivegrid/tool_perspectivegrid.h create mode 100644 krita/plugins/tools/tool_perspectivegrid/tool_perspectivegrid.png create mode 100644 krita/plugins/tools/tool_perspectivegrid/tool_perspectivegrid.svg create mode 100644 krita/plugins/tools/tool_perspectivetransform/Makefile.am create mode 100644 krita/plugins/tools/tool_perspectivetransform/kis_tool_perspectivetransform.cc create mode 100644 krita/plugins/tools/tool_perspectivetransform/kis_tool_perspectivetransform.h create mode 100644 krita/plugins/tools/tool_perspectivetransform/kritatoolperspectivetransform.desktop create mode 100644 krita/plugins/tools/tool_perspectivetransform/tool_perspectivetransform.cc create mode 100644 krita/plugins/tools/tool_perspectivetransform/tool_perspectivetransform.h create mode 100644 krita/plugins/tools/tool_perspectivetransform/tool_perspectivetransform.png create mode 100644 krita/plugins/tools/tool_perspectivetransform/tool_perspectivetransform.svg create mode 100644 krita/plugins/tools/tool_polygon/Makefile.am create mode 100644 krita/plugins/tools/tool_polygon/kis_tool_polygon.cc create mode 100644 krita/plugins/tools/tool_polygon/kis_tool_polygon.h create mode 100644 krita/plugins/tools/tool_polygon/kritatoolpolygon.desktop create mode 100644 krita/plugins/tools/tool_polygon/tool_polygon.cc create mode 100644 krita/plugins/tools/tool_polygon/tool_polygon.h create mode 100644 krita/plugins/tools/tool_polygon/tool_polygon.png create mode 100644 krita/plugins/tools/tool_polygon/tool_polygon_cursor.png create mode 100644 krita/plugins/tools/tool_polyline/Makefile.am create mode 100644 krita/plugins/tools/tool_polyline/kis_tool_polyline.cc create mode 100644 krita/plugins/tools/tool_polyline/kis_tool_polyline.h create mode 100644 krita/plugins/tools/tool_polyline/kritatoolpolyline.desktop create mode 100644 krita/plugins/tools/tool_polyline/polyline.png create mode 100644 krita/plugins/tools/tool_polyline/tool_polyline.cc create mode 100644 krita/plugins/tools/tool_polyline/tool_polyline.h create mode 100644 krita/plugins/tools/tool_polyline/tool_polyline_cursor.png create mode 100644 krita/plugins/tools/tool_selectsimilar/Makefile.am create mode 100644 krita/plugins/tools/tool_selectsimilar/kis_tool_selectsimilar.cc create mode 100644 krita/plugins/tools/tool_selectsimilar/kis_tool_selectsimilar.h create mode 100644 krita/plugins/tools/tool_selectsimilar/kritatoolselectsimilar.desktop create mode 100644 krita/plugins/tools/tool_selectsimilar/selectsimilar.cc create mode 100644 krita/plugins/tools/tool_selectsimilar/selectsimilar.h create mode 100644 krita/plugins/tools/tool_selectsimilar/tool_similar_selection.png create mode 100644 krita/plugins/tools/tool_selectsimilar/tool_similar_selection.svg create mode 100644 krita/plugins/tools/tool_selectsimilar/tool_similar_selection_minus_cursor.png create mode 100644 krita/plugins/tools/tool_selectsimilar/tool_similar_selection_plus_cursor.png create mode 100644 krita/plugins/tools/tool_star/Makefile.am create mode 100644 krita/plugins/tools/tool_star/kis_tool_star.cc create mode 100644 krita/plugins/tools/tool_star/kis_tool_star.h create mode 100644 krita/plugins/tools/tool_star/kritatoolstar.desktop create mode 100644 krita/plugins/tools/tool_star/tool_star.cc create mode 100644 krita/plugins/tools/tool_star/tool_star.h create mode 100644 krita/plugins/tools/tool_star/tool_star.png create mode 100644 krita/plugins/tools/tool_star/tool_star_cursor.png create mode 100644 krita/plugins/tools/tool_star/wdg_tool_star.ui create mode 100644 krita/plugins/tools/tool_transform/Makefile.am create mode 100644 krita/plugins/tools/tool_transform/kis_tool_transform.cc create mode 100644 krita/plugins/tools/tool_transform/kis_tool_transform.h create mode 100644 krita/plugins/tools/tool_transform/kritatooltransform.desktop create mode 100644 krita/plugins/tools/tool_transform/rotate_cursor.xpm create mode 100644 krita/plugins/tools/tool_transform/tool_transform.cc create mode 100644 krita/plugins/tools/tool_transform/tool_transform.h create mode 100644 krita/plugins/tools/tool_transform/tool_transform.png create mode 100644 krita/plugins/tools/tool_transform/wdg_tool_transform.ui create mode 100644 krita/plugins/viewplugins/Makefile.am create mode 100644 krita/plugins/viewplugins/colorrange/Makefile.am create mode 100644 krita/plugins/viewplugins/colorrange/colorrange.cc create mode 100644 krita/plugins/viewplugins/colorrange/colorrange.h create mode 100644 krita/plugins/viewplugins/colorrange/colorrange.rc create mode 100644 krita/plugins/viewplugins/colorrange/dlg_colorrange.cc create mode 100644 krita/plugins/viewplugins/colorrange/dlg_colorrange.h create mode 100644 krita/plugins/viewplugins/colorrange/kritacolorrange.desktop create mode 100644 krita/plugins/viewplugins/colorrange/wdg_colorrange.ui create mode 100644 krita/plugins/viewplugins/colorspaceconversion/Makefile.am create mode 100644 krita/plugins/viewplugins/colorspaceconversion/colorspaceconversion.cc create mode 100644 krita/plugins/viewplugins/colorspaceconversion/colorspaceconversion.h create mode 100644 krita/plugins/viewplugins/colorspaceconversion/colorspaceconversion.rc create mode 100644 krita/plugins/viewplugins/colorspaceconversion/dlg_colorspaceconversion.cc create mode 100644 krita/plugins/viewplugins/colorspaceconversion/dlg_colorspaceconversion.h create mode 100644 krita/plugins/viewplugins/colorspaceconversion/kritacolorspaceconversion.desktop create mode 100644 krita/plugins/viewplugins/colorspaceconversion/wdgconvertcolorspace.ui create mode 100644 krita/plugins/viewplugins/dropshadow/Makefile.am create mode 100644 krita/plugins/viewplugins/dropshadow/dlg_dropshadow.cc create mode 100644 krita/plugins/viewplugins/dropshadow/dlg_dropshadow.h create mode 100644 krita/plugins/viewplugins/dropshadow/dropshadow.rc create mode 100644 krita/plugins/viewplugins/dropshadow/kis_dropshadow.cc create mode 100644 krita/plugins/viewplugins/dropshadow/kis_dropshadow.h create mode 100644 krita/plugins/viewplugins/dropshadow/kis_dropshadow_plugin.cc create mode 100644 krita/plugins/viewplugins/dropshadow/kis_dropshadow_plugin.h create mode 100644 krita/plugins/viewplugins/dropshadow/kritadropshadow.desktop create mode 100644 krita/plugins/viewplugins/dropshadow/wdg_dropshadow.ui create mode 100644 krita/plugins/viewplugins/filtersgallery/Makefile.am create mode 100644 krita/plugins/viewplugins/filtersgallery/filters_gallery.cc create mode 100644 krita/plugins/viewplugins/filtersgallery/filters_gallery.h create mode 100644 krita/plugins/viewplugins/filtersgallery/kis_dlg_filtersgallery.cc create mode 100644 krita/plugins/viewplugins/filtersgallery/kis_dlg_filtersgallery.h create mode 100644 krita/plugins/viewplugins/filtersgallery/kis_wdg_filtersgallery.ui create mode 100644 krita/plugins/viewplugins/filtersgallery/kritafiltersgallery.desktop create mode 100644 krita/plugins/viewplugins/filtersgallery/kritafiltersgallery.rc create mode 100644 krita/plugins/viewplugins/histogram/Makefile.am create mode 100644 krita/plugins/viewplugins/histogram/dlg_histogram.cc create mode 100644 krita/plugins/viewplugins/histogram/dlg_histogram.h create mode 100644 krita/plugins/viewplugins/histogram/histogram.cc create mode 100644 krita/plugins/viewplugins/histogram/histogram.h create mode 100644 krita/plugins/viewplugins/histogram/histogram.rc create mode 100644 krita/plugins/viewplugins/histogram/kis_histogram_widget.cc create mode 100644 krita/plugins/viewplugins/histogram/kis_histogram_widget.h create mode 100644 krita/plugins/viewplugins/histogram/kritahistogram.desktop create mode 100644 krita/plugins/viewplugins/histogram/wdghistogram.ui create mode 100644 krita/plugins/viewplugins/histogram_docker/Makefile.am create mode 100644 krita/plugins/viewplugins/histogram_docker/histogramdocker.cc create mode 100644 krita/plugins/viewplugins/histogram_docker/histogramdocker.h create mode 100644 krita/plugins/viewplugins/histogram_docker/kis_accumulating_producer.cc create mode 100644 krita/plugins/viewplugins/histogram_docker/kis_accumulating_producer.h create mode 100644 krita/plugins/viewplugins/histogram_docker/kis_cachedhistogram.cc create mode 100644 krita/plugins/viewplugins/histogram_docker/kis_cachedhistogram.h create mode 100644 krita/plugins/viewplugins/histogram_docker/kis_imagerasteredcache.cc create mode 100644 krita/plugins/viewplugins/histogram_docker/kis_imagerasteredcache.h create mode 100644 krita/plugins/viewplugins/histogram_docker/kritahistogramdocker.desktop create mode 100644 krita/plugins/viewplugins/histogram_docker/kritahistogramdocker.rc create mode 100644 krita/plugins/viewplugins/history_docker/Makefile.am create mode 100644 krita/plugins/viewplugins/history_docker/historydocker.cc create mode 100644 krita/plugins/viewplugins/history_docker/historydocker.h create mode 100644 krita/plugins/viewplugins/history_docker/kritahistorydocker.desktop create mode 100644 krita/plugins/viewplugins/imagesize/Makefile.am create mode 100644 krita/plugins/viewplugins/imagesize/configure.in.in create mode 100644 krita/plugins/viewplugins/imagesize/dlg_imagesize.cc create mode 100644 krita/plugins/viewplugins/imagesize/dlg_imagesize.h create mode 100644 krita/plugins/viewplugins/imagesize/dlg_layersize.cc create mode 100644 krita/plugins/viewplugins/imagesize/dlg_layersize.h create mode 100644 krita/plugins/viewplugins/imagesize/imagesize.cc create mode 100644 krita/plugins/viewplugins/imagesize/imagesize.h create mode 100644 krita/plugins/viewplugins/imagesize/imagesize.rc create mode 100644 krita/plugins/viewplugins/imagesize/kritaimagesize.desktop create mode 100644 krita/plugins/viewplugins/imagesize/wdg_imagesize.ui create mode 100644 krita/plugins/viewplugins/imagesize/wdg_layersize.ui create mode 100644 krita/plugins/viewplugins/imagesize/wdg_resolution.ui create mode 100644 krita/plugins/viewplugins/modify_selection/Makefile.am create mode 100644 krita/plugins/viewplugins/modify_selection/dlg_border_selection.cc create mode 100644 krita/plugins/viewplugins/modify_selection/dlg_border_selection.h create mode 100644 krita/plugins/viewplugins/modify_selection/dlg_grow_selection.cc create mode 100644 krita/plugins/viewplugins/modify_selection/dlg_grow_selection.h create mode 100644 krita/plugins/viewplugins/modify_selection/dlg_shrink_selection.cc create mode 100644 krita/plugins/viewplugins/modify_selection/dlg_shrink_selection.h create mode 100644 krita/plugins/viewplugins/modify_selection/kritamodifyselection.desktop create mode 100644 krita/plugins/viewplugins/modify_selection/modify_selection.cc create mode 100644 krita/plugins/viewplugins/modify_selection/modify_selection.h create mode 100644 krita/plugins/viewplugins/modify_selection/modify_selection.rc create mode 100644 krita/plugins/viewplugins/modify_selection/wdg_border_selection.ui create mode 100644 krita/plugins/viewplugins/modify_selection/wdg_grow_selection.ui create mode 100644 krita/plugins/viewplugins/modify_selection/wdg_shrink_selection.ui create mode 100644 krita/plugins/viewplugins/performancetest/Makefile.am create mode 100644 krita/plugins/viewplugins/performancetest/dlg_perftest.cc create mode 100644 krita/plugins/viewplugins/performancetest/dlg_perftest.h create mode 100644 krita/plugins/viewplugins/performancetest/kritaperftest.desktop create mode 100644 krita/plugins/viewplugins/performancetest/perftest.cc create mode 100644 krita/plugins/viewplugins/performancetest/perftest.h create mode 100644 krita/plugins/viewplugins/performancetest/perftest.rc create mode 100644 krita/plugins/viewplugins/performancetest/wdg_perftest.ui create mode 100644 krita/plugins/viewplugins/rotateimage/Makefile.am create mode 100644 krita/plugins/viewplugins/rotateimage/dlg_rotateimage.cc create mode 100644 krita/plugins/viewplugins/rotateimage/dlg_rotateimage.h create mode 100644 krita/plugins/viewplugins/rotateimage/kritarotateimage.desktop create mode 100644 krita/plugins/viewplugins/rotateimage/rotateimage.cc create mode 100644 krita/plugins/viewplugins/rotateimage/rotateimage.h create mode 100644 krita/plugins/viewplugins/rotateimage/rotateimage.rc create mode 100644 krita/plugins/viewplugins/rotateimage/wdg_rotateimage.ui create mode 100644 krita/plugins/viewplugins/screenshot/Makefile.am create mode 100644 krita/plugins/viewplugins/screenshot/kritascreenshot.desktop create mode 100644 krita/plugins/viewplugins/screenshot/ksnapshot.cpp create mode 100644 krita/plugins/viewplugins/screenshot/ksnapshot.h create mode 100644 krita/plugins/viewplugins/screenshot/ksnapshotwidget.ui create mode 100644 krita/plugins/viewplugins/screenshot/ksnapshotwidget.ui.h create mode 100644 krita/plugins/viewplugins/screenshot/main.cpp create mode 100644 krita/plugins/viewplugins/screenshot/regiongrabber.cpp create mode 100644 krita/plugins/viewplugins/screenshot/regiongrabber.h create mode 100644 krita/plugins/viewplugins/screenshot/screenshot-kpresenter.rc create mode 100644 krita/plugins/viewplugins/screenshot/screenshot-krita.rc create mode 100644 krita/plugins/viewplugins/screenshot/screenshot-kword.rc create mode 100644 krita/plugins/viewplugins/screenshot/screenshot.cpp create mode 100644 krita/plugins/viewplugins/screenshot/screenshot.h create mode 100644 krita/plugins/viewplugins/scripting/Makefile.am create mode 100644 krita/plugins/viewplugins/scripting/kritacore/Makefile.am create mode 100644 krita/plugins/viewplugins/scripting/kritacore/kritacoremodule.cpp create mode 100644 krita/plugins/viewplugins/scripting/kritacore/kritacoremodule.h create mode 100644 krita/plugins/viewplugins/scripting/kritacore/krs_brush.cpp create mode 100644 krita/plugins/viewplugins/scripting/kritacore/krs_brush.h create mode 100644 krita/plugins/viewplugins/scripting/kritacore/krs_color.cpp create mode 100644 krita/plugins/viewplugins/scripting/kritacore/krs_color.h create mode 100644 krita/plugins/viewplugins/scripting/kritacore/krs_doc.cpp create mode 100644 krita/plugins/viewplugins/scripting/kritacore/krs_doc.h create mode 100644 krita/plugins/viewplugins/scripting/kritacore/krs_filter.cpp create mode 100644 krita/plugins/viewplugins/scripting/kritacore/krs_filter.h create mode 100644 krita/plugins/viewplugins/scripting/kritacore/krs_filter_configuration.cpp create mode 100644 krita/plugins/viewplugins/scripting/kritacore/krs_filter_configuration.h create mode 100644 krita/plugins/viewplugins/scripting/kritacore/krs_histogram.cpp create mode 100644 krita/plugins/viewplugins/scripting/kritacore/krs_histogram.h create mode 100644 krita/plugins/viewplugins/scripting/kritacore/krs_image.cpp create mode 100644 krita/plugins/viewplugins/scripting/kritacore/krs_image.h create mode 100644 krita/plugins/viewplugins/scripting/kritacore/krs_iterator.h create mode 100644 krita/plugins/viewplugins/scripting/kritacore/krs_paint_layer.cpp create mode 100644 krita/plugins/viewplugins/scripting/kritacore/krs_paint_layer.h create mode 100644 krita/plugins/viewplugins/scripting/kritacore/krs_painter.cpp create mode 100644 krita/plugins/viewplugins/scripting/kritacore/krs_painter.h create mode 100644 krita/plugins/viewplugins/scripting/kritacore/krs_pattern.cpp create mode 100644 krita/plugins/viewplugins/scripting/kritacore/krs_pattern.h create mode 100644 krita/plugins/viewplugins/scripting/kritacore/krs_script_progress.cpp create mode 100644 krita/plugins/viewplugins/scripting/kritacore/krs_script_progress.h create mode 100644 krita/plugins/viewplugins/scripting/kritacore/krs_wavelet.cpp create mode 100644 krita/plugins/viewplugins/scripting/kritacore/krs_wavelet.h create mode 100644 krita/plugins/viewplugins/scripting/kritascripting.desktop create mode 100644 krita/plugins/viewplugins/scripting/kritascripting/Makefile.am create mode 100644 krita/plugins/viewplugins/scripting/kritascripting/kis_script_monitor.cpp create mode 100644 krita/plugins/viewplugins/scripting/kritascripting/kis_script_monitor.h create mode 100644 krita/plugins/viewplugins/scripting/kritascripting/kis_script_progress.cpp create mode 100644 krita/plugins/viewplugins/scripting/kritascripting/kis_script_progress.h create mode 100644 krita/plugins/viewplugins/scripting/samples/Makefile.am create mode 100644 krita/plugins/viewplugins/scripting/samples/python/Makefile.am create mode 100644 krita/plugins/viewplugins/scripting/samples/python/invert.py create mode 100644 krita/plugins/viewplugins/scripting/samples/python/invertpython.rc create mode 100644 krita/plugins/viewplugins/scripting/samples/python/reshapehisto.py create mode 100644 krita/plugins/viewplugins/scripting/samples/python/reshapehisto.rc create mode 100644 krita/plugins/viewplugins/scripting/samples/ruby/Makefile.am create mode 100644 krita/plugins/viewplugins/scripting/samples/ruby/changecs.rb create mode 100644 krita/plugins/viewplugins/scripting/samples/ruby/changecs.rc create mode 100644 krita/plugins/viewplugins/scripting/samples/ruby/filterstest.rb create mode 100644 krita/plugins/viewplugins/scripting/samples/ruby/filterstest.rc create mode 100644 krita/plugins/viewplugins/scripting/samples/ruby/invert.rb create mode 100644 krita/plugins/viewplugins/scripting/samples/ruby/invertruby.rc create mode 100644 krita/plugins/viewplugins/scripting/samples/ruby/randompaint.rb create mode 100644 krita/plugins/viewplugins/scripting/samples/ruby/randompaint.rc create mode 100644 krita/plugins/viewplugins/scripting/samples/ruby/torture-filters.rb create mode 100644 krita/plugins/viewplugins/scripting/samples/ruby/torture-filters.rc create mode 100644 krita/plugins/viewplugins/scripting/samples/ruby/torture-painting.rb create mode 100644 krita/plugins/viewplugins/scripting/samples/ruby/torture-painting.rc create mode 100644 krita/plugins/viewplugins/scripting/scripting.cc create mode 100644 krita/plugins/viewplugins/scripting/scripting.h create mode 100644 krita/plugins/viewplugins/scripting/scripting.rc create mode 100644 krita/plugins/viewplugins/selectopaque/Makefile.am create mode 100644 krita/plugins/viewplugins/selectopaque/kritaselectopaque.desktop create mode 100644 krita/plugins/viewplugins/selectopaque/selectopaque.cc create mode 100644 krita/plugins/viewplugins/selectopaque/selectopaque.h create mode 100644 krita/plugins/viewplugins/selectopaque/selectopaque.rc create mode 100644 krita/plugins/viewplugins/separate_channels/Makefile.am create mode 100644 krita/plugins/viewplugins/separate_channels/dlg_separate.cc create mode 100644 krita/plugins/viewplugins/separate_channels/dlg_separate.h create mode 100644 krita/plugins/viewplugins/separate_channels/imageseparate.rc create mode 100644 krita/plugins/viewplugins/separate_channels/kis_channel_separator.cc create mode 100644 krita/plugins/viewplugins/separate_channels/kis_channel_separator.h create mode 100644 krita/plugins/viewplugins/separate_channels/kis_separate_channels_plugin.cc create mode 100644 krita/plugins/viewplugins/separate_channels/kis_separate_channels_plugin.h create mode 100644 krita/plugins/viewplugins/separate_channels/kritaseparatechannels.desktop create mode 100644 krita/plugins/viewplugins/separate_channels/wdg_separations.ui create mode 100644 krita/plugins/viewplugins/shearimage/Makefile.am create mode 100644 krita/plugins/viewplugins/shearimage/dlg_shearimage.cc create mode 100644 krita/plugins/viewplugins/shearimage/dlg_shearimage.h create mode 100644 krita/plugins/viewplugins/shearimage/kritashearimage.desktop create mode 100644 krita/plugins/viewplugins/shearimage/shearimage.cc create mode 100644 krita/plugins/viewplugins/shearimage/shearimage.h create mode 100644 krita/plugins/viewplugins/shearimage/shearimage.rc create mode 100644 krita/plugins/viewplugins/shearimage/wdg_shearimage.ui create mode 100644 krita/plugins/viewplugins/substrate/Makefile.am create mode 100644 krita/plugins/viewplugins/substrate/dlg_substrate.cc create mode 100644 krita/plugins/viewplugins/substrate/dlg_substrate.h create mode 100644 krita/plugins/viewplugins/substrate/kis_repeating_substrate.cc create mode 100644 krita/plugins/viewplugins/substrate/kis_repeating_substrate.h create mode 100644 krita/plugins/viewplugins/substrate/kritasubstrate.desktop create mode 100644 krita/plugins/viewplugins/substrate/substrate.cc create mode 100644 krita/plugins/viewplugins/substrate/substrate.h create mode 100644 krita/plugins/viewplugins/substrate/substrate.rc create mode 100644 krita/plugins/viewplugins/substrate/wdgsubstrate.ui create mode 100644 krita/plugins/viewplugins/variations/Makefile.am create mode 100644 krita/plugins/viewplugins/variations/dlg_variations.cc create mode 100644 krita/plugins/viewplugins/variations/dlg_variations.h create mode 100644 krita/plugins/viewplugins/variations/kritavariations.desktop create mode 100644 krita/plugins/viewplugins/variations/variations.cc create mode 100644 krita/plugins/viewplugins/variations/variations.h create mode 100644 krita/plugins/viewplugins/variations/variations.rc create mode 100644 krita/plugins/viewplugins/variations/wdg_variations.ui create mode 100644 krita/sdk/Makefile.am create mode 100644 krita/sdk/kis_annotation.h create mode 100644 krita/sdk/kis_canvas_controller.h create mode 100644 krita/sdk/kis_canvas_observer.h create mode 100644 krita/sdk/kis_canvas_subject.h create mode 100644 krita/sdk/kis_debug_areas.h create mode 100644 krita/sdk/kis_generic_registry.h create mode 100644 krita/sdk/kis_global.h create mode 100644 krita/sdk/kis_id.h create mode 100644 krita/sdk/kis_integer_maths.h create mode 100644 krita/sdk/kis_progress_display_interface.h create mode 100644 krita/sdk/kis_progress_subject.cc create mode 100644 krita/sdk/kis_progress_subject.h create mode 100644 krita/sdk/kis_shared_ptr_vector.h create mode 100644 krita/sdk/kis_undo_adapter.h create mode 100644 krita/todo-1.6 create mode 100644 krita/ui/Makefile.am create mode 100644 krita/ui/imageviewer.cc create mode 100644 krita/ui/imageviewer.h create mode 100644 krita/ui/kcurve.cc create mode 100644 krita/ui/kcurve.h create mode 100644 krita/ui/kis_aboutdata.h create mode 100644 krita/ui/kis_autobrush.cc create mode 100644 krita/ui/kis_autobrush.h create mode 100644 krita/ui/kis_autogradient.cc create mode 100644 krita/ui/kis_autogradient.h create mode 100644 krita/ui/kis_birdeye_box.cc create mode 100644 krita/ui/kis_birdeye_box.h create mode 100644 krita/ui/kis_boundary_painter.cc create mode 100644 krita/ui/kis_boundary_painter.h create mode 100644 krita/ui/kis_brush_chooser.cc create mode 100644 krita/ui/kis_brush_chooser.h create mode 100644 krita/ui/kis_button_event.h create mode 100644 krita/ui/kis_button_press_event.h create mode 100644 krita/ui/kis_button_release_event.h create mode 100644 krita/ui/kis_canvas.cc create mode 100644 krita/ui/kis_canvas.h create mode 100644 krita/ui/kis_canvas_painter.cc create mode 100644 krita/ui/kis_canvas_painter.h create mode 100644 krita/ui/kis_clipboard.cc create mode 100644 krita/ui/kis_clipboard.h create mode 100644 krita/ui/kis_cmb_composite.cc create mode 100644 krita/ui/kis_cmb_composite.h create mode 100644 krita/ui/kis_cmb_idlist.cc create mode 100644 krita/ui/kis_cmb_idlist.h create mode 100644 krita/ui/kis_color_cup.cc create mode 100644 krita/ui/kis_color_cup.h create mode 100644 krita/ui/kis_config.cc create mode 100644 krita/ui/kis_config.h create mode 100644 krita/ui/kis_controlframe.cc create mode 100644 krita/ui/kis_controlframe.h create mode 100644 krita/ui/kis_cursor.cc create mode 100644 krita/ui/kis_cursor.h create mode 100644 krita/ui/kis_custom_brush.cc create mode 100644 krita/ui/kis_custom_brush.h create mode 100644 krita/ui/kis_custom_image_widget.cc create mode 100644 krita/ui/kis_custom_image_widget.h create mode 100644 krita/ui/kis_custom_palette.cc create mode 100644 krita/ui/kis_custom_palette.h create mode 100644 krita/ui/kis_custom_pattern.cc create mode 100644 krita/ui/kis_custom_pattern.h create mode 100644 krita/ui/kis_dlg_adj_layer_props.cc create mode 100644 krita/ui/kis_dlg_adj_layer_props.h create mode 100644 krita/ui/kis_dlg_adjustment_layer.cc create mode 100644 krita/ui/kis_dlg_adjustment_layer.h create mode 100644 krita/ui/kis_dlg_apply_profile.cc create mode 100644 krita/ui/kis_dlg_apply_profile.h create mode 100644 krita/ui/kis_dlg_image_properties.cc create mode 100644 krita/ui/kis_dlg_image_properties.h create mode 100644 krita/ui/kis_dlg_layer_properties.cc create mode 100644 krita/ui/kis_dlg_layer_properties.h create mode 100644 krita/ui/kis_dlg_new_layer.cc create mode 100644 krita/ui/kis_dlg_new_layer.h create mode 100644 krita/ui/kis_dlg_preferences.cc create mode 100644 krita/ui/kis_dlg_preferences.h create mode 100644 krita/ui/kis_doc.cc create mode 100644 krita/ui/kis_doc.h create mode 100644 krita/ui/kis_doc_iface.cc create mode 100644 krita/ui/kis_doc_iface.h create mode 100644 krita/ui/kis_double_click_event.h create mode 100644 krita/ui/kis_double_widget.cc create mode 100644 krita/ui/kis_double_widget.h create mode 100644 krita/ui/kis_event.h create mode 100644 krita/ui/kis_factory.cc create mode 100644 krita/ui/kis_factory.h create mode 100644 krita/ui/kis_filter_manager.cc create mode 100644 krita/ui/kis_filter_manager.h create mode 100644 krita/ui/kis_filters_listview.cc create mode 100644 krita/ui/kis_filters_listview.h create mode 100644 krita/ui/kis_gradient_chooser.cc create mode 100644 krita/ui/kis_gradient_chooser.h create mode 100644 krita/ui/kis_gradient_slider_widget.cc create mode 100644 krita/ui/kis_gradient_slider_widget.h create mode 100644 krita/ui/kis_grid_drawer.cpp create mode 100644 krita/ui/kis_grid_drawer.h create mode 100644 krita/ui/kis_grid_manager.cpp create mode 100644 krita/ui/kis_grid_manager.h create mode 100644 krita/ui/kis_histogram_view.cc create mode 100644 krita/ui/kis_histogram_view.h create mode 100644 krita/ui/kis_icon_item.cc create mode 100644 krita/ui/kis_icon_item.h create mode 100644 krita/ui/kis_iconwidget.cc create mode 100644 krita/ui/kis_iconwidget.h create mode 100644 krita/ui/kis_import_catcher.cc create mode 100644 krita/ui/kis_import_catcher.h create mode 100644 krita/ui/kis_input_device.cc create mode 100644 krita/ui/kis_input_device.h create mode 100644 krita/ui/kis_int_spinbox.cc create mode 100644 krita/ui/kis_int_spinbox.h create mode 100644 krita/ui/kis_itemchooser.cc create mode 100644 krita/ui/kis_itemchooser.h create mode 100644 krita/ui/kis_label_cursor_pos.cc create mode 100644 krita/ui/kis_label_cursor_pos.h create mode 100644 krita/ui/kis_label_progress.cc create mode 100644 krita/ui/kis_label_progress.h create mode 100644 krita/ui/kis_label_zoom.cc create mode 100644 krita/ui/kis_label_zoom.h create mode 100644 krita/ui/kis_layerbox.cc create mode 100644 krita/ui/kis_layerbox.h create mode 100644 krita/ui/kis_layerlist.cc create mode 100644 krita/ui/kis_layerlist.h create mode 100644 krita/ui/kis_load_visitor.h create mode 100644 krita/ui/kis_matrix_widget.ui create mode 100644 krita/ui/kis_matrix_widget.ui.h create mode 100644 krita/ui/kis_move_event.h create mode 100644 krita/ui/kis_multi_bool_filter_widget.cc create mode 100644 krita/ui/kis_multi_bool_filter_widget.h create mode 100644 krita/ui/kis_multi_double_filter_widget.cc create mode 100644 krita/ui/kis_multi_double_filter_widget.h create mode 100644 krita/ui/kis_multi_integer_filter_widget.cc create mode 100644 krita/ui/kis_multi_integer_filter_widget.h create mode 100644 krita/ui/kis_opengl_canvas.cc create mode 100644 krita/ui/kis_opengl_canvas.h create mode 100644 krita/ui/kis_opengl_canvas_painter.cc create mode 100644 krita/ui/kis_opengl_canvas_painter.h create mode 100644 krita/ui/kis_opengl_image_context.cc create mode 100644 krita/ui/kis_opengl_image_context.h create mode 100644 krita/ui/kis_paintop_box.cc create mode 100644 krita/ui/kis_paintop_box.h create mode 100644 krita/ui/kis_palette_view.cc create mode 100644 krita/ui/kis_palette_view.h create mode 100644 krita/ui/kis_palette_widget.cc create mode 100644 krita/ui/kis_palette_widget.h create mode 100644 krita/ui/kis_part_layer.cc create mode 100644 krita/ui/kis_part_layer.h create mode 100644 krita/ui/kis_part_layer_handler.cc create mode 100644 krita/ui/kis_part_layer_handler.h create mode 100644 krita/ui/kis_pattern_chooser.cc create mode 100644 krita/ui/kis_pattern_chooser.h create mode 100644 krita/ui/kis_perspective_grid_manager.cpp create mode 100644 krita/ui/kis_perspective_grid_manager.h create mode 100644 krita/ui/kis_populate_visitor.h create mode 100644 krita/ui/kis_previewdialog.cc create mode 100644 krita/ui/kis_previewdialog.h create mode 100644 krita/ui/kis_previewwidget.cc create mode 100644 krita/ui/kis_previewwidget.h create mode 100644 krita/ui/kis_previewwidgetbase.ui create mode 100644 krita/ui/kis_qpaintdevice_canvas.cc create mode 100644 krita/ui/kis_qpaintdevice_canvas.h create mode 100644 krita/ui/kis_qpaintdevice_canvas_painter.cc create mode 100644 krita/ui/kis_qpaintdevice_canvas_painter.h create mode 100644 krita/ui/kis_resource_mediator.cc create mode 100644 krita/ui/kis_resource_mediator.h create mode 100644 krita/ui/kis_resourceserver.cc create mode 100644 krita/ui/kis_resourceserver.h create mode 100644 krita/ui/kis_ruler.cc create mode 100644 krita/ui/kis_ruler.h create mode 100644 krita/ui/kis_save_visitor.h create mode 100644 krita/ui/kis_savexml_visitor.h create mode 100644 krita/ui/kis_selection_manager.cc create mode 100644 krita/ui/kis_selection_manager.h create mode 100644 krita/ui/kis_selection_options.cc create mode 100644 krita/ui/kis_selection_options.h create mode 100644 krita/ui/kis_text_brush.cc create mode 100644 krita/ui/kis_text_brush.h create mode 100644 krita/ui/kis_tool.cc create mode 100644 krita/ui/kis_tool.h create mode 100644 krita/ui/kis_tool_controller.h create mode 100644 krita/ui/kis_tool_dummy.cc create mode 100644 krita/ui/kis_tool_dummy.h create mode 100644 krita/ui/kis_tool_factory.h create mode 100644 krita/ui/kis_tool_freehand.cc create mode 100644 krita/ui/kis_tool_freehand.h create mode 100644 krita/ui/kis_tool_manager.cc create mode 100644 krita/ui/kis_tool_manager.h create mode 100644 krita/ui/kis_tool_non_paint.cc create mode 100644 krita/ui/kis_tool_non_paint.h create mode 100644 krita/ui/kis_tool_paint.cc create mode 100644 krita/ui/kis_tool_paint.h create mode 100644 krita/ui/kis_tool_registry.cc create mode 100644 krita/ui/kis_tool_registry.h create mode 100644 krita/ui/kis_tool_shape.cc create mode 100644 krita/ui/kis_tool_shape.h create mode 100644 krita/ui/kis_tool_types.h create mode 100644 krita/ui/kis_view.cc create mode 100644 krita/ui/kis_view.h create mode 100644 krita/ui/kis_view_iface.cc create mode 100644 krita/ui/kis_view_iface.h create mode 100644 krita/ui/kobirdeyepanel.cpp create mode 100644 krita/ui/kobirdeyepanel.h create mode 100644 krita/ui/layerlist.cpp create mode 100644 krita/ui/layerlist.h create mode 100644 krita/ui/squeezedcombobox.cpp create mode 100644 krita/ui/squeezedcombobox.h create mode 100644 krita/ui/wdgapplyprofile.ui create mode 100644 krita/ui/wdgautobrush.ui create mode 100644 krita/ui/wdgautogradient.ui create mode 100644 krita/ui/wdgbirdeye.ui create mode 100644 krita/ui/wdgcolorsettings.ui create mode 100644 krita/ui/wdgcustombrush.ui create mode 100644 krita/ui/wdgcustompalette.ui create mode 100644 krita/ui/wdgcustompattern.ui create mode 100644 krita/ui/wdgdisplaysettings.ui create mode 100644 krita/ui/wdggeneralsettings.ui create mode 100644 krita/ui/wdggridsettings.ui create mode 100644 krita/ui/wdglayerbox.ui create mode 100644 krita/ui/wdglayerproperties.ui create mode 100644 krita/ui/wdgnewimage.ui create mode 100644 krita/ui/wdgpalettechooser.ui create mode 100644 krita/ui/wdgperformancesettings.ui create mode 100644 krita/ui/wdgpressuresettings.ui create mode 100644 krita/ui/wdgselectionoptions.ui create mode 100644 krita/ui/wdgshapeoptions.ui create mode 100644 krita/ui/wdgtabletdevicesettings.ui create mode 100644 krita/ui/wdgtabletsettings.ui create mode 100644 krita/ui/wdgtextbrush.ui create mode 100644 kspread/AUTHORS create mode 100644 kspread/CHANGES create mode 100644 kspread/DEBUG create mode 100644 kspread/DESIGN.html create mode 100644 kspread/Doxyfile create mode 100644 kspread/FORMATTING_DESIGN create mode 100644 kspread/KSpreadAppIface.cc create mode 100644 kspread/KSpreadAppIface.h create mode 100644 kspread/KSpreadCellIface.cc create mode 100644 kspread/KSpreadCellIface.h create mode 100644 kspread/KSpreadColumnIface.cc create mode 100644 kspread/KSpreadColumnIface.h create mode 100644 kspread/KSpreadDocIface.cc create mode 100644 kspread/KSpreadDocIface.h create mode 100644 kspread/KSpreadLayoutIface.cc create mode 100644 kspread/KSpreadLayoutIface.h create mode 100644 kspread/KSpreadMapIface.cc create mode 100644 kspread/KSpreadMapIface.h create mode 100644 kspread/KSpreadRowIface.cc create mode 100644 kspread/KSpreadRowIface.h create mode 100644 kspread/KSpreadTableIface.cc create mode 100644 kspread/KSpreadTableIface.h create mode 100644 kspread/KSpreadViewIface.cc create mode 100644 kspread/KSpreadViewIface.h create mode 100644 kspread/Makefile.am create mode 100644 kspread/OASIS.txt create mode 100644 kspread/TODO create mode 100644 kspread/commands.cc create mode 100644 kspread/commands.h create mode 100644 kspread/damages.cc create mode 100644 kspread/damages.h create mode 100644 kspread/demos/features.ksp create mode 100644 kspread/demos/testcases.ksp create mode 100644 kspread/dependencies.cc create mode 100644 kspread/dependencies.h create mode 100644 kspread/dialogs/Makefile.am create mode 100644 kspread/dialogs/SheetSelectWidget.ui create mode 100644 kspread/dialogs/font_cell_format.ui create mode 100644 kspread/dialogs/kspread_dlg_angle.cc create mode 100644 kspread/dialogs/kspread_dlg_angle.h create mode 100644 kspread/dialogs/kspread_dlg_area.cc create mode 100644 kspread/dialogs/kspread_dlg_area.h create mode 100644 kspread/dialogs/kspread_dlg_comment.cc create mode 100644 kspread/dialogs/kspread_dlg_comment.h create mode 100644 kspread/dialogs/kspread_dlg_conditional.cc create mode 100644 kspread/dialogs/kspread_dlg_conditional.h create mode 100644 kspread/dialogs/kspread_dlg_cons.cc create mode 100644 kspread/dialogs/kspread_dlg_cons.h create mode 100644 kspread/dialogs/kspread_dlg_csv.cc create mode 100644 kspread/dialogs/kspread_dlg_csv.h create mode 100644 kspread/dialogs/kspread_dlg_database.cc create mode 100644 kspread/dialogs/kspread_dlg_database.h create mode 100644 kspread/dialogs/kspread_dlg_find.cc create mode 100644 kspread/dialogs/kspread_dlg_find.h create mode 100644 kspread/dialogs/kspread_dlg_format.cc create mode 100644 kspread/dialogs/kspread_dlg_format.h create mode 100644 kspread/dialogs/kspread_dlg_formula.cc create mode 100644 kspread/dialogs/kspread_dlg_formula.h create mode 100644 kspread/dialogs/kspread_dlg_goalseek.cc create mode 100644 kspread/dialogs/kspread_dlg_goalseek.h create mode 100644 kspread/dialogs/kspread_dlg_goto.cc create mode 100644 kspread/dialogs/kspread_dlg_goto.h create mode 100644 kspread/dialogs/kspread_dlg_insert.cc create mode 100644 kspread/dialogs/kspread_dlg_insert.h create mode 100644 kspread/dialogs/kspread_dlg_layout.cc create mode 100644 kspread/dialogs/kspread_dlg_layout.h create mode 100644 kspread/dialogs/kspread_dlg_list.cc create mode 100644 kspread/dialogs/kspread_dlg_list.h create mode 100644 kspread/dialogs/kspread_dlg_paperlayout.cc create mode 100644 kspread/dialogs/kspread_dlg_paperlayout.h create mode 100644 kspread/dialogs/kspread_dlg_pasteinsert.cc create mode 100644 kspread/dialogs/kspread_dlg_pasteinsert.h create mode 100644 kspread/dialogs/kspread_dlg_preference.cc create mode 100644 kspread/dialogs/kspread_dlg_preference.h create mode 100644 kspread/dialogs/kspread_dlg_reference.cc create mode 100644 kspread/dialogs/kspread_dlg_reference.h create mode 100644 kspread/dialogs/kspread_dlg_resize2.cc create mode 100644 kspread/dialogs/kspread_dlg_resize2.h create mode 100644 kspread/dialogs/kspread_dlg_series.cc create mode 100644 kspread/dialogs/kspread_dlg_series.h create mode 100644 kspread/dialogs/kspread_dlg_show.cc create mode 100644 kspread/dialogs/kspread_dlg_show.h create mode 100644 kspread/dialogs/kspread_dlg_showColRow.cc create mode 100644 kspread/dialogs/kspread_dlg_showColRow.h create mode 100644 kspread/dialogs/kspread_dlg_sort.cc create mode 100644 kspread/dialogs/kspread_dlg_sort.h create mode 100644 kspread/dialogs/kspread_dlg_special.cc create mode 100644 kspread/dialogs/kspread_dlg_special.h create mode 100644 kspread/dialogs/kspread_dlg_styles.cc create mode 100644 kspread/dialogs/kspread_dlg_styles.h create mode 100644 kspread/dialogs/kspread_dlg_subtotal.cc create mode 100644 kspread/dialogs/kspread_dlg_subtotal.h create mode 100644 kspread/dialogs/kspread_dlg_validity.cc create mode 100644 kspread/dialogs/kspread_dlg_validity.h create mode 100644 kspread/dialogs/kspreadsubtotal.ui create mode 100644 kspread/dialogs/link.cc create mode 100644 kspread/dialogs/link.h create mode 100644 kspread/dialogs/position_cell_format.ui create mode 100644 kspread/dialogs/protection_cell_format.ui create mode 100644 kspread/dialogs/sheet_properties.cc create mode 100644 kspread/dialogs/sheet_properties.h create mode 100644 kspread/dialogs/sheet_properties_base.ui create mode 100644 kspread/digest.cc create mode 100644 kspread/digest.h create mode 100644 kspread/doc/PAINTING.html create mode 100644 kspread/doc/README create mode 100644 kspread/dtd/Makefile.am create mode 100644 kspread/dtd/kspread.dtd create mode 100644 kspread/extensions/Makefile.am create mode 100644 kspread/extensions/builtin.xml create mode 100644 kspread/extensions/conversion.xml create mode 100644 kspread/extensions/database.xml create mode 100644 kspread/extensions/datetime.xml create mode 100644 kspread/extensions/engineering.xml create mode 100644 kspread/extensions/financial.xml create mode 100755 kspread/extensions/information.xml create mode 100644 kspread/extensions/logic.xml create mode 100644 kspread/extensions/math.xml create mode 100644 kspread/extensions/reference.xml create mode 100644 kspread/extensions/statistical.xml create mode 100644 kspread/extensions/text.xml create mode 100644 kspread/extensions/trig.xml create mode 100644 kspread/formula.cc create mode 100644 kspread/formula.h create mode 100644 kspread/functions.cc create mode 100644 kspread/functions.h create mode 100644 kspread/ksploadinginfo.h create mode 100644 kspread/kspread.desktop create mode 100644 kspread/kspread.rc create mode 100644 kspread/kspread_aboutdata.h create mode 100644 kspread/kspread_autofill.cc create mode 100644 kspread/kspread_autofill.h create mode 100644 kspread/kspread_brush.cc create mode 100644 kspread/kspread_brush.h create mode 100644 kspread/kspread_canvas.cc create mode 100644 kspread/kspread_canvas.h create mode 100644 kspread/kspread_cell.cc create mode 100644 kspread/kspread_cell.h create mode 100644 kspread/kspread_cluster.cc create mode 100644 kspread/kspread_cluster.h create mode 100644 kspread/kspread_condition.cc create mode 100644 kspread/kspread_condition.h create mode 100644 kspread/kspread_doc.cc create mode 100644 kspread/kspread_doc.h create mode 100644 kspread/kspread_editors.cc create mode 100644 kspread/kspread_editors.h create mode 100644 kspread/kspread_events.cc create mode 100644 kspread/kspread_events.h create mode 100644 kspread/kspread_factory.cc create mode 100644 kspread/kspread_factory.h create mode 100644 kspread/kspread_factory_init.cc create mode 100644 kspread/kspread_format.cc create mode 100644 kspread/kspread_format.h create mode 100644 kspread/kspread_functions_conversion.cc create mode 100644 kspread/kspread_functions_database.cc create mode 100644 kspread/kspread_functions_datetime.cc create mode 100644 kspread/kspread_functions_engineering.cc create mode 100644 kspread/kspread_functions_financial.cc create mode 100644 kspread/kspread_functions_helper.cc create mode 100644 kspread/kspread_functions_helper.h create mode 100644 kspread/kspread_functions_information.cc create mode 100644 kspread/kspread_functions_logic.cc create mode 100644 kspread/kspread_functions_math.cc create mode 100644 kspread/kspread_functions_reference.cc create mode 100644 kspread/kspread_functions_statistical.cc create mode 100644 kspread/kspread_functions_text.cc create mode 100644 kspread/kspread_functions_trig.cc create mode 100644 kspread/kspread_generalProperty.cpp create mode 100644 kspread/kspread_generalProperty.h create mode 100644 kspread/kspread_genvalidationstyle.cc create mode 100644 kspread/kspread_genvalidationstyle.h create mode 100644 kspread/kspread_global.h create mode 100644 kspread/kspread_handler.cc create mode 100644 kspread/kspread_handler.h create mode 100644 kspread/kspread_locale.cc create mode 100644 kspread/kspread_locale.h create mode 100644 kspread/kspread_map.cc create mode 100644 kspread/kspread_map.h create mode 100644 kspread/kspread_numformat.cc create mode 100644 kspread/kspread_object.cc create mode 100644 kspread/kspread_object.h create mode 100644 kspread/kspread_pen.cc create mode 100644 kspread/kspread_pen.h create mode 100644 kspread/kspread_propertyEditor.cpp create mode 100644 kspread/kspread_propertyEditor.h create mode 100644 kspread/kspread_readonly.rc create mode 100644 kspread/kspread_sheet.cc create mode 100644 kspread/kspread_sheet.h create mode 100644 kspread/kspread_sheetprint.cc create mode 100644 kspread/kspread_sheetprint.h create mode 100644 kspread/kspread_style.cc create mode 100644 kspread/kspread_style.h create mode 100644 kspread/kspread_style_manager.cc create mode 100644 kspread/kspread_style_manager.h create mode 100644 kspread/kspread_toolbox.cc create mode 100644 kspread/kspread_toolbox.h create mode 100644 kspread/kspread_types.h create mode 100644 kspread/kspread_undo.cc create mode 100644 kspread/kspread_undo.h create mode 100644 kspread/kspread_util.cc create mode 100644 kspread/kspread_util.h create mode 100644 kspread/kspread_value.cc create mode 100644 kspread/kspread_value.h create mode 100644 kspread/kspread_view.cc create mode 100644 kspread/kspread_view.h create mode 100644 kspread/kspreadpart.desktop create mode 100644 kspread/ksprsavinginfo.h create mode 100644 kspread/main.cc create mode 100644 kspread/manipulator.cc create mode 100644 kspread/manipulator.h create mode 100644 kspread/manipulator_data.cc create mode 100644 kspread/manipulator_data.h create mode 100644 kspread/pics/Makefile.am create mode 100644 kspread/pics/hi16-app-kspread.png create mode 100644 kspread/pics/hi22-app-kspread.png create mode 100644 kspread/pics/hi32-app-kspread.png create mode 100644 kspread/pics/hi48-app-kspread.png create mode 100644 kspread/plugins/Makefile.am create mode 100644 kspread/plugins/calculator/Makefile.am create mode 100644 kspread/plugins/calculator/configdlg.cpp create mode 100644 kspread/plugins/calculator/configdlg.h create mode 100644 kspread/plugins/calculator/configure.in.in create mode 100644 kspread/plugins/calculator/dlabel.cpp create mode 100644 kspread/plugins/calculator/dlabel.h create mode 100644 kspread/plugins/calculator/kcalc.cpp create mode 100644 kspread/plugins/calculator/kcalc.h create mode 100644 kspread/plugins/calculator/kcalc_core.cpp create mode 100644 kspread/plugins/calculator/kcalctype.h create mode 100644 kspread/plugins/calculator/kspreadcalc.rc create mode 100644 kspread/plugins/calculator/main.cpp create mode 100644 kspread/plugins/calculator/main.h create mode 100644 kspread/plugins/calculator/pics/Makefile.am create mode 100644 kspread/plugins/calculator/pics/lo16-app-kspreadcalc.png create mode 100644 kspread/plugins/calculator/pics/lo22-app-kspreadcalc.png create mode 100644 kspread/plugins/calculator/pics/lo32-app-kspreadcalc.png create mode 100644 kspread/plugins/calculator/stats.cpp create mode 100644 kspread/plugins/calculator/stats.h create mode 100644 kspread/plugins/calculator/uninstall.desktop create mode 100644 kspread/plugins/calculator/version.h create mode 100644 kspread/plugins/insertcalendar/Makefile.am create mode 100644 kspread/plugins/insertcalendar/insertcalendar.rc create mode 100644 kspread/plugins/insertcalendar/kspread_insertcalendardialog.cc create mode 100644 kspread/plugins/insertcalendar/kspread_insertcalendardialog.h create mode 100644 kspread/plugins/insertcalendar/kspread_insertcalendardialogbase.ui create mode 100644 kspread/plugins/insertcalendar/kspread_plugininsertcalendar.cc create mode 100644 kspread/plugins/insertcalendar/kspread_plugininsertcalendar.h create mode 100644 kspread/plugins/scripting/Makefile.am create mode 100644 kspread/plugins/scripting/kspreadcore/CMakeLists.txt create mode 100644 kspread/plugins/scripting/kspreadcore/Makefile.am create mode 100644 kspread/plugins/scripting/kspreadcore/krs_cell.cpp create mode 100644 kspread/plugins/scripting/kspreadcore/krs_cell.h create mode 100644 kspread/plugins/scripting/kspreadcore/krs_doc.cpp create mode 100644 kspread/plugins/scripting/kspreadcore/krs_doc.h create mode 100644 kspread/plugins/scripting/kspreadcore/krs_sheet.cpp create mode 100644 kspread/plugins/scripting/kspreadcore/krs_sheet.h create mode 100644 kspread/plugins/scripting/kspreadcore/kspreadcoremodule.cpp create mode 100644 kspread/plugins/scripting/kspreadcore/kspreadcoremodule.h create mode 100644 kspread/plugins/scripting/kspreadscripting.desktop create mode 100644 kspread/plugins/scripting/scripting.cc create mode 100644 kspread/plugins/scripting/scripting.h create mode 100644 kspread/plugins/scripting/scripting.rc create mode 100644 kspread/plugins/scripting/scripts/Makefile.am create mode 100755 kspread/plugins/scripting/scripts/exporthtml/ExportHtml.py create mode 100755 kspread/plugins/scripting/scripts/exporthtml/ExportHtml.rc create mode 100644 kspread/plugins/scripting/scripts/exporthtml/Makefile.am create mode 100644 kspread/plugins/scripting/scripts/scripteditor/Makefile.am create mode 100755 kspread/plugins/scripting/scripts/scripteditor/ScriptEditor.py create mode 100755 kspread/plugins/scripting/scripts/scripteditor/ScriptEditor.rc create mode 100644 kspread/region.cc create mode 100644 kspread/region.h create mode 100644 kspread/selection.cc create mode 100644 kspread/selection.h create mode 100644 kspread/sheetstyles/Makefile.am create mode 100644 kspread/sheetstyles/standard1.ksts create mode 100644 kspread/sheetstyles/standard1.png create mode 100644 kspread/sheetstyles/standard1.xml create mode 100644 kspread/sheetstyles/standard2.ksts create mode 100644 kspread/sheetstyles/standard2.png create mode 100644 kspread/sheetstyles/standard2.xml create mode 100644 kspread/templates/Business/.directory create mode 100644 kspread/templates/Business/BalanceSheet.desktop create mode 100644 kspread/templates/Business/BalanceSheet.kst create mode 100644 kspread/templates/Business/ExpenseReport.desktop create mode 100644 kspread/templates/Business/ExpenseReport.kst create mode 100644 kspread/templates/Business/Invoice.desktop create mode 100644 kspread/templates/Business/Invoice.kst create mode 100644 kspread/templates/Business/Makefile.am create mode 100644 kspread/templates/Business/PackingSlip.desktop create mode 100644 kspread/templates/Business/PackingSlip.kst create mode 100644 kspread/templates/Business/PriceQuotation.desktop create mode 100644 kspread/templates/Business/PriceQuotation.kst create mode 100644 kspread/templates/Business/cr48-action-template_balancesheet.png create mode 100644 kspread/templates/Business/cr48-action-template_expensereport.png create mode 100644 kspread/templates/Business/cr48-action-template_invoice.png create mode 100644 kspread/templates/Business/cr48-action-template_packingslip.png create mode 100644 kspread/templates/Business/cr48-action-template_pricequotation.png create mode 100644 kspread/templates/Business/crsc-action-template_balancesheet.svgz create mode 100644 kspread/templates/Business/crsc-action-template_expensereport.svgz create mode 100644 kspread/templates/Business/crsc-action-template_invoice.svgz create mode 100644 kspread/templates/Business/crsc-action-template_packingslip.svgz create mode 100644 kspread/templates/Business/crsc-action-template_pricequotation.svgz create mode 100644 kspread/templates/General/.directory create mode 100644 kspread/templates/General/Makefile.am create mode 100644 kspread/templates/General/StudentIDCard.desktop create mode 100644 kspread/templates/General/StudentIDCard.kst create mode 100644 kspread/templates/General/Worksheet.desktop create mode 100644 kspread/templates/General/Worksheet.kst create mode 100644 kspread/templates/General/cr48-action-template_studentidcard.png create mode 100644 kspread/templates/General/cr48-action-template_worksheet.png create mode 100644 kspread/templates/General/crsc-action-template_studentidcard.svgz create mode 100644 kspread/templates/General/crsc-action-template_worksheet.svgz create mode 100644 kspread/templates/HomeFamily/.directory create mode 100644 kspread/templates/HomeFamily/BMI.desktop create mode 100644 kspread/templates/HomeFamily/BMI.kst create mode 100644 kspread/templates/HomeFamily/CreditCardTracker.desktop create mode 100644 kspread/templates/HomeFamily/CreditCardTracker.kst create mode 100644 kspread/templates/HomeFamily/Makefile.am create mode 100644 kspread/templates/HomeFamily/MenuPlan.desktop create mode 100644 kspread/templates/HomeFamily/MenuPlan.kst create mode 100644 kspread/templates/HomeFamily/VacationChecklist.desktop create mode 100644 kspread/templates/HomeFamily/VacationChecklist.kst create mode 100644 kspread/templates/HomeFamily/cr48-action-template_bmi.png create mode 100644 kspread/templates/HomeFamily/cr48-action-template_creditcardtracker.png create mode 100644 kspread/templates/HomeFamily/cr48-action-template_menuplan.png create mode 100644 kspread/templates/HomeFamily/cr48-action-template_vacationchecklist.png create mode 100644 kspread/templates/HomeFamily/crsc-action-template_bmi.svgz create mode 100644 kspread/templates/HomeFamily/crsc-action-template_creditcardtracker.svgz create mode 100644 kspread/templates/HomeFamily/crsc-action-template_menuplan.svgz create mode 100644 kspread/templates/HomeFamily/crsc-action-template_vacationchecklist.svgz create mode 100644 kspread/templates/Makefile.am create mode 100644 kspread/tests/Makefile.am create mode 100644 kspread/tests/README create mode 100644 kspread/tests/formula_tester.cc create mode 100644 kspread/tests/formula_tester.h create mode 100755 kspread/tests/generate-openformula-tests create mode 100644 kspread/tests/inspector.cc create mode 100644 kspread/tests/inspector.h create mode 100755 kspread/tests/oasis-kspread.sh create mode 100644 kspread/tests/test_formula.cc create mode 100644 kspread/tests/tester.cc create mode 100644 kspread/tests/tester.h create mode 100644 kspread/tests/testrunner.cc create mode 100644 kspread/tests/testrunner.h create mode 100644 kspread/tests/value_tester.cc create mode 100644 kspread/tests/value_tester.h create mode 100644 kspread/toolbar/Makefile.am create mode 100644 kspread/toolbar/crystalsvg/Makefile.am create mode 100644 kspread/toolbar/crystalsvg/README create mode 100644 kspread/toolbar/crystalsvg/cr16-action-adjustcol.png create mode 100644 kspread/toolbar/crystalsvg/cr16-action-adjustrow.png create mode 100644 kspread/toolbar/crystalsvg/cr16-action-black_sum.png create mode 100644 kspread/toolbar/crystalsvg/cr16-action-border_all.png create mode 100644 kspread/toolbar/crystalsvg/cr16-action-border_bottom.png create mode 100644 kspread/toolbar/crystalsvg/cr16-action-border_fall.png create mode 100644 kspread/toolbar/crystalsvg/cr16-action-border_horizontal.png create mode 100644 kspread/toolbar/crystalsvg/cr16-action-border_inside.png create mode 100644 kspread/toolbar/crystalsvg/cr16-action-border_left.png create mode 100644 kspread/toolbar/crystalsvg/cr16-action-border_outline.png create mode 100644 kspread/toolbar/crystalsvg/cr16-action-border_remove.png create mode 100644 kspread/toolbar/crystalsvg/cr16-action-border_right.png create mode 100644 kspread/toolbar/crystalsvg/cr16-action-border_top.png create mode 100644 kspread/toolbar/crystalsvg/cr16-action-border_up.png create mode 100644 kspread/toolbar/crystalsvg/cr16-action-border_vertical.png create mode 100644 kspread/toolbar/crystalsvg/cr16-action-cell_edit.png create mode 100644 kspread/toolbar/crystalsvg/cr16-action-cell_layout.png create mode 100644 kspread/toolbar/crystalsvg/cr16-action-chart.png create mode 100644 kspread/toolbar/crystalsvg/cr16-action-comment.png create mode 100644 kspread/toolbar/crystalsvg/cr16-action-delete_table.png create mode 100644 kspread/toolbar/crystalsvg/cr16-action-deletecell.png create mode 100644 kspread/toolbar/crystalsvg/cr16-action-dissociatecell.png create mode 100644 kspread/toolbar/crystalsvg/cr16-action-first_letter_upper.png create mode 100644 kspread/toolbar/crystalsvg/cr16-action-funct.png create mode 100644 kspread/toolbar/crystalsvg/cr16-action-hide_table_column.png create mode 100644 kspread/toolbar/crystalsvg/cr16-action-hide_table_row.png create mode 100644 kspread/toolbar/crystalsvg/cr16-action-insert_link.png create mode 100644 kspread/toolbar/crystalsvg/cr16-action-insertcell.png create mode 100644 kspread/toolbar/crystalsvg/cr16-action-insertcellcopy.png create mode 100644 kspread/toolbar/crystalsvg/cr16-action-inserttable.png create mode 100644 kspread/toolbar/crystalsvg/cr16-action-mergecell-horizontal.png create mode 100644 kspread/toolbar/crystalsvg/cr16-action-mergecell-vertical.png create mode 100644 kspread/toolbar/crystalsvg/cr16-action-mergecell.png create mode 100644 kspread/toolbar/crystalsvg/cr16-action-middle.png create mode 100644 kspread/toolbar/crystalsvg/cr16-action-money.png create mode 100644 kspread/toolbar/crystalsvg/cr16-action-multirow.png create mode 100644 kspread/toolbar/crystalsvg/cr16-action-oscilloscope.png create mode 100644 kspread/toolbar/crystalsvg/cr16-action-percent.png create mode 100644 kspread/toolbar/crystalsvg/cr16-action-precminus.png create mode 100644 kspread/toolbar/crystalsvg/cr16-action-precplus.png create mode 100644 kspread/toolbar/crystalsvg/cr16-action-removecell.png create mode 100644 kspread/toolbar/crystalsvg/cr16-action-removecomment.png create mode 100644 kspread/toolbar/crystalsvg/cr16-action-resizecol.png create mode 100644 kspread/toolbar/crystalsvg/cr16-action-resizerow.png create mode 100644 kspread/toolbar/crystalsvg/cr16-action-series.png create mode 100644 kspread/toolbar/crystalsvg/cr16-action-show_table_column.png create mode 100644 kspread/toolbar/crystalsvg/cr16-action-show_table_row.png create mode 100644 kspread/toolbar/crystalsvg/cr16-action-sort_decrease.png create mode 100644 kspread/toolbar/crystalsvg/cr16-action-sort_incr.png create mode 100644 kspread/toolbar/crystalsvg/cr16-action-special_paste.png create mode 100644 kspread/toolbar/crystalsvg/cr16-action-text_bottom.png create mode 100644 kspread/toolbar/crystalsvg/cr16-action-text_top.png create mode 100644 kspread/toolbar/crystalsvg/cr16-action-vertical_text.png create mode 100644 kspread/toolbar/crystalsvg/cr22-action-black_sum.png create mode 100644 kspread/toolbar/crystalsvg/cr22-action-border_all.png create mode 100644 kspread/toolbar/crystalsvg/cr22-action-border_bottom.png create mode 100644 kspread/toolbar/crystalsvg/cr22-action-border_fall.png create mode 100644 kspread/toolbar/crystalsvg/cr22-action-border_horizontal.png create mode 100644 kspread/toolbar/crystalsvg/cr22-action-border_inside.png create mode 100644 kspread/toolbar/crystalsvg/cr22-action-border_left.png create mode 100644 kspread/toolbar/crystalsvg/cr22-action-border_outline.png create mode 100644 kspread/toolbar/crystalsvg/cr22-action-border_remove.png create mode 100644 kspread/toolbar/crystalsvg/cr22-action-border_right.png create mode 100644 kspread/toolbar/crystalsvg/cr22-action-border_top.png create mode 100644 kspread/toolbar/crystalsvg/cr22-action-border_up.png create mode 100644 kspread/toolbar/crystalsvg/cr22-action-border_vertical.png create mode 100644 kspread/toolbar/crystalsvg/cr22-action-funct.png create mode 100644 kspread/toolbar/crystalsvg/cr22-action-insert_chart.png create mode 100644 kspread/toolbar/crystalsvg/cr22-action-insert_link.png create mode 100644 kspread/toolbar/crystalsvg/cr22-action-mergecell-horizontal.png create mode 100644 kspread/toolbar/crystalsvg/cr22-action-mergecell-vertical.png create mode 100644 kspread/toolbar/crystalsvg/cr22-action-mergecell.png create mode 100644 kspread/toolbar/crystalsvg/cr22-action-middle.png create mode 100644 kspread/toolbar/crystalsvg/cr22-action-money.png create mode 100644 kspread/toolbar/crystalsvg/cr22-action-multirow.png create mode 100644 kspread/toolbar/crystalsvg/cr22-action-percent.png create mode 100644 kspread/toolbar/crystalsvg/cr22-action-prec_minus.png create mode 100644 kspread/toolbar/crystalsvg/cr22-action-prec_plus.png create mode 100644 kspread/toolbar/crystalsvg/cr22-action-sort_decrease.png create mode 100644 kspread/toolbar/crystalsvg/cr22-action-sort_incr.png create mode 100644 kspread/toolbar/crystalsvg/cr22-action-text_bottom.png create mode 100644 kspread/toolbar/crystalsvg/cr22-action-text_top.png create mode 100644 kspread/toolbar/crystalsvg/cr32-action-border_all.png create mode 100644 kspread/toolbar/crystalsvg/cr32-action-border_bottom.png create mode 100644 kspread/toolbar/crystalsvg/cr32-action-border_fall.png create mode 100644 kspread/toolbar/crystalsvg/cr32-action-border_horizontal.png create mode 100644 kspread/toolbar/crystalsvg/cr32-action-border_inside.png create mode 100644 kspread/toolbar/crystalsvg/cr32-action-border_left.png create mode 100644 kspread/toolbar/crystalsvg/cr32-action-border_outline.png create mode 100644 kspread/toolbar/crystalsvg/cr32-action-border_remove.png create mode 100644 kspread/toolbar/crystalsvg/cr32-action-border_right.png create mode 100644 kspread/toolbar/crystalsvg/cr32-action-border_top.png create mode 100644 kspread/toolbar/crystalsvg/cr32-action-border_up.png create mode 100644 kspread/toolbar/crystalsvg/cr32-action-border_vertical.png create mode 100644 kspread/toolbar/crystalsvg/cr32-action-funct.png create mode 100644 kspread/toolbar/crystalsvg/cr32-action-percent.png create mode 100644 kspread/toolbar/crystalsvg/cr32-action-prec_minus.png create mode 100644 kspread/toolbar/crystalsvg/cr32-action-prec_plus.png create mode 100644 kspread/valuecalc.cc create mode 100644 kspread/valuecalc.h create mode 100644 kspread/valueconverter.cc create mode 100644 kspread/valueconverter.h create mode 100644 kspread/valueformatter.cc create mode 100644 kspread/valueformatter.h create mode 100644 kspread/valueparser.cc create mode 100644 kspread/valueparser.h create mode 100644 kugar/AUTHORS create mode 100644 kugar/CHANGES create mode 100644 kugar/ChangeLog create mode 100644 kugar/Makefile.am create mode 100644 kugar/README create mode 100644 kugar/TODO create mode 100644 kugar/cr16-mime-kugardata.png create mode 100644 kugar/cr32-mime-kugardata.png create mode 100644 kugar/hi16-app-kugar.png create mode 100644 kugar/hi22-app-kugar.png create mode 100644 kugar/hi32-app-kugar.png create mode 100644 kugar/hi48-app-kugar.png create mode 100644 kugar/kudesigner/Makefile.am create mode 100644 kugar/kudesigner/kudesigner.desktop create mode 100644 kugar/kudesigner/kudesigner_aboutdata.h create mode 100644 kugar/kudesigner/kudesigner_doc.cpp create mode 100644 kugar/kudesigner/kudesigner_doc.h create mode 100644 kugar/kudesigner/kudesigner_factory.cpp create mode 100644 kugar/kudesigner/kudesigner_factory.h create mode 100644 kugar/kudesigner/kudesigner_part.cpp create mode 100644 kugar/kudesigner/kudesigner_readonly.rc create mode 100644 kugar/kudesigner/kudesigner_view.cpp create mode 100644 kugar/kudesigner/kudesigner_view.h create mode 100644 kugar/kudesigner/kudesignerui.rc create mode 100644 kugar/kudesigner/main.cpp create mode 100644 kugar/kudesigner/pics/Makefile.am create mode 100644 kugar/kudesigner/pics/lo16-app-kudesigner.png create mode 100644 kugar/kudesigner/pics/lo32-app-kudesigner.png create mode 100644 kugar/kudesigner/templates/General/.directory create mode 100644 kugar/kudesigner/templates/General/A0.desktop create mode 100644 kugar/kudesigner/templates/General/A0.ktm create mode 100644 kugar/kudesigner/templates/General/A1.desktop create mode 100644 kugar/kudesigner/templates/General/A1.ktm create mode 100644 kugar/kudesigner/templates/General/A2.desktop create mode 100644 kugar/kudesigner/templates/General/A2.ktm create mode 100644 kugar/kudesigner/templates/General/A3.desktop create mode 100644 kugar/kudesigner/templates/General/A3.ktm create mode 100644 kugar/kudesigner/templates/General/A4.desktop create mode 100644 kugar/kudesigner/templates/General/A4.ktm create mode 100644 kugar/kudesigner/templates/General/A5.desktop create mode 100644 kugar/kudesigner/templates/General/A5.ktm create mode 100644 kugar/kudesigner/templates/General/A6.desktop create mode 100644 kugar/kudesigner/templates/General/A6.ktm create mode 100644 kugar/kudesigner/templates/General/A7.desktop create mode 100644 kugar/kudesigner/templates/General/A7.ktm create mode 100644 kugar/kudesigner/templates/General/A8.desktop create mode 100644 kugar/kudesigner/templates/General/A8.ktm create mode 100644 kugar/kudesigner/templates/General/A9.desktop create mode 100644 kugar/kudesigner/templates/General/A9.ktm create mode 100644 kugar/kudesigner/templates/General/B0.desktop create mode 100644 kugar/kudesigner/templates/General/B0.ktm create mode 100644 kugar/kudesigner/templates/General/B1.desktop create mode 100644 kugar/kudesigner/templates/General/B1.ktm create mode 100644 kugar/kudesigner/templates/General/B10.desktop create mode 100644 kugar/kudesigner/templates/General/B10.ktm create mode 100644 kugar/kudesigner/templates/General/B2.desktop create mode 100644 kugar/kudesigner/templates/General/B2.ktm create mode 100644 kugar/kudesigner/templates/General/B3.desktop create mode 100644 kugar/kudesigner/templates/General/B3.ktm create mode 100644 kugar/kudesigner/templates/General/B4.desktop create mode 100644 kugar/kudesigner/templates/General/B4.ktm create mode 100644 kugar/kudesigner/templates/General/B5.desktop create mode 100644 kugar/kudesigner/templates/General/B5.ktm create mode 100644 kugar/kudesigner/templates/General/B6.desktop create mode 100644 kugar/kudesigner/templates/General/B6.ktm create mode 100644 kugar/kudesigner/templates/General/B7.desktop create mode 100644 kugar/kudesigner/templates/General/B7.ktm create mode 100644 kugar/kudesigner/templates/General/B8.desktop create mode 100644 kugar/kudesigner/templates/General/B8.ktm create mode 100644 kugar/kudesigner/templates/General/B9.desktop create mode 100644 kugar/kudesigner/templates/General/B9.ktm create mode 100644 kugar/kudesigner/templates/General/C5E.desktop create mode 100644 kugar/kudesigner/templates/General/C5E.ktm create mode 100644 kugar/kudesigner/templates/General/Comm10E.desktop create mode 100644 kugar/kudesigner/templates/General/Comm10E.ktm create mode 100644 kugar/kudesigner/templates/General/DLE.desktop create mode 100644 kugar/kudesigner/templates/General/DLE.ktm create mode 100644 kugar/kudesigner/templates/General/Executive.desktop create mode 100644 kugar/kudesigner/templates/General/Executive.ktm create mode 100644 kugar/kudesigner/templates/General/Folio.desktop create mode 100644 kugar/kudesigner/templates/General/Folio.ktm create mode 100644 kugar/kudesigner/templates/General/Ledger.desktop create mode 100644 kugar/kudesigner/templates/General/Ledger.ktm create mode 100644 kugar/kudesigner/templates/General/Legal.desktop create mode 100644 kugar/kudesigner/templates/General/Legal.ktm create mode 100644 kugar/kudesigner/templates/General/Letter.desktop create mode 100644 kugar/kudesigner/templates/General/Letter.ktm create mode 100644 kugar/kudesigner/templates/General/Makefile.am create mode 100644 kugar/kudesigner/templates/General/NPageSize.desktop create mode 100644 kugar/kudesigner/templates/General/Tabloid.desktop create mode 100644 kugar/kudesigner/templates/General/Tabloid.ktm create mode 100644 kugar/kudesigner/templates/General/cr48-action-template_iso.png create mode 100644 kugar/kudesigner/templates/General/cr48-action-template_us.png create mode 100644 kugar/kudesigner/templates/General/crsc-action-template_iso.svgz create mode 100644 kugar/kudesigner/templates/General/crsc-action-template_us.svgz create mode 100644 kugar/kudesigner/templates/Makefile.am create mode 100644 kugar/kudesigner/toolbar/Makefile.am create mode 100644 kugar/kudesigner/toolbar/cr22-action-frame_field.png create mode 100644 kugar/kudesigner/toolbar/cr22-action-id.png create mode 100644 kugar/kudesigner/toolbar/cr22-action-idf.png create mode 100644 kugar/kudesigner/toolbar/cr22-action-idh.png create mode 100644 kugar/kudesigner/toolbar/cr22-action-ipf.png create mode 100644 kugar/kudesigner/toolbar/cr22-action-iph.png create mode 100644 kugar/kudesigner/toolbar/cr22-action-irf.png create mode 100644 kugar/kudesigner/toolbar/cr22-action-irh.png create mode 100644 kugar/kudesigner_lib/Makefile.am create mode 100644 kugar/kudesigner_lib/band.cpp create mode 100644 kugar/kudesigner_lib/band.h create mode 100644 kugar/kudesigner_lib/box.cpp create mode 100644 kugar/kudesigner_lib/box.h create mode 100644 kugar/kudesigner_lib/calcfield.cpp create mode 100644 kugar/kudesigner_lib/calcfield.h create mode 100644 kugar/kudesigner_lib/canvas.cpp create mode 100644 kugar/kudesigner_lib/canvas.h create mode 100644 kugar/kudesigner_lib/command.cpp create mode 100644 kugar/kudesigner_lib/command.h create mode 100644 kugar/kudesigner_lib/commdefs.cpp create mode 100644 kugar/kudesigner_lib/commdefs.h create mode 100644 kugar/kudesigner_lib/detail.cpp create mode 100644 kugar/kudesigner_lib/detail.h create mode 100644 kugar/kudesigner_lib/detailbase.cpp create mode 100644 kugar/kudesigner_lib/detailbase.h create mode 100644 kugar/kudesigner_lib/detailfooter.cpp create mode 100644 kugar/kudesigner_lib/detailfooter.h create mode 100644 kugar/kudesigner_lib/detailheader.cpp create mode 100644 kugar/kudesigner_lib/detailheader.h create mode 100644 kugar/kudesigner_lib/field.cpp create mode 100644 kugar/kudesigner_lib/field.h create mode 100644 kugar/kudesigner_lib/kugartemplate.cpp create mode 100644 kugar/kudesigner_lib/kugartemplate.h create mode 100644 kugar/kudesigner_lib/label.cpp create mode 100644 kugar/kudesigner_lib/label.h create mode 100644 kugar/kudesigner_lib/line.cpp create mode 100644 kugar/kudesigner_lib/line.h create mode 100644 kugar/kudesigner_lib/pagefooter.cpp create mode 100644 kugar/kudesigner_lib/pagefooter.h create mode 100644 kugar/kudesigner_lib/pageheader.cpp create mode 100644 kugar/kudesigner_lib/pageheader.h create mode 100644 kugar/kudesigner_lib/plugin.cpp create mode 100644 kugar/kudesigner_lib/plugin.h create mode 100644 kugar/kudesigner_lib/propertyserializer.cpp create mode 100644 kugar/kudesigner_lib/propertyserializer.h create mode 100644 kugar/kudesigner_lib/reportfooter.cpp create mode 100644 kugar/kudesigner_lib/reportfooter.h create mode 100644 kugar/kudesigner_lib/reportheader.cpp create mode 100644 kugar/kudesigner_lib/reportheader.h create mode 100644 kugar/kudesigner_lib/reportitem.cpp create mode 100644 kugar/kudesigner_lib/reportitem.h create mode 100644 kugar/kudesigner_lib/section.cpp create mode 100644 kugar/kudesigner_lib/section.h create mode 100644 kugar/kudesigner_lib/specialfield.cpp create mode 100644 kugar/kudesigner_lib/specialfield.h create mode 100644 kugar/kudesigner_lib/structurewidget.cpp create mode 100644 kugar/kudesigner_lib/structurewidget.h create mode 100644 kugar/kudesigner_lib/view.cpp create mode 100644 kugar/kudesigner_lib/view.h create mode 100644 kugar/lib/Makefile.am create mode 100644 kugar/lib/inputmask.cpp create mode 100644 kugar/lib/inputmask.h create mode 100644 kugar/lib/mcalcobject.cpp create mode 100644 kugar/lib/mcalcobject.h create mode 100644 kugar/lib/mfieldobject.cpp create mode 100644 kugar/lib/mfieldobject.h create mode 100644 kugar/lib/mlabelobject.cpp create mode 100644 kugar/lib/mlabelobject.h create mode 100644 kugar/lib/mlineobject.cpp create mode 100644 kugar/lib/mlineobject.h create mode 100644 kugar/lib/mpagecollection.cpp create mode 100644 kugar/lib/mpagecollection.h create mode 100644 kugar/lib/mpagedisplay.cpp create mode 100644 kugar/lib/mpagedisplay.h create mode 100644 kugar/lib/mreportdetail.cpp create mode 100644 kugar/lib/mreportdetail.h create mode 100644 kugar/lib/mreportengine.cpp create mode 100644 kugar/lib/mreportengine.h create mode 100644 kugar/lib/mreportobject.cpp create mode 100644 kugar/lib/mreportobject.h create mode 100644 kugar/lib/mreportsection.cpp create mode 100644 kugar/lib/mreportsection.h create mode 100644 kugar/lib/mreportviewer.cpp create mode 100644 kugar/lib/mreportviewer.h create mode 100644 kugar/lib/mspecialobject.cpp create mode 100644 kugar/lib/mspecialobject.h create mode 100644 kugar/lib/mutil.cpp create mode 100644 kugar/lib/mutil.h create mode 100644 kugar/part/Makefile.am create mode 100644 kugar/part/kugar.desktop create mode 100644 kugar/part/kugar_about.h create mode 100644 kugar/part/kugar_factory.cpp create mode 100644 kugar/part/kugar_factory.h create mode 100644 kugar/part/kugar_part.cpp create mode 100644 kugar/part/kugar_part.h create mode 100644 kugar/part/kugar_view.cpp create mode 100644 kugar/part/kugar_view.h create mode 100644 kugar/part/kugarpart.desktop create mode 100644 kugar/part/kugarpart.rc create mode 100644 kugar/part/kugartemplate.dtd create mode 100644 kugar/part/main.cpp create mode 100644 kugar/samples/Makefile.am create mode 100644 kugar/samples/sample1.kdf create mode 100644 kugar/samples/sample1.ktf create mode 100644 kugar/samples/sample2.kdf create mode 100644 kugar/samples/sample2.ktf create mode 100644 kugar/samples/sample3.kdf create mode 100644 kugar/samples/sample3.ktf create mode 100644 kword/AUTHORS create mode 100644 kword/CHANGES create mode 100644 kword/DEBUG create mode 100644 kword/DESIGN create mode 100644 kword/HACKING create mode 100644 kword/KWAboutData.h create mode 100644 kword/KWAnchor.cpp create mode 100644 kword/KWAnchor.h create mode 100644 kword/KWAnchorPos.h create mode 100644 kword/KWBgSpellCheck.cpp create mode 100644 kword/KWBgSpellCheck.h create mode 100644 kword/KWCanvas.cpp create mode 100644 kword/KWCanvas.h create mode 100644 kword/KWCollectFramesetsVisitor.cpp create mode 100644 kword/KWCollectFramesetsVisitor.h create mode 100644 kword/KWCommand.cpp create mode 100644 kword/KWCommand.h create mode 100644 kword/KWConfig.cpp create mode 100644 kword/KWConfig.h create mode 100644 kword/KWConfigFootNoteDia.cpp create mode 100644 kword/KWConfigFootNoteDia.h create mode 100644 kword/KWCreateBookmarkDia.cpp create mode 100644 kword/KWCreateBookmarkDia.h create mode 100644 kword/KWCreateBookmarkDiaBase.ui create mode 100644 kword/KWDeleteDia.cpp create mode 100644 kword/KWDeleteDia.h create mode 100644 kword/KWDocStruct.cpp create mode 100644 kword/KWDocStruct.h create mode 100644 kword/KWDocument.cpp create mode 100644 kword/KWDocument.h create mode 100644 kword/KWEditPersonnalExpression.cpp create mode 100644 kword/KWEditPersonnalExpression.h create mode 100644 kword/KWFactory.cpp create mode 100644 kword/KWFactory.h create mode 100644 kword/KWFactoryInit.cpp create mode 100644 kword/KWFindReplace.cpp create mode 100644 kword/KWFindReplace.h create mode 100644 kword/KWFootNoteDia.cpp create mode 100644 kword/KWFootNoteDia.h create mode 100644 kword/KWFormulaFrameSet.cpp create mode 100644 kword/KWFormulaFrameSet.h create mode 100644 kword/KWFrame.cpp create mode 100644 kword/KWFrame.h create mode 100644 kword/KWFrameDia.cpp create mode 100644 kword/KWFrameDia.h create mode 100644 kword/KWFrameLayout.cpp create mode 100644 kword/KWFrameLayout.h create mode 100644 kword/KWFrameList.cpp create mode 100644 kword/KWFrameList.h create mode 100644 kword/KWFrameSet.cpp create mode 100644 kword/KWFrameSet.h create mode 100644 kword/KWFrameSetEdit.cpp create mode 100644 kword/KWFrameSetEdit.h create mode 100644 kword/KWFrameStyle.cpp create mode 100644 kword/KWFrameStyle.h create mode 100644 kword/KWFrameStyleManager.cpp create mode 100644 kword/KWFrameStyleManager.h create mode 100644 kword/KWFrameView.cpp create mode 100644 kword/KWFrameView.h create mode 100644 kword/KWFrameViewManager.cpp create mode 100644 kword/KWFrameViewManager.h create mode 100644 kword/KWImportStyleDia.cpp create mode 100644 kword/KWImportStyleDia.h create mode 100644 kword/KWInsertDia.cpp create mode 100644 kword/KWInsertDia.h create mode 100644 kword/KWInsertPageDia.cpp create mode 100644 kword/KWInsertPageDia.h create mode 100644 kword/KWInsertPicDia.cpp create mode 100644 kword/KWInsertPicDia.h create mode 100644 kword/KWInsertTOCCommand.cpp create mode 100644 kword/KWInsertTOCCommand.h create mode 100644 kword/KWLoadingInfo.cpp create mode 100644 kword/KWLoadingInfo.h create mode 100644 kword/KWMailMergeDataBase.cpp create mode 100644 kword/KWMailMergeDataBase.h create mode 100644 kword/KWMailMergeDataSource.cpp create mode 100644 kword/KWMailMergeDataSource.h create mode 100644 kword/KWMailMergeLabelAction.cpp create mode 100644 kword/KWMailMergeLabelAction.h create mode 100644 kword/KWOasisLoader.cpp create mode 100644 kword/KWOasisLoader.h create mode 100644 kword/KWOasisSaver.cpp create mode 100644 kword/KWOasisSaver.h create mode 100644 kword/KWPage.cpp create mode 100644 kword/KWPage.h create mode 100644 kword/KWPageManager.cpp create mode 100644 kword/KWPageManager.h create mode 100644 kword/KWPartFrameSet.cpp create mode 100644 kword/KWPartFrameSet.h create mode 100644 kword/KWPictureFrameSet.cpp create mode 100644 kword/KWPictureFrameSet.h create mode 100644 kword/KWResizeTableDia.cpp create mode 100644 kword/KWResizeTableDia.h create mode 100644 kword/KWSelectBookmarkDiaBase.ui create mode 100644 kword/KWSortDia.cpp create mode 100644 kword/KWSortDia.h create mode 100644 kword/KWSplitCellDia.cpp create mode 100644 kword/KWSplitCellDia.h create mode 100644 kword/KWStartupWidget.cpp create mode 100644 kword/KWStartupWidget.h create mode 100644 kword/KWStartupWidgetBase.ui create mode 100644 kword/KWStatisticsDialog.cpp create mode 100644 kword/KWStatisticsDialog.h create mode 100644 kword/KWStyleManager.cpp create mode 100644 kword/KWStyleManager.h create mode 100644 kword/KWTableDia.cpp create mode 100644 kword/KWTableDia.h create mode 100644 kword/KWTableFrameSet.cpp create mode 100644 kword/KWTableFrameSet.h create mode 100644 kword/KWTableStyle.cpp create mode 100644 kword/KWTableStyle.h create mode 100644 kword/KWTableStyleManager.cpp create mode 100644 kword/KWTableStyleManager.h create mode 100644 kword/KWTableTemplate.cpp create mode 100644 kword/KWTableTemplate.h create mode 100644 kword/KWTableTemplateSelector.cpp create mode 100644 kword/KWTableTemplateSelector.h create mode 100644 kword/KWTextDocument.cpp create mode 100644 kword/KWTextDocument.h create mode 100644 kword/KWTextFrameSet.cpp create mode 100644 kword/KWTextFrameSet.h create mode 100644 kword/KWTextImage.cpp create mode 100644 kword/KWTextImage.h create mode 100644 kword/KWTextParag.cpp create mode 100644 kword/KWTextParag.h create mode 100644 kword/KWVariable.cpp create mode 100644 kword/KWVariable.h create mode 100644 kword/KWView.cpp create mode 100644 kword/KWView.h create mode 100644 kword/KWViewMode.cpp create mode 100644 kword/KWViewMode.h create mode 100644 kword/KWordDocIface.cpp create mode 100644 kword/KWordDocIface.h create mode 100644 kword/KWordFootNoteFrameSetIface.cpp create mode 100644 kword/KWordFootNoteFrameSetIface.h create mode 100644 kword/KWordFormulaFrameSetEditIface.cpp create mode 100644 kword/KWordFormulaFrameSetEditIface.h create mode 100644 kword/KWordFormulaFrameSetIface.cpp create mode 100644 kword/KWordFormulaFrameSetIface.h create mode 100644 kword/KWordFrameSetIface.cpp create mode 100644 kword/KWordFrameSetIface.h create mode 100644 kword/KWordMailMergeDatabaseIface.h create mode 100644 kword/KWordPartFrameSetIface.cpp create mode 100644 kword/KWordPartFrameSetIface.h create mode 100644 kword/KWordPictureFrameSetIface.cpp create mode 100644 kword/KWordPictureFrameSetIface.h create mode 100644 kword/KWordTableFrameSetIface.cpp create mode 100644 kword/KWordTableFrameSetIface.h create mode 100644 kword/KWordTextFrameSetEditIface.cpp create mode 100644 kword/KWordTextFrameSetEditIface.h create mode 100644 kword/KWordTextFrameSetIface.cpp create mode 100644 kword/KWordTextFrameSetIface.h create mode 100644 kword/KWordViewIface.cpp create mode 100644 kword/KWordViewIface.h create mode 100644 kword/Makefile.am create mode 100644 kword/OASIS create mode 100644 kword/TODO create mode 100644 kword/data/Makefile.am create mode 100644 kword/data/framestyles.xml create mode 100644 kword/data/tablestyles.xml create mode 100644 kword/data/tabletemplates.xml create mode 100644 kword/defs.h create mode 100644 kword/demos/DTPTest.kwt create mode 100644 kword/demos/bidi.kwd create mode 100644 kword/demos/chapters.kwd create mode 100644 kword/demos/eurosign.kwd create mode 100644 kword/demos/flatland.kwd create mode 100644 kword/demos/framestest.kwd create mode 100644 kword/demos/mars.kwd create mode 100644 kword/demos/statistics.kwd create mode 100644 kword/dtd/DEBUG create mode 100644 kword/dtd/Makefile.am create mode 100644 kword/dtd/framestyles.dtd create mode 100644 kword/dtd/kword.dtd create mode 100644 kword/dtd/tablestyles.dtd create mode 100644 kword/dtd/tabletemplates.dtd create mode 100644 kword/expression/Makefile.am create mode 100644 kword/expression/expression.xml create mode 100644 kword/horizontalline/Makefile.am create mode 100644 kword/horizontalline/line.png create mode 100644 kword/kwmailmerge.desktop create mode 100644 kword/kword.desktop create mode 100644 kword/kword.rc create mode 100644 kword/kword_readonly.rc create mode 100644 kword/kwordmailmergedatabaseiface.cpp create mode 100644 kword/kwordpart.desktop create mode 100644 kword/mailmerge/KWClassicSerialDataSource.cpp create mode 100644 kword/mailmerge/KWClassicSerialDataSource.h create mode 100644 kword/mailmerge/Makefile.am create mode 100644 kword/mailmerge/configure.in.in create mode 100644 kword/mailmerge/kabc/KWMailMergeKABC.cpp create mode 100644 kword/mailmerge/kabc/KWMailMergeKABC.h create mode 100644 kword/mailmerge/kabc/KWMailMergeKABCConfig.cpp create mode 100644 kword/mailmerge/kabc/KWMailMergeKABCConfig.h create mode 100644 kword/mailmerge/kabc/Makefile.am create mode 100644 kword/mailmerge/kabc/addresspicker.ui create mode 100644 kword/mailmerge/kabc/kwmailmerge_kabc.desktop create mode 100644 kword/mailmerge/kspread/Makefile.am create mode 100644 kword/mailmerge/kspread/kwmailmerge_kspread.cpp create mode 100644 kword/mailmerge/kspread/kwmailmerge_kspread.desktop create mode 100644 kword/mailmerge/kspread/kwmailmerge_kspread.h create mode 100644 kword/mailmerge/kspread/kwmailmerge_kspread_config.cpp create mode 100644 kword/mailmerge/kspread/kwmailmerge_kspread_config.h create mode 100644 kword/mailmerge/kwserialletter_classic.desktop create mode 100644 kword/mailmerge/sql/KWMySqlCursor.h create mode 100644 kword/mailmerge/sql/KWQtSqlEasyFilter.cpp create mode 100644 kword/mailmerge/sql/KWQtSqlEasyFilter.h create mode 100644 kword/mailmerge/sql/KWQtSqlMailMergeOpen.cpp create mode 100644 kword/mailmerge/sql/KWQtSqlMailMergeOpen.h create mode 100644 kword/mailmerge/sql/KWQtSqlPowerSerialDataSource.cpp create mode 100644 kword/mailmerge/sql/KWQtSqlPowerSerialDataSource.h create mode 100644 kword/mailmerge/sql/KWQtSqlSerialDataSource.cpp create mode 100644 kword/mailmerge/sql/KWQtSqlSerialDataSource.h create mode 100644 kword/mailmerge/sql/KWQtSqlSerialDataSourceBase.cpp create mode 100644 kword/mailmerge/sql/KWQtSqlSerialDataSourceBase.h create mode 100644 kword/mailmerge/sql/Makefile.am create mode 100644 kword/mailmerge/sql/kwqtsqlpower.ui create mode 100644 kword/mailmerge/sql/kwserialletter_qtsqldb.desktop create mode 100644 kword/mailmerge/sql/kwserialletter_qtsqldb_power.desktop create mode 100644 kword/mailmerge/sql/qtsqldatasourceeditor.ui create mode 100644 kword/mailmerge/sql/qtsqldatasourceeditor.ui.h create mode 100644 kword/mailmerge/sql/qtsqlopenwidget.ui create mode 100644 kword/main.cpp create mode 100644 kword/pics/Makefile.am create mode 100644 kword/pics/hi16-app-kword.png create mode 100644 kword/pics/hi22-app-kword.png create mode 100644 kword/pics/hi32-app-kword.png create mode 100644 kword/pics/hi48-app-kword.png create mode 100644 kword/stylenames.cpp create mode 100644 kword/templates/CardsAndLabels/.directory create mode 100644 kword/templates/CardsAndLabels/BusinessCards10.desktop create mode 100644 kword/templates/CardsAndLabels/BusinessCards10.kwt create mode 100644 kword/templates/CardsAndLabels/LabelsL16.desktop create mode 100644 kword/templates/CardsAndLabels/LabelsL16.kwt create mode 100644 kword/templates/CardsAndLabels/Makefile.am create mode 100644 kword/templates/CardsAndLabels/cr48-action-template_businesscards10.png create mode 100644 kword/templates/CardsAndLabels/cr48-action-template_labelsl16.png create mode 100644 kword/templates/CardsAndLabels/crsc-action-template_businesscards10.svgz create mode 100644 kword/templates/CardsAndLabels/crsc-action-template_labelsl16.svgz create mode 100644 kword/templates/Envelopes/.directory create mode 100644 kword/templates/Envelopes/EnvelopeC6.desktop create mode 100644 kword/templates/Envelopes/EnvelopeC6.kwt create mode 100644 kword/templates/Envelopes/EnvelopeDL.desktop create mode 100644 kword/templates/Envelopes/EnvelopeDL.kwt create mode 100644 kword/templates/Envelopes/Makefile.am create mode 100644 kword/templates/Envelopes/cr48-action-template_envelopec6.png create mode 100644 kword/templates/Envelopes/cr48-action-template_envelopedl.png create mode 100644 kword/templates/Envelopes/crsc-action-template_envelopec6.svgz create mode 100644 kword/templates/Envelopes/crsc-action-template_envelopedl.svgz create mode 100644 kword/templates/Makefile.am create mode 100644 kword/templates/Wordprocessing/.directory create mode 100644 kword/templates/Wordprocessing/A4.desktop create mode 100644 kword/templates/Wordprocessing/A4.kwt create mode 100644 kword/templates/Wordprocessing/ColorfulA4.desktop create mode 100644 kword/templates/Wordprocessing/ColorfulA4.odt create mode 100644 kword/templates/Wordprocessing/ColorfulLetter.desktop create mode 100644 kword/templates/Wordprocessing/ColorfulLetter.odt create mode 100644 kword/templates/Wordprocessing/FaxA4.desktop create mode 100644 kword/templates/Wordprocessing/FaxA4.odt create mode 100644 kword/templates/Wordprocessing/FaxLetter.desktop create mode 100644 kword/templates/Wordprocessing/FaxLetter.odt create mode 100644 kword/templates/Wordprocessing/Letter.desktop create mode 100644 kword/templates/Wordprocessing/Letter.kwt create mode 100644 kword/templates/Wordprocessing/Makefile.am create mode 100644 kword/templates/Wordprocessing/Memo.desktop create mode 100644 kword/templates/Wordprocessing/Memo.kwt create mode 100644 kword/templates/Wordprocessing/PlainText.kwt create mode 100644 kword/templates/Wordprocessing/ProfessionalA4.desktop create mode 100644 kword/templates/Wordprocessing/ProfessionalA4.odt create mode 100644 kword/templates/Wordprocessing/ProfessionalLetter.desktop create mode 100644 kword/templates/Wordprocessing/ProfessionalLetter.odt create mode 100644 kword/templates/Wordprocessing/TwoColumns.desktop create mode 100644 kword/templates/Wordprocessing/TwoColumns.kwt create mode 100644 kword/templates/Wordprocessing/TwoColumnsLetter.desktop create mode 100644 kword/templates/Wordprocessing/TwoColumnsLetter.kwt create mode 100644 kword/templates/Wordprocessing/cr128-action-template_colorful.png create mode 100644 kword/templates/Wordprocessing/cr48-action-template_a4.png create mode 100644 kword/templates/Wordprocessing/cr48-action-template_colorful.png create mode 100644 kword/templates/Wordprocessing/cr48-action-template_fax.png create mode 100644 kword/templates/Wordprocessing/cr48-action-template_letter.png create mode 100644 kword/templates/Wordprocessing/cr48-action-template_memo.png create mode 100644 kword/templates/Wordprocessing/cr48-action-template_plaintext.png create mode 100644 kword/templates/Wordprocessing/cr48-action-template_twocolumns.png create mode 100644 kword/templates/Wordprocessing/crsc-action-template_a4.svgz create mode 100644 kword/templates/Wordprocessing/crsc-action-template_fax.svgz create mode 100644 kword/templates/Wordprocessing/crsc-action-template_letter.svgz create mode 100644 kword/templates/Wordprocessing/crsc-action-template_memo.svgz create mode 100644 kword/templates/Wordprocessing/crsc-action-template_plaintext.svgz create mode 100644 kword/templates/Wordprocessing/crsc-action-template_twocolumns.svgz create mode 100755 kword/templates/make_template.pl create mode 100644 kword/tests/FrameTester.cpp create mode 100644 kword/tests/FrameTester.h create mode 100644 kword/tests/FrameViewTester.cpp create mode 100644 kword/tests/FrameViewTester.h create mode 100644 kword/tests/KWPageManagerTester.cpp create mode 100644 kword/tests/KWPageManagerTester.h create mode 100644 kword/tests/Makefile.am create mode 100644 kword/tests/README create mode 100755 kword/tests/checkFilter.pl create mode 100644 kword/tests/oasis-kword.sh create mode 100644 kword/toolbar/Makefile.am create mode 100644 kword/toolbar/cr22-action-run_bounding.png create mode 100644 kword/toolbar/cr22-action-run_not.png create mode 100644 kword/toolbar/cr22-action-run_skip.png create mode 100644 kword/toolbar/cr22-action-sl_addentry.png create mode 100644 kword/toolbar/cr22-action-sl_addrecord.png create mode 100644 kword/toolbar/cr22-action-sl_delentry.png create mode 100644 kword/toolbar/cr22-action-sl_delrecord.png create mode 100644 lib/CHANGES create mode 100644 lib/Makefile.am create mode 100644 lib/NAMING create mode 100644 lib/configure.in.in create mode 100644 lib/configure.in.mid create mode 100644 lib/kdoc.rules create mode 100644 lib/kformula/AUTHORS create mode 100644 lib/kformula/DESIGN create mode 100644 lib/kformula/FILTERS create mode 100644 lib/kformula/Makefile.am create mode 100644 lib/kformula/MatrixDialog.cc create mode 100644 lib/kformula/MatrixDialog.h create mode 100644 lib/kformula/README create mode 100644 lib/kformula/TODO create mode 100644 lib/kformula/actionelement.cc create mode 100644 lib/kformula/actionelement.h create mode 100644 lib/kformula/basicelement.cc create mode 100644 lib/kformula/basicelement.h create mode 100644 lib/kformula/bracketelement.cc create mode 100644 lib/kformula/bracketelement.h create mode 100644 lib/kformula/config/Makefile.am create mode 100644 lib/kformula/config/esstixeight.font create mode 100644 lib/kformula/config/esstixeleven.font create mode 100644 lib/kformula/config/esstixfifteen.font create mode 100644 lib/kformula/config/esstixfive.font create mode 100644 lib/kformula/config/esstixfour.font create mode 100644 lib/kformula/config/esstixfourteen.font create mode 100644 lib/kformula/config/esstixnine.font create mode 100644 lib/kformula/config/esstixone.font create mode 100644 lib/kformula/config/esstixseven.font create mode 100644 lib/kformula/config/esstixseventeen.font create mode 100644 lib/kformula/config/esstixsix.font create mode 100644 lib/kformula/config/esstixsixteen.font create mode 100644 lib/kformula/config/esstixten.font create mode 100644 lib/kformula/config/esstixthirteen.font create mode 100644 lib/kformula/config/esstixthree.font create mode 100644 lib/kformula/config/esstixtwelve.font create mode 100644 lib/kformula/config/esstixtwo.font create mode 100644 lib/kformula/config/euclid%20math%20one.font create mode 100644 lib/kformula/config/euclid%20math%20two.font create mode 100644 lib/kformula/config/euclid%20symbol.font create mode 100644 lib/kformula/config/mt%20extra.font create mode 100644 lib/kformula/config/mt%20symbol.font create mode 100644 lib/kformula/config/symbol.font create mode 100644 lib/kformula/config/unicode.tbl create mode 100644 lib/kformula/contextstyle.cc create mode 100644 lib/kformula/contextstyle.h create mode 100644 lib/kformula/creationstrategy.cc create mode 100644 lib/kformula/creationstrategy.h create mode 100644 lib/kformula/dtd/Makefile.am create mode 100644 lib/kformula/dtd/kformula.dtd create mode 100644 lib/kformula/elementindex.h create mode 100644 lib/kformula/elementtype.cc create mode 100644 lib/kformula/elementtype.h create mode 100644 lib/kformula/elementvisitor.h create mode 100644 lib/kformula/encloseelement.cc create mode 100644 lib/kformula/encloseelement.h create mode 100644 lib/kformula/entities.cc create mode 100644 lib/kformula/entities.h create mode 100644 lib/kformula/errorelement.cc create mode 100644 lib/kformula/errorelement.h create mode 100644 lib/kformula/fonts/Arev.ttf create mode 100644 lib/kformula/fonts/ArevBI.ttf create mode 100644 lib/kformula/fonts/ArevBd.ttf create mode 100644 lib/kformula/fonts/ArevIt.ttf create mode 100644 lib/kformula/fonts/LICENSE.AREV create mode 100644 lib/kformula/fonts/LICENSE.BAKOMA create mode 100644 lib/kformula/fonts/LICENSE.BITSTREAM create mode 100644 lib/kformula/fonts/Makefile.am create mode 100644 lib/kformula/fonts/README create mode 100644 lib/kformula/fonts/cmex10.ttf create mode 100644 lib/kformula/fontstyle.cc create mode 100644 lib/kformula/fontstyle.h create mode 100644 lib/kformula/formulacursor.cc create mode 100644 lib/kformula/formulacursor.h create mode 100644 lib/kformula/formulaelement.cc create mode 100644 lib/kformula/formulaelement.h create mode 100644 lib/kformula/fractionelement.cc create mode 100644 lib/kformula/fractionelement.h create mode 100644 lib/kformula/glyphelement.cc create mode 100644 lib/kformula/glyphelement.h create mode 100644 lib/kformula/identifierelement.cc create mode 100644 lib/kformula/identifierelement.h create mode 100644 lib/kformula/indexelement.cc create mode 100644 lib/kformula/indexelement.h create mode 100644 lib/kformula/kformulacommand.cc create mode 100644 lib/kformula/kformulacommand.h create mode 100644 lib/kformula/kformulacompatibility.cc create mode 100644 lib/kformula/kformulacompatibility.h create mode 100644 lib/kformula/kformulaconfigpage.cc create mode 100644 lib/kformula/kformulaconfigpage.h create mode 100644 lib/kformula/kformulacontainer.cc create mode 100644 lib/kformula/kformulacontainer.h create mode 100644 lib/kformula/kformuladefs.h create mode 100644 lib/kformula/kformuladocument.cc create mode 100644 lib/kformula/kformuladocument.h create mode 100644 lib/kformula/kformulainputfilter.cc create mode 100644 lib/kformula/kformulainputfilter.h create mode 100644 lib/kformula/kformulalib.h create mode 100644 lib/kformula/kformulamathmlread.cc create mode 100644 lib/kformula/kformulamathmlread.h create mode 100644 lib/kformula/kformulamimesource.cc create mode 100644 lib/kformula/kformulamimesource.h create mode 100644 lib/kformula/kformulaview.cc create mode 100644 lib/kformula/kformulaview.h create mode 100644 lib/kformula/kformulawidget.cc create mode 100644 lib/kformula/kformulawidget.h create mode 100644 lib/kformula/main.cc create mode 100644 lib/kformula/mathml.xml create mode 100644 lib/kformula/matrixelement.cc create mode 100644 lib/kformula/matrixelement.h create mode 100644 lib/kformula/numberelement.cc create mode 100644 lib/kformula/numberelement.h create mode 100644 lib/kformula/oasiscreationstrategy.cc create mode 100644 lib/kformula/oasiscreationstrategy.h create mode 100644 lib/kformula/oldformula create mode 100644 lib/kformula/operatordictionary.cc create mode 100644 lib/kformula/operatordictionary.h create mode 100644 lib/kformula/operatorelement.cc create mode 100644 lib/kformula/operatorelement.h create mode 100644 lib/kformula/paddedelement.cc create mode 100644 lib/kformula/paddedelement.h create mode 100644 lib/kformula/phantomelement.cc create mode 100644 lib/kformula/phantomelement.h create mode 100644 lib/kformula/pics/Makefile.am create mode 100644 lib/kformula/pics/crystalsvg/Makefile.am create mode 100644 lib/kformula/pics/crystalsvg/cr16-action-abs.png create mode 100644 lib/kformula/pics/crystalsvg/cr16-action-brackets.png create mode 100644 lib/kformula/pics/crystalsvg/cr16-action-frac.png create mode 100644 lib/kformula/pics/crystalsvg/cr16-action-gsub.png create mode 100644 lib/kformula/pics/crystalsvg/cr16-action-gsup.png create mode 100644 lib/kformula/pics/crystalsvg/cr16-action-int.png create mode 100644 lib/kformula/pics/crystalsvg/cr16-action-lsub.png create mode 100644 lib/kformula/pics/crystalsvg/cr16-action-lsup.png create mode 100644 lib/kformula/pics/crystalsvg/cr16-action-matrix.png create mode 100644 lib/kformula/pics/crystalsvg/cr16-action-multiline.png create mode 100644 lib/kformula/pics/crystalsvg/cr16-action-onetwomatrix.png create mode 100644 lib/kformula/pics/crystalsvg/cr16-action-over.png create mode 100644 lib/kformula/pics/crystalsvg/cr16-action-paren.png create mode 100644 lib/kformula/pics/crystalsvg/cr16-action-prod.png create mode 100644 lib/kformula/pics/crystalsvg/cr16-action-rsub.png create mode 100644 lib/kformula/pics/crystalsvg/cr16-action-rsup.png create mode 100644 lib/kformula/pics/crystalsvg/cr16-action-sqrt.png create mode 100644 lib/kformula/pics/crystalsvg/cr16-action-sum.png create mode 100644 lib/kformula/pics/crystalsvg/cr16-action-under.png create mode 100644 lib/kformula/pics/crystalsvg/cr22-action-abs.png create mode 100644 lib/kformula/pics/crystalsvg/cr22-action-brackets.png create mode 100644 lib/kformula/pics/crystalsvg/cr22-action-frac.png create mode 100644 lib/kformula/pics/crystalsvg/cr22-action-gsub.png create mode 100644 lib/kformula/pics/crystalsvg/cr22-action-gsup.png create mode 100644 lib/kformula/pics/crystalsvg/cr22-action-inscol.png create mode 100644 lib/kformula/pics/crystalsvg/cr22-action-insrow.png create mode 100644 lib/kformula/pics/crystalsvg/cr22-action-int.png create mode 100644 lib/kformula/pics/crystalsvg/cr22-action-lsub.png create mode 100644 lib/kformula/pics/crystalsvg/cr22-action-lsup.png create mode 100644 lib/kformula/pics/crystalsvg/cr22-action-matrix.png create mode 100644 lib/kformula/pics/crystalsvg/cr22-action-multiline.png create mode 100644 lib/kformula/pics/crystalsvg/cr22-action-onetwomatrix.png create mode 100644 lib/kformula/pics/crystalsvg/cr22-action-over.png create mode 100644 lib/kformula/pics/crystalsvg/cr22-action-paren.png create mode 100644 lib/kformula/pics/crystalsvg/cr22-action-prod.png create mode 100644 lib/kformula/pics/crystalsvg/cr22-action-remcol.png create mode 100644 lib/kformula/pics/crystalsvg/cr22-action-remrow.png create mode 100644 lib/kformula/pics/crystalsvg/cr22-action-rsub.png create mode 100644 lib/kformula/pics/crystalsvg/cr22-action-rsup.png create mode 100644 lib/kformula/pics/crystalsvg/cr22-action-sqrt.png create mode 100644 lib/kformula/pics/crystalsvg/cr22-action-sum.png create mode 100644 lib/kformula/pics/crystalsvg/cr22-action-under.png create mode 100644 lib/kformula/pics/crystalsvg/cr32-action-abs.png create mode 100644 lib/kformula/pics/crystalsvg/cr32-action-brackets.png create mode 100644 lib/kformula/pics/crystalsvg/cr32-action-frac.png create mode 100644 lib/kformula/pics/crystalsvg/cr32-action-gsub.png create mode 100644 lib/kformula/pics/crystalsvg/cr32-action-gsup.png create mode 100644 lib/kformula/pics/crystalsvg/cr32-action-int.png create mode 100644 lib/kformula/pics/crystalsvg/cr32-action-lsub.png create mode 100644 lib/kformula/pics/crystalsvg/cr32-action-lsup.png create mode 100644 lib/kformula/pics/crystalsvg/cr32-action-matrix.png create mode 100644 lib/kformula/pics/crystalsvg/cr32-action-multiline.png create mode 100644 lib/kformula/pics/crystalsvg/cr32-action-onetwomatrix.png create mode 100644 lib/kformula/pics/crystalsvg/cr32-action-over.png create mode 100644 lib/kformula/pics/crystalsvg/cr32-action-paren.png create mode 100644 lib/kformula/pics/crystalsvg/cr32-action-prod.png create mode 100644 lib/kformula/pics/crystalsvg/cr32-action-rsub.png create mode 100644 lib/kformula/pics/crystalsvg/cr32-action-rsup.png create mode 100644 lib/kformula/pics/crystalsvg/cr32-action-sqrt.png create mode 100644 lib/kformula/pics/crystalsvg/cr32-action-sum.png create mode 100644 lib/kformula/pics/crystalsvg/cr32-action-under.png create mode 100644 lib/kformula/prototype/README create mode 100644 lib/kformula/prototype/engine.py create mode 100644 lib/kformula/prototype/gensymbolfontmap.py create mode 100755 lib/kformula/prototype/main.py create mode 100644 lib/kformula/prototype/symbol.xml create mode 100755 lib/kformula/prototype/unicode.py create mode 100644 lib/kformula/rootelement.cc create mode 100644 lib/kformula/rootelement.h create mode 100755 lib/kformula/scripts/bycodes.py create mode 100755 lib/kformula/scripts/bynames.py create mode 100755 lib/kformula/scripts/oper-dict.py create mode 100644 lib/kformula/scrollview.h create mode 100644 lib/kformula/sequenceelement.cc create mode 100644 lib/kformula/sequenceelement.h create mode 100644 lib/kformula/sequenceparser.cc create mode 100644 lib/kformula/sequenceparser.h create mode 100644 lib/kformula/spaceelement.cc create mode 100644 lib/kformula/spaceelement.h create mode 100644 lib/kformula/stringelement.cc create mode 100644 lib/kformula/stringelement.h create mode 100644 lib/kformula/styleelement.cc create mode 100644 lib/kformula/styleelement.h create mode 100644 lib/kformula/symbolaction.cc create mode 100644 lib/kformula/symbolaction.h create mode 100644 lib/kformula/symbolelement.cc create mode 100644 lib/kformula/symbolelement.h create mode 100644 lib/kformula/symbolfontmapping.cc create mode 100644 lib/kformula/symboltable.cc create mode 100644 lib/kformula/symboltable.h create mode 100644 lib/kformula/textelement.cc create mode 100644 lib/kformula/textelement.h create mode 100644 lib/kformula/tokenelement.cc create mode 100644 lib/kformula/tokenelement.h create mode 100644 lib/kformula/tokenstyleelement.cc create mode 100644 lib/kformula/tokenstyleelement.h create mode 100644 lib/kformula/unicodetable.cc create mode 100644 lib/kofficecore/DESIGN create mode 100644 lib/kofficecore/KoApplication.cpp create mode 100644 lib/kofficecore/KoApplication.h create mode 100644 lib/kofficecore/KoApplicationIface.cc create mode 100644 lib/kofficecore/KoApplicationIface.h create mode 100644 lib/kofficecore/KoChild.cpp create mode 100644 lib/kofficecore/KoChild.h create mode 100644 lib/kofficecore/KoContainerHandler.cpp create mode 100644 lib/kofficecore/KoContainerHandler.h create mode 100644 lib/kofficecore/KoDetailsPane.cpp create mode 100644 lib/kofficecore/KoDetailsPane.h create mode 100644 lib/kofficecore/KoDocInfoPropsFactory.cpp create mode 100644 lib/kofficecore/KoDocument.cpp create mode 100644 lib/kofficecore/KoDocument.h create mode 100644 lib/kofficecore/KoDocumentChild.cpp create mode 100644 lib/kofficecore/KoDocumentChild.h create mode 100644 lib/kofficecore/KoDocumentIface.cc create mode 100644 lib/kofficecore/KoDocumentIface.h create mode 100644 lib/kofficecore/KoDocumentInfo.cpp create mode 100644 lib/kofficecore/KoDocumentInfo.h create mode 100644 lib/kofficecore/KoDocumentInfoDlg.cpp create mode 100644 lib/kofficecore/KoDocumentInfoDlg.h create mode 100644 lib/kofficecore/KoDocument_p.h create mode 100644 lib/kofficecore/KoDom.cpp create mode 100644 lib/kofficecore/KoDom.h create mode 100644 lib/kofficecore/KoFactory.cpp create mode 100644 lib/kofficecore/KoFactory.h create mode 100644 lib/kofficecore/KoFileDialog.cpp create mode 100644 lib/kofficecore/KoFileDialog.h create mode 100644 lib/kofficecore/KoFilter.cpp create mode 100644 lib/kofficecore/KoFilter.h create mode 100644 lib/kofficecore/KoFilterChain.cpp create mode 100644 lib/kofficecore/KoFilterChain.h create mode 100644 lib/kofficecore/KoFilterManager.cpp create mode 100644 lib/kofficecore/KoFilterManager.h create mode 100644 lib/kofficecore/KoFilterManager_p.h create mode 100644 lib/kofficecore/KoFrame.cpp create mode 100644 lib/kofficecore/KoFrame.h create mode 100644 lib/kofficecore/KoGenStyles.cpp create mode 100644 lib/kofficecore/KoGenStyles.h create mode 100644 lib/kofficecore/KoGlobal.cpp create mode 100644 lib/kofficecore/KoGlobal.h create mode 100644 lib/kofficecore/KoMainWindow.cpp create mode 100644 lib/kofficecore/KoMainWindow.h create mode 100644 lib/kofficecore/KoMainWindowIface.cc create mode 100644 lib/kofficecore/KoMainWindowIface.h create mode 100644 lib/kofficecore/KoOasisLoadingContext.cpp create mode 100644 lib/kofficecore/KoOasisLoadingContext.h create mode 100644 lib/kofficecore/KoOasisSettings.cpp create mode 100644 lib/kofficecore/KoOasisSettings.h create mode 100644 lib/kofficecore/KoOasisStore.cpp create mode 100644 lib/kofficecore/KoOasisStore.h create mode 100644 lib/kofficecore/KoOasisStyles.cpp create mode 100644 lib/kofficecore/KoOasisStyles.h create mode 100644 lib/kofficecore/KoOpenPane.cpp create mode 100644 lib/kofficecore/KoOpenPane.h create mode 100644 lib/kofficecore/KoPageLayout.cpp create mode 100644 lib/kofficecore/KoPageLayout.h create mode 100644 lib/kofficecore/KoPicture.cpp create mode 100644 lib/kofficecore/KoPicture.h create mode 100644 lib/kofficecore/KoPictureBase.cpp create mode 100644 lib/kofficecore/KoPictureBase.h create mode 100644 lib/kofficecore/KoPictureClipart.cpp create mode 100644 lib/kofficecore/KoPictureClipart.h create mode 100644 lib/kofficecore/KoPictureCollection.cpp create mode 100644 lib/kofficecore/KoPictureCollection.h create mode 100644 lib/kofficecore/KoPictureEps.cpp create mode 100644 lib/kofficecore/KoPictureEps.h create mode 100644 lib/kofficecore/KoPictureImage.cpp create mode 100644 lib/kofficecore/KoPictureImage.h create mode 100644 lib/kofficecore/KoPictureKey.cpp create mode 100644 lib/kofficecore/KoPictureKey.h create mode 100644 lib/kofficecore/KoPictureShared.cpp create mode 100644 lib/kofficecore/KoPictureShared.h create mode 100644 lib/kofficecore/KoPictureWmf.cpp create mode 100644 lib/kofficecore/KoPictureWmf.h create mode 100644 lib/kofficecore/KoPoint.h create mode 100644 lib/kofficecore/KoQueryTrader.cpp create mode 100644 lib/kofficecore/KoQueryTrader.h create mode 100644 lib/kofficecore/KoRect.cpp create mode 100644 lib/kofficecore/KoRect.h create mode 100644 lib/kofficecore/KoSetPropCommand.h create mode 100644 lib/kofficecore/KoSize.h create mode 100644 lib/kofficecore/KoSpeaker.cpp create mode 100644 lib/kofficecore/KoSpeaker.h create mode 100644 lib/kofficecore/KoStyleStack.cpp create mode 100644 lib/kofficecore/KoStyleStack.h create mode 100644 lib/kofficecore/KoTemplates.cpp create mode 100644 lib/kofficecore/KoTemplates.h create mode 100644 lib/kofficecore/KoUnit.cpp create mode 100644 lib/kofficecore/KoUnit.h create mode 100644 lib/kofficecore/KoView.cpp create mode 100644 lib/kofficecore/KoView.h create mode 100644 lib/kofficecore/KoViewIface.cc create mode 100644 lib/kofficecore/KoViewIface.h create mode 100644 lib/kofficecore/KoXmlNS.cpp create mode 100644 lib/kofficecore/KoXmlNS.h create mode 100644 lib/kofficecore/KoXmlReader.cpp create mode 100644 lib/kofficecore/KoXmlReader.h create mode 100644 lib/kofficecore/Koversiondialog.cpp create mode 100644 lib/kofficecore/Koversiondialog.h create mode 100644 lib/kofficecore/Makefile.am create mode 100644 lib/kofficecore/THOUGHTS create mode 100644 lib/kofficecore/document-info.dtd create mode 100644 lib/kofficecore/kkbdaccessextensions.cpp create mode 100644 lib/kofficecore/kkbdaccessextensions.h create mode 100644 lib/kofficecore/koDetailsPaneBase.ui create mode 100644 lib/kofficecore/koDocumentInfoAboutWidget.ui create mode 100644 lib/kofficecore/koDocumentInfoAuthorWidget.ui create mode 100644 lib/kofficecore/koDocumentInfoUserMetadataWidget.ui create mode 100644 lib/kofficecore/koOpenPaneBase.ui create mode 100644 lib/kofficecore/kodocinfopropspage.desktop create mode 100644 lib/kofficecore/koffice_export.h create mode 100644 lib/kofficecore/koffice_shell.rc create mode 100644 lib/kofficecore/kofficeversion.cc create mode 100644 lib/kofficecore/kofficeversion.h create mode 100644 lib/kofficecore/priorityqueue.h create mode 100644 lib/kofficecore/tests/Makefile.am create mode 100644 lib/kofficecore/tests/filter_graph.cpp create mode 100644 lib/kofficecore/tests/filterchain_test.cpp create mode 100644 lib/kofficecore/tests/kodomtest.cpp create mode 100644 lib/kofficecore/tests/kogenstylestest.cpp create mode 100644 lib/kofficecore/tests/kooasissettingstest.cpp create mode 100644 lib/kofficecore/tests/kooasisstoretest.cpp create mode 100644 lib/kofficecore/tests/kopointtest.cpp create mode 100644 lib/kofficecore/tests/korecttest.cpp create mode 100644 lib/kofficecore/tests/koxmlreadertest.cpp create mode 100644 lib/kofficecore/tests/priorityqueue_test.cpp create mode 100644 lib/kofficeui/KoBrush.cpp create mode 100644 lib/kofficeui/KoBrush.h create mode 100644 lib/kofficeui/KoCharSelectDia.cpp create mode 100644 lib/kofficeui/KoCharSelectDia.h create mode 100644 lib/kofficeui/KoCommandHistory.cpp create mode 100644 lib/kofficeui/KoCommandHistory.h create mode 100644 lib/kofficeui/KoContextCelp.cpp create mode 100644 lib/kofficeui/KoContextCelp.h create mode 100644 lib/kofficeui/KoEditPath.cpp create mode 100644 lib/kofficeui/KoEditPath.h create mode 100644 lib/kofficeui/KoGeneralPropertyUi.ui create mode 100644 lib/kofficeui/KoGuideLineDia.cpp create mode 100644 lib/kofficeui/KoGuideLineDia.h create mode 100644 lib/kofficeui/KoGuides.cpp create mode 100644 lib/kofficeui/KoGuides.h create mode 100644 lib/kofficeui/KoImageResource.cpp create mode 100644 lib/kofficeui/KoImageResource.h create mode 100644 lib/kofficeui/KoInsertLink.cpp create mode 100644 lib/kofficeui/KoInsertLink.h create mode 100644 lib/kofficeui/KoKoolBar.cpp create mode 100644 lib/kofficeui/KoKoolBar.h create mode 100644 lib/kofficeui/KoPageLayoutColumns.cpp create mode 100644 lib/kofficeui/KoPageLayoutColumns.h create mode 100644 lib/kofficeui/KoPageLayoutColumnsBase.ui create mode 100644 lib/kofficeui/KoPageLayoutDia.cpp create mode 100644 lib/kofficeui/KoPageLayoutDia.h create mode 100644 lib/kofficeui/KoPageLayoutHeader.cpp create mode 100644 lib/kofficeui/KoPageLayoutHeader.h create mode 100644 lib/kofficeui/KoPageLayoutHeaderBase.ui create mode 100644 lib/kofficeui/KoPageLayoutSize.cpp create mode 100644 lib/kofficeui/KoPageLayoutSize.h create mode 100644 lib/kofficeui/KoPartSelectAction.cpp create mode 100644 lib/kofficeui/KoPartSelectAction.h create mode 100644 lib/kofficeui/KoPartSelectDia.cpp create mode 100644 lib/kofficeui/KoPartSelectDia.h create mode 100644 lib/kofficeui/KoPen.cpp create mode 100644 lib/kofficeui/KoPen.h create mode 100644 lib/kofficeui/KoPictureFilePreview.cpp create mode 100644 lib/kofficeui/KoPictureFilePreview.h create mode 100644 lib/kofficeui/KoRuler.cpp create mode 100644 lib/kofficeui/KoRuler.h create mode 100644 lib/kofficeui/KoSelectAction.cpp create mode 100644 lib/kofficeui/KoSelectAction.h create mode 100644 lib/kofficeui/KoTabBar.cpp create mode 100644 lib/kofficeui/KoTabBar.h create mode 100644 lib/kofficeui/KoTabChooser.cpp create mode 100644 lib/kofficeui/KoTabChooser.h create mode 100644 lib/kofficeui/KoTemplateChooseDia.cpp create mode 100644 lib/kofficeui/KoTemplateChooseDia.h create mode 100644 lib/kofficeui/KoTemplateCreateDia.cpp create mode 100644 lib/kofficeui/KoTemplateCreateDia.h create mode 100644 lib/kofficeui/KoToolBox.cpp create mode 100644 lib/kofficeui/KoToolBox.h create mode 100644 lib/kofficeui/KoTooluButton.cpp create mode 100644 lib/kofficeui/KoTooluButton.h create mode 100644 lib/kofficeui/KoUnitWidgets.cpp create mode 100644 lib/kofficeui/KoUnitWidgets.h create mode 100644 lib/kofficeui/KoZoomAction.cpp create mode 100644 lib/kofficeui/KoZoomAction.h create mode 100644 lib/kofficeui/KoZoomHandler.cpp create mode 100644 lib/kofficeui/KoZoomHandler.h create mode 100644 lib/kofficeui/KoZoomMode.cpp create mode 100644 lib/kofficeui/KoZoomMode.h create mode 100644 lib/kofficeui/Kolinestyleaction.cpp create mode 100644 lib/kofficeui/Kolinestyleaction.h create mode 100644 lib/kofficeui/Kolinewidthaction.cpp create mode 100644 lib/kofficeui/Kolinewidthaction.h create mode 100644 lib/kofficeui/Makefile.am create mode 100644 lib/kofficeui/kcoloractions.cpp create mode 100644 lib/kofficeui/kcoloractions.h create mode 100644 lib/kofficeui/koffice.widgets create mode 100644 lib/kofficeui/pics/Makefile.am create mode 100644 lib/kofficeui/pics/koKoolBarDown.png create mode 100644 lib/kofficeui/pics/koKoolBarUp.png create mode 100644 lib/kofficeui/pics/koLandscape.png create mode 100644 lib/kofficeui/pics/koPortrait.png create mode 100644 lib/kofficeui/pics/koRulerFirst.png create mode 100644 lib/kofficeui/pics/koRulerLeft.png create mode 100644 lib/kofficeui/pics/koffice-logo.png create mode 100644 lib/kofficeui/pics/kounitdoublecombobox.png create mode 100644 lib/kofficeui/pics/kounitdoublelineedit.png create mode 100644 lib/kofficeui/pics/kounitdoublespinbox2.png create mode 100644 lib/kofficeui/pics/kounitdoublespincombobox.png create mode 100644 lib/kofficeui/tests/Makefile.am create mode 100644 lib/kofficeui/tests/coloraction_test.cpp create mode 100644 lib/kofficeui/tests/coloraction_test.h create mode 100644 lib/kofficeui/tkaction.cpp create mode 100644 lib/kofficeui/tkaction.h create mode 100644 lib/kofficeui/tkcoloractions.cpp create mode 100644 lib/kofficeui/tkcoloractions.h create mode 100644 lib/kofficeui/tkcombobox.cpp create mode 100644 lib/kofficeui/tkcombobox.h create mode 100644 lib/kofficeui/tktoolbarbutton.cpp create mode 100644 lib/kofficeui/tktoolbarbutton.h create mode 100644 lib/kopainter/Makefile.am create mode 100644 lib/kopainter/koColor.cc create mode 100644 lib/kopainter/koColor.h create mode 100644 lib/kopainter/koColorChooser.cc create mode 100644 lib/kopainter/koColorChooser.h create mode 100644 lib/kopainter/koColorSlider.cc create mode 100644 lib/kopainter/koColorSlider.h create mode 100644 lib/kopainter/koFrameButton.cc create mode 100644 lib/kopainter/koFrameButton.h create mode 100644 lib/kopainter/koIconChooser.cc create mode 100644 lib/kopainter/koIconChooser.h create mode 100644 lib/kopainter/ko_cmyk_widget.cc create mode 100644 lib/kopainter/ko_cmyk_widget.h create mode 100644 lib/kopainter/ko_color_wheel.cc create mode 100644 lib/kopainter/ko_color_wheel.h create mode 100644 lib/kopainter/ko_gray_widget.cc create mode 100644 lib/kopainter/ko_gray_widget.h create mode 100644 lib/kopainter/ko_hsv_widget.cc create mode 100644 lib/kopainter/ko_hsv_widget.h create mode 100644 lib/kopainter/ko_rgb_widget.cc create mode 100644 lib/kopainter/ko_rgb_widget.h create mode 100644 lib/kopainter/kogradientmanager.cc create mode 100644 lib/kopainter/kogradientmanager.h create mode 100644 lib/kopainter/svgnamedcolors.h create mode 100644 lib/kopainter/svgpathparser.cc create mode 100644 lib/kopainter/svgpathparser.h create mode 100644 lib/kopalette/Makefile.am create mode 100644 lib/kopalette/kopalette.cc create mode 100644 lib/kopalette/kopalette.h create mode 100644 lib/kopalette/kopalettemanager.cc create mode 100644 lib/kopalette/kopalettemanager.h create mode 100644 lib/kopalette/kotabpalette.cc create mode 100644 lib/kopalette/kotabpalette.h create mode 100644 lib/kopalette/kotoolboxpalette.cc create mode 100644 lib/kopalette/kotoolboxpalette.h create mode 100644 lib/koproperty/Makefile.am create mode 100644 lib/koproperty/TODO create mode 100644 lib/koproperty/cr16-action-button_no.png create mode 100644 lib/koproperty/customproperty.cpp create mode 100644 lib/koproperty/customproperty.h create mode 100644 lib/koproperty/editor.cpp create mode 100644 lib/koproperty/editor.h create mode 100644 lib/koproperty/editoritem.cpp create mode 100644 lib/koproperty/editoritem.h create mode 100644 lib/koproperty/editors/Makefile.am create mode 100644 lib/koproperty/editors/booledit.cpp create mode 100644 lib/koproperty/editors/booledit.h create mode 100644 lib/koproperty/editors/coloredit.cpp create mode 100644 lib/koproperty/editors/coloredit.h create mode 100644 lib/koproperty/editors/combobox.cpp create mode 100644 lib/koproperty/editors/combobox.h create mode 100644 lib/koproperty/editors/cursoredit.cpp create mode 100644 lib/koproperty/editors/cursoredit.h create mode 100644 lib/koproperty/editors/dateedit.cpp create mode 100644 lib/koproperty/editors/dateedit.h create mode 100644 lib/koproperty/editors/datetimeedit.cpp create mode 100644 lib/koproperty/editors/datetimeedit.h create mode 100644 lib/koproperty/editors/dummywidget.cpp create mode 100644 lib/koproperty/editors/dummywidget.h create mode 100644 lib/koproperty/editors/fontedit.cpp create mode 100644 lib/koproperty/editors/fontedit.h create mode 100644 lib/koproperty/editors/linestyledit.cpp create mode 100644 lib/koproperty/editors/linestyleedit.h create mode 100644 lib/koproperty/editors/pixmapedit.cpp create mode 100644 lib/koproperty/editors/pixmapedit.h create mode 100644 lib/koproperty/editors/pointedit.cpp create mode 100644 lib/koproperty/editors/pointedit.h create mode 100644 lib/koproperty/editors/rectedit.cpp create mode 100644 lib/koproperty/editors/rectedit.h create mode 100644 lib/koproperty/editors/sizeedit.cpp create mode 100644 lib/koproperty/editors/sizeedit.h create mode 100644 lib/koproperty/editors/sizepolicyedit.cpp create mode 100644 lib/koproperty/editors/sizepolicyedit.h create mode 100644 lib/koproperty/editors/spinbox.cpp create mode 100644 lib/koproperty/editors/spinbox.h create mode 100644 lib/koproperty/editors/stringedit.cpp create mode 100644 lib/koproperty/editors/stringedit.h create mode 100644 lib/koproperty/editors/stringlistedit.cpp create mode 100644 lib/koproperty/editors/stringlistedit.h create mode 100644 lib/koproperty/editors/symbolcombo.cpp create mode 100644 lib/koproperty/editors/symbolcombo.h create mode 100644 lib/koproperty/editors/timeedit.cpp create mode 100644 lib/koproperty/editors/timeedit.h create mode 100644 lib/koproperty/editors/urledit.cpp create mode 100644 lib/koproperty/editors/urledit.h create mode 100644 lib/koproperty/factory.cpp create mode 100644 lib/koproperty/factory.h create mode 100644 lib/koproperty/koproperty_global.h create mode 100644 lib/koproperty/property.cpp create mode 100644 lib/koproperty/property.h create mode 100644 lib/koproperty/set.cpp create mode 100644 lib/koproperty/set.h create mode 100644 lib/koproperty/test/Makefile.am create mode 100644 lib/koproperty/test/main.cpp create mode 100644 lib/koproperty/test/test.cpp create mode 100644 lib/koproperty/test/test.h create mode 100644 lib/koproperty/utils.h create mode 100644 lib/koproperty/widget.cpp create mode 100644 lib/koproperty/widget.h create mode 100644 lib/koproperty/widgetproxy.cpp create mode 100644 lib/koproperty/widgetproxy.h create mode 100644 lib/kotext/AutoFormat create mode 100644 lib/kotext/DESIGN create mode 100644 lib/kotext/DateFormatWidget.cpp create mode 100644 lib/kotext/DateFormatWidget.h create mode 100644 lib/kotext/IsoDuration.h create mode 100644 lib/kotext/KFontDialog_local.cpp create mode 100644 lib/kotext/KFontDialog_local.h create mode 100644 lib/kotext/KoAutoFormat.cpp create mode 100644 lib/kotext/KoAutoFormat.h create mode 100644 lib/kotext/KoAutoFormatDia.cpp create mode 100644 lib/kotext/KoAutoFormatDia.h create mode 100644 lib/kotext/KoBgSpellCheck.cpp create mode 100644 lib/kotext/KoBgSpellCheck.h create mode 100644 lib/kotext/KoBorder.cpp create mode 100644 lib/kotext/KoBorder.h create mode 100644 lib/kotext/KoChangeCaseDia.cpp create mode 100644 lib/kotext/KoChangeCaseDia.h create mode 100644 lib/kotext/KoCommentDia.cpp create mode 100644 lib/kotext/KoCommentDia.h create mode 100644 lib/kotext/KoCompletionBase.ui create mode 100644 lib/kotext/KoCompletionDia.cpp create mode 100644 lib/kotext/KoCompletionDia.h create mode 100644 lib/kotext/KoComplexText.cpp create mode 100644 lib/kotext/KoComplexText.h create mode 100644 lib/kotext/KoCreateStyleDia.cpp create mode 100644 lib/kotext/KoCreateStyleDia.h create mode 100644 lib/kotext/KoCustomVariablesDia.cpp create mode 100644 lib/kotext/KoCustomVariablesDia.h create mode 100644 lib/kotext/KoDecorationTab.cpp create mode 100644 lib/kotext/KoDecorationTab.h create mode 100644 lib/kotext/KoFontDia.cpp create mode 100644 lib/kotext/KoFontDia.h create mode 100644 lib/kotext/KoFontDiaPreview.cpp create mode 100644 lib/kotext/KoFontDiaPreview.h create mode 100644 lib/kotext/KoFontTab.cpp create mode 100644 lib/kotext/KoFontTab.h create mode 100644 lib/kotext/KoHighlightingTab.cpp create mode 100644 lib/kotext/KoHighlightingTab.h create mode 100644 lib/kotext/KoImportStyleDia.cpp create mode 100644 lib/kotext/KoImportStyleDia.h create mode 100644 lib/kotext/KoLanguageTab.cpp create mode 100644 lib/kotext/KoLanguageTab.h create mode 100644 lib/kotext/KoLayoutTab.cpp create mode 100644 lib/kotext/KoLayoutTab.h create mode 100644 lib/kotext/KoListStyleStack.cpp create mode 100644 lib/kotext/KoListStyleStack.h create mode 100644 lib/kotext/KoOasisContext.cpp create mode 100644 lib/kotext/KoOasisContext.h create mode 100644 lib/kotext/KoParagCounter.cpp create mode 100644 lib/kotext/KoParagCounter.h create mode 100644 lib/kotext/KoParagDecorationTab.ui create mode 100644 lib/kotext/KoParagDia.cpp create mode 100644 lib/kotext/KoParagDia.h create mode 100644 lib/kotext/KoParagDia_p.h create mode 100644 lib/kotext/KoParagLayout.cpp create mode 100644 lib/kotext/KoParagLayout.h create mode 100644 lib/kotext/KoParagStyle.cpp create mode 100644 lib/kotext/KoParagStyle.h create mode 100644 lib/kotext/KoRichText.cpp create mode 100644 lib/kotext/KoRichText.h create mode 100644 lib/kotext/KoSearchDia.cpp create mode 100644 lib/kotext/KoSearchDia.h create mode 100644 lib/kotext/KoSpell.cpp create mode 100644 lib/kotext/KoSpell.h create mode 100644 lib/kotext/KoStyleCollection.cpp create mode 100644 lib/kotext/KoStyleCollection.h create mode 100644 lib/kotext/KoStyleManager.cpp create mode 100644 lib/kotext/KoStyleManager.h create mode 100644 lib/kotext/KoTextBookmark.cpp create mode 100644 lib/kotext/KoTextBookmark.h create mode 100644 lib/kotext/KoTextCommand.cpp create mode 100644 lib/kotext/KoTextCommand.h create mode 100644 lib/kotext/KoTextCustomItem.cpp create mode 100644 lib/kotext/KoTextCustomItem.h create mode 100644 lib/kotext/KoTextDocument.cpp create mode 100644 lib/kotext/KoTextDocument.h create mode 100644 lib/kotext/KoTextFormat.cpp create mode 100644 lib/kotext/KoTextFormat.h create mode 100644 lib/kotext/KoTextFormatter.cpp create mode 100644 lib/kotext/KoTextFormatter.h create mode 100644 lib/kotext/KoTextIterator.cpp create mode 100644 lib/kotext/KoTextIterator.h create mode 100644 lib/kotext/KoTextObject.cpp create mode 100644 lib/kotext/KoTextObject.h create mode 100644 lib/kotext/KoTextParag.cpp create mode 100644 lib/kotext/KoTextParag.h create mode 100644 lib/kotext/KoTextView.cpp create mode 100644 lib/kotext/KoTextView.h create mode 100644 lib/kotext/KoTextViewIface.cc create mode 100644 lib/kotext/KoTextViewIface.h create mode 100644 lib/kotext/KoTextZoomHandler.cpp create mode 100644 lib/kotext/KoTextZoomHandler.h create mode 100644 lib/kotext/KoUserStyle.cpp create mode 100644 lib/kotext/KoUserStyle.h create mode 100644 lib/kotext/KoUserStyleCollection.cpp create mode 100644 lib/kotext/KoUserStyleCollection.h create mode 100644 lib/kotext/KoVariable.cpp create mode 100644 lib/kotext/KoVariable.h create mode 100644 lib/kotext/Makefile.am create mode 100644 lib/kotext/TODO create mode 100644 lib/kotext/TimeFormatWidget.cpp create mode 100644 lib/kotext/TimeFormatWidget.h create mode 100644 lib/kotext/configure.in.bot create mode 100644 lib/kotext/configure.in.in create mode 100644 lib/kotext/kodecorationtabbase.ui create mode 100644 lib/kotext/kofonttabbase.ui create mode 100644 lib/kotext/kohighlightingtabbase.ui create mode 100644 lib/kotext/kohyphen/Makefile.am create mode 100644 lib/kotext/kohyphen/hnjalloc.c create mode 100644 lib/kotext/kohyphen/hnjalloc.h create mode 100644 lib/kotext/kohyphen/hyphdicts/Makefile.am create mode 100644 lib/kotext/kohyphen/hyphdicts/dicts.xml create mode 100644 lib/kotext/kohyphen/hyphdicts/hyph_cs.dic create mode 100644 lib/kotext/kohyphen/hyphdicts/hyph_da.dic create mode 100644 lib/kotext/kohyphen/hyphdicts/hyph_de.dic create mode 100644 lib/kotext/kohyphen/hyphdicts/hyph_en.dic create mode 100644 lib/kotext/kohyphen/hyphdicts/hyph_en_CA.dic create mode 100644 lib/kotext/kohyphen/hyphdicts/hyph_es.dic create mode 100644 lib/kotext/kohyphen/hyphdicts/hyph_et.dic create mode 100644 lib/kotext/kohyphen/hyphdicts/hyph_fr.dic create mode 100644 lib/kotext/kohyphen/hyphdicts/hyph_hu.dic create mode 100644 lib/kotext/kohyphen/hyphdicts/hyph_it.dic create mode 100644 lib/kotext/kohyphen/hyphdicts/hyph_nl.dic create mode 100644 lib/kotext/kohyphen/hyphdicts/hyph_pt.dic create mode 100644 lib/kotext/kohyphen/hyphdicts/hyph_pt_BR.dic create mode 100644 lib/kotext/kohyphen/hyphdicts/hyph_pt_PT.dic create mode 100644 lib/kotext/kohyphen/hyphdicts/hyph_ru.dic create mode 100644 lib/kotext/kohyphen/hyphdicts/hyph_sk.dic create mode 100644 lib/kotext/kohyphen/hyphdicts/hyph_sl.dic create mode 100755 lib/kotext/kohyphen/hyphdicts/hyph_sv.dic create mode 100644 lib/kotext/kohyphen/hyphdicts/hyph_uk.dic create mode 100644 lib/kotext/kohyphen/hyphen.c create mode 100644 lib/kotext/kohyphen/hyphen.h create mode 100644 lib/kotext/kohyphen/kohyphen.cpp create mode 100644 lib/kotext/kohyphen/kohyphen.h create mode 100644 lib/kotext/kohyphen/kohyphentest.cpp create mode 100644 lib/kotext/kolanguagetabbase.ui create mode 100644 lib/kotext/kolayouttabbase.ui create mode 100644 lib/kotext/tests/KoUserStyleTester.cpp create mode 100644 lib/kotext/tests/KoUserStyleTester.h create mode 100644 lib/kotext/tests/Makefile.am create mode 100644 lib/kotext/tests/kobordertest.cpp create mode 100644 lib/kotext/tests/kotextformattertest.cpp create mode 100644 lib/kotext/tests/kovariabletest.cpp create mode 100644 lib/kotext/timedateformatwidget.ui create mode 100644 lib/kross/CHANGES create mode 100644 lib/kross/Makefile.am create mode 100644 lib/kross/Makefile.global create mode 100644 lib/kross/api/Makefile.am create mode 100644 lib/kross/api/callable.cpp create mode 100644 lib/kross/api/callable.h create mode 100644 lib/kross/api/class.h create mode 100644 lib/kross/api/dict.cpp create mode 100644 lib/kross/api/dict.h create mode 100644 lib/kross/api/event.h create mode 100644 lib/kross/api/eventaction.cpp create mode 100644 lib/kross/api/eventaction.h create mode 100644 lib/kross/api/eventscript.cpp create mode 100644 lib/kross/api/eventscript.h create mode 100644 lib/kross/api/eventsignal.cpp create mode 100644 lib/kross/api/eventsignal.h create mode 100644 lib/kross/api/eventslot.cpp create mode 100644 lib/kross/api/eventslot.h create mode 100644 lib/kross/api/exception.cpp create mode 100644 lib/kross/api/exception.h create mode 100644 lib/kross/api/function.h create mode 100644 lib/kross/api/interpreter.cpp create mode 100644 lib/kross/api/interpreter.h create mode 100644 lib/kross/api/list.cpp create mode 100644 lib/kross/api/list.h create mode 100644 lib/kross/api/module.h create mode 100644 lib/kross/api/object.cpp create mode 100644 lib/kross/api/object.h create mode 100644 lib/kross/api/proxy.h create mode 100644 lib/kross/api/qtobject.cpp create mode 100644 lib/kross/api/qtobject.h create mode 100644 lib/kross/api/script.cpp create mode 100644 lib/kross/api/script.h create mode 100644 lib/kross/api/value.h create mode 100644 lib/kross/api/variant.cpp create mode 100644 lib/kross/api/variant.h create mode 100644 lib/kross/configure.in.bot create mode 100644 lib/kross/configure.in.in create mode 100644 lib/kross/main/Makefile.am create mode 100644 lib/kross/main/krossconfig.cpp create mode 100644 lib/kross/main/krossconfig.h create mode 100644 lib/kross/main/mainmodule.cpp create mode 100644 lib/kross/main/mainmodule.h create mode 100644 lib/kross/main/manager.cpp create mode 100644 lib/kross/main/manager.h create mode 100644 lib/kross/main/scriptaction.cpp create mode 100644 lib/kross/main/scriptaction.h create mode 100644 lib/kross/main/scriptcontainer.cpp create mode 100644 lib/kross/main/scriptcontainer.h create mode 100644 lib/kross/main/scriptguiclient.cpp create mode 100644 lib/kross/main/scriptguiclient.h create mode 100644 lib/kross/main/wdgscriptsmanager.cpp create mode 100644 lib/kross/main/wdgscriptsmanager.h create mode 100644 lib/kross/main/wdgscriptsmanagerbase.ui create mode 100644 lib/kross/python/Makefile.am create mode 100644 lib/kross/python/cxx/Config.hxx create mode 100644 lib/kross/python/cxx/Exception.hxx create mode 100644 lib/kross/python/cxx/Extensions.hxx create mode 100644 lib/kross/python/cxx/IndirectPythonInterface.cxx create mode 100644 lib/kross/python/cxx/IndirectPythonInterface.hxx create mode 100755 lib/kross/python/cxx/Legal.html create mode 100644 lib/kross/python/cxx/Makefile.am create mode 100644 lib/kross/python/cxx/Objects.hxx create mode 100644 lib/kross/python/cxx/PyCXX.html create mode 100644 lib/kross/python/cxx/README.html create mode 100644 lib/kross/python/cxx/Readme.Kross.txt create mode 100644 lib/kross/python/cxx/Version.txt create mode 100644 lib/kross/python/cxx/cxx_extensions.cxx create mode 100644 lib/kross/python/cxx/cxxextensions.c create mode 100644 lib/kross/python/cxx/cxxsupport.cxx create mode 100644 lib/kross/python/pythonconfig.h create mode 100644 lib/kross/python/pythonextension.cpp create mode 100644 lib/kross/python/pythonextension.h create mode 100644 lib/kross/python/pythoninterpreter.cpp create mode 100644 lib/kross/python/pythoninterpreter.h create mode 100644 lib/kross/python/pythonmodule.cpp create mode 100644 lib/kross/python/pythonmodule.h create mode 100644 lib/kross/python/pythonobject.cpp create mode 100644 lib/kross/python/pythonobject.h create mode 100644 lib/kross/python/pythonscript.cpp create mode 100644 lib/kross/python/pythonscript.h create mode 100644 lib/kross/python/pythonsecurity.cpp create mode 100644 lib/kross/python/pythonsecurity.h create mode 100644 lib/kross/python/scripts/Makefile.am create mode 100644 lib/kross/python/scripts/RestrictedPython/Eval.py create mode 100644 lib/kross/python/scripts/RestrictedPython/Guards.py create mode 100644 lib/kross/python/scripts/RestrictedPython/Limits.py create mode 100644 lib/kross/python/scripts/RestrictedPython/Makefile.am create mode 100644 lib/kross/python/scripts/RestrictedPython/MutatingWalker.py create mode 100644 lib/kross/python/scripts/RestrictedPython/PrintCollector.py create mode 100644 lib/kross/python/scripts/RestrictedPython/RCompile.py create mode 100644 lib/kross/python/scripts/RestrictedPython/RestrictionMutator.py create mode 100644 lib/kross/python/scripts/RestrictedPython/SelectCompiler.py create mode 100644 lib/kross/python/scripts/RestrictedPython/Utilities.py create mode 100644 lib/kross/python/scripts/RestrictedPython/__init__.py create mode 100755 lib/kross/python/scripts/gui.py create mode 100644 lib/kross/readme.dox create mode 100644 lib/kross/ruby/Makefile.am create mode 100644 lib/kross/ruby/rubyconfig.h create mode 100644 lib/kross/ruby/rubyextension.cpp create mode 100644 lib/kross/ruby/rubyextension.h create mode 100644 lib/kross/ruby/rubyinterpreter.cpp create mode 100644 lib/kross/ruby/rubyinterpreter.h create mode 100644 lib/kross/ruby/rubymodule.cpp create mode 100644 lib/kross/ruby/rubymodule.h create mode 100644 lib/kross/ruby/rubyscript.cpp create mode 100644 lib/kross/ruby/rubyscript.h create mode 100644 lib/kross/runner/Makefile.am create mode 100644 lib/kross/runner/main.cpp create mode 100644 lib/kross/test/Makefile.am create mode 100644 lib/kross/test/main.cpp create mode 100644 lib/kross/test/testaction.cpp create mode 100644 lib/kross/test/testaction.h create mode 100644 lib/kross/test/testcase.py create mode 100644 lib/kross/test/testcase.rb create mode 100644 lib/kross/test/testgui.py create mode 100644 lib/kross/test/testkexidb.py create mode 100644 lib/kross/test/testobject.cpp create mode 100644 lib/kross/test/testobject.h create mode 100755 lib/kross/test/testperformance.py create mode 100644 lib/kross/test/testplugin.cpp create mode 100644 lib/kross/test/testplugin.h create mode 100644 lib/kross/test/testscripting.rc create mode 100644 lib/kross/test/testwindow.cpp create mode 100644 lib/kross/test/testwindow.h create mode 100644 lib/kwmf/Makefile.am create mode 100644 lib/kwmf/kowmfpaint.cc create mode 100644 lib/kwmf/kowmfpaint.h create mode 100644 lib/kwmf/kowmfread.cc create mode 100644 lib/kwmf/kowmfread.h create mode 100644 lib/kwmf/kowmfreadprivate.cc create mode 100644 lib/kwmf/kowmfreadprivate.h create mode 100644 lib/kwmf/kowmfstack.cc create mode 100644 lib/kwmf/kowmfstack.h create mode 100644 lib/kwmf/kowmfstruct.h create mode 100644 lib/kwmf/kowmfwrite.cc create mode 100644 lib/kwmf/kowmfwrite.h create mode 100644 lib/kwmf/kwmf.cc create mode 100644 lib/kwmf/kwmf.h create mode 100644 lib/kwmf/metafuncs.h create mode 100644 lib/kwmf/qwmf.cc create mode 100644 lib/kwmf/qwmf.h create mode 100644 lib/kwmf/wmfstruct.h create mode 100644 lib/store/KoDirectoryStore.cpp create mode 100644 lib/store/KoDirectoryStore.h create mode 100644 lib/store/KoStore.cpp create mode 100644 lib/store/KoStore.h create mode 100644 lib/store/KoStoreBase.cpp create mode 100644 lib/store/KoStoreBase.h create mode 100644 lib/store/KoStoreDevice.h create mode 100644 lib/store/KoStoreDrag.cpp create mode 100644 lib/store/KoStoreDrag.h create mode 100644 lib/store/KoTarStore.cpp create mode 100644 lib/store/KoTarStore.h create mode 100644 lib/store/KoXmlWriter.cpp create mode 100644 lib/store/KoXmlWriter.h create mode 100644 lib/store/KoZipStore.cpp create mode 100644 lib/store/KoZipStore.h create mode 100644 lib/store/Makefile.am create mode 100644 lib/store/SPEC create mode 100644 lib/store/fix_storage.pl create mode 100644 lib/store/tests/Makefile.am create mode 100644 lib/store/tests/storage_test.cpp create mode 100644 lib/store/tests/storedroptest.cpp create mode 100644 lib/store/tests/xmlwritertest.cpp create mode 100644 lib/store/tests/xmlwritertest.h create mode 100644 lib/store/update_kzip.sh create mode 100755 lib/templatescript.sh create mode 100644 mimetypes/Makefile.am create mode 100644 mimetypes/kde33/Makefile.am create mode 100644 mimetypes/kde33/vnd.oasis.opendocument.chart.desktop create mode 100644 mimetypes/kde33/vnd.oasis.opendocument.formula.desktop create mode 100644 mimetypes/kde33/vnd.oasis.opendocument.graphics-template.desktop create mode 100644 mimetypes/kde33/vnd.oasis.opendocument.graphics.desktop create mode 100644 mimetypes/kde33/vnd.oasis.opendocument.image.desktop create mode 100644 mimetypes/kde33/vnd.oasis.opendocument.presentation-template.desktop create mode 100644 mimetypes/kde33/vnd.oasis.opendocument.presentation.desktop create mode 100644 mimetypes/kde33/vnd.oasis.opendocument.spreadsheet-template.desktop create mode 100644 mimetypes/kde33/vnd.oasis.opendocument.spreadsheet.desktop create mode 100644 mimetypes/kde33/vnd.oasis.opendocument.text-template.desktop create mode 100644 mimetypes/kde33/vnd.oasis.opendocument.text.desktop create mode 100644 mimetypes/kde351/Makefile.am create mode 100644 mimetypes/kde351/x-raw.desktop create mode 100644 pics/Makefile.am create mode 100644 pics/crystalsvg/Makefile.am create mode 100644 pics/crystalsvg/cr16-action-borderoutline.png create mode 100644 pics/crystalsvg/cr16-action-bring_forward.png create mode 100644 pics/crystalsvg/cr16-action-color_fill.png create mode 100644 pics/crystalsvg/cr16-action-color_line.png create mode 100644 pics/crystalsvg/cr16-action-delete_table_col.png create mode 100644 pics/crystalsvg/cr16-action-delete_table_row.png create mode 100644 pics/crystalsvg/cr16-action-documentinfo.png create mode 100644 pics/crystalsvg/cr16-action-enumList.png create mode 100644 pics/crystalsvg/cr16-action-fontsizedown.png create mode 100644 pics/crystalsvg/cr16-action-fontsizeup.png create mode 100644 pics/crystalsvg/cr16-action-format_decreaseindent.png create mode 100644 pics/crystalsvg/cr16-action-format_increaseindent.png create mode 100644 pics/crystalsvg/cr16-action-frame_edit.png create mode 100644 pics/crystalsvg/cr16-action-frame_formula.png create mode 100644 pics/crystalsvg/cr16-action-frame_image.png create mode 100644 pics/crystalsvg/cr16-action-frame_query.png create mode 100644 pics/crystalsvg/cr16-action-frame_spreadsheet.png create mode 100644 pics/crystalsvg/cr16-action-frame_text.png create mode 100644 pics/crystalsvg/cr16-action-inline_image.png create mode 100644 pics/crystalsvg/cr16-action-inline_table.png create mode 100644 pics/crystalsvg/cr16-action-insert_table_col.png create mode 100644 pics/crystalsvg/cr16-action-insert_table_row.png create mode 100644 pics/crystalsvg/cr16-action-kdb_form.png create mode 100644 pics/crystalsvg/cr16-action-kdb_table.png create mode 100644 pics/crystalsvg/cr16-action-linewidth.png create mode 100644 pics/crystalsvg/cr16-action-send_backward.png create mode 100644 pics/crystalsvg/cr16-action-spacedouble.png create mode 100644 pics/crystalsvg/cr16-action-spacesimple.png create mode 100644 pics/crystalsvg/cr16-action-spacetriple.png create mode 100644 pics/crystalsvg/cr16-action-tab_first.png create mode 100644 pics/crystalsvg/cr16-action-tab_last.png create mode 100644 pics/crystalsvg/cr16-action-tab_left.png create mode 100644 pics/crystalsvg/cr16-action-tab_right.png create mode 100644 pics/crystalsvg/cr16-action-text_sub.png create mode 100644 pics/crystalsvg/cr16-action-text_super.png create mode 100644 pics/crystalsvg/cr16-action-textcolor.png create mode 100644 pics/crystalsvg/cr16-action-unsortedList.png create mode 100644 pics/crystalsvg/cr16-action-view_orientation.png create mode 100644 pics/crystalsvg/cr16-action-view_remove.png create mode 100644 pics/crystalsvg/cr16-action-view_split.png create mode 100644 pics/crystalsvg/cr16-app-go.png create mode 100644 pics/crystalsvg/cr16-app-key_bindings.png create mode 100644 pics/crystalsvg/cr16-app-style.png create mode 100644 pics/crystalsvg/cr22-action-aobottom.png create mode 100644 pics/crystalsvg/cr22-action-aocenterh.png create mode 100644 pics/crystalsvg/cr22-action-aocenterv.png create mode 100644 pics/crystalsvg/cr22-action-aoleft.png create mode 100644 pics/crystalsvg/cr22-action-aoright.png create mode 100644 pics/crystalsvg/cr22-action-aotop.png create mode 100644 pics/crystalsvg/cr22-action-borderbottom.png create mode 100644 pics/crystalsvg/cr22-action-borderleft.png create mode 100644 pics/crystalsvg/cr22-action-borderoutline.png create mode 100644 pics/crystalsvg/cr22-action-borderright.png create mode 100644 pics/crystalsvg/cr22-action-bordertop.png create mode 100644 pics/crystalsvg/cr22-action-bring_forward.png create mode 100644 pics/crystalsvg/cr22-action-cancel.png create mode 100644 pics/crystalsvg/cr22-action-char.png create mode 100644 pics/crystalsvg/cr22-action-clipart.png create mode 100644 pics/crystalsvg/cr22-action-clipart_from_file.png create mode 100644 pics/crystalsvg/cr22-action-color_fill.png create mode 100644 pics/crystalsvg/cr22-action-color_line.png create mode 100644 pics/crystalsvg/cr22-action-delete_table_col.png create mode 100644 pics/crystalsvg/cr22-action-delete_table_row.png create mode 100644 pics/crystalsvg/cr22-action-delslide.png create mode 100644 pics/crystalsvg/cr22-action-enumList.png create mode 100644 pics/crystalsvg/cr22-action-fontsizedown.png create mode 100644 pics/crystalsvg/cr22-action-fontsizeup.png create mode 100644 pics/crystalsvg/cr22-action-format_decreaseindent.png create mode 100644 pics/crystalsvg/cr22-action-format_increaseindent.png create mode 100644 pics/crystalsvg/cr22-action-frame_chart.png create mode 100644 pics/crystalsvg/cr22-action-frame_edit.png create mode 100644 pics/crystalsvg/cr22-action-frame_formula.png create mode 100644 pics/crystalsvg/cr22-action-frame_image.png create mode 100644 pics/crystalsvg/cr22-action-frame_query.png create mode 100644 pics/crystalsvg/cr22-action-frame_spreadsheet.png create mode 100644 pics/crystalsvg/cr22-action-frame_text.png create mode 100644 pics/crystalsvg/cr22-action-group.png create mode 100644 pics/crystalsvg/cr22-action-inline_image.png create mode 100644 pics/crystalsvg/cr22-action-inline_table.png create mode 100644 pics/crystalsvg/cr22-action-insert_table_col.png create mode 100644 pics/crystalsvg/cr22-action-insert_table_row.png create mode 100644 pics/crystalsvg/cr22-action-lower.png create mode 100644 pics/crystalsvg/cr22-action-neonpen.png create mode 100644 pics/crystalsvg/cr22-action-newslide.png create mode 100644 pics/crystalsvg/cr22-action-ok.png create mode 100644 pics/crystalsvg/cr22-action-page.png create mode 100644 pics/crystalsvg/cr22-action-raise.png create mode 100644 pics/crystalsvg/cr22-action-select.png create mode 100644 pics/crystalsvg/cr22-action-send_backward.png create mode 100644 pics/crystalsvg/cr22-action-shadow.png create mode 100644 pics/crystalsvg/cr22-action-shadowB.png create mode 100644 pics/crystalsvg/cr22-action-shadowL.png create mode 100644 pics/crystalsvg/cr22-action-shadowLB.png create mode 100644 pics/crystalsvg/cr22-action-shadowLU.png create mode 100644 pics/crystalsvg/cr22-action-shadowR.png create mode 100644 pics/crystalsvg/cr22-action-shadowRB.png create mode 100644 pics/crystalsvg/cr22-action-shadowRU.png create mode 100644 pics/crystalsvg/cr22-action-shadowU.png create mode 100644 pics/crystalsvg/cr22-action-slide.png create mode 100644 pics/crystalsvg/cr22-action-spacedouble.png create mode 100644 pics/crystalsvg/cr22-action-spacesimple.png create mode 100644 pics/crystalsvg/cr22-action-spacetriple.png create mode 100644 pics/crystalsvg/cr22-action-sub.png create mode 100644 pics/crystalsvg/cr22-action-super.png create mode 100644 pics/crystalsvg/cr22-action-toggle_docbrowser.png create mode 100644 pics/crystalsvg/cr22-action-ungroup.png create mode 100644 pics/crystalsvg/cr22-action-unsortedList.png create mode 100644 pics/crystalsvg/cr22-action-view_remove.png create mode 100644 pics/crystalsvg/cr32-action-bring_forward.png create mode 100644 pics/crystalsvg/cr32-action-delete_table_col.png create mode 100644 pics/crystalsvg/cr32-action-delete_table_row.png create mode 100644 pics/crystalsvg/cr32-action-fontsizedown.png create mode 100644 pics/crystalsvg/cr32-action-fontsizeup.png create mode 100644 pics/crystalsvg/cr32-action-grid.png create mode 100644 pics/crystalsvg/cr32-action-insert_table_col.png create mode 100644 pics/crystalsvg/cr32-action-insert_table_row.png create mode 100644 pics/crystalsvg/cr32-action-send_backward.png create mode 100644 pics/crystalsvg/cr32-action-sort_az.png create mode 100644 pics/crystalsvg/cr32-action-spacedouble.png create mode 100644 pics/crystalsvg/cr32-action-spacesimple.png create mode 100644 pics/crystalsvg/cr32-action-spacetriple.png create mode 100644 pics/crystalsvg/cr32-action-view_remove.png create mode 100644 pics/crystalsvg/cr32-app-go.png create mode 100644 pics/crystalsvg/cr48-action-bring_forward.png create mode 100644 pics/crystalsvg/cr48-action-fontsizedown.png create mode 100644 pics/crystalsvg/cr48-action-fontsizeup.png create mode 100644 pics/crystalsvg/cr48-action-send_backward.png create mode 100644 pics/crystalsvg/cr48-action-spacedouble.png create mode 100644 pics/crystalsvg/cr48-action-spacesimple.png create mode 100644 pics/crystalsvg/cr48-action-spacetriple.png create mode 100644 pics/crystalsvg/cr48-app-key_bindings.png create mode 100644 pics/crystalsvg/crsc-action-bring_forward.svgz create mode 100644 pics/crystalsvg/crsc-action-send_backward.svgz create mode 100644 pics/crystalsvg/crsc-action-spacedouble.svgz create mode 100644 pics/crystalsvg/crsc-action-spacesimple.svgz create mode 100644 pics/crystalsvg/crsc-action-spacetriple.svgz create mode 100644 plugins/Makefile.am create mode 100644 plugins/scan/Makefile.am create mode 100644 plugins/scan/scan-kpresenter.rc create mode 100644 plugins/scan/scan-krita.rc create mode 100644 plugins/scan/scan-kword.rc create mode 100644 plugins/scan/scan.cpp create mode 100644 plugins/scan/scan.h create mode 100644 servicetypes/Makefile.am create mode 100644 servicetypes/kochart.desktop create mode 100644 servicetypes/kofficepart.desktop create mode 100644 servicetypes/kofilter.desktop create mode 100644 servicetypes/kofilterwrapper.desktop create mode 100644 servicetypes/koplugin.desktop create mode 100644 stamp-h.in create mode 100644 subdirs create mode 100644 templates/Illustration.desktop create mode 100644 templates/Illustration.karbon create mode 100644 templates/Makefile.am create mode 100644 templates/Presentation.desktop create mode 100644 templates/Presentation.kpt create mode 100644 templates/README create mode 100644 templates/SpreadSheet.desktop create mode 100644 templates/SpreadSheet.kst create mode 100644 templates/TextDocument.desktop create mode 100644 templates/TextDocument.kwt create mode 100644 templates/insert_ident_string.sh create mode 100644 tools/Makefile.am create mode 100644 tools/README create mode 100644 tools/converter/Makefile.am create mode 100644 tools/converter/koconverter.cpp create mode 100644 tools/converter/koconverter.h create mode 100644 tools/kfile-plugins/Makefile.am create mode 100644 tools/kfile-plugins/RETURNED_ITEMS create mode 100644 tools/kfile-plugins/abiword/Makefile.am create mode 100644 tools/kfile-plugins/abiword/kfile_abiword.cpp create mode 100644 tools/kfile-plugins/abiword/kfile_abiword.desktop create mode 100644 tools/kfile-plugins/abiword/kfile_abiword.h create mode 100644 tools/kfile-plugins/gnumeric/Makefile.am create mode 100644 tools/kfile-plugins/gnumeric/kfile_gnumeric.cpp create mode 100644 tools/kfile-plugins/gnumeric/kfile_gnumeric.desktop create mode 100644 tools/kfile-plugins/gnumeric/kfile_gnumeric.h create mode 100644 tools/kfile-plugins/koffice/Makefile.am create mode 100644 tools/kfile-plugins/koffice/kfile_koffice.cpp create mode 100644 tools/kfile-plugins/koffice/kfile_koffice.desktop create mode 100644 tools/kfile-plugins/koffice/kfile_koffice.h create mode 100644 tools/kfile-plugins/ooo/Makefile.am create mode 100644 tools/kfile-plugins/ooo/kfile_ooo.cpp create mode 100644 tools/kfile-plugins/ooo/kfile_ooo.desktop create mode 100644 tools/kfile-plugins/ooo/kfile_ooo.h create mode 100644 tools/kthesaurus/KThesaurus.desktop create mode 100644 tools/kthesaurus/Makefile.am create mode 100644 tools/kthesaurus/README create mode 100644 tools/kthesaurus/main.cc create mode 100644 tools/quickprint/Makefile.am create mode 100644 tools/quickprint/karbon_konqi.desktop create mode 100644 tools/quickprint/kchart_konqi.desktop create mode 100644 tools/quickprint/kexi_konqi.desktop create mode 100644 tools/quickprint/kformula_konqi.desktop create mode 100644 tools/quickprint/kivio_konqi.desktop create mode 100644 tools/quickprint/kpresenter_konqi.desktop create mode 100644 tools/quickprint/krita_konqi.desktop create mode 100644 tools/quickprint/kspread_konqi.desktop create mode 100644 tools/quickprint/kword_konqi.desktop create mode 100755 tools/scripts/check_koffice_install.sh create mode 100755 tools/scripts/check_msword_import.sh create mode 100755 tools/scripts/gdb_output_to_text.pl create mode 100644 tools/scripts/koffice-devel-gdb create mode 100644 tools/spell/Makefile.am create mode 100644 tools/spell/kspelltool.desktop create mode 100644 tools/spell/main.cc create mode 100644 tools/spell/main.h create mode 100644 tools/spell/uninstall.desktop create mode 100644 tools/thesaurus/Makefile.am create mode 100644 tools/thesaurus/README create mode 100755 tools/thesaurus/extract.pl create mode 100644 tools/thesaurus/main.cc create mode 100644 tools/thesaurus/main.h create mode 100644 tools/thesaurus/thesaurus.txt create mode 100644 tools/thesaurus/thesaurustool.desktop create mode 100644 tools/thumbnail/Makefile.am create mode 100644 tools/thumbnail/clipartcreator.cpp create mode 100644 tools/thumbnail/clipartcreator.h create mode 100644 tools/thumbnail/clipartthumbnail.desktop create mode 100644 tools/thumbnail/kofficecreator.cpp create mode 100644 tools/thumbnail/kofficecreator.h create mode 100644 tools/thumbnail/kofficethumbnail.desktop create mode 100644 tools/thumbnail/otherofficethumbnail.desktop create mode 100644 vpat_koffice1.4.1.sxw diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 000000000..f47405b82 --- /dev/null +++ b/AUTHORS @@ -0,0 +1 @@ +See in the each subdirectory for the authors of each KOffice application/filter. diff --git a/COPYING b/COPYING new file mode 100644 index 000000000..2e6a0b73d --- /dev/null +++ b/COPYING @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) 19yy + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) 19yy name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/COPYING.LIB b/COPYING.LIB new file mode 100644 index 000000000..788ed3e53 --- /dev/null +++ b/COPYING.LIB @@ -0,0 +1,486 @@ +NOTE! The LGPL below is copyrighted by the Free Software Foundation, but +the instance of code that it refers to (parts of koffice) are copyrighted +by the authors who actually wrote it. + +--------------------------------------------------------------------------- + GNU LIBRARY GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1991 Free Software Foundation, Inc. + 51 Franklin Street, Suite 330 + Boston, MA 02110-1301, USA. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the library GPL. It is + numbered 2 because it goes with version 2 of the ordinary GPL.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Library General Public License, applies to some +specially designated Free Software Foundation software, and to any +other libraries whose authors decide to use it. You can use it for +your libraries, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if +you distribute copies of the library, or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link a program with the library, you must provide +complete object files to the recipients so that they can relink them +with the library, after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + Our method of protecting your rights has two steps: (1) copyright +the library, and (2) offer you this license which gives you legal +permission to copy, distribute and/or modify the library. + + Also, for each distributor's protection, we want to make certain +that everyone understands that there is no warranty for this free +library. If the library is modified by someone else and passed on, we +want its recipients to know that what they have is not the original +version, so that any problems introduced by others will not reflect on +the original authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that companies distributing free +software will individually obtain patent licenses, thus in effect +transforming the program into proprietary software. To prevent this, +we have made it clear that any patent must be licensed for everyone's +free use or not licensed at all. + + Most GNU software, including some libraries, is covered by the ordinary +GNU General Public License, which was designed for utility programs. This +license, the GNU Library General Public License, applies to certain +designated libraries. This license is quite different from the ordinary +one; be sure to read it in full, and don't assume that anything in it is +the same as in the ordinary license. + + The reason we have a separate public license for some libraries is that +they blur the distinction we usually make between modifying or adding to a +program and simply using it. Linking a program with a library, without +changing the library, is in some sense simply using the library, and is +analogous to running a utility program or application program. However, in +a textual and legal sense, the linked executable is a combined work, a +derivative of the original library, and the ordinary General Public License +treats it as such. + + Because of this blurred distinction, using the ordinary General +Public License for libraries did not effectively promote software +sharing, because most developers did not use the libraries. We +concluded that weaker conditions might promote sharing better. + + However, unrestricted linking of non-free programs would deprive the +users of those programs of all benefit from the free status of the +libraries themselves. This Library General Public License is intended to +permit developers of non-free programs to use free libraries, while +preserving your freedom as a user of such programs to change the free +libraries that are incorporated in them. (We have not seen how to achieve +this as regards changes in header files, but we have achieved it as regards +changes in the actual functions of the Library.) The hope is that this +will lead to faster development of free libraries. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, while the latter only +works together with the library. + + Note that it is possible for a library to be covered by the ordinary +General Public License rather than by this special one. + + GNU LIBRARY GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library which +contains a notice placed by the copyright holder or other authorized +party saying it may be distributed under the terms of this Library +General Public License (also called "this License"). Each licensee is +addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also compile or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + c) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + d) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the source code distributed need not include anything that is normally +distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Library General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/Doxyfile.temp b/Doxyfile.temp new file mode 100644 index 000000000..6f60392b7 --- /dev/null +++ b/Doxyfile.temp @@ -0,0 +1,199 @@ +# Doxyfile 0.1 + +#--------------------------------------------------------------------------- +# General configuration options +#--------------------------------------------------------------------------- +PROJECT_NAME = KOffice +PROJECT_NUMBER = "SVN trunk" +OUTPUT_DIRECTORY = "../apidocs" +OUTPUT_LANGUAGE = English +EXTRACT_ALL = YES +EXTRACT_PRIVATE = NO +EXTRACT_STATIC = YES +HIDE_UNDOC_MEMBERS = NO +HIDE_UNDOC_CLASSES = NO +BRIEF_MEMBER_DESC = YES +REPEAT_BRIEF = YES +ALWAYS_DETAILED_SEC = NO +FULL_PATH_NAMES = NO +STRIP_FROM_PATH = +INTERNAL_DOCS = NO +STRIP_CODE_COMMENTS = YES +CASE_SENSE_NAMES = YES +SHORT_NAMES = NO +HIDE_SCOPE_NAMES = NO +VERBATIM_HEADERS = YES +SHOW_INCLUDE_FILES = YES +JAVADOC_AUTOBRIEF = NO +INHERIT_DOCS = YES +INLINE_INFO = YES +SORT_MEMBER_DOCS = YES +DISTRIBUTE_GROUP_DOC = NO +TAB_SIZE = 8 +GENERATE_TODOLIST = YES +GENERATE_TESTLIST = YES +GENERATE_BUGLIST = YES +ALIASES = +ENABLED_SECTIONS = +MAX_INITIALIZER_LINES = 30 +OPTIMIZE_OUTPUT_FOR_C = NO +SHOW_USED_FILES = YES +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- +QUIET = NO +WARNINGS = YES +WARN_IF_UNDOCUMENTED = NO +WARN_FORMAT = +WARN_LOGFILE = +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- +INPUT = example \ + filters \ + interfaces \ + karbon \ + kchart \ + kdgantt \ + kexi \ + kformula \ + kivio \ + koshell \ + kplato \ + kpresenter \ + krita \ + kspread kugar kword lib +FILE_PATTERNS = *.h +RECURSIVE = YES +#EXCLUDE = \ +#arts/tests kdeprint/tests khtml/java/tests kio/kfile/tests kioslave/http/kcookiejar/tests kwallet/backend/tests \ +#kdecore/tests kdeui/tests kinit/tests kio/tests kparts/tests libkmid/tests +# */tests doesn't seem to work :( + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. + +EXCLUDE_PATTERNS = *.ui.h *.moc.* Makefile.* ChangeLog CHANGES CHANGES.* README \ + README.* *.png AUTHORS DESIGN DESIGN.* *.desktop \ + DESKTOP* COMMENTS HOWTO magic NOTES TODO THANKS + +# The EXAMPLE_PATH tag can be used to specify one or more files or +# directories that contain example code fragments that are included (see +# the \include command). + +EXAMPLE_PATH = +EXAMPLE_PATTERNS = +EXAMPLE_RECURSIVE = NO +IMAGE_PATH = +INPUT_FILTER = +FILTER_SOURCE_FILES = NO +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- +SOURCE_BROWSER = YES +INLINE_SOURCES = NO +REFERENCED_BY_RELATION = YES +REFERENCES_RELATION = YES +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- +ALPHABETICAL_INDEX = NO +COLS_IN_ALPHA_INDEX = 5 +IGNORE_PREFIX = +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- +GENERATE_HTML = YES +HTML_OUTPUT = +HTML_HEADER = +HTML_FOOTER = +HTML_STYLESHEET = +HTML_ALIGN_MEMBERS = YES +GENERATE_HTMLHELP = NO +GENERATE_CHI = NO +BINARY_TOC = NO +TOC_EXPAND = NO +DISABLE_INDEX = NO +ENUM_VALUES_PER_LINE = 4 +GENERATE_TREEVIEW = NO +TREEVIEW_WIDTH = 250 +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- +GENERATE_LATEX = NO +LATEX_OUTPUT = +COMPACT_LATEX = NO +PAPER_TYPE = a4wide +EXTRA_PACKAGES = +LATEX_HEADER = +PDF_HYPERLINKS = NO +USE_PDFLATEX = NO +LATEX_BATCHMODE = NO +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- +GENERATE_RTF = NO +RTF_OUTPUT = +COMPACT_RTF = NO +RTF_HYPERLINKS = NO +RTF_STYLESHEET_FILE = +RTF_EXTENSIONS_FILE = +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- +GENERATE_MAN = NO +MAN_OUTPUT = man +MAN_EXTENSION = .kde3 +MAN_LINKS = YES +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- +GENERATE_XML = NO +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- +ENABLE_PREPROCESSING = YES +MACRO_EXPANSION = NO +EXPAND_ONLY_PREDEF = NO +SEARCH_INCLUDES = YES +INCLUDE_PATH = +INCLUDE_FILE_PATTERNS = +PREDEFINED = +EXPAND_AS_DEFINED = +SKIP_FUNCTION_MACROS = YES +#--------------------------------------------------------------------------- +# Configuration::addtions related to external references +#--------------------------------------------------------------------------- +TAGFILES = +GENERATE_TAGFILE = +ALLEXTERNALS = NO +PERL_PATH = +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- +CLASS_DIAGRAMS = YES +HAVE_DOT = YES +CLASS_GRAPH = YES +COLLABORATION_GRAPH = YES +TEMPLATE_RELATIONS = YES +HIDE_UNDOC_RELATIONS = YES +INCLUDE_GRAPH = YES +INCLUDED_BY_GRAPH = YES +GRAPHICAL_HIERARCHY = YES +DOT_PATH = +DOTFILE_DIRS = +MAX_DOT_GRAPH_WIDTH = 640 +MAX_DOT_GRAPH_HEIGHT = 1024 +GENERATE_LEGEND = YES +DOT_CLEANUP = YES +#--------------------------------------------------------------------------- +# Configuration::addtions related to the search engine +#--------------------------------------------------------------------------- +SEARCHENGINE = NO +CGI_NAME = +CGI_URL = +DOC_URL = +DOC_ABSPATH = +BIN_ABSPATH = +EXT_DOC_PATHS = diff --git a/INSTALL b/INSTALL new file mode 100644 index 000000000..3a1a94ab1 --- /dev/null +++ b/INSTALL @@ -0,0 +1,186 @@ +Basic Installation +================== + + These are generic installation instructions. + + The `configure' shell script attempts to guess correct values for +various system-dependent variables used during compilation. It uses +those values to create a `Makefile' in each directory of the package. +It may also create one or more `.h' files containing system-dependent +definitions. Finally, it creates a shell script `config.status' that +you can run in the future to recreate the current configuration, a file +`config.cache' that saves the results of its tests to speed up +reconfiguring, and a file `config.log' containing compiler output +(useful mainly for debugging `configure'). + + If you need to do unusual things to compile the package, please try +to figure out how `configure' could check whether to do them, and mail +diffs or instructions to the address given in the `README' so they can +be considered for the next release. If at some point `config.cache' +contains results you don't want to keep, you may remove or edit it. + + The file `configure.in' is used to create `configure' by a program +called `autoconf'. You only need `configure.in' if you want to change +it or regenerate `configure' using a newer version of `autoconf'. + +The simplest way to compile this package is: + + 1. `cd' to the directory containing the package's source code and type + `./configure' to configure the package for your system. If you're + using `csh' on an old version of System V, you might need to type + `sh ./configure' instead to prevent `csh' from trying to execute + `configure' itself. + + Running `configure' takes a while. While running, it prints some + messages telling which features it is checking for. + + 2. Type `make' to compile the package. + + 3. Optionally, type `make check' to run any self-tests that come with + the package. + + 4. Type `make install' to install the programs and any data files and + documentation. + + 5. You can remove the program binaries and object files from the + source code directory by typing `make clean'. To also remove the + files that `configure' created (so you can compile the package for + a different kind of computer), type `make distclean'. There is + also a `make maintainer-clean' target, but that is intended mainly + for the package's developers. If you use it, you may have to get + all sorts of other programs in order to regenerate files that came + with the distribution. + +Compilers and Options +===================== + + Some systems require unusual options for compilation or linking that +the `configure' script does not know about. You can give `configure' +initial values for variables by setting them in the environment. Using +a Bourne-compatible shell, you can do that on the command line like +this: + CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure + +Or on systems that have the `env' program, you can do it like this: + env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure + +Compiling For Multiple Architectures +==================================== + + You can compile the package for more than one kind of computer at the +same time, by placing the object files for each architecture in their +own directory. To do this, you must use a version of `make' that +supports the `VPATH' variable, such as GNU `make'. `cd' to the +directory where you want the object files and executables to go and run +the `configure' script. `configure' automatically checks for the +source code in the directory that `configure' is in and in `..'. + + If you have to use a `make' that does not supports the `VPATH' +variable, you have to compile the package for one architecture at a time +in the source code directory. After you have installed the package for +one architecture, use `make distclean' before reconfiguring for another +architecture. + +Installation Names +================== + + By default, `make install' will install the package's files in +`/usr/local/kde/bin', `/usr/local/kde/lib', etc. You can specify an +installation prefix other than `/usr/local/kde' by giving `configure' +the option `--prefix=PATH'. + + You can specify separate installation prefixes for +architecture-specific files and architecture-independent files. If you +give `configure' the option `--exec-prefix=PATH', the package will use +PATH as the prefix for installing programs and libraries. +Documentation and other data files will still use the regular prefix. + + If the package supports it, you can cause programs to be installed +with an extra prefix or suffix on their names by giving `configure' the +option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. + +KDE Specific +============ + +If you use ./configure --prefix to install KOffice in a different +location than the rest of KDE, you need to tell KDE about it. +For this, either set $KDEDIRS so that it contains both prefixes, +or add this to /etc/kderc : +[Directories] +prefixes=/the/prefix/I/used/to/install/koffice/ + +Optional Features +================= + + Some packages pay attention to `--enable-FEATURE' options to +`configure', where FEATURE indicates an optional part of the package. +They may also pay attention to `--with-PACKAGE' options, where PACKAGE +is something like `gnu-as' or `x' (for the X Window System). The +`README' should mention any `--enable-' and `--with-' options that the +package recognizes. + + For packages that use the X Window System, `configure' can usually +find the X include and library files automatically, but if it doesn't, +you can use the `configure' options `--x-includes=DIR' and +`--x-libraries=DIR' to specify their locations. + +Specifying the System Type +========================== + + There may be some features `configure' can not figure out +automatically, but needs to determine by the type of host the package +will run on. Usually `configure' can figure that out, but if it prints +a message saying it can not guess the host type, give it the +`--host=TYPE' option. TYPE can either be a short name for the system +type, such as `sun4', or a canonical name with three fields: + CPU-COMPANY-SYSTEM + +See the file `config.sub' for the possible values of each field. If +`config.sub' isn't included in this package, then this package doesn't +need to know the host type. + + If you are building compiler tools for cross-compiling, you can also +use the `--target=TYPE' option to select the type of system they will +produce code for and the `--build=TYPE' option to select the type of +system on which you are compiling the package. + +Sharing Defaults +================ + + If you want to set default values for `configure' scripts to share, +you can create a site shell script called `config.site' that gives +default values for variables like `CC', `cache_file', and `prefix'. +`configure' looks for `PREFIX/share/config.site' if it exists, then +`PREFIX/etc/config.site' if it exists. Or, you can set the +`CONFIG_SITE' environment variable to the location of the site script. +A warning: not all `configure' scripts look for a site script. + +Operation Controls +================== + + `configure' recognizes the following options to control how it +operates. + +`--cache-file=FILE' + Use and save the results of the tests in FILE instead of + `./config.cache'. Set FILE to `/dev/null' to disable caching, for + debugging `configure'. + +`--help' + Print a summary of the options to `configure', and exit. + +`--quiet' +`--silent' +`-q' + Do not print messages saying which checks are being made. + +`--srcdir=DIR' + Look for the package's source code in directory DIR. Usually + `configure' can determine that directory automatically. + +`--version' + Print the version of Autoconf used to generate the `configure' + script, and exit. + +`configure' also accepts some other, not widely useful, options. + diff --git a/Mainpage.dox b/Mainpage.dox new file mode 100644 index 000000000..7b7837450 --- /dev/null +++ b/Mainpage.dox @@ -0,0 +1,12 @@ +/** +* @mainpage KOffice API Reference +* +* +* KOffice consists of a number of applications. +* Very few actually have any API dox to speak of. +* +* - KDGantt +* - Kexi +* - KSpread +* +*/ diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 000000000..046318517 --- /dev/null +++ b/Makefile.am @@ -0,0 +1,20 @@ +## koffice/Makefile.am.in +## (C) 1997 Stephan Kulow + +AUTOMAKE_OPTIONS = foreign 1.4 +COMPILE_FIRST = lib interfaces +# COMPILE_BEFORE_kexi = kword kugar +# COMPILE_BEFORE_kplato = kdgantt kugar +# For kword/mailmerge/kspread +# COMPILE_BEFORE_kword = kspread +# COMPILE_BEFORE_ascend = kword +COMPILE_LAST = filters +DISTCLEANFILES = inst-apps + +MAINTAINERCLEANFILES = subdirs configure.in acinclude.m4 SUBDIRS + +include admin/deps.am + +include admin/Doxyfile.am + +SUBDIRS=$(TOPSUBDIRS) diff --git a/Makefile.am.in b/Makefile.am.in new file mode 100644 index 000000000..c39c17c79 --- /dev/null +++ b/Makefile.am.in @@ -0,0 +1,19 @@ +## koffice/Makefile.am.in +## (C) 1997 Stephan Kulow + +AUTOMAKE_OPTIONS = foreign 1.4 +COMPILE_FIRST = lib interfaces +COMPILE_BEFORE_kexi = kword kugar +COMPILE_BEFORE_kplato = kdgantt kugar +# For kword/mailmerge/kspread +COMPILE_BEFORE_kword = kspread +COMPILE_BEFORE_ascend = kword +COMPILE_LAST = filters +DISTCLEANFILES = inst-apps + +MAINTAINERCLEANFILES = subdirs configure.in acinclude.m4 SUBDIRS + +include admin/deps.am + +include admin/Doxyfile.am + diff --git a/Makefile.cvs b/Makefile.cvs new file mode 100644 index 000000000..be59a8695 --- /dev/null +++ b/Makefile.cvs @@ -0,0 +1,14 @@ +all: + @echo "This Makefile is only for the CVS repository" + @echo "This will be deleted before making the distribution" + @echo "" + @if test ! -d admin; then \ + echo "Please recheckout this module!" ;\ + echo "for cvs: use checkout once and after that update again" ;\ + echo "for cvsup: checkout kde-common from cvsup and" ;\ + echo " link kde-common/admin to ./admin" ;\ + exit 1 ;\ + fi + $(MAKE) -f admin/Makefile.common cvs + +.SILENT: diff --git a/README b/README new file mode 100644 index 000000000..e979baed2 --- /dev/null +++ b/README @@ -0,0 +1,92 @@ +KOffice is based on KDE ( http://www.kde.org ) which is needed to run KOffice. +You need kdelibs and kdebase installed if you want to compile and run +KOffice. Look in the kdelibs sourcedir for the file COMPILING for help. Also +look at the website as there are many helpfiles available. + +KOffice is a collection of office applications linked together by a common +basis. This common basis assures that all office application can work +together. You can, for instance, insert a spreadsheet in your thesis without +leaving your document. Editing the spreadsheet happens _inside_ your thesis. + +The applications currently included in KOffice are: +- KWord + Professional text editing +- KSpread + Professional number cruncher/spreadsheet +- KPresenter + Professional presentation program +- KChart + Graphing of your abstract data +- Karbon + Vector graphics tool +- Kugar + Database report creation +- Kivio + Flowcharting program +- Kexi + Integrated data management +- Krita + A pixel graphics tool +- KFormula + A mathematical formula editor +- KOffice Workspace + A combination of all of the above + +Note: these applications are not necessarily part of the previous or next +official stable version of KOffice. + +Developers: +=========== + +KOffice is created by Open Source programmers around the world. All developers +give their time/code to the community for everyone to benefit. The major reason +this is done is because those developers want to have a good office suite, and +they don't mind sharing it with you. + +If you feel you found a bug or missing feature you can always contact the +developers of KOffice (via http://www.koffice.org ) or delve into the software +yourself. + +The part that is shared between all KOffice applications can be found in the lib +directory. There classes like KoDocument can be found; these classes are +extended in the project directories. + +Read the .h files in the respective directories for more info. + + +Document format: +================ + +Nearly all KOffice applications use XML formatted files in a ZIP file. + +The main document in XML format can be read with a text editor (after having +unzip-ped it from the ZIP file.) XML itself is simply a set of tags, +where the application can define the meaning of these tags. The definition of +the document type is therefore different for each KOffice application (as you +will most likely not find a curved line in a KWord document). The Document Type +Definition can be found in every application's source directory in the +directory '(application)/dtd.' + +If you would like more information about the makeup of the actual KOffice +document structure (not the XML DTD), see the lib/store/SPEC file. + +If you want to see more/fix bugs in this file, feel free to ask or add it +yourself. + + +Contacts: +========= + +User mailing list: mailto:koffice@kde.org +Developer mailing list: mailto:koffice-devel@kde.org + +Subscribing and list information: http://www.kde.org/mailinglists +Archives: http://lists.kde.org + +If you have questions about this README file or about KOffice in general, +please mail to the KOffice mailing list: mailto:koffice@kde.org + + + +Thomas Zander +Chris Lee diff --git a/README.APPS b/README.APPS new file mode 100644 index 000000000..6e76e0b20 --- /dev/null +++ b/README.APPS @@ -0,0 +1,31 @@ +This directory contains the source code for the upcoming KOffice 1.6. +The 1.6 release is a kind of "in-between" release, and not every program +will be actively developed here. + +The maintainers of some programs have announced that they think that +the release cycle for 2.0 is too long and want a feature release in +between 1.5 and 2.0. For all the rest of the programs, bugfixes that +are committed in the 1.5 branch will be forward ported to 1.6 at the +time of the release. + +The real development will happen in trunk, and will eventually lead to +KOffice version 2.0, which will be based on Qt4 and kdelibs4. + +Here is the list of applications and libraries that will be developed +in the 1.6 cycle: + +- lib/koproperty +- lib/kross +- kchart +- kexi +- krita +- kdgantt +- kplato +- doc +- kformula +- lib/kformula + +It is up to the maintainer of those applications to merge their change +with trunk, and with 1.5 for fixed bugs. For all the rest of the +applications / subdirectories, all changes for 1.5 will be forward +ported as described above. diff --git a/README.PACKAGERS b/README.PACKAGERS new file mode 100644 index 000000000..af3849903 --- /dev/null +++ b/README.PACKAGERS @@ -0,0 +1,187 @@ +Packaging Information for KOffice. +---------------------------------- + +We recommend building several binary packages from the KOffice source. + +Splitting KOffice into packages: + * gives users a better choice of which components they have + installed; + * allows users to install just the applications without unnecessary + dependencies; + * helps to reduce packaging conflicts for users with non-standard + package selections. + + +Table Of Contents +----------------- + +1. Database drivers (MySQL, PostgreSQL) +2. Development files + 2.1. KexiDB development files + 2.2. Krita development files +3. Scripting support +4. Microsoft Access Import (optional, recommended) +5. Quick command-line tests of Kexi installation + + + +1. Database drivers +------------------- + +Kexi provides database drivers for MySQL and PostgreSQL. We suggest +putting each driver in a separate package, and that installation of +these packages be optional. Each driver package may then depend on +the corresponding 'native' libraries: libmysqlclient for MySQL; and +and libpqxx for PostgreSQL (libpqxx in turn depends on libpq). + +Thus, the MySQL driver package could contain: + lib/kde3/kexidb_mysqldriver.so + lib/kde3/kexidb_mysqldriver.la + lib/kde3/keximigrate_mysql.so + lib/kde3/keximigrate_mysql.la + share/services/kexidb_mysqldriver.desktop + share/services/keximigrate_mysql.desktop + +The PostgreSQL driver package consists of the following files: + lib/kde3/kexidb_pqxxsqldriver.so + lib/kde3/kexidb_pqxxsqldriver.la + lib/kde3/keximigrate_pqxx.so + lib/kde3/keximigrate_pqxx.la + share/services/kexidb_pqxxsqldriver.desktop + share/services/keximigrate_pqxx.desktop + +Note that you SHOULD NOT care about SQLite database driver or adding +dependencies for SQLite, because SQLite support is built into Kexi +using a fork of SQLite source code. + + +2. Development files +-------------------- + +2.1. KexiDB development files + +Location: koffice/kexi/kexiutils, koffice/kexi/kexidb, koffice/kexi/migration + +KexiDB, the database abstraction library used in Kexi, installs some +development files which are required for building external plugins, +such as the MS Access import plugin described below. + +We recommend providing KexiDB development files in a separate package. +The files are: + include/kexidb/*.h + include/kexiutils/*.h + lib/libkexidb.la + lib/libkexidb.so + lib/libkexidbparser.so + lib/libkexidbparser.la + +The installation can be tested by building the MS Access import plugin +as described in the Microsoft Access import plugin section below. + +2.2. Krita development files + +Location: koffice/krita/core, koffice/krita/sdk, +koffice/krita/kritacolor, koffice/krita/ui + +These directories contain header files that are installed and can be +used by plugin developers to extend Krita with new tools, colorspaces, +paint-ops and more. If your distribution packages development files +separately, it may be a good idea to make a package with these headers. + + +3. Scripting support +-------------------- + +Preliminary support for Ruby and Python scripting is available for +Krita and Kexi. +It can be disabled by passing the '--disable-scripting' option to +'configure'. + +The 'Kross' scripting library (koffice/lib/kross) provides access to +the Python and Ruby scripting languages by the dynamically loaded +plugins. + +Build time dependencies: + Python and Ruby development packages need to be installed in order + to build KOffice with full scripting support. In addition, the Ruby + interpreter is also required at build time. + +Run time dependencies: + Kross detects which of these libraries is installed dynamically, at + run-time. Therefore, KOffice packages need not have any run-time + dependencies on any scripting interpreter. + +The scripting language plugins can be found in: + koffice/lib/kross/python; and + koffice/lib/kross/ruby. +They install as: + lib/kde3/krosspython.{la,so}; and + lib/kde3/krossruby.{la,so} + +It is recommended to put each interpreter plugin into a separate +package, and the user decide if they would like support for each +language individually. + +For example, the Python scripting package may contain: + lib/kde3/krosspython.so + lib/kde3/krosspython.la + share/apps/kexi/scripts/exportxhtml/ExportXHTML.py + share/apps/kexi/scripts/exportxhtml/ExportXHTML.rc + share/apps/kexi/scripts/importxhtml/ImportXHTML.py + share/apps/kexi/scripts/importxhtml/ImportXHTML.rc + share/apps/kexi/scripts/projectdocumentor/ProjectDocumentor.py + share/apps/kexi/scripts/projectdocumentor/ProjectDocumentor.rc + share/apps/krita/scripts/invert.py + share/apps/krita/scripts/reshapehisto.py + +and the Ruby scripting package may contain: + lib/kde3/krossruby.so + lib/kde3/krossruby.la + share/apps/krita/scripts/ruby/invert.rb + share/apps/krita/scripts/ruby/changecs.rb + share/apps/krita/scripts/ruby/randompaint.rb + + +4. Microsoft Access Import (optional, recommended) +------------------------------------- + +A plugin to allow the import of MS Access (.mdb) files is available +for packaging separately. It is called KexiMDB. + +This package is based on a stripped-down and modified version of +mdbtools: http://mdbtools.sf.net/ +The package should be built after KOffice. It requires GLib, and the +Kexi development files as described above. + +The version of the plugin for use with KOffice 1.5 should be available +from: +ftp://ftp.kde.org/pub/kde/stable/apps/KDE3.x/database/keximdb-1.0.tar.gz + +Alternatively, it can be found in the KDE Subversion repository. It +can be built as follows: + svn export svn://anonsvn.kde.org/home/kde/branches/work/keximdb/koffice-1.5 keximdb-1.0 + cd keximdb-1.0 + make -f Makefile.cvs + ./configure --enable-debug=full + make + make install + +Configure may need to be informed of the location of the KexiDB +headers using the --with-kexidb-includes=... and the +--with-kexidb-libraries=... options. + + +5. Quick command-line tests of Kexi installation +------------------------------------------------ + +If you don't want to click through Kexi interface but still want +to make (almost) sure the application is properly packaged, please +install it and type the following from the command line: + + kexi --create-opendb --drv sqlite3 --new form testdb + +(ignore possible warning message) +This will: +- create a new empty database file "testdb", +- open it, +- create a new empty form diff --git a/acinclude.m4 b/acinclude.m4 new file mode 100644 index 000000000..660b34573 --- /dev/null +++ b/acinclude.m4 @@ -0,0 +1,12406 @@ +## -*- autoconf -*- + +dnl This file is part of the KDE libraries/packages +dnl Copyright (C) 1997 Janos Farkas (chexum@shadow.banki.hu) +dnl (C) 1997,98,99 Stephan Kulow (coolo@kde.org) + +dnl This file is free software; you can redistribute it and/or +dnl modify it under the terms of the GNU Library General Public +dnl License as published by the Free Software Foundation; either +dnl version 2 of the License, or (at your option) any later version. + +dnl This library is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl Library General Public License for more details. + +dnl You should have received a copy of the GNU Library General Public License +dnl along with this library; see the file COPYING.LIB. If not, write to +dnl the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +dnl Boston, MA 02110-1301, USA. + +dnl IMPORTANT NOTE: +dnl Please do not modify this file unless you expect your modifications to be +dnl carried into every other module in the repository. +dnl +dnl Single-module modifications are best placed in configure.in for kdelibs +dnl and kdebase or configure.in.in if present. + +# KDE_PATH_X_DIRECT +dnl Internal subroutine of AC_PATH_X. +dnl Set ac_x_includes and/or ac_x_libraries. +AC_DEFUN([KDE_PATH_X_DIRECT], +[ +AC_REQUIRE([KDE_CHECK_LIB64]) + +if test "$ac_x_includes" = NO; then + # Guess where to find include files, by looking for this one X11 .h file. + test -z "$x_direct_test_include" && x_direct_test_include=X11/Intrinsic.h + + # First, try using that file with no special directory specified. +AC_TRY_CPP([#include <$x_direct_test_include>], +[# We can compile using X headers with no special include directory. +ac_x_includes=], +[# Look for the header file in a standard set of common directories. +# Check X11 before X11Rn because it is often a symlink to the current release. + for ac_dir in \ + /usr/X11/include \ + /usr/X11R6/include \ + /usr/X11R5/include \ + /usr/X11R4/include \ + \ + /usr/include/X11 \ + /usr/include/X11R6 \ + /usr/include/X11R5 \ + /usr/include/X11R4 \ + \ + /usr/local/X11/include \ + /usr/local/X11R6/include \ + /usr/local/X11R5/include \ + /usr/local/X11R4/include \ + \ + /usr/local/include/X11 \ + /usr/local/include/X11R6 \ + /usr/local/include/X11R5 \ + /usr/local/include/X11R4 \ + \ + /usr/X386/include \ + /usr/x386/include \ + /usr/XFree86/include/X11 \ + \ + /usr/include \ + /usr/local/include \ + /usr/unsupported/include \ + /usr/athena/include \ + /usr/local/x11r5/include \ + /usr/lpp/Xamples/include \ + \ + /usr/openwin/include \ + /usr/openwin/share/include \ + ; \ + do + if test -r "$ac_dir/$x_direct_test_include"; then + ac_x_includes=$ac_dir + break + fi + done]) +fi # $ac_x_includes = NO + +if test "$ac_x_libraries" = NO; then + # Check for the libraries. + + test -z "$x_direct_test_library" && x_direct_test_library=Xt + test -z "$x_direct_test_function" && x_direct_test_function=XtMalloc + + # See if we find them without any special options. + # Don't add to $LIBS permanently. + ac_save_LIBS="$LIBS" + LIBS="-l$x_direct_test_library $LIBS" +AC_TRY_LINK([#include ], [${x_direct_test_function}(1)], +[LIBS="$ac_save_LIBS" +# We can link X programs with no special library path. +ac_x_libraries=], +[LIBS="$ac_save_LIBS" +# First see if replacing the include by lib works. +# Check X11 before X11Rn because it is often a symlink to the current release. +for ac_dir in `echo "$ac_x_includes" | sed s/include/lib${kdelibsuff}/` \ + /usr/X11/lib${kdelibsuff} \ + /usr/X11R6/lib${kdelibsuff} \ + /usr/X11R5/lib${kdelibsuff} \ + /usr/X11R4/lib${kdelibsuff} \ + \ + /usr/lib${kdelibsuff}/X11 \ + /usr/lib${kdelibsuff}/X11R6 \ + /usr/lib${kdelibsuff}/X11R5 \ + /usr/lib${kdelibsuff}/X11R4 \ + \ + /usr/local/X11/lib${kdelibsuff} \ + /usr/local/X11R6/lib${kdelibsuff} \ + /usr/local/X11R5/lib${kdelibsuff} \ + /usr/local/X11R4/lib${kdelibsuff} \ + \ + /usr/local/lib${kdelibsuff}/X11 \ + /usr/local/lib${kdelibsuff}/X11R6 \ + /usr/local/lib${kdelibsuff}/X11R5 \ + /usr/local/lib${kdelibsuff}/X11R4 \ + \ + /usr/X386/lib${kdelibsuff} \ + /usr/x386/lib${kdelibsuff} \ + /usr/XFree86/lib${kdelibsuff}/X11 \ + \ + /usr/lib${kdelibsuff} \ + /usr/local/lib${kdelibsuff} \ + /usr/unsupported/lib${kdelibsuff} \ + /usr/athena/lib${kdelibsuff} \ + /usr/local/x11r5/lib${kdelibsuff} \ + /usr/lpp/Xamples/lib${kdelibsuff} \ + /lib/usr/lib${kdelibsuff}/X11 \ + \ + /usr/openwin/lib${kdelibsuff} \ + /usr/openwin/share/lib${kdelibsuff} \ + ; \ +do +dnl Don't even attempt the hair of trying to link an X program! + for ac_extension in a so sl; do + if test -r $ac_dir/lib${x_direct_test_library}.$ac_extension; then + ac_x_libraries=$ac_dir + break 2 + fi + done +done]) +fi # $ac_x_libraries = NO +]) + + +dnl ------------------------------------------------------------------------ +dnl Find a file (or one of more files in a list of dirs) +dnl ------------------------------------------------------------------------ +dnl +AC_DEFUN([AC_FIND_FILE], +[ +$3=NO +for i in $2; +do + for j in $1; + do + echo "configure: __oline__: $i/$j" >&AC_FD_CC + if test -r "$i/$j"; then + echo "taking that" >&AC_FD_CC + $3=$i + break 2 + fi + done +done +]) + +dnl KDE_FIND_PATH(program-name, variable-name, list-of-dirs, +dnl if-not-found, test-parameter, prepend-path) +dnl +dnl Look for program-name in list-of-dirs+$PATH. +dnl If prepend-path is set, look in $PATH+list-of-dirs instead. +dnl If found, $variable-name is set. If not, if-not-found is evaluated. +dnl test-parameter: if set, the program is executed with this arg, +dnl and only a successful exit code is required. +AC_DEFUN([KDE_FIND_PATH], +[ + AC_MSG_CHECKING([for $1]) + if test -n "$$2"; then + kde_cv_path="$$2"; + else + kde_cache=`echo $1 | sed 'y%./+-%__p_%'` + + AC_CACHE_VAL(kde_cv_path_$kde_cache, + [ + kde_cv_path="NONE" + kde_save_IFS=$IFS + IFS=':' + dirs="" + for dir in $PATH; do + dirs="$dirs $dir" + done + if test -z "$6"; then dnl Append dirs in PATH (default) + dirs="$3 $dirs" + else dnl Prepend dirs in PATH (if 6th arg is set) + dirs="$dirs $3" + fi + IFS=$kde_save_IFS + + for dir in $dirs; do + if test -x "$dir/$1"; then + if test -n "$5" + then + evalstr="$dir/$1 $5 2>&1 " + if eval $evalstr; then + kde_cv_path="$dir/$1" + break + fi + else + kde_cv_path="$dir/$1" + break + fi + fi + done + + eval "kde_cv_path_$kde_cache=$kde_cv_path" + + ]) + + eval "kde_cv_path=\"`echo '$kde_cv_path_'$kde_cache`\"" + + fi + + if test -z "$kde_cv_path" || test "$kde_cv_path" = NONE; then + AC_MSG_RESULT(not found) + $4 + else + AC_MSG_RESULT($kde_cv_path) + $2=$kde_cv_path + + fi +]) + +AC_DEFUN([KDE_MOC_ERROR_MESSAGE], +[ + AC_MSG_ERROR([No Qt meta object compiler (moc) found! +Please check whether you installed Qt correctly. +You need to have a running moc binary. +configure tried to run $ac_cv_path_moc and the test didn't +succeed. If configure shouldn't have tried this one, set +the environment variable MOC to the right one before running +configure. +]) +]) + +AC_DEFUN([KDE_UIC_ERROR_MESSAGE], +[ + AC_MSG_WARN([No Qt ui compiler (uic) found! +Please check whether you installed Qt correctly. +You need to have a running uic binary. +configure tried to run $ac_cv_path_uic and the test didn't +succeed. If configure shouldn't have tried this one, set +the environment variable UIC to the right one before running +configure. +]) +]) + + +AC_DEFUN([KDE_CHECK_UIC_FLAG], +[ + AC_MSG_CHECKING([whether uic supports -$1 ]) + kde_cache=`echo $1 | sed 'y% .=/+-%____p_%'` + AC_CACHE_VAL(kde_cv_prog_uic_$kde_cache, + [ + cat >conftest.ui < +EOT + ac_uic_testrun="$UIC_PATH -$1 $2 conftest.ui >/dev/null" + if AC_TRY_EVAL(ac_uic_testrun); then + eval "kde_cv_prog_uic_$kde_cache=yes" + else + eval "kde_cv_prog_uic_$kde_cache=no" + fi + rm -f conftest* + ]) + + if eval "test \"`echo '$kde_cv_prog_uic_'$kde_cache`\" = yes"; then + AC_MSG_RESULT([yes]) + : + $3 + else + AC_MSG_RESULT([no]) + : + $4 + fi +]) + + +dnl ------------------------------------------------------------------------ +dnl Find the meta object compiler and the ui compiler in the PATH, +dnl in $QTDIR/bin, and some more usual places +dnl ------------------------------------------------------------------------ +dnl +AC_DEFUN([AC_PATH_QT_MOC_UIC], +[ + AC_REQUIRE([KDE_CHECK_PERL]) + qt_bindirs="" + for dir in $kde_qt_dirs; do + qt_bindirs="$qt_bindirs $dir/bin $dir/src/moc" + done + qt_bindirs="$qt_bindirs /usr/bin /usr/X11R6/bin /usr/local/qt/bin" + if test ! "$ac_qt_bindir" = "NO"; then + qt_bindirs="$ac_qt_bindir $qt_bindirs" + fi + + KDE_FIND_PATH(moc, MOC, [$qt_bindirs], [KDE_MOC_ERROR_MESSAGE]) + if test -z "$UIC_NOT_NEEDED"; then + KDE_FIND_PATH(uic, UIC_PATH, [$qt_bindirs], [UIC_PATH=""]) + if test -z "$UIC_PATH" ; then + KDE_UIC_ERROR_MESSAGE + exit 1 + else + UIC=$UIC_PATH + + if test $kde_qtver = 3; then + KDE_CHECK_UIC_FLAG(L,[/nonexistent],ac_uic_supports_libpath=yes,ac_uic_supports_libpath=no) + KDE_CHECK_UIC_FLAG(nounload,,ac_uic_supports_nounload=yes,ac_uic_supports_nounload=no) + + if test x$ac_uic_supports_libpath = xyes; then + UIC="$UIC -L \$(kde_widgetdir)" + fi + if test x$ac_uic_supports_nounload = xyes; then + UIC="$UIC -nounload" + fi + fi + fi + else + UIC="echo uic not available: " + fi + + AC_SUBST(MOC) + AC_SUBST(UIC) + + UIC_TR="i18n" + if test $kde_qtver = 3; then + UIC_TR="tr2i18n" + fi + + AC_SUBST(UIC_TR) +]) + +AC_DEFUN([KDE_1_CHECK_PATHS], +[ + KDE_1_CHECK_PATH_HEADERS + + KDE_TEST_RPATH= + + if test -n "$USE_RPATH"; then + + if test -n "$kde_libraries"; then + KDE_TEST_RPATH="-R $kde_libraries" + fi + + if test -n "$qt_libraries"; then + KDE_TEST_RPATH="$KDE_TEST_RPATH -R $qt_libraries" + fi + + if test -n "$x_libraries"; then + KDE_TEST_RPATH="$KDE_TEST_RPATH -R $x_libraries" + fi + + KDE_TEST_RPATH="$KDE_TEST_RPATH $KDE_EXTRA_RPATH" + fi + +AC_MSG_CHECKING([for KDE libraries installed]) +ac_link='$LIBTOOL_SHELL --silent --mode=link ${CXX-g++} -o conftest $CXXFLAGS $all_includes $CPPFLAGS $LDFLAGS $all_libraries conftest.$ac_ext $LIBS -lkdecore $LIBQT $KDE_TEST_RPATH 1>&5' + +if AC_TRY_EVAL(ac_link) && test -s conftest; then + AC_MSG_RESULT(yes) +else + AC_MSG_ERROR([your system fails at linking a small KDE application! +Check, if your compiler is installed correctly and if you have used the +same compiler to compile Qt and kdelibs as you did use now. +For more details about this problem, look at the end of config.log.]) +fi + +if eval `KDEDIR= ./conftest 2>&5`; then + kde_result=done +else + kde_result=problems +fi + +KDEDIR= ./conftest 2> /dev/null >&5 # make an echo for config.log +kde_have_all_paths=yes + +KDE_SET_PATHS($kde_result) + +]) + +AC_DEFUN([KDE_SET_PATHS], +[ + kde_cv_all_paths="kde_have_all_paths=\"yes\" \ + kde_htmldir=\"$kde_htmldir\" \ + kde_appsdir=\"$kde_appsdir\" \ + kde_icondir=\"$kde_icondir\" \ + kde_sounddir=\"$kde_sounddir\" \ + kde_datadir=\"$kde_datadir\" \ + kde_locale=\"$kde_locale\" \ + kde_cgidir=\"$kde_cgidir\" \ + kde_confdir=\"$kde_confdir\" \ + kde_kcfgdir=\"$kde_kcfgdir\" \ + kde_mimedir=\"$kde_mimedir\" \ + kde_toolbardir=\"$kde_toolbardir\" \ + kde_wallpaperdir=\"$kde_wallpaperdir\" \ + kde_templatesdir=\"$kde_templatesdir\" \ + kde_bindir=\"$kde_bindir\" \ + kde_servicesdir=\"$kde_servicesdir\" \ + kde_servicetypesdir=\"$kde_servicetypesdir\" \ + kde_moduledir=\"$kde_moduledir\" \ + kde_styledir=\"$kde_styledir\" \ + kde_widgetdir=\"$kde_widgetdir\" \ + xdg_appsdir=\"$xdg_appsdir\" \ + xdg_menudir=\"$xdg_menudir\" \ + xdg_directorydir=\"$xdg_directorydir\" \ + kde_result=$1" +]) + +AC_DEFUN([KDE_SET_DEFAULT_PATHS], +[ +if test "$1" = "default"; then + + if test -z "$kde_htmldir"; then + kde_htmldir='\${datadir}/doc/HTML' + fi + if test -z "$kde_appsdir"; then + kde_appsdir='\${datadir}/applnk' + fi + if test -z "$kde_icondir"; then + kde_icondir='\${datadir}/icons' + fi + if test -z "$kde_sounddir"; then + kde_sounddir='\${datadir}/sounds' + fi + if test -z "$kde_datadir"; then + kde_datadir='\${datadir}/apps' + fi + if test -z "$kde_locale"; then + kde_locale='\${datadir}/locale' + fi + if test -z "$kde_cgidir"; then + kde_cgidir='\${exec_prefix}/cgi-bin' + fi + if test -z "$kde_confdir"; then + kde_confdir='\${datadir}/config' + fi + if test -z "$kde_kcfgdir"; then + kde_kcfgdir='\${datadir}/config.kcfg' + fi + if test -z "$kde_mimedir"; then + kde_mimedir='\${datadir}/mimelnk' + fi + if test -z "$kde_toolbardir"; then + kde_toolbardir='\${datadir}/toolbar' + fi + if test -z "$kde_wallpaperdir"; then + kde_wallpaperdir='\${datadir}/wallpapers' + fi + if test -z "$kde_templatesdir"; then + kde_templatesdir='\${datadir}/templates' + fi + if test -z "$kde_bindir"; then + kde_bindir='\${exec_prefix}/bin' + fi + if test -z "$kde_servicesdir"; then + kde_servicesdir='\${datadir}/services' + fi + if test -z "$kde_servicetypesdir"; then + kde_servicetypesdir='\${datadir}/servicetypes' + fi + if test -z "$kde_moduledir"; then + if test "$kde_qtver" = "2"; then + kde_moduledir='\${libdir}/kde2' + else + kde_moduledir='\${libdir}/kde3' + fi + fi + if test -z "$kde_styledir"; then + kde_styledir='\${libdir}/kde3/plugins/styles' + fi + if test -z "$kde_widgetdir"; then + kde_widgetdir='\${libdir}/kde3/plugins/designer' + fi + if test -z "$xdg_appsdir"; then + xdg_appsdir='\${datadir}/applications/kde' + fi + if test -z "$xdg_menudir"; then + xdg_menudir='\${sysconfdir}/xdg/menus' + fi + if test -z "$xdg_directorydir"; then + xdg_directorydir='\${datadir}/desktop-directories' + fi + + KDE_SET_PATHS(defaults) + +else + + if test $kde_qtver = 1; then + AC_MSG_RESULT([compiling]) + KDE_1_CHECK_PATHS + else + AC_MSG_ERROR([path checking not yet supported for KDE 2]) + fi + +fi +]) + +AC_DEFUN([KDE_CHECK_PATHS_FOR_COMPLETENESS], +[ if test -z "$kde_htmldir" || test -z "$kde_appsdir" || + test -z "$kde_icondir" || test -z "$kde_sounddir" || + test -z "$kde_datadir" || test -z "$kde_locale" || + test -z "$kde_cgidir" || test -z "$kde_confdir" || + test -z "$kde_kcfgdir" || + test -z "$kde_mimedir" || test -z "$kde_toolbardir" || + test -z "$kde_wallpaperdir" || test -z "$kde_templatesdir" || + test -z "$kde_bindir" || test -z "$kde_servicesdir" || + test -z "$kde_servicetypesdir" || test -z "$kde_moduledir" || + test -z "$kde_styledir" || test -z "kde_widgetdir" || + test -z "$xdg_appsdir" || test -z "$xdg_menudir" || test -z "$xdg_directorydir" || + test "x$kde_have_all_paths" != "xyes"; then + kde_have_all_paths=no + fi +]) + +AC_DEFUN([KDE_MISSING_PROG_ERROR], +[ + AC_MSG_ERROR([The important program $1 was not found! +Please check whether you installed KDE correctly. +]) +]) + +AC_DEFUN([KDE_MISSING_ARTS_ERROR], +[ + AC_MSG_ERROR([The important program $1 was not found! +Please check whether you installed aRts correctly or use +--without-arts to compile without aRts support (this will remove functionality). +]) +]) + +AC_DEFUN([KDE_SET_DEFAULT_BINDIRS], +[ + kde_default_bindirs="/usr/bin /usr/local/bin /opt/local/bin /usr/X11R6/bin /opt/kde/bin /opt/kde3/bin /usr/kde/bin /usr/local/kde/bin" + test -n "$KDEDIR" && kde_default_bindirs="$KDEDIR/bin $kde_default_bindirs" + if test -n "$KDEDIRS"; then + kde_save_IFS=$IFS + IFS=: + for dir in $KDEDIRS; do + kde_default_bindirs="$dir/bin $kde_default_bindirs " + done + IFS=$kde_save_IFS + fi +]) + +AC_DEFUN([KDE_SUBST_PROGRAMS], +[ + AC_ARG_WITH(arts, + AC_HELP_STRING([--without-arts],[build without aRts [default=no]]), + [build_arts=$withval], + [build_arts=yes] + ) + AM_CONDITIONAL(include_ARTS, test "$build_arts" '!=' "no") + if test "$build_arts" = "no"; then + AC_DEFINE(WITHOUT_ARTS, 1, [Defined if compiling without arts]) + fi + + KDE_SET_DEFAULT_BINDIRS + kde_default_bindirs="$exec_prefix/bin $prefix/bin $kde_libs_prefix/bin $kde_default_bindirs" + KDE_FIND_PATH(dcopidl, DCOPIDL, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(dcopidl)]) + KDE_FIND_PATH(dcopidl2cpp, DCOPIDL2CPP, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(dcopidl2cpp)]) + if test "$build_arts" '!=' "no"; then + KDE_FIND_PATH(mcopidl, MCOPIDL, [$kde_default_bindirs], [KDE_MISSING_ARTS_ERROR(mcopidl)]) + KDE_FIND_PATH(artsc-config, ARTSCCONFIG, [$kde_default_bindirs], [KDE_MISSING_ARTS_ERROR(artsc-config)]) + fi + KDE_FIND_PATH(meinproc, MEINPROC, [$kde_default_bindirs]) + + kde32ornewer=1 + kde33ornewer=1 + if test -n "$kde_qtver" && test "$kde_qtver" -lt 3; then + kde32ornewer= + kde33ornewer= + else + if test "$kde_qtver" = "3"; then + if test "$kde_qtsubver" -le 1; then + kde32ornewer= + fi + if test "$kde_qtsubver" -le 2; then + kde33ornewer= + fi + if test "$KDECONFIG" != "compiled"; then + if test `$KDECONFIG --version | grep KDE | sed 's/KDE: \(...\).*/\1/'` = 3.2; then + kde33ornewer= + fi + fi + fi + fi + + if test -n "$kde32ornewer"; then + KDE_FIND_PATH(kconfig_compiler, KCONFIG_COMPILER, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(kconfig_compiler)]) + KDE_FIND_PATH(dcopidlng, DCOPIDLNG, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(dcopidlng)]) + fi + if test -n "$kde33ornewer"; then + KDE_FIND_PATH(makekdewidgets, MAKEKDEWIDGETS, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(makekdewidgets)]) + AC_SUBST(MAKEKDEWIDGETS) + fi + KDE_FIND_PATH(xmllint, XMLLINT, [${prefix}/bin ${exec_prefix}/bin], [XMLLINT=""]) + + if test -n "$MEINPROC" -a "$MEINPROC" != "compiled"; then + kde_sharedirs="/usr/share/kde /usr/local/share /usr/share /opt/kde3/share /opt/kde/share $prefix/share" + test -n "$KDEDIR" && kde_sharedirs="$KDEDIR/share $kde_sharedirs" + AC_FIND_FILE(apps/ksgmltools2/customization/kde-chunk.xsl, $kde_sharedirs, KDE_XSL_STYLESHEET) + if test "$KDE_XSL_STYLESHEET" = "NO"; then + KDE_XSL_STYLESHEET="" + else + KDE_XSL_STYLESHEET="$KDE_XSL_STYLESHEET/apps/ksgmltools2/customization/kde-chunk.xsl" + fi + fi + + DCOP_DEPENDENCIES='$(DCOPIDL)' + if test -n "$kde32ornewer"; then + KCFG_DEPENDENCIES='$(KCONFIG_COMPILER)' + DCOP_DEPENDENCIES='$(DCOPIDL) $(DCOPIDLNG)' + AC_SUBST(KCONFIG_COMPILER) + AC_SUBST(KCFG_DEPENDENCIES) + AC_SUBST(DCOPIDLNG) + fi + AC_SUBST(DCOPIDL) + AC_SUBST(DCOPIDL2CPP) + AC_SUBST(DCOP_DEPENDENCIES) + AC_SUBST(MCOPIDL) + AC_SUBST(ARTSCCONFIG) + AC_SUBST(MEINPROC) + AC_SUBST(KDE_XSL_STYLESHEET) + AC_SUBST(XMLLINT) +])dnl + +AC_DEFUN([AC_CREATE_KFSSTND], +[ +AC_REQUIRE([AC_CHECK_RPATH]) + +AC_MSG_CHECKING([for KDE paths]) +kde_result="" +kde_cached_paths=yes +AC_CACHE_VAL(kde_cv_all_paths, +[ + KDE_SET_DEFAULT_PATHS($1) + kde_cached_paths=no +]) +eval "$kde_cv_all_paths" +KDE_CHECK_PATHS_FOR_COMPLETENESS +if test "$kde_have_all_paths" = "no" && test "$kde_cached_paths" = "yes"; then + # wrong values were cached, may be, we can set better ones + kde_result= + kde_htmldir= kde_appsdir= kde_icondir= kde_sounddir= + kde_datadir= kde_locale= kde_cgidir= kde_confdir= kde_kcfgdir= + kde_mimedir= kde_toolbardir= kde_wallpaperdir= kde_templatesdir= + kde_bindir= kde_servicesdir= kde_servicetypesdir= kde_moduledir= + kde_have_all_paths= + kde_styledir= + kde_widgetdir= + xdg_appsdir = xdg_menudir= xdg_directorydir= + KDE_SET_DEFAULT_PATHS($1) + eval "$kde_cv_all_paths" + KDE_CHECK_PATHS_FOR_COMPLETENESS + kde_result="$kde_result (cache overridden)" +fi +if test "$kde_have_all_paths" = "no"; then + AC_MSG_ERROR([configure could not run a little KDE program to test the environment. +Since it had compiled and linked before, it must be a strange problem on your system. +Look at config.log for details. If you are not able to fix this, look at +http://www.kde.org/faq/installation.html or any www.kde.org mirror. +(If you're using an egcs version on Linux, you may update binutils!) +]) +else + rm -f conftest* + AC_MSG_RESULT($kde_result) +fi + +bindir=$kde_bindir + +KDE_SUBST_PROGRAMS + +]) + +AC_DEFUN([AC_SUBST_KFSSTND], +[ +AC_SUBST(kde_htmldir) +AC_SUBST(kde_appsdir) +AC_SUBST(kde_icondir) +AC_SUBST(kde_sounddir) +AC_SUBST(kde_datadir) +AC_SUBST(kde_locale) +AC_SUBST(kde_confdir) +AC_SUBST(kde_kcfgdir) +AC_SUBST(kde_mimedir) +AC_SUBST(kde_wallpaperdir) +AC_SUBST(kde_bindir) +dnl X Desktop Group standards +AC_SUBST(xdg_appsdir) +AC_SUBST(xdg_menudir) +AC_SUBST(xdg_directorydir) +dnl for KDE 2 +AC_SUBST(kde_templatesdir) +AC_SUBST(kde_servicesdir) +AC_SUBST(kde_servicetypesdir) +AC_SUBST(kde_moduledir) +AC_SUBST(kdeinitdir, '$(kde_moduledir)') +AC_SUBST(kde_styledir) +AC_SUBST(kde_widgetdir) +if test "$kde_qtver" = 1; then + kde_minidir="$kde_icondir/mini" +else +# for KDE 1 - this breaks KDE2 apps using minidir, but +# that's the plan ;-/ + kde_minidir="/dev/null" +fi +dnl AC_SUBST(kde_minidir) +dnl AC_SUBST(kde_cgidir) +dnl AC_SUBST(kde_toolbardir) +]) + +AC_DEFUN([KDE_MISC_TESTS], +[ + dnl Checks for libraries. + AC_CHECK_LIB(util, main, [LIBUTIL="-lutil"]) dnl for *BSD + AC_SUBST(LIBUTIL) + AC_CHECK_LIB(compat, main, [LIBCOMPAT="-lcompat"]) dnl for *BSD + AC_SUBST(LIBCOMPAT) + kde_have_crypt= + AC_CHECK_LIB(crypt, crypt, [LIBCRYPT="-lcrypt"; kde_have_crypt=yes], + AC_CHECK_LIB(c, crypt, [kde_have_crypt=yes], [ + AC_MSG_WARN([you have no crypt in either libcrypt or libc. +You should install libcrypt from another source or configure with PAM +support]) + kde_have_crypt=no + ])) + AC_SUBST(LIBCRYPT) + if test $kde_have_crypt = yes; then + AC_DEFINE_UNQUOTED(HAVE_CRYPT, 1, [Defines if your system has the crypt function]) + fi + AC_CHECK_SOCKLEN_T + AC_CHECK_LIB(dnet, dnet_ntoa, [X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet"]) + if test $ac_cv_lib_dnet_dnet_ntoa = no; then + AC_CHECK_LIB(dnet_stub, dnet_ntoa, + [X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub"]) + fi + AC_CHECK_FUNC(inet_ntoa) + if test $ac_cv_func_inet_ntoa = no; then + AC_CHECK_LIB(nsl, inet_ntoa, X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl") + fi + AC_CHECK_FUNC(connect) + if test $ac_cv_func_connect = no; then + AC_CHECK_LIB(socket, connect, X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS", , + $X_EXTRA_LIBS) + fi + + AC_CHECK_FUNC(remove) + if test $ac_cv_func_remove = no; then + AC_CHECK_LIB(posix, remove, X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix") + fi + + # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. + AC_CHECK_FUNC(shmat, , + AC_CHECK_LIB(ipc, shmat, X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc")) + + # more headers that need to be explicitly included on darwin + AC_CHECK_HEADERS(sys/types.h stdint.h) + + # sys/bitypes.h is needed for uint32_t and friends on Tru64 + AC_CHECK_HEADERS(sys/bitypes.h) + + # darwin requires a poll emulation library + AC_CHECK_LIB(poll, poll, LIB_POLL="-lpoll") + + # for some image handling on Mac OS X + AC_CHECK_HEADERS(Carbon/Carbon.h) + + # CoreAudio framework + AC_CHECK_HEADER(CoreAudio/CoreAudio.h, [ + AC_DEFINE(HAVE_COREAUDIO, 1, [Define if you have the CoreAudio API]) + FRAMEWORK_COREAUDIO="-Wl,-framework,CoreAudio" + ]) + + AC_CHECK_RES_INIT + AC_SUBST(LIB_POLL) + AC_SUBST(FRAMEWORK_COREAUDIO) + LIBSOCKET="$X_EXTRA_LIBS" + AC_SUBST(LIBSOCKET) + AC_SUBST(X_EXTRA_LIBS) + AC_CHECK_LIB(ucb, killpg, [LIBUCB="-lucb"]) dnl for Solaris2.4 + AC_SUBST(LIBUCB) + + case $host in dnl this *is* LynxOS specific + *-*-lynxos* ) + AC_MSG_CHECKING([LynxOS header file wrappers]) + [CFLAGS="$CFLAGS -D__NO_INCLUDE_WARN__"] + AC_MSG_RESULT(disabled) + AC_CHECK_LIB(bsd, gethostbyname, [LIBSOCKET="-lbsd"]) dnl for LynxOS + ;; + esac + + KDE_CHECK_TYPES + KDE_CHECK_LIBDL + KDE_CHECK_STRLCPY + KDE_CHECK_PIE_SUPPORT + +# darwin needs this to initialize the environment +AC_CHECK_HEADERS(crt_externs.h) +AC_CHECK_FUNC(_NSGetEnviron, [AC_DEFINE(HAVE_NSGETENVIRON, 1, [Define if your system needs _NSGetEnviron to set up the environment])]) + +AH_VERBATIM(_DARWIN_ENVIRON, +[ +#if defined(HAVE_NSGETENVIRON) && defined(HAVE_CRT_EXTERNS_H) +# include +# include +# define environ (*_NSGetEnviron()) +#endif +]) + +AH_VERBATIM(_AIX_STRINGS_H_BZERO, +[ +/* + * AIX defines FD_SET in terms of bzero, but fails to include + * that defines bzero. + */ + +#if defined(_AIX) +#include +#endif +]) + +AC_CHECK_FUNCS([vsnprintf snprintf]) + +AH_VERBATIM(_TRU64,[ +/* + * On HP-UX, the declaration of vsnprintf() is needed every time ! + */ + +#if !defined(HAVE_VSNPRINTF) || defined(hpux) +#if __STDC__ +#include +#include +#else +#include +#endif +#ifdef __cplusplus +extern "C" +#endif +int vsnprintf(char *str, size_t n, char const *fmt, va_list ap); +#ifdef __cplusplus +extern "C" +#endif +int snprintf(char *str, size_t n, char const *fmt, ...); +#endif +]) + +]) + +dnl ------------------------------------------------------------------------ +dnl Find the header files and libraries for X-Windows. Extended the +dnl macro AC_PATH_X +dnl ------------------------------------------------------------------------ +dnl +AC_DEFUN([K_PATH_X], +[ +AC_REQUIRE([KDE_MISC_TESTS])dnl +AC_REQUIRE([KDE_CHECK_LIB64]) + +AC_ARG_ENABLE( + embedded, + AC_HELP_STRING([--enable-embedded],[link to Qt-embedded, don't use X]), + kde_use_qt_emb=$enableval, + kde_use_qt_emb=no +) + +AC_ARG_ENABLE( + qtopia, + AC_HELP_STRING([--enable-qtopia],[link to Qt-embedded, link to the Qtopia Environment]), + kde_use_qt_emb_palm=$enableval, + kde_use_qt_emb_palm=no +) + +AC_ARG_ENABLE( + mac, + AC_HELP_STRING([--enable-mac],[link to Qt/Mac (don't use X)]), + kde_use_qt_mac=$enableval, + kde_use_qt_mac=no +) + +# used to disable x11-specific stuff on special platforms +AM_CONDITIONAL(include_x11, test "$kde_use_qt_emb" = "no" && test "$kde_use_qt_mac" = "no") + +if test "$kde_use_qt_emb" = "no" && test "$kde_use_qt_mac" = "no"; then + +AC_MSG_CHECKING(for X) + +AC_CACHE_VAL(kde_cv_have_x, +[# One or both of the vars are not set, and there is no cached value. +if test "{$x_includes+set}" = set || test "$x_includes" = NONE; then + kde_x_includes=NO +else + kde_x_includes=$x_includes +fi +if test "{$x_libraries+set}" = set || test "$x_libraries" = NONE; then + kde_x_libraries=NO +else + kde_x_libraries=$x_libraries +fi + +# below we use the standard autoconf calls +ac_x_libraries=$kde_x_libraries +ac_x_includes=$kde_x_includes + +KDE_PATH_X_DIRECT +dnl AC_PATH_X_XMKMF picks /usr/lib as the path for the X libraries. +dnl Unfortunately, if compiling with the N32 ABI, this is not the correct +dnl location. The correct location is /usr/lib32 or an undefined value +dnl (the linker is smart enough to pick the correct default library). +dnl Things work just fine if you use just AC_PATH_X_DIRECT. +dnl Solaris has a similar problem. AC_PATH_X_XMKMF forces x_includes to +dnl /usr/openwin/include, which doesn't work. /usr/include does work, so +dnl x_includes should be left alone. +case "$host" in +mips-sgi-irix6*) + ;; +*-*-solaris*) + ;; +*) + _AC_PATH_X_XMKMF + if test -z "$ac_x_includes"; then + ac_x_includes="." + fi + if test -z "$ac_x_libraries"; then + ac_x_libraries="/usr/lib${kdelibsuff}" + fi +esac +#from now on we use our own again + +# when the user already gave --x-includes, we ignore +# what the standard autoconf macros told us. +if test "$kde_x_includes" = NO; then + kde_x_includes=$ac_x_includes +fi + +# for --x-libraries too +if test "$kde_x_libraries" = NO; then + kde_x_libraries=$ac_x_libraries +fi + +if test "$kde_x_includes" = NO; then + AC_MSG_ERROR([Can't find X includes. Please check your installation and add the correct paths!]) +fi + +if test "$kde_x_libraries" = NO; then + AC_MSG_ERROR([Can't find X libraries. Please check your installation and add the correct paths!]) +fi + +# Record where we found X for the cache. +kde_cv_have_x="have_x=yes \ + kde_x_includes=$kde_x_includes kde_x_libraries=$kde_x_libraries" +])dnl + +eval "$kde_cv_have_x" + +if test "$have_x" != yes; then + AC_MSG_RESULT($have_x) + no_x=yes +else + AC_MSG_RESULT([libraries $kde_x_libraries, headers $kde_x_includes]) +fi + +if test -z "$kde_x_includes" || test "x$kde_x_includes" = xNONE; then + X_INCLUDES="" + x_includes="."; dnl better than nothing :- + else + x_includes=$kde_x_includes + X_INCLUDES="-I$x_includes" +fi + +if test -z "$kde_x_libraries" || test "x$kde_x_libraries" = xNONE || test "$kde_x_libraries" = "/usr/lib"; then + X_LDFLAGS="" + x_libraries="/usr/lib"; dnl better than nothing :- + else + x_libraries=$kde_x_libraries + X_LDFLAGS="-L$x_libraries" +fi +all_includes="$X_INCLUDES" +all_libraries="$X_LDFLAGS $LDFLAGS_AS_NEEDED $LDFLAGS_NEW_DTAGS" + +# Check for libraries that X11R6 Xt/Xaw programs need. +ac_save_LDFLAGS="$LDFLAGS" +LDFLAGS="$LDFLAGS $X_LDFLAGS" +# SM needs ICE to (dynamically) link under SunOS 4.x (so we have to +# check for ICE first), but we must link in the order -lSM -lICE or +# we get undefined symbols. So assume we have SM if we have ICE. +# These have to be linked with before -lX11, unlike the other +# libraries we check for below, so use a different variable. +# --interran@uluru.Stanford.EDU, kb@cs.umb.edu. +AC_CHECK_LIB(ICE, IceConnectionNumber, + [LIBSM="-lSM -lICE"], , $X_EXTRA_LIBS) +LDFLAGS="$ac_save_LDFLAGS" + +LIB_X11='-lX11 $(LIBSOCKET)' + +AC_MSG_CHECKING(for libXext) +AC_CACHE_VAL(kde_cv_have_libXext, +[ +kde_ldflags_safe="$LDFLAGS" +kde_libs_safe="$LIBS" + +LDFLAGS="$LDFLAGS $X_LDFLAGS $USER_LDFLAGS" +LIBS="-lXext -lX11 $LIBSOCKET" + +AC_TRY_LINK([ +#include +#ifdef STDC_HEADERS +# include +#endif +], +[ +printf("hello Xext\n"); +], +kde_cv_have_libXext=yes, +kde_cv_have_libXext=no +) + +LDFLAGS=$kde_ldflags_safe +LIBS=$kde_libs_safe +]) + +AC_MSG_RESULT($kde_cv_have_libXext) + +if test "$kde_cv_have_libXext" = "no"; then + AC_MSG_ERROR([We need a working libXext to proceed. Since configure +can't find it itself, we stop here assuming that make wouldn't find +them either.]) +fi + +LIB_XEXT="-lXext" +QTE_NORTTI="" + +elif test "$kde_use_qt_emb" = "yes"; then + dnl We're using QT Embedded + CPPFLAGS=-DQWS + CXXFLAGS="$CXXFLAGS -fno-rtti" + QTE_NORTTI="-fno-rtti -DQWS" + X_PRE_LIBS="" + LIB_X11="" + LIB_XEXT="" + LIB_XRENDER="" + LIBSM="" + X_INCLUDES="" + X_LDFLAGS="" + x_includes="" + x_libraries="" +elif test "$kde_use_qt_mac" = "yes"; then + dnl We're using QT/Mac (I use QT_MAC so that qglobal.h doesn't *have* to + dnl be included to get the information) --Sam + CXXFLAGS="$CXXFLAGS -DQT_MAC -no-cpp-precomp" + CFLAGS="$CFLAGS -DQT_MAC -no-cpp-precomp" + X_PRE_LIBS="" + LIB_X11="" + LIB_XEXT="" + LIB_XRENDER="" + LIBSM="" + X_INCLUDES="" + X_LDFLAGS="" + x_includes="" + x_libraries="" +fi +AC_SUBST(X_PRE_LIBS) +AC_SUBST(LIB_X11) +AC_SUBST(LIB_XRENDER) +AC_SUBST(LIBSM) +AC_SUBST(X_INCLUDES) +AC_SUBST(X_LDFLAGS) +AC_SUBST(x_includes) +AC_SUBST(x_libraries) +AC_SUBST(QTE_NORTTI) +AC_SUBST(LIB_XEXT) + +]) + +AC_DEFUN([KDE_PRINT_QT_PROGRAM], +[ +AC_REQUIRE([KDE_USE_QT]) +cat > conftest.$ac_ext < +#include +EOF +if test "$kde_qtver" = "2"; then +cat >> conftest.$ac_ext < +#include +#include +EOF + +if test $kde_qtsubver -gt 0; then +cat >> conftest.$ac_ext <> conftest.$ac_ext < +#include +#include +EOF +fi + +echo "#if ! ($kde_qt_verstring)" >> conftest.$ac_ext +cat >> conftest.$ac_ext <> conftest.$ac_ext <> conftest.$ac_ext <> conftest.$ac_ext <> conftest.$ac_ext <&AC_FD_CC + cat conftest.$ac_ext >&AC_FD_CC +fi + +rm -f conftest* +CXXFLAGS="$ac_cxxflags_safe" +LDFLAGS="$ac_ldflags_safe" +LIBS="$ac_libs_safe" + +LD_LIBRARY_PATH="$ac_LD_LIBRARY_PATH_safe" +export LD_LIBRARY_PATH +LIBRARY_PATH="$ac_LIBRARY_PATH" +export LIBRARY_PATH +AC_LANG_RESTORE +]) + +if test "$kde_cv_qt_direct" = "yes"; then + AC_MSG_RESULT(yes) + $1 +else + AC_MSG_RESULT(no) + $2 +fi +]) + +dnl ------------------------------------------------------------------------ +dnl Try to find the Qt headers and libraries. +dnl $(QT_LDFLAGS) will be -Lqtliblocation (if needed) +dnl and $(QT_INCLUDES) will be -Iqthdrlocation (if needed) +dnl ------------------------------------------------------------------------ +dnl +AC_DEFUN([AC_PATH_QT_1_3], +[ +AC_REQUIRE([K_PATH_X]) +AC_REQUIRE([KDE_USE_QT]) +AC_REQUIRE([KDE_CHECK_LIB64]) + +dnl ------------------------------------------------------------------------ +dnl Add configure flag to enable linking to MT version of Qt library. +dnl ------------------------------------------------------------------------ + +AC_ARG_ENABLE( + mt, + AC_HELP_STRING([--disable-mt],[link to non-threaded Qt (deprecated)]), + kde_use_qt_mt=$enableval, + [ + if test $kde_qtver = 3; then + kde_use_qt_mt=yes + else + kde_use_qt_mt=no + fi + ] +) + +USING_QT_MT="" + +dnl ------------------------------------------------------------------------ +dnl If we not get --disable-qt-mt then adjust some vars for the host. +dnl ------------------------------------------------------------------------ + +KDE_MT_LDFLAGS= +KDE_MT_LIBS= +if test "x$kde_use_qt_mt" = "xyes"; then + KDE_CHECK_THREADING + if test "x$kde_use_threading" = "xyes"; then + CPPFLAGS="$USE_THREADS -DQT_THREAD_SUPPORT $CPPFLAGS" + KDE_MT_LDFLAGS="$USE_THREADS" + KDE_MT_LIBS="$LIBPTHREAD" + else + kde_use_qt_mt=no + fi +fi +AC_SUBST(KDE_MT_LDFLAGS) +AC_SUBST(KDE_MT_LIBS) + +kde_qt_was_given=yes + +dnl ------------------------------------------------------------------------ +dnl If we haven't been told how to link to Qt, we work it out for ourselves. +dnl ------------------------------------------------------------------------ +if test -z "$LIBQT_GLOB"; then + if test "x$kde_use_qt_emb" = "xyes"; then + LIBQT_GLOB="libqte.*" + else + LIBQT_GLOB="libqt.*" + fi +fi + +dnl ------------------------------------------------------------ +dnl If we got --enable-embedded then adjust the Qt library name. +dnl ------------------------------------------------------------ +if test "x$kde_use_qt_emb" = "xyes"; then + qtlib="qte" +else + qtlib="qt" +fi + +kde_int_qt="-l$qtlib" + +if test -z "$LIBQPE"; then +dnl ------------------------------------------------------------ +dnl If we got --enable-palmtop then add -lqpe to the link line +dnl ------------------------------------------------------------ + if test "x$kde_use_qt_emb" = "xyes"; then + if test "x$kde_use_qt_emb_palm" = "xyes"; then + LIB_QPE="-lqpe" + else + LIB_QPE="" + fi + else + LIB_QPE="" + fi +fi + +dnl ------------------------------------------------------------------------ +dnl If we got --enable-qt-mt then adjust the Qt library name for the host. +dnl ------------------------------------------------------------------------ + +if test "x$kde_use_qt_mt" = "xyes"; then + LIBQT="-l$qtlib-mt" + kde_int_qt="-l$qtlib-mt" + LIBQT_GLOB="lib$qtlib-mt.*" + USING_QT_MT="using -mt" +else + LIBQT="-l$qtlib" +fi + +if test $kde_qtver != 1; then + + AC_REQUIRE([AC_FIND_PNG]) + AC_REQUIRE([AC_FIND_JPEG]) + LIBQT="$LIBQT $LIBPNG $LIBJPEG" +fi + +if test $kde_qtver = 3; then + AC_REQUIRE([KDE_CHECK_LIBDL]) + LIBQT="$LIBQT $LIBDL" +fi + +AC_MSG_CHECKING([for Qt]) + +if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then +LIBQT="$LIBQT $X_PRE_LIBS -lXext -lX11 $LIBSM $LIBSOCKET" +fi +ac_qt_includes=NO ac_qt_libraries=NO ac_qt_bindir=NO +qt_libraries="" +qt_includes="" +AC_ARG_WITH(qt-dir, + AC_HELP_STRING([--with-qt-dir=DIR],[where the root of Qt is installed ]), + [ ac_qt_includes="$withval"/include + ac_qt_libraries="$withval"/lib${kdelibsuff} + ac_qt_bindir="$withval"/bin + ]) + +AC_ARG_WITH(qt-includes, + AC_HELP_STRING([--with-qt-includes=DIR],[where the Qt includes are. ]), + [ + ac_qt_includes="$withval" + ]) + +kde_qt_libs_given=no + +AC_ARG_WITH(qt-libraries, + AC_HELP_STRING([--with-qt-libraries=DIR],[where the Qt library is installed.]), + [ ac_qt_libraries="$withval" + kde_qt_libs_given=yes + ]) + +AC_CACHE_VAL(ac_cv_have_qt, +[#try to guess Qt locations + +qt_incdirs="" +for dir in $kde_qt_dirs; do + qt_incdirs="$qt_incdirs $dir/include $dir" +done +qt_incdirs="$QTINC $qt_incdirs /usr/local/qt/include /usr/include/qt /usr/include /usr/X11R6/include/X11/qt /usr/X11R6/include/qt /usr/X11R6/include/qt2 /usr/include/qt3 $x_includes" +if test ! "$ac_qt_includes" = "NO"; then + qt_incdirs="$ac_qt_includes $qt_incdirs" +fi + +if test "$kde_qtver" != "1"; then + kde_qt_header=qstyle.h +else + kde_qt_header=qglobal.h +fi + +AC_FIND_FILE($kde_qt_header, $qt_incdirs, qt_incdir) +ac_qt_includes="$qt_incdir" + +qt_libdirs="" +for dir in $kde_qt_dirs; do + qt_libdirs="$qt_libdirs $dir/lib${kdelibsuff} $dir" +done +qt_libdirs="$QTLIB $qt_libdirs /usr/X11R6/lib /usr/lib /usr/local/qt/lib $x_libraries" +if test ! "$ac_qt_libraries" = "NO"; then + qt_libdir=$ac_qt_libraries +else + qt_libdirs="$ac_qt_libraries $qt_libdirs" + # if the Qt was given, the chance is too big that libqt.* doesn't exist + qt_libdir=NONE + for dir in $qt_libdirs; do + try="ls -1 $dir/${LIBQT_GLOB}" + if test -n "`$try 2> /dev/null`"; then qt_libdir=$dir; break; else echo "tried $dir" >&AC_FD_CC ; fi + done +fi +for a in $qt_libdir/lib`echo ${kde_int_qt} | sed 's,^-l,,'`_incremental.*; do + if test -e "$a"; then + LIBQT="$LIBQT ${kde_int_qt}_incremental" + break + fi +done + +ac_qt_libraries="$qt_libdir" + +AC_LANG_SAVE +AC_LANG_CPLUSPLUS + +ac_cxxflags_safe="$CXXFLAGS" +ac_ldflags_safe="$LDFLAGS" +ac_libs_safe="$LIBS" + +CXXFLAGS="$CXXFLAGS -I$qt_incdir $all_includes" +LDFLAGS="$LDFLAGS -L$qt_libdir $all_libraries $USER_LDFLAGS $KDE_MT_LDFLAGS" +LIBS="$LIBS $LIBQT $KDE_MT_LIBS" + +KDE_PRINT_QT_PROGRAM + +if AC_TRY_EVAL(ac_link) && test -s conftest; then + rm -f conftest* +else + echo "configure: failed program was:" >&AC_FD_CC + cat conftest.$ac_ext >&AC_FD_CC + ac_qt_libraries="NO" +fi +rm -f conftest* +CXXFLAGS="$ac_cxxflags_safe" +LDFLAGS="$ac_ldflags_safe" +LIBS="$ac_libs_safe" + +AC_LANG_RESTORE +if test "$ac_qt_includes" = NO || test "$ac_qt_libraries" = NO; then + ac_cv_have_qt="have_qt=no" + ac_qt_notfound="" + missing_qt_mt="" + if test "$ac_qt_includes" = NO; then + if test "$ac_qt_libraries" = NO; then + ac_qt_notfound="(headers and libraries)"; + else + ac_qt_notfound="(headers)"; + fi + else + if test "x$kde_use_qt_mt" = "xyes"; then + missing_qt_mt=" +Make sure that you have compiled Qt with thread support!" + ac_qt_notfound="(library $qtlib-mt)"; + else + ac_qt_notfound="(library $qtlib)"; + fi + fi + + AC_MSG_ERROR([Qt ($kde_qt_minversion) $ac_qt_notfound not found. Please check your installation! +For more details about this problem, look at the end of config.log.$missing_qt_mt]) +else + have_qt="yes" +fi +]) + +eval "$ac_cv_have_qt" + +if test "$have_qt" != yes; then + AC_MSG_RESULT([$have_qt]); +else + ac_cv_have_qt="have_qt=yes \ + ac_qt_includes=$ac_qt_includes ac_qt_libraries=$ac_qt_libraries" + AC_MSG_RESULT([libraries $ac_qt_libraries, headers $ac_qt_includes $USING_QT_MT]) + + qt_libraries="$ac_qt_libraries" + qt_includes="$ac_qt_includes" +fi + +if test ! "$kde_qt_libs_given" = "yes" && test ! "$kde_qtver" = 3; then + KDE_CHECK_QT_DIRECT(qt_libraries= ,[]) +fi + +AC_SUBST(qt_libraries) +AC_SUBST(qt_includes) + +if test "$qt_includes" = "$x_includes" || test -z "$qt_includes"; then + QT_INCLUDES="" +else + QT_INCLUDES="-I$qt_includes" + all_includes="$QT_INCLUDES $all_includes" +fi + +if test "$qt_libraries" = "$x_libraries" || test -z "$qt_libraries"; then + QT_LDFLAGS="" +else + QT_LDFLAGS="-L$qt_libraries" + all_libraries="$QT_LDFLAGS $all_libraries" +fi +test -z "$KDE_MT_LDFLAGS" || all_libraries="$all_libraries $KDE_MT_LDFLAGS" + +AC_SUBST(QT_INCLUDES) +AC_SUBST(QT_LDFLAGS) +AC_PATH_QT_MOC_UIC + +KDE_CHECK_QT_JPEG + +if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then +LIB_QT="$kde_int_qt $LIBJPEG_QT "'$(LIBZ) $(LIBPNG) -lXext $(LIB_X11) $(LIBSM)' +else +LIB_QT="$kde_int_qt $LIBJPEG_QT "'$(LIBZ) $(LIBPNG)' +fi +test -z "$KDE_MT_LIBS" || LIB_QT="$LIB_QT $KDE_MT_LIBS" +for a in $qt_libdir/lib`echo ${kde_int_qt} | sed 's,^-l,,'`_incremental.*; do + if test -e "$a"; then + LIB_QT="$LIB_QT ${kde_int_qt}_incremental" + break + fi +done + +AC_SUBST(LIB_QT) +AC_SUBST(LIB_QPE) + +AC_SUBST(kde_qtver) +]) + +AC_DEFUN([AC_PATH_QT], +[ +AC_PATH_QT_1_3 +]) + +AC_DEFUN([KDE_CHECK_UIC_PLUGINS], +[ +AC_REQUIRE([AC_PATH_QT_MOC_UIC]) + +if test x$ac_uic_supports_libpath = xyes; then + +AC_MSG_CHECKING([if UIC has KDE plugins available]) +AC_CACHE_VAL(kde_cv_uic_plugins, +[ +cat > actest.ui << EOF + +NewConnectionDialog + + + + testInput + + + + +EOF + + + +kde_cv_uic_plugins=no +kde_line="$UIC_PATH -L $kde_widgetdir" +if test x$ac_uic_supports_nounload = xyes; then + kde_line="$kde_line -nounload" +fi +kde_line="$kde_line -impl actest.h actest.ui > actest.cpp" +if AC_TRY_EVAL(kde_line); then + # if you're trying to debug this check and think it's incorrect, + # better check your installation. The check _is_ correct - your + # installation is not. + if test -f actest.cpp && grep klineedit actest.cpp > /dev/null; then + kde_cv_uic_plugins=yes + fi +fi +rm -f actest.ui actest.cpp +]) + +AC_MSG_RESULT([$kde_cv_uic_plugins]) +if test "$kde_cv_uic_plugins" != yes; then + AC_MSG_ERROR([ +you need to install kdelibs first. + +If you did install kdelibs, then the Qt version that is picked up by +this configure is not the same version you used to compile kdelibs. +The Qt Plugin installed by kdelibs is *ONLY* loadable if it is the +_same Qt version_, compiled with the _same compiler_ and the same Qt +configuration settings. +]) +fi +fi +]) + +AC_DEFUN([KDE_CHECK_FINAL], +[ + AC_ARG_ENABLE(final, + AC_HELP_STRING([--enable-final], + [build size optimized apps (experimental - needs lots of memory)]), + kde_use_final=$enableval, kde_use_final=no) + + if test "x$kde_use_final" = "xyes"; then + KDE_USE_FINAL_TRUE="" + KDE_USE_FINAL_FALSE="#" + else + KDE_USE_FINAL_TRUE="#" + KDE_USE_FINAL_FALSE="" + fi + AC_SUBST(KDE_USE_FINAL_TRUE) + AC_SUBST(KDE_USE_FINAL_FALSE) +]) + +AC_DEFUN([KDE_CHECK_CLOSURE], +[ + AC_ARG_ENABLE(closure, + AC_HELP_STRING([--enable-closure],[delay template instantiation]), + kde_use_closure=$enableval, kde_use_closure=no) + + KDE_NO_UNDEFINED="" + if test "x$kde_use_closure" = "xyes"; then + KDE_USE_CLOSURE_TRUE="" + KDE_USE_CLOSURE_FALSE="#" +# CXXFLAGS="$CXXFLAGS $REPO" + else + KDE_USE_CLOSURE_TRUE="#" + KDE_USE_CLOSURE_FALSE="" + KDE_NO_UNDEFINED="" + fi + AC_SUBST(KDE_USE_CLOSURE_TRUE) + AC_SUBST(KDE_USE_CLOSURE_FALSE) + AC_SUBST(KDE_NO_UNDEFINED) +]) + +dnl Check if the linker supports --enable-new-dtags and --as-needed +AC_DEFUN([KDE_CHECK_NEW_LDFLAGS], +[ + AC_ARG_ENABLE(new_ldflags, + AC_HELP_STRING([--enable-new-ldflags], + [enable the new linker flags]), + kde_use_new_ldflags=$enableval, + kde_use_new_ldflags=no) + + LDFLAGS_AS_NEEDED="" + LDFLAGS_NEW_DTAGS="" + if test "x$kde_use_new_ldflags" = "xyes"; then + LDFLAGS_NEW_DTAGS="" + KDE_CHECK_COMPILER_FLAG([Wl,--enable-new-dtags], + [LDFLAGS_NEW_DTAGS="-Wl,--enable-new-dtags"],) + + KDE_CHECK_COMPILER_FLAG([Wl,--as-needed], + [LDFLAGS_AS_NEEDED="-Wl,--as-needed"],) + fi + AC_SUBST(LDFLAGS_AS_NEEDED) + AC_SUBST(LDFLAGS_NEW_DTAGS) +]) + +AC_DEFUN([KDE_CHECK_NMCHECK], +[ + AC_ARG_ENABLE(nmcheck,AC_HELP_STRING([--enable-nmcheck],[enable automatic namespace cleanness check]), + kde_use_nmcheck=$enableval, kde_use_nmcheck=no) + + if test "$kde_use_nmcheck" = "yes"; then + KDE_USE_NMCHECK_TRUE="" + KDE_USE_NMCHECK_FALSE="#" + else + KDE_USE_NMCHECK_TRUE="#" + KDE_USE_NMCHECK_FALSE="" + fi + AC_SUBST(KDE_USE_NMCHECK_TRUE) + AC_SUBST(KDE_USE_NMCHECK_FALSE) +]) + +AC_DEFUN([KDE_EXPAND_MAKEVAR], [ +savex=$exec_prefix +test "x$exec_prefix" = xNONE && exec_prefix=$prefix +tmp=$$2 +while $1=`eval echo "$tmp"`; test "x$$1" != "x$tmp"; do tmp=$$1; done +exec_prefix=$savex +]) + +dnl ------------------------------------------------------------------------ +dnl Now, the same with KDE +dnl $(KDE_LDFLAGS) will be the kdeliblocation (if needed) +dnl and $(kde_includes) will be the kdehdrlocation (if needed) +dnl ------------------------------------------------------------------------ +dnl +AC_DEFUN([AC_BASE_PATH_KDE], +[ +AC_REQUIRE([KDE_CHECK_STL]) +AC_REQUIRE([AC_PATH_QT])dnl +AC_REQUIRE([KDE_CHECK_LIB64]) + +AC_CHECK_RPATH +AC_MSG_CHECKING([for KDE]) + +if test "${prefix}" != NONE; then + kde_includes=${includedir} + KDE_EXPAND_MAKEVAR(ac_kde_includes, includedir) + + kde_libraries=${libdir} + KDE_EXPAND_MAKEVAR(ac_kde_libraries, libdir) + +else + ac_kde_includes= + ac_kde_libraries= + kde_libraries="" + kde_includes="" +fi + +AC_CACHE_VAL(ac_cv_have_kde, +[#try to guess kde locations + +if test "$kde_qtver" = 1; then + kde_check_header="ksock.h" + kde_check_lib="libkdecore.la" +else + kde_check_header="ksharedptr.h" + kde_check_lib="libkio.la" +fi + +if test -z "$1"; then + +kde_incdirs="$kde_libs_prefix/include /usr/lib/kde/include /usr/local/kde/include /usr/local/include /usr/kde/include /usr/include/kde /usr/include /opt/kde3/include /opt/kde/include $x_includes $qt_includes" +test -n "$KDEDIR" && kde_incdirs="$KDEDIR/include $KDEDIR/include/kde $KDEDIR $kde_incdirs" +kde_incdirs="$ac_kde_includes $kde_incdirs" +AC_FIND_FILE($kde_check_header, $kde_incdirs, kde_incdir) +ac_kde_includes="$kde_incdir" + +if test -n "$ac_kde_includes" && test ! -r "$ac_kde_includes/$kde_check_header"; then + AC_MSG_ERROR([ +in the prefix, you've chosen, are no KDE headers installed. This will fail. +So, check this please and use another prefix!]) +fi + +kde_libdirs="$kde_libs_prefix/lib${kdelibsuff} /usr/lib/kde/lib${kdelibsuff} /usr/local/kde/lib${kdelibsuff} /usr/kde/lib${kdelibsuff} /usr/lib${kdelibsuff}/kde /usr/lib${kdelibsuff}/kde3 /usr/lib${kdelibsuff} /usr/X11R6/lib${kdelibsuff} /usr/local/lib${kdelibsuff} /opt/kde3/lib${kdelibsuff} /opt/kde/lib${kdelibsuff} /usr/X11R6/kde/lib${kdelibsuff}" +test -n "$KDEDIR" && kde_libdirs="$KDEDIR/lib${kdelibsuff} $KDEDIR $kde_libdirs" +kde_libdirs="$ac_kde_libraries $libdir $kde_libdirs" +AC_FIND_FILE($kde_check_lib, $kde_libdirs, kde_libdir) +ac_kde_libraries="$kde_libdir" + +kde_widgetdir=NO +dnl this might be somewhere else +AC_FIND_FILE("kde3/plugins/designer/kdewidgets.la", $kde_libdirs, kde_widgetdir) + +if test -n "$ac_kde_libraries" && test ! -r "$ac_kde_libraries/$kde_check_lib"; then +AC_MSG_ERROR([ +in the prefix, you've chosen, are no KDE libraries installed. This will fail. +So, check this please and use another prefix!]) +fi + +if test -n "$kde_widgetdir" && test ! -r "$kde_widgetdir/kde3/plugins/designer/kdewidgets.la"; then +AC_MSG_ERROR([ +I can't find the designer plugins. These are required and should have been installed +by kdelibs]) +fi + +if test -n "$kde_widgetdir"; then + kde_widgetdir="$kde_widgetdir/kde3/plugins/designer" +fi + + +if test "$ac_kde_includes" = NO || test "$ac_kde_libraries" = NO || test "$kde_widgetdir" = NO; then + ac_cv_have_kde="have_kde=no" +else + ac_cv_have_kde="have_kde=yes \ + ac_kde_includes=$ac_kde_includes ac_kde_libraries=$ac_kde_libraries" +fi + +else dnl test -z $1, e.g. from kdelibs + + ac_cv_have_kde="have_kde=no" + +fi +])dnl + +eval "$ac_cv_have_kde" + +if test "$have_kde" != "yes"; then + if test "${prefix}" = NONE; then + ac_kde_prefix="$ac_default_prefix" + else + ac_kde_prefix="$prefix" + fi + if test "$exec_prefix" = NONE; then + ac_kde_exec_prefix="$ac_kde_prefix" + AC_MSG_RESULT([will be installed in $ac_kde_prefix]) + else + ac_kde_exec_prefix="$exec_prefix" + AC_MSG_RESULT([will be installed in $ac_kde_prefix and $ac_kde_exec_prefix]) + fi + + kde_libraries="${libdir}" + kde_includes="${includedir}" + +else + ac_cv_have_kde="have_kde=yes \ + ac_kde_includes=$ac_kde_includes ac_kde_libraries=$ac_kde_libraries" + AC_MSG_RESULT([libraries $ac_kde_libraries, headers $ac_kde_includes]) + + kde_libraries="$ac_kde_libraries" + kde_includes="$ac_kde_includes" +fi +AC_SUBST(kde_libraries) +AC_SUBST(kde_includes) + +if test "$kde_includes" = "$x_includes" || test "$kde_includes" = "$qt_includes" || test "$kde_includes" = "/usr/include"; then + KDE_INCLUDES="" +else + KDE_INCLUDES="-I$kde_includes" + all_includes="$KDE_INCLUDES $all_includes" +fi + +KDE_DEFAULT_CXXFLAGS="-DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION" + +KDE_LDFLAGS="-L$kde_libraries" +if test ! "$kde_libraries" = "$x_libraries" && test ! "$kde_libraries" = "$qt_libraries" ; then + all_libraries="$KDE_LDFLAGS $all_libraries" +fi + +AC_SUBST(KDE_LDFLAGS) +AC_SUBST(KDE_INCLUDES) + +AC_REQUIRE([KDE_CHECK_EXTRA_LIBS]) + +all_libraries="$all_libraries $USER_LDFLAGS" +all_includes="$all_includes $USER_INCLUDES" +AC_SUBST(all_includes) +AC_SUBST(all_libraries) + +if test -z "$1"; then +KDE_CHECK_UIC_PLUGINS +fi + +ac_kde_libraries="$kde_libdir" + +AC_SUBST(AUTODIRS) + + +]) + +AC_DEFUN([KDE_CHECK_EXTRA_LIBS], +[ +AC_MSG_CHECKING(for extra includes) +AC_ARG_WITH(extra-includes,AC_HELP_STRING([--with-extra-includes=DIR],[adds non standard include paths]), + kde_use_extra_includes="$withval", + kde_use_extra_includes=NONE +) +kde_extra_includes= +if test -n "$kde_use_extra_includes" && \ + test "$kde_use_extra_includes" != "NONE"; then + + ac_save_ifs=$IFS + IFS=':' + for dir in $kde_use_extra_includes; do + kde_extra_includes="$kde_extra_includes $dir" + USER_INCLUDES="$USER_INCLUDES -I$dir" + done + IFS=$ac_save_ifs + kde_use_extra_includes="added" +else + kde_use_extra_includes="no" +fi +AC_SUBST(USER_INCLUDES) + +AC_MSG_RESULT($kde_use_extra_includes) + +kde_extra_libs= +AC_MSG_CHECKING(for extra libs) +AC_ARG_WITH(extra-libs,AC_HELP_STRING([--with-extra-libs=DIR],[adds non standard library paths]), + kde_use_extra_libs=$withval, + kde_use_extra_libs=NONE +) +if test -n "$kde_use_extra_libs" && \ + test "$kde_use_extra_libs" != "NONE"; then + + ac_save_ifs=$IFS + IFS=':' + for dir in $kde_use_extra_libs; do + kde_extra_libs="$kde_extra_libs $dir" + KDE_EXTRA_RPATH="$KDE_EXTRA_RPATH -R $dir" + USER_LDFLAGS="$USER_LDFLAGS -L$dir" + done + IFS=$ac_save_ifs + kde_use_extra_libs="added" +else + kde_use_extra_libs="no" +fi + +AC_SUBST(USER_LDFLAGS) + +AC_MSG_RESULT($kde_use_extra_libs) + +]) + +AC_DEFUN([KDE_1_CHECK_PATH_HEADERS], +[ + AC_MSG_CHECKING([for KDE headers installed]) + AC_LANG_SAVE + AC_LANG_CPLUSPLUS +cat > conftest.$ac_ext < +#endif +#include +#include "confdefs.h" +#include + +int main() { + printf("kde_htmldir=\\"%s\\"\n", KApplication::kde_htmldir().data()); + printf("kde_appsdir=\\"%s\\"\n", KApplication::kde_appsdir().data()); + printf("kde_icondir=\\"%s\\"\n", KApplication::kde_icondir().data()); + printf("kde_sounddir=\\"%s\\"\n", KApplication::kde_sounddir().data()); + printf("kde_datadir=\\"%s\\"\n", KApplication::kde_datadir().data()); + printf("kde_locale=\\"%s\\"\n", KApplication::kde_localedir().data()); + printf("kde_cgidir=\\"%s\\"\n", KApplication::kde_cgidir().data()); + printf("kde_confdir=\\"%s\\"\n", KApplication::kde_configdir().data()); + printf("kde_mimedir=\\"%s\\"\n", KApplication::kde_mimedir().data()); + printf("kde_toolbardir=\\"%s\\"\n", KApplication::kde_toolbardir().data()); + printf("kde_wallpaperdir=\\"%s\\"\n", + KApplication::kde_wallpaperdir().data()); + printf("kde_bindir=\\"%s\\"\n", KApplication::kde_bindir().data()); + printf("kde_partsdir=\\"%s\\"\n", KApplication::kde_partsdir().data()); + printf("kde_servicesdir=\\"/tmp/dummy\\"\n"); + printf("kde_servicetypesdir=\\"/tmp/dummy\\"\n"); + printf("kde_moduledir=\\"/tmp/dummy\\"\n"); + printf("kde_styledir=\\"/tmp/dummy\\"\n"); + printf("kde_widgetdir=\\"/tmp/dummy\\"\n"); + printf("xdg_appsdir=\\"/tmp/dummy\\"\n"); + printf("xdg_menudir=\\"/tmp/dummy\\"\n"); + printf("xdg_directorydir=\\"/tmp/dummy\\"\n"); + printf("kde_kcfgdir=\\"/tmp/dummy\\"\n"); + return 0; + } +EOF + + ac_save_CPPFLAGS=$CPPFLAGS + CPPFLAGS="$all_includes $CPPFLAGS" + if AC_TRY_EVAL(ac_compile); then + AC_MSG_RESULT(yes) + else + AC_MSG_ERROR([your system is not able to compile a small KDE application! +Check, if you installed the KDE header files correctly. +For more details about this problem, look at the end of config.log.]) + fi + CPPFLAGS=$ac_save_CPPFLAGS + + AC_LANG_RESTORE +]) + +AC_DEFUN([KDE_CHECK_KDEQTADDON], +[ +AC_MSG_CHECKING(for kde-qt-addon) +AC_CACHE_VAL(kde_cv_have_kdeqtaddon, +[ + kde_ldflags_safe="$LDFLAGS" + kde_libs_safe="$LIBS" + kde_cxxflags_safe="$CXXFLAGS" + + LIBS="-lkde-qt-addon $LIBQT $LIBS" + CXXFLAGS="$CXXFLAGS -I$prefix/include -I$prefix/include/kde $all_includes" + LDFLAGS="$LDFLAGS $all_libraries $USER_LDFLAGS" + + AC_TRY_LINK([ + #include + ], + [ + QDomDocument doc; + ], + kde_cv_have_kdeqtaddon=yes, + kde_cv_have_kdeqtaddon=no + ) + + LDFLAGS=$kde_ldflags_safe + LIBS=$kde_libs_safe + CXXFLAGS=$kde_cxxflags_safe +]) + +AC_MSG_RESULT($kde_cv_have_kdeqtaddon) + +if test "$kde_cv_have_kdeqtaddon" = "no"; then + AC_MSG_ERROR([Can't find libkde-qt-addon. You need to install it first. +It is a separate package (and CVS module) named kde-qt-addon.]) +fi +]) + +AC_DEFUN([KDE_CREATE_LIBS_ALIASES], +[ + AC_REQUIRE([KDE_MISC_TESTS]) + AC_REQUIRE([KDE_CHECK_LIBDL]) + AC_REQUIRE([K_PATH_X]) + +if test $kde_qtver = 3; then + case $host in + *cygwin*) lib_kded="-lkdeinit_kded" ;; + *) lib_kded="" ;; + esac + AC_SUBST(LIB_KDED, $lib_kded) + AC_SUBST(LIB_KDECORE, "-lkdecore") + AC_SUBST(LIB_KDEUI, "-lkdeui") + AC_SUBST(LIB_KIO, "-lkio") + AC_SUBST(LIB_KJS, "-lkjs") + AC_SUBST(LIB_SMB, "-lsmb") + AC_SUBST(LIB_KAB, "-lkab") + AC_SUBST(LIB_KABC, "-lkabc") + AC_SUBST(LIB_KHTML, "-lkhtml") + AC_SUBST(LIB_KSPELL, "-lkspell") + AC_SUBST(LIB_KPARTS, "-lkparts") + AC_SUBST(LIB_KDEPRINT, "-lkdeprint") + AC_SUBST(LIB_KUTILS, "-lkutils") + AC_SUBST(LIB_KDEPIM, "-lkdepim") + AC_SUBST(LIB_KIMPROXY, "-lkimproxy") + AC_SUBST(LIB_KNEWSTUFF, "-lknewstuff") + AC_SUBST(LIB_KDNSSD, "-lkdnssd") + AC_SUBST(LIB_KUNITTEST, "-lkunittest") +# these are for backward compatibility + AC_SUBST(LIB_KSYCOCA, "-lkio") + AC_SUBST(LIB_KFILE, "-lkio") +elif test $kde_qtver = 2; then + AC_SUBST(LIB_KDECORE, "-lkdecore") + AC_SUBST(LIB_KDEUI, "-lkdeui") + AC_SUBST(LIB_KIO, "-lkio") + AC_SUBST(LIB_KSYCOCA, "-lksycoca") + AC_SUBST(LIB_SMB, "-lsmb") + AC_SUBST(LIB_KFILE, "-lkfile") + AC_SUBST(LIB_KAB, "-lkab") + AC_SUBST(LIB_KHTML, "-lkhtml") + AC_SUBST(LIB_KSPELL, "-lkspell") + AC_SUBST(LIB_KPARTS, "-lkparts") + AC_SUBST(LIB_KDEPRINT, "-lkdeprint") +else + AC_SUBST(LIB_KDECORE, "-lkdecore -lXext $(LIB_QT)") + AC_SUBST(LIB_KDEUI, "-lkdeui $(LIB_KDECORE)") + AC_SUBST(LIB_KFM, "-lkfm $(LIB_KDECORE)") + AC_SUBST(LIB_KFILE, "-lkfile $(LIB_KFM) $(LIB_KDEUI)") + AC_SUBST(LIB_KAB, "-lkab $(LIB_KIMGIO) $(LIB_KDECORE)") +fi +]) + +AC_DEFUN([AC_PATH_KDE], +[ + AC_BASE_PATH_KDE + AC_ARG_ENABLE(path-check,AC_HELP_STRING([--disable-path-check],[don't try to find out, where to install]), + [ + if test "$enableval" = "no"; + then ac_use_path_checking="default" + else ac_use_path_checking="" + fi + ], + [ + if test "$kde_qtver" = 1; + then ac_use_path_checking="" + else ac_use_path_checking="default" + fi + ] + ) + + AC_CREATE_KFSSTND($ac_use_path_checking) + + AC_SUBST_KFSSTND + KDE_CREATE_LIBS_ALIASES +]) + +dnl KDE_CHECK_FUNC_EXT(, [headers], [sample-use], [C prototype], [autoheader define], [call if found]) +AC_DEFUN([KDE_CHECK_FUNC_EXT], +[ +AC_MSG_CHECKING(for $1) +AC_CACHE_VAL(kde_cv_func_$1, +[ +AC_LANG_SAVE +AC_LANG_CPLUSPLUS +save_CXXFLAGS="$CXXFLAGS" +kde_safe_LIBS="$LIBS" +LIBS="$LIBS $X_EXTRA_LIBS" +AC_TRY_COMPILE([ +$2 +], +[ +$3 +], +kde_cv_func_$1=yes, +kde_cv_func_$1=no) +CXXFLAGS="$save_CXXFLAGS" +LIBS="$kde_safe_LIBS" +AC_LANG_RESTORE +]) + +AC_MSG_RESULT($kde_cv_func_$1) + +AC_MSG_CHECKING([if $1 needs custom prototype]) +AC_CACHE_VAL(kde_cv_proto_$1, +[ +if test "x$kde_cv_func_$1" = xyes; then + kde_cv_proto_$1=no +else + case "$1" in + setenv|unsetenv|usleep|random|srandom|seteuid|mkstemps|mkstemp|revoke|vsnprintf|strlcpy|strlcat) + kde_cv_proto_$1="yes - in libkdefakes" + ;; + *) + kde_cv_proto_$1=unknown + ;; + esac +fi + +if test "x$kde_cv_proto_$1" = xunknown; then + +AC_LANG_SAVE +AC_LANG_CPLUSPLUS + kde_safe_libs=$LIBS + LIBS="$LIBS $X_EXTRA_LIBS" + AC_TRY_LINK([ +$2 + +extern "C" $4; +], +[ +$3 +], +[ kde_cv_func_$1=yes + kde_cv_proto_$1=yes ], + [kde_cv_proto_$1="$1 unavailable"] +) +LIBS=$kde_safe_libs +AC_LANG_RESTORE +fi +]) +AC_MSG_RESULT($kde_cv_proto_$1) + +if test "x$kde_cv_func_$1" = xyes; then + AC_DEFINE(HAVE_$5, 1, [Define if you have $1]) + $6 +fi +if test "x$kde_cv_proto_$1" = xno; then + AC_DEFINE(HAVE_$5_PROTO, 1, + [Define if you have the $1 prototype]) +fi + +AH_VERBATIM([_HAVE_$5_PROTO], +[ +#if !defined(HAVE_$5_PROTO) +#ifdef __cplusplus +extern "C" { +#endif +$4; +#ifdef __cplusplus +} +#endif +#endif +]) +]) + +AC_DEFUN([AC_CHECK_SETENV], +[ + KDE_CHECK_FUNC_EXT(setenv, [ +#include +], + [setenv("VAR", "VALUE", 1);], + [int setenv (const char *, const char *, int)], + [SETENV]) +]) + +AC_DEFUN([AC_CHECK_UNSETENV], +[ + KDE_CHECK_FUNC_EXT(unsetenv, [ +#include +], + [unsetenv("VAR");], + [void unsetenv (const char *)], + [UNSETENV]) +]) + +AC_DEFUN([AC_CHECK_GETDOMAINNAME], +[ + KDE_CHECK_FUNC_EXT(getdomainname, [ +#include +#include +#include +], + [ +char buffer[200]; +getdomainname(buffer, 200); +], + [#include + int getdomainname (char *, size_t)], + [GETDOMAINNAME]) +]) + +AC_DEFUN([AC_CHECK_GETHOSTNAME], +[ + KDE_CHECK_FUNC_EXT(gethostname, [ +#include +#include +], + [ +char buffer[200]; +gethostname(buffer, 200); +], + [int gethostname (char *, unsigned int)], + [GETHOSTNAME]) +]) + +AC_DEFUN([AC_CHECK_USLEEP], +[ + KDE_CHECK_FUNC_EXT(usleep, [ +#include +], + [ +usleep(200); +], + [int usleep (unsigned int)], + [USLEEP]) +]) + + +AC_DEFUN([AC_CHECK_RANDOM], +[ + KDE_CHECK_FUNC_EXT(random, [ +#include +], + [ +random(); +], + [long int random(void)], + [RANDOM]) + + KDE_CHECK_FUNC_EXT(srandom, [ +#include +], + [ +srandom(27); +], + [void srandom(unsigned int)], + [SRANDOM]) + +]) + +AC_DEFUN([AC_CHECK_INITGROUPS], +[ + KDE_CHECK_FUNC_EXT(initgroups, [ +#include +#include +#include +], + [ +char buffer[200]; +initgroups(buffer, 27); +], + [int initgroups(const char *, gid_t)], + [INITGROUPS]) +]) + +AC_DEFUN([AC_CHECK_MKSTEMPS], +[ + KDE_CHECK_FUNC_EXT(mkstemps, [ +#include +#include +], + [ +mkstemps("/tmp/aaaXXXXXX", 6); +], + [int mkstemps(char *, int)], + [MKSTEMPS]) +]) + +AC_DEFUN([AC_CHECK_MKSTEMP], +[ + KDE_CHECK_FUNC_EXT(mkstemp, [ +#include +#include +], + [ +mkstemp("/tmp/aaaXXXXXX"); +], + [int mkstemp(char *)], + [MKSTEMP]) +]) + +AC_DEFUN([AC_CHECK_MKDTEMP], +[ + KDE_CHECK_FUNC_EXT(mkdtemp, [ +#include +#include +], + [ +mkdtemp("/tmp/aaaXXXXXX"); +], + [char *mkdtemp(char *)], + [MKDTEMP]) +]) + + +AC_DEFUN([AC_CHECK_RES_INIT], +[ + AC_MSG_CHECKING([if res_init needs -lresolv]) + kde_libs_safe="$LIBS" + LIBS="$LIBS $X_EXTRA_LIBS -lresolv" + AC_TRY_LINK( + [ +#include +#include +#include +#include + ], + [ + res_init(); + ], + [ + LIBRESOLV="-lresolv" + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_RES_INIT, 1, [Define if you have the res_init function]) + ], + [ AC_MSG_RESULT(no) ] + ) + LIBS=$kde_libs_safe + AC_SUBST(LIBRESOLV) + + KDE_CHECK_FUNC_EXT(res_init, + [ +#include +#include +#include +#include + ], + [res_init()], + [int res_init(void)], + [RES_INIT]) +]) + +AC_DEFUN([AC_CHECK_STRLCPY], +[ + KDE_CHECK_FUNC_EXT(strlcpy, [ +#include +], +[ char buf[20]; + strlcpy(buf, "KDE function test", sizeof(buf)); +], + [unsigned long strlcpy(char*, const char*, unsigned long)], + [STRLCPY]) +]) + +AC_DEFUN([AC_CHECK_STRLCAT], +[ + KDE_CHECK_FUNC_EXT(strlcat, [ +#include +], +[ char buf[20]; + buf[0]='\0'; + strlcat(buf, "KDE function test", sizeof(buf)); +], + [unsigned long strlcat(char*, const char*, unsigned long)], + [STRLCAT]) +]) + +AC_DEFUN([AC_CHECK_RES_QUERY], +[ + KDE_CHECK_FUNC_EXT(res_query, [ +#include +#include +#include +#include +#include +], +[ +res_query(NULL, 0, 0, NULL, 0); +], + [int res_query(const char *, int, int, unsigned char *, int)], + [RES_QUERY]) +]) + +AC_DEFUN([AC_CHECK_DN_SKIPNAME], +[ + KDE_CHECK_FUNC_EXT(dn_skipname, [ +#include +#include +#include +#include +], +[ +dn_skipname (NULL, NULL); +], + [int dn_skipname (unsigned char *, unsigned char *)], + [DN_SKIPNAME]) +]) + + +AC_DEFUN([AC_FIND_GIF], + [AC_MSG_CHECKING([for giflib]) +AC_CACHE_VAL(ac_cv_lib_gif, +[ac_save_LIBS="$LIBS" +if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then +LIBS="$all_libraries -lgif -lX11 $LIBSOCKET" +else +LIBS="$all_libraries -lgif" +fi +AC_TRY_LINK(dnl +[ +#ifdef __cplusplus +extern "C" { +#endif +int GifLastError(void); +#ifdef __cplusplus +} +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +], + [return GifLastError();], + eval "ac_cv_lib_gif=yes", + eval "ac_cv_lib_gif=no") +LIBS="$ac_save_LIBS" +])dnl +if eval "test \"`echo $ac_cv_lib_gif`\" = yes"; then + AC_MSG_RESULT(yes) + AC_DEFINE_UNQUOTED(HAVE_LIBGIF, 1, [Define if you have libgif]) +else + AC_MSG_ERROR(You need giflib30. Please install the kdesupport package) +fi +]) + +AC_DEFUN([KDE_FIND_JPEG_HELPER], +[ +AC_MSG_CHECKING([for libjpeg$2]) +AC_CACHE_VAL(ac_cv_lib_jpeg_$1, +[ +ac_save_LIBS="$LIBS" +LIBS="$all_libraries $USER_LDFLAGS -ljpeg$2 -lm" +ac_save_CFLAGS="$CFLAGS" +CFLAGS="$CFLAGS $all_includes $USER_INCLUDES" +AC_TRY_LINK( +[ +#ifdef __cplusplus +extern "C" { +#endif +void jpeg_CreateDecompress(); +#ifdef __cplusplus +} +#endif +], +[jpeg_CreateDecompress();], + eval "ac_cv_lib_jpeg_$1=-ljpeg$2", + eval "ac_cv_lib_jpeg_$1=no") +LIBS="$ac_save_LIBS" +CFLAGS="$ac_save_CFLAGS" +]) + +if eval "test ! \"`echo $ac_cv_lib_jpeg_$1`\" = no"; then + LIBJPEG="$ac_cv_lib_jpeg_$1" + AC_MSG_RESULT($ac_cv_lib_jpeg_$1) +else + AC_MSG_RESULT(no) + $3 +fi + +]) + +AC_DEFUN([AC_FIND_JPEG], +[ +dnl first look for libraries +KDE_FIND_JPEG_HELPER(6b, 6b, + KDE_FIND_JPEG_HELPER(normal, [], + [ + LIBJPEG= + ] + ) +) + +dnl then search the headers (can't use simply AC_TRY_xxx, as jpeglib.h +dnl requires system dependent includes loaded before it) +jpeg_incdirs="$includedir /usr/include /usr/local/include $kde_extra_includes" +AC_FIND_FILE(jpeglib.h, $jpeg_incdirs, jpeg_incdir) +test "x$jpeg_incdir" = xNO && jpeg_incdir= + +dnl if headers _and_ libraries are missing, this is no error, and we +dnl continue with a warning (the user will get no jpeg support in khtml) +dnl if only one is missing, it means a configuration error, but we still +dnl only warn +if test -n "$jpeg_incdir" && test -n "$LIBJPEG" ; then + AC_DEFINE_UNQUOTED(HAVE_LIBJPEG, 1, [Define if you have libjpeg]) +else + if test -n "$jpeg_incdir" || test -n "$LIBJPEG" ; then + AC_MSG_WARN([ +There is an installation error in jpeg support. You seem to have only one +of either the headers _or_ the libraries installed. You may need to either +provide correct --with-extra-... options, or the development package of +libjpeg6b. You can get a source package of libjpeg from http://www.ijg.org/ +Disabling JPEG support. +]) + else + AC_MSG_WARN([libjpeg not found. disable JPEG support.]) + fi + jpeg_incdir= + LIBJPEG= +fi + +AC_SUBST(LIBJPEG) +AH_VERBATIM(_AC_CHECK_JPEG, +[/* + * jpeg.h needs HAVE_BOOLEAN, when the system uses boolean in system + * headers and I'm too lazy to write a configure test as long as only + * unixware is related + */ +#ifdef _UNIXWARE +#define HAVE_BOOLEAN +#endif +]) +]) + +AC_DEFUN([KDE_CHECK_QT_JPEG], +[ +if test -n "$LIBJPEG"; then +AC_MSG_CHECKING([if Qt needs $LIBJPEG]) +AC_CACHE_VAL(kde_cv_qt_jpeg, +[ +AC_LANG_SAVE +AC_LANG_CPLUSPLUS +ac_save_LIBS="$LIBS" +LIBS="$all_libraries $USER_LDFLAGS $LIBQT" +LIBS=`echo $LIBS | sed "s/$LIBJPEG//"` +ac_save_CXXFLAGS="$CXXFLAGS" +CXXFLAGS="$CXXFLAGS $all_includes $USER_INCLUDES" +AC_TRY_LINK( +[#include ], + [ + int argc; + char** argv; + QApplication app(argc, argv);], + eval "kde_cv_qt_jpeg=no", + eval "kde_cv_qt_jpeg=yes") +LIBS="$ac_save_LIBS" +CXXFLAGS="$ac_save_CXXFLAGS" +AC_LANG_RESTORE +fi +]) + +if eval "test ! \"`echo $kde_cv_qt_jpeg`\" = no"; then + AC_MSG_RESULT(yes) + LIBJPEG_QT='$(LIBJPEG)' +else + AC_MSG_RESULT(no) + LIBJPEG_QT= +fi + +]) + +AC_DEFUN([AC_FIND_ZLIB], +[ +AC_REQUIRE([KDE_CHECK_EXTRA_LIBS]) +AC_MSG_CHECKING([for libz]) +AC_CACHE_VAL(ac_cv_lib_z, +[ +kde_save_LIBS="$LIBS" +LIBS="$all_libraries $USER_LDFLAGS -lz $LIBSOCKET" +kde_save_CFLAGS="$CFLAGS" +CFLAGS="$CFLAGS $all_includes $USER_INCLUDES" +AC_TRY_LINK(dnl +[ +#include +], +[ + char buf[42]; + gzFile f = (gzFile) 0; + /* this would segfault.. but we only link, don't run */ + (void) gzgets(f, buf, sizeof(buf)); + + return (zlibVersion() == ZLIB_VERSION); +], + eval "ac_cv_lib_z='-lz'", + eval "ac_cv_lib_z=no") +LIBS="$kde_save_LIBS" +CFLAGS="$kde_save_CFLAGS" +])dnl +if test ! "$ac_cv_lib_z" = no; then + AC_DEFINE_UNQUOTED(HAVE_LIBZ, 1, [Define if you have libz]) + LIBZ="$ac_cv_lib_z" + AC_MSG_RESULT($ac_cv_lib_z) +else + AC_MSG_ERROR(not found. + Possibly configure picks up an outdated version + installed by XFree86. Remove it from your system. + + Check your installation and look into config.log) + LIBZ="" +fi +AC_SUBST(LIBZ) +]) + +AC_DEFUN([KDE_TRY_TIFFLIB], +[ +AC_MSG_CHECKING([for libtiff $1]) + +AC_CACHE_VAL(kde_cv_libtiff_$1, +[ +AC_LANG_SAVE +AC_LANG_CPLUSPLUS +kde_save_LIBS="$LIBS" +if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then +LIBS="$all_libraries $USER_LDFLAGS -l$1 $LIBJPEG $LIBZ -lX11 $LIBSOCKET -lm" +else +LIBS="$all_libraries $USER_LDFLAGS -l$1 $LIBJPEG $LIBZ -lm" +fi +kde_save_CXXFLAGS="$CXXFLAGS" +CXXFLAGS="$CXXFLAGS $all_includes $USER_INCLUDES" + +AC_TRY_LINK(dnl +[ +#include +], + [return (TIFFOpen( "", "r") == 0); ], +[ + kde_cv_libtiff_$1="-l$1 $LIBJPEG $LIBZ" +], [ + kde_cv_libtiff_$1=no +]) + +LIBS="$kde_save_LIBS" +CXXFLAGS="$kde_save_CXXFLAGS" +AC_LANG_RESTORE +]) + +if test "$kde_cv_libtiff_$1" = "no"; then + AC_MSG_RESULT(no) + LIBTIFF="" + $3 +else + LIBTIFF="$kde_cv_libtiff_$1" + AC_MSG_RESULT(yes) + AC_DEFINE_UNQUOTED(HAVE_LIBTIFF, 1, [Define if you have libtiff]) + $2 +fi + +]) + +AC_DEFUN([AC_FIND_TIFF], +[ +AC_REQUIRE([K_PATH_X]) +AC_REQUIRE([AC_FIND_ZLIB]) +AC_REQUIRE([AC_FIND_JPEG]) +AC_REQUIRE([KDE_CHECK_EXTRA_LIBS]) + +KDE_TRY_TIFFLIB(tiff, [], + KDE_TRY_TIFFLIB(tiff34)) + +AC_SUBST(LIBTIFF) +]) + +AC_DEFUN([KDE_FIND_LIBEXR], +[ +AC_REQUIRE([KDE_CHECK_EXTRA_LIBS]) +AC_REQUIRE([AC_FIND_ZLIB]) +AC_CACHE_VAL(ac_cv_libexr, +[ + if test -z "$PKG_CONFIG"; then + AC_PATH_PROG(PKG_CONFIG, pkg-config, no) + fi + + AC_MSG_CHECKING([for OpenEXR libraries]) + + if test "$PKG_CONFIG" = "no" ; then + AC_MSG_RESULT(no) + echo "*** The pkg-config script could not be found. Make sure it is" + echo "*** in your path, or set the PKG_CONFIG environment variable" + echo "*** to the full path to pkg-config." + echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config." + else + if !(`$PKG_CONFIG --exists OpenEXR`) ; then + AC_MSG_RESULT(no) + EXRSTATUS=no + else + if !(`$PKG_CONFIG --atleast-version="1.1.1" OpenEXR`) ; then + AC_MSG_RESULT(no) + EXRSTATUS=old + else + kde_save_LIBS="$LIBS" + LIBS="$LIBS $all_libraries $USER_LDFLAGS `pkg-config --libs OpenEXR` $LIBZ" + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + kde_save_CXXFLAGS="$CXXFLAGS" + EXR_FLAGS=`$PKG_CONFIG --cflags OpenEXR` + CXXFLAGS="$CXXFLAGS $all_includes $USER_INCLUDES $EXR_FLAGS" + + AC_TRY_LINK(dnl + [ + #include + ], + [ + using namespace Imf; + RgbaInputFile file ("dummy"); + return 0; + ], + eval "ac_cv_libexr='`pkg-config --libs OpenEXR`'", + eval "ac_cv_libexr=no" + ) + LIBS="$kde_save_LIBS" + CXXFLAGS="$kde_save_CXXFLAGS" + AC_LANG_RESTORE + ])dnl + if eval "test ! \"`echo $ac_cv_libexr`\" = no"; then + AC_DEFINE_UNQUOTED(HAVE_EXR, 1, [Define if you have OpenEXR]) + LIB_EXR="$ac_cv_libexr" + AC_MSG_RESULT($ac_cv_libexr) + else + AC_MSG_RESULT(no) + LIB_EXR="" + fi + fi + fi + fi + AC_SUBST(LIB_EXR) + AC_SUBST(EXR_FLAGS) +]) + + + +AC_DEFUN([AC_FIND_PNG], +[ +AC_REQUIRE([KDE_CHECK_EXTRA_LIBS]) +AC_REQUIRE([AC_FIND_ZLIB]) +AC_MSG_CHECKING([for libpng]) +AC_CACHE_VAL(ac_cv_lib_png, +[ +kde_save_LIBS="$LIBS" +if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then +LIBS="$LIBS $all_libraries $USER_LDFLAGS -lpng $LIBZ -lm -lX11 $LIBSOCKET" +else +LIBS="$LIBS $all_libraries $USER_LDFLAGS -lpng $LIBZ -lm" +fi +kde_save_CFLAGS="$CFLAGS" +CFLAGS="$CFLAGS $all_includes $USER_INCLUDES" + +AC_TRY_LINK(dnl + [ + #include + ], + [ + png_structp png_ptr = png_create_read_struct( /* image ptr */ + PNG_LIBPNG_VER_STRING, 0, 0, 0 ); + return( png_ptr != 0 ); + ], + eval "ac_cv_lib_png='-lpng $LIBZ -lm'", + eval "ac_cv_lib_png=no" +) +LIBS="$kde_save_LIBS" +CFLAGS="$kde_save_CFLAGS" +])dnl +if eval "test ! \"`echo $ac_cv_lib_png`\" = no"; then + AC_DEFINE_UNQUOTED(HAVE_LIBPNG, 1, [Define if you have libpng]) + LIBPNG="$ac_cv_lib_png" + AC_SUBST(LIBPNG) + AC_MSG_RESULT($ac_cv_lib_png) +else + AC_MSG_RESULT(no) + LIBPNG="" + AC_SUBST(LIBPNG) +fi +]) + + +AC_DEFUN([AC_FIND_JASPER], +[ +AC_REQUIRE([KDE_CHECK_EXTRA_LIBS]) +AC_REQUIRE([AC_FIND_JPEG]) +AC_MSG_CHECKING([for jasper]) +AC_CACHE_VAL(ac_cv_jasper, +[ +kde_save_LIBS="$LIBS" +LIBS="$LIBS $all_libraries $USER_LDFLAGS -ljasper $LIBJPEG -lm" +kde_save_CFLAGS="$CFLAGS" +CFLAGS="$CFLAGS $all_includes $USER_INCLUDES" + +AC_TRY_LINK(dnl + [ + #include + ], + [ + return( jas_init() ); + ], + eval "ac_cv_jasper='-ljasper $LIBJPEG -lm'", + eval "ac_cv_jasper=no" +) +LIBS="$kde_save_LIBS" +CFLAGS="$kde_save_CFLAGS" +])dnl +if eval "test ! \"`echo $ac_cv_jasper`\" = no"; then + AC_DEFINE_UNQUOTED(HAVE_JASPER, 1, [Define if you have jasper]) + LIB_JASPER="$ac_cv_jasper" + AC_MSG_RESULT($ac_cv_jasper) +else + AC_MSG_RESULT(no) + LIB_JASPER="" +fi +AC_SUBST(LIB_JASPER) +]) + +AC_DEFUN([AC_CHECK_BOOL], +[ + AC_DEFINE_UNQUOTED(HAVE_BOOL, 1, [You _must_ have bool]) +]) + +AC_DEFUN([AC_CHECK_GNU_EXTENSIONS], +[ +AC_MSG_CHECKING(if you need GNU extensions) +AC_CACHE_VAL(ac_cv_gnu_extensions, +[ +cat > conftest.c << EOF +#include + +#ifdef __GNU_LIBRARY__ +yes +#endif +EOF + +if (eval "$ac_cpp conftest.c") 2>&5 | + egrep "yes" >/dev/null 2>&1; then + rm -rf conftest* + ac_cv_gnu_extensions=yes +else + ac_cv_gnu_extensions=no +fi +]) + +AC_MSG_RESULT($ac_cv_gnu_extensions) +if test "$ac_cv_gnu_extensions" = "yes"; then + AC_DEFINE_UNQUOTED(_GNU_SOURCE, 1, [Define if you need to use the GNU extensions]) +fi +]) + +AC_DEFUN([KDE_CHECK_COMPILER_FLAG], +[ +AC_MSG_CHECKING([whether $CXX supports -$1]) +kde_cache=`echo $1 | sed 'y% .=/+-,%____p__%'` +AC_CACHE_VAL(kde_cv_prog_cxx_$kde_cache, +[ + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS -$1" + AC_TRY_LINK([],[ return 0; ], [eval "kde_cv_prog_cxx_$kde_cache=yes"], []) + CXXFLAGS="$save_CXXFLAGS" + AC_LANG_RESTORE +]) +if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then + AC_MSG_RESULT(yes) + : + $2 +else + AC_MSG_RESULT(no) + : + $3 +fi +]) + +AC_DEFUN([KDE_CHECK_C_COMPILER_FLAG], +[ +AC_MSG_CHECKING([whether $CC supports -$1]) +kde_cache=`echo $1 | sed 'y% .=/+-,%____p__%'` +AC_CACHE_VAL(kde_cv_prog_cc_$kde_cache, +[ + AC_LANG_SAVE + AC_LANG_C + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -$1" + AC_TRY_LINK([],[ return 0; ], [eval "kde_cv_prog_cc_$kde_cache=yes"], []) + CFLAGS="$save_CFLAGS" + AC_LANG_RESTORE +]) +if eval "test \"`echo '$kde_cv_prog_cc_'$kde_cache`\" = yes"; then + AC_MSG_RESULT(yes) + : + $2 +else + AC_MSG_RESULT(no) + : + $3 +fi +]) + + +dnl AC_REMOVE_FORBIDDEN removes forbidden arguments from variables +dnl use: AC_REMOVE_FORBIDDEN(CC, [-forbid -bad-option whatever]) +dnl it's all white-space separated +AC_DEFUN([AC_REMOVE_FORBIDDEN], +[ __val=$$1 + __forbid=" $2 " + if test -n "$__val"; then + __new="" + ac_save_IFS=$IFS + IFS=" " + for i in $__val; do + case "$__forbid" in + *" $i "*) AC_MSG_WARN([found forbidden $i in $1, removing it]) ;; + *) # Careful to not add spaces, where there were none, because otherwise + # libtool gets confused, if we change e.g. CXX + if test -z "$__new" ; then __new=$i ; else __new="$__new $i" ; fi ;; + esac + done + IFS=$ac_save_IFS + $1=$__new + fi +]) + + +AC_DEFUN([KDE_CHECK_FOR_BAD_COMPILER], +[ + AC_MSG_CHECKING([whether $CC is blacklisted]) + + dnl In theory we have tu run this test against $CC and $CXX + dnl in C and in C++ mode, because its perfectly legal for + dnl the user to mix compiler versions, since C has a defined + dnl ABI. + dnl + dnl For now, we assume the user is not on crack. + + AC_TRY_COMPILE([ +#ifdef __GNUC__ +#if __GNUC__ == 4 && __GNUC_MINOR__ == 0 && __GNUC_PATCHLEVEL__ == 0 +choke me +#endif +#endif +], , + kde_bad_compiler=no, + kde_bad_compiler=yes +) + + AC_MSG_RESULT($kde_bad_compiler) + +if test "$kde_bad_compiler" = "yes"; then + AC_MSG_ERROR([ + +This particular compiler version is blacklisted because it +is known to miscompile KDE. Please use a newer version, or +if that is not yet available, choose an older version. + +Please do not report a bug or bother us reporting this +configure error. We know about it, and we introduced +it by intention to avoid untraceable bugs or crashes in KDE. + +]) +fi + +]) + + +AC_DEFUN([KDE_CHECK_FOR_OPT_NOINLINE_MATCH], +[ + AC_CACHE_CHECK([whether system headers can cope with -O2 -fno-inline], + kde_cv_opt_noinline_match, + [ + kde_cv_opt_noinline_match=irrelevant + dnl if we don't use both -O2 and -fno-inline, this check is moot + if echo "$CFLAGS" | grep -e -O2 >/dev/null 2>/dev/null \ + && echo "$CFLAGS" | grep -e -fno-inline >/dev/null 2>/dev/null ; then + + ac_cflags_save="$CFLAGS" + CFLAGS="$CFLAGS -D_USE_GNU" + + AC_TRY_LINK([ + #include +], [ const char *pt, *et; + et = __extension__ ({ char __a0, __a1, __a2; (__builtin_constant_p ( ";," ) && ((size_t)(const void *)(( ";," )+ 1) - (size_t)(const void *)( ";," ) == 1) ? ((__a0 =((__const char *) ( ";," ))[0], __a0 == '\0') ? ((void) ( pt ),((void *)0) ) : ((__a1 = ((__const char *) ( ";," ))[1], __a1== '\0') ? (__extension__ (__builtin_constant_p ( __a0 ) && ( __a0 ) == '\0' ? (char *) __rawmemchr ( pt , __a0) : strchr( pt , __a0 ))) : ((__a2 = ((__const char *) ( ";," ))[2], __a2 == '\0') ? __strpbrk_c2 ( pt , __a0, __a1) :(((__const char *) ( ";," ))[3] == '\0' ? __strpbrk_c3 ( pt ,__a0, __a1, __a2): strpbrk ( pt , ";," ))))) : strpbrk ( pt , ";," )); }) ; +], + kde_cv_opt_noinline_match=yes, + kde_cv_opt_noinline_match=no + ) + + CFLAGS="$ac_cflags_save" + fi + ]) +]) + + +dnl AC_VALIDIFY_CXXFLAGS checks for forbidden flags the user may have given +AC_DEFUN([AC_VALIDIFY_CXXFLAGS], +[dnl +if test "x$kde_use_qt_emb" != "xyes"; then + AC_REMOVE_FORBIDDEN(CXX, [-fno-rtti -rpath]) + AC_REMOVE_FORBIDDEN(CXXFLAGS, [-fno-rtti -rpath]) +else + AC_REMOVE_FORBIDDEN(CXX, [-rpath]) + AC_REMOVE_FORBIDDEN(CXXFLAGS, [-rpath]) +fi +]) + +AC_DEFUN([AC_CHECK_COMPILERS], +[ + AC_ARG_ENABLE(debug, + AC_HELP_STRING([--enable-debug=ARG],[enables debug symbols (yes|no|full) [default=no]]), + [ + case $enableval in + yes) + kde_use_debug_code="yes" + kde_use_debug_define=no + ;; + full) + kde_use_debug_code="full" + kde_use_debug_define=no + ;; + *) + kde_use_debug_code="no" + kde_use_debug_define=yes + ;; + esac + ], + [kde_use_debug_code="no" + kde_use_debug_define=no + ]) + + dnl Just for configure --help + AC_ARG_ENABLE(dummyoption, + AC_HELP_STRING([--disable-debug], + [disables debug output and debug symbols [default=no]]), + [],[]) + + AC_ARG_ENABLE(strict, + AC_HELP_STRING([--enable-strict], + [compiles with strict compiler options (may not work!)]), + [ + if test $enableval = "no"; then + kde_use_strict_options="no" + else + kde_use_strict_options="yes" + fi + ], [kde_use_strict_options="no"]) + + AC_ARG_ENABLE(warnings,AC_HELP_STRING([--disable-warnings],[disables compilation with -Wall and similar]), + [ + if test $enableval = "no"; then + kde_use_warnings="no" + else + kde_use_warnings="yes" + fi + ], [kde_use_warnings="yes"]) + + dnl enable warnings for debug build + if test "$kde_use_debug_code" != "no"; then + kde_use_warnings=yes + fi + + AC_ARG_ENABLE(profile,AC_HELP_STRING([--enable-profile],[creates profiling infos [default=no]]), + [kde_use_profiling=$enableval], + [kde_use_profiling="no"] + ) + + dnl this prevents stupid AC_PROG_CC to add "-g" to the default CFLAGS + CFLAGS=" $CFLAGS" + + AC_PROG_CC + + AC_PROG_CPP + + if test "$GCC" = "yes"; then + if test "$kde_use_debug_code" != "no"; then + if test $kde_use_debug_code = "full"; then + CFLAGS="-g3 -fno-inline $CFLAGS" + else + CFLAGS="-g -O2 -fno-schedule-insns -fno-inline $CFLAGS" + fi + else + CFLAGS="-O2 $CFLAGS" + fi + fi + + if test "$kde_use_debug_define" = "yes"; then + CFLAGS="-DNDEBUG $CFLAGS" + fi + + + case "$host" in + *-*-sysv4.2uw*) CFLAGS="-D_UNIXWARE $CFLAGS";; + *-*-sysv5uw7*) CFLAGS="-D_UNIXWARE7 $CFLAGS";; + esac + + if test -z "$LDFLAGS" && test "$kde_use_debug_code" = "no" && test "$GCC" = "yes"; then + LDFLAGS="" + fi + + CXXFLAGS=" $CXXFLAGS" + + AC_PROG_CXX + + KDE_CHECK_FOR_BAD_COMPILER + + if test "$GXX" = "yes" || test "$CXX" = "KCC"; then + if test "$kde_use_debug_code" != "no"; then + if test "$CXX" = "KCC"; then + CXXFLAGS="+K0 -Wall -pedantic -W -Wpointer-arith -Wwrite-strings $CXXFLAGS" + else + if test "$kde_use_debug_code" = "full"; then + CXXFLAGS="-g3 -fno-inline $CXXFLAGS" + else + CXXFLAGS="-g -O2 -fno-schedule-insns -fno-inline $CXXFLAGS" + fi + fi + KDE_CHECK_COMPILER_FLAG(fno-builtin,[CXXFLAGS="-fno-builtin $CXXFLAGS"]) + + dnl convenience compiler flags + KDE_CHECK_COMPILER_FLAG(Woverloaded-virtual, [WOVERLOADED_VIRTUAL="-Woverloaded-virtual"], [WOVERLOADED_VRITUAL=""]) + AC_SUBST(WOVERLOADED_VIRTUAL) + else + if test "$CXX" = "KCC"; then + CXXFLAGS="+K3 $CXXFLAGS" + else + CXXFLAGS="-O2 $CXXFLAGS" + fi + fi + fi + + if test "$kde_use_debug_define" = "yes"; then + CXXFLAGS="-DNDEBUG -DNO_DEBUG $CXXFLAGS" + fi + + if test "$kde_use_profiling" = "yes"; then + KDE_CHECK_COMPILER_FLAG(pg, + [ + CFLAGS="-pg $CFLAGS" + CXXFLAGS="-pg $CXXFLAGS" + ]) + fi + + if test "$kde_use_warnings" = "yes"; then + if test "$GCC" = "yes"; then + CXXFLAGS="-Wall -W -Wpointer-arith $CXXFLAGS" + case $host in + *-*-linux-gnu) + CFLAGS="-std=iso9899:1990 -W -Wall -Wchar-subscripts -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -D_XOPEN_SOURCE=500 -D_BSD_SOURCE $CFLAGS" + CXXFLAGS="-ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wchar-subscripts $CXXFLAGS" + KDE_CHECK_COMPILER_FLAG(Wmissing-format-attribute, [CXXFLAGS="$CXXFLAGS -Wformat-security -Wmissing-format-attribute"]) + KDE_CHECK_C_COMPILER_FLAG(Wmissing-format-attribute, [CFLAGS="$CFLAGS -Wformat-security -Wmissing-format-attribute"]) + ;; + esac + KDE_CHECK_COMPILER_FLAG(Wundef,[CXXFLAGS="-Wundef $CXXFLAGS"]) + KDE_CHECK_COMPILER_FLAG(Wno-long-long,[CXXFLAGS="-Wno-long-long $CXXFLAGS"]) + dnl ### FIXME: revert for KDE 4 + KDE_CHECK_COMPILER_FLAG(Wno-non-virtual-dtor,[CXXFLAGS="$CXXFLAGS -Wno-non-virtual-dtor"]) + fi + fi + + if test "$GXX" = "yes" && test "$kde_use_strict_options" = "yes"; then + CXXFLAGS="-Wcast-qual -Wshadow -Wcast-align $CXXFLAGS" + fi + + AC_ARG_ENABLE(pch, + AC_HELP_STRING([--enable-pch], + [enables precompiled header support (currently only KCC or gcc >=3.4+unsermake) [default=no]]), + [ kde_use_pch=$enableval ],[ kde_use_pch=no ]) + + HAVE_GCC_VISIBILITY=0 + AC_SUBST([HAVE_GCC_VISIBILITY]) + + if test "$GXX" = "yes"; then + gcc_no_reorder_blocks=NO + KDE_CHECK_COMPILER_FLAG(fno-reorder-blocks,[gcc_no_reorder_blocks=YES]) + if test $kde_use_debug_code != "no" && \ + test $kde_use_debug_code != "full" && \ + test "YES" = "$gcc_no_reorder_blocks" ; then + CXXFLAGS="$CXXFLAGS -fno-reorder-blocks" + CFLAGS="$CFLAGS -fno-reorder-blocks" + fi + KDE_CHECK_COMPILER_FLAG(fno-exceptions,[CXXFLAGS="$CXXFLAGS -fno-exceptions"]) + KDE_CHECK_COMPILER_FLAG(fno-check-new, [CXXFLAGS="$CXXFLAGS -fno-check-new"]) + KDE_CHECK_COMPILER_FLAG(fno-common, [CXXFLAGS="$CXXFLAGS -fno-common"]) + KDE_CHECK_COMPILER_FLAG(fexceptions, [USE_EXCEPTIONS="-fexceptions"], USE_EXCEPTIONS= ) + ENABLE_PERMISSIVE_FLAG="-fpermissive" + + if test "$kde_use_pch" = "yes"; then + AC_MSG_CHECKING(whether gcc supports precompiling c header files) + echo >conftest.h + if $CC -x c-header conftest.h >/dev/null 2>/dev/null; then + kde_gcc_supports_pch=yes + AC_MSG_RESULT(yes) + else + kde_gcc_supports_pch=no + AC_MSG_RESULT(no) + fi + if test "$kde_gcc_supports_pch" = "yes"; then + AC_MSG_CHECKING(whether gcc supports precompiling c++ header files) + if $CXX -x c++-header conftest.h >/dev/null 2>/dev/null; then + kde_gcc_supports_pch=yes + AC_MSG_RESULT(yes) + else + kde_gcc_supports_pch=no + AC_MSG_RESULT(no) + fi + fi + rm -f conftest.h conftest.h.gch + fi + + KDE_CHECK_FOR_OPT_NOINLINE_MATCH + if test "x$kde_cv_opt_noinline_match" = "xno" ; then + CFLAGS="`echo "$CFLAGS" | sed "s/ -fno-inline//"`" + fi + fi + AM_CONDITIONAL(unsermake_enable_pch, test "$kde_use_pch" = "yes" && test "$kde_gcc_supports_pch" = "yes") + if test "$CXX" = "KCC"; then + dnl unfortunately we currently cannot disable exception support in KCC + dnl because doing so is binary incompatible and Qt by default links with exceptions :-( + dnl KDE_CHECK_COMPILER_FLAG(-no_exceptions,[CXXFLAGS="$CXXFLAGS --no_exceptions"]) + dnl KDE_CHECK_COMPILER_FLAG(-exceptions, [USE_EXCEPTIONS="--exceptions"], USE_EXCEPTIONS= ) + + if test "$kde_use_pch" = "yes"; then + dnl TODO: support --pch-dir! + KDE_CHECK_COMPILER_FLAG(-pch,[CXXFLAGS="$CXXFLAGS --pch"]) + dnl the below works (but the dir must exist), but it's + dnl useless for a whole package. + dnl The are precompiled headers for each source file, so when compiling + dnl from scratch, it doesn't make a difference, and they take up + dnl around ~5Mb _per_ sourcefile. + dnl KDE_CHECK_COMPILER_FLAG(-pch_dir /tmp, + dnl [CXXFLAGS="$CXXFLAGS --pch_dir `pwd`/pcheaders"]) + fi + dnl this flag controls inlining. by default KCC inlines in optimisation mode + dnl all implementations that are defined inside the class {} declaration. + dnl because of templates-compatibility with broken gcc compilers, this + dnl can cause excessive inlining. This flag limits it to a sane level + KDE_CHECK_COMPILER_FLAG(-inline_keyword_space_time=6,[CXXFLAGS="$CXXFLAGS --inline_keyword_space_time=6"]) + KDE_CHECK_COMPILER_FLAG(-inline_auto_space_time=2,[CXXFLAGS="$CXXFLAGS --inline_auto_space_time=2"]) + KDE_CHECK_COMPILER_FLAG(-inline_implicit_space_time=2.0,[CXXFLAGS="$CXXFLAGS --inline_implicit_space_time=2.0"]) + KDE_CHECK_COMPILER_FLAG(-inline_generated_space_time=2.0,[CXXFLAGS="$CXXFLAGS --inline_generated_space_time=2.0"]) + dnl Some source files are shared between multiple executables + dnl (or libraries) and some of those need template instantiations. + dnl In that case KCC needs to compile those sources with + dnl --one_instantiation_per_object. To make it easy for us we compile + dnl _all_ objects with that flag (--one_per is a shorthand). + KDE_CHECK_COMPILER_FLAG(-one_per, [CXXFLAGS="$CXXFLAGS --one_per"]) + fi + AC_SUBST(USE_EXCEPTIONS) + dnl obsolete macro - provided to keep things going + USE_RTTI= + AC_SUBST(USE_RTTI) + + case "$host" in + *-*-irix*) test "$GXX" = yes && CXXFLAGS="-D_LANGUAGE_C_PLUS_PLUS -D__LANGUAGE_C_PLUS_PLUS $CXXFLAGS" ;; + *-*-sysv4.2uw*) CXXFLAGS="-D_UNIXWARE $CXXFLAGS";; + *-*-sysv5uw7*) CXXFLAGS="-D_UNIXWARE7 $CXXFLAGS";; + *-*-solaris*) + if test "$GXX" = yes; then + libstdcpp=`$CXX -print-file-name=libstdc++.so` + if test ! -f $libstdcpp; then + AC_MSG_ERROR([You've compiled gcc without --enable-shared. This doesn't work with KDE. Please recompile gcc with --enable-shared to receive a libstdc++.so]) + fi + fi + ;; + esac + + AC_VALIDIFY_CXXFLAGS + + AC_PROG_CXXCPP + + if test "$GCC" = yes; then + NOOPT_CFLAGS=-O0 + fi + KDE_CHECK_COMPILER_FLAG(O0,[NOOPT_CXXFLAGS=-O0]) + + AC_ARG_ENABLE(coverage, + AC_HELP_STRING([--enable-coverage],[use gcc coverage testing]), [ + if test "$am_cv_CC_dependencies_compiler_type" = "gcc3"; then + ac_coverage_compiler="-fprofile-arcs -ftest-coverage" + ac_coverage_linker="-lgcc" + elif test "$am_cv_CC_dependencies_compiler_type" = "gcc"; then + ac_coverage_compiler="-fprofile-arcs -ftest-coverage" + ac_coverage_linker="" + else + AC_MSG_ERROR([coverage with your compiler is not supported]) + fi + CFLAGS="$CFLAGS $ac_coverage_compiler" + CXXFLAGS="$CXXFLAGS $ac_coverage_compiler" + LDFLAGS="$LDFLAGS $ac_coverage_linker" + ]) + + AC_SUBST(NOOPT_CXXFLAGS) + AC_SUBST(NOOPT_CFLAGS) + AC_SUBST(ENABLE_PERMISSIVE_FLAG) + + KDE_CHECK_NEW_LDFLAGS + KDE_CHECK_FINAL + KDE_CHECK_CLOSURE + KDE_CHECK_NMCHECK + + ifdef([AM_DEPENDENCIES], AC_REQUIRE([KDE_ADD_DEPENDENCIES]), []) +]) + +AC_DEFUN([KDE_CHECK_VISIBILITY_GCC_BUG], + [ + AC_CACHE_CHECK([for gcc -fvisibility-inlines-hidden bug], kde_cv_val_gcc_visibility_bug, + [ + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + + safe_CXXFLAGS=$CXXFLAGS + safe_LDFLAGS=$LDFLAGS + CXXFLAGS="$CXXFLAGS -fPIC -fvisibility-inlines-hidden -O0" + LDFLAGS="$LDFLAGS -shared -fPIC" + + AC_TRY_LINK( + [ + /* http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19664 */ + #include + int some_function( void ) __attribute__ ((visibility("default"))); + int some_function( void ) + { + std::string s("blafasel"); + return 0; + } + ], [/* elvis is alive */], + kde_cv_val_gcc_visibility_bug=no, kde_cv_val_gcc_visibility_bug=yes) + + CXXFLAGS=$safe_CXXFLAGS + LDFLAGS=$safe_LDFLAGS + AC_LANG_RESTORE + ] + ) + + if test x$kde_cv_val_gcc_visibility_bug = xno; then + CXXFLAGS="$CXXFLAGS -fvisibility-inlines-hidden" + fi + ] +) + +AC_DEFUN([KDE_ENABLE_HIDDEN_VISIBILITY], +[ + AC_BEFORE([AC_PATH_QT_1_3], [KDE_ENABLE_HIDDEN_VISIBILITY]) + + AC_MSG_CHECKING([grepping for visibility push/pop in headers]) + + if test "x$GXX" = "xyes"; then + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + AC_EGREP_CPP( + [GCC visibility push], + [ #include + ], + [ + AC_MSG_RESULT(yes) + kde_stdc_visibility_patched=yes ], + [ + AC_MSG_RESULT(no) + AC_MSG_WARN([Your libstdc++ doesn't appear to be patched for + visibility support. Disabling -fvisibility=hidden]) + + kde_stdc_visibility_patched=no ]) + + AC_LANG_RESTORE + + kde_have_gcc_visibility=no + KDE_CHECK_COMPILER_FLAG(fvisibility=hidden, + [ + kde_have_gcc_visibility=yes + dnl the whole toolchain is just a mess, gcc is just too buggy + dnl to handle STL with visibility enabled. Lets reconsider + dnl when gcc 4.2 is out or when things get fixed in the compiler. + dnl Contact mueller@kde.org for details. + AC_ARG_ENABLE(gcc-hidden-visibility, + AC_HELP_STRING([--enable-gcc-hidden-visibility],[toolchain hidden visibility [default=no]]), + [kde_have_gcc_visibility=$enableval], + [kde_have_gcc_visibility=no]) + + AC_CACHE_CHECK([if Qt is patched for -fvisibility], kde_cv_val_qt_gcc_visibility_patched, + [ + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + + safe_CXXFLAGS=$CXXFLAGS + CXXFLAGS="$CXXFLAGS $all_includes" + + AC_TRY_COMPILE( + [ +#include +#if Q_EXPORT - 0 != 0 +/* if this compiles, then Q_EXPORT is undefined */ +/* if Q_EXPORT is nonempty, this will break compilation */ +#endif + ], [/* elvis is alive */], + kde_cv_val_qt_gcc_visibility_patched=no, kde_cv_val_qt_gcc_visibility_patched=yes) + + CXXFLAGS=$safe_CXXFLAGS + AC_LANG_RESTORE + ] + ) + + if test x$kde_have_gcc_visibility = "xyes" && test x$kde_stdc_visibility_patched = "xyes" && test x$kde_cv_val_qt_gcc_visibility_patched = "xyes"; then + CXXFLAGS="$CXXFLAGS -fvisibility=hidden" + KDE_CHECK_VISIBILITY_GCC_BUG + HAVE_GCC_VISIBILITY=1 + AC_DEFINE_UNQUOTED(__KDE_HAVE_GCC_VISIBILITY, "$HAVE_GCC_VISIBILITY", [define to 1 if -fvisibility is supported]) + fi + ]) + fi +]) + +AC_DEFUN([KDE_ADD_DEPENDENCIES], +[ + [A]M_DEPENDENCIES(CC) + [A]M_DEPENDENCIES(CXX) +]) + +dnl just a wrapper to clean up configure.in +AC_DEFUN([KDE_PROG_LIBTOOL], +[ +AC_REQUIRE([AC_CHECK_COMPILERS]) +AC_REQUIRE([AC_ENABLE_SHARED]) +AC_REQUIRE([AC_ENABLE_STATIC]) + +AC_REQUIRE([AC_LIBTOOL_DLOPEN]) +AC_REQUIRE([KDE_CHECK_LIB64]) + +AC_OBJEXT +AC_EXEEXT + +AM_PROG_LIBTOOL +AC_LIBTOOL_CXX + +LIBTOOL_SHELL="/bin/sh ./libtool" +# LIBTOOL="$LIBTOOL --silent" +KDE_PLUGIN="-avoid-version -module -no-undefined \$(KDE_NO_UNDEFINED) \$(KDE_RPATH) \$(KDE_MT_LDFLAGS)" +AC_SUBST(KDE_PLUGIN) + +# This hack ensures that libtool creates shared libs for kunittest plugins. By default check_LTLIBRARIES makes static libs. +KDE_CHECK_PLUGIN="\$(KDE_PLUGIN) -rpath \$(libdir)" +AC_SUBST(KDE_CHECK_PLUGIN) + +# we patch configure quite some so we better keep that consistent for incremental runs +AC_SUBST(AUTOCONF,'$(SHELL) $(top_srcdir)/admin/cvs.sh configure || touch configure') +]) + +AC_DEFUN([KDE_CHECK_LIB64], +[ + AC_ARG_ENABLE(libsuffix, + AC_HELP_STRING([--enable-libsuffix], + [/lib directory suffix (64,32,none,auto[=default])]), + kdelibsuff=$enableval, kdelibsuff="auto") + + if test "$kdelibsuff" = "auto"; then + +cat > conftest.c << EOF +#include +int main() { + return 0; +} +EOF + kdelibsuff=`$CC conftest.c -o conftest.out; ldd conftest.out |sed -ne '/libc.so/{ + s,.*/lib\([[^\/]]*\)/.*,\1, + p +}'` + rm -rf conftest.* + fi + + if test "$kdelibsuff" = "no" || test "$kdelibsuff" = "none"; then + kdelibsuff= + fi + if test -z "$kdelibsuff"; then + AC_MSG_RESULT([not using lib directory suffix]) + AC_DEFINE(KDELIBSUFF, [""], Suffix for lib directories) + else + if test "$libdir" = '${exec_prefix}/lib'; then + libdir="$libdir${kdelibsuff}" + AC_SUBST([libdir], ["$libdir"]) dnl ugly hack for lib64 platforms + fi + AC_DEFINE_UNQUOTED(KDELIBSUFF, ["${kdelibsuff}"], Suffix for lib directories) + AC_MSG_RESULT([using lib directory suffix $kdelibsuff]) + fi +]) + +AC_DEFUN([KDE_CHECK_TYPES], +[ AC_CHECK_SIZEOF(int, 4)dnl + AC_CHECK_SIZEOF(short)dnl + AC_CHECK_SIZEOF(long, 4)dnl + AC_CHECK_SIZEOF(char *, 4)dnl +])dnl + +dnl Not used - kept for compat only? +AC_DEFUN([KDE_DO_IT_ALL], +[ +AC_CANONICAL_SYSTEM +AC_ARG_PROGRAM +AM_INIT_AUTOMAKE($1, $2) +AM_DISABLE_LIBRARIES +AC_PREFIX_DEFAULT(${KDEDIR:-/usr/local/kde}) +AC_CHECK_COMPILERS +KDE_PROG_LIBTOOL +AM_KDE_WITH_NLS +AC_PATH_KDE +]) + +AC_DEFUN([AC_CHECK_RPATH], +[ +AC_MSG_CHECKING(for rpath) +AC_ARG_ENABLE(rpath, + AC_HELP_STRING([--disable-rpath],[do not use the rpath feature of ld]), + USE_RPATH=$enableval, USE_RPATH=yes) + +if test -z "$KDE_RPATH" && test "$USE_RPATH" = "yes"; then + + KDE_RPATH="-R \$(libdir)" + + if test "$kde_libraries" != "$libdir"; then + KDE_RPATH="$KDE_RPATH -R \$(kde_libraries)" + fi + + if test -n "$qt_libraries"; then + KDE_RPATH="$KDE_RPATH -R \$(qt_libraries)" + fi + dnl $x_libraries is set to /usr/lib in case + if test -n "$X_LDFLAGS"; then + X_RPATH="-R \$(x_libraries)" + KDE_RPATH="$KDE_RPATH $X_RPATH" + fi + if test -n "$KDE_EXTRA_RPATH"; then + KDE_RPATH="$KDE_RPATH \$(KDE_EXTRA_RPATH)" + fi +fi +AC_SUBST(KDE_EXTRA_RPATH) +AC_SUBST(KDE_RPATH) +AC_SUBST(X_RPATH) +AC_MSG_RESULT($USE_RPATH) +]) + +dnl Check for the type of the third argument of getsockname +AC_DEFUN([AC_CHECK_SOCKLEN_T], +[ + AC_MSG_CHECKING(for socklen_t) + AC_CACHE_VAL(kde_cv_socklen_t, + [ + AC_LANG_PUSH(C++) + kde_cv_socklen_t=no + AC_TRY_COMPILE([ + #include + #include + ], + [ + socklen_t len; + getpeername(0,0,&len); + ], + [ + kde_cv_socklen_t=yes + kde_cv_socklen_t_equiv=socklen_t + ]) + AC_LANG_POP(C++) + ]) + AC_MSG_RESULT($kde_cv_socklen_t) + if test $kde_cv_socklen_t = no; then + AC_MSG_CHECKING([for socklen_t equivalent for socket functions]) + AC_CACHE_VAL(kde_cv_socklen_t_equiv, + [ + kde_cv_socklen_t_equiv=int + AC_LANG_PUSH(C++) + for t in int size_t unsigned long "unsigned long"; do + AC_TRY_COMPILE([ + #include + #include + ], + [ + $t len; + getpeername(0,0,&len); + ], + [ + kde_cv_socklen_t_equiv="$t" + break + ]) + done + AC_LANG_POP(C++) + ]) + AC_MSG_RESULT($kde_cv_socklen_t_equiv) + fi + AC_DEFINE_UNQUOTED(kde_socklen_t, $kde_cv_socklen_t_equiv, + [type to use in place of socklen_t if not defined]) + AC_DEFINE_UNQUOTED(ksize_t, $kde_cv_socklen_t_equiv, + [type to use in place of socklen_t if not defined (deprecated, use kde_socklen_t)]) +]) + +dnl This is a merge of some macros out of the gettext aclocal.m4 +dnl since we don't need anything, I took the things we need +dnl the copyright for them is: +dnl > +dnl Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +dnl This Makefile.in is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. +dnl > +dnl for this file it is relicensed under LGPL + +AC_DEFUN([AM_KDE_WITH_NLS], + [ + dnl If we use NLS figure out what method + + AM_PATH_PROG_WITH_TEST_KDE(MSGFMT, msgfmt, + [test -n "`$ac_dir/$ac_word --version 2>&1 | grep 'GNU gettext'`"], msgfmt) + AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) + + if test -z "`$GMSGFMT --version 2>&1 | grep 'GNU gettext'`"; then + AC_MSG_RESULT([found msgfmt program is not GNU msgfmt; ignore it]) + GMSGFMT=":" + fi + MSGFMT=$GMSGFMT + AC_SUBST(GMSGFMT) + AC_SUBST(MSGFMT) + + AM_PATH_PROG_WITH_TEST_KDE(XGETTEXT, xgettext, + [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) + + dnl Test whether we really found GNU xgettext. + if test "$XGETTEXT" != ":"; then + dnl If it is no GNU xgettext we define it as : so that the + dnl Makefiles still can work. + if $XGETTEXT --omit-header /dev/null 2> /dev/null; then + : ; + else + AC_MSG_RESULT( + [found xgettext programs is not GNU xgettext; ignore it]) + XGETTEXT=":" + fi + fi + AC_SUBST(XGETTEXT) + + ]) + +# Search path for a program which passes the given test. +# Ulrich Drepper , 1996. + +# serial 1 +# Stephan Kulow: I appended a _KDE against name conflicts + +dnl AM_PATH_PROG_WITH_TEST_KDE(VARIABLE, PROG-TO-CHECK-FOR, +dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) +AC_DEFUN([AM_PATH_PROG_WITH_TEST_KDE], +[# Extract the first word of "$2", so it can be a program name with args. +set dummy $2; ac_word=[$]2 +AC_MSG_CHECKING([for $ac_word]) +AC_CACHE_VAL(ac_cv_path_$1, +[case "[$]$1" in + /*) + ac_cv_path_$1="[$]$1" # Let the user override the test with a path. + ;; + *) + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" + for ac_dir in ifelse([$5], , $PATH, [$5]); do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if [$3]; then + ac_cv_path_$1="$ac_dir/$ac_word" + break + fi + fi + done + IFS="$ac_save_ifs" +dnl If no 4th arg is given, leave the cache variable unset, +dnl so AC_PATH_PROGS will keep looking. +ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" +])dnl + ;; +esac])dnl +$1="$ac_cv_path_$1" +if test -n "[$]$1"; then + AC_MSG_RESULT([$]$1) +else + AC_MSG_RESULT(no) +fi +AC_SUBST($1)dnl +]) + + +# Check whether LC_MESSAGES is available in . +# Ulrich Drepper , 1995. + +# serial 1 + +AC_DEFUN([AM_LC_MESSAGES], + [if test $ac_cv_header_locale_h = yes; then + AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES, + [AC_TRY_LINK([#include ], [return LC_MESSAGES], + am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)]) + if test $am_cv_val_LC_MESSAGES = yes; then + AC_DEFINE(HAVE_LC_MESSAGES, 1, [Define if your locale.h file contains LC_MESSAGES]) + fi + fi]) + +dnl From Jim Meyering. +dnl FIXME: migrate into libit. + +AC_DEFUN([AM_FUNC_OBSTACK], +[AC_CACHE_CHECK([for obstacks], am_cv_func_obstack, + [AC_TRY_LINK([#include "obstack.h"], + [struct obstack *mem;obstack_free(mem,(char *) 0)], + am_cv_func_obstack=yes, + am_cv_func_obstack=no)]) + if test $am_cv_func_obstack = yes; then + AC_DEFINE(HAVE_OBSTACK) + else + LIBOBJS="$LIBOBJS obstack.o" + fi +]) + +dnl From Jim Meyering. Use this if you use the GNU error.[ch]. +dnl FIXME: Migrate into libit + +AC_DEFUN([AM_FUNC_ERROR_AT_LINE], +[AC_CACHE_CHECK([for error_at_line], am_cv_lib_error_at_line, + [AC_TRY_LINK([],[error_at_line(0, 0, "", 0, "");], + am_cv_lib_error_at_line=yes, + am_cv_lib_error_at_line=no)]) + if test $am_cv_lib_error_at_line = no; then + LIBOBJS="$LIBOBJS error.o" + fi + AC_SUBST(LIBOBJS)dnl +]) + +# Macro to add for using GNU gettext. +# Ulrich Drepper , 1995. + +# serial 1 +# Stephan Kulow: I put a KDE in it to avoid name conflicts + +AC_DEFUN([AM_KDE_GNU_GETTEXT], + [AC_REQUIRE([AC_PROG_MAKE_SET])dnl + AC_REQUIRE([AC_PROG_RANLIB])dnl + AC_REQUIRE([AC_HEADER_STDC])dnl + AC_REQUIRE([AC_TYPE_OFF_T])dnl + AC_REQUIRE([AC_TYPE_SIZE_T])dnl + AC_REQUIRE([AC_FUNC_ALLOCA])dnl + AC_REQUIRE([AC_FUNC_MMAP])dnl + AC_REQUIRE([AM_KDE_WITH_NLS])dnl + AC_CHECK_HEADERS([limits.h locale.h nl_types.h string.h values.h alloca.h]) + AC_CHECK_FUNCS([getcwd munmap putenv setlocale strchr strcasecmp \ +__argz_count __argz_stringify __argz_next]) + + AC_MSG_CHECKING(for stpcpy) + AC_CACHE_VAL(kde_cv_func_stpcpy, + [ + kde_safe_cxxflags=$CXXFLAGS + CXXFLAGS="-Werror" + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + AC_TRY_COMPILE([ + #include + ], + [ + char buffer[200]; + stpcpy(buffer, buffer); + ], + kde_cv_func_stpcpy=yes, + kde_cv_func_stpcpy=no) + AC_LANG_RESTORE + CXXFLAGS=$kde_safe_cxxflags + ]) + AC_MSG_RESULT($kde_cv_func_stpcpy) + if eval "test \"`echo $kde_cv_func_stpcpy`\" = yes"; then + AC_DEFINE(HAVE_STPCPY, 1, [Define if you have stpcpy]) + fi + + AM_LC_MESSAGES + + if test "x$CATOBJEXT" != "x"; then + if test "x$ALL_LINGUAS" = "x"; then + LINGUAS= + else + AC_MSG_CHECKING(for catalogs to be installed) + NEW_LINGUAS= + for lang in ${LINGUAS=$ALL_LINGUAS}; do + case "$ALL_LINGUAS" in + *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;; + esac + done + LINGUAS=$NEW_LINGUAS + AC_MSG_RESULT($LINGUAS) + fi + + dnl Construct list of names of catalog files to be constructed. + if test -n "$LINGUAS"; then + for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done + fi + fi + + ]) + +AC_DEFUN([AC_HAVE_XPM], + [AC_REQUIRE_CPP()dnl + AC_REQUIRE([KDE_CHECK_EXTRA_LIBS]) + + test -z "$XPM_LDFLAGS" && XPM_LDFLAGS= + test -z "$XPM_INCLUDE" && XPM_INCLUDE= + + AC_ARG_WITH(xpm,AC_HELP_STRING([--without-xpm],[disable color pixmap XPM tests]), + xpm_test=$withval, xpm_test="yes") + if test "x$xpm_test" = xno; then + ac_cv_have_xpm=no + else + AC_MSG_CHECKING(for XPM) + AC_CACHE_VAL(ac_cv_have_xpm, + [ + ac_save_ldflags="$LDFLAGS" + ac_save_cflags="$CFLAGS" + if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then + LDFLAGS="$LDFLAGS $X_LDFLAGS $USER_LDFLAGS $LDFLAGS $XPM_LDFLAGS $all_libraries -lXpm -lX11 -lXext $LIBZ $LIBSOCKET" + else + LDFLAGS="$LDFLAGS $X_LDFLAGS $USER_LDFLAGS $LDFLAGS $XPM_LDFLAGS $all_libraries -lXpm $LIBZ $LIBSOCKET" + fi + CFLAGS="$CFLAGS $X_INCLUDES $USER_INCLUDES" + test -n "$XPM_INCLUDE" && CFLAGS="-I$XPM_INCLUDE $CFLAGS" + AC_TRY_LINK([#include ],[], + ac_cv_have_xpm="yes",ac_cv_have_xpm="no") + LDFLAGS="$ac_save_ldflags" + CFLAGS="$ac_save_cflags" + ])dnl + + if test "$ac_cv_have_xpm" = no; then + AC_MSG_RESULT(no) + XPM_LDFLAGS="" + XPMINC="" + $2 + else + AC_DEFINE(HAVE_XPM, 1, [Define if you have XPM support]) + if test "$XPM_LDFLAGS" = ""; then + XPMLIB='-lXpm $(LIB_X11)' + else + XPMLIB="-L$XPM_LDFLAGS -lXpm "'$(LIB_X11)' + fi + if test "$XPM_INCLUDE" = ""; then + XPMINC="" + else + XPMINC="-I$XPM_INCLUDE" + fi + AC_MSG_RESULT(yes) + $1 + fi + fi + AC_SUBST(XPMINC) + AC_SUBST(XPMLIB) +]) + +AC_DEFUN([AC_HAVE_DPMS], + [AC_REQUIRE_CPP()dnl + AC_REQUIRE([KDE_CHECK_EXTRA_LIBS]) + + test -z "$DPMS_LDFLAGS" && DPMS_LDFLAGS= + test -z "$DPMS_INCLUDE" && DPMS_INCLUDE= + DPMS_LIB= + + AC_ARG_WITH(dpms,AC_HELP_STRING([--without-dpms],[disable DPMS power saving]), + dpms_test=$withval, dpms_test="yes") + if test "x$dpms_test" = xno; then + ac_cv_have_dpms=no + else + AC_MSG_CHECKING(for DPMS) + dnl Note: ac_cv_have_dpms can be no, yes, or -lXdpms. + dnl 'yes' means DPMS_LIB="", '-lXdpms' means DPMS_LIB="-lXdpms". + AC_CACHE_VAL(ac_cv_have_dpms, + [ + if test "x$kde_use_qt_emb" = "xyes" || test "x$kde_use_qt_mac" = "xyes"; then + AC_MSG_RESULT(no) + ac_cv_have_dpms="no" + else + ac_save_ldflags="$LDFLAGS" + ac_save_cflags="$CFLAGS" + ac_save_libs="$LIBS" + LDFLAGS="$LDFLAGS $DPMS_LDFLAGS $all_libraries" + LIBS="-lX11 -lXext $LIBSOCKET" + CFLAGS="$CFLAGS $X_INCLUDES" + test -n "$DPMS_INCLUDE" && CFLAGS="-I$DPMS_INCLUDE $CFLAGS" + AC_TRY_LINK([ + #include + #include + #include + #include + int foo_test_dpms() + { return DPMSSetTimeouts( 0, 0, 0, 0 ); }],[], + ac_cv_have_dpms="yes", [ + LIBS="-lXdpms $LIBS" + AC_TRY_LINK([ + #include + #include + #include + #include + int foo_test_dpms() + { return DPMSSetTimeouts( 0, 0, 0, 0 ); }],[], + [ + ac_cv_have_dpms="-lXdpms" + ],ac_cv_have_dpms="no") + ]) + LDFLAGS="$ac_save_ldflags" + CFLAGS="$ac_save_cflags" + LIBS="$ac_save_libs" + fi + ])dnl + + if test "$ac_cv_have_dpms" = no; then + AC_MSG_RESULT(no) + DPMS_LDFLAGS="" + DPMSINC="" + $2 + else + AC_DEFINE(HAVE_DPMS, 1, [Define if you have DPMS support]) + if test "$ac_cv_have_dpms" = "-lXdpms"; then + DPMS_LIB="-lXdpms" + fi + if test "$DPMS_LDFLAGS" = ""; then + DPMSLIB="$DPMS_LIB "'$(LIB_X11)' + else + DPMSLIB="$DPMS_LDFLAGS $DPMS_LIB "'$(LIB_X11)' + fi + if test "$DPMS_INCLUDE" = ""; then + DPMSINC="" + else + DPMSINC="-I$DPMS_INCLUDE" + fi + AC_MSG_RESULT(yes) + $1 + fi + fi + ac_save_cflags="$CFLAGS" + CFLAGS="$CFLAGS $X_INCLUDES" + test -n "$DPMS_INCLUDE" && CFLAGS="-I$DPMS_INCLUDE $CFLAGS" + AH_TEMPLATE(HAVE_DPMSCAPABLE_PROTO, + [Define if you have the DPMSCapable prototype in ]) + AC_CHECK_DECL(DPMSCapable, + AC_DEFINE(HAVE_DPMSCAPABLE_PROTO),, + [#include + #include ]) + AH_TEMPLATE(HAVE_DPMSINFO_PROTO, + [Define if you have the DPMSInfo prototype in ]) + AC_CHECK_DECL(DPMSInfo, + AC_DEFINE(HAVE_DPMSINFO_PROTO),, + [#include + #include ]) + CFLAGS="$ac_save_cflags" + AC_SUBST(DPMSINC) + AC_SUBST(DPMSLIB) +]) + +AC_DEFUN([AC_HAVE_GL], + [AC_REQUIRE_CPP()dnl + AC_REQUIRE([KDE_CHECK_EXTRA_LIBS]) + + test -z "$GL_LDFLAGS" && GL_LDFLAGS= + test -z "$GL_INCLUDE" && GL_INCLUDE= + + AC_ARG_WITH(gl,AC_HELP_STRING([--without-gl],[disable 3D GL modes]), + gl_test=$withval, gl_test="yes") + if test "x$kde_use_qt_emb" = "xyes"; then + # GL and Qt Embedded is a no-go for now. + ac_cv_have_gl=no + elif test "x$gl_test" = xno; then + ac_cv_have_gl=no + else + AC_MSG_CHECKING(for GL) + AC_CACHE_VAL(ac_cv_have_gl, + [ + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + ac_save_ldflags=$LDFLAGS + ac_save_cxxflags=$CXXFLAGS + ac_save_libs=$LIBS + LDFLAGS="$LDFLAGS $GL_LDFLAGS $X_LDFLAGS $all_libraries" + LIBS="$LIBS -lGL -lGLU" + test "x$kde_use_qt_mac" != xyes && test "x$kde_use_qt_emb" != xyes && LIBS="$LIBS -lX11" + LIBS="$LIBS $LIB_XEXT -lm $LIBSOCKET" + CXXFLAGS="$CFLAGS $X_INCLUDES" + test -n "$GL_INCLUDE" && CFLAGS="-I$GL_INCLUDE $CFLAGS" + AC_TRY_LINK([#include +#include +], [], + ac_cv_have_gl="yes", ac_cv_have_gl="no") + AC_LANG_RESTORE + LDFLAGS=$ac_save_ldflags + CXXFLAGS=$ac_save_cxxflags + LIBS=$ac_save_libs + ])dnl + + if test "$ac_cv_have_gl" = "no"; then + AC_MSG_RESULT(no) + GL_LDFLAGS="" + GLINC="" + $2 + else + AC_DEFINE(HAVE_GL, 1, [Defines if you have GL (Mesa, OpenGL, ...)]) + if test "$GL_LDFLAGS" = ""; then + GLLIB='-lGLU -lGL $(LIB_X11)' + else + GLLIB="$GL_LDFLAGS -lGLU -lGL "'$(LIB_X11)' + fi + if test "$GL_INCLUDE" = ""; then + GLINC="" + else + GLINC="-I$GL_INCLUDE" + fi + AC_MSG_RESULT($ac_cv_have_gl) + $1 + fi + fi + AC_SUBST(GLINC) + AC_SUBST(GLLIB) +]) + + + dnl shadow password and PAM magic - maintained by ossi@kde.org + +AC_DEFUN([KDE_PAM], [ + AC_REQUIRE([KDE_CHECK_LIBDL]) + + want_pam= + AC_ARG_WITH(pam, + AC_HELP_STRING([--with-pam[=ARG]],[enable support for PAM: ARG=[yes|no|service name]]), + [ if test "x$withval" = "xyes"; then + want_pam=yes + pam_service=kde + elif test "x$withval" = "xno"; then + want_pam=no + else + want_pam=yes + pam_service=$withval + fi + ], [ pam_service=kde ]) + + use_pam= + PAMLIBS= + if test "x$want_pam" != xno; then + AC_CHECK_LIB(pam, pam_start, [ + AC_CHECK_HEADER(security/pam_appl.h, + [ pam_header=security/pam_appl.h ], + [ AC_CHECK_HEADER(pam/pam_appl.h, + [ pam_header=pam/pam_appl.h ], + [ + AC_MSG_WARN([PAM detected, but no headers found! +Make sure you have the necessary development packages installed.]) + ] + ) + ] + ) + ], , $LIBDL) + if test -z "$pam_header"; then + if test "x$want_pam" = xyes; then + AC_MSG_ERROR([--with-pam was specified, but cannot compile with PAM!]) + fi + else + AC_DEFINE(HAVE_PAM, 1, [Defines if you have PAM (Pluggable Authentication Modules)]) + PAMLIBS="$PAM_MISC_LIB -lpam $LIBDL" + use_pam=yes + + dnl darwin claims to be something special + if test "$pam_header" = "pam/pam_appl.h"; then + AC_DEFINE(HAVE_PAM_PAM_APPL_H, 1, [Define if your PAM headers are in pam/ instead of security/]) + fi + + dnl test whether struct pam_message is const (Linux) or not (Sun) + AC_MSG_CHECKING(for const pam_message) + AC_EGREP_HEADER([struct pam_message], $pam_header, + [ AC_EGREP_HEADER([const struct pam_message], $pam_header, + [AC_MSG_RESULT([const: Linux-type PAM])], + [AC_MSG_RESULT([nonconst: Sun-type PAM]) + AC_DEFINE(PAM_MESSAGE_NONCONST, 1, [Define if your PAM support takes non-const arguments (Solaris)])] + )], + [AC_MSG_RESULT([not found - assume const, Linux-type PAM])]) + fi + fi + + AC_SUBST(PAMLIBS) +]) + +dnl DEF_PAM_SERVICE(arg name, full name, define name) +AC_DEFUN([DEF_PAM_SERVICE], [ + AC_ARG_WITH($1-pam, + AC_HELP_STRING([--with-$1-pam=[val]],[override PAM service from --with-pam for $2]), + [ if test "x$use_pam" = xyes; then + $3_PAM_SERVICE=$withval + else + AC_MSG_ERROR([Cannot use use --with-$1-pam, as no PAM was detected. +You may want to enforce it by using --with-pam.]) + fi + ], + [ if test "x$use_pam" = xyes; then + $3_PAM_SERVICE="$pam_service" + fi + ]) + if test -n "$$3_PAM_SERVICE"; then + AC_MSG_RESULT([The PAM service used by $2 will be $$3_PAM_SERVICE]) + AC_DEFINE_UNQUOTED($3_PAM_SERVICE, "$$3_PAM_SERVICE", [The PAM service to be used by $2]) + fi + AC_SUBST($3_PAM_SERVICE) +]) + +AC_DEFUN([KDE_SHADOWPASSWD], [ + AC_REQUIRE([KDE_PAM]) + + AC_CHECK_LIB(shadow, getspent, + [ LIBSHADOW="-lshadow" + ac_use_shadow=yes + ], + [ dnl for UnixWare + AC_CHECK_LIB(gen, getspent, + [ LIBGEN="-lgen" + ac_use_shadow=yes + ], + [ AC_CHECK_FUNC(getspent, + [ ac_use_shadow=yes ], + [ ac_use_shadow=no ]) + ]) + ]) + AC_SUBST(LIBSHADOW) + AC_SUBST(LIBGEN) + + AC_MSG_CHECKING([for shadow passwords]) + + AC_ARG_WITH(shadow, + AC_HELP_STRING([--with-shadow],[If you want shadow password support]), + [ if test "x$withval" != "xno"; then + use_shadow=yes + else + use_shadow=no + fi + ], [ + use_shadow="$ac_use_shadow" + ]) + + if test "x$use_shadow" = xyes; then + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_SHADOW, 1, [Define if you use shadow passwords]) + else + AC_MSG_RESULT(no) + LIBSHADOW= + LIBGEN= + fi + + dnl finally make the relevant binaries setuid root, if we have shadow passwds. + dnl this still applies, if we could use it indirectly through pam. + if test "x$use_shadow" = xyes || + ( test "x$use_pam" = xyes && test "x$ac_use_shadow" = xyes ); then + case $host in + *-*-freebsd* | *-*-netbsd* | *-*-openbsd*) + SETUIDFLAGS="-m 4755 -o root";; + *) + SETUIDFLAGS="-m 4755";; + esac + fi + AC_SUBST(SETUIDFLAGS) + +]) + +AC_DEFUN([KDE_PASSWDLIBS], [ + AC_REQUIRE([KDE_MISC_TESTS]) dnl for LIBCRYPT + AC_REQUIRE([KDE_PAM]) + AC_REQUIRE([KDE_SHADOWPASSWD]) + + if test "x$use_pam" = "xyes"; then + PASSWDLIBS="$PAMLIBS" + else + PASSWDLIBS="$LIBCRYPT $LIBSHADOW $LIBGEN" + fi + + dnl FreeBSD uses a shadow-like setup, where /etc/passwd holds the users, but + dnl /etc/master.passwd holds the actual passwords. /etc/master.passwd requires + dnl root to read, so kcheckpass needs to be root (even when using pam, since pam + dnl may need to read /etc/master.passwd). + case $host in + *-*-freebsd*) + SETUIDFLAGS="-m 4755 -o root" + ;; + *) + ;; + esac + + AC_SUBST(PASSWDLIBS) +]) + +AC_DEFUN([KDE_CHECK_LIBDL], +[ +AC_CHECK_LIB(dl, dlopen, [ +LIBDL="-ldl" +ac_cv_have_dlfcn=yes +]) + +AC_CHECK_LIB(dld, shl_unload, [ +LIBDL="-ldld" +ac_cv_have_shload=yes +]) + +AC_SUBST(LIBDL) +]) + +AC_DEFUN([KDE_CHECK_DLOPEN], +[ +KDE_CHECK_LIBDL +AC_CHECK_HEADERS(dlfcn.h dl.h) +if test "$ac_cv_header_dlfcn_h" = "no"; then + ac_cv_have_dlfcn=no +fi + +if test "$ac_cv_header_dl_h" = "no"; then + ac_cv_have_shload=no +fi + +dnl XXX why change enable_dlopen? its already set by autoconf's AC_ARG_ENABLE +dnl (MM) +AC_ARG_ENABLE(dlopen, +AC_HELP_STRING([--disable-dlopen],[link statically [default=no]]), +enable_dlopen=$enableval, +enable_dlopen=yes) + +# override the user's opinion, if we know it better ;) +if test "$ac_cv_have_dlfcn" = "no" && test "$ac_cv_have_shload" = "no"; then + enable_dlopen=no +fi + +if test "$ac_cv_have_dlfcn" = "yes"; then + AC_DEFINE_UNQUOTED(HAVE_DLFCN, 1, [Define if you have dlfcn]) +fi + +if test "$ac_cv_have_shload" = "yes"; then + AC_DEFINE_UNQUOTED(HAVE_SHLOAD, 1, [Define if you have shload]) +fi + +if test "$enable_dlopen" = no ; then + test -n "$1" && eval $1 +else + test -n "$2" && eval $2 +fi + +]) + +AC_DEFUN([KDE_CHECK_DYNAMIC_LOADING], +[ +KDE_CHECK_DLOPEN(libtool_enable_shared=yes, libtool_enable_static=no) +KDE_PROG_LIBTOOL +AC_MSG_CHECKING([dynamic loading]) +eval "`egrep '^build_libtool_libs=' libtool`" +if test "$build_libtool_libs" = "yes" && test "$enable_dlopen" = "yes"; then + dynamic_loading=yes + AC_DEFINE_UNQUOTED(HAVE_DYNAMIC_LOADING) +else + dynamic_loading=no +fi +AC_MSG_RESULT($dynamic_loading) +if test "$dynamic_loading" = "yes"; then + $1 +else + $2 +fi +]) + +AC_DEFUN([KDE_ADD_INCLUDES], +[ +if test -z "$1"; then + test_include="Pix.h" +else + test_include="$1" +fi + +AC_MSG_CHECKING([for libg++ ($test_include)]) + +AC_CACHE_VAL(kde_cv_libgpp_includes, +[ +kde_cv_libgpp_includes=no + + for ac_dir in \ + \ + /usr/include/g++ \ + /usr/include \ + /usr/unsupported/include \ + /opt/include \ + $extra_include \ + ; \ + do + if test -r "$ac_dir/$test_include"; then + kde_cv_libgpp_includes=$ac_dir + break + fi + done +]) + +AC_MSG_RESULT($kde_cv_libgpp_includes) +if test "$kde_cv_libgpp_includes" != "no"; then + all_includes="-I$kde_cv_libgpp_includes $all_includes $USER_INCLUDES" +fi +]) +]) + +AC_DEFUN([KDE_CHECK_LIBPTHREAD], +[ + dnl This code is here specifically to handle the + dnl various flavors of threading library on FreeBSD + dnl 4-, 5-, and 6-, and the (weird) rules around it. + dnl There may be an environment PTHREAD_LIBS that + dnl specifies what to use; otherwise, search for it. + dnl -pthread is special cased and unsets LIBPTHREAD + dnl below if found. + LIBPTHREAD="" + + if test -n "$PTHREAD_LIBS"; then + if test "x$PTHREAD_LIBS" = "x-pthread" ; then + LIBPTHREAD="PTHREAD" + else + PTHREAD_LIBS_save="$PTHREAD_LIBS" + PTHREAD_LIBS=`echo "$PTHREAD_LIBS_save" | sed -e 's,^-l,,g'` + AC_MSG_CHECKING([for pthread_create in $PTHREAD_LIBS]) + KDE_CHECK_LIB($PTHREAD_LIBS, pthread_create, [ + LIBPTHREAD="$PTHREAD_LIBS_save"]) + PTHREAD_LIBS="$PTHREAD_LIBS_save" + fi + fi + + dnl Is this test really needed, in the face of the Tru64 test below? + if test -z "$LIBPTHREAD"; then + AC_CHECK_LIB(pthread, pthread_create, [LIBPTHREAD="-lpthread"]) + fi + + dnl This is a special Tru64 check, see BR 76171 issue #18. + if test -z "$LIBPTHREAD" ; then + AC_MSG_CHECKING([for pthread_create in -lpthread]) + kde_safe_libs=$LIBS + LIBS="$LIBS -lpthread" + AC_TRY_LINK([#include ],[(void)pthread_create(0,0,0,0);],[ + AC_MSG_RESULT(yes) + LIBPTHREAD="-lpthread"],[ + AC_MSG_RESULT(no)]) + LIBS=$kde_safe_libs + fi + + dnl Un-special-case for FreeBSD. + if test "x$LIBPTHREAD" = "xPTHREAD" ; then + LIBPTHREAD="" + fi + + AC_SUBST(LIBPTHREAD) +]) + +AC_DEFUN([KDE_CHECK_PTHREAD_OPTION], +[ + USE_THREADS="" + if test -z "$LIBPTHREAD"; then + KDE_CHECK_COMPILER_FLAG(pthread, [USE_THREADS="-D_THREAD_SAFE -pthread"]) + fi + + AH_VERBATIM(__svr_define, [ +#if defined(__SVR4) && !defined(__svr4__) +#define __svr4__ 1 +#endif +]) + case $host_os in + solaris*) + KDE_CHECK_COMPILER_FLAG(mt, [USE_THREADS="-mt"]) + CPPFLAGS="$CPPFLAGS -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -DUSE_SOLARIS -DSVR4" + ;; + freebsd*) + CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE $PTHREAD_CFLAGS" + ;; + aix*) + CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE" + LIBPTHREAD="$LIBPTHREAD -lc_r" + ;; + linux*) CPPFLAGS="$CPPFLAGS -D_REENTRANT" + if test "$CXX" = "KCC"; then + CXXFLAGS="$CXXFLAGS --thread_safe" + NOOPT_CXXFLAGS="$NOOPT_CXXFLAGS --thread_safe" + fi + ;; + *) + ;; + esac + AC_SUBST(USE_THREADS) + AC_SUBST(LIBPTHREAD) +]) + +AC_DEFUN([KDE_CHECK_THREADING], +[ + AC_REQUIRE([KDE_CHECK_LIBPTHREAD]) + AC_REQUIRE([KDE_CHECK_PTHREAD_OPTION]) + dnl default is yes if libpthread is found and no if no libpthread is available + if test -z "$LIBPTHREAD"; then + if test -z "$USE_THREADS"; then + kde_check_threading_default=no + else + kde_check_threading_default=yes + fi + else + kde_check_threading_default=yes + fi + AC_ARG_ENABLE(threading,AC_HELP_STRING([--disable-threading],[disables threading even if libpthread found]), + kde_use_threading=$enableval, kde_use_threading=$kde_check_threading_default) + if test "x$kde_use_threading" = "xyes"; then + AC_DEFINE(HAVE_LIBPTHREAD, 1, [Define if you have a working libpthread (will enable threaded code)]) + fi +]) + +AC_DEFUN([KDE_TRY_LINK_PYTHON], +[ +if test "$kde_python_link_found" = no; then + +if test "$1" = normal; then + AC_MSG_CHECKING(if a Python application links) +else + AC_MSG_CHECKING(if Python depends on $2) +fi + +AC_CACHE_VAL(kde_cv_try_link_python_$1, +[ +kde_save_cflags="$CFLAGS" +CFLAGS="$CFLAGS $PYTHONINC" +kde_save_libs="$LIBS" +LIBS="$LIBS $LIBPYTHON $2 $LIBDL $LIBSOCKET" +kde_save_ldflags="$LDFLAGS" +LDFLAGS="$LDFLAGS $PYTHONLIB" + +AC_TRY_LINK( +[ +#include +],[ + PySys_SetArgv(1, 0); +], + [kde_cv_try_link_python_$1=yes], + [kde_cv_try_link_python_$1=no] +) +CFLAGS="$kde_save_cflags" +LIBS="$kde_save_libs" +LDFLAGS="$kde_save_ldflags" +]) + +if test "$kde_cv_try_link_python_$1" = "yes"; then + AC_MSG_RESULT(yes) + kde_python_link_found=yes + if test ! "$1" = normal; then + LIBPYTHON="$LIBPYTHON $2" + fi + $3 +else + AC_MSG_RESULT(no) + $4 +fi + +fi + +]) + +AC_DEFUN([KDE_CHECK_PYTHON_DIR], +[ +AC_MSG_CHECKING([for Python directory]) + +AC_CACHE_VAL(kde_cv_pythondir, +[ + if test -z "$PYTHONDIR"; then + kde_cv_pythondir=/usr/local + else + kde_cv_pythondir="$PYTHONDIR" + fi +]) + +AC_ARG_WITH(pythondir, +AC_HELP_STRING([--with-pythondir=pythondir],[use python installed in pythondir]), +[ + ac_python_dir=$withval +], ac_python_dir=$kde_cv_pythondir +) + +AC_MSG_RESULT($ac_python_dir) +]) + +AC_DEFUN([KDE_CHECK_PYTHON_INTERN], +[ +AC_REQUIRE([KDE_CHECK_LIBDL]) +AC_REQUIRE([KDE_CHECK_LIBPTHREAD]) +AC_REQUIRE([KDE_CHECK_PYTHON_DIR]) + +if test -z "$1"; then + version="1.5" +else + version="$1" +fi + +AC_MSG_CHECKING([for Python$version]) + +python_incdirs="$ac_python_dir/include /usr/include /usr/local/include/ $kde_extra_includes" +AC_FIND_FILE(Python.h, $python_incdirs, python_incdir) +if test ! -r $python_incdir/Python.h; then + AC_FIND_FILE(python$version/Python.h, $python_incdirs, python_incdir) + python_incdir=$python_incdir/python$version + if test ! -r $python_incdir/Python.h; then + python_incdir=no + fi +fi + +PYTHONINC=-I$python_incdir + +python_libdirs="$ac_python_dir/lib$kdelibsuff /usr/lib$kdelibsuff /usr/local /usr/lib$kdelibsuff $kde_extra_libs" +AC_FIND_FILE(libpython$version.so, $python_libdirs, python_libdir) +if test ! -r $python_libdir/libpython$version.so; then + AC_FIND_FILE(libpython$version.a, $python_libdirs, python_libdir) + if test ! -r $python_libdir/libpython$version.a; then + AC_FIND_FILE(python$version/config/libpython$version.a, $python_libdirs, python_libdir) + python_libdir=$python_libdir/python$version/config + if test ! -r $python_libdir/libpython$version.a; then + python_libdir=no + fi + fi +fi + +PYTHONLIB=-L$python_libdir +kde_orig_LIBPYTHON=$LIBPYTHON +if test -z "$LIBPYTHON"; then + LIBPYTHON=-lpython$version +fi + +AC_FIND_FILE(python$version/copy.py, $python_libdirs, python_moddir) +python_moddir=$python_moddir/python$version +if test ! -r $python_moddir/copy.py; then + python_moddir=no +fi + +PYTHONMODDIR=$python_moddir + +AC_MSG_RESULT(header $python_incdir library $python_libdir modules $python_moddir) + +if test x$python_incdir = xno || test x$python_libdir = xno || test x$python_moddir = xno; then + LIBPYTHON=$kde_orig_LIBPYTHON + test "x$PYTHONLIB" = "x-Lno" && PYTHONLIB="" + test "x$PYTHONINC" = "x-Ino" && PYTHONINC="" + $2 +else + dnl Note: this test is very weak + kde_python_link_found=no + KDE_TRY_LINK_PYTHON(normal) + KDE_TRY_LINK_PYTHON(m, -lm) + KDE_TRY_LINK_PYTHON(pthread, $LIBPTHREAD) + KDE_TRY_LINK_PYTHON(tcl, -ltcl) + KDE_TRY_LINK_PYTHON(db2, -ldb2) + KDE_TRY_LINK_PYTHON(m_and_thread, [$LIBPTHREAD -lm]) + KDE_TRY_LINK_PYTHON(m_and_thread_and_util, [$LIBPTHREAD -lm -lutil]) + KDE_TRY_LINK_PYTHON(m_and_thread_and_db3, [$LIBPTHREAD -lm -ldb-3 -lutil]) + KDE_TRY_LINK_PYTHON(pthread_and_db3, [$LIBPTHREAD -ldb-3]) + KDE_TRY_LINK_PYTHON(m_and_thread_and_db, [$LIBPTHREAD -lm -ldb -ltermcap -lutil]) + KDE_TRY_LINK_PYTHON(pthread_and_dl, [$LIBPTHREAD $LIBDL -lutil -lreadline -lncurses -lm]) + KDE_TRY_LINK_PYTHON(pthread_and_panel_curses, [$LIBPTHREAD $LIBDL -lm -lpanel -lcurses]) + KDE_TRY_LINK_PYTHON(m_and_thread_and_db_special, [$LIBPTHREAD -lm -ldb -lutil], [], + [AC_MSG_WARN([it seems, Python depends on another library. + Please set LIBPYTHON to '-lpython$version -lotherlib' before calling configure to fix this + and contact the authors to let them know about this problem]) + ]) + + LIBPYTHON="$LIBPYTHON $LIBDL $LIBSOCKET" + AC_SUBST(PYTHONINC) + AC_SUBST(PYTHONLIB) + AC_SUBST(LIBPYTHON) + AC_SUBST(PYTHONMODDIR) + AC_DEFINE(HAVE_PYTHON, 1, [Define if you have the development files for python]) +fi + +]) + + +AC_DEFUN([KDE_CHECK_PYTHON], +[ + KDE_CHECK_PYTHON_INTERN("2.5", + [KDE_CHECK_PYTHON_INTERN("2.4", + [KDE_CHECK_PYTHON_INTERN("2.3", + [KDE_CHECK_PYTHON_INTERN("2.2", + [KDE_CHECK_PYTHON_INTERN("2.1", + [KDE_CHECK_PYTHON_INTERN("2.0", + [KDE_CHECK_PYTHON_INTERN($1, $2) ]) + ]) + ]) + ]) + ]) + ]) +]) + +AC_DEFUN([KDE_CHECK_STL], +[ + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + ac_save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="`echo $CXXFLAGS | sed s/-fno-exceptions//`" + + AC_MSG_CHECKING([if C++ programs can be compiled]) + AC_CACHE_VAL(kde_cv_stl_works, + [ + AC_TRY_COMPILE([ +#include +using namespace std; +],[ + string astring="Hallo Welt."; + astring.erase(0, 6); // now astring is "Welt" + return 0; +], kde_cv_stl_works=yes, + kde_cv_stl_works=no) +]) + + AC_MSG_RESULT($kde_cv_stl_works) + + if test "$kde_cv_stl_works" = "yes"; then + # back compatible + AC_DEFINE_UNQUOTED(HAVE_SGI_STL, 1, [Define if you have a STL implementation by SGI]) + else + AC_MSG_ERROR([Your Installation isn't able to compile simple C++ programs. +Check config.log for details - if you're using a Linux distribution you might miss +a package named similar to libstdc++-dev.]) + fi + + CXXFLAGS="$ac_save_CXXFLAGS" + AC_LANG_RESTORE +]) + +AC_DEFUN([AC_FIND_QIMGIO], + [AC_REQUIRE([AC_FIND_JPEG]) +AC_REQUIRE([KDE_CHECK_EXTRA_LIBS]) +AC_MSG_CHECKING([for qimgio]) +AC_CACHE_VAL(ac_cv_lib_qimgio, +[ +AC_LANG_SAVE +AC_LANG_CPLUSPLUS +ac_save_LIBS="$LIBS" +ac_save_CXXFLAGS="$CXXFLAGS" +LIBS="$all_libraries -lqimgio -lpng -lz $LIBJPEG $LIBQT" +CXXFLAGS="$CXXFLAGS -I$qt_incdir $all_includes" +AC_TRY_RUN(dnl +[ +#include +#include +int main() { + QString t = "hallo"; + t.fill('t'); + qInitImageIO(); +} +], + ac_cv_lib_qimgio=yes, + ac_cv_lib_qimgio=no, + ac_cv_lib_qimgio=no) +LIBS="$ac_save_LIBS" +CXXFLAGS="$ac_save_CXXFLAGS" +AC_LANG_RESTORE +])dnl +if eval "test \"`echo $ac_cv_lib_qimgio`\" = yes"; then + LIBQIMGIO="-lqimgio -lpng -lz $LIBJPEG" + AC_MSG_RESULT(yes) + AC_DEFINE_UNQUOTED(HAVE_QIMGIO, 1, [Define if you have the Qt extension qimgio available]) + AC_SUBST(LIBQIMGIO) +else + AC_MSG_RESULT(not found) +fi +]) + +AC_DEFUN([AM_DISABLE_LIBRARIES], +[ + AC_PROVIDE([AM_ENABLE_STATIC]) + AC_PROVIDE([AM_ENABLE_SHARED]) + enable_static=no + enable_shared=yes +]) + + +AC_DEFUN([AC_CHECK_UTMP_FILE], +[ + AC_MSG_CHECKING([for utmp file]) + + AC_CACHE_VAL(kde_cv_utmp_file, + [ + kde_cv_utmp_file=no + + for ac_file in \ + \ + /var/run/utmp \ + /var/adm/utmp \ + /etc/utmp \ + ; \ + do + if test -r "$ac_file"; then + kde_cv_utmp_file=$ac_file + break + fi + done + ]) + + if test "$kde_cv_utmp_file" != "no"; then + AC_DEFINE_UNQUOTED(UTMP, "$kde_cv_utmp_file", [Define the file for utmp entries]) + $1 + AC_MSG_RESULT($kde_cv_utmp_file) + else + $2 + AC_MSG_RESULT([non found]) + fi +]) + + +AC_DEFUN([KDE_CREATE_SUBDIRSLIST], +[ + +DO_NOT_COMPILE="$DO_NOT_COMPILE CVS debian bsd-port admin" +TOPSUBDIRS="" + +if test ! -s $srcdir/subdirs; then + dnl Note: Makefile.common creates subdirs, so this is just a fallback + files=`cd $srcdir && ls -1` + dirs=`for i in $files; do if test -d $i; then echo $i; fi; done` + for i in $dirs; do + echo $i >> $srcdir/subdirs + done +fi + +ac_topsubdirs= +if test -s $srcdir/inst-apps; then + ac_topsubdirs="`cat $srcdir/inst-apps`" +elif test -s $srcdir/subdirs; then + ac_topsubdirs="`cat $srcdir/subdirs`" +fi + +for i in $ac_topsubdirs; do + AC_MSG_CHECKING([if $i should be compiled]) + if test -d $srcdir/$i; then + install_it="yes" + for j in $DO_NOT_COMPILE; do + if test $i = $j; then + install_it="no" + fi + done + else + install_it="no" + fi + AC_MSG_RESULT($install_it) + vari=`echo $i | sed -e 's,[[-+.@]],_,g'` + if test $install_it = "yes"; then + TOPSUBDIRS="$TOPSUBDIRS $i" + eval "$vari""_SUBDIR_included=yes" + else + eval "$vari""_SUBDIR_included=no" + fi +done + +AC_SUBST(TOPSUBDIRS) +]) + +AC_DEFUN([KDE_CHECK_NAMESPACES], +[ +AC_MSG_CHECKING(whether C++ compiler supports namespaces) +AC_LANG_SAVE +AC_LANG_CPLUSPLUS +AC_TRY_COMPILE([ +], +[ +namespace Foo { + extern int i; + namespace Bar { + extern int i; + } +} + +int Foo::i = 0; +int Foo::Bar::i = 1; +],[ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_NAMESPACES) +], [ +AC_MSG_RESULT(no) +]) +AC_LANG_RESTORE +]) + +dnl ------------------------------------------------------------------------ +dnl Check for S_ISSOCK macro. Doesn't exist on Unix SCO. faure@kde.org +dnl ------------------------------------------------------------------------ +dnl +AC_DEFUN([AC_CHECK_S_ISSOCK], +[ +AC_MSG_CHECKING(for S_ISSOCK) +AC_CACHE_VAL(ac_cv_have_s_issock, +[ +AC_TRY_LINK( +[ +#include +], +[ +struct stat buff; +int b = S_ISSOCK( buff.st_mode ); +], +ac_cv_have_s_issock=yes, +ac_cv_have_s_issock=no) +]) +AC_MSG_RESULT($ac_cv_have_s_issock) +if test "$ac_cv_have_s_issock" = "yes"; then + AC_DEFINE_UNQUOTED(HAVE_S_ISSOCK, 1, [Define if sys/stat.h declares S_ISSOCK.]) +fi + +AH_VERBATIM(_ISSOCK, +[ +#ifndef HAVE_S_ISSOCK +#define HAVE_S_ISSOCK +#define S_ISSOCK(mode) (1==0) +#endif +]) + +]) + +dnl ------------------------------------------------------------------------ +dnl Check for MAXPATHLEN macro, defines KDEMAXPATHLEN. faure@kde.org +dnl ------------------------------------------------------------------------ +dnl +AC_DEFUN([AC_CHECK_KDEMAXPATHLEN], +[ +AC_MSG_CHECKING(for MAXPATHLEN) +AC_CACHE_VAL(ac_cv_maxpathlen, +[ +cat > conftest.$ac_ext < +#endif +#include +#include +#ifndef MAXPATHLEN +#define MAXPATHLEN 1024 +#endif + +KDE_HELLO MAXPATHLEN + +EOF + +ac_try="$ac_cpp conftest.$ac_ext 2>/dev/null | grep '^KDE_HELLO' >conftest.out" + +if AC_TRY_EVAL(ac_try) && test -s conftest.out; then + ac_cv_maxpathlen=`sed 's#KDE_HELLO ##' conftest.out` +else + ac_cv_maxpathlen=1024 +fi + +rm conftest.* + +]) +AC_MSG_RESULT($ac_cv_maxpathlen) +AC_DEFINE_UNQUOTED(KDEMAXPATHLEN,$ac_cv_maxpathlen, [Define a safe value for MAXPATHLEN] ) +]) + +AC_DEFUN([KDE_CHECK_HEADER], +[ + kde_safe_cppflags=$CPPFLAGS + CPPFLAGS="$CPPFLAGS $all_includes" + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + AC_CHECK_HEADER([$1], [$2], [$3], [$4]) + AC_LANG_RESTORE + CPPFLAGS=$kde_safe_cppflags +]) + +AC_DEFUN([KDE_CHECK_HEADERS], +[ + AH_CHECK_HEADERS([$1]) + AC_LANG_SAVE + kde_safe_cppflags=$CPPFLAGS + CPPFLAGS="$CPPFLAGS $all_includes" + AC_LANG_CPLUSPLUS + AC_CHECK_HEADERS([$1], [$2], [$3], [$4]) + CPPFLAGS=$kde_safe_cppflags + AC_LANG_RESTORE +]) + +AC_DEFUN([KDE_FAST_CONFIGURE], +[ + dnl makes configure fast (needs perl) + AC_ARG_ENABLE(fast-perl, AC_HELP_STRING([--disable-fast-perl],[disable fast Makefile generation (needs perl)]), + with_fast_perl=$enableval, with_fast_perl=yes) +]) + +AC_DEFUN([KDE_CONF_FILES], +[ + val= + if test -f $srcdir/configure.files ; then + val=`sed -e 's%^%\$(top_srcdir)/%' $srcdir/configure.files` + fi + CONF_FILES= + if test -n "$val" ; then + for i in $val ; do + CONF_FILES="$CONF_FILES $i" + done + fi + AC_SUBST(CONF_FILES) +])dnl + +dnl This sets the prefix, for arts and kdelibs +dnl Do NOT use in any other module. +dnl It only looks at --prefix, KDEDIR and falls back to /usr/local/kde +AC_DEFUN([KDE_SET_PREFIX_CORE], +[ + unset CDPATH + dnl make $KDEDIR the default for the installation + AC_PREFIX_DEFAULT(${KDEDIR:-/usr/local/kde}) + + if test "x$prefix" = "xNONE"; then + prefix=$ac_default_prefix + ac_configure_args="$ac_configure_args --prefix=$prefix" + fi + # And delete superfluous '/' to make compares easier + prefix=`echo "$prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'` + exec_prefix=`echo "$exec_prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'` + + kde_libs_prefix='$(prefix)' + kde_libs_htmldir='$(kde_htmldir)' + AC_SUBST(kde_libs_prefix) + AC_SUBST(kde_libs_htmldir) + KDE_FAST_CONFIGURE + KDE_CONF_FILES +]) + + +AC_DEFUN([KDE_SET_PREFIX], +[ + unset CDPATH + dnl We can't give real code to that macro, only a value. + dnl It only matters for --help, since we set the prefix in this function anyway. + AC_PREFIX_DEFAULT(${KDEDIR:-the kde prefix}) + + KDE_SET_DEFAULT_BINDIRS + if test "x$prefix" = "xNONE"; then + dnl no prefix given: look for kde-config in the PATH and deduce the prefix from it + KDE_FIND_PATH(kde-config, KDECONFIG, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(kde-config)], [], prepend) + else + dnl prefix given: look for kde-config, preferrably in prefix, otherwise in PATH + kde_save_PATH="$PATH" + PATH="$exec_prefix/bin:$prefix/bin:$PATH" + KDE_FIND_PATH(kde-config, KDECONFIG, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(kde-config)], [], prepend) + PATH="$kde_save_PATH" + fi + + kde_libs_prefix=`$KDECONFIG --prefix` + if test -z "$kde_libs_prefix" || test ! -x "$kde_libs_prefix"; then + AC_MSG_ERROR([$KDECONFIG --prefix outputed the non existant prefix '$kde_libs_prefix' for kdelibs. + This means it has been moved since you installed it. + This won't work. Please recompile kdelibs for the new prefix. + ]) + fi + kde_libs_htmldir=`$KDECONFIG --install html --expandvars` + + AC_MSG_CHECKING([where to install]) + if test "x$prefix" = "xNONE"; then + prefix=$kde_libs_prefix + AC_MSG_RESULT([$prefix (as returned by kde-config)]) + else + dnl --prefix was given. Compare prefixes and warn (in configure.in.bot.end) if different + given_prefix=$prefix + AC_MSG_RESULT([$prefix (as requested)]) + fi + + # And delete superfluous '/' to make compares easier + prefix=`echo "$prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'` + exec_prefix=`echo "$exec_prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'` + given_prefix=`echo "$given_prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'` + + AC_SUBST(KDECONFIG) + AC_SUBST(kde_libs_prefix) + AC_SUBST(kde_libs_htmldir) + + KDE_FAST_CONFIGURE + KDE_CONF_FILES +]) + +pushdef([AC_PROG_INSTALL], +[ + dnl our own version, testing for a -p flag + popdef([AC_PROG_INSTALL]) + dnl as AC_PROG_INSTALL works as it works we first have + dnl to save if the user didn't specify INSTALL, as the + dnl autoconf one overwrites INSTALL and we have no chance to find + dnl out afterwards + test -n "$INSTALL" && kde_save_INSTALL_given=$INSTALL + test -n "$INSTALL_PROGRAM" && kde_save_INSTALL_PROGRAM_given=$INSTALL_PROGRAM + test -n "$INSTALL_SCRIPT" && kde_save_INSTALL_SCRIPT_given=$INSTALL_SCRIPT + AC_PROG_INSTALL + + if test -z "$kde_save_INSTALL_given" ; then + # OK, user hasn't given any INSTALL, autoconf found one for us + # now we test, if it supports the -p flag + AC_MSG_CHECKING(for -p flag to install) + rm -f confinst.$$.* > /dev/null 2>&1 + echo "Testtest" > confinst.$$.orig + ac_res=no + if ${INSTALL} -p confinst.$$.orig confinst.$$.new > /dev/null 2>&1 ; then + if test -f confinst.$$.new ; then + # OK, -p seems to do no harm to install + INSTALL="${INSTALL} -p" + ac_res=yes + fi + fi + rm -f confinst.$$.* + AC_MSG_RESULT($ac_res) + fi + dnl the following tries to resolve some signs and wonders coming up + dnl with different autoconf/automake versions + dnl e.g.: + dnl *automake 1.4 install-strip sets A_M_INSTALL_PROGRAM_FLAGS to -s + dnl and has INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(A_M_INSTALL_PROGRAM_FLAGS) + dnl it header-vars.am, so there the actual INSTALL_PROGRAM gets the -s + dnl *automake 1.4a (and above) use INSTALL_STRIP_FLAG and only has + dnl INSTALL_PROGRAM = @INSTALL_PROGRAM@ there, but changes the + dnl install-@DIR@PROGRAMS targets to explicitly use that flag + dnl *autoconf 2.13 is dumb, and thinks it can use INSTALL_PROGRAM as + dnl INSTALL_SCRIPT, which breaks with automake <= 1.4 + dnl *autoconf >2.13 (since 10.Apr 1999) has not that failure + dnl *sometimes KDE does not use the install-@DIR@PROGRAM targets from + dnl automake (due to broken Makefile.am or whatever) to install programs, + dnl and so does not see the -s flag in automake > 1.4 + dnl to clean up that mess we: + dnl +set INSTALL_PROGRAM to use INSTALL_STRIP_FLAG + dnl which cleans KDE's program with automake > 1.4; + dnl +set INSTALL_SCRIPT to only use INSTALL, to clean up autoconf's problems + dnl with automake<=1.4 + dnl note that dues to this sometimes two '-s' flags are used (if KDE + dnl properly uses install-@DIR@PROGRAMS, but I don't care + dnl + dnl And to all this comes, that I even can't write in comments variable + dnl names used by automake, because it is so stupid to think I wanted to + dnl _use_ them, therefor I have written A_M_... instead of AM_ + dnl hmm, I wanted to say something ... ahh yes: Arghhh. + + if test -z "$kde_save_INSTALL_PROGRAM_given" ; then + INSTALL_PROGRAM='${INSTALL} $(INSTALL_STRIP_FLAG)' + fi + if test -z "$kde_save_INSTALL_SCRIPT_given" ; then + INSTALL_SCRIPT='${INSTALL}' + fi +])dnl + +AC_DEFUN([KDE_LANG_CPLUSPLUS], +[AC_LANG_CPLUSPLUS +ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&AC_FD_CC' +pushdef([AC_LANG_CPLUSPLUS], [popdef([AC_LANG_CPLUSPLUS]) KDE_LANG_CPLUSPLUS]) +]) + +pushdef([AC_LANG_CPLUSPLUS], +[popdef([AC_LANG_CPLUSPLUS]) +KDE_LANG_CPLUSPLUS +]) + +AC_DEFUN([KDE_CHECK_LONG_LONG], +[ +AC_MSG_CHECKING(for long long) +AC_CACHE_VAL(kde_cv_c_long_long, +[ + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + AC_TRY_LINK([], [ + long long foo = 0; + foo = foo+1; + ], + kde_cv_c_long_long=yes, kde_cv_c_long_long=no) + AC_LANG_RESTORE +]) +AC_MSG_RESULT($kde_cv_c_long_long) +if test "$kde_cv_c_long_long" = yes; then + AC_DEFINE(HAVE_LONG_LONG, 1, [Define if you have long long as datatype]) +fi +]) + +AC_DEFUN([KDE_CHECK_LIB], +[ + kde_save_LDFLAGS="$LDFLAGS" + dnl AC_CHECK_LIB modifies LIBS, so save it here + kde_save_LIBS="$LIBS" + LDFLAGS="$LDFLAGS $all_libraries" + case $host_os in + aix*) LDFLAGS="-brtl $LDFLAGS" + test "$GCC" = yes && LDFLAGS="-Wl,$LDFLAGS" + ;; + esac + AC_CHECK_LIB($1, $2, $3, $4, $5) + LDFLAGS="$kde_save_LDFLAGS" + LIBS="$kde_save_LIBS" +]) + +AC_DEFUN([KDE_JAVA_PREFIX], +[ + dir=`dirname "$1"` + base=`basename "$1"` + list=`ls -1 $dir 2> /dev/null` + for entry in $list; do + if test -d $dir/$entry/bin; then + case $entry in + $base) + javadirs="$javadirs $dir/$entry/bin" + ;; + esac + elif test -d $dir/$entry/jre/bin; then + case $entry in + $base) + javadirs="$javadirs $dir/$entry/jre/bin" + ;; + esac + fi + done +]) + +dnl KDE_CHEC_JAVA_DIR(onlyjre) +AC_DEFUN([KDE_CHECK_JAVA_DIR], +[ + +AC_ARG_WITH(java, +AC_HELP_STRING([--with-java=javadir],[use java installed in javadir, --without-java disables]), +[ ac_java_dir=$withval +], ac_java_dir="" +) + +AC_MSG_CHECKING([for Java]) + +dnl at this point ac_java_dir is either a dir, 'no' to disable, or '' to say look in $PATH +if test "x$ac_java_dir" = "xno"; then + kde_java_bindir=no + kde_java_includedir=no + kde_java_libjvmdir=no + kde_java_libgcjdir=no + kde_java_libhpidir=no +else + if test "x$ac_java_dir" = "x"; then + + + dnl No option set -> collect list of candidate paths + if test -n "$JAVA_HOME"; then + KDE_JAVA_PREFIX($JAVA_HOME) + fi + KDE_JAVA_PREFIX(/usr/j2se) + KDE_JAVA_PREFIX(/usr/lib/j2se) + KDE_JAVA_PREFIX(/usr/j*dk*) + KDE_JAVA_PREFIX(/usr/lib/j*dk*) + KDE_JAVA_PREFIX(/opt/j*sdk*) + KDE_JAVA_PREFIX(/usr/lib/java*) + KDE_JAVA_PREFIX(/usr/java*) + KDE_JAVA_PREFIX(/usr/java/j*dk*) + KDE_JAVA_PREFIX(/usr/java/j*re*) + KDE_JAVA_PREFIX(/usr/lib/SunJava2*) + KDE_JAVA_PREFIX(/usr/lib/SunJava*) + KDE_JAVA_PREFIX(/usr/lib/IBMJava2*) + KDE_JAVA_PREFIX(/usr/lib/IBMJava*) + KDE_JAVA_PREFIX(/opt/java*) + + kde_cv_path="NONE" + kde_save_IFS=$IFS + IFS=':' + for dir in $PATH; do + if test -d "$dir"; then + javadirs="$javadirs $dir" + fi + done + IFS=$kde_save_IFS + jredirs= + + dnl Now javadirs contains a list of paths that exist, all ending with bin/ + for dir in $javadirs; do + dnl Check for the java executable + if test -x "$dir/java"; then + sane_path=$(cd $dir; /bin/pwd) + dnl And also check for a libjvm.so somewhere under there + dnl Since we have to go to the parent dir, /usr/bin is excluded, /usr is too big. + if test "$sane_path" != "/usr/bin"; then + libjvmdir=`find $dir/.. -name libjvm.so | sed 's,libjvm.so,,'|head -n 1` + if test ! -f $libjvmdir/libjvm.so; then continue; fi + jredirs="$jredirs $dir" + fi + fi + done + + dnl Now jredirs contains a reduced list, of paths where both java and ../**/libjvm.so was found + JAVAC= + JAVA= + kde_java_bindir=no + for dir in $jredirs; do + JAVA="$dir/java" + kde_java_bindir=$dir + if test -x "$dir/javac"; then + JAVAC="$dir/javac" + break + fi + done + + if test -n "$JAVAC"; then + dnl this substitution might not work - well, we test for jni.h below + kde_java_includedir=`echo $JAVAC | sed -e 's,bin/javac$,include/,'` + else + kde_java_includedir=no + fi + else + dnl config option set + kde_java_bindir=$ac_java_dir/bin + if test -x $ac_java_dir/bin/java && test ! -x $ac_java_dir/bin/javac; then + kde_java_includedir=no + else + kde_java_includedir=$ac_java_dir/include + fi + fi +fi + +dnl At this point kde_java_bindir and kde_java_includedir are either set or "no" +if test "x$kde_java_bindir" != "xno"; then + + dnl Look for libjvm.so + kde_java_libjvmdir=`find $kde_java_bindir/.. -name libjvm.so | sed 's,libjvm.so,,'|head -n 1` + dnl Look for libgcj.so + kde_java_libgcjdir=`find $kde_java_bindir/.. -name libgcj.so | sed 's,libgcj.so,,'|head -n 1` + dnl Look for libhpi.so and avoid green threads + kde_java_libhpidir=`find $kde_java_bindir/.. -name libhpi.so | grep -v green | sed 's,libhpi.so,,' | head -n 1` + + dnl Now check everything's fine under there + dnl the include dir is our flag for having the JDK + if test -d "$kde_java_includedir"; then + if test ! -x "$kde_java_bindir/javac"; then + AC_MSG_ERROR([javac not found under $kde_java_bindir - it seems you passed a wrong --with-java.]) + fi + if test ! -x "$kde_java_bindir/javah"; then + AC_MSG_ERROR([javah not found under $kde_java_bindir. javac was found though! Use --with-java or --without-java.]) + fi + if test ! -x "$kde_java_bindir/jar"; then + AC_MSG_ERROR([jar not found under $kde_java_bindir. javac was found though! Use --with-java or --without-java.]) + fi + if test ! -r "$kde_java_includedir/jni.h"; then + AC_MSG_ERROR([jni.h not found under $kde_java_includedir. Use --with-java or --without-java.]) + fi + + jni_includes="-I$kde_java_includedir" + dnl Strange thing, jni.h requires jni_md.h which is under genunix here.. + dnl and under linux here.. + + dnl not needed for gcj + + if test "x$kde_java_libgcjdir" = "x"; then + test -d "$kde_java_includedir/linux" && jni_includes="$jni_includes -I$kde_java_includedir/linux" + test -d "$kde_java_includedir/solaris" && jni_includes="$jni_includes -I$kde_java_includedir/solaris" + test -d "$kde_java_includedir/genunix" && jni_includes="$jni_includes -I$kde_java_includedir/genunix" + fi + + else + JAVAC= + jni_includes= + fi + + if test "x$kde_java_libgcjdir" = "x"; then + if test ! -r "$kde_java_libjvmdir/libjvm.so"; then + AC_MSG_ERROR([libjvm.so not found under $kde_java_libjvmdir. Use --without-java.]) + fi + else + if test ! -r "$kde_java_libgcjdir/libgcj.so"; then + AC_MSG_ERROR([libgcj.so not found under $kde_java_libgcjdir. Use --without-java.]) + fi + fi + + if test ! -x "$kde_java_bindir/java"; then + AC_MSG_ERROR([java not found under $kde_java_bindir. javac was found though! Use --with-java or --without-java.]) + fi + + dnl not needed for gcj compile + + if test "x$kde_java_libgcjdir" = "x"; then + if test ! -r "$kde_java_libhpidir/libhpi.so"; then + AC_MSG_ERROR([libhpi.so not found under $kde_java_libhpidir. Use --without-java.]) + fi + fi + + if test -n "$jni_includes"; then + dnl Check for JNI version + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + ac_cxxflags_safe="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS $all_includes $jni_includes" + + AC_TRY_COMPILE([ + #include + ], + [ + #ifndef JNI_VERSION_1_2 + Syntax Error + #endif + ],[ kde_jni_works=yes ], + [ kde_jni_works=no ]) + + if test $kde_jni_works = no; then + AC_MSG_ERROR([Incorrect version of $kde_java_includedir/jni.h. + You need to have Java Development Kit (JDK) version 1.2. + + Use --with-java to specify another location. + Use --without-java to configure without java support. + Or download a newer JDK and try again. + See e.g. http://java.sun.com/products/jdk/1.2 ]) + fi + + CXXFLAGS="$ac_cxxflags_safe" + AC_LANG_RESTORE + + dnl All tests ok, inform and subst the variables + + JAVAC=$kde_java_bindir/javac + JAVAH=$kde_java_bindir/javah + JAR=$kde_java_bindir/jar + AC_DEFINE_UNQUOTED(PATH_JAVA, "$kde_java_bindir/java", [Define where your java executable is]) + if test "x$kde_java_libgcjdir" = "x"; then + JVMLIBS="-L$kde_java_libjvmdir -ljvm -L$kde_java_libhpidir -lhpi" + else + JVMLIBS="-L$kde_java_libgcjdir -lgcj" + fi + AC_MSG_RESULT([java JDK in $kde_java_bindir]) + + else + AC_DEFINE_UNQUOTED(PATH_JAVA, "$kde_java_bindir/java", [Define where your java executable is]) + AC_MSG_RESULT([java JRE in $kde_java_bindir]) + fi +elif test -d "/Library/Java/Home"; then + kde_java_bindir="/Library/Java/Home/bin" + jni_includes="-I/Library/Java/Home/include" + + JAVAC=$kde_java_bindir/javac + JAVAH=$kde_java_bindir/javah + JAR=$kde_java_bindir/jar + JVMLIBS="-Wl,-framework,JavaVM" + + AC_DEFINE_UNQUOTED(PATH_JAVA, "$kde_java_bindir/java", [Define where your java executable is]) + AC_MSG_RESULT([Apple Java Framework]) +else + AC_MSG_RESULT([none found]) +fi + +AC_SUBST(JAVAC) +AC_SUBST(JAVAH) +AC_SUBST(JAR) +AC_SUBST(JVMLIBS) +AC_SUBST(jni_includes) + +# for backward compat +kde_cv_java_includedir=$kde_java_includedir +kde_cv_java_bindir=$kde_java_bindir +]) + +dnl this is a redefinition of autoconf 2.5x's AC_FOREACH. +dnl When the argument list becomes big, as in KDE for AC_OUTPUT in +dnl big packages, m4_foreach is dog-slow. So use our own version of +dnl it. (matz@kde.org) +m4_define([mm_foreach], +[m4_pushdef([$1])_mm_foreach($@)m4_popdef([$1])]) +m4_define([mm_car], [[$1]]) +m4_define([mm_car2], [[$@]]) +m4_define([_mm_foreach], +[m4_if(m4_quote($2), [], [], + [m4_define([$1], mm_car($2))$3[]_mm_foreach([$1], + mm_car2(m4_shift($2)), + [$3])])]) +m4_define([AC_FOREACH], +[mm_foreach([$1], m4_split(m4_normalize([$2])), [$3])]) + +AC_DEFUN([KDE_NEED_FLEX], +[ +kde_libs_safe=$LIBS +LIBS="$LIBS $USER_LDFLAGS" +AM_PROG_LEX +LIBS=$kde_libs_safe +if test -z "$LEXLIB"; then + AC_MSG_ERROR([You need to have flex installed.]) +fi +AC_SUBST(LEXLIB) +]) + +AC_DEFUN([AC_PATH_QTOPIA], +[ + dnl TODO: use AC_CACHE_VAL + + if test -z "$1"; then + qtopia_minver_maj=1 + qtopia_minver_min=5 + qtopia_minver_pat=0 + else + qtopia_minver_maj=`echo "$1" | sed -e "s/^\(.*\)\..*\..*$/\1/"` + qtopia_minver_min=`echo "$1" | sed -e "s/^.*\.\(.*\)\..*$/\1/"` + qtopia_minver_pat=`echo "$1" | sed -e "s/^.*\..*\.\(.*\)$/\1/"` + fi + + qtopia_minver="$qtopia_minver_maj$qtopia_minver_min$qtopia_minver_pat" + qtopia_minverstr="$qtopia_minver_maj.$qtopia_minver_min.$qtopia_minver_pat" + + AC_REQUIRE([AC_PATH_QT]) + + AC_MSG_CHECKING([for Qtopia]) + + LIB_QTOPIA="-lqpe" + AC_SUBST(LIB_QTOPIA) + + kde_qtopia_dirs="$QPEDIR /opt/Qtopia" + + ac_qtopia_incdir=NO + + AC_ARG_WITH(qtopia-dir, + AC_HELP_STRING([--with-qtopia-dir=DIR],[where the root of Qtopia is installed]), + [ ac_qtopia_incdir="$withval"/include] ) + + qtopia_incdirs="" + for dir in $kde_qtopia_dirs; do + qtopia_incdirs="$qtopia_incdirs $dir/include" + done + + if test ! "$ac_qtopia_incdir" = "NO"; then + qtopia_incdirs="$ac_qtopia_incdir $qtopia_incdirs" + fi + + qtopia_incdir="" + AC_FIND_FILE(qpe/qpeapplication.h, $qtopia_incdirs, qtopia_incdir) + ac_qtopia_incdir="$qtopia_incdir" + + if test -z "$qtopia_incdir"; then + AC_MSG_ERROR([Cannot find Qtopia headers. Please check your installation.]) + fi + + qtopia_ver_maj=`cat $qtopia_incdir/qpe/version.h | sed -n -e 's,.*QPE_VERSION "\(.*\)\..*\..*".*,\1,p'`; + qtopia_ver_min=`cat $qtopia_incdir/qpe/version.h | sed -n -e 's,.*QPE_VERSION ".*\.\(.*\)\..*".*,\1,p'`; + qtopia_ver_pat=`cat $qtopia_incdir/qpe/version.h | sed -n -e 's,.*QPE_VERSION ".*\..*\.\(.*\)".*,\1,p'`; + + qtopia_ver="$qtopia_ver_maj$qtopia_ver_min$qtopia_ver_pat" + qtopia_verstr="$qtopia_ver_maj.$qtopia_ver_min.$qtopia_ver_pat" + if test "$qtopia_ver" -lt "$qtopia_minver"; then + AC_MSG_ERROR([found Qtopia version $qtopia_verstr but version $qtopia_minverstr +is required.]) + fi + + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + + ac_cxxflags_safe="$CXXFLAGS" + ac_ldflags_safe="$LDFLAGS" + ac_libs_safe="$LIBS" + + CXXFLAGS="$CXXFLAGS -I$qtopia_incdir $all_includes" + LDFLAGS="$LDFLAGS $QT_LDFLAGS $all_libraries $USER_LDFLAGS $KDE_MT_LDFLAGS" + LIBS="$LIBS $LIB_QTOPIA $LIBQT" + + cat > conftest.$ac_ext < +#include + +int main( int argc, char **argv ) +{ + QPEApplication app( argc, argv ); + return 0; +} +EOF + + if AC_TRY_EVAL(ac_link) && test -s conftest; then + rm -f conftest* + else + rm -f conftest* + AC_MSG_ERROR([Cannot link small Qtopia Application. For more details look at +the end of config.log]) + fi + + CXXFLAGS="$ac_cxxflags_safe" + LDFLAGS="$ac_ldflags_safe" + LIBS="$ac_libs_safe" + + AC_LANG_RESTORE + + QTOPIA_INCLUDES="-I$qtopia_incdir" + AC_SUBST(QTOPIA_INCLUDES) + + AC_MSG_RESULT([found version $qtopia_verstr with headers at $qtopia_incdir]) +]) + + +AC_DEFUN([KDE_INIT_DOXYGEN], +[ +AC_MSG_CHECKING([for Qt docs]) +kde_qtdir= +if test "${with_qt_dir+set}" = set; then + kde_qtdir="$with_qt_dir" +fi + +AC_FIND_FILE(qsql.html, [ $kde_qtdir/doc/html $QTDIR/doc/html /usr/share/doc/packages/qt3/html /usr/lib/qt/doc /usr/lib/qt3/doc /usr/lib/qt3/doc/html /usr/doc/qt3/html /usr/doc/qt3 /usr/share/doc/qt3-doc /usr/share/qt3/doc/html /usr/X11R6/share/doc/qt/html ], QTDOCDIR) +AC_MSG_RESULT($QTDOCDIR) + +AC_SUBST(QTDOCDIR) + +KDE_FIND_PATH(dot, DOT, [], []) +if test -n "$DOT"; then + KDE_HAVE_DOT="YES" +else + KDE_HAVE_DOT="NO" +fi +AC_SUBST(KDE_HAVE_DOT) +KDE_FIND_PATH(doxygen, DOXYGEN, [], []) +AC_SUBST(DOXYGEN) + +DOXYGEN_PROJECT_NAME="$1" +DOXYGEN_PROJECT_NUMBER="$2" +AC_SUBST(DOXYGEN_PROJECT_NAME) +AC_SUBST(DOXYGEN_PROJECT_NUMBER) + +KDE_HAS_DOXYGEN=no +if test -n "$DOXYGEN" && test -x "$DOXYGEN" && test -f $QTDOCDIR/qsql.html; then + KDE_HAS_DOXYGEN=yes +fi +AC_SUBST(KDE_HAS_DOXYGEN) + +]) + + +AC_DEFUN([AC_FIND_BZIP2], +[ +AC_MSG_CHECKING([for bzDecompress in libbz2]) +AC_CACHE_VAL(ac_cv_lib_bzip2, +[ +AC_LANG_SAVE +AC_LANG_CPLUSPLUS +kde_save_LIBS="$LIBS" +LIBS="$all_libraries $USER_LDFLAGS -lbz2 $LIBSOCKET" +kde_save_CXXFLAGS="$CXXFLAGS" +CXXFLAGS="$CXXFLAGS $all_includes $USER_INCLUDES" +AC_TRY_LINK(dnl +[ +#define BZ_NO_STDIO +#include +], + [ bz_stream s; (void) bzDecompress(&s); ], + eval "ac_cv_lib_bzip2='-lbz2'", + eval "ac_cv_lib_bzip2=no") +LIBS="$kde_save_LIBS" +CXXFLAGS="$kde_save_CXXFLAGS" +AC_LANG_RESTORE +])dnl +AC_MSG_RESULT($ac_cv_lib_bzip2) + +if test ! "$ac_cv_lib_bzip2" = no; then + BZIP2DIR=bzip2 + + LIBBZ2="$ac_cv_lib_bzip2" + AC_SUBST(LIBBZ2) + +else + + cxx_shared_flag= + ld_shared_flag= + KDE_CHECK_COMPILER_FLAG(shared, [ + ld_shared_flag="-shared" + ]) + KDE_CHECK_COMPILER_FLAG(fPIC, [ + cxx_shared_flag="-fPIC" + ]) + + AC_MSG_CHECKING([for BZ2_bzDecompress in (shared) libbz2]) + AC_CACHE_VAL(ac_cv_lib_bzip2_prefix, + [ + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + kde_save_LIBS="$LIBS" + LIBS="$all_libraries $USER_LDFLAGS $ld_shared_flag -lbz2 $LIBSOCKET" + kde_save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CFLAGS $cxx_shared_flag $all_includes $USER_INCLUDES" + + AC_TRY_LINK(dnl + [ + #define BZ_NO_STDIO + #include + ], + [ bz_stream s; (void) BZ2_bzDecompress(&s); ], + eval "ac_cv_lib_bzip2_prefix='-lbz2'", + eval "ac_cv_lib_bzip2_prefix=no") + LIBS="$kde_save_LIBS" + CXXFLAGS="$kde_save_CXXFLAGS" + AC_LANG_RESTORE + ])dnl + + AC_MSG_RESULT($ac_cv_lib_bzip2_prefix) + + if test ! "$ac_cv_lib_bzip2_prefix" = no; then + BZIP2DIR=bzip2 + + LIBBZ2="$ac_cv_lib_bzip2_prefix" + AC_SUBST(LIBBZ2) + + AC_DEFINE(NEED_BZ2_PREFIX, 1, [Define if the libbz2 functions need the BZ2_ prefix]) + dnl else, we just ignore this + fi + +fi +AM_CONDITIONAL(include_BZIP2, test -n "$BZIP2DIR") +]) + +dnl ------------------------------------------------------------------------ +dnl Try to find the SSL headers and libraries. +dnl $(SSL_LDFLAGS) will be -Lsslliblocation (if needed) +dnl and $(SSL_INCLUDES) will be -Isslhdrlocation (if needed) +dnl ------------------------------------------------------------------------ +dnl +AC_DEFUN([KDE_CHECK_SSL], +[ +LIBSSL="-lssl -lcrypto" +AC_REQUIRE([KDE_CHECK_LIB64]) + +ac_ssl_includes=NO ac_ssl_libraries=NO +ssl_libraries="" +ssl_includes="" +AC_ARG_WITH(ssl-dir, + AC_HELP_STRING([--with-ssl-dir=DIR],[where the root of OpenSSL is installed]), + [ ac_ssl_includes="$withval"/include + ac_ssl_libraries="$withval"/lib$kdelibsuff + ]) + +want_ssl=yes +AC_ARG_WITH(ssl, + AC_HELP_STRING([--without-ssl],[disable SSL checks]), + [want_ssl=$withval]) + +if test $want_ssl = yes; then + +AC_MSG_CHECKING(for OpenSSL) + +AC_CACHE_VAL(ac_cv_have_ssl, +[#try to guess OpenSSL locations + + ssl_incdirs="/usr/include /usr/local/include /usr/ssl/include /usr/local/ssl/include $prefix/include $kde_extra_includes" + ssl_incdirs="$ac_ssl_includes $ssl_incdirs" + AC_FIND_FILE(openssl/ssl.h, $ssl_incdirs, ssl_incdir) + ac_ssl_includes="$ssl_incdir" + + ssl_libdirs="/usr/lib$kdelibsuff /usr/local/lib$kdelibsuff /usr/ssl/lib$kdelibsuff /usr/local/ssl/lib$kdelibsuff $libdir $prefix/lib$kdelibsuff $exec_prefix/lib$kdelibsuff $kde_extra_libs" + if test ! "$ac_ssl_libraries" = "NO"; then + ssl_libdirs="$ac_ssl_libraries $ssl_libdirs" + fi + + test=NONE + ssl_libdir=NONE + for dir in $ssl_libdirs; do + try="ls -1 $dir/libssl*" + if test=`eval $try 2> /dev/null`; then ssl_libdir=$dir; break; else echo "tried $dir" >&AC_FD_CC ; fi + done + + ac_ssl_libraries="$ssl_libdir" + + ac_ldflags_safe="$LDFLAGS" + ac_libs_safe="$LIBS" + + LDFLAGS="$LDFLAGS -L$ssl_libdir $all_libraries" + LIBS="$LIBS $LIBSSL -lRSAglue -lrsaref" + + AC_TRY_LINK(,void RSAPrivateEncrypt(void);RSAPrivateEncrypt();, + ac_ssl_rsaref="yes" + , + ac_ssl_rsaref="no" + ) + + LDFLAGS="$ac_ldflags_safe" + LIBS="$ac_libs_safe" + + if test "$ac_ssl_includes" = NO || test "$ac_ssl_libraries" = NO; then + have_ssl=no + else + have_ssl=yes; + fi + + ]) + + eval "$ac_cv_have_ssl" + + AC_MSG_RESULT([libraries $ac_ssl_libraries, headers $ac_ssl_includes]) + + AC_MSG_CHECKING([whether OpenSSL uses rsaref]) + AC_MSG_RESULT($ac_ssl_rsaref) + + AC_MSG_CHECKING([for easter eggs]) + AC_MSG_RESULT([none found]) + +else + have_ssl=no +fi + +if test "$have_ssl" = yes; then + AC_MSG_CHECKING(for OpenSSL version) + dnl Check for SSL version + AC_CACHE_VAL(ac_cv_ssl_version, + [ + + cat >conftest.$ac_ext < +#include + int main() { + +#ifndef OPENSSL_VERSION_NUMBER + printf("ssl_version=\\"error\\"\n"); +#else + if (OPENSSL_VERSION_NUMBER < 0x00906000) + printf("ssl_version=\\"old\\"\n"); + else + printf("ssl_version=\\"ok\\"\n"); +#endif + return (0); + } +EOF + + ac_save_CPPFLAGS=$CPPFLAGS + if test "$ac_ssl_includes" != "/usr/include"; then + CPPFLAGS="$CPPFLAGS -I$ac_ssl_includes" + fi + + if AC_TRY_EVAL(ac_link); then + + if eval `./conftest 2>&5`; then + if test $ssl_version = error; then + AC_MSG_ERROR([$ssl_incdir/openssl/opensslv.h doesn't define OPENSSL_VERSION_NUMBER !]) + else + if test $ssl_version = old; then + AC_MSG_WARN([OpenSSL version too old. Upgrade to 0.9.6 at least, see http://www.openssl.org. SSL support disabled.]) + have_ssl=no + fi + fi + ac_cv_ssl_version="ssl_version=$ssl_version" + else + AC_MSG_ERROR([Your system couldn't run a small SSL test program. + Check config.log, and if you can't figure it out, send a mail to + David Faure , attaching your config.log]) + fi + + else + AC_MSG_ERROR([Your system couldn't link a small SSL test program. + Check config.log, and if you can't figure it out, send a mail to + David Faure , attaching your config.log]) + fi + CPPFLAGS=$ac_save_CPPFLAGS + + ]) + + eval "$ac_cv_ssl_version" + AC_MSG_RESULT($ssl_version) +fi + +if test "$have_ssl" != yes; then + LIBSSL=""; +else + AC_DEFINE(HAVE_SSL, 1, [If we are going to use OpenSSL]) + ac_cv_have_ssl="have_ssl=yes \ + ac_ssl_includes=$ac_ssl_includes ac_ssl_libraries=$ac_ssl_libraries ac_ssl_rsaref=$ac_ssl_rsaref" + + + ssl_libraries="$ac_ssl_libraries" + ssl_includes="$ac_ssl_includes" + + if test "$ac_ssl_rsaref" = yes; then + LIBSSL="-lssl -lcrypto -lRSAglue -lrsaref" + fi + + if test $ssl_version = "old"; then + AC_DEFINE(HAVE_OLD_SSL_API, 1, [Define if you have OpenSSL < 0.9.6]) + fi +fi + +SSL_INCLUDES= + +if test "$ssl_includes" = "/usr/include"; then + if test -f /usr/kerberos/include/krb5.h; then + SSL_INCLUDES="-I/usr/kerberos/include" + fi +elif test "$ssl_includes" != "/usr/local/include" && test -n "$ssl_includes"; then + SSL_INCLUDES="-I$ssl_includes" +fi + +if test "$ssl_libraries" = "/usr/lib" || test "$ssl_libraries" = "/usr/local/lib" || test -z "$ssl_libraries" || test "$ssl_libraries" = "NONE"; then + SSL_LDFLAGS="" +else + SSL_LDFLAGS="-L$ssl_libraries -R$ssl_libraries" +fi + +AC_SUBST(SSL_INCLUDES) +AC_SUBST(SSL_LDFLAGS) +AC_SUBST(LIBSSL) +]) + +AC_DEFUN([KDE_CHECK_STRLCPY], +[ + AC_REQUIRE([AC_CHECK_STRLCAT]) + AC_REQUIRE([AC_CHECK_STRLCPY]) + AC_CHECK_SIZEOF(size_t) + AC_CHECK_SIZEOF(unsigned long) + + AC_MSG_CHECKING([sizeof size_t == sizeof unsigned long]) + AC_TRY_COMPILE(,[ + #if SIZEOF_SIZE_T != SIZEOF_UNSIGNED_LONG + choke me + #endif + ],AC_MSG_RESULT([yes]),[ + AC_MSG_RESULT(no) + AC_MSG_ERROR([ + Apparently on your system our assumption sizeof size_t == sizeof unsigned long + does not apply. Please mail kde-devel@kde.org with a description of your system! + ]) + ]) +]) + +AC_DEFUN([KDE_CHECK_BINUTILS], +[ + AC_MSG_CHECKING([if ld supports unversioned version maps]) + + kde_save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -Wl,--version-script=conftest.map" + echo "{ local: extern \"C++\" { foo }; };" > conftest.map + AC_TRY_LINK([int foo;], +[ +#ifdef __INTEL_COMPILER +icc apparently does not support libtools version-info and version-script +at the same time. Dunno where the bug is, but until somebody figured out, +better disable the optional version scripts. +#endif + + foo = 42; +], kde_supports_versionmaps=yes, kde_supports_versionmaps=no) + LDFLAGS="$kde_save_LDFLAGS" + rm -f conftest.map + AM_CONDITIONAL(include_VERSION_SCRIPT, + [test "$kde_supports_versionmaps" = "yes" && test "$kde_use_debug_code" = "no"]) + + AC_MSG_RESULT($kde_supports_versionmaps) +]) + +AC_DEFUN([AM_PROG_OBJC],[ +AC_CHECK_PROGS(OBJC, gcc, gcc) +test -z "$OBJC" && AC_MSG_ERROR([no acceptable objective-c gcc found in \$PATH]) +if test "x${OBJCFLAGS-unset}" = xunset; then + OBJCFLAGS="-g -O2" +fi +AC_SUBST(OBJCFLAGS) +_AM_IF_OPTION([no-dependencies],, [_AM_DEPENDENCIES(OBJC)]) +]) + +AC_DEFUN([KDE_CHECK_PERL], +[ + KDE_FIND_PATH(perl, PERL, [$bindir $exec_prefix/bin $prefix/bin], [ + AC_MSG_ERROR([No Perl found in your $PATH. +We need perl to generate some code.]) + ]) + AC_SUBST(PERL) +]) + +AC_DEFUN([KDE_CHECK_LARGEFILE], +[ +AC_SYS_LARGEFILE +if test "$ac_cv_sys_file_offset_bits" != no; then + CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits" +fi + +if test "x$ac_cv_sys_large_files" != "xno"; then + CPPFLAGS="$CPPFLAGS -D_LARGE_FILES=1" +fi + +]) + +dnl A small extension to PKG_CHECK_MODULES (defined in pkg.m4.in) +dnl which allows to search for libs that get installed into the KDE prefix. +dnl +dnl Syntax: KDE_PKG_CHECK_MODULES(KSTUFF, libkexif >= 0.2 glib = 1.3.4, action-if, action-not) +dnl defines KSTUFF_LIBS, KSTUFF_CFLAGS, see pkg-config man page +dnl also defines KSTUFF_PKG_ERRORS on error +AC_DEFUN([KDE_PKG_CHECK_MODULES], [ + + PKG_CONFIG_PATH="$prefix/lib${kdelibsuff}/pkgconfig:$PKG_CONFIG_PATH" + if test "$prefix" != "$kde_libs_prefix"; then + PKG_CONFIG_PATH="$kde_libs_prefix/lib${kdelibsuff}/pkgconfig:$PKG_CONFIG_PATH" + fi + export PKG_CONFIG_PATH + PKG_CHECK_MODULES([$1],[$2],[$3],[$4]) +]) + + +dnl Check for PIE support in the compiler and linker +AC_DEFUN([KDE_CHECK_PIE_SUPPORT], +[ + AC_CACHE_CHECK([for PIE support], kde_cv_val_pie_support, + [ + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + safe_CXXFLAGS=$CXXFLAGS + safe_LDFLAGS=$LDFLAGS + CXXFLAGS="$CXXFLAGS -fPIE" + LDFLAGS="$LDFLAGS -pie" + + AC_TRY_LINK([int foo;], [], [kde_cv_val_pie_support=yes], [kde_cv_val_pie_support=no]) + + CXXFLAGS=$safe_CXXFLAGS + LDFLAGS=$safe_LDFLAGS + AC_LANG_RESTORE + ]) + + AC_MSG_CHECKING(if enabling -pie/fPIE support) + + AC_ARG_ENABLE(pie, + AC_HELP_STRING([--enable-pie],[platform supports PIE linking [default=detect]]), + [kde_has_pie_support=$enableval], + [kde_has_pie_support=detect]) + + if test "$kde_has_pie_support" = "detect"; then + kde_has_pie_support=$kde_cv_val_pie_support + fi + + AC_MSG_RESULT([$kde_has_pie_support]) + + KDE_USE_FPIE="" + KDE_USE_PIE="" + + AC_SUBST([KDE_USE_FPIE]) + AC_SUBST([KDE_USE_PIE]) + + if test "$kde_has_pie_support" = "yes"; then + KDE_USE_FPIE="-fPIE" + KDE_USE_PIE="-pie" + fi +]) +# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- +## Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005 +## Free Software Foundation, Inc. +## Originally by Gordon Matzigkeit , 1996 +## +## This file is free software; the Free Software Foundation gives +## unlimited permission to copy and/or distribute it, with or without +## modifications, as long as this notice is preserved. + +# serial 48 Debian 1.5.22-4 AC_PROG_LIBTOOL + + +# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED) +# ----------------------------------------------------------- +# If this macro is not defined by Autoconf, define it here. +m4_ifdef([AC_PROVIDE_IFELSE], + [], + [m4_define([AC_PROVIDE_IFELSE], + [m4_ifdef([AC_PROVIDE_$1], + [$2], [$3])])]) + + +# AC_PROG_LIBTOOL +# --------------- +AC_DEFUN([AC_PROG_LIBTOOL], +[AC_REQUIRE([_AC_PROG_LIBTOOL])dnl +dnl If AC_PROG_CXX has already been expanded, run AC_LIBTOOL_CXX +dnl immediately, otherwise, hook it in at the end of AC_PROG_CXX. + AC_PROVIDE_IFELSE([AC_PROG_CXX], + [AC_LIBTOOL_CXX], + [define([AC_PROG_CXX], defn([AC_PROG_CXX])[AC_LIBTOOL_CXX + ])]) +dnl And a similar setup for Fortran 77 support + AC_PROVIDE_IFELSE([AC_PROG_F77], + [AC_LIBTOOL_F77], + [define([AC_PROG_F77], defn([AC_PROG_F77])[AC_LIBTOOL_F77 +])]) + +dnl Quote A][M_PROG_GCJ so that aclocal doesn't bring it in needlessly. +dnl If either AC_PROG_GCJ or A][M_PROG_GCJ have already been expanded, run +dnl AC_LIBTOOL_GCJ immediately, otherwise, hook it in at the end of both. + AC_PROVIDE_IFELSE([AC_PROG_GCJ], + [AC_LIBTOOL_GCJ], + [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], + [AC_LIBTOOL_GCJ], + [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ], + [AC_LIBTOOL_GCJ], + [ifdef([AC_PROG_GCJ], + [define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[AC_LIBTOOL_GCJ])]) + ifdef([A][M_PROG_GCJ], + [define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[AC_LIBTOOL_GCJ])]) + ifdef([LT_AC_PROG_GCJ], + [define([LT_AC_PROG_GCJ], + defn([LT_AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])])]) +])])# AC_PROG_LIBTOOL + + +# _AC_PROG_LIBTOOL +# ---------------- +AC_DEFUN([_AC_PROG_LIBTOOL], +[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl +AC_BEFORE([$0],[AC_LIBTOOL_CXX])dnl +AC_BEFORE([$0],[AC_LIBTOOL_F77])dnl +AC_BEFORE([$0],[AC_LIBTOOL_GCJ])dnl + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' +AC_SUBST(LIBTOOL)dnl + +# Prevent multiple expansion +define([AC_PROG_LIBTOOL], []) +])# _AC_PROG_LIBTOOL + + +# AC_LIBTOOL_SETUP +# ---------------- +AC_DEFUN([AC_LIBTOOL_SETUP], +[AC_PREREQ(2.50)dnl +AC_REQUIRE([AC_ENABLE_SHARED])dnl +AC_REQUIRE([AC_ENABLE_STATIC])dnl +AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_PROG_LD])dnl +AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl +AC_REQUIRE([AC_PROG_NM])dnl + +AC_REQUIRE([AC_PROG_LN_S])dnl +AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl +# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! +AC_REQUIRE([AC_OBJEXT])dnl +AC_REQUIRE([AC_EXEEXT])dnl +dnl + +AC_LIBTOOL_SYS_MAX_CMD_LEN +AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE +AC_LIBTOOL_OBJDIR + +AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl +_LT_AC_PROG_ECHO_BACKSLASH + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +Xsed='sed -e 1s/^X//' +[sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g'] + +# Same as above, but do not quote variable references. +[double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g'] + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' + +# Constants: +rm="rm -f" + +# Global variables: +default_ofile=libtool +can_build_shared=yes + +# All known linkers require a `.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a +ltmain="$ac_aux_dir/ltmain.sh" +ofile="$default_ofile" +with_gnu_ld="$lt_cv_prog_gnu_ld" + +AC_CHECK_TOOL(AR, ar, false) +AC_CHECK_TOOL(RANLIB, ranlib, :) +AC_CHECK_TOOL(STRIP, strip, :) + +old_CC="$CC" +old_CFLAGS="$CFLAGS" + +# Set sane defaults for various variables +test -z "$AR" && AR=ar +test -z "$AR_FLAGS" && AR_FLAGS=cru +test -z "$AS" && AS=as +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$DLLTOOL" && DLLTOOL=dlltool +test -z "$LD" && LD=ld +test -z "$LN_S" && LN_S="ln -s" +test -z "$MAGIC_CMD" && MAGIC_CMD=file +test -z "$NM" && NM=nm +test -z "$SED" && SED=sed +test -z "$OBJDUMP" && OBJDUMP=objdump +test -z "$RANLIB" && RANLIB=: +test -z "$STRIP" && STRIP=: +test -z "$ac_objext" && ac_objext=o + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" +fi + +_LT_CC_BASENAME([$compiler]) + +# Only perform the check for file, if the check method requires it +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + AC_PATH_MAGIC + fi + ;; +esac + +AC_PROVIDE_IFELSE([AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no) +AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL], +enable_win32_dll=yes, enable_win32_dll=no) + +AC_ARG_ENABLE([libtool-lock], + [AC_HELP_STRING([--disable-libtool-lock], + [avoid locking (might break parallel builds)])]) +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +AC_ARG_WITH([pic], + [AC_HELP_STRING([--with-pic], + [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], + [pic_mode="$withval"], + [pic_mode=default]) +test -z "$pic_mode" && pic_mode=default + +# Use C for the default configuration in the libtool script +tagname= +AC_LIBTOOL_LANG_C_CONFIG +_LT_AC_TAGCONFIG +])# AC_LIBTOOL_SETUP + + +# _LT_AC_SYS_COMPILER +# ------------------- +AC_DEFUN([_LT_AC_SYS_COMPILER], +[AC_REQUIRE([AC_PROG_CC])dnl + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC +])# _LT_AC_SYS_COMPILER + + +# _LT_CC_BASENAME(CC) +# ------------------- +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +AC_DEFUN([_LT_CC_BASENAME], +[for cc_temp in $1""; do + case $cc_temp in + compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; + distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` +]) + + +# _LT_COMPILER_BOILERPLATE +# ------------------------ +# Check for compiler boilerplate output or warnings with +# the simple compiler test code. +AC_DEFUN([_LT_COMPILER_BOILERPLATE], +[ac_outfile=conftest.$ac_objext +printf "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$rm conftest* +])# _LT_COMPILER_BOILERPLATE + + +# _LT_LINKER_BOILERPLATE +# ---------------------- +# Check for linker boilerplate output or warnings with +# the simple link test code. +AC_DEFUN([_LT_LINKER_BOILERPLATE], +[ac_outfile=conftest.$ac_objext +printf "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$rm conftest* +])# _LT_LINKER_BOILERPLATE + + +# _LT_AC_SYS_LIBPATH_AIX +# ---------------------- +# Links a minimal program and checks the executable +# for the system default hardcoded library path. In most cases, +# this is /usr/lib:/lib, but when the MPI compilers are used +# the location of the communication and MPI libs are included too. +# If we don't find anything, use the default library path according +# to the aix ld manual. +AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX], +[AC_LINK_IFELSE(AC_LANG_PROGRAM,[ +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'`; fi],[]) +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi +])# _LT_AC_SYS_LIBPATH_AIX + + +# _LT_AC_SHELL_INIT(ARG) +# ---------------------- +AC_DEFUN([_LT_AC_SHELL_INIT], +[ifdef([AC_DIVERSION_NOTICE], + [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], + [AC_DIVERT_PUSH(NOTICE)]) +$1 +AC_DIVERT_POP +])# _LT_AC_SHELL_INIT + + +# _LT_AC_PROG_ECHO_BACKSLASH +# -------------------------- +# Add some code to the start of the generated configure script which +# will find an echo command which doesn't interpret backslashes. +AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH], +[_LT_AC_SHELL_INIT([ +# Check that we are running under the correct shell. +SHELL=${CONFIG_SHELL-/bin/sh} + +case X$ECHO in +X*--fallback-echo) + # Remove one level of quotation (which was required for Make). + ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` + ;; +esac + +echo=${ECHO-echo} +if test "X[$]1" = X--no-reexec; then + # Discard the --no-reexec flag, and continue. + shift +elif test "X[$]1" = X--fallback-echo; then + # Avoid inline document here, it may be left over + : +elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then + # Yippee, $echo works! + : +else + # Restart under the correct shell. + exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} +fi + +if test "X[$]1" = X--fallback-echo; then + # used as fallback echo + shift + cat </dev/null 2>&1 && unset CDPATH + +if test -z "$ECHO"; then +if test "X${echo_test_string+set}" != Xset; then +# find a string as large as possible, as long as the shell can cope with it + for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do + # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... + if (echo_test_string=`eval $cmd`) 2>/dev/null && + echo_test_string=`eval $cmd` && + (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null + then + break + fi + done +fi + +if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + : +else + # The Solaris, AIX, and Digital Unix default echo programs unquote + # backslashes. This makes it impossible to quote backslashes using + # echo "$something" | sed 's/\\/\\\\/g' + # + # So, first we look for a working echo in the user's PATH. + + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for dir in $PATH /usr/ucb; do + IFS="$lt_save_ifs" + if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && + test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + echo="$dir/echo" + break + fi + done + IFS="$lt_save_ifs" + + if test "X$echo" = Xecho; then + # We didn't find a better echo, so look for alternatives. + if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # This shell has a builtin print -r that does the trick. + echo='print -r' + elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && + test "X$CONFIG_SHELL" != X/bin/ksh; then + # If we have ksh, try running configure again with it. + ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} + export ORIGINAL_CONFIG_SHELL + CONFIG_SHELL=/bin/ksh + export CONFIG_SHELL + exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} + else + # Try using printf. + echo='printf %s\n' + if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # Cool, printf works + : + elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL + export CONFIG_SHELL + SHELL="$CONFIG_SHELL" + export SHELL + echo="$CONFIG_SHELL [$]0 --fallback-echo" + elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + echo="$CONFIG_SHELL [$]0 --fallback-echo" + else + # maybe with a smaller string... + prev=: + + for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do + if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null + then + break + fi + prev="$cmd" + done + + if test "$prev" != 'sed 50q "[$]0"'; then + echo_test_string=`eval $prev` + export echo_test_string + exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} + else + # Oops. We lost completely, so just stick with echo. + echo=echo + fi + fi + fi + fi +fi +fi + +# Copy echo and quote the copy suitably for passing to libtool from +# the Makefile, instead of quoting the original, which is used later. +ECHO=$echo +if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then + ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" +fi + +AC_SUBST(ECHO) +])])# _LT_AC_PROG_ECHO_BACKSLASH + + +# _LT_AC_LOCK +# ----------- +AC_DEFUN([_LT_AC_LOCK], +[AC_ARG_ENABLE([libtool-lock], + [AC_HELP_STRING([--disable-libtool-lock], + [avoid locking (might break parallel builds)])]) +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE="32" + ;; + *ELF-64*) + HPUX_IA64_MODE="64" + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out which ABI we are using. + echo '[#]line __oline__ "configure"' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + if test "$lt_cv_prog_gnu_ld" = yes; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*linux*) + LD="${LD-ld} -m elf_i386" + ;; + ppc64-*linux*|powerpc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + ppc*-*linux*|powerpc*-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -belf" + AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, + [AC_LANG_PUSH(C) + AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) + AC_LANG_POP]) + if test x"$lt_cv_cc_needs_belf" != x"yes"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS="$SAVE_CFLAGS" + fi + ;; +sparc*-*solaris*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) LD="${LD-ld} -m elf64_sparc" ;; + *) LD="${LD-ld} -64" ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL], +[*-*-cygwin* | *-*-mingw* | *-*-pw32*) + AC_CHECK_TOOL(DLLTOOL, dlltool, false) + AC_CHECK_TOOL(AS, as, false) + AC_CHECK_TOOL(OBJDUMP, objdump, false) + ;; + ]) +esac + +need_locks="$enable_libtool_lock" + +])# _LT_AC_LOCK + + +# AC_LIBTOOL_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------------------- +# Check whether the given compiler option works +AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], +[AC_REQUIRE([LT_AC_PROG_SED]) +AC_CACHE_CHECK([$1], [$2], + [$2=no + ifelse([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$3" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + fi + $rm conftest* +]) + +if test x"[$]$2" = xyes; then + ifelse([$5], , :, [$5]) +else + ifelse([$6], , :, [$6]) +fi +])# AC_LIBTOOL_COMPILER_OPTION + + +# AC_LIBTOOL_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [ACTION-SUCCESS], [ACTION-FAILURE]) +# ------------------------------------------------------------ +# Check whether the given compiler option works +AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], +[AC_CACHE_CHECK([$1], [$2], + [$2=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $3" + printf "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&AS_MESSAGE_LOG_FD + $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + else + $2=yes + fi + fi + $rm conftest* + LDFLAGS="$save_LDFLAGS" +]) + +if test x"[$]$2" = xyes; then + ifelse([$4], , :, [$4]) +else + ifelse([$5], , :, [$5]) +fi +])# AC_LIBTOOL_LINKER_OPTION + + +# AC_LIBTOOL_SYS_MAX_CMD_LEN +# -------------------------- +AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], +[# find the maximum length of command line arguments +AC_MSG_CHECKING([the maximum length of command line arguments]) +AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl + i=0 + teststring="ABCD" + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + while (test "X"`$SHELL [$]0 --fallback-echo "X$teststring" 2>/dev/null` \ + = "XX$teststring") >/dev/null 2>&1 && + new_result=`expr "X$teststring" : ".*" 2>&1` && + lt_cv_sys_max_cmd_len=$new_result && + test $i != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + teststring= + # Add a significant safety factor because C++ compilers can tack on massive + # amounts of additional arguments before passing them to the linker. + # It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + ;; + esac +]) +if test -n $lt_cv_sys_max_cmd_len ; then + AC_MSG_RESULT($lt_cv_sys_max_cmd_len) +else + AC_MSG_RESULT(none) +fi +])# AC_LIBTOOL_SYS_MAX_CMD_LEN + + +# _LT_AC_CHECK_DLFCN +# ------------------ +AC_DEFUN([_LT_AC_CHECK_DLFCN], +[AC_CHECK_HEADERS(dlfcn.h)dnl +])# _LT_AC_CHECK_DLFCN + + +# _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, +# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) +# --------------------------------------------------------------------- +AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF], +[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl +if test "$cross_compiling" = yes; then : + [$4] +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext < +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +#ifdef __cplusplus +extern "C" void exit (int); +#endif + +void fnord() { int i=42;} +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + /* dlclose (self); */ + } + else + puts (dlerror ()); + + exit (status); +}] +EOF + if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) $1 ;; + x$lt_dlneed_uscore) $2 ;; + x$lt_dlunknown|x*) $3 ;; + esac + else : + # compilation failed + $3 + fi +fi +rm -fr conftest* +])# _LT_AC_TRY_DLOPEN_SELF + + +# AC_LIBTOOL_DLOPEN_SELF +# ---------------------- +AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], +[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl +if test "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32*) + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen="dlopen" + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ + lt_cv_dlopen="dyld" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ]) + ;; + + *) + AC_CHECK_FUNC([shl_load], + [lt_cv_dlopen="shl_load"], + [AC_CHECK_LIB([dld], [shl_load], + [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"], + [AC_CHECK_FUNC([dlopen], + [lt_cv_dlopen="dlopen"], + [AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], + [AC_CHECK_LIB([svld], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], + [AC_CHECK_LIB([dld], [dld_link], + [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"]) + ]) + ]) + ]) + ]) + ]) + ;; + esac + + if test "x$lt_cv_dlopen" != xno; then + enable_dlopen=yes + else + enable_dlopen=no + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS="$CPPFLAGS" + test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS="$LDFLAGS" + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS="$LIBS" + LIBS="$lt_cv_dlopen_libs $LIBS" + + AC_CACHE_CHECK([whether a program can dlopen itself], + lt_cv_dlopen_self, [dnl + _LT_AC_TRY_DLOPEN_SELF( + lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, + lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) + ]) + + if test "x$lt_cv_dlopen_self" = xyes; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + AC_CACHE_CHECK([whether a statically linked program can dlopen itself], + lt_cv_dlopen_self_static, [dnl + _LT_AC_TRY_DLOPEN_SELF( + lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, + lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) + ]) + fi + + CPPFLAGS="$save_CPPFLAGS" + LDFLAGS="$save_LDFLAGS" + LIBS="$save_LIBS" + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi +])# AC_LIBTOOL_DLOPEN_SELF + + +# AC_LIBTOOL_PROG_CC_C_O([TAGNAME]) +# --------------------------------- +# Check to see if options -c and -o are simultaneously supported by compiler +AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O], +[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl +AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], + [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)], + [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no + $rm -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + fi + fi + chmod u+w . 2>&AS_MESSAGE_LOG_FD + $rm conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files + $rm out/* && rmdir out + cd .. + rmdir conftest + $rm conftest* +]) +])# AC_LIBTOOL_PROG_CC_C_O + + +# AC_LIBTOOL_SYS_HARD_LINK_LOCKS([TAGNAME]) +# ----------------------------------------- +# Check to see if we can do hard links to lock some files if needed +AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], +[AC_REQUIRE([_LT_AC_LOCK])dnl + +hard_links="nottested" +if test "$_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + AC_MSG_CHECKING([if we can lock with hard links]) + hard_links=yes + $rm conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + AC_MSG_RESULT([$hard_links]) + if test "$hard_links" = no; then + AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) + need_locks=warn + fi +else + need_locks=no +fi +])# AC_LIBTOOL_SYS_HARD_LINK_LOCKS + + +# AC_LIBTOOL_OBJDIR +# ----------------- +AC_DEFUN([AC_LIBTOOL_OBJDIR], +[AC_CACHE_CHECK([for objdir], [lt_cv_objdir], +[rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null]) +objdir=$lt_cv_objdir +])# AC_LIBTOOL_OBJDIR + + +# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH([TAGNAME]) +# ---------------------------------------------- +# Check hardcoding attributes. +AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], +[AC_MSG_CHECKING([how to hardcode library paths into programs]) +_LT_AC_TAGVAR(hardcode_action, $1)= +if test -n "$_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)" || \ + test -n "$_LT_AC_TAGVAR(runpath_var, $1)" || \ + test "X$_LT_AC_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then + + # We can hardcode non-existant directories. + if test "$_LT_AC_TAGVAR(hardcode_direct, $1)" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)" != no && + test "$_LT_AC_TAGVAR(hardcode_minus_L, $1)" != no; then + # Linking always hardcodes the temporary library directory. + _LT_AC_TAGVAR(hardcode_action, $1)=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + _LT_AC_TAGVAR(hardcode_action, $1)=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + _LT_AC_TAGVAR(hardcode_action, $1)=unsupported +fi +AC_MSG_RESULT([$_LT_AC_TAGVAR(hardcode_action, $1)]) + +if test "$_LT_AC_TAGVAR(hardcode_action, $1)" = relink; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi +])# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH + + +# AC_LIBTOOL_SYS_LIB_STRIP +# ------------------------ +AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP], +[striplib= +old_striplib= +AC_MSG_CHECKING([whether stripping libraries is possible]) +if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + AC_MSG_RESULT([yes]) +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP" ; then + striplib="$STRIP -x" + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) +fi + ;; + *) + AC_MSG_RESULT([no]) + ;; + esac +fi +])# AC_LIBTOOL_SYS_LIB_STRIP + + +# AC_LIBTOOL_SYS_DYNAMIC_LINKER +# ----------------------------- +# PORTME Fill in your ld.so characteristics +AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER], +[AC_MSG_CHECKING([dynamic linker characteristics]) +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +if test "$GCC" = yes; then + sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +aix4* | aix5*) + version_type=linux + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[[01]] | aix4.[[01]].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[[45]]*) + version_type=linux + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$host_os in + yes,cygwin* | yes,mingw* | yes,pw32*) + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $rm \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" + ;; + mingw*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if echo "$sys_lib_search_path_spec" | [grep ';[c-zC-Z]:/' >/dev/null]; then + # It is most probably a Windows format PATH printed by + # mingw gcc, but we are running on Cygwin. Gcc prints its search + # path with ; separators, and with drive letters. We can handle the + # drive letters (cygwin fileutils understands them), so leave them, + # especially as we might pass files found there to a mingw objdump, + # which wouldn't understand a cygwinified path. Ahh. + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + ;; + esac + ;; + + *) + library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' + ;; + esac + dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' + # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. + if test "$GCC" = yes; then + sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` + else + sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' + fi + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd1*) + dynamic_linker=no + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[[123]]*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[[01]]* | freebsdelf3.[[01]]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ + freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + freebsd*) # from 4.6 on + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +gnu*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555. + postinstall_cmds='chmod 555 $lib' + ;; + +interix3*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be Linux ELF. +linux* | k*bsd*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +nto-qnx*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[[89]] | openbsd2.[[89]].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +solaris*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + export_dynamic_flag_spec='${wl}-Blargedynsym' + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + shlibpath_overrides_runpath=no + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + shlibpath_overrides_runpath=yes + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +uts4*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +AC_MSG_RESULT([$dynamic_linker]) +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi +])# AC_LIBTOOL_SYS_DYNAMIC_LINKER + + +# _LT_AC_TAGCONFIG +# ---------------- +AC_DEFUN([_LT_AC_TAGCONFIG], +[AC_ARG_WITH([tags], + [AC_HELP_STRING([--with-tags@<:@=TAGS@:>@], + [include additional configurations @<:@automatic@:>@])], + [tagnames="$withval"]) + +if test -f "$ltmain" && test -n "$tagnames"; then + if test ! -f "${ofile}"; then + AC_MSG_WARN([output file `$ofile' does not exist]) + fi + + if test -z "$LTCC"; then + eval "`$SHELL ${ofile} --config | grep '^LTCC='`" + if test -z "$LTCC"; then + AC_MSG_WARN([output file `$ofile' does not look like a libtool script]) + else + AC_MSG_WARN([using `LTCC=$LTCC', extracted from `$ofile']) + fi + fi + if test -z "$LTCFLAGS"; then + eval "`$SHELL ${ofile} --config | grep '^LTCFLAGS='`" + fi + + # Extract list of available tagged configurations in $ofile. + # Note that this assumes the entire list is on one line. + available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'` + + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for tagname in $tagnames; do + IFS="$lt_save_ifs" + # Check whether tagname contains only valid characters + case `$echo "X$tagname" | $Xsed -e 's:[[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]]::g'` in + "") ;; + *) AC_MSG_ERROR([invalid tag name: $tagname]) + ;; + esac + + if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null + then + AC_MSG_ERROR([tag name \"$tagname\" already exists]) + fi + + # Update the list of available tags. + if test -n "$tagname"; then + echo appending configuration tag \"$tagname\" to $ofile + + case $tagname in + CXX) + if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then + AC_LIBTOOL_LANG_CXX_CONFIG + else + tagname="" + fi + ;; + + F77) + if test -n "$F77" && test "X$F77" != "Xno"; then + AC_LIBTOOL_LANG_F77_CONFIG + else + tagname="" + fi + ;; + + GCJ) + if test -n "$GCJ" && test "X$GCJ" != "Xno"; then + AC_LIBTOOL_LANG_GCJ_CONFIG + else + tagname="" + fi + ;; + + RC) + AC_LIBTOOL_LANG_RC_CONFIG + ;; + + *) + AC_MSG_ERROR([Unsupported tag name: $tagname]) + ;; + esac + + # Append the new tag name to the list of available tags. + if test -n "$tagname" ; then + available_tags="$available_tags $tagname" + fi + fi + done + IFS="$lt_save_ifs" + + # Now substitute the updated list of available tags. + if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then + mv "${ofile}T" "$ofile" + chmod +x "$ofile" + else + rm -f "${ofile}T" + AC_MSG_ERROR([unable to update list of available tagged configurations.]) + fi +fi +])# _LT_AC_TAGCONFIG + + +# AC_LIBTOOL_DLOPEN +# ----------------- +# enable checks for dlopen support +AC_DEFUN([AC_LIBTOOL_DLOPEN], + [AC_BEFORE([$0],[AC_LIBTOOL_SETUP]) +])# AC_LIBTOOL_DLOPEN + + +# AC_LIBTOOL_WIN32_DLL +# -------------------- +# declare package support for building win32 DLLs +AC_DEFUN([AC_LIBTOOL_WIN32_DLL], +[AC_BEFORE([$0], [AC_LIBTOOL_SETUP]) +])# AC_LIBTOOL_WIN32_DLL + + +# AC_ENABLE_SHARED([DEFAULT]) +# --------------------------- +# implement the --enable-shared flag +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +AC_DEFUN([AC_ENABLE_SHARED], +[define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl +AC_ARG_ENABLE([shared], + [AC_HELP_STRING([--enable-shared@<:@=PKGS@:>@], + [build shared libraries @<:@default=]AC_ENABLE_SHARED_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_shared=]AC_ENABLE_SHARED_DEFAULT) +])# AC_ENABLE_SHARED + + +# AC_DISABLE_SHARED +# ----------------- +# set the default shared flag to --disable-shared +AC_DEFUN([AC_DISABLE_SHARED], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl +AC_ENABLE_SHARED(no) +])# AC_DISABLE_SHARED + + +# AC_ENABLE_STATIC([DEFAULT]) +# --------------------------- +# implement the --enable-static flag +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +AC_DEFUN([AC_ENABLE_STATIC], +[define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl +AC_ARG_ENABLE([static], + [AC_HELP_STRING([--enable-static@<:@=PKGS@:>@], + [build static libraries @<:@default=]AC_ENABLE_STATIC_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_static=]AC_ENABLE_STATIC_DEFAULT) +])# AC_ENABLE_STATIC + + +# AC_DISABLE_STATIC +# ----------------- +# set the default static flag to --disable-static +AC_DEFUN([AC_DISABLE_STATIC], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl +AC_ENABLE_STATIC(no) +])# AC_DISABLE_STATIC + + +# AC_ENABLE_FAST_INSTALL([DEFAULT]) +# --------------------------------- +# implement the --enable-fast-install flag +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +AC_DEFUN([AC_ENABLE_FAST_INSTALL], +[define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl +AC_ARG_ENABLE([fast-install], + [AC_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], + [optimize for fast installation @<:@default=]AC_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_fast_install=]AC_ENABLE_FAST_INSTALL_DEFAULT) +])# AC_ENABLE_FAST_INSTALL + + +# AC_DISABLE_FAST_INSTALL +# ----------------------- +# set the default to --disable-fast-install +AC_DEFUN([AC_DISABLE_FAST_INSTALL], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl +AC_ENABLE_FAST_INSTALL(no) +])# AC_DISABLE_FAST_INSTALL + + +# AC_LIBTOOL_PICMODE([MODE]) +# -------------------------- +# implement the --with-pic flag +# MODE is either `yes' or `no'. If omitted, it defaults to `both'. +AC_DEFUN([AC_LIBTOOL_PICMODE], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl +pic_mode=ifelse($#,1,$1,default) +])# AC_LIBTOOL_PICMODE + + +# AC_PROG_EGREP +# ------------- +# This is predefined starting with Autoconf 2.54, so this conditional +# definition can be removed once we require Autoconf 2.54 or later. +m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP], +[AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep], + [if echo a | (grep -E '(a|b)') >/dev/null 2>&1 + then ac_cv_prog_egrep='grep -E' + else ac_cv_prog_egrep='egrep' + fi]) + EGREP=$ac_cv_prog_egrep + AC_SUBST([EGREP]) +])]) + + +# AC_PATH_TOOL_PREFIX +# ------------------- +# find a file program which can recognise shared library +AC_DEFUN([AC_PATH_TOOL_PREFIX], +[AC_REQUIRE([AC_PROG_EGREP])dnl +AC_MSG_CHECKING([for $1]) +AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, +[case $MAGIC_CMD in +[[\\/*] | ?:[\\/]*]) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR +dnl $ac_dummy forces splitting on constant user-supplied paths. +dnl POSIX.2 word splitting is done only on the output of word expansions, +dnl not every word. This closes a longstanding sh security hole. + ac_dummy="ifelse([$2], , $PATH, [$2])" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$1; then + lt_cv_path_MAGIC_CMD="$ac_dir/$1" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac]) +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + AC_MSG_RESULT($MAGIC_CMD) +else + AC_MSG_RESULT(no) +fi +])# AC_PATH_TOOL_PREFIX + + +# AC_PATH_MAGIC +# ------------- +# find a file program which can recognise a shared library +AC_DEFUN([AC_PATH_MAGIC], +[AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + AC_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) + else + MAGIC_CMD=: + fi +fi +])# AC_PATH_MAGIC + + +# AC_PROG_LD +# ---------- +# find the pathname to the GNU or non-GNU linker +AC_DEFUN([AC_PROG_LD], +[AC_ARG_WITH([gnu-ld], + [AC_HELP_STRING([--with-gnu-ld], + [assume the C compiler uses GNU ld @<:@default=no@:>@])], + [test "$withval" = no || with_gnu_ld=yes], + [with_gnu_ld=no]) +AC_REQUIRE([LT_AC_PROG_SED])dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + AC_MSG_CHECKING([for ld used by $CC]) + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [[\\/]]* | ?:[[\\/]]*) + re_direlt='/[[^/]][[^/]]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` + while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do + ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + AC_MSG_CHECKING([for GNU ld]) +else + AC_MSG_CHECKING([for non-GNU ld]) +fi +AC_CACHE_VAL(lt_cv_path_LD, +[if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'] + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix3*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be Linux ELF. +linux* | k*bsd*-gnu) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +nto-qnx*) + lt_cv_deplibs_check_method=unknown + ;; + +openbsd*) + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; +esac +]) +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown +])# AC_DEPLIBS_CHECK_METHOD + + +# AC_PROG_NM +# ---------- +# find the pathname to a BSD-compatible name lister +AC_DEFUN([AC_PROG_NM], +[AC_CACHE_CHECK([for BSD-compatible nm], lt_cv_path_NM, +[if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM="$NM" +else + lt_nm_to_check="${ac_tool_prefix}nm" + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + tmp_nm="$ac_dir/$lt_tmp_nm" + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the `sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in + */dev/null* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS="$lt_save_ifs" + done + test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm +fi]) +NM="$lt_cv_path_NM" +])# AC_PROG_NM + + +# AC_CHECK_LIBM +# ------------- +# check for math library +AC_DEFUN([AC_CHECK_LIBM], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +LIBM= +case $host in +*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*) + # These system don't have libm, or don't need it + ;; +*-ncr-sysv4.3*) + AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") + AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") + ;; +*) + AC_CHECK_LIB(m, cos, LIBM="-lm") + ;; +esac +])# AC_CHECK_LIBM + + +# AC_LIBLTDL_CONVENIENCE([DIRECTORY]) +# ----------------------------------- +# sets LIBLTDL to the link flags for the libltdl convenience library and +# LTDLINCL to the include flags for the libltdl header and adds +# --enable-ltdl-convenience to the configure arguments. Note that +# AC_CONFIG_SUBDIRS is not called here. If DIRECTORY is not provided, +# it is assumed to be `libltdl'. LIBLTDL will be prefixed with +# '${top_builddir}/' and LTDLINCL will be prefixed with '${top_srcdir}/' +# (note the single quotes!). If your package is not flat and you're not +# using automake, define top_builddir and top_srcdir appropriately in +# the Makefiles. +AC_DEFUN([AC_LIBLTDL_CONVENIENCE], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl + case $enable_ltdl_convenience in + no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;; + "") enable_ltdl_convenience=yes + ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;; + esac + LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la + LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) + # For backwards non-gettext consistent compatibility... + INCLTDL="$LTDLINCL" +])# AC_LIBLTDL_CONVENIENCE + + +# AC_LIBLTDL_INSTALLABLE([DIRECTORY]) +# ----------------------------------- +# sets LIBLTDL to the link flags for the libltdl installable library and +# LTDLINCL to the include flags for the libltdl header and adds +# --enable-ltdl-install to the configure arguments. Note that +# AC_CONFIG_SUBDIRS is not called here. If DIRECTORY is not provided, +# and an installed libltdl is not found, it is assumed to be `libltdl'. +# LIBLTDL will be prefixed with '${top_builddir}/'# and LTDLINCL with +# '${top_srcdir}/' (note the single quotes!). If your package is not +# flat and you're not using automake, define top_builddir and top_srcdir +# appropriately in the Makefiles. +# In the future, this macro may have to be called after AC_PROG_LIBTOOL. +AC_DEFUN([AC_LIBLTDL_INSTALLABLE], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl + AC_CHECK_LIB(ltdl, lt_dlinit, + [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no], + [if test x"$enable_ltdl_install" = xno; then + AC_MSG_WARN([libltdl not installed, but installation disabled]) + else + enable_ltdl_install=yes + fi + ]) + if test x"$enable_ltdl_install" = x"yes"; then + ac_configure_args="$ac_configure_args --enable-ltdl-install" + LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la + LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) + else + ac_configure_args="$ac_configure_args --enable-ltdl-install=no" + LIBLTDL="-lltdl" + LTDLINCL= + fi + # For backwards non-gettext consistent compatibility... + INCLTDL="$LTDLINCL" +])# AC_LIBLTDL_INSTALLABLE + + +# AC_LIBTOOL_CXX +# -------------- +# enable support for C++ libraries +AC_DEFUN([AC_LIBTOOL_CXX], +[AC_REQUIRE([_LT_AC_LANG_CXX]) +])# AC_LIBTOOL_CXX + + +# _LT_AC_LANG_CXX +# --------------- +AC_DEFUN([_LT_AC_LANG_CXX], +[AC_REQUIRE([AC_PROG_CXX]) +AC_REQUIRE([_LT_AC_PROG_CXXCPP]) +_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}CXX]) +])# _LT_AC_LANG_CXX + +# _LT_AC_PROG_CXXCPP +# ------------------ +AC_DEFUN([_LT_AC_PROG_CXXCPP], +[ +AC_REQUIRE([AC_PROG_CXX]) +if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then + AC_PROG_CXXCPP +fi +])# _LT_AC_PROG_CXXCPP + +# AC_LIBTOOL_F77 +# -------------- +# enable support for Fortran 77 libraries +AC_DEFUN([AC_LIBTOOL_F77], +[AC_REQUIRE([_LT_AC_LANG_F77]) +])# AC_LIBTOOL_F77 + + +# _LT_AC_LANG_F77 +# --------------- +AC_DEFUN([_LT_AC_LANG_F77], +[AC_REQUIRE([AC_PROG_F77]) +_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}F77]) +])# _LT_AC_LANG_F77 + + +# AC_LIBTOOL_GCJ +# -------------- +# enable support for GCJ libraries +AC_DEFUN([AC_LIBTOOL_GCJ], +[AC_REQUIRE([_LT_AC_LANG_GCJ]) +])# AC_LIBTOOL_GCJ + + +# _LT_AC_LANG_GCJ +# --------------- +AC_DEFUN([_LT_AC_LANG_GCJ], +[AC_PROVIDE_IFELSE([AC_PROG_GCJ],[], + [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],[], + [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],[], + [ifdef([AC_PROG_GCJ],[AC_REQUIRE([AC_PROG_GCJ])], + [ifdef([A][M_PROG_GCJ],[AC_REQUIRE([A][M_PROG_GCJ])], + [AC_REQUIRE([A][C_PROG_GCJ_OR_A][M_PROG_GCJ])])])])])]) +_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}GCJ]) +])# _LT_AC_LANG_GCJ + + +# AC_LIBTOOL_RC +# ------------- +# enable support for Windows resource files +AC_DEFUN([AC_LIBTOOL_RC], +[AC_REQUIRE([LT_AC_PROG_RC]) +_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}RC]) +])# AC_LIBTOOL_RC + + +# AC_LIBTOOL_LANG_C_CONFIG +# ------------------------ +# Ensure that the configuration vars for the C compiler are +# suitably defined. Those variables are subsequently used by +# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. +AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG], [_LT_AC_LANG_C_CONFIG]) +AC_DEFUN([_LT_AC_LANG_C_CONFIG], +[lt_save_CC="$CC" +AC_LANG_PUSH(C) + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +_LT_AC_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;\n" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}\n' + +_LT_AC_SYS_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1) +AC_LIBTOOL_PROG_COMPILER_PIC($1) +AC_LIBTOOL_PROG_CC_C_O($1) +AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) +AC_LIBTOOL_PROG_LD_SHLIBS($1) +AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) +AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) +AC_LIBTOOL_SYS_LIB_STRIP +AC_LIBTOOL_DLOPEN_SELF + +# Report which library types will actually be built +AC_MSG_CHECKING([if libtool supports shared libraries]) +AC_MSG_RESULT([$can_build_shared]) + +AC_MSG_CHECKING([whether to build shared libraries]) +test "$can_build_shared" = "no" && enable_shared=no + +# On AIX, shared libraries and static libraries use the same namespace, and +# are all built from PIC. +case $host_os in +aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + +aix4* | aix5*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; +esac +AC_MSG_RESULT([$enable_shared]) + +AC_MSG_CHECKING([whether to build static libraries]) +# Make sure either enable_shared or enable_static is yes. +test "$enable_shared" = yes || enable_static=yes +AC_MSG_RESULT([$enable_static]) + +AC_LIBTOOL_CONFIG($1) + +AC_LANG_POP +CC="$lt_save_CC" +])# AC_LIBTOOL_LANG_C_CONFIG + + +# AC_LIBTOOL_LANG_CXX_CONFIG +# -------------------------- +# Ensure that the configuration vars for the C compiler are +# suitably defined. Those variables are subsequently used by +# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. +AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG], [_LT_AC_LANG_CXX_CONFIG(CXX)]) +AC_DEFUN([_LT_AC_LANG_CXX_CONFIG], +[AC_LANG_PUSH(C++) +AC_REQUIRE([AC_PROG_CXX]) +AC_REQUIRE([_LT_AC_PROG_CXXCPP]) + +_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_AC_TAGVAR(allow_undefined_flag, $1)= +_LT_AC_TAGVAR(always_export_symbols, $1)=no +_LT_AC_TAGVAR(archive_expsym_cmds, $1)= +_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_AC_TAGVAR(hardcode_direct, $1)=no +_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= +_LT_AC_TAGVAR(hardcode_libdir_separator, $1)= +_LT_AC_TAGVAR(hardcode_minus_L, $1)=no +_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported +_LT_AC_TAGVAR(hardcode_automatic, $1)=no +_LT_AC_TAGVAR(module_cmds, $1)= +_LT_AC_TAGVAR(module_expsym_cmds, $1)= +_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown +_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_AC_TAGVAR(no_undefined_flag, $1)= +_LT_AC_TAGVAR(whole_archive_flag_spec, $1)= +_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Dependencies to place before and after the object being linked: +_LT_AC_TAGVAR(predep_objects, $1)= +_LT_AC_TAGVAR(postdep_objects, $1)= +_LT_AC_TAGVAR(predeps, $1)= +_LT_AC_TAGVAR(postdeps, $1)= +_LT_AC_TAGVAR(compiler_lib_search_path, $1)= + +# Source file extension for C++ test sources. +ac_ext=cpp + +# Object file extension for compiled C++ test sources. +objext=o +_LT_AC_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;\n" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }\n' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_AC_SYS_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_LD=$LD +lt_save_GCC=$GCC +GCC=$GXX +lt_save_with_gnu_ld=$with_gnu_ld +lt_save_path_LD=$lt_cv_path_LD +if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then + lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx +else + $as_unset lt_cv_prog_gnu_ld +fi +if test -n "${lt_cv_path_LDCXX+set}"; then + lt_cv_path_LD=$lt_cv_path_LDCXX +else + $as_unset lt_cv_path_LD +fi +test -z "${LDCXX+set}" || LD=$LDCXX +CC=${CXX-"c++"} +compiler=$CC +_LT_AC_TAGVAR(compiler, $1)=$CC +_LT_CC_BASENAME([$compiler]) + +# We don't want -fno-exception wen compiling C++ code, so set the +# no_builtin_flag separately +if test "$GXX" = yes; then + _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' +else + _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= +fi + +if test "$GXX" = yes; then + # Set up default GNU C++ configuration + + AC_PROG_LD + + # Check if GNU C++ uses GNU ld as the underlying linker, since the + # archiving commands below assume that GNU ld is being used. + if test "$with_gnu_ld" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + + # If archive_cmds runs LD, not CC, wlarc should be empty + # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to + # investigate it a little bit more. (MM) + wlarc='${wl}' + + # ancient GNU ld didn't support --whole-archive et. al. + if eval "`$CC -print-prog-name=ld` --help 2>&1" | \ + grep 'no-whole-archive' > /dev/null; then + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + with_gnu_ld=no + wlarc= + + # A generic and very simple default shared library creation + # command for GNU C++ for the case where it uses the native + # linker, instead of GNU ld. If possible, this setting should + # overridden to take advantage of the native linker features on + # the platform it is being used on. + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + fi + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' + +else + GXX=no + with_gnu_ld=no + wlarc= +fi + +# PORTME: fill in a description of your system's C++ link characteristics +AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) +_LT_AC_TAGVAR(ld_shlibs, $1)=yes +case $host_os in + aix3*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + aix4* | aix5*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*) + for ld_flag in $LDFLAGS; do + case $ld_flag in + *-brtl*) + aix_use_runtimelinking=yes + break + ;; + esac + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_AC_TAGVAR(archive_cmds, $1)='' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + + if test "$GXX" = yes; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && \ + strings "$collect2name" | grep resolve_lib_name >/dev/null + then + # We have reworked collect2 + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + else + # We have old collect2 + _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + _LT_AC_TAGVAR(always_export_symbols, $1)=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an empty executable. + _LT_AC_SYS_LIBPATH_AIX + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' + _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an empty executable. + _LT_AC_SYS_LIBPATH_AIX + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' + # Exported symbols can be pulled into shared objects from archives + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes + # This is similar to how AIX traditionally builds its shared libraries. + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + beos*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + chorus*) + case $cc_basename in + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + cygwin* | mingw* | pw32*) + # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_AC_TAGVAR(always_export_symbols, $1)=no + _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + + if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + darwin* | rhapsody*) + case $host_os in + rhapsody* | darwin1.[[012]]) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress' + ;; + *) # Darwin 1.3 on + if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + else + case ${MACOSX_DEPLOYMENT_TARGET} in + 10.[[012]]) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + ;; + 10.*) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}dynamic_lookup' + ;; + esac + fi + ;; + esac + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_automatic, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + + if test "$GXX" = yes ; then + lt_int_apple_cc_single_mod=no + output_verbose_link_cmd='echo' + if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then + lt_int_apple_cc_single_mod=yes + fi + if test "X$lt_int_apple_cc_single_mod" = Xyes ; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' + fi + _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + if test "X$lt_int_apple_cc_single_mod" = Xyes ; then + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else + case $cc_basename in + xlc*) + output_verbose_link_cmd='echo' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' + _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + ;; + *) + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + fi + ;; + + dgux*) + case $cc_basename in + ec++*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + ghcx*) + # Green Hills C++ Compiler + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + freebsd[[12]]*) + # C++ shared libraries reported to be fairly broken before switch to ELF + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + freebsd-elf*) + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + ;; + freebsd* | dragonfly*) + # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF + # conventions + _LT_AC_TAGVAR(ld_shlibs, $1)=yes + ;; + gnu*) + ;; + hpux9*) + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "[[-]]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + *) + if test "$GXX" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + hpux10*|hpux11*) + if test $with_gnu_ld = no; then + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' + ;; + *) + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + ;; + esac + fi + case $host_cpu in + hppa*64*|ia64*) + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + ;; + esac + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + case $host_cpu in + hppa*64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + *) + if test "$GXX" = yes; then + if test $with_gnu_ld = no; then + case $host_cpu in + hppa*64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + fi + else + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + interix3*) + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + irix5* | irix6*) + case $cc_basename in + CC*) + # SGI C++ + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + + # Archives containing C++ object files must be created using + # "CC -ar", where "CC" is the IRIX C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' + ;; + *) + if test "$GXX" = yes; then + if test "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib' + fi + fi + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + ;; + esac + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + linux* | k*bsd*-gnu) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath,$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' + ;; + icpc*) + # Intel C++ + with_gnu_ld=yes + # version 8.0 and above of icpc choke on multiply defined symbols + # if we add $predep_objects and $postdep_objects, however 7.1 and + # earlier do not add the objects themselves. + case `$CC -V 2>&1` in + *"Version 7."*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + *) # Version 8.0 or newer + tmp_idyn= + case $host_cpu in + ia64*) tmp_idyn=' -i_dynamic';; + esac + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + ;; + pgCC*) + # Portland Group C++ compiler + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + ;; + cxx*) + # Compaq C++ + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' + + runpath_var=LD_RUN_PATH + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + esac + ;; + lynxos*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + m88k*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + mvs*) + case $cc_basename in + cxx*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' + wlarc= + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + fi + # Workaround some broken pre-1.5 toolchains + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' + ;; + openbsd2*) + # C++ shared libraries are fairly broken + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + openbsd*) + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + fi + output_verbose_link_cmd='echo' + ;; + osf3*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' + + ;; + RCC*) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + cxx*) + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + *) + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' + + else + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + osf4* | osf5*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Archives containing C++ object files must be created using + # the KAI C++ compiler. + _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' + ;; + RCC*) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + cxx*) + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ + echo "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~ + $rm $lib.exp' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + *) + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' + + else + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + psos*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + lcc*) + # Lucid + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + solaris*) + case $cc_basename in + CC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_AC_TAGVAR(archive_cmds_need_lc,$1)=yes + _LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The C++ compiler is used as linker so we must use $wl + # flag to pass the commands to the underlying system + # linker. We must also pass each convience library through + # to the system linker between allextract/defaultextract. + # The C++ compiler will combine linker options so we + # cannot just pass the convience library names through + # without $wl. + # Supported since Solaris 2.6 (maybe 2.5.1?) + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' + ;; + esac + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + + output_verbose_link_cmd='echo' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + + # The C++ compiler must be used to create the archive. + _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' + ;; + *) + # GNU C++ compiler with Solaris linker + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' + if $CC --version | grep -v '^2\.7' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" + else + # g++ 2.7 appears to require `-G' NOT `-shared' on this + # platform. + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" + fi + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' + fi + ;; + esac + ;; + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + # So that behaviour is only enabled if SCOABSPATH is set to a + # non-empty value in the environment. Most likely only useful for + # creating official distributions of packages. + # This is a hack until libtool officially supports absolute path + # names for shared libraries. + _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + vxworks*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; +esac +AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)]) +test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no + +_LT_AC_TAGVAR(GCC, $1)="$GXX" +_LT_AC_TAGVAR(LD, $1)="$LD" + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +AC_LIBTOOL_POSTDEP_PREDEP($1) +AC_LIBTOOL_PROG_COMPILER_PIC($1) +AC_LIBTOOL_PROG_CC_C_O($1) +AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) +AC_LIBTOOL_PROG_LD_SHLIBS($1) +AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) +AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) + +AC_LIBTOOL_CONFIG($1) + +AC_LANG_POP +CC=$lt_save_CC +LDCXX=$LD +LD=$lt_save_LD +GCC=$lt_save_GCC +with_gnu_ldcxx=$with_gnu_ld +with_gnu_ld=$lt_save_with_gnu_ld +lt_cv_path_LDCXX=$lt_cv_path_LD +lt_cv_path_LD=$lt_save_path_LD +lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld +lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld +])# AC_LIBTOOL_LANG_CXX_CONFIG + +# AC_LIBTOOL_POSTDEP_PREDEP([TAGNAME]) +# ------------------------------------ +# Figure out "hidden" library dependencies from verbose +# compiler output when linking a shared library. +# Parse the compiler output and extract the necessary +# objects, libraries and library flags. +AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP],[ +dnl we can't use the lt_simple_compile_test_code here, +dnl because it contains code intended for an executable, +dnl not a library. It's possible we should let each +dnl tag define a new lt_????_link_test_code variable, +dnl but it's only used here... +ifelse([$1],[],[cat > conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext <> "$cfgfile" +ifelse([$1], [], +[#! $SHELL + +# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services. +# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) +# NOTE: Changes made to this file will be lost: look at ltmain.sh. +# +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 +# Free Software Foundation, Inc. +# +# This file is part of GNU Libtool: +# Originally by Gordon Matzigkeit , 1996 +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# A sed program that does not truncate output. +SED=$lt_SED + +# Sed that helps us avoid accidentally triggering echo(1) options like -n. +Xsed="$SED -e 1s/^X//" + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +# The names of the tagged configurations supported by this script. +available_tags= + +# ### BEGIN LIBTOOL CONFIG], +[# ### BEGIN LIBTOOL TAG CONFIG: $tagname]) + +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$_LT_AC_TAGVAR(archive_cmds_need_lc, $1) + +# Whether or not to disallow shared libs when runtime libs are static +allow_libtool_libs_with_static_runtimes=$_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# The host system. +host_alias=$host_alias +host=$host +host_os=$host_os + +# The build system. +build_alias=$build_alias +build=$build +build_os=$build_os + +# An echo program that does not interpret backslashes. +echo=$lt_echo + +# The archiver. +AR=$lt_AR +AR_FLAGS=$lt_AR_FLAGS + +# A C compiler. +LTCC=$lt_LTCC + +# LTCC compiler flags. +LTCFLAGS=$lt_LTCFLAGS + +# A language-specific compiler. +CC=$lt_[]_LT_AC_TAGVAR(compiler, $1) + +# Is the compiler the GNU C compiler? +with_gcc=$_LT_AC_TAGVAR(GCC, $1) + +# An ERE matcher. +EGREP=$lt_EGREP + +# The linker used to build libraries. +LD=$lt_[]_LT_AC_TAGVAR(LD, $1) + +# Whether we need hard or soft links. +LN_S=$lt_LN_S + +# A BSD-compatible nm program. +NM=$lt_NM + +# A symbol stripping program +STRIP=$lt_STRIP + +# Used to examine libraries when file_magic_cmd begins "file" +MAGIC_CMD=$MAGIC_CMD + +# Used on cygwin: DLL creation program. +DLLTOOL="$DLLTOOL" + +# Used on cygwin: object dumper. +OBJDUMP="$OBJDUMP" + +# Used on cygwin: assembler. +AS="$AS" + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# How to pass a linker flag through the compiler. +wl=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) + +# Object file suffix (normally "o"). +objext="$ac_objext" + +# Old archive suffix (normally "a"). +libext="$libext" + +# Shared library suffix (normally ".so"). +shrext_cmds='$shrext_cmds' + +# Executable file suffix (normally ""). +exeext="$exeext" + +# Additional compiler flags for building library objects. +pic_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) +pic_mode=$pic_mode + +# What is the maximum length of a command? +max_cmd_len=$lt_cv_sys_max_cmd_len + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_[]_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) + +# Must we lock files when doing compilation? +need_locks=$lt_need_locks + +# Do we need the lib prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_static, $1) + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_[]_LT_AC_TAGVAR(export_dynamic_flag_spec, $1) + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_[]_LT_AC_TAGVAR(whole_archive_flag_spec, $1) + +# Compiler flag to generate thread-safe objects. +thread_safe_flag_spec=$lt_[]_LT_AC_TAGVAR(thread_safe_flag_spec, $1) + +# Library versioning type. +version_type=$version_type + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME. +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Commands used to build and install an old-style archive. +RANLIB=$lt_RANLIB +old_archive_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_cmds, $1) +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_new_cmds, $1) + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) + +# Commands used to build and install a shared archive. +archive_cmds=$lt_[]_LT_AC_TAGVAR(archive_cmds, $1) +archive_expsym_cmds=$lt_[]_LT_AC_TAGVAR(archive_expsym_cmds, $1) +postinstall_cmds=$lt_postinstall_cmds +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to build a loadable module (assumed same as above if empty) +module_cmds=$lt_[]_LT_AC_TAGVAR(module_cmds, $1) +module_expsym_cmds=$lt_[]_LT_AC_TAGVAR(module_expsym_cmds, $1) + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + +# Dependencies to place before the objects being linked to create a +# shared library. +predep_objects=$lt_[]_LT_AC_TAGVAR(predep_objects, $1) + +# Dependencies to place after the objects being linked to create a +# shared library. +postdep_objects=$lt_[]_LT_AC_TAGVAR(postdep_objects, $1) + +# Dependencies to place before the objects being linked to create a +# shared library. +predeps=$lt_[]_LT_AC_TAGVAR(predeps, $1) + +# Dependencies to place after the objects being linked to create a +# shared library. +postdeps=$lt_[]_LT_AC_TAGVAR(postdeps, $1) + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1) + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method == file_magic. +file_magic_cmd=$lt_file_magic_cmd + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_[]_LT_AC_TAGVAR(allow_undefined_flag, $1) + +# Flag that forces no undefined symbols. +no_undefined_flag=$lt_[]_LT_AC_TAGVAR(no_undefined_flag, $1) + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# Same as above, but a single script fragment to be evaled but not shown. +finish_eval=$lt_finish_eval + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm in a C name address pair +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# This is the shared library runtime path variable. +runpath_var=$runpath_var + +# This is the shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# How to hardcode a shared library path into an executable. +hardcode_action=$_LT_AC_TAGVAR(hardcode_action, $1) + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist. +hardcode_libdir_flag_spec=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) + +# If ld is used when linking, flag to hardcode \$libdir into +# a binary during linking. This must work even if \$libdir does +# not exist. +hardcode_libdir_flag_spec_ld=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) + +# Whether we need a single -rpath flag with a separated argument. +hardcode_libdir_separator=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_separator, $1) + +# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the +# resulting binary. +hardcode_direct=$_LT_AC_TAGVAR(hardcode_direct, $1) + +# Set to yes if using the -LDIR flag during linking hardcodes DIR into the +# resulting binary. +hardcode_minus_L=$_LT_AC_TAGVAR(hardcode_minus_L, $1) + +# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into +# the resulting binary. +hardcode_shlibpath_var=$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1) + +# Set to yes if building a shared library automatically hardcodes DIR into the library +# and all subsequent libraries and executables linked against it. +hardcode_automatic=$_LT_AC_TAGVAR(hardcode_automatic, $1) + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at relink time. +variables_saved_for_relink="$variables_saved_for_relink" + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$_LT_AC_TAGVAR(link_all_deplibs, $1) + +# Compile-time system search path for libraries +sys_lib_search_path_spec=$lt_sys_lib_search_path_spec + +# Run-time system search path for libraries +sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec + +# Fix the shell variable \$srcfile for the compiler. +fix_srcfile_path="$_LT_AC_TAGVAR(fix_srcfile_path, $1)" + +# Set to yes if exported symbols are required. +always_export_symbols=$_LT_AC_TAGVAR(always_export_symbols, $1) + +# The commands to list exported symbols. +export_symbols_cmds=$lt_[]_LT_AC_TAGVAR(export_symbols_cmds, $1) + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_[]_LT_AC_TAGVAR(exclude_expsyms, $1) + +# Symbols that must always be exported. +include_expsyms=$lt_[]_LT_AC_TAGVAR(include_expsyms, $1) + +ifelse([$1],[], +[# ### END LIBTOOL CONFIG], +[# ### END LIBTOOL TAG CONFIG: $tagname]) + +__EOF__ + +ifelse([$1],[], [ + case $host_os in + aix3*) + cat <<\EOF >> "$cfgfile" + +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +EOF + ;; + esac + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1) + + mv -f "$cfgfile" "$ofile" || \ + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" +]) +else + # If there is no Makefile yet, we rely on a make rule to execute + # `config.status --recheck' to rerun these tests and create the + # libtool script then. + ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` + if test -f "$ltmain_in"; then + test -f Makefile && make "$ltmain" + fi +fi +])# AC_LIBTOOL_CONFIG + + +# AC_LIBTOOL_PROG_COMPILER_NO_RTTI([TAGNAME]) +# ------------------------------------------- +AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], +[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl + +_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + +if test "$GCC" = yes; then + _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' + + AC_LIBTOOL_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], + lt_cv_prog_compiler_rtti_exceptions, + [-fno-rtti -fno-exceptions], [], + [_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) +fi +])# AC_LIBTOOL_PROG_COMPILER_NO_RTTI + + +# AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE +# --------------------------------- +AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], +[AC_REQUIRE([AC_CANONICAL_HOST]) +AC_REQUIRE([AC_PROG_NM]) +AC_REQUIRE([AC_OBJEXT]) +# Check for command to grab the raw symbol name followed by C symbol from nm. +AC_MSG_CHECKING([command to parse $NM output from $compiler object]) +AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], +[ +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[[BCDEGRST]]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' + +# Transform an extracted symbol line into a proper C declaration +lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[[BCDT]]' + ;; +cygwin* | mingw* | pw32*) + symcode='[[ABCDGISTW]]' + ;; +hpux*) # Its linker distinguishes data from code symbols + if test "$host_cpu" = ia64; then + symcode='[[ABCDEGRST]]' + fi + lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" + ;; +linux* | k*bsd*-gnu) + if test "$host_cpu" = ia64; then + symcode='[[ABCDGIRSTW]]' + lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" + fi + ;; +irix* | nonstopux*) + symcode='[[BCDEGRST]]' + ;; +osf*) + symcode='[[BCDEGQRST]]' + ;; +solaris*) + symcode='[[BDRT]]' + ;; +sco3.2v5*) + symcode='[[DT]]' + ;; +sysv4.2uw2*) + symcode='[[DT]]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[[ABDT]]' + ;; +sysv4) + symcode='[[DFNSTU]]' + ;; +esac + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[[ABCDGIRSTW]]' ;; +esac + +# Try without a prefix undercore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext < $nlist) && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if grep ' nm_test_var$' "$nlist" >/dev/null; then + if grep ' nm_test_func$' "$nlist" >/dev/null; then + cat < conftest.$ac_ext +#ifdef __cplusplus +extern "C" { +#endif + +EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext' + + cat <> conftest.$ac_ext +#if defined (__STDC__) && __STDC__ +# define lt_ptr_t void * +#else +# define lt_ptr_t char * +# define const +#endif + +/* The mapping between symbol names and symbols. */ +const struct { + const char *name; + lt_ptr_t address; +} +lt_preloaded_symbols[[]] = +{ +EOF + $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext + cat <<\EOF >> conftest.$ac_ext + {0, (lt_ptr_t) 0} +}; + +#ifdef __cplusplus +} +#endif +EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_save_LIBS="$LIBS" + lt_save_CFLAGS="$CFLAGS" + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" + if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then + pipe_works=yes + fi + LIBS="$lt_save_LIBS" + CFLAGS="$lt_save_CFLAGS" + else + echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD + fi + else + echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD + cat conftest.$ac_ext >&5 + fi + rm -f conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test "$pipe_works" = yes; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done +]) +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + AC_MSG_RESULT(failed) +else + AC_MSG_RESULT(ok) +fi +]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE + + +# AC_LIBTOOL_PROG_COMPILER_PIC([TAGNAME]) +# --------------------------------------- +AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC], +[_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)= +_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= +_LT_AC_TAGVAR(lt_prog_compiler_static, $1)= + +AC_MSG_CHECKING([for $compiler option to produce PIC]) + ifelse([$1],[CXX],[ + # C++ specific cases for pic, static, wl, etc. + if test "$GXX" = yes; then + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + amigaos*) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + mingw* | os2* | pw32*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' + ;; + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + *djgpp*) + # DJGPP does not support shared libraries at all + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + interix3*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + sysv4*MP*) + if test -d /usr/nec; then + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + hpux*) + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + else + case $host_os in + aix4* | aix5*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + chorus*) + case $cc_basename in + cxch68*) + # Green Hills C++ Compiler + # _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" + ;; + esac + ;; + darwin*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + case $cc_basename in + xlc*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon' + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + ;; + esac + ;; + dgux*) + case $cc_basename in + ec++*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + ghcx*) + # Green Hills C++ Compiler + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + freebsd* | dragonfly*) + # FreeBSD uses GNU C++ + ;; + hpux9* | hpux10* | hpux11*) + case $cc_basename in + CC*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + if test "$host_cpu" != ia64; then + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + fi + ;; + aCC*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + ;; + *) + ;; + esac + ;; + interix*) + # This is c89, which is MS Visual C++ (no shared libs) + # Anyone wants to do a port? + ;; + irix5* | irix6* | nonstopux*) + case $cc_basename in + CC*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + # CC pic flag -KPIC is the default. + ;; + *) + ;; + esac + ;; + linux* | k*bsd*-gnu) + case $cc_basename in + KCC*) + # KAI C++ Compiler + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + icpc* | ecpc*) + # Intel C++ + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + pgCC*) + # Portland Group C++ compiler. + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + cxx*) + # Compaq C++ + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + *) + ;; + esac + ;; + lynxos*) + ;; + m88k*) + ;; + mvs*) + case $cc_basename in + cxx*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' + ;; + *) + ;; + esac + ;; + netbsd* | netbsdelf*-gnu) + ;; + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + ;; + RCC*) + # Rational C++ 2.4.1 + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + cxx*) + # Digital/Compaq C++ + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + *) + ;; + esac + ;; + psos*) + ;; + solaris*) + case $cc_basename in + CC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + ;; + *) + ;; + esac + ;; + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + lcc*) + # Lucid + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + *) + ;; + esac + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + case $cc_basename in + CC*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + vxworks*) + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +], +[ + if test "$GCC" = yes; then + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + amigaos*) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + + beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | pw32* | os2*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + + interix3*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + enable_shared=no + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + + hpux*) + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + darwin*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + case $cc_basename in + xlc*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon' + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + ;; + esac + ;; + + mingw* | pw32* | os2*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' + ;; + + hpux9* | hpux10* | hpux11*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC (with -KPIC) is the default. + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + newsos6) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + linux* | k*bsd*-gnu) + case $cc_basename in + icc* | ecc*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + pgcc* | pgf77* | pgf90* | pgf95*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + ccc*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All Alpha code is PIC. + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + esac + ;; + + osf3* | osf4* | osf5*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All OSF/1 code is PIC. + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + solaris*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + case $cc_basename in + f77* | f90* | f95*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; + *) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; + esac + ;; + + sunos4*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec ;then + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + unicos*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + + uts4*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *) + _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +]) +AC_MSG_RESULT([$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)]) + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)"; then + AC_LIBTOOL_COMPILER_OPTION([if $compiler PIC flag $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) works], + _LT_AC_TAGVAR(lt_prog_compiler_pic_works, $1), + [$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])], [], + [case $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) in + "" | " "*) ;; + *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)" ;; + esac], + [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) +fi +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])" + ;; +esac + +# +# Check to make sure the static flag actually works. +# +wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_AC_TAGVAR(lt_prog_compiler_static, $1)\" +AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], + _LT_AC_TAGVAR(lt_prog_compiler_static_works, $1), + $lt_tmp_static_flag, + [], + [_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=]) +]) + + +# AC_LIBTOOL_PROG_LD_SHLIBS([TAGNAME]) +# ------------------------------------ +# See if the linker supports building shared libraries. +AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS], +[AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) +ifelse([$1],[CXX],[ + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + case $host_os in + aix4* | aix5*) + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | grep 'GNU' > /dev/null; then + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' + else + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' + fi + ;; + pw32*) + _LT_AC_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" + ;; + cygwin* | mingw*) + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]] /s/.* \([[^ ]]*\)/\1 DATA/;/^.* __nm__/s/^.* __nm__\([[^ ]]*\) [[^ ]]*/\1 DATA/;/^I /d;/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols' + ;; + linux* | k*bsd*-gnu) + _LT_AC_TAGVAR(link_all_deplibs, $1)=no + ;; + *) + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + ;; + esac +],[ + runpath_var= + _LT_AC_TAGVAR(allow_undefined_flag, $1)= + _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no + _LT_AC_TAGVAR(archive_cmds, $1)= + _LT_AC_TAGVAR(archive_expsym_cmds, $1)= + _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)= + _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)= + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= + _LT_AC_TAGVAR(thread_safe_flag_spec, $1)= + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_minus_L, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown + _LT_AC_TAGVAR(hardcode_automatic, $1)=no + _LT_AC_TAGVAR(module_cmds, $1)= + _LT_AC_TAGVAR(module_expsym_cmds, $1)= + _LT_AC_TAGVAR(always_export_symbols, $1)=no + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + _LT_AC_TAGVAR(include_expsyms, $1)= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ` (' and `)$', so one must not match beginning or + # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', + # as well as any symbol that contains `d'. + _LT_AC_TAGVAR(exclude_expsyms, $1)="_GLOBAL_OFFSET_TABLE_" + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + extract_expsyms_cmds= + # Just being paranoid about ensuring that cc_basename is set. + _LT_CC_BASENAME([$compiler]) + case $host_os in + cygwin* | mingw* | pw32*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; + esac + + _LT_AC_TAGVAR(ld_shlibs, $1)=yes + if test "$with_gnu_ld" = yes; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='${wl}' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= + fi + supports_anon_versioning=no + case `$LD -v 2>/dev/null` in + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix3* | aix4* | aix5*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + _LT_AC_TAGVAR(ld_shlibs, $1)=no + cat <&2 + +*** Warning: the GNU linker, at least up to release 2.9.1, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to modify your PATH +*** so that a non-GNU linker is found, and then restart. + +EOF + fi + ;; + + amigaos*) + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + + # Samuel A. Falvo II reports + # that the semantics of dynamic libraries on AmigaOS, at least up + # to version 4, is to share data among multiple programs linked + # with the same dynamic library. Since this doesn't match the + # behavior of shared libraries on other platforms, we can't use + # them. + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + + beos*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + cygwin* | mingw* | pw32*) + # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_AC_TAGVAR(always_export_symbols, $1)=no + _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols' + + if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + interix3*) + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + linux* | k*bsd*-gnu) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + tmp_addflag= + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + esac + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + + if test $supports_anon_versioning = yes; then + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + $echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + _LT_AC_TAGVAR(link_all_deplibs, $1)=no + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then + _LT_AC_TAGVAR(ld_shlibs, $1)=no + cat <&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +EOF + elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) + _LT_AC_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + sunos4*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + + if test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no; then + runpath_var= + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_AC_TAGVAR(always_export_symbols, $1)=yes + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported + fi + ;; + + aix4* | aix5*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | grep 'GNU' > /dev/null; then + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' + else + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_AC_TAGVAR(archive_cmds, $1)='' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + + if test "$GCC" = yes; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && \ + strings "$collect2name" | grep resolve_lib_name >/dev/null + then + # We have reworked collect2 + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + else + # We have old collect2 + _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + _LT_AC_TAGVAR(always_export_symbols, $1)=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an empty executable. + _LT_AC_SYS_LIBPATH_AIX + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' + _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an empty executable. + _LT_AC_SYS_LIBPATH_AIX + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' + # Exported symbols can be pulled into shared objects from archives + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes + # This is similar to how AIX traditionally builds its shared libraries. + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + amigaos*) + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + # see comment about different semantics on the GNU ld section + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + + bsdi[[45]]*) + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic + ;; + + cygwin* | mingw* | pw32*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='true' + # FIXME: Should let the user specify the lib program. + _LT_AC_TAGVAR(old_archive_cmds, $1)='lib /OUT:$oldlib$oldobjs$old_deplibs' + _LT_AC_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`' + _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + + darwin* | rhapsody*) + case $host_os in + rhapsody* | darwin1.[[012]]) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress' + ;; + *) # Darwin 1.3 on + if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + else + case ${MACOSX_DEPLOYMENT_TARGET} in + 10.[[012]]) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + ;; + 10.*) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}dynamic_lookup' + ;; + esac + fi + ;; + esac + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_automatic, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + if test "$GCC" = yes ; then + output_verbose_link_cmd='echo' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' + _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else + case $cc_basename in + xlc*) + output_verbose_link_cmd='echo' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' + _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + ;; + *) + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + fi + ;; + + dgux*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + freebsd1*) + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + hpux9*) + if test "$GCC" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + ;; + + hpux10*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + fi + ;; + + hpux11*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + case $host_cpu in + hppa*64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + fi + if test "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + newsos6) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + openbsd*) + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + else + case $host_os in + openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + ;; + esac + fi + ;; + + os2*) + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_AC_TAGVAR(archive_cmds, $1)='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + else + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ + $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' + + # Both c and cxx compiler support -rpath directly + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + fi + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + solaris*) + _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text' + if test "$GCC" = yes; then + wlarc='${wl}' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' + else + wlarc='' + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The compiler driver will combine linker options so we + # cannot just pass the convience library names through + # without $wl, iff we do not link with $LD. + # Luckily, gcc supports the same syntax we need for Sun Studio. + # Supported since Solaris 2.6 (maybe 2.5.1?) + case $wlarc in + '') + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;; + *) + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; + esac ;; + esac + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + ;; + + sunos4*) + if test "x$host_vendor" = xsequent; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4) + case $host_vendor in + sni) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' + _LT_AC_TAGVAR(hardcode_direct, $1)=no + ;; + motorola) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4.3*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + _LT_AC_TAGVAR(ld_shlibs, $1)=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7*) + _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + fi +]) +AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)]) +test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no + +# +# Do we need to explicitly link libc? +# +case "x$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)" in +x|xyes) + # Assume -lc should be added + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $_LT_AC_TAGVAR(archive_cmds, $1) in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + AC_MSG_CHECKING([whether -lc should be explicitly linked in]) + $rm conftest* + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + + if AC_TRY_EVAL(ac_compile) 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) + pic_flag=$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$_LT_AC_TAGVAR(allow_undefined_flag, $1) + _LT_AC_TAGVAR(allow_undefined_flag, $1)= + if AC_TRY_EVAL(_LT_AC_TAGVAR(archive_cmds, $1) 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) + then + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + else + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes + fi + _LT_AC_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $rm conftest* + AC_MSG_RESULT([$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)]) + ;; + esac + fi + ;; +esac +])# AC_LIBTOOL_PROG_LD_SHLIBS + + +# _LT_AC_FILE_LTDLL_C +# ------------------- +# Be careful that the start marker always follows a newline. +AC_DEFUN([_LT_AC_FILE_LTDLL_C], [ +# /* ltdll.c starts here */ +# #define WIN32_LEAN_AND_MEAN +# #include +# #undef WIN32_LEAN_AND_MEAN +# #include +# +# #ifndef __CYGWIN__ +# # ifdef __CYGWIN32__ +# # define __CYGWIN__ __CYGWIN32__ +# # endif +# #endif +# +# #ifdef __cplusplus +# extern "C" { +# #endif +# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved); +# #ifdef __cplusplus +# } +# #endif +# +# #ifdef __CYGWIN__ +# #include +# DECLARE_CYGWIN_DLL( DllMain ); +# #endif +# HINSTANCE __hDllInstance_base; +# +# BOOL APIENTRY +# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved) +# { +# __hDllInstance_base = hInst; +# return TRUE; +# } +# /* ltdll.c ends here */ +])# _LT_AC_FILE_LTDLL_C + + +# _LT_AC_TAGVAR(VARNAME, [TAGNAME]) +# --------------------------------- +AC_DEFUN([_LT_AC_TAGVAR], [ifelse([$2], [], [$1], [$1_$2])]) + + +# old names +AC_DEFUN([AM_PROG_LIBTOOL], [AC_PROG_LIBTOOL]) +AC_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) +AC_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) +AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) +AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) +AC_DEFUN([AM_PROG_LD], [AC_PROG_LD]) +AC_DEFUN([AM_PROG_NM], [AC_PROG_NM]) + +# This is just to silence aclocal about the macro not being used +ifelse([AC_DISABLE_FAST_INSTALL]) + +AC_DEFUN([LT_AC_PROG_GCJ], +[AC_CHECK_TOOL(GCJ, gcj, no) + test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" + AC_SUBST(GCJFLAGS) +]) + +AC_DEFUN([LT_AC_PROG_RC], +[AC_CHECK_TOOL(RC, windres, no) +]) + +############################################################ +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_SED. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # +############################################################ +# LT_AC_PROG_SED +# -------------- +# Check for a fully-functional sed program, that truncates +# as few characters as possible. Prefer GNU sed if found. +AC_DEFUN([LT_AC_PROG_SED], +[AC_MSG_CHECKING([for a sed that does not truncate output]) +AC_CACHE_VAL(lt_cv_path_SED, +[# Loop through the user's path and test for sed and gsed. +# Then use that list of sed's as ones to test for truncation. +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for lt_ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then + lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" + fi + done + done +done +lt_ac_max=0 +lt_ac_count=0 +# Add /usr/xpg4/bin/sed as it is typically found on Solaris +# along with /bin/sed that truncates output. +for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do + test ! -f $lt_ac_sed && continue + cat /dev/null > conftest.in + lt_ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >conftest.in + # Check for GNU sed and select it if it is found. + if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then + lt_cv_path_SED=$lt_ac_sed + break + fi + while true; do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo >>conftest.nl + $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break + cmp -s conftest.out conftest.nl || break + # 10000 chars as input seems more than enough + test $lt_ac_count -gt 10 && break + lt_ac_count=`expr $lt_ac_count + 1` + if test $lt_ac_count -gt $lt_ac_max; then + lt_ac_max=$lt_ac_count + lt_cv_path_SED=$lt_ac_sed + fi + done +done +]) +SED=$lt_cv_path_SED +AC_MSG_RESULT([$SED]) +]) + +dnl PKG_CHECK_MODULES(GSTUFF, gtk+-2.0 >= 1.3 glib = 1.3.4, action-if, action-not) +dnl defines GSTUFF_LIBS, GSTUFF_CFLAGS, see pkg-config man page +dnl also defines GSTUFF_PKG_ERRORS on error +AC_DEFUN([PKG_CHECK_MODULES], [ + succeeded=no + + if test -z "$PKG_CONFIG"; then + AC_PATH_PROG(PKG_CONFIG, pkg-config, no) + fi + + if test "$PKG_CONFIG" = "no" ; then + echo "*** The pkg-config script could not be found. Make sure it is" + echo "*** in your path, or set the PKG_CONFIG environment variable" + echo "*** to the full path to pkg-config." + echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config." + else + PKG_CONFIG_MIN_VERSION=0.9.0 + if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then + AC_MSG_CHECKING(for $2) + + if $PKG_CONFIG --exists "$2" ; then + AC_MSG_RESULT(yes) + succeeded=yes + + AC_MSG_CHECKING($1_CFLAGS) + $1_CFLAGS=`$PKG_CONFIG --cflags "$2"` + AC_MSG_RESULT($$1_CFLAGS) + + AC_MSG_CHECKING($1_LIBS) + $1_LIBS=`$PKG_CONFIG --libs "$2"` + AC_MSG_RESULT($$1_LIBS) + else + $1_CFLAGS="" + $1_LIBS="" + ## If we have a custom action on failure, don't print errors, but + ## do set a variable so people can do so. + $1_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"` + ifelse([$4], ,echo $$1_PKG_ERRORS,) + fi + + AC_SUBST($1_CFLAGS) + AC_SUBST($1_LIBS) + else + echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer." + echo "*** See http://www.freedesktop.org/software/pkgconfig" + fi + fi + + if test $succeeded = yes; then + ifelse([$3], , :, [$3]) + else + ifelse([$4], , AC_MSG_ERROR([Library requirements ($2) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.]), [$4]) + fi +]) + + diff --git a/aclocal.m4 b/aclocal.m4 new file mode 100644 index 000000000..0e9094464 --- /dev/null +++ b/aclocal.m4 @@ -0,0 +1,892 @@ +# generated automatically by aclocal 1.9.6 -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +# 2005 Free Software Foundation, Inc. +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +# Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_AUTOMAKE_VERSION(VERSION) +# ---------------------------- +# Automake X.Y traces this macro to ensure aclocal.m4 has been +# generated from the m4 files accompanying Automake X.Y. +AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"]) + +# AM_SET_CURRENT_AUTOMAKE_VERSION +# ------------------------------- +# Call AM_AUTOMAKE_VERSION so it can be traced. +# This function is AC_REQUIREd by AC_INIT_AUTOMAKE. +AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], + [AM_AUTOMAKE_VERSION([1.9.6])]) + +# AM_AUX_DIR_EXPAND -*- Autoconf -*- + +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets +# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to +# `$srcdir', `$srcdir/..', or `$srcdir/../..'. +# +# Of course, Automake must honor this variable whenever it calls a +# tool from the auxiliary directory. The problem is that $srcdir (and +# therefore $ac_aux_dir as well) can be either absolute or relative, +# depending on how configure is run. This is pretty annoying, since +# it makes $ac_aux_dir quite unusable in subdirectories: in the top +# source directory, any form will work fine, but in subdirectories a +# relative path needs to be adjusted first. +# +# $ac_aux_dir/missing +# fails when called from a subdirectory if $ac_aux_dir is relative +# $top_srcdir/$ac_aux_dir/missing +# fails if $ac_aux_dir is absolute, +# fails when called from a subdirectory in a VPATH build with +# a relative $ac_aux_dir +# +# The reason of the latter failure is that $top_srcdir and $ac_aux_dir +# are both prefixed by $srcdir. In an in-source build this is usually +# harmless because $srcdir is `.', but things will broke when you +# start a VPATH build or use an absolute $srcdir. +# +# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, +# iff we strip the leading $srcdir from $ac_aux_dir. That would be: +# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` +# and then we would define $MISSING as +# MISSING="\${SHELL} $am_aux_dir/missing" +# This will work as long as MISSING is not called from configure, because +# unfortunately $(top_srcdir) has no meaning in configure. +# However there are other variables, like CC, which are often used in +# configure, and could therefore not use this "fixed" $ac_aux_dir. +# +# Another solution, used here, is to always expand $ac_aux_dir to an +# absolute PATH. The drawback is that using absolute paths prevent a +# configured tree to be moved without reconfiguration. + +AC_DEFUN([AM_AUX_DIR_EXPAND], +[dnl Rely on autoconf to set up CDPATH properly. +AC_PREREQ([2.50])dnl +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` +]) + +# AM_CONDITIONAL -*- Autoconf -*- + +# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 7 + +# AM_CONDITIONAL(NAME, SHELL-CONDITION) +# ------------------------------------- +# Define a conditional. +AC_DEFUN([AM_CONDITIONAL], +[AC_PREREQ(2.52)dnl + ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl +AC_SUBST([$1_TRUE]) +AC_SUBST([$1_FALSE]) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi +AC_CONFIG_COMMANDS_PRE( +[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then + AC_MSG_ERROR([[conditional "$1" was never defined. +Usually this means the macro was only invoked conditionally.]]) +fi])]) + + +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 8 + +# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be +# written in clear, in which case automake, when reading aclocal.m4, +# will think it sees a *use*, and therefore will trigger all it's +# C support machinery. Also note that it means that autoscan, seeing +# CC etc. in the Makefile, will ask for an AC_PROG_CC use... + + +# _AM_DEPENDENCIES(NAME) +# ---------------------- +# See how the compiler implements dependency checking. +# NAME is "CC", "CXX", "GCJ", or "OBJC". +# We try a few techniques and use that to set a single cache variable. +# +# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was +# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular +# dependency, and given that the user is not expected to run this macro, +# just rely on AC_PROG_CC. +AC_DEFUN([_AM_DEPENDENCIES], +[AC_REQUIRE([AM_SET_DEPDIR])dnl +AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl +AC_REQUIRE([AM_MAKE_INCLUDE])dnl +AC_REQUIRE([AM_DEP_TRACK])dnl + +ifelse([$1], CC, [depcc="$CC" am_compiler_list=], + [$1], CXX, [depcc="$CXX" am_compiler_list=], + [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], + [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], + [depcc="$$1" am_compiler_list=]) + +AC_CACHE_CHECK([dependency style of $depcc], + [am_cv_$1_dependencies_compiler_type], +[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_$1_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` + fi + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + case $depmode in + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + none) break ;; + esac + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. + if depmode=$depmode \ + source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_$1_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_$1_dependencies_compiler_type=none +fi +]) +AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) +AM_CONDITIONAL([am__fastdep$1], [ + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) +]) + + +# AM_SET_DEPDIR +# ------------- +# Choose a directory name for dependency files. +# This macro is AC_REQUIREd in _AM_DEPENDENCIES +AC_DEFUN([AM_SET_DEPDIR], +[AC_REQUIRE([AM_SET_LEADING_DOT])dnl +AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl +]) + + +# AM_DEP_TRACK +# ------------ +AC_DEFUN([AM_DEP_TRACK], +[AC_ARG_ENABLE(dependency-tracking, +[ --disable-dependency-tracking speeds up one-time build + --enable-dependency-tracking do not reject slow dependency extractors]) +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' +fi +AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) +AC_SUBST([AMDEPBACKSLASH]) +]) + +# Generate code to set up dependency tracking. -*- Autoconf -*- + +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +#serial 3 + +# _AM_OUTPUT_DEPENDENCY_COMMANDS +# ------------------------------ +AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], +[for mf in $CONFIG_FILES; do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named `Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # So let's grep whole file. + if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then + dirpart=`AS_DIRNAME("$mf")` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running `make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`AS_DIRNAME(["$file"])` + AS_MKDIR_P([$dirpart/$fdir]) + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done +done +])# _AM_OUTPUT_DEPENDENCY_COMMANDS + + +# AM_OUTPUT_DEPENDENCY_COMMANDS +# ----------------------------- +# This macro should only be invoked once -- use via AC_REQUIRE. +# +# This code is only required when automatic dependency tracking +# is enabled. FIXME. This creates each `.P' file that we will +# need in order to bootstrap the dependency handling code. +AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], +[AC_CONFIG_COMMANDS([depfiles], + [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], + [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) +]) + +# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 8 + +# AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS. +AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)]) + +# Do all the work for Automake. -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 12 + +# This macro actually does too much. Some checks are only needed if +# your package does certain things. But this isn't really a big deal. + +# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) +# AM_INIT_AUTOMAKE([OPTIONS]) +# ----------------------------------------------- +# The call with PACKAGE and VERSION arguments is the old style +# call (pre autoconf-2.50), which is being phased out. PACKAGE +# and VERSION should now be passed to AC_INIT and removed from +# the call to AM_INIT_AUTOMAKE. +# We support both call styles for the transition. After +# the next Automake release, Autoconf can make the AC_INIT +# arguments mandatory, and then we can depend on a new Autoconf +# release and drop the old call support. +AC_DEFUN([AM_INIT_AUTOMAKE], +[AC_PREREQ([2.58])dnl +dnl Autoconf wants to disallow AM_ names. We explicitly allow +dnl the ones we care about. +m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl +AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl +AC_REQUIRE([AC_PROG_INSTALL])dnl +# test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && + test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi +AC_SUBST([CYGPATH_W]) + +# Define the identity of the package. +dnl Distinguish between old-style and new-style calls. +m4_ifval([$2], +[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl + AC_SUBST([PACKAGE], [$1])dnl + AC_SUBST([VERSION], [$2])], +[_AM_SET_OPTIONS([$1])dnl + AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl + AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl + +_AM_IF_OPTION([no-define],, +[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) + AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl + +# Some tools Automake needs. +AC_REQUIRE([AM_SANITY_CHECK])dnl +AC_REQUIRE([AC_ARG_PROGRAM])dnl +AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) +AM_MISSING_PROG(AUTOCONF, autoconf) +AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) +AM_MISSING_PROG(AUTOHEADER, autoheader) +AM_MISSING_PROG(MAKEINFO, makeinfo) +AM_PROG_INSTALL_SH +AM_PROG_INSTALL_STRIP +AC_REQUIRE([AM_PROG_MKDIR_P])dnl +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([AC_PROG_MAKE_SET])dnl +AC_REQUIRE([AM_SET_LEADING_DOT])dnl +_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], + [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], + [_AM_PROG_TAR([v7])])]) +_AM_IF_OPTION([no-dependencies],, +[AC_PROVIDE_IFELSE([AC_PROG_CC], + [_AM_DEPENDENCIES(CC)], + [define([AC_PROG_CC], + defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl +AC_PROVIDE_IFELSE([AC_PROG_CXX], + [_AM_DEPENDENCIES(CXX)], + [define([AC_PROG_CXX], + defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl +]) +]) + + +# When config.status generates a header, we must update the stamp-h file. +# This file resides in the same directory as the config header +# that is generated. The stamp files are numbered to have different names. + +# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the +# loop where config.status creates the headers, so we can generate +# our stamp files there. +AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], +[# Compute $1's index in $config_headers. +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $1 | $1:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count]) + +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_SH +# ------------------ +# Define $install_sh. +AC_DEFUN([AM_PROG_INSTALL_SH], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +install_sh=${install_sh-"$am_aux_dir/install-sh"} +AC_SUBST(install_sh)]) + +# Copyright (C) 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 2 + +# Check whether the underlying file-system supports filenames +# with a leading dot. For instance MS-DOS doesn't. +AC_DEFUN([AM_SET_LEADING_DOT], +[rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null +AC_SUBST([am__leading_dot])]) + +# Add --enable-maintainer-mode option to configure. -*- Autoconf -*- +# From Jim Meyering + +# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 4 + +AC_DEFUN([AM_MAINTAINER_MODE], +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT([$USE_MAINTAINER_MODE]) + AM_CONDITIONAL(MAINTAINER_MODE, [test $USE_MAINTAINER_MODE = yes]) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + +AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE]) + +# Check to see how 'make' treats includes. -*- Autoconf -*- + +# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 3 + +# AM_MAKE_INCLUDE() +# ----------------- +# Check to see how make treats includes. +AC_DEFUN([AM_MAKE_INCLUDE], +[am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo done +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +AC_MSG_CHECKING([for style of include used by $am_make]) +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# We grep out `Entering directory' and `Leaving directory' +# messages which can occur if `w' ends up in MAKEFLAGS. +# In particular we don't look at `^make:' because GNU make might +# be invoked under some other name (usually "gmake"), in which +# case it prints its new name instead of `make'. +if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then + am__include=include + am__quote= + _am_result=GNU +fi +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then + am__include=.include + am__quote="\"" + _am_result=BSD + fi +fi +AC_SUBST([am__include]) +AC_SUBST([am__quote]) +AC_MSG_RESULT([$_am_result]) +rm -f confinc confmf +]) + +# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- + +# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2005 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 4 + +# AM_MISSING_PROG(NAME, PROGRAM) +# ------------------------------ +AC_DEFUN([AM_MISSING_PROG], +[AC_REQUIRE([AM_MISSING_HAS_RUN]) +$1=${$1-"${am_missing_run}$2"} +AC_SUBST($1)]) + + +# AM_MISSING_HAS_RUN +# ------------------ +# Define MISSING if not defined so far and test if it supports --run. +# If it does, set am_missing_run to use it, otherwise, to nothing. +AC_DEFUN([AM_MISSING_HAS_RUN], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" +# Use eval to expand $SHELL +if eval "$MISSING --run true"; then + am_missing_run="$MISSING --run " +else + am_missing_run= + AC_MSG_WARN([`missing' script is too old or missing]) +fi +]) + +# Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_MKDIR_P +# --------------- +# Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise. +# +# Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories +# created by `make install' are always world readable, even if the +# installer happens to have an overly restrictive umask (e.g. 077). +# This was a mistake. There are at least two reasons why we must not +# use `-m 0755': +# - it causes special bits like SGID to be ignored, +# - it may be too restrictive (some setups expect 775 directories). +# +# Do not use -m 0755 and let people choose whatever they expect by +# setting umask. +# +# We cannot accept any implementation of `mkdir' that recognizes `-p'. +# Some implementations (such as Solaris 8's) are not thread-safe: if a +# parallel make tries to run `mkdir -p a/b' and `mkdir -p a/c' +# concurrently, both version can detect that a/ is missing, but only +# one can create it and the other will error out. Consequently we +# restrict ourselves to GNU make (using the --version option ensures +# this.) +AC_DEFUN([AM_PROG_MKDIR_P], +[if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then + # We used to keeping the `.' as first argument, in order to + # allow $(mkdir_p) to be used without argument. As in + # $(mkdir_p) $(somedir) + # where $(somedir) is conditionally defined. However this is wrong + # for two reasons: + # 1. if the package is installed by a user who cannot write `.' + # make install will fail, + # 2. the above comment should most certainly read + # $(mkdir_p) $(DESTDIR)$(somedir) + # so it does not work when $(somedir) is undefined and + # $(DESTDIR) is not. + # To support the latter case, we have to write + # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), + # so the `.' trick is pointless. + mkdir_p='mkdir -p --' +else + # On NextStep and OpenStep, the `mkdir' command does not + # recognize any option. It will interpret all options as + # directories to create, and then abort because `.' already + # exists. + for d in ./-p ./--version; + do + test -d $d && rmdir $d + done + # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. + if test -f "$ac_aux_dir/mkinstalldirs"; then + mkdir_p='$(mkinstalldirs)' + else + mkdir_p='$(install_sh) -d' + fi +fi +AC_SUBST([mkdir_p])]) + +# Helper functions for option handling. -*- Autoconf -*- + +# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 3 + +# _AM_MANGLE_OPTION(NAME) +# ----------------------- +AC_DEFUN([_AM_MANGLE_OPTION], +[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) + +# _AM_SET_OPTION(NAME) +# ------------------------------ +# Set option NAME. Presently that only means defining a flag for this option. +AC_DEFUN([_AM_SET_OPTION], +[m4_define(_AM_MANGLE_OPTION([$1]), 1)]) + +# _AM_SET_OPTIONS(OPTIONS) +# ---------------------------------- +# OPTIONS is a space-separated list of Automake options. +AC_DEFUN([_AM_SET_OPTIONS], +[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) + +# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) +# ------------------------------------------- +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +AC_DEFUN([_AM_IF_OPTION], +[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) + +# Check to make sure that the build environment is sane. -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 4 + +# AM_SANITY_CHECK +# --------------- +AC_DEFUN([AM_SANITY_CHECK], +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftest.file +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` + if test "$[*]" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftest.file` + fi + rm -f conftest.file + if test "$[*]" != "X $srcdir/configure conftest.file" \ + && test "$[*]" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "$[2]" = conftest.file + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +AC_MSG_RESULT(yes)]) + +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_STRIP +# --------------------- +# One issue with vendor `install' (even GNU) is that you can't +# specify the program used to strip binaries. This is especially +# annoying in cross-compiling environments, where the build's strip +# is unlikely to handle the host's binaries. +# Fortunately install-sh will honor a STRIPPROG variable, so we +# always use install-sh in `make install-strip', and initialize +# STRIPPROG with the value of the STRIP variable (set by the user). +AC_DEFUN([AM_PROG_INSTALL_STRIP], +[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +# Installed binaries are usually stripped using `strip' when the user +# run `make install-strip'. However `strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the `STRIP' environment variable to overrule this program. +dnl Don't test for $cross_compiling = yes, because it might be `maybe'. +if test "$cross_compiling" != no; then + AC_CHECK_TOOL([STRIP], [strip], :) +fi +INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" +AC_SUBST([INSTALL_STRIP_PROGRAM])]) + +# Check how to create a tarball. -*- Autoconf -*- + +# Copyright (C) 2004, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 2 + +# _AM_PROG_TAR(FORMAT) +# -------------------- +# Check how to create a tarball in format FORMAT. +# FORMAT should be one of `v7', `ustar', or `pax'. +# +# Substitute a variable $(am__tar) that is a command +# writing to stdout a FORMAT-tarball containing the directory +# $tardir. +# tardir=directory && $(am__tar) > result.tar +# +# Substitute a variable $(am__untar) that extract such +# a tarball read from stdin. +# $(am__untar) < result.tar +AC_DEFUN([_AM_PROG_TAR], +[# Always define AMTAR for backward compatibility. +AM_MISSING_PROG([AMTAR], [tar]) +m4_if([$1], [v7], + [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], + [m4_case([$1], [ustar],, [pax],, + [m4_fatal([Unknown tar format])]) +AC_MSG_CHECKING([how to create a $1 tar archive]) +# Loop over all known methods to create a tar archive until one works. +_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' +_am_tools=${am_cv_prog_tar_$1-$_am_tools} +# Do not fold the above two line into one, because Tru64 sh and +# Solaris sh will not grok spaces in the rhs of `-'. +for _am_tool in $_am_tools +do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; + do + AM_RUN_LOG([$_am_tar --version]) && break + done + am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x $1 -w "$$tardir"' + am__tar_='pax -L -x $1 -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H $1 -L' + am__tar_='find "$tardir" -print | cpio -o -H $1 -L' + am__untar='cpio -i -H $1 -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_$1}" && break + + # tar/untar a dummy directory, and stop if the command works + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) + rm -rf conftest.dir + if test -s conftest.tar; then + AM_RUN_LOG([$am__untar /dev/null 2>&1 && break + fi +done +rm -rf conftest.dir + +AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) +AC_MSG_RESULT([$am_cv_prog_tar_$1])]) +AC_SUBST([am__tar]) +AC_SUBST([am__untar]) +]) # _AM_PROG_TAR + +m4_include([acinclude.m4]) diff --git a/autocorrect/Makefile.am b/autocorrect/Makefile.am new file mode 100644 index 000000000..fde9d50b8 --- /dev/null +++ b/autocorrect/Makefile.am @@ -0,0 +1,6 @@ +# (Is autocorrect.xml still used?) + +# WARNING: Do not add any other language here - use kde-i18n/*/data/koffice/autocorrect for that. +scripts_DATA = autocorrect.xml en_US.xml +scriptsdir = $(kde_datadir)/koffice/autocorrect + diff --git a/autocorrect/autocorrect.xml b/autocorrect/autocorrect.xml new file mode 100644 index 000000000..0b252d573 --- /dev/null +++ b/autocorrect/autocorrect.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/autocorrect/en_US.xml b/autocorrect/en_US.xml new file mode 100644 index 000000000..bb5785b39 --- /dev/null +++ b/autocorrect/en_US.xml @@ -0,0 +1,4141 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/changes-1.4 b/changes-1.4 new file mode 100644 index 000000000..f3b4666cf --- /dev/null +++ b/changes-1.4 @@ -0,0 +1,210 @@ +New applications: krita, kexi + +Krita +===== + +Krita is an image editor and paint application with a wide range of +applications, from photo editing to the creation of original artwork. +Sporting a clear and uncluttered interface (for a paint app...) it makes the +features it delivers accessible and intuitive to use. + +This is the first public release of Krita and while it provides a coherent set +of features, it is only the first stepping stone towards a flexible paint +application for artists and image editors. + +Krita offers: + +* Layers (without fixed boundaries). +* A familiar set of tools -- brushes, selection tools and shape tools. +* Painting with filters. +* An extensible system for the addition of new color and paint models. +* Support for pressure sensitive tablets. +* The ability to read most graphics file formats, including gimp and photoshop files. +* Exporting to many graphics file formats (but not gimp or photoshop) +* A complete colour management system based on lcms. +* A useful set of filters (implemented as plugins, so the set of filters + is extensible) including a CImg based image restoration plugin. +* The ability to use Gimp palettes, brushes, patterns and gradients + +Caveats: + +* In this beta version exif data embedded in jpeg images is not preserved. +* Some tools and menu options do not yet function completely correctly. + +=============== + +Kexi [ this is from http://www.kexi-project.org/wiki/wikiview/index.php?AnnouncementForKOffice1.4 ] +==== + +KOffice 1.4 is the first official release to include Kexi - the KOffice database management application. + Kexi is an integrated environment for managing data. It can be used for creating database schemas; inserting data; performing queries, and processing data. Forms can be created to provide a custom interface to your data. All database objects - tables, queries and forms - are stored in the database, making it easy to share databases. + + Kexi is considered as a long awaited Open Source competitor for MS Access, Filemaker and Oracle Forms. Its development is motivated by the lack of Rapid Application Development (RAD) tools for database systems that are sufficiently powerful, inexpensive, open standards driven and portable across many OSes and hardware platforms. + +Overview + Supports database storage in files and on database servers. + Graphical interface for creating and altering table structures. + Form entry, with visual form designer. + Advanced tabular data view. + Intuitive query designer - no knowledge of SQL required! + Integrated SQL Editor available for advanced users. + +Data Processing and Access + Data migration from MySQL, PostgreSQL and MS Access databases (MS Access available as an external plugin). + KexiDB API available for developers for integration with other applications. + Scripting support with Python language - hidden for 0.1 version. + (JavaScript/ECMA-Script support is planned) + Easy data report generation (planned). + +Database Storage + Kexi can store databases in files and on database servers, while providing a common user interface. Database drivers for the following database engines are available: + - SQLite (Native file format: version 2 and 3) + - PostgreSQL + - MySQL + Support for other database systems is planned for future versions, including the ODBC interface, for simpler and more flexible integration in corporate environments. + +=================== + +KOffice Workspace (koshell): +* New sidebar +* Tab support + +KOffice-wide changes: +* Document information dialog: Added keywords and subject for the document, as well as + position, company, and telephone (home/work) for the author +* Make the default unit be inch or cm depending on the KDE-wide measure system (imperial or metric) +* Improvements to the DCOP interface for loading and saving. +* -dpi command line option to override the DPI detected by X. You can set one value for x and y, or use -dpi x,y +* Improve filter chains to avoid absurd chains (e.g. kword -> plain text -> kspread) +* Startup dialog: themeable icons, correct initial tab, hide non-existent recent local files +* Page layout dialog: better preview, new GUI for margins +* Rulers: made more readable at all resolutions, added tooltips + +kotext (shared by KWord and KPresenter): +* Word completion with tooltip +* Open links by clicking on them, use hand pointer, show link target in statusbar. +* Tab/Shift+Tab for changing indentation in lists +* Rewritten spell-checking support (based on kspell2, the main reason for the kdelibs >= 3.3 requirement) + which is much faster and solves many problems (e.g. KOffice-1.3's hanging right-click-menu) +* Improved autocorrection (better URL detection among other things) + +KWord: +* OASIS file format support (almost complete) +* Copy/Paste and Drag-n-drop use the OASIS format. +* Make it possible to select entire paragraphs from the left margin again. +* Inline text frames can be navigated into using Left and Right keys. +* New "statistic" variables (number of words, number of lines etc.) +* "Select All Frames" features +* Non-breaking hyphen, which can be inserted with Ctrl+Shift+Minus +* Alt+Right and Alt+Left shortcuts for increasing/decreasing the numbering level +* Removed non-working feature "Type anywhere cursor" +* When dropping a link to an image, let the user choose between inserting a URL and the image +* Rewritten "convert to text box" and "convert table to text" features so that they + don't use the clipboard anymore. +* PageUp/PageDown now moves the caret by default (it's still configurable). +* When saving a new document, suggest a file name based on the beginning of the document +* Reorganized and simplified GUI of the configuration dialog +* Support for "protect content" in all types of framesets +* Support for different run-around-gaps on every side of the frame + +KPresenter: +* Master page feature +* Reworked property editor +* Reworked object/page effects +* Footer and headers can be shown/hidden in each page +* Custom Slide Show +* OASIS file format support (incomplete) +* Flip now works as in Gimp. Horizontal flip flips on y-axis, vertical flip on x-axis +* Group objects: The grouped object is now in the z-order of the upperst + object grouped and no longer on the top. +* Ungroup object: The objects are now in the z-order where the group object + was and no longer on top. +* If a page is shown more than once during a presentation add the time for + the duration instead of showing only the last duration. +* Per-page presentation speed and per-object effect (animation) speed +* PageUp/PageDown during presentation now goes to beginning of the next/previous slide +* New "statistic" variables (number of words, number of lines etc.) + +KSpread: +* OASIS file format support (incomplete) +* Support for right-to-left spreadsheets +* Calendar plugin +* dependencies are handled correctly +* much improved value parsing and formatting +* Generic format support (the cell format remains 'generic' until explicitely set) +* Cell validity + + new type added: list + + new data added: differentto + + Add Input help (allow to display help) + + Allow blanks cell +* Conditional cell attribute: + + Add new data "differentto" +* New functions: + + ACOT + + RANDNORM (gaussian random numbers) + + REGEXP + + REGEXPRE (regexp replace) + + SUMIF (conditional sum) +* Multiple steps undo and redo +* Improved handling of hyperlinks +* Better icons for toolbar and templates + +KChart: +* New maintainer. Many, *many* bugfixes. +* Removed a lot of old non-working stuff. It will reappear, working, in future versions. +* New, much improved, data editor +* Same startup dialog as the rest of KOffice +* Templates (only one so far) +* Data as rows or columns +* Linear or logarithmic scale +* Export to PNG format +* Export to SVG format +* Import data from text files (not finished in the beta) +* Much improved manual +* Print support + +KFormula: +* OASIS file format support (incomplete) + +Kivio: +* Non blocking stencilset loading +* Added Nassi Schneiderman stencils +* Moving selected stencils with the keyboard +* Added a docker for adding stencils to the document +* Added a tool for adding connector targets to stencils +* Added a polyline connector + +Karbon: +* OASIS file format support (incomplete) +* New color dialog +* Small preview widget +* ZoomIn/ZoomOut actions +* Build system fixes + +Filters: +* WordPerfect import filter for KWord: brand new, now based on libwpd + +* new Microsoft Excel import filter for KSpread + +* KWord HTML filter + + Ability to link an external stylesheet to a HTML page + +* Gnumeric import/export: now supports + + Text rotation + + Cell validation + + Print repeated columns + + Document information + + Area name + +* KSpread HTML export + + Sheets can be exported to separate HTML pages + + Sheets are browsable by a table of contents + + User can define which sheets to export + + Ability to link an external stylesheet to a HTML page + + The encoding of the HTML page is configurable + + Borders are optional + + The cell spacing is configurable + +* OoImpress: + + Custom slide show + diff --git a/changes-1.5 b/changes-1.5 new file mode 100644 index 000000000..30af96936 --- /dev/null +++ b/changes-1.5 @@ -0,0 +1,195 @@ +* General: + + - Paragraph background color can now be set (in addition to text background color) + - Palettes now remember their position between sessions (Krita, Kivio, Karbon) + - Palettes now have a smart mode where they start floating on small screens and + docked on larger screens + - ToolBox is no longer duplicated for every view + - Accessibility: Allow speaking texts using the kdeaccessibility tools (KTTS). + - Accessibility: Alt-F8 to set focus to any focusable widget. + - Accessibility: F8 and Shift-F8 for mouseless splitter and dock widget sizing. + +* Bug fixes: + +** KWord: + - Statistic variables are not saved in KWord format (#111478) + - Fix bug where inserting a large image would not make it a size that fits the page + - Fix bug where images in headers were only shown in the first page. + - Fix RMB in table-cell should not unselect text + + +** Krita: + - Krita now compiles on NetBSD + - Fix rotation bugs + - When "Select Similar Colors" a transparant area, add only transparant areas instead + of the entire image to the selection. + - Fix loading and saving of grayscale images + - Fix ImageMagick 16/8 bit image confusion when loading and saving. + - BUG: 110296 Display is now restored on cancel + - many crash fixes + - Warn when applying a filter that will convert the layer data + - create and save new brushes + - show image in center of window + - group layers in folders + - cmyk8, cmyk16, rgb16, gray16, rgb-half, rgb-float16 and lab16 colorspaces + + +** KSpread: + - Fixed spreadsheets containing formulae being marked as modified immediately after being opened. + - 115948 format changes of an automerged cell affects all cells in the set. + +** Karbon: +- 114421 Transform palette has a strange layout when it is tall +- 114424 Stroke properties palette has a strange layout when it is... +- 114425 Color palette has title "Fill color" even when it shows s... +- 114428 The last created object should stay selected +- 114577 The Document/Layers/History palette is not shown on start +- 114579 Deleting polyline segment moves the mouse pointer to (0, 0) +- 114580 JJ: The line thickness SpinBox has no tooltip +- 112765 Selecting a polyline and running the "round corners" plug... +- 60438 undo confusion between point and shape action +- 92974 svg export creates useless svg file (from text tool) +- 115752 Make paste operation undo:able +- 116612 svg import/rendering bugs +- 111372 karbon: KLibrary: Undefined symbol "init_libkarbonpart" +- 114578 A polyline spline has a too big surrounding box +- 89596 Switching between Karbon14 and KSVGPlugin view in Konquer... +- 38555 segv when opening a file svg or kontour native +- 116422 un-usable selecting behaviour multple moving +- 116972 Transform palette is not updated when moving or scaling an object +- 115213 The color and opacity bars in the color chooser palette are backwards. + (thanks Marijn Kruisselbrink for the initial patch) +- 96944 Wanted: good right-click actions for polyline tool, zoom ... +- 111619 Page layout: size alias and margins doesn't get saved +- 111717 How to bring back the overview window if you close it? +- 111618 Rename plugins menu to "Effects" +- 109520 Change Align Center (Vertical) to Align Middle and add some extra separators +- 108789 Keybindings like krita, and other tweaks +- 108755 Always use this document at startup, Karbon has no way to stop doing this. Add a basic karbon template. +- 91376, 111207, 60844 Dockers now use the KoPalette library. This means a huge improvement when it comes to docker management +- 112691 Usability: The tools should be grouped +- 114429 The color picker is bad: Karbon now uses the Krita color choosers. +- 99927 karbon prints empty page the same in preview +- 119452 Printing scales the entire drawing down +- 116494 [usability] polyline interaction suggestions +- 119024 Color chooser doesn't move crosshair/sliders when switching from foreground to background color +- 112680 JJ: All the dockers lack tooltips +- 39138 selecting inside groups +- 124691 crash when adding pattern +- 126006 Duplicated "Snap to grid" in "View" menu +- 126095 deleted objects saved in in odg +- 125957 l10n for Russian: different "width" for stroke and other ... +- 102860 karbon crashes when pasting text +- 126341 Can't undo after using whirl/pinch effect +- 129039 Reordering layer elements reorders layers themselves +- 126094 polyline tool does not work as expected + +** Kivio: + - Fix grid painting + - Fix loading of remote documents + +* Features: + +** Krita: + - Add histograms + - Histograms for images with more than 8-bit to the channel can be zoomed + - Add histogram docker + - Many filters are now colorspace independent + - Add CMYK (8 and 16 bit) + - Add 16-bit grayscale + - Image separation feature + - Add openEXR support + - Separate painting styles from tools; now every tool, from freehand to star can use any + painting style (eraser, brush, pen, airbrush...) + - Create better and more modern selection visualisation + - Put brush, gradient, pattern and paint style in popups in a toolbar, reducing the amount + of space Krita needs for its dockers + - Make hardness of tablet pressure curve configurable + - Many performance improvements to the backend (allocation cache, transform cache) + - Use color profiles everywhere + - New curves widget for color adjustments + - Add feather selection feature + - Pasted clipboard contents are placed in the middle of the image initially + - Brush shape is shown as an outline cursor when painting freehand + - Krita now adds itself to the Open With menu in Konqueror + - support more modes from GImp image hose brushes + - Much work on documentation + - Allow the user to choose between contiguous fill behaviour in combination with selections. + Either fill the entire selection, or floodfill the image, but taking the selection into + account (default behaviour). + - Add a 16-bit float half format RGB colourspace and change the OpenEXR filters to use it. + Will probably add the option to load into 32-bit float as that should be faster. + - 16-bit LAB is now the fallback colormodel when a particular colormodel doesn't implement + a certain function + - Filter gallery feature + - Add an option to the colorpicker to pick colors not just from the active or + from all visible layers, but from any layer, while still working on this layer. + - Tools and most menu items now are disabled when a layer is invisible or locked. + - Add noise reduction filter + - Made scrolling with a scrollwheel work better + - Add round corners filter + - Add sobel filter + - Made crop tool much more usable + - Add small tiles filter + - Add pixellize filter + - Remove the text brush + +** KWord: + - Undo and redo for resizing of tables and columns + - Grid for objects + - allow documents to start at any page number (no gui yet) + - Accessiblity: keyboard navigation across frames, create frame using the keyboard + - cleanups and usability improvements for the document structure widget + - make the Fit to Width zoommode work properly, even when you resize the window later. + - make Fit to Width zoommode the default for new users + - KWord makes selecting/moving/resizing frames easier by implementing all features from http://www.koffice.org/developer/keyboardmodifiers.php + - paint the cursor in a color that is always readable, even if you set the background color to black + - make positioning the caret at frame edge easier. + - make frame handling much easier + - Center page on screen + - Create new set of templates, based on usability and user feedback. + - make deleting a page (in dtp mode) actually work when there was still content on the page. + - frame selections are now per view. + - Remember picture insert directory + - Accessibility: Enhanced mouseless navigation using document structure area. + - KWord now uses OASIS OpenDocument + - Accessibility: Improvement: "Menu" key shows RMB popup in document structure area. + - Add a dot as the suffix of numbered lists (1, a, A, III) + +** KSpread: + - Added cell reference highlighting when editing formulae. Also added click-and-drag resizing + of ranges referenced in formulae. + - Greatly improved OpenDocument support + - Sort dialog displays column & row names instead of "Column A","Column B" for selecting sort criteria + - new formula engine implemented - parsing and evaluation much faster and + more robust and flexible + +** Karbon + - Duplicate object. + - Minor new feature: make it able to change docker font sizes. + - Enabled right mouse click to zoom out of canvas, partially fixing bug 96944 + - Load SVG and Gimp gradients + - Support for changing gradient or pattern fills on the canvas (wish 119344) + +** KPresenter: + - Display or not background + - Display or not slide master object + - QWhatsThis help added in COnfigure KPresenter... dialog + - User manual is up-to-date + +** KChart: + - Correctly set a background color/image + +** Kivio: + - Port to the new KoGuides which adds auto guide lines + - Port to KoPalette and cleaned up the palettes (toolwindows) + - Make it possible to rearrange the pages with d'n'd in the tab bar + - Add undo support for Add Connector Target + - New stencil text editor + - Added an object list palette + - Made the old stencil set toolwindow a dialog and cleaned it up a bit + - Made text properties editable for each textbox and not only each stencil + +** Filters: + - Kpresenter can export page as image file (png/bmp/svg/mng/jpeg/xbm) + - Kivio can export page as image file diff --git a/config.h.in b/config.h.in new file mode 100644 index 000000000..84789ce52 --- /dev/null +++ b/config.h.in @@ -0,0 +1,396 @@ +/* config.h.in. Generated from configure.in by autoheader. */ + +/* Define to 1 if you have the header file. */ +#undef HAVE_CARBON_CARBON_H + +/* Define if you have the CoreAudio API */ +#undef HAVE_COREAUDIO + +/* Define to 1 if you have the header file. */ +#undef HAVE_CRT_EXTERNS_H + +/* Defines if your system has the crypt function */ +#undef HAVE_CRYPT + +/* Define to 1 if you have the declaration of `round', and to 0 if you don't. + */ +#undef HAVE_DECL_ROUND + +/* Define to 1 if you have the header file, and it defines `DIR'. + */ +#undef HAVE_DIRENT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_DLFCN_H + +/* Define if you have DPMS support */ +#undef HAVE_DPMS + +/* Define if you have the DPMSCapable prototype in */ +#undef HAVE_DPMSCAPABLE_PROTO + +/* Define if you have the DPMSInfo prototype in */ +#undef HAVE_DPMSINFO_PROTO + +/* Define to 1 if you have the `fabsl' function. */ +#undef HAVE_FABSL + +/* Define to 1 if you have the header file. */ +#undef HAVE_FLOATINGPOINT_H + +/* Defines if your system has the libfontconfig library */ +#undef HAVE_FONTCONFIG + +/* Define to 1 if you have the `fseek64' function. */ +#undef HAVE_FSEEK64 + +/* Define to 1 if fseeko (and presumably ftello) exists and is declared. */ +#undef HAVE_FSEEKO + +/* Define to 1 if you have the `ftell64' function. */ +#undef HAVE_FTELL64 + +/* Define if you have isinf */ +#undef HAVE_FUNC_ISINF + +/* Defines if you have GL (Mesa, OpenGL, ...) */ +#undef HAVE_GL + +/* GraphicsMagick is available */ +#undef HAVE_GMAGICK + +/* Define to 1 if you have the header file. */ +#undef HAVE_IEEEFP_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_INTTYPES_H + +/* Defines if your system has the fontconfig and freetype libraries */ +#undef HAVE_KARBONTEXT + +/* Define to 1 if you have the header file. */ +#undef HAVE_KSPELL2_BROKER_H + +/* Defines if your system has the libart library */ +#undef HAVE_LIBART + +/* Define if you have libjpeg */ +#undef HAVE_LIBJPEG + +/* If we are going to use libkspell2 for spell-checking */ +#undef HAVE_LIBKSPELL2 + +/* Define if you have libpng */ +#undef HAVE_LIBPNG + +/* Define if you have a working libpthread (will enable threaded code) */ +#undef HAVE_LIBPTHREAD + +/* Define if you have libtiff */ +#undef HAVE_LIBTIFF + +/* Define if you have libz */ +#undef HAVE_LIBZ + +/* Define if you have support for long double in printf */ +#undef HAVE_LONG_DOUBLE + +/* ImageMagick is available */ +#undef HAVE_MAGICK + +/* ImageMagick Version 6 */ +#undef HAVE_MAGICK6 + +/* ImageMagick Version 6.1 */ +#undef HAVE_MAGICK61 + +/* Define to 1 if you have the header file. */ +#undef HAVE_MEMORY_H + +/* Define to 1 if you have the `mkstemp' function. */ +#undef HAVE_MKSTEMP + +/* Define to 1 if you have the header file, and it defines `DIR'. */ +#undef HAVE_NDIR_H + +/* Define if your system needs _NSGetEnviron to set up the environment */ +#undef HAVE_NSGETENVIRON + +/* GetMagickInfoList has different number of arguments with versions >= 6.1.3 + */ +#undef HAVE_OLD_GETMAGICKINFOLIST + +/* Defines if your system has the OpenEXR library */ +#undef HAVE_OPENEXR + +/* Define to 1 if you have the header file. */ +#undef HAVE_PAPER_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_PATHS_H + +/* Define to 1 if you have the `popen' function. */ +#undef HAVE_POPEN + +/* Define to 1 if your system has powf in */ +#undef HAVE_POWF + +/* Define if you have the development files for python */ +#undef HAVE_PYTHON + +/* define if you have libreadline available */ +#undef HAVE_READLINE + +/* Define if you have res_init */ +#undef HAVE_RES_INIT + +/* Define if you have the res_init prototype */ +#undef HAVE_RES_INIT_PROTO + +/* Define to 1 if you have the `rewinddir' function. */ +#undef HAVE_REWINDDIR + +/* Define if you have a STL implementation by SGI */ +#undef HAVE_SGI_STL + +/* Define to 1 if you have the `snprintf' function. */ +#undef HAVE_SNPRINTF + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDINT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDLIB_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRINGS_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRING_H + +/* Define if you have strlcat */ +#undef HAVE_STRLCAT + +/* Define if you have the strlcat prototype */ +#undef HAVE_STRLCAT_PROTO + +/* Define if you have strlcpy */ +#undef HAVE_STRLCPY + +/* Define if you have the strlcpy prototype */ +#undef HAVE_STRLCPY_PROTO + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_BITYPES_H + +/* Define to 1 if you have the header file, and it defines `DIR'. + */ +#undef HAVE_SYS_DIR_H + +/* Define to 1 if you have the header file, and it defines `DIR'. + */ +#undef HAVE_SYS_NDIR_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_PARAM_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_STAT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_TYPES_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_UNISTD_H + +/* Define to 1 if you have the `vsnprintf' function. */ +#undef HAVE_VSNPRINTF + +/* Defines if your system has the libwpd library */ +#undef HAVE_WPD + +/* Defines if your system has the wv2 library */ +#undef HAVE_WV2 + +/* Define if you have the X11 Input Extension */ +#undef HAVE_XINPUTEXT + +/* Suffix for lib directories */ +#undef KDELIBSUFF + +/* Define a safe value for MAXPATHLEN */ +#undef KDEMAXPATHLEN + +/* build Kexi macros plugin */ +#undef KEXI_MACROS_SUPPORT + +/* The correct header */ +#undef LCMS_HEADER + +/* Name of package */ +#undef PACKAGE + +/* Define to the address where bug reports for this package should be sent. */ +#undef PACKAGE_BUGREPORT + +/* Define to the full name of this package. */ +#undef PACKAGE_NAME + +/* Define to the full name and version of this package. */ +#undef PACKAGE_STRING + +/* Define to the one symbol short name of this package. */ +#undef PACKAGE_TARNAME + +/* Define to the version of this package. */ +#undef PACKAGE_VERSION + +/* Define the PREFIX where to install this package */ +#undef PREFIX + +/* The size of `char *', as computed by sizeof. */ +#undef SIZEOF_CHAR_P + +/* The size of `int', as computed by sizeof. */ +#undef SIZEOF_INT + +/* The size of `long', as computed by sizeof. */ +#undef SIZEOF_LONG + +/* The size of `short', as computed by sizeof. */ +#undef SIZEOF_SHORT + +/* The size of `size_t', as computed by sizeof. */ +#undef SIZEOF_SIZE_T + +/* The size of `unsigned long', as computed by sizeof. */ +#undef SIZEOF_UNSIGNED_LONG + +/* Define to 1 if you have the ANSI C header files. */ +#undef STDC_HEADERS + +/* Version number of package */ +#undef VERSION + +/* Defined if compiling without arts */ +#undef WITHOUT_ARTS + +/* Define to 1 if your processor stores words with the most significant byte + first (like Motorola and SPARC, unlike Intel and VAX). */ +#undef WORDS_BIGENDIAN + +/* Defines the executable of xmllint */ +#undef XMLLINT + +/* + * jpeg.h needs HAVE_BOOLEAN, when the system uses boolean in system + * headers and I'm too lazy to write a configure test as long as only + * unixware is related + */ +#ifdef _UNIXWARE +#define HAVE_BOOLEAN +#endif + + + +/* + * AIX defines FD_SET in terms of bzero, but fails to include + * that defines bzero. + */ + +#if defined(_AIX) +#include +#endif + + + +#if defined(HAVE_NSGETENVIRON) && defined(HAVE_CRT_EXTERNS_H) +# include +# include +# define environ (*_NSGetEnviron()) +#endif + + +/* Number of bits in a file offset, on hosts where this is settable. */ +#undef _FILE_OFFSET_BITS + + +#if !defined(HAVE_RES_INIT_PROTO) +#ifdef __cplusplus +extern "C" { +#endif +int res_init(void); +#ifdef __cplusplus +} +#endif +#endif + + + +#if !defined(HAVE_STRLCAT_PROTO) +#ifdef __cplusplus +extern "C" { +#endif +unsigned long strlcat(char*, const char*, unsigned long); +#ifdef __cplusplus +} +#endif +#endif + + + +#if !defined(HAVE_STRLCPY_PROTO) +#ifdef __cplusplus +extern "C" { +#endif +unsigned long strlcpy(char*, const char*, unsigned long); +#ifdef __cplusplus +} +#endif +#endif + + +/* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */ +#undef _LARGEFILE_SOURCE + +/* Define for large files, on AIX-style hosts. */ +#undef _LARGE_FILES + + +/* + * On HP-UX, the declaration of vsnprintf() is needed every time ! + */ + +#if !defined(HAVE_VSNPRINTF) || defined(hpux) +#if __STDC__ +#include +#include +#else +#include +#endif +#ifdef __cplusplus +extern "C" +#endif +int vsnprintf(char *str, size_t n, char const *fmt, va_list ap); +#ifdef __cplusplus +extern "C" +#endif +int snprintf(char *str, size_t n, char const *fmt, ...); +#endif + + + +#if defined(__SVR4) && !defined(__svr4__) +#define __svr4__ 1 +#endif + + +/* don't use magick filter */ +#undef include_imagemagick_filter + +/* type to use in place of socklen_t if not defined */ +#undef kde_socklen_t + +/* type to use in place of socklen_t if not defined (deprecated, use + kde_socklen_t) */ +#undef ksize_t diff --git a/configure.files b/configure.files new file mode 100644 index 000000000..dc5dd4b88 --- /dev/null +++ b/configure.files @@ -0,0 +1,45 @@ +./admin/configure.in.min +configure.in.in +./example/configure.in.in +./filters/configure.in.mid +./filters/krita/configure.in.in +./filters/krita/gmagick/configure.in.bot +./filters/krita/jpeg/configure.in.bot +./filters/krita/magick/configure.in.bot +./filters/krita/openexr/configure.in.bot +./filters/krita/pdf/configure.in.bot +./filters/krita/pdf/configure.in.in +./filters/krita/png/configure.in.bot +./filters/krita/tiff/configure.in.bot +./filters/kword/msword/configure.in.bot +./filters/kword/msword/configure.in.in +./filters/kword/pdf/xpdf/configure.in.in +./filters/kword/wordperfect/configure.in.bot +./filters/kword/wordperfect/configure.in.in +./filters/xsltfilter/configure.in.bot +./filters/xsltfilter/configure.in.in +./karbon/configure.in.bot +./karbon/configure.in.in +./kexi/3rdparty/configure.in.in +./kexi/configure.in.in +./kexi/kexidb/drivers/configure.in.bot +./kexi/kexidb/drivers/configure.in.in +./kexi/main/configure.in.in +./kexi/migration/configure.in.in +./kexi/plugins/configure.in.in +./kexi/plugins/configure.in.mid +./kexi/plugins/macros/configure.in.in +./kivio/configure.in.in +./kpresenter/configure.in.in +./krita/configure.in.bot +./krita/configure.in.in +./krita/plugins/configure.in.in +./krita/plugins/viewplugins/imagesize/configure.in.in +./kspread/plugins/calculator/configure.in.in +./kword/mailmerge/configure.in.in +./lib/configure.in.in +./lib/configure.in.mid +./lib/kotext/configure.in.bot +./lib/kotext/configure.in.in +./lib/kross/configure.in.bot +./lib/kross/configure.in.in diff --git a/configure.in b/configure.in new file mode 100644 index 000000000..add03463f --- /dev/null +++ b/configure.in @@ -0,0 +1,2666 @@ +dnl ======================================================= +dnl FILE: ./admin/configure.in.min +dnl ======================================================= + +dnl This file is part of the KDE libraries/packages +dnl Copyright (C) 2001 Stephan Kulow (coolo@kde.org) + +dnl This file is free software; you can redistribute it and/or +dnl modify it under the terms of the GNU Library General Public +dnl License as published by the Free Software Foundation; either +dnl version 2 of the License, or (at your option) any later version. + +dnl This library is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl Library General Public License for more details. + +dnl You should have received a copy of the GNU Library General Public License +dnl along with this library; see the file COPYING.LIB. If not, write to +dnl the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +dnl Boston, MA 02110-1301, USA. + +# Original Author was Kalle@kde.org +# I lifted it in some mater. (Stephan Kulow) +# I used much code from Janos Farkas + +dnl Process this file with autoconf to produce a configure script. + +AC_INIT(acinclude.m4) dnl a source file from your sub dir + +dnl This is so we can use kde-common +AC_CONFIG_AUX_DIR(admin) + +dnl This ksh/zsh feature conflicts with `cd blah ; pwd` +unset CDPATH + +dnl Checking host/target/build systems, for make, install etc. +AC_CANONICAL_SYSTEM +dnl Perform program name transformation +AC_ARG_PROGRAM + +dnl Automake doc recommends to do this only here. (Janos) +AM_INIT_AUTOMAKE(koffice, "1.6.3") dnl searches for some needed programs + +AM_MAINTAINER_MODE + +KDE_SET_PREFIX + +dnl generate the config header +AM_CONFIG_HEADER(config.h) dnl at the distribution this done + +dnl Checks for programs. +AC_CHECK_COMPILERS +AC_ENABLE_SHARED(yes) +AC_ENABLE_STATIC(no) +KDE_PROG_LIBTOOL + +dnl for NLS support. Call them in this order! +dnl WITH_NLS is for the po files +AM_KDE_WITH_NLS + +KDE_USE_QT(3.3) +AC_PATH_KDE +dnl ======================================================= +dnl FILE: configure.in.in +dnl ======================================================= + +#MIN_CONFIG(3.3) + +# Remember to synchronize the version number with the file koffice/lib/kofficecore/kofficeversion.h +dnl PACKAGE set before + +CXXFLAGS="$CXXFLAGS $KDE_DEFAULT_CXXFLAGS" + +AC_CHECK_HEADERS(unistd.h sys/param.h floatingpoint.h paths.h) +AC_C_BIGENDIAN +AC_CHECK_KDEMAXPATHLEN + +KDE_INIT_DOXYGEN([The KOffice API Reference], [Version $VERSION]) + +# Check for GraphicsMagick... + +have_graphicsmagick=no +KDE_FIND_PATH(GraphicsMagick-config, GRAPHICS_MAGICK_CONFIG, [${prefix}/bin ${exec_prefix}/bin /usr/local/bin /opt/local/bin], [ + AC_MSG_WARN([Could not find GraphicsMagick anywhere, check http://www.graphicsmagick.org/ for GraphicsMagick >= 1.1.7.]) +]) + +if test -n "$GRAPHICS_MAGICK_CONFIG"; then + vers=`$GRAPHICS_MAGICK_CONFIG --version 2>/dev/null | $AWK 'BEGIN { FS = "."; } { printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'` + if test -n "$vers" && test "$vers" -ge 1001007; then + LIBGMAGICK_LIBS="`$GRAPHICS_MAGICK_CONFIG --libs`" + LIBGMAGICK_LDFLAGS="`$GRAPHICS_MAGICK_CONFIG --ldflags`" + LIBGMAGICK_RPATH= + for args in $LIBGMAGICK_LIBS; do + case $args in + -L*) + LIBGMAGICK_RPATH="$LIBMAGICK_RPATH $args" + ;; + esac + done + LIBGMAGICK_RPATH=`echo $LIBGMAGICK_RPATH | $SED -e "s/-L/-R/g"` + LIBGMAGICK_CPPFLAGS="`$GRAPHICS_MAGICK_CONFIG --cppflags`" + AC_DEFINE(HAVE_GMAGICK,1, [GraphicsMagick is available]) + have_graphicsmagick=yes + else + AC_MSG_WARN([You need at least GraphicsMagick 1.1.7]) + fi + +fi + +if test ! "$USE_RPATH" = "yes"; then + LIBGMAGICK_RPATH= +fi + +AC_SUBST(LIBGMAGICK_LIBS) +AC_SUBST(LIBGMAGICK_LDFLAGS) +AC_SUBST(LIBGMAGICK_CPPFLAGS) +AC_SUBST(LIBGMAGICK_RPATH) +AM_CONDITIONAL(include_graphicsmagick_filter, test "$have_graphicsmagick" = "yes" -a HAVE_GMAGICK) + +# End of GraphicsMagick check + +# Check for ImageMagick... + +have_imagemagick=no +KDE_FIND_PATH(Magick-config, MAGICK_CONFIG, [${prefix}/bin ${exec_prefix}/bin /usr/local/bin /opt/local/bin], [ + AC_MSG_WARN([Could not find ImageMagick anywhere, check http://www.imagemagick.org/ for ImageMagick >= 5.5.2.]) +]) + +if test -n "$MAGICK_CONFIG"; then + vers=`$MAGICK_CONFIG --version 2>/dev/null | $AWK 'BEGIN { FS = "."; } { printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'` + if test -n "$vers" && test "$vers" -ge 5005002 + then + if test "$vers" -ge 6000003 + then + AC_DEFINE(HAVE_MAGICK6, 1, [ImageMagick Version 6]) + fi + if test "$vers" -ge 6001000 + then + AC_DEFINE(HAVE_MAGICK61, 1, [ImageMagick Version 6.1]) + fi + LIBMAGICK_LIBS="`$MAGICK_CONFIG --libs`" + LIBMAGICK_LDFLAGS="`$MAGICK_CONFIG --ldflags`" + LIBMAGICK_RPATH= + for args in $LIBMAGICK_LIBS; do + case $args in + -L*) + LIBMAGICK_RPATH="$LIBMAGICK_RPATH $args" + ;; + esac + done + LIBMAGICK_RPATH=`echo $LIBMAGICK_RPATH | $SED -e "s/-L/-R/g"` + LIBMAGICK_CPPFLAGS="`$MAGICK_CONFIG --cppflags`" + AC_DEFINE(HAVE_MAGICK,1, [ImageMagick is available]) + have_imagemagick=yes + else + AC_MSG_WARN([You need at least ImageMagick 5.5.2]) + fi +fi + +if test ! "$USE_RPATH" = "yes"; then + LIBMAGICK_RPATH= +fi + +AC_SUBST(LIBMAGICK_LIBS) +AC_SUBST(LIBMAGICK_LDFLAGS) +AC_SUBST(LIBMAGICK_CPPFLAGS) +AC_SUBST(LIBMAGICK_RPATH) +AM_CONDITIONAL(include_imagemagick_filter, test "$have_imagemagick" = "yes" -a HAVE_MAGICK61 -a ! "$have_graphicsmagick" = "yes" -a ! HAVE_GMAGICK) + +# End of ImageMagick check + +########################################################################## +# This last check is copied from kdenonbeta/gsf/configure.in.in +########################################################################## +# KOFFICE_PKG_CHECK_MODULES(GSTUFF, gtk+-2.0 >= 1.3 glib = 1.3.4, action-if, action-not) +# defines GSTUFF_LIBS, GSTUFF_CFLAGS, see pkg-config man page +# also defines GSTUFF_PKG_ERRORS on error +# Note: This is specially tweaked for karbon's fontconfig check. Please fix +# it before using it for other tests :-) +AC_DEFUN([KOFFICE_PKG_CHECK_MODULES], [ + succeeded=no + + if test -z "$PKG_CONFIG"; then + AC_PATH_PROG(PKG_CONFIG, pkg-config, no) + fi + + if test "$PKG_CONFIG" = "no" ; then + echo "*** The pkg-config script could not be found. Make sure it is" + echo "*** in your path, or set the PKG_CONFIG environment variable" + echo "*** to the full path to pkg-config." + echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config." + echo "***" + echo "*** Due to that we can't perform the check for fontconfig..." # added for karbon (Werner) + else + PKG_CONFIG_MIN_VERSION=0.9.0 + if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then + AC_MSG_CHECKING(for $2) + + if $PKG_CONFIG --exists "$2" ; then + AC_MSG_RESULT(yes) + succeeded=yes + + AC_MSG_CHECKING($1_CFLAGS) + $1_CFLAGS=`$PKG_CONFIG --cflags "$2"` + AC_MSG_RESULT($$1_CFLAGS) + + AC_MSG_CHECKING($1_LIBS) + $1_LIBS=`$PKG_CONFIG --libs "$2"` + AC_MSG_RESULT($$1_LIBS) + else + $1_CFLAGS="" + $1_LIBS="" + ## If we have a custom action on failure, don't print errors, but + ## do set a variable so people can do so. + $1_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"` + ifelse([$4], ,echo $$1_PKG_ERRORS,) + fi + + AC_SUBST($1_CFLAGS) + AC_SUBST($1_LIBS) + else + echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer." + echo "*** See http://www.freedesktop.org/software/pkgconfig" + fi + fi + + if test $succeeded = yes; then + ifelse([$3], , :, [$3]) +# else # removed for karbon (Werner) +# ifelse([$4], , AC_MSG_ERROR([Library requirements ($2) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.]), [$4]) + fi +]) + +# --- Check for KDE 3.2 or 3.3 --- + +AC_MSG_CHECKING([for KDE version]) + +AC_LANG_SAVE +AC_LANG_CPLUSPLUS +kdeversion_save_CXXFLAGS="$CXXFLAGS" +kdeversion_safe_LIBS="$LIBS" +LIBS="$LIBS $X_EXTRA_LIBS" +CXXFLAGS="$CXXFLAGS $all_includes" + +AC_COMPILE_IFELSE([ +#include +#if ! ( KDE_IS_VERSION( 3, 2, 90 ) ) +#error KDE 3.2 +#endif +], + need_kde32_compat="no" +, + need_kde32_compat="yes" +) + +AC_COMPILE_IFELSE([ +#include +#if ! ( KDE_IS_VERSION( 3, 3, 90 ) ) +#error KDE 3.3 +#endif +], + need_kde33_compat="no" +, + need_kde33_compat="yes" +) + +AC_COMPILE_IFELSE([ +#include +#if ! ( KDE_IS_VERSION( 3, 4, 90 ) ) +#error KDE 3.4 +#endif +], + need_kde34_compat="no" +, + need_kde34_compat="yes" +) + +AC_COMPILE_IFELSE([ +#include +#if ! ( KDE_IS_VERSION( 3, 5, 2 ) ) +#error KDE 3.5.x (x < 2) +#endif +], + need_kde351_compat="no" +, + need_kde351_compat="yes" +) +CXXFLAGS="$kdeversion_save_CXXFLAGS" +LIBS="$kdeversion_safe_LIBS" +AC_LANG_RESTORE + +if test "$need_kde32_compat" = "yes"; then + AC_MSG_RESULT([KDE 3.2.x]) +else + if test "$need_kde33_compat" = "yes"; then + AC_MSG_RESULT([KDE 3.3.x]) + else + if test "$need_kde34_compat" = "yes"; then + AC_MSG_RESULT([KDE 3.4.x]) + else + if test "$need_kde351_compat" = "yes"; then + AC_MSG_RESULT([KDE 3.5.x (x < 2)]) + else + AC_MSG_RESULT([KDE 3.5.x (x >=2) or SVN trunk]) + fi + fi + fi +fi + +AM_CONDITIONAL(need_kde32_compatibility, test "$need_kde32_compat" = "yes") +AM_CONDITIONAL(need_kde33_compatibility, test "$need_kde33_compat" = "yes") +AM_CONDITIONAL(need_kde34_compatibility, test "$need_kde34_compat" = "yes") +AM_CONDITIONAL(need_kde351_compatibility, test "$need_kde351_compat" = "yes") + +# Keep the old KDE 3.1 test, as long as it is still used +AM_CONDITIONAL(need_kde31_compatibility, test "supported" = "no") + +# --- End KDE 3.2 check --- + +# --- OpenEXR check --- + +KDE_FIND_PATH(pkg-config, PKGCONFIG, [${prefix}/bin ${exec_prefix}/bin /usr/bin /usr/local/bin /opt/local/bin], [ + AC_MSG_WARN([Could not find pkg-config]) +]) + +AC_MSG_CHECKING([for OpenEXR]) + +if test -n "$PKGCONFIG"; then + vers=`$PKGCONFIG OpenEXR --modversion 2>/dev/null` + if test -n "$vers" + then + OPENEXR_LIBS="`$PKGCONFIG OpenEXR --libs`" + OPENEXR_RPATH= + for args in $OPENEXR_LIBS; do + case $args in + -L*) + OPENEXR_RPATH="$OPENEXR_RPATH $args" + ;; + esac + done + OPENEXR_RPATH=`echo $OPENEXR_RPATH | $SED -e "s/-L/-R/g"` + OPENEXR_CFLAGS="`$PKGCONFIG OpenEXR --cflags`" + + AC_DEFINE_UNQUOTED(HAVE_OPENEXR, 1, [Defines if your system has the OpenEXR library]) + fi +fi + +if test ! "$USE_RPATH" = "yes"; then + OPENEXR_RPATH= +fi + +if test -n "$OPENEXR_LIBS" +then + AC_MSG_RESULT([yes]) +else + AC_MSG_RESULT([not found]) +fi + +AC_SUBST(OPENEXR_LIBS) +AC_SUBST(OPENEXR_CFLAGS) +AC_SUBST(OPENEXR_RPATH) + +AM_CONDITIONAL(have_openexr, test -n "$OPENEXR_LIBS") + +# --- End of OpenEXR check --- +dnl ======================================================= +dnl FILE: ./example/configure.in.in +dnl ======================================================= + +dnl This is here so that example isn't compiled and intalled by default. +dnl Do NOT put this file in your application, if you want it compiled ! + +DO_NOT_COMPILE="$DO_NOT_COMPILE example" +dnl ======================================================= +dnl FILE: ./filters/krita/configure.in.in +dnl ======================================================= + +# Check if the tiff lib is available +AC_FIND_TIFF +AM_CONDITIONAL(have_tiff, test -n "$LIBTIFF") + +AC_FIND_PNG +AM_CONDITIONAL(have_png, test -n "$LIBPNG") + +AC_FIND_JPEG +AM_CONDITIONAL(have_jpeg, test -n "$LIBJPEG") + +#--------------------------------------------------------- +# libexif detection +# taken from libkexif's configure.in.in +#--------------------------------------------------------- + +LIBEXIF=no + +#PKG_CHECK_MODULES(LIBEXIF, libexif >= 0.5.7, , +# [ AC_MSG_WARN([libexif >= 0.5.7 not found.]) +# LIBEXIF=yes ]) + + +#PKG_CHECK_MODULES(LIBEXIF06, libexif >= 0.6.9, +# AC_DEFINE(HAVE_EXIF06,1,[check for libexif > 0.6]), +# AC_MSG_WARN([Using old version of libexif.])) + +PKG_CHECK_MODULES(LIBEXIF, libexif >= 0.6.12 , , + [ AC_MSG_WARN([libexif >= 0.6.12 not found.]) + LIBEXIF=yes ]) + +AC_SUBST(LIBEXIF_LIBS) +AC_SUBST(LIBEXIF_CFLAGS) + +#--------------------------------------------------------- +# libexif detection +#--------------------------------------------------------- +AC_MSG_CHECKING([if C++ program with exif can be compiled]) +AC_LANG_SAVE +AC_LANG_CPLUSPLUS +ac_save_CXXFLAGS="$CXXFLAGS" +CXXFLAGS="$CXXFLAGS $LIBEXIF_CFLAGS" +AC_CACHE_VAL(exif_build, +[ + AC_TRY_COMPILE([ + extern "C" { +#include +#include +} + ],[ + ExifLoader *l = exif_loader_new (); + exif_loader_write_file (l,"kikoo"); + return 0; + ], exif_build=yes, + exif_build=no) +]) +AC_MSG_RESULT($exif_build) +if test "$exif_build" = "no"; then + LIBEXIF="" +fi +CXXFLAGS="$ac_save_CXXFLAGS" +AC_LANG_RESTORE + + +AM_CONDITIONAL(have_exif, test -n "$LIBEXIF") +AM_CONDITIONAL(include_jpeg_filter, test -n "$LIBJPEG" -a -n "$LIBEXIF") +AM_CONDITIONAL(include_tiff_filter, test -n "$LIBTIFF" -a -n "$LIBEXIF") +dnl ======================================================= +dnl FILE: ./filters/krita/pdf/configure.in.in +dnl ======================================================= + +# Compile the pdf import filter only if Poppler is available +PKG_CHECK_MODULES(POPPLER, poppler-qt >= 0.5.1, have_poppler=yes, have_poppler=no) + +AM_CONDITIONAL(include_PDF, test "x$have_poppler" = xyes) +dnl ======================================================= +dnl FILE: ./filters/kword/msword/configure.in.in +dnl ======================================================= + +AC_ARG_WITH(libwv2,AC_HELP_STRING([--with-libwv2=DIR],[use libwv2 in DIR]),[ + if [ test "x$withval" != "xno" ]; then + if [ test "x$withval" != "xyes" ]; then + WV2_DIR=$withval + fi + search_for_wv2=yes + else + search_for_wv2=no + fi +],[ search_for_wv2=yes +]) + +if [ test $search_for_wv2 != no ]; then + if [ test -n "$WV2_DIR" ]; then + KDE_FIND_PATH(wv2-config, WV2_CONFIG, [$WV2_DIR/bin], [ + AC_MSG_WARN([Could not find libwv2, check http://www.sourceforge.net/projects/wvware/]) + ]) + else + KDE_FIND_PATH(wv2-config, WV2_CONFIG, [${prefix}/bin ${exec_prefix}/bin /usr/local/bin /opt/local/bin], [ + AC_MSG_WARN([Could not find libwv2 anywhere, check http://www.sourceforge.net/projects/wvware/]) + ]) + fi +fi + +if test -n "$WV2_CONFIG"; then + vers=`$WV2_CONFIG --version 2>/dev/null | $SED -e 's/libwv2 //' | $AWK 'BEGIN { FS = "."; } { printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'` + if test -n "$vers" && test "$vers" -ge 1009 + then + LIBWV2_LIBS="`$WV2_CONFIG --libs`" + LIBWV2_RPATH= + for args in $LIBWV2_LIBS; do + case $args in + -L*) + LIBWV2_RPATH="$LIBWV2_RPATH $args" + ;; + esac + done + LIBWV2_RPATH=`echo $LIBWV2_RPATH | $SED -e "s/-L/-R/g"` + LIBWV2_CFLAGS="`$WV2_CONFIG --cflags`" + + AC_DEFINE_UNQUOTED(HAVE_WV2, 1, [Defines if your system has the wv2 library]) + else + AC_MSG_WARN([You need at least version 0.1.9 of libwv2]) + fi +fi + + +AC_SUBST(LIBWV2_LIBS) +AC_SUBST(LIBWV2_CFLAGS) +AC_SUBST(LIBWV2_RPATH) +AM_CONDITIONAL(include_wv2_msword_filter, test -n "$LIBWV2_LIBS") +dnl ======================================================= +dnl FILE: ./filters/kword/pdf/xpdf/configure.in.in +dnl ======================================================= + + +AC_HEADER_DIRENT +AC_HEADER_STDC +AC_CHECK_FUNCS(rewinddir popen mkstemp) + +dnl ##### Check for fseeko/ftello or fseek64/ftell64 +dnl The LARGEFILE and FSEEKO macros have to be called in C, not C++, mode. +AC_SYS_LARGEFILE +AC_FUNC_FSEEKO +AC_CHECK_FUNCS(fseek64) +AC_CHECK_FUNCS(ftell64) + +dnl ##### Check for libpaper (Debian). +KDE_CHECK_HEADERS(paper.h) +KDE_CHECK_LIB(paper, paperinit, [LIBPAPER="-lpaper"]) +AC_SUBST(LIBPAPER) +dnl ======================================================= +dnl FILE: ./filters/kword/wordperfect/configure.in.in +dnl ======================================================= + +KDE_FIND_PATH(pkg-config, PKGCONFIG, [${prefix}/bin ${exec_prefix}/bin /usr/bin /usr/local/bin /opt/local/bin], [ + AC_MSG_WARN([Could not find pkg-config]) +]) + +if test -n "$PKGCONFIG"; then + vers=`$PKGCONFIG libwpd-0.8 --modversion 2>/dev/null` + if test -n "$vers" + then + LIBWPD_LIBS="`$PKGCONFIG libwpd-0.8 --libs`" + LIBWPD_RPATH= + for args in $LIBWPD_LIBS; do + case $args in + -L*) + LIBWPD_RPATH="$LIBWPD_RPATH $args" + ;; + esac + done + LIBWPD_RPATH=`echo $LIBWPD_RPATH | $SED -e "s/-L/-R/g"` + LIBWPD_CFLAGS="`$PKGCONFIG libwpd-0.8 --cflags`" + + AC_DEFINE_UNQUOTED(HAVE_WPD, 1, [Defines if your system has the libwpd library]) + fi +fi + + +AC_SUBST(LIBWPD_LIBS) +AC_SUBST(LIBWPD_CFLAGS) +AC_SUBST(LIBWPD_RPATH) + +AM_CONDITIONAL(include_wpd_filter, test -n "$LIBWPD_LIBS") + +dnl ======================================================= +dnl FILE: ./filters/xsltfilter/configure.in.in +dnl ======================================================= + + +KDE_FIND_PATH(xml2-config, XML_CONFIG, [${prefix}/bin ${exec_prefix}/bin /usr/local/bin /opt/local/bin], [ + AC_MSG_WARN([Could not find libxml2 anywhere, check ftp://xmlsoft.org/ for libxml >= 2.4.8. (we also keep a version of it in kdesupport for CVS users' convience)]) + HELP_SUBDIR= +]) + +if test -n "$XML_CONFIG"; then + vers=`$XML_CONFIG --version 2>/dev/null | $SED -e 's/libxml //' | $AWK 'BEGIN { FS = "."; } { printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'` + if test -n "$vers" && test "$vers" -ge 2004008 + then + LIBXML_LIBS="`$XML_CONFIG --libs`" + LIBXML_RPATH= + for args in $LIBXML_LIBS; do + case $args in + -L*) + LIBXML_RPATH="$LIBXML_RPATH $args" + ;; + esac + done + LIBXML_RPATH=`echo $LIBXML_RPATH | $SED -e "s/-L/-R/g"` + LIBXML_CFLAGS="`$XML_CONFIG --cflags`" + + KDE_FIND_PATH(xmllint, XMLLINT, [${prefix}/bin ${exec_prefix}/bin /usr/local/bin /opt/local/bin], [XMLLINT=""]) + AC_DEFINE_UNQUOTED(XMLLINT, "$XMLLINT", [Defines the executable of xmllint]) + else + AC_MSG_WARN([You need at least libxml 2.4.8]) + HELP_SUBDIR= + fi +fi + +KDE_FIND_PATH(xslt-config, XSLT_CONFIG, [${prefix}/bin ${exec_prefix}/bin /usr/local/bin /opt/local/bin], [ + AC_MSG_WARN([Could not find libxslt anywhere, check ftp://xmlsoft.org/ for libxslt >= 1.0.7. (we also keep a version of it in kdesupport for CVS users' convience)]) + HELP_SUBDIR= +]) + +if test -n "$XSLT_CONFIG"; then + vers=`$XSLT_CONFIG --version 2>/dev/null | $AWK 'BEGIN { FS = "."; } { printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'` + if test -n "$vers" && test "$vers" -ge 1000007; then + LIBXSLT_LIBS="`$XSLT_CONFIG --libs`" + LIBXSLT_RPATH= + for args in $LIBXSLT_LIBS; do + case $args in + -L*) + LIBXSLT_RPATH="$LIBXSLT_RPATH $args" + ;; + esac + done + LIBXSLT_RPATH=`echo $LIBXSLT_RPATH | $SED -e "s/-L/-R/g"` + LIBXSLT_CFLAGS="`$XSLT_CONFIG --cflags`" + + else + AC_MSG_WARN([You need at least libxslt 1.0.7]) + HELP_SUBDIR= + fi +fi + +if test ! "$USE_RPATH" = "yes"; then + LIBXSLT_RPATH= + LIBXML_RPATH= +fi + +AC_SUBST(LIBXSLT_LIBS) +AC_SUBST(LIBXSLT_CFLAGS) +AC_SUBST(LIBXSLT_RPATH) + +AC_SUBST(LIBXML_LIBS) +AC_SUBST(LIBXML_CFLAGS) +AC_SUBST(LIBXML_RPATH) + +AM_CONDITIONAL(include_XSLTFILTERS, test -n "$LIBXML_LIBS" -a -n "$LIBXSLT_LIBS") +dnl ======================================================= +dnl FILE: ./karbon/configure.in.in +dnl ======================================================= + + +KDE_FIND_PATH(freetype-config, FREETYPE_CONFIG, [${prefix}/bin ${exec_prefix}/bin /usr/local/bin /opt/local/bin], [ + AC_MSG_WARN([Could not find libfreetype anywhere, check http://www.freetype.org/]) +]) + +if test -n "$FREETYPE_CONFIG"; then + vers=`$FREETYPE_CONFIG --version 2>/dev/null | $SED -e 's/libfreetype //' | $AWK 'BEGIN { FS = "."; } { printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'` + if test -n "$vers" && test "$vers" -ge 5000000 + then + LIBFREETYPE_LIBS="`$FREETYPE_CONFIG --libs`" + LIBFREETYPE_RPATH= + for args in $LIBFREETYPE_LIBS; do + case $args in + -L*) + LIBFREETYPE_RPATH="$LIBFREETYPE_RPATH $args" + ;; + esac + done + LIBFREETYPE_RPATH=`echo $LIBFREETYPE_RPATH | $SED -e "s/-L/-R/g"` + LIBFREETYPE_CFLAGS="`$FREETYPE_CONFIG --cflags`" + else + AC_MSG_WARN([You need at least libfreetype 5.0]) + fi +fi + +AC_SUBST(LIBFREETYPE_LIBS) +AC_SUBST(LIBFREETYPE_CFLAGS) +AC_SUBST(LIBFREETYPE_RPATH) + + +KDE_FIND_PATH(libart2-config, LIBART_CONFIG, [${prefix}/bin ${exec_prefix}/bin /usr/local/bin /opt/local/bin], [ + AC_MSG_WARN([Could not find libart anywhere, check http://www.levien.com/libart/]) +]) + +if test -n "$LIBART_CONFIG"; then + vers=`$LIBART_CONFIG --version 2>/dev/null | $AWK 'BEGIN { FS = "."; } { printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'` + if test -n "$vers" && test "$vers" -ge 2003008 + then + LIBART_LIBS="`$LIBART_CONFIG --libs`" + LIBART_RPATH= + for args in $LIBART_LIBS; do + case $args in + -L*) + LIBART_RPATH="$LIBART_RPATH $args" + ;; + esac + done + LIBART_RPATH=`echo $LIBART_RPATH | $SED -e "s/-L/-R/g"` + LIBART_CFLAGS="`$LIBART_CONFIG --cflags`" + + AC_DEFINE_UNQUOTED(HAVE_LIBART, 1, [Defines if your system has the libart library]) + else + AC_MSG_WARN([You need at least libart 2.3.8]) + fi +fi + +AC_SUBST(LIBART_LIBS) +AC_SUBST(LIBART_CFLAGS) +AC_SUBST(LIBART_RPATH) + + +# Check for fontconfig +KDE_FIND_PATH(fontconfig-config, FONTCONFIG_CONFIG, [${prefix}/bin ${exec_prefix}/bin /usr/bin /usr/local/bin /opt/local/bin], [ + KDE_FIND_PATH(pkg-config, PKGCONFIG, [${prefix}/bin ${exec_prefix}/bin /usr/bin /usr/local/bin /opt/local/bin], [ + AC_MSG_WARN([Could not find neither pkg-config nor fontconfig-config, check http://www.fontconfig.org/ ]) + ]) +]) + +if test -n "$PKGCONFIG"; then + vers=`$PKGCONFIG fontconfig --modversion 2>/dev/null | $SED -e 's/libfontconfig //' | $AWK 'BEGIN { FS = "."; } { printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'` + if test -n "$vers" && test "$vers" -ge 1000001 + then + LIBFONTCONFIG_LIBS="`$PKGCONFIG fontconfig --libs`" + LIBFONTCONFIG_RPATH= + for args in $LIBFONTCONFIG_LIBS; do + case $args in + -L*) + LIBFONTCONFIG_RPATH="$LIBFONTCONFIG_RPATH $args" + ;; + esac + done + LIBFONTCONFIG_RPATH=`echo $LIBFONTCONFIG_RPATH | $SED -e "s/-L/-R/g"` + LIBFONTCONFIG_CFLAGS="`$PKGCONFIG fontconfig --cflags`" + + AC_DEFINE_UNQUOTED(HAVE_FONTCONFIG, 1, [Defines if your system has the libfontconfig library]) + fi +fi + +if test -n "$FONTCONFIG_CONFIG"; then + vers=`$FONTCONFIG_CONFIG --version 2>/dev/null | $SED -e 's/libfontconfig //' | $AWK 'BEGIN { FS = "."; } { printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'` + if test -n "$vers" && test "$vers" -ge 1000001 + then + LIBFONTCONFIG_LIBS="`$FONTCONFIG_CONFIG --libs`" + LIBFONTCONFIG_RPATH= + for args in $LIBFONTCONFIG_LIBS; do + case $args in + -L*) + LIBFONTCONFIG_RPATH="$LIBFONTCONFIG_RPATH $args" + ;; + esac + done + LIBFONTCONFIG_RPATH=`echo $LIBFONTCONFIG_RPATH | $SED -e "s/-L/-R/g"` + LIBFONTCONFIG_CFLAGS="`$FONTCONFIG_CONFIG --cflags`" + + AC_DEFINE_UNQUOTED(HAVE_FONTCONFIG, 1, [Defines if your system has the libfontconfig library]) + fi +fi + +AC_SUBST(LIBFONTCONFIG_LIBS) +AC_SUBST(LIBFONTCONFIG_CFLAGS) +AC_SUBST(LIBFONTCONFIG_RPATH) + +if test -z "$LIBART_LIBS"; then + DO_NOT_COMPILE="$DO_NOT_COMPILE karbon" +fi + +if test -n "$LIBFREETYPE_LIBS" -a -n "$LIBFONTCONFIG_LIBS"; then + AC_DEFINE_UNQUOTED(HAVE_KARBONTEXT, 1, [Defines if your system has the fontconfig and freetype libraries]) +fi +dnl ======================================================= +dnl FILE: ./kexi/3rdparty/configure.in.in +dnl ======================================================= + +dnl This is copied from gpsim-0.21.1/acinclude.m4, which was itself +dnl copied from the NcFTP distribution. +dnl Modified by David Faure for kexi's purposes. +dnl +dnl Original author Mike Gleason mgleason@NcFTP.com +dnl +dnl +AC_DEFUN([kexi_LIB_READLINE], [ +AC_MSG_CHECKING([for Readline library]) + +kexi_cv_lib_readline=no +ac_save_LIBS="$LIBS" +# Note: $LIBCURSES is permitted to be empty. +for LIBREADLINE in "-lreadline" "-lreadline $LIBCURSES" "-lreadline -ltermcap" "-lreadline -lncurses" "-lreadline -lcurses" +do + LIBS="$ac_save_LIBS $LIBREADLINE" + AC_TRY_RUN([ + /* program */ +#include +#include +#include + +main(int argc, char **argv) +{ + /* Note: don't actually call readline, since it may block; + * We just want to see if it (dynamic) linked in okay. + */ + if (argc == 0) /* never true */ + readline(0); + exit(0); +} +],[ + # action if true + kexi_cv_lib_readline=yes +],[ + # action if false + kexi_cv_lib_readline=no +],[ + # action if cross compiling + kexi_cv_lib_readline=no +]) + + if test "$kexi_cv_lib_readline" = yes ; then break ; fi +done +# restore LIBS +LIBS="$ac_save_LIBS" + +if test "$kexi_cv_lib_readline" = no ; then + LIBREADLINE="" + AC_MSG_RESULT("not found - kexisql will not be compiled") +else + AC_MSG_RESULT($LIBREADLINE) + AC_DEFINE(HAVE_READLINE, 1, [define if you have libreadline available]) +fi + +AM_CONDITIONAL(have_readline, test "$kexi_cv_lib_readline" = "yes") +AC_SUBST(LIBREADLINE) +]) + +kexi_LIB_READLINE +dnl ======================================================= +dnl FILE: ./kexi/configure.in.in +dnl ======================================================= + + +#KEXI_VERSION= +AC_SUBST(LIB_KEXI_KMDI, '-lkmdi') +AC_SUBST(LIB_KEXI_KMDI_INCLUDES, '') + +dnl ======================================================= +dnl FILE: ./kexi/kexidb/drivers/configure.in.in +dnl ======================================================= + +dnl ======================================== +dnl checks for MySQL +dnl taken form KDEDB +dnl ======================================== + +AC_ARG_ENABLE(mysql, + AC_HELP_STRING([--enable-mysql],[build MySQL-plugin [default=yes]]), + mysql_plugin=$enableval, mysql_plugin=yes) + +if test "x$mysql_plugin" = "xyes"; then + compile_mysql_plugin="yes" +else + compile_mysql_plugin="no" +fi + +AC_ARG_WITH(mysql_includes, +AC_HELP_STRING([--with-mysql-includes=DIR],[use MySQL-includes installed in this directory]), +[ + ac_mysql_incdir=$withval +], ac_mysql_incdir= +) + +AC_ARG_WITH(mysql_libraries, +AC_HELP_STRING([--with-mysql-libraries=DIR],[use MySQL-libs installed in this directory ]), +[ + ac_mysql_libdir=$withval +], ac_mysql_libdir= +) + +dnl ============================================== +dnl check whether MySQL should be compiled +dnl and where headers and libraries are installed +dnl if present compile mysql-plugin +dnl ============================================== + +AC_MSG_CHECKING([for MySQL]) + +if test "$compile_mysql_plugin" = "yes"; then + if test -n "$ac_mysql_incdir" -o -n "$ac_mysql_libdir"; then +dnl *** Configure arguments for includes or libs given *** +dnl *** and MySQL not explicitly disabled. *** +dnl *** Check that the paths given to configure are valid *** + AC_MSG_CHECKING([for MySQL headers]) + mysql_incdirs="$ac_mysql_incdir /usr/local/include /usr/include" + AC_FIND_FILE(mysql/mysql.h, $mysql_incdirs, mysql_incdir) + if test -r $mysql_incdir/mysql/mysql.h; then + MYSQL_INC=$mysql_incdir + AC_MSG_RESULT([$MYSQL_INC]) + AC_SUBST(MYSQL_INC) + else + compile_mysql_plugin="no" + AC_MSG_RESULT([not found]) + fi + + AC_MSG_CHECKING([for MySQL libraries]) + mysql_libdirs="$ac_mysql_libdir /usr/local/lib$kdelibsuff /usr/lib$kdelibsuff" + AC_FIND_FILE(mysql/libmysqlclient.so, $mysql_libdirs, mysql_libdir) + if test -r $mysql_libdir/mysql/libmysqlclient.so; then + MYSQL_LIBS=$mysql_libdir + AC_MSG_RESULT([$MYSQL_LIBS]) + AC_SUBST(MYSQL_LIBS) + else + compile_mysql_plugin="no" + AC_MSG_RESULT([not found]) + fi + else +dnl *** No configure arguments for includes or libs given *** +dnl *** and MySQL not explicitly disabled. *** + KDE_FIND_PATH(mysql_config, MYSQL_CONFIG, + [${prefix}/bin ${exec_prefix}/bin /usr/local/bin /usr/bin ], [ + AC_MSG_RESULT([not found]) + ]) + + if test -n "$MYSQL_CONFIG"; then + mysql_incdir=`$MYSQL_CONFIG --cflags| $SED -e "s,-I,,g" | cut -d " " -f 1` + mysql_libdir=`$MYSQL_CONFIG --libs| $SED -e "s,',,g"` + MYSQL_INC=$mysql_incdir + MYSQL_LIBS=$mysql_libdir + AC_SUBST(MYSQL_INC) + AC_SUBST(MYSQL_LIBS) + compile_mypsql_plugin="yes" + AC_MSG_RESULT([headers $mysql_incdir, libraries $mysql_libdir]) + else + compile_mysql_plugin="no" + fi + fi +else +dnl *** MySQL plugin explicitly disabled. *** +dnl *** Show that we are doing as requested. *** + AC_MSG_NOTICE([Not attempting to configure MySQL as requested]) +fi + +AM_CONDITIONAL(compile_mysql_plugin, test "$compile_mysql_plugin" = "yes") + +dnl ======================================== +dnl Checks for PostgreSQL +dnl ======================================== + +dnl ======================================== +dnl libpq +dnl Add configure-args +dnl ======================================== + +dnl Assume we're building until something fails, unless explicitly disabled +AC_ARG_ENABLE(pgsql, +AC_HELP_STRING([--enable-pgsql],[build PostgreSQL-plugin [default=yes]]), + pgsql_plugin=$enableval, pgsql_plugin=yes) + +if test "x$pgsql_plugin" = "xyes"; then + compile_pgsql_plugin="yes" +else + compile_pgsql_plugin="no" +fi + +AC_ARG_WITH(pgsql-includes, +AC_HELP_STRING([--with-pgsql-includes=DIR],[use PostgreSQL(libpq)-includes installed in this directory ]), +[ + ac_pgsql_incdir=$withval +], ac_pgsql_incdir= +) + +AC_ARG_WITH(pgsql-libraries, +AC_HELP_STRING([--with-pgsql-libraries=DIR],[use PostgreSQL(libpq)-libraries installed in this directory ]), +[ + ac_pgsql_libdir=$withval +], ac_pgsql_libdir= +) + + +dnl ======================================== +dnl header/library directories +dnl ======================================== + +if test "$compile_pgsql_plugin" = "yes"; then + if test -n "$ac_pgsql_incdir" -o -n "$ac_pgsql_libdir"; then +dnl *** Configure arguments for includes or libs given *** +dnl *** and PostgreSQL not explicitly disabled. *** +dnl *** Check that the paths given to configure are valid *** + AC_MSG_CHECKING([for PostgreSQL C API headers]) + pgsql_incdirs="$ac_pgsql_incdir /usr/local/include /usr/include" + AC_FIND_FILE(libpq-fe.h, $pgsql_incdirs, pgsql_incdir) + if test -r $pgsql_incdir/libpq-fe.h; then + PG_INCDIR=$pgsql_incdir + AC_MSG_RESULT([$PG_INCDIR]) + AC_SUBST(PG_INCDIR) + else + compile_pgsql_plugin="no" + AC_MSG_RESULT([not found]) + fi + + AC_MSG_CHECKING([for PostgreSQL C API libraries]) + pgsql_libdirs="$ac_pgsql_libdir /usr/local/lib$kdelibsuff /usr/lib$kdelibsuff" + AC_FIND_FILE(libpq.so, $pgsql_libdirs, pgsql_libdir) + if test -r $pgsql_libdir/libpq.so; then + PG_LIBDIR=$pgsql_libdir + AC_MSG_RESULT([$PG_LIBDIR]) + AC_SUBST(PG_LIBDIR) + else + compile_pgsql_plugin="no" + AC_MSG_RESULT([not found]) + fi + else +dnl *** No configure arguments for includes or libs given *** +dnl *** and PostgreSQL not explicitly disabled. *** + KDE_FIND_PATH(pg_config, PG_CONFIG, + [${prefix}/bin ${exec_prefix}/bin /usr/local/bin /usr/bin ], [ + AC_MSG_RESULT([not found]) + ]) + + if test -n "$PG_CONFIG"; then + pgsql_incdir=`$PG_CONFIG --includedir` + pgsql_libdir=`$PG_CONFIG --libdir` + PG_INCDIR=$pgsql_incdir + PG_LIBDIR=$pgsql_libdir + AC_SUBST(PG_LIBDIR) + compile_pgsql_plugin="yes" + AC_MSG_RESULT([headers $pgsql_incdir, libraries $pgsql_libdir]) + else + compile_pgsql_plugin="no" + fi + fi +else +dnl *** PostgreSQL plugin explicitly disabled. *** +dnl *** Show that we are doing as requested. *** + AC_MSG_NOTICE([Not attempting to configure PostgreSQL as requested]) +fi + +AM_CONDITIONAL(compile_pgsql_plugin, test "$compile_pgsql_plugin" = "yes") + + +dnl ======================================== +dnl libpqxx checks +dnl ======================================== + +AC_ARG_WITH(pqxx-includes, +AC_HELP_STRING([--with-pqxx-includes=DIR],[use PostgreSQL(libpqxx)-includes installed in this directory ]), +[ + ac_pqxx_incdir=$withval +], ac_pqxx_incdir= +) + +AC_ARG_WITH(pqxx-libraries, +AC_HELP_STRING([--with-pqxx-libraries=DIR],[use PostgreSQL(libpqxx)-libraries installed in this directory ]), +[ + ac_pqxx_libdir=$withval +], ac_pqxx_libdir= +) + + +dnl ======================================== +dnl libpqxx headers +dnl ======================================== +if test "$compile_pgsql_plugin" = "yes"; then + AC_MSG_CHECKING([for PostgreSQL C++ includes]) + pqxx_incdirs="$ac_pqxx_incdir /usr/local/include /usr/include" + AC_FIND_FILE(pqxx/pqxx, $pqxx_incdirs, pqxx_incdir) + if test -r $pqxx_incdir/pqxx/pqxx; then + PQXX_INCDIR=$pqxx_incdir + AC_MSG_RESULT([$PQXX_INCDIR]) + AC_SUBST(PQXX_INCDIR) + else + compile_pgsql_plugin="no" + AC_MSG_RESULT([not found]) + fi +fi + +dnl ======================================== +dnl libpqxx libraries +dnl ======================================== +if test "$compile_pgsql_plugin" = "yes"; then + AC_MSG_CHECKING([for PostgreSQL C++ libraries]) + pqxx_libdirs="$ac_pqxx_libdir /usr/local/lib$kdelibsuff /usr/lib$kdelibsuff" + AC_FIND_FILE(libpqxx.so, $pqxx_libdirs, pqxx_libdir) + if test -r $pqxx_libdir/libpqxx.so; then + PQXX_LIBDIR=$pqxx_libdir + AC_MSG_RESULT([$PQXX_LIBDIR]) + AC_SUBST(PQXX_LIBDIR) + else + compile_pgsql_plugin="no" + AC_MSG_RESULT([not found]) + fi +fi + +AM_CONDITIONAL(compile_pgsql_plugin, test "$compile_pgsql_plugin" = "yes") +dnl ======================================================= +dnl FILE: ./kexi/main/configure.in.in +dnl ======================================================= + + +dnl ====================================== +dnl KNewStuff Configuration +dnl ====================================== +dnl +dnl Copyright (C) 2004 Josef Spillner +dnl This file is to be used within KDE's build system. +dnl It defines $(LIB_KNEWSTUFF) if knewstuff has been found, +dnl and a HAVE_KNEWSTUFF #define statement is added. +dnl + +AC_MSG_CHECKING([for KDE library: knewstuff]) + +ac_knewstuff_includes=NO ac_knewstuff_libraries=NO +knewstuff_libraries="" +knewstuff_includes="" + +AC_CACHE_VAL(ac_cv_have_knewstuff, +[ +AC_FIND_FILE(knewstuff/downloaddialog.h, $kde_incdirs, knewstuff_incdir) +ac_knewstuff_includes="$knewstuff_incdir" + +AC_FIND_FILE(libknewstuff.so, $kde_libdirs, knewstuff_libdir) +ac_knewstuff_libraries="$knewstuff_libdir" + +if test "$ac_knewstuff_includes" = NO || test "$ac_knewstuff_libraries" = NO; then + ac_cv_have_knewstuff="have_knewstuff=no" + ac_knewstuff_notfound="" +else + have_knewstuff="yes" +fi +]) + +eval "$ac_cv_have_knewstuff" + +if test "$have_knewstuff" != yes; then + AC_MSG_RESULT([$have_knewstuff]) +else + AC_MSG_RESULT([$have_knewstuff (libraries $ac_knewstuff_libraries, headers $ac_knewstuff_includes)]) + +dnl AC_DEFINE_UNQUOTED(HAVE_KNEWSTUFF, 1, [Add KNewStuff functionality.]) + CXXFLAGS="$CXXFLAGS -DHAVE_KNEWSTUFF" + + LIB_KNEWSTUFF='-lknewstuff' + AC_SUBST(LIB_KNEWSTUFF) +fi + +AC_CHECK_FILE([kexi/3rdparty/kexifeedbackwizard/lib/kexifeedbackwizard.cpp], + have_internal_feedback="yes" +, + have_internal_feedback="no" +) + +AC_MSG_CHECKING([for KDE library: kfeedbackwizard]) + +ac_kfeedback_includes=NO ac_kfeedback_libraries=NO +kfeedback_libraries="" +kfeedback_includes="" + +AC_CACHE_VAL(ac_cv_have_kfeedback, +[ +AC_FIND_FILE(kfeedbackwizard.h, $kde_incdirs, kfeedback_incdir) +ac_kfeedback_includes="$kfeedback_incdir" + +AC_FIND_FILE(libkfeedbackwizard.so, $kde_libdirs, kfeedback_libdir) +ac_kfeedback_libraries="$kfeedback_libdir" + +if test "$ac_kfeedback_includes" = NO || test "$ac_kfeedback_libraries" = NO; then + ac_cv_have_kfeedback="have_kfeedback=no" + ac_kfeedback_notfound="" +else + have_kfeedback="yes" +fi +]) + +eval "$ac_cv_have_kfeedback" + +INC_KFEEDBACK='' +LIB_KFEEDBACK='' +if test "$have_kfeedback" != yes; then + if test "$have_internal_feedback" = yes; then + CXXFLAGS="$CXXFLAGS -DFEEDBACK_CLASS=KexiFeedbackWizard -DFEEDBACK_INCLUDE=\"\"" + use_kexifb="yes" + AC_MSG_RESULT([using internal]) + INC_KFEEDBACK='-I../3rdparty/kexifeedbackwizard/lib' + LIB_KFEEDBACK='../3rdparty/kexifeedbackwizard/lib/libkexifeedbackwizard.la' + else + use_kexifb="no" + AC_MSG_RESULT([dont use]) + fi +else + use_kexifb="no" + AC_MSG_RESULT([$have_kfeedback (libraries $ac_kfeedback_libraries, headers $ac_kfeedback_includes)]) + +dnl AC_DEFINE_UNQUOTED(HAVE_KFEEDBACK, 1, [Add KNewStuff functionality.]) + CXXFLAGS="$CXXFLAGS -DFEEDBACK_CLASS=KFeedbackWizard -DFEEDBACK_INCLUDE=\"\"" + + LIB_KFEEDBACK='-lkfeedbackwizard' +fi +AC_SUBST(LIB_KFEEDBACK) +AC_SUBST(INC_KFEEDBACK) +AM_CONDITIONAL(use_kexifeedback, test "$use_kexifb" = "yes") +dnl ======================================================= +dnl FILE: ./kexi/migration/configure.in.in +dnl ======================================================= + +# KexiMDB isn't built as part of Kexi right now. +#AC_ARG_ENABLE(keximdb, +# AC_HELP_STRING([--enable-keximdb], +# [build KexiMDB (MS Access) plugin [default=no]]), +# compile_keximdb_plugin=$enableval, compile_keximdb_plugin=no) +# +#AM_CONDITIONAL(compile_keximdb_plugin, test "x$compile_keximdb_plugin" != "xno") +dnl ======================================================= +dnl FILE: ./kexi/plugins/configure.in.in +dnl ======================================================= + +# disabled +#AC_ARG_ENABLE(kexi-reports, +# AC_HELP_STRING([--enable-kexi-reports], +# [build Kexi reports plugin (EXPERIMENTAL) [default=no]]), +# compile_kexi_reports_plugin=$enableval, compile_kexi_reports_plugin=no) +#AM_CONDITIONAL(compile_kexi_reports_plugin, test "x$compile_kexi_reports_plugin" != "xno") +# +#if test "$compile_kexi_reports_plugin" == "yes"; then +# AC_DEFINE(KEXI_REPORTS_SUPPORT, 1, [build Kexi reports plugin]) +#fi + +AC_ARG_ENABLE(kexi-macros, + AC_HELP_STRING([--enable-kexi-macros], + [build Kexi macro plugin (EXPERIMENTAL) [default=yes]]), + compile_kexi_macros_plugin=$enableval, compile_kexi_macros_plugin=no) +AM_CONDITIONAL(compile_kexi_macros_plugin, test "x$compile_kexi_macros_plugin" == "xyes") + +if test "$compile_kexi_macros_plugin" == "yes"; then + AC_DEFINE(KEXI_MACROS_SUPPORT, 1, [build Kexi macros plugin]) +fi +dnl ======================================================= +dnl FILE: ./kexi/plugins/macros/configure.in.in +dnl ======================================================= + +# Check for kunittest +AC_MSG_CHECKING([for kunittest]) + +# First we check if the console unittester could be compiled +have_kunittest_header="no" +KDE_CHECK_HEADER(kunittest/tester.h, have_kunittest_header="yes", , ) +AM_CONDITIONAL(include_kunittest, test "$have_kunittest_header" = "yes") + +# Second we check if the GUI-unittester could be compiled +have_kunittestgui_header="no" +KDE_CHECK_HEADER(kunittest/runnergui.h, have_kunittestgui_header="yes", , ) +AM_CONDITIONAL(include_kunittestgui, test "$have_kunittestgui_header" = "yes") + +dnl ======================================================= +dnl FILE: ./kivio/configure.in.in +dnl ======================================================= + +dnl Do we have Python? +KDE_CHECK_PYTHON +dnl ======================================================= +dnl FILE: ./kpresenter/configure.in.in +dnl ======================================================= + +AC_HAVE_DPMS() +dnl ======================================================= +dnl FILE: ./krita/configure.in.in +dnl ======================================================= + +KDE_CHECK_LIB(Xi, XOpenDisplay, [ + LIB_XINPUTEXT="-lXi" + AC_DEFINE(HAVE_XINPUTEXT, 1, [Define if you have the X11 Input Extension]) + ]) +AC_SUBST(LIB_XINPUTEXT) + +# Check for lcms +AC_MSG_CHECKING([for lcms >= 1.15]) + +have_lcms_header='no' +KDE_CHECK_HEADER(lcms/lcms.h,have_lcms_header='yes',,) +if test "$have_lcms_header" = 'yes' +then + AC_DEFINE(LCMS_HEADER, , [The correct header]) + + echo "#include " > conftest.$ac_ext + echo "#if LCMS_VERSION < 115" >> conftest.$ac_ext + echo "#error Need lcms >= 1.15" >> conftest.$ac_ext + echo "#endif" >> conftest.$ac_ext + echo "int main() {}" >> conftest.$ac_ext + +else + # Alternative! Debian does it this way... + KDE_CHECK_HEADER(lcms.h,have_lcms_header='yes',,) + + if test "$have_lcms_header" = 'yes' + then + AC_DEFINE(LCMS_HEADER, , [The correct header]) + + echo "#include " > conftest.$ac_ext + echo "#if LCMS_VERSION < 115" >> conftest.$ac_ext + echo "#error Need lcms >= 1.15" >> conftest.$ac_ext + echo "#endif" >> conftest.$ac_ext + echo "int main() {}" >> conftest.$ac_ext + else + KDE_CHECK_HEADER(lcms.h,have_lcms_header='yes',,) + # and now debian also does it this way... can't they decide for one way of doing stuff ? + + AC_DEFINE(LCMS_HEADER, , [The correct header]) + + echo "#include " > conftest.$ac_ext + echo "#if LCMS_VERSION < 115" >> conftest.$ac_ext + echo "#error Need lcms >= 1.15" >> conftest.$ac_ext + echo "#endif" >> conftest.$ac_ext + echo "int main() {}" >> conftest.$ac_ext + + fi +fi + + +ac_link='$LIBTOOL_SHELL --mode=link ${CXX-g++} -o conftest $CXXFLAGS $all_includes $CPPFLAGS $LDFLAGS $all_libraries conftest.$ac_ext -llcms 1>&5' + +if AC_TRY_EVAL(ac_link) && test -s conftest; then + AC_MSG_RESULT(yes) + HAVELCMS="yes" + LCMS_LIBS="-llcms" +else + AC_MSG_RESULT(no) + HAVELCMS="no" + LCMS_LIBS="" + DO_NOT_COMPILE="$DO_NOT_COMPILE krita" +fi + +AC_SUBST(LCMS_LIBS) + +# IM 6.1.3 changed the number of arguments to GetMagickInfoList + +AC_MSG_CHECKING(if GetMagickInfoList has only 2 arguments) +CPPFLAGS_TMP="$CPPFLAGS" # Save preprocessor flags +CPPFLAGS="$LIBMAGICK_CPPFLAGS" + +AC_TRY_COMPILE( + [#include + #if HAVE_SYS_TYPES_H + #include + #endif + #include "magick/api.h"], + [const char *pattern; unsigned long ncolors; (void)GetMagickInfoList(pattern, &ncolors)], + magick_info_list='yes', + magick_info_list='no') + +CPPFLAGS="$CPPFLAGS_TMP" # Restore preprocessor flags + +if test "$magick_info_list" = 'yes'; then + AC_MSG_RESULT(yes) + AC_DEFINE([HAVE_OLD_GETMAGICKINFOLIST], 1, [GetMagickInfoList has different number of arguments with versions >= 6.1.3]) +else + AC_MSG_RESULT(no) +fi + +# Check for kunittest +AC_MSG_CHECKING([for kunittest]) + +have_kunittest_header="no" +KDE_CHECK_HEADER(kunittest/tester.h, have_kunittest_header="yes", , ) +AM_CONDITIONAL(include_kunittest_tests, test "$have_kunittest_header" = "yes") + +# --- OpenGL check --- + +AC_HAVE_GL( [], [] ) + +# --- End of OpenGL check --- + +# Check for powf. + +AC_CHECK_FUNC(powf, [have_powf="yes"], [AC_CHECK_LIB(m, powf, [have_powf="yes"], [have_powf="no"])]) + +if test "$have_powf" = 'yes'; then + AC_DEFINE([HAVE_POWF], 1, [Define to 1 if your system has powf in ]) +fi\ +dnl ======================================================= +dnl FILE: ./krita/plugins/configure.in.in +dnl ======================================================= + +KDE_CHECK_HEADER(kjsembed/jsproxy_imp.h, have_kjsembed=yes, have_kjsembed=no) +AM_CONDITIONAL(use_kjsembed, test x$have_kjsembed = xyes) +dnl ======================================================= +dnl FILE: ./krita/plugins/viewplugins/imagesize/configure.in.in +dnl ======================================================= + +AC_CHECK_DECLS([round], [], [], [#include ]) +dnl ======================================================= +dnl FILE: ./kspread/plugins/calculator/configure.in.in +dnl ======================================================= + +AC_CHECK_HEADERS(ieeefp.h) + +AC_CHECK_FUNCS(fabsl) + +AC_DEFUN([KDE_C_LONG_DOUBLE], +[ + AC_CACHE_CHECK(for long double, ac_cv_c_long_double, + [ + AC_TRY_RUN( + [ +#include +#include +#include +#include + +int main() { +/* The Stardent Vistra knows sizeof(long double), but does not support it. */ +long double foo = 1.0; +char buffer[10]; +/* On Ultrix 4.3 cc, long double is 4 and double is 8. */ +int result = (sizeof(long double) < sizeof(double)); +/* the following is needed for a broken printf in glibc2 */ +if (!result) { + foo = foo * 3; + sprintf(buffer,"%0.0Lf",foo); + result = strcmp(buffer, "3"); +/* and now something mean ;-) */ + foo = powl(fabsl(foo), 1); +} +exit(result); } + ], + ac_cv_c_long_double=yes, ac_cv_c_long_double=no, + ac_cv_c_long_double=no + ) + ]) + if test $ac_cv_c_long_double = yes; then + AC_DEFINE(HAVE_LONG_DOUBLE, 1, [Define if you have support for long double in printf]) + fi +]) +KDE_C_LONG_DOUBLE + +AC_LANG_C +KDE_CHECK_LIB(m, isinf, [ + AC_DEFINE_UNQUOTED(HAVE_FUNC_ISINF, 1, [Define if you have isinf]) +]) +dnl ======================================================= +dnl FILE: ./kword/mailmerge/configure.in.in +dnl ======================================================= + +dnl only compile the sql plugin if qt was compiled with sql support + + +AC_MSG_CHECKING([for SQL support in QT]) + +LIBS_SAVE_KWSL="$LIBS" +CXXFLAGS_SAVE_KWSL="$CXXFLAGS" +CFLAGS_SAVE_KWSL="$CFLAGS" + +AC_LANG_SAVE +AC_LANG_CPLUSPLUS + +LIBS="$all_libraries -lqimgio -lpng -lz $LIBJPEG $LIBQT" +CXXFLAGS="$CXXFLAGS -I$qt_includes $all_includes" + +AC_TRY_COMPILE([ +#include +], +[ +#ifdef QT_NO_SQL +#error "No QT-SQL support" +#endif +], +ac_trycompile_kwsl_qtsql=yes, +ac_trycompile_kwsl_qtsql=no) + +CXXFLAGS="$CXXFLAGS_SAVE_KWSL" +LIBS="$LIBS_SAVE_KWSL" +AC_LANG_RESTORE + +if eval "test \"`echo $ac_trycompile_kwsl_qtsql`\" = yes"; then + SQLDIR=sql + AC_SUBST(SQLDIR) + AC_MSG_RESULT([QT supports SQL - compile qtsqlmailmerge]) +else + SQLDIR= + AC_SUBST(SQLDIR) + AC_MSG_RESULT([QT supports SQL -- qtsqlmailmerge will not be built]) +fi + +AM_CONDITIONAL(include_sql, test -n "$SQLDIR") +dnl ======================================================= +dnl FILE: ./lib/configure.in.in +dnl ======================================================= + +AC_SUBST(KWMF_INCLUDES, '-I$(top_srcdir)/lib/kwmf -I$(top_builddir)/lib/kwmf') +AC_SUBST(KSTORE_INCLUDES, '-I$(top_srcdir)/lib/store -I$(top_builddir)/lib/store') +AC_SUBST(KOTEXT_INCLUDES, '-I$(top_srcdir)/lib/kotext -I$(top_builddir)/lib/kotext') +AC_SUBST(KOPAINTER_INCLUDES, '-I$(top_srcdir)/lib/kopainter -I$(top_builddir)/lib/kopainter') +AC_SUBST(KOPALETTE_INCLUDES, '-I$(top_srcdir)/lib/kopalette -I$(top_builddir)/lib/kopalette') +AC_SUBST(KOFFICECORE_INCLUDES, '-I$(top_srcdir)/lib/kofficecore -I$(top_builddir)/lib/kofficecore') +AC_SUBST(KOFFICEUI_INCLUDES, '-I$(top_srcdir)/lib/kofficeui -I$(top_builddir)/lib/kofficeui') +AC_SUBST(KFORMULA_INCLUDES, '-I$(top_srcdir)/lib/kformula -I$(top_builddir)/lib/kformula') +dnl those are included with e.g. +AC_SUBST(KOPROPERTY_INCLUDES, '-I$(top_srcdir)/lib -I$(top_builddir)/lib') +AC_SUBST(KROSS_INCLUDES, '-I$(top_srcdir)/lib/kross -I$(top_builddir)/lib/kross') +AC_SUBST(LIB_KOFFICEUI, '$(top_builddir)/lib/kofficeui/libkofficeui.la') +AC_SUBST(LIB_KOFFICECORE, '$(top_builddir)/lib/kofficecore/libkofficecore.la') +AC_SUBST(LIB_KSTORE, '$(top_builddir)/lib/store/libkstore.la') +AC_SUBST(LIB_KOTEXT, '$(top_builddir)/lib/kotext/libkotext.la') +AC_SUBST(LIB_KOPAINTER, '$(top_builddir)/lib/kopainter/libkopainter.la') +AC_SUBST(LIB_KOPALETTE, '$(top_builddir)/lib/kopalette/libkopalette.la') +AC_SUBST(LIB_KWMF, '$(top_builddir)/lib/kwmf/libkwmf.la') +AC_SUBST(LIB_KOWMF, '$(top_builddir)/lib/kwmf/libkowmf.la') +AC_SUBST(LIB_KFORMULA, '$(top_builddir)/lib/kformula/libkformulalib.la') +AC_SUBST(LIB_KOPROPERTY, '$(top_builddir)/lib/koproperty/libkoproperty.la') +AC_SUBST(LIB_KROSS_API, '$(top_builddir)/lib/kross/api/libkrossapi.la') +AC_SUBST(LIB_KROSS_MAIN, '$(top_builddir)/lib/kross/main/libkrossmain.la') + +AC_SUBST(interfacedir, '$(top_srcdir)/lib/interfaces') +AC_SUBST(KOFFICE_LIBS, '$(LIB_KOFFICEUI) $(LIB_KOFFICECORE) $(LIB_KSTORE)') +AC_SUBST(KOFFICE_INCLUDES, '$(KOFFICEUI_INCLUDES) $(KOFFICECORE_INCLUDES) $(KSTORE_INCLUDES) $(KWMF_INCLUDES) $(KOPALETTE_INCLUDES)') + +AC_DEFINE_UNQUOTED(PREFIX,"$prefix",[Define the PREFIX where to install this package]) + +dnl ======================================================= +dnl FILE: ./lib/kotext/configure.in.in +dnl ======================================================= + + AC_LANG_SAVE + AC_LANG_C + dnl Check for aspell library + KDE_CHECK_HEADERS([kspell2/broker.h]) + if test "x$ac_cv_header_kspell2_broker_h" = "xyes"; then + dnl the header and the lib exist -> ok + dnl this is for config.h + AC_DEFINE(HAVE_LIBKSPELL2, 1, [If we are going to use libkspell2 for spell-checking]) + LIBKSPELL2="-lkspell2" + AC_MSG_RESULT([found in $ac_kspell2_includes]) + else + LIBKSPELL2="" + AC_MSG_RESULT([not found -- spell-checking will be disabled]) + fi + AC_SUBST(LIBKSPELL2) + AC_LANG_RESTORE +dnl ======================================================= +dnl FILE: ./lib/kross/configure.in.in +dnl ======================================================= + +AC_ARG_ENABLE(scripting, + AC_HELP_STRING([--enable-scripting], + [build scripting library (Kross) [default=yes]]), + compile_kross=$enableval, compile_kross=yes) +AM_CONDITIONAL(compile_kross, test "x$compile_kross" = "xyes") + +############################### +# Check if Python is installed. + +if test "x$compile_kross" = "xyes" ; then + #KDE_CHECK_PYTHON(2.3) + KDE_CHECK_PYTHON +fi + +# Compile the Kross python plugin only if both, $LIBPYTHON and +# $PYTHONINC, are defined. +AM_CONDITIONAL(compile_kross_python, + test -n "$LIBPYTHON" && test -n "$PYTHONINC") + +############################### +# Check for Ruby + +if test "x$compile_kross" = "xyes" ; then + AC_CHECK_PROGS([RUBY], [ruby ruby1.8 ruby18], ruby) + + if test -n "$RUBY"; then + AC_MSG_CHECKING(for Ruby dirs) + RUBY_ARCHDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"archdir"@:>@)'` + RUBY_SITEARCHDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"sitearchdir"@:>@)'` + RUBY_SITEDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"sitelibdir"@:>@)'` + RUBY_INCLUDEDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"rubyincludedir"@:>@)'` + RUBY_LIBDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"libdir"@:>@)'` + RUBY_LIBRUBYARG=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"LIBRUBYARG_SHARED"@:>@)'` + RUBY_ENABLESHARED=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"ENABLE_SHARED"@:>@)'` + AC_MSG_RESULT([ + archdir $RUBY_ARCHDIR, + sitearchdir $RUBY_SITEARCHDIR, + sitedir $RUBY_SITEDIR, + includedir $RUBY_INCLUDEDIR, + libdir $RUBY_LIBDIR, + librubyarg $RUBY_LIBRUBYARG, + rubysharedenabled $RUBY_ENABLESHARED]) + AC_SUBST(RUBY_ARCHDIR) + AC_SUBST(RUBY_SITEARCHDIR) + AC_SUBST(RUBY_SITEDIR) + AC_SUBST(RUBY_INCLUDEDIR) + AC_SUBST(RUBY_LIBDIR) + AC_SUBST(RUBY_LIBRUBYARG) + AC_SUBST(RUBY_ENABLESHARED) + + AC_MSG_CHECKING(for Ruby header) + + if test ! -r $RUBY_INCLUDEDIR/ruby.h; then + # if $RUBY_INCLUDEDIR is not valid try to use $RUBY_ARCHDIR + RUBY_INCLUDEDIR=$RUBY_ARCHDIR + fi + + if test ! -r $RUBY_INCLUDEDIR/ruby.h; then + RUBY_LIBDIR="" + AC_MSG_RESULT([not found]) + else + AC_MSG_RESULT([found]) # header + + AC_MSG_CHECKING(Ruby shared library) + if test "x$RUBY_ENABLESHARED" != "xyes" ; then + AC_MSG_RESULT([shared library not found]) + RUBY_LIBDIR="" + else + if test -z "$RUBY_LIBRUBYARG" ; then + AC_MSG_RESULT([link argument not found]) + RUBY_LIBDIR="" + else + AC_MSG_RESULT([found]) # shared library link arg + + AC_MSG_CHECKING([if C++ program with ruby can be compiled]) + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + ac_save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS -I$RUBY_INCLUDEDIR" + AC_CACHE_VAL(ruby_build, + [ + AC_TRY_COMPILE([ + #include + #include + ],[ + +#if(RUBY_VERSION_MAJOR==1 && RUBY_VERSION_MINOR == 8 && RUBY_VERSION_TEENY <= 1) +#error "need at least ruby 1.8.2\n" +#endif + + ruby_init(); + return 0; + ], ruby_build=yes, + ruby_build=no) + ]) + AC_MSG_RESULT($ruby_build) + if test "$ruby_build" = "no"; then + RUBY_LIBDIR="" + fi + CXXFLAGS="$ac_save_CXXFLAGS" + AC_LANG_RESTORE + fi # have ruby shared lib argument + fi # have shared lib + fi # have ruby header + fi # have ruby +fi # compiling kross + +AM_CONDITIONAL(compile_kross_ruby, test -n "$RUBY_LIBDIR") +KDE_CREATE_SUBDIRSLIST +AM_CONDITIONAL(lib_SUBDIR_included, test "x$lib_SUBDIR_included" = xyes) +AM_CONDITIONAL(interfaces_SUBDIR_included, test "x$interfaces_SUBDIR_included" = xyes) +AM_CONDITIONAL(autocorrect_SUBDIR_included, test "x$autocorrect_SUBDIR_included" = xyes) +AM_CONDITIONAL(doc_SUBDIR_included, test "x$doc_SUBDIR_included" = xyes) +AM_CONDITIONAL(example_SUBDIR_included, test "x$example_SUBDIR_included" = xyes) +AM_CONDITIONAL(karbon_SUBDIR_included, test "x$karbon_SUBDIR_included" = xyes) +AM_CONDITIONAL(kchart_SUBDIR_included, test "x$kchart_SUBDIR_included" = xyes) +AM_CONDITIONAL(kdgantt_SUBDIR_included, test "x$kdgantt_SUBDIR_included" = xyes) +AM_CONDITIONAL(kformula_SUBDIR_included, test "x$kformula_SUBDIR_included" = xyes) +AM_CONDITIONAL(kivio_SUBDIR_included, test "x$kivio_SUBDIR_included" = xyes) +AM_CONDITIONAL(koshell_SUBDIR_included, test "x$koshell_SUBDIR_included" = xyes) +AM_CONDITIONAL(kounavail_SUBDIR_included, test "x$kounavail_SUBDIR_included" = xyes) +AM_CONDITIONAL(kpresenter_SUBDIR_included, test "x$kpresenter_SUBDIR_included" = xyes) +AM_CONDITIONAL(krita_SUBDIR_included, test "x$krita_SUBDIR_included" = xyes) +AM_CONDITIONAL(kspread_SUBDIR_included, test "x$kspread_SUBDIR_included" = xyes) +AM_CONDITIONAL(kugar_SUBDIR_included, test "x$kugar_SUBDIR_included" = xyes) +AM_CONDITIONAL(mimetypes_SUBDIR_included, test "x$mimetypes_SUBDIR_included" = xyes) +AM_CONDITIONAL(pics_SUBDIR_included, test "x$pics_SUBDIR_included" = xyes) +AM_CONDITIONAL(plugins_SUBDIR_included, test "x$plugins_SUBDIR_included" = xyes) +AM_CONDITIONAL(servicetypes_SUBDIR_included, test "x$servicetypes_SUBDIR_included" = xyes) +AM_CONDITIONAL(templates_SUBDIR_included, test "x$templates_SUBDIR_included" = xyes) +AM_CONDITIONAL(tools_SUBDIR_included, test "x$tools_SUBDIR_included" = xyes) +AM_CONDITIONAL(kword_SUBDIR_included, test "x$kword_SUBDIR_included" = xyes) +AM_CONDITIONAL(kplato_SUBDIR_included, test "x$kplato_SUBDIR_included" = xyes) +AM_CONDITIONAL(kexi_SUBDIR_included, test "x$kexi_SUBDIR_included" = xyes) +AM_CONDITIONAL(filters_SUBDIR_included, test "x$filters_SUBDIR_included" = xyes) +AC_CONFIG_FILES([ Makefile ]) +AC_CONFIG_FILES([ autocorrect/Makefile ]) +AC_CONFIG_FILES([ doc/Makefile ]) +AC_CONFIG_FILES([ doc/karbon/Makefile ]) +AC_CONFIG_FILES([ doc/kchart/Makefile ]) +AC_CONFIG_FILES([ doc/kexi/Makefile ]) +AC_CONFIG_FILES([ doc/kformula/Makefile ]) +AC_CONFIG_FILES([ doc/kivio/Makefile ]) +AC_CONFIG_FILES([ doc/koffice/Makefile ]) +AC_CONFIG_FILES([ doc/koshell/Makefile ]) +AC_CONFIG_FILES([ doc/kplato/Makefile ]) +AC_CONFIG_FILES([ doc/kpresenter/Makefile ]) +AC_CONFIG_FILES([ doc/krita/Makefile ]) +AC_CONFIG_FILES([ doc/kspread/Makefile ]) +AC_CONFIG_FILES([ doc/kugar/Makefile ]) +AC_CONFIG_FILES([ doc/kword/Makefile ]) +AC_CONFIG_FILES([ doc/thesaurus/Makefile ]) +AC_CONFIG_FILES([ example/Makefile ]) +AC_CONFIG_FILES([ filters/Makefile ]) +AC_CONFIG_FILES([ filters/generic_wrapper/Makefile ]) +AC_CONFIG_FILES([ filters/karbon/Makefile ]) +AC_CONFIG_FILES([ filters/karbon/ai/Makefile ]) +AC_CONFIG_FILES([ filters/karbon/applixgraphics/Makefile ]) +AC_CONFIG_FILES([ filters/karbon/eps/Makefile ]) +AC_CONFIG_FILES([ filters/karbon/kontour/Makefile ]) +AC_CONFIG_FILES([ filters/karbon/msod/Makefile ]) +AC_CONFIG_FILES([ filters/karbon/oodraw/Makefile ]) +AC_CONFIG_FILES([ filters/karbon/png/Makefile ]) +AC_CONFIG_FILES([ filters/karbon/svg/Makefile ]) +AC_CONFIG_FILES([ filters/karbon/wmf/Makefile ]) +AC_CONFIG_FILES([ filters/karbon/xaml/Makefile ]) +AC_CONFIG_FILES([ filters/karbon/xcf/Makefile ]) +AC_CONFIG_FILES([ filters/kchart/Makefile ]) +AC_CONFIG_FILES([ filters/kchart/bmp/Makefile ]) +AC_CONFIG_FILES([ filters/kchart/jpeg/Makefile ]) +AC_CONFIG_FILES([ filters/kchart/libimageexport/Makefile ]) +AC_CONFIG_FILES([ filters/kchart/mng/Makefile ]) +AC_CONFIG_FILES([ filters/kchart/png/Makefile ]) +AC_CONFIG_FILES([ filters/kchart/svg/Makefile ]) +AC_CONFIG_FILES([ filters/kchart/xbm/Makefile ]) +AC_CONFIG_FILES([ filters/kchart/xpm/Makefile ]) +AC_CONFIG_FILES([ filters/kformula/Makefile ]) +AC_CONFIG_FILES([ filters/kformula/latex/Makefile ]) +AC_CONFIG_FILES([ filters/kformula/mathml/Makefile ]) +AC_CONFIG_FILES([ filters/kformula/png/Makefile ]) +AC_CONFIG_FILES([ filters/kformula/svg/Makefile ]) +AC_CONFIG_FILES([ filters/kivio/Makefile ]) +AC_CONFIG_FILES([ filters/kivio/imageexport/Makefile ]) +AC_CONFIG_FILES([ filters/kpresenter/Makefile ]) +AC_CONFIG_FILES([ filters/kpresenter/bmp/Makefile ]) +AC_CONFIG_FILES([ filters/kpresenter/jpeg/Makefile ]) +AC_CONFIG_FILES([ filters/kpresenter/kword/Makefile ]) +AC_CONFIG_FILES([ filters/kpresenter/libimageexport/Makefile ]) +AC_CONFIG_FILES([ filters/kpresenter/magicpoint/Makefile ]) +AC_CONFIG_FILES([ filters/kpresenter/mng/Makefile ]) +AC_CONFIG_FILES([ filters/kpresenter/ooimpress/Makefile ]) +AC_CONFIG_FILES([ filters/kpresenter/png/Makefile ]) +AC_CONFIG_FILES([ filters/kpresenter/powerpoint/Makefile ]) +AC_CONFIG_FILES([ filters/kpresenter/powerpoint/import/Makefile ]) +AC_CONFIG_FILES([ filters/kpresenter/powerpoint/libppt/Makefile ]) +AC_CONFIG_FILES([ filters/kpresenter/svg/Makefile ]) +AC_CONFIG_FILES([ filters/kpresenter/xbm/Makefile ]) +AC_CONFIG_FILES([ filters/kpresenter/xpm/Makefile ]) +AC_CONFIG_FILES([ filters/krita/Makefile ]) +AC_CONFIG_FILES([ filters/krita/gmagick/Makefile ]) +AC_CONFIG_FILES([ filters/krita/jpeg/Makefile ]) +AC_CONFIG_FILES([ filters/krita/libkisexif/Makefile ]) +AC_CONFIG_FILES([ filters/krita/magick/Makefile ]) +AC_CONFIG_FILES([ filters/krita/openexr/Makefile ]) +AC_CONFIG_FILES([ filters/krita/pdf/Makefile ]) +AC_CONFIG_FILES([ filters/krita/png/Makefile ]) +AC_CONFIG_FILES([ filters/krita/raw/Makefile ]) +AC_CONFIG_FILES([ filters/krita/tiff/Makefile ]) +AC_CONFIG_FILES([ filters/krita/xcf/Makefile ]) +AC_CONFIG_FILES([ filters/kspread/Makefile ]) +AC_CONFIG_FILES([ filters/kspread/applixspread/Makefile ]) +AC_CONFIG_FILES([ filters/kspread/csv/Makefile ]) +AC_CONFIG_FILES([ filters/kspread/dbase/Makefile ]) +AC_CONFIG_FILES([ filters/kspread/excel/Makefile ]) +AC_CONFIG_FILES([ filters/kspread/excel/import/Makefile ]) +AC_CONFIG_FILES([ filters/kspread/excel/sidewinder/Makefile ]) +AC_CONFIG_FILES([ filters/kspread/gnumeric/Makefile ]) +AC_CONFIG_FILES([ filters/kspread/html/Makefile ]) +AC_CONFIG_FILES([ filters/kspread/kexi/Makefile ]) +AC_CONFIG_FILES([ filters/kspread/latex/Makefile ]) +AC_CONFIG_FILES([ filters/kspread/latex/export/Makefile ]) +AC_CONFIG_FILES([ filters/kspread/libkspreadexport/Makefile ]) +AC_CONFIG_FILES([ filters/kspread/opencalc/Makefile ]) +AC_CONFIG_FILES([ filters/kspread/qpro/Makefile ]) +AC_CONFIG_FILES([ filters/kspread/qpro/libqpro/Makefile ]) +AC_CONFIG_FILES([ filters/kspread/qpro/libqpro/qpro/Makefile ]) +AC_CONFIG_FILES([ filters/kspread/qpro/libqpro/src/Makefile ]) +AC_CONFIG_FILES([ filters/kugar/Makefile ]) +AC_CONFIG_FILES([ filters/kugar/kugarnop/Makefile ]) +AC_CONFIG_FILES([ filters/kword/Makefile ]) +AC_CONFIG_FILES([ filters/kword/abiword/Makefile ]) +AC_CONFIG_FILES([ filters/kword/amipro/Makefile ]) +AC_CONFIG_FILES([ filters/kword/applixword/Makefile ]) +AC_CONFIG_FILES([ filters/kword/ascii/Makefile ]) +AC_CONFIG_FILES([ filters/kword/docbook/Makefile ]) +AC_CONFIG_FILES([ filters/kword/hancomword/Makefile ]) +AC_CONFIG_FILES([ filters/kword/html/Makefile ]) +AC_CONFIG_FILES([ filters/kword/html/export/Makefile ]) +AC_CONFIG_FILES([ filters/kword/html/import/Makefile ]) +AC_CONFIG_FILES([ filters/kword/kword1.3/Makefile ]) +AC_CONFIG_FILES([ filters/kword/kword1.3/import/Makefile ]) +AC_CONFIG_FILES([ filters/kword/latex/Makefile ]) +AC_CONFIG_FILES([ filters/kword/latex/export/Makefile ]) +AC_CONFIG_FILES([ filters/kword/latex/import/Makefile ]) +AC_CONFIG_FILES([ filters/kword/latex/import/generator/Makefile ]) +AC_CONFIG_FILES([ filters/kword/latex/import/parser/Makefile ]) +AC_CONFIG_FILES([ filters/kword/libexport/Makefile ]) +AC_CONFIG_FILES([ filters/kword/msword/Makefile ]) +AC_CONFIG_FILES([ filters/kword/mswrite/Makefile ]) +AC_CONFIG_FILES([ filters/kword/oowriter/Makefile ]) +AC_CONFIG_FILES([ filters/kword/palmdoc/Makefile ]) +AC_CONFIG_FILES([ filters/kword/pdf/Makefile ]) +AC_CONFIG_FILES([ filters/kword/pdf/xpdf/Makefile ]) +AC_CONFIG_FILES([ filters/kword/pdf/xpdf/goo/Makefile ]) +AC_CONFIG_FILES([ filters/kword/pdf/xpdf/xpdf/Makefile ]) +AC_CONFIG_FILES([ filters/kword/rtf/Makefile ]) +AC_CONFIG_FILES([ filters/kword/rtf/export/Makefile ]) +AC_CONFIG_FILES([ filters/kword/rtf/import/Makefile ]) +AC_CONFIG_FILES([ filters/kword/starwriter/Makefile ]) +AC_CONFIG_FILES([ filters/kword/wml/Makefile ]) +AC_CONFIG_FILES([ filters/kword/wordperfect/Makefile ]) +AC_CONFIG_FILES([ filters/kword/wordperfect/export/Makefile ]) +AC_CONFIG_FILES([ filters/kword/wordperfect/import/Makefile ]) +AC_CONFIG_FILES([ filters/libdialogfilter/Makefile ]) +AC_CONFIG_FILES([ filters/liboofilter/Makefile ]) +AC_CONFIG_FILES([ filters/olefilters/Makefile ]) +AC_CONFIG_FILES([ filters/olefilters/lib/Makefile ]) +AC_CONFIG_FILES([ filters/olefilters/powerpoint97/Makefile ]) +AC_CONFIG_FILES([ filters/xsltfilter/Makefile ]) +AC_CONFIG_FILES([ filters/xsltfilter/export/Makefile ]) +AC_CONFIG_FILES([ filters/xsltfilter/export/xsl/Makefile ]) +AC_CONFIG_FILES([ filters/xsltfilter/export/xsl/kword/Makefile ]) +AC_CONFIG_FILES([ filters/xsltfilter/export/xsl/kword/xslfo/Makefile ]) +AC_CONFIG_FILES([ filters/xsltfilter/import/Makefile ]) +AC_CONFIG_FILES([ interfaces/Makefile ]) +AC_CONFIG_FILES([ karbon/Makefile ]) +AC_CONFIG_FILES([ karbon/commands/Makefile ]) +AC_CONFIG_FILES([ karbon/core/Makefile ]) +AC_CONFIG_FILES([ karbon/data/Makefile ]) +AC_CONFIG_FILES([ karbon/dialogs/Makefile ]) +AC_CONFIG_FILES([ karbon/dockers/Makefile ]) +AC_CONFIG_FILES([ karbon/pics/Makefile ]) +AC_CONFIG_FILES([ karbon/plugins/Makefile ]) +AC_CONFIG_FILES([ karbon/plugins/flattenpath/Makefile ]) +AC_CONFIG_FILES([ karbon/plugins/imagetool/Makefile ]) +AC_CONFIG_FILES([ karbon/plugins/insertknots/Makefile ]) +AC_CONFIG_FILES([ karbon/plugins/roundcorners/Makefile ]) +AC_CONFIG_FILES([ karbon/plugins/shadoweffect/Makefile ]) +AC_CONFIG_FILES([ karbon/plugins/whirlpinch/Makefile ]) +AC_CONFIG_FILES([ karbon/plugins/zoomtool/Makefile ]) +AC_CONFIG_FILES([ karbon/render/Makefile ]) +AC_CONFIG_FILES([ karbon/render/xrgbrender/Makefile ]) +AC_CONFIG_FILES([ karbon/shapes/Makefile ]) +AC_CONFIG_FILES([ karbon/templates/Makefile ]) +AC_CONFIG_FILES([ karbon/templates/basic/Makefile ]) +AC_CONFIG_FILES([ karbon/tools/Makefile ]) +AC_CONFIG_FILES([ karbon/visitors/Makefile ]) +AC_CONFIG_FILES([ karbon/widgets/Makefile ]) +AC_CONFIG_FILES([ kchart/Makefile ]) +AC_CONFIG_FILES([ kchart/kdchart/Makefile ]) +AC_CONFIG_FILES([ kchart/pics/Makefile ]) +AC_CONFIG_FILES([ kchart/templates/Makefile ]) +AC_CONFIG_FILES([ kchart/toolbar/Makefile ]) +AC_CONFIG_FILES([ kchart/toolbar/crystalsvg/Makefile ]) +AC_CONFIG_FILES([ kchart/toolbar/locolor/Makefile ]) +AC_CONFIG_FILES([ kdgantt/Makefile ]) +AC_CONFIG_FILES([ kexi/Makefile ]) +AC_CONFIG_FILES([ kexi/3rdparty/Makefile ]) +AC_CONFIG_FILES([ kexi/3rdparty/kexisql/Makefile ]) +AC_CONFIG_FILES([ kexi/3rdparty/kexisql/src/Makefile ]) +AC_CONFIG_FILES([ kexi/3rdparty/kexisql/tool/Makefile ]) +AC_CONFIG_FILES([ kexi/3rdparty/kexisql3/Makefile ]) +AC_CONFIG_FILES([ kexi/3rdparty/kexisql3/src/Makefile ]) +AC_CONFIG_FILES([ kexi/3rdparty/kolibs/Makefile ]) +AC_CONFIG_FILES([ kexi/3rdparty/uuid/Makefile ]) +AC_CONFIG_FILES([ kexi/core/Makefile ]) +AC_CONFIG_FILES([ kexi/data/Makefile ]) +AC_CONFIG_FILES([ kexi/data/kde34compat/Makefile ]) +AC_CONFIG_FILES([ kexi/examples/Makefile ]) +AC_CONFIG_FILES([ kexi/formeditor/Makefile ]) +AC_CONFIG_FILES([ kexi/formeditor/factories/Makefile ]) +AC_CONFIG_FILES([ kexi/formeditor/kdevelop_plugin/Makefile ]) +AC_CONFIG_FILES([ kexi/formeditor/scripting/Makefile ]) +AC_CONFIG_FILES([ kexi/formeditor/test/Makefile ]) +AC_CONFIG_FILES([ kexi/kexidb/Makefile ]) +AC_CONFIG_FILES([ kexi/kexidb/drivers/Makefile ]) +AC_CONFIG_FILES([ kexi/kexidb/drivers/mySQL/Makefile ]) +AC_CONFIG_FILES([ kexi/kexidb/drivers/odbc/Makefile ]) +AC_CONFIG_FILES([ kexi/kexidb/drivers/pqxx/Makefile ]) +AC_CONFIG_FILES([ kexi/kexidb/drivers/sqlite/Makefile ]) +AC_CONFIG_FILES([ kexi/kexidb/drivers/sqlite2/Makefile ]) +AC_CONFIG_FILES([ kexi/kexidb/parser/Makefile ]) +AC_CONFIG_FILES([ kexi/kexiutils/Makefile ]) +AC_CONFIG_FILES([ kexi/main/Makefile ]) +AC_CONFIG_FILES([ kexi/main/printing/Makefile ]) +AC_CONFIG_FILES([ kexi/main/startup/Makefile ]) +AC_CONFIG_FILES([ kexi/migration/Makefile ]) +AC_CONFIG_FILES([ kexi/migration/mysql/Makefile ]) +AC_CONFIG_FILES([ kexi/migration/pqxx/Makefile ]) +AC_CONFIG_FILES([ kexi/migration/txt/Makefile ]) +AC_CONFIG_FILES([ kexi/pics/Makefile ]) +AC_CONFIG_FILES([ kexi/plugins/Makefile ]) +AC_CONFIG_FILES([ kexi/plugins/forms/Makefile ]) +AC_CONFIG_FILES([ kexi/plugins/forms/widgets/Makefile ]) +AC_CONFIG_FILES([ kexi/plugins/importexport/Makefile ]) +AC_CONFIG_FILES([ kexi/plugins/importexport/csv/Makefile ]) +AC_CONFIG_FILES([ kexi/plugins/macros/Makefile ]) +AC_CONFIG_FILES([ kexi/plugins/macros/kexiactions/Makefile ]) +AC_CONFIG_FILES([ kexi/plugins/macros/kexipart/Makefile ]) +AC_CONFIG_FILES([ kexi/plugins/macros/lib/Makefile ]) +AC_CONFIG_FILES([ kexi/plugins/macros/tests/Makefile ]) +AC_CONFIG_FILES([ kexi/plugins/migration/Makefile ]) +AC_CONFIG_FILES([ kexi/plugins/queries/Makefile ]) +AC_CONFIG_FILES([ kexi/plugins/relations/Makefile ]) +AC_CONFIG_FILES([ kexi/plugins/reports/Makefile ]) +AC_CONFIG_FILES([ kexi/plugins/scripting/Makefile ]) +AC_CONFIG_FILES([ kexi/plugins/scripting/kexiapp/Makefile ]) +AC_CONFIG_FILES([ kexi/plugins/scripting/kexidb/Makefile ]) +AC_CONFIG_FILES([ kexi/plugins/scripting/kexiscripting/Makefile ]) +AC_CONFIG_FILES([ kexi/plugins/scripting/scripts/Makefile ]) +AC_CONFIG_FILES([ kexi/plugins/scripting/scripts/copycenter/Makefile ]) +AC_CONFIG_FILES([ kexi/plugins/scripting/scripts/exportxhtml/Makefile ]) +AC_CONFIG_FILES([ kexi/plugins/scripting/scripts/importxhtml/Makefile ]) +AC_CONFIG_FILES([ kexi/plugins/scripting/scripts/projectdocumentor/Makefile ]) +AC_CONFIG_FILES([ kexi/plugins/scripting/scripts/python/Makefile ]) +AC_CONFIG_FILES([ kexi/plugins/scripting/scripts/python/kexiapp/Makefile ]) +AC_CONFIG_FILES([ kexi/plugins/tables/Makefile ]) +AC_CONFIG_FILES([ kexi/tests/Makefile ]) +AC_CONFIG_FILES([ kexi/tests/altertable/Makefile ]) +AC_CONFIG_FILES([ kexi/tests/newapi/Makefile ]) +AC_CONFIG_FILES([ kexi/tests/parser/Makefile ]) +AC_CONFIG_FILES([ kexi/tests/startup/Makefile ]) +AC_CONFIG_FILES([ kexi/tests/tableview/Makefile ]) +AC_CONFIG_FILES([ kexi/tests/widgets/Makefile ]) +AC_CONFIG_FILES([ kexi/tools/Makefile ]) +AC_CONFIG_FILES([ kexi/tools/add_column/Makefile ]) +AC_CONFIG_FILES([ kexi/tools/delete_column/Makefile ]) +AC_CONFIG_FILES([ kexi/widget/Makefile ]) +AC_CONFIG_FILES([ kexi/widget/relations/Makefile ]) +AC_CONFIG_FILES([ kexi/widget/tableview/Makefile ]) +AC_CONFIG_FILES([ kexi/widget/utils/Makefile ]) +AC_CONFIG_FILES([ kformula/Makefile ]) +AC_CONFIG_FILES([ kformula/pics/Makefile ]) +AC_CONFIG_FILES([ kivio/Makefile ]) +AC_CONFIG_FILES([ kivio/kiviopart/Makefile ]) +AC_CONFIG_FILES([ kivio/kiviopart/config/Makefile ]) +AC_CONFIG_FILES([ kivio/kiviopart/kiviosdk/Makefile ]) +AC_CONFIG_FILES([ kivio/kiviopart/pics/Makefile ]) +AC_CONFIG_FILES([ kivio/kiviopart/stencils/Makefile ]) +AC_CONFIG_FILES([ kivio/kiviopart/stencils/Dia/Makefile ]) +AC_CONFIG_FILES([ kivio/kiviopart/stencils/Dia/Assorted/Makefile ]) +AC_CONFIG_FILES([ kivio/kiviopart/stencils/Dia/Circuit/Makefile ]) +AC_CONFIG_FILES([ kivio/kiviopart/stencils/Dia/Cisco/Makefile ]) +AC_CONFIG_FILES([ kivio/kiviopart/stencils/Dia/Civil/Makefile ]) +AC_CONFIG_FILES([ kivio/kiviopart/stencils/Dia/Contact/Makefile ]) +AC_CONFIG_FILES([ kivio/kiviopart/stencils/Dia/Electric/Makefile ]) +AC_CONFIG_FILES([ kivio/kiviopart/stencils/Dia/Jigsaw/Makefile ]) +AC_CONFIG_FILES([ kivio/kiviopart/stencils/Dia/MSE/Makefile ]) +AC_CONFIG_FILES([ kivio/kiviopart/stencils/Dia/Network/Makefile ]) +AC_CONFIG_FILES([ kivio/kiviopart/stencils/Dia/Pneumatic/Makefile ]) +AC_CONFIG_FILES([ kivio/kiviopart/stencils/Dia/SDL/Makefile ]) +AC_CONFIG_FILES([ kivio/kiviopart/stencils/Dia/Sybase/Makefile ]) +AC_CONFIG_FILES([ kivio/kiviopart/stencils/Flowcharting/Makefile ]) +AC_CONFIG_FILES([ kivio/kiviopart/stencils/Flowcharting/BasicFlowcharting/Makefile ]) +AC_CONFIG_FILES([ kivio/kiviopart/stencils/Flowcharting/Extended/Makefile ]) +AC_CONFIG_FILES([ kivio/kiviopart/stencils/Flowcharting/Logic/Makefile ]) +AC_CONFIG_FILES([ kivio/kiviopart/stencils/Geographic/Makefile ]) +AC_CONFIG_FILES([ kivio/kiviopart/stencils/Geographic/Flags/Makefile ]) +AC_CONFIG_FILES([ kivio/kiviopart/stencils/Geographic/Maps/Makefile ]) +AC_CONFIG_FILES([ kivio/kiviopart/stencils/Hardware/Makefile ]) +AC_CONFIG_FILES([ kivio/kiviopart/stencils/Hardware/Computer/Makefile ]) +AC_CONFIG_FILES([ kivio/kiviopart/stencils/Hardware/Miscellaneous/Makefile ]) +AC_CONFIG_FILES([ kivio/kiviopart/stencils/Miscellaneous/Makefile ]) +AC_CONFIG_FILES([ kivio/kiviopart/stencils/Miscellaneous/Arrows/Makefile ]) +AC_CONFIG_FILES([ kivio/kiviopart/stencils/Miscellaneous/Buildings/Makefile ]) +AC_CONFIG_FILES([ kivio/kiviopart/stencils/Miscellaneous/ER/Makefile ]) +AC_CONFIG_FILES([ kivio/kiviopart/stencils/Miscellaneous/NassiShneiderman/Makefile ]) +AC_CONFIG_FILES([ kivio/kiviopart/stencils/Miscellaneous/People/Makefile ]) +AC_CONFIG_FILES([ kivio/kiviopart/stencils/Miscellaneous/Transport/Makefile ]) +AC_CONFIG_FILES([ kivio/kiviopart/stencils/UML/Makefile ]) +AC_CONFIG_FILES([ kivio/kiviopart/stencils/UML/ActivityDiagrams/Makefile ]) +AC_CONFIG_FILES([ kivio/kiviopart/stencils/UML/ClassDiagrams/Makefile ]) +AC_CONFIG_FILES([ kivio/kiviopart/tiles/Makefile ]) +AC_CONFIG_FILES([ kivio/kiviopart/tools/Makefile ]) +AC_CONFIG_FILES([ kivio/kiviopart/ui/Makefile ]) +AC_CONFIG_FILES([ kivio/plugins/Makefile ]) +AC_CONFIG_FILES([ kivio/plugins/kivioconnectortool/Makefile ]) +AC_CONFIG_FILES([ kivio/plugins/kivioconnectortool/straight_connector/Makefile ]) +AC_CONFIG_FILES([ kivio/plugins/kivioselecttool/Makefile ]) +AC_CONFIG_FILES([ kivio/plugins/kivioselecttool/select_pics/Makefile ]) +AC_CONFIG_FILES([ kivio/plugins/kiviosmlconnector/Makefile ]) +AC_CONFIG_FILES([ kivio/plugins/kiviosmlconnector/sml_connector/Makefile ]) +AC_CONFIG_FILES([ kivio/plugins/kiviotargettool/Makefile ]) +AC_CONFIG_FILES([ kivio/plugins/kiviotexttool/Makefile ]) +AC_CONFIG_FILES([ kivio/plugins/kiviozoomtool/Makefile ]) +AC_CONFIG_FILES([ kivio/plugins/kiviozoomtool/zoom_pics/Makefile ]) +AC_CONFIG_FILES([ kivio/templates/Makefile ]) +AC_CONFIG_FILES([ kivio/templates/basic/Makefile ]) +AC_CONFIG_FILES([ koshell/Makefile ]) +AC_CONFIG_FILES([ kounavail/Makefile ]) +AC_CONFIG_FILES([ kplato/Makefile ]) +AC_CONFIG_FILES([ kplato/pics/Makefile ]) +AC_CONFIG_FILES([ kplato/reports/Makefile ]) +AC_CONFIG_FILES([ kplato/templates/Makefile ]) +AC_CONFIG_FILES([ kplato/templates/Simple/Makefile ]) +AC_CONFIG_FILES([ kplato/tests/Makefile ]) +AC_CONFIG_FILES([ kplato/toolbar/Makefile ]) +AC_CONFIG_FILES([ kpresenter/Makefile ]) +AC_CONFIG_FILES([ kpresenter/autoformEdit/Makefile ]) +AC_CONFIG_FILES([ kpresenter/autoforms/Makefile ]) +AC_CONFIG_FILES([ kpresenter/autoforms/Arrows/Makefile ]) +AC_CONFIG_FILES([ kpresenter/autoforms/Connections/Makefile ]) +AC_CONFIG_FILES([ kpresenter/dtd/Makefile ]) +AC_CONFIG_FILES([ kpresenter/pics/Makefile ]) +AC_CONFIG_FILES([ kpresenter/pics/rotate/Makefile ]) +AC_CONFIG_FILES([ kpresenter/slideshow/Makefile ]) +AC_CONFIG_FILES([ kpresenter/templates/Makefile ]) +AC_CONFIG_FILES([ kpresenter/templates/A4/Makefile ]) +AC_CONFIG_FILES([ kpresenter/templates/Screen/Makefile ]) +AC_CONFIG_FILES([ kpresenter/templates/Screenpresentations/Makefile ]) +AC_CONFIG_FILES([ kpresenter/templates/common_icon/Makefile ]) +AC_CONFIG_FILES([ kpresenter/templates/legal/Makefile ]) +AC_CONFIG_FILES([ kpresenter/templates/letter/Makefile ]) +AC_CONFIG_FILES([ kpresenter/toolbar/Makefile ]) +AC_CONFIG_FILES([ krita/Makefile ]) +AC_CONFIG_FILES([ krita/colorspaces/Makefile ]) +AC_CONFIG_FILES([ krita/colorspaces/cmyk_u16/Makefile ]) +AC_CONFIG_FILES([ krita/colorspaces/cmyk_u8/Makefile ]) +AC_CONFIG_FILES([ krita/colorspaces/cmyk_u8/templates/Makefile ]) +AC_CONFIG_FILES([ krita/colorspaces/gray_u16/Makefile ]) +AC_CONFIG_FILES([ krita/colorspaces/gray_u8/Makefile ]) +AC_CONFIG_FILES([ krita/colorspaces/gray_u8/templates/Makefile ]) +AC_CONFIG_FILES([ krita/colorspaces/gray_u8/tests/Makefile ]) +AC_CONFIG_FILES([ krita/colorspaces/lms_f32/Makefile ]) +AC_CONFIG_FILES([ krita/colorspaces/rgb_f16half/Makefile ]) +AC_CONFIG_FILES([ krita/colorspaces/rgb_f16half/tests/Makefile ]) +AC_CONFIG_FILES([ krita/colorspaces/rgb_f32/Makefile ]) +AC_CONFIG_FILES([ krita/colorspaces/rgb_f32/tests/Makefile ]) +AC_CONFIG_FILES([ krita/colorspaces/rgb_u16/Makefile ]) +AC_CONFIG_FILES([ krita/colorspaces/rgb_u16/tests/Makefile ]) +AC_CONFIG_FILES([ krita/colorspaces/rgb_u8/Makefile ]) +AC_CONFIG_FILES([ krita/colorspaces/rgb_u8/templates/Makefile ]) +AC_CONFIG_FILES([ krita/colorspaces/rgb_u8/tests/Makefile ]) +AC_CONFIG_FILES([ krita/colorspaces/wet/Makefile ]) +AC_CONFIG_FILES([ krita/colorspaces/wetsticky/Makefile ]) +AC_CONFIG_FILES([ krita/colorspaces/wetsticky/brushop/Makefile ]) +AC_CONFIG_FILES([ krita/colorspaces/ycbcr_u16/Makefile ]) +AC_CONFIG_FILES([ krita/colorspaces/ycbcr_u8/Makefile ]) +AC_CONFIG_FILES([ krita/core/Makefile ]) +AC_CONFIG_FILES([ krita/core/tests/Makefile ]) +AC_CONFIG_FILES([ krita/core/tiles/Makefile ]) +AC_CONFIG_FILES([ krita/core/tiles/tests/Makefile ]) +AC_CONFIG_FILES([ krita/data/Makefile ]) +AC_CONFIG_FILES([ krita/data/brushes/Makefile ]) +AC_CONFIG_FILES([ krita/data/gradients/Makefile ]) +AC_CONFIG_FILES([ krita/data/images/Makefile ]) +AC_CONFIG_FILES([ krita/data/palettes/Makefile ]) +AC_CONFIG_FILES([ krita/data/patterns/Makefile ]) +AC_CONFIG_FILES([ krita/data/profiles/Makefile ]) +AC_CONFIG_FILES([ krita/dtd/Makefile ]) +AC_CONFIG_FILES([ krita/kritacolor/Makefile ]) +AC_CONFIG_FILES([ krita/kritacolor/colorspaces/Makefile ]) +AC_CONFIG_FILES([ krita/kritacolor/tests/Makefile ]) +AC_CONFIG_FILES([ krita/pics/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/filters/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/filters/blur/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/filters/bumpmap/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/filters/cimg/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/filters/colorify/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/filters/colors/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/filters/colorsfilters/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/filters/convolutionfilters/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/filters/cubismfilter/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/filters/embossfilter/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/filters/example/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/filters/fastcolortransfer/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/filters/imageenhancement/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/filters/lenscorrectionfilter/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/filters/levelfilter/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/filters/noisefilter/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/filters/oilpaintfilter/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/filters/pixelizefilter/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/filters/raindropsfilter/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/filters/randompickfilter/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/filters/roundcorners/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/filters/smalltilesfilter/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/filters/sobelfilter/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/filters/threadtest/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/filters/unsharp/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/filters/wavefilter/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/paintops/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/paintops/defaultpaintops/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/tools/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/tools/defaulttools/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/tools/selectiontools/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/tools/tool_crop/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/tools/tool_curves/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/tools/tool_filter/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/tools/tool_perspectivegrid/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/tools/tool_perspectivetransform/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/tools/tool_polygon/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/tools/tool_polyline/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/tools/tool_selectsimilar/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/tools/tool_star/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/tools/tool_transform/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/viewplugins/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/viewplugins/colorrange/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/viewplugins/colorspaceconversion/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/viewplugins/dropshadow/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/viewplugins/filtersgallery/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/viewplugins/histogram/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/viewplugins/histogram_docker/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/viewplugins/history_docker/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/viewplugins/imagesize/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/viewplugins/modify_selection/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/viewplugins/performancetest/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/viewplugins/rotateimage/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/viewplugins/screenshot/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/viewplugins/scripting/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/viewplugins/scripting/kritacore/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/viewplugins/scripting/kritascripting/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/viewplugins/scripting/samples/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/viewplugins/scripting/samples/python/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/viewplugins/scripting/samples/ruby/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/viewplugins/selectopaque/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/viewplugins/separate_channels/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/viewplugins/shearimage/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/viewplugins/substrate/Makefile ]) +AC_CONFIG_FILES([ krita/plugins/viewplugins/variations/Makefile ]) +AC_CONFIG_FILES([ krita/sdk/Makefile ]) +AC_CONFIG_FILES([ krita/ui/Makefile ]) +AC_CONFIG_FILES([ kspread/Makefile ]) +AC_CONFIG_FILES([ kspread/dialogs/Makefile ]) +AC_CONFIG_FILES([ kspread/dtd/Makefile ]) +AC_CONFIG_FILES([ kspread/extensions/Makefile ]) +AC_CONFIG_FILES([ kspread/pics/Makefile ]) +AC_CONFIG_FILES([ kspread/plugins/Makefile ]) +AC_CONFIG_FILES([ kspread/plugins/calculator/Makefile ]) +AC_CONFIG_FILES([ kspread/plugins/calculator/pics/Makefile ]) +AC_CONFIG_FILES([ kspread/plugins/insertcalendar/Makefile ]) +AC_CONFIG_FILES([ kspread/plugins/scripting/Makefile ]) +AC_CONFIG_FILES([ kspread/plugins/scripting/kspreadcore/Makefile ]) +AC_CONFIG_FILES([ kspread/plugins/scripting/scripts/Makefile ]) +AC_CONFIG_FILES([ kspread/plugins/scripting/scripts/exporthtml/Makefile ]) +AC_CONFIG_FILES([ kspread/plugins/scripting/scripts/scripteditor/Makefile ]) +AC_CONFIG_FILES([ kspread/sheetstyles/Makefile ]) +AC_CONFIG_FILES([ kspread/templates/Makefile ]) +AC_CONFIG_FILES([ kspread/templates/Business/Makefile ]) +AC_CONFIG_FILES([ kspread/templates/General/Makefile ]) +AC_CONFIG_FILES([ kspread/templates/HomeFamily/Makefile ]) +AC_CONFIG_FILES([ kspread/tests/Makefile ]) +AC_CONFIG_FILES([ kspread/toolbar/Makefile ]) +AC_CONFIG_FILES([ kspread/toolbar/crystalsvg/Makefile ]) +AC_CONFIG_FILES([ kugar/Makefile ]) +AC_CONFIG_FILES([ kugar/kudesigner/Makefile ]) +AC_CONFIG_FILES([ kugar/kudesigner/pics/Makefile ]) +AC_CONFIG_FILES([ kugar/kudesigner/templates/Makefile ]) +AC_CONFIG_FILES([ kugar/kudesigner/templates/General/Makefile ]) +AC_CONFIG_FILES([ kugar/kudesigner/toolbar/Makefile ]) +AC_CONFIG_FILES([ kugar/kudesigner_lib/Makefile ]) +AC_CONFIG_FILES([ kugar/lib/Makefile ]) +AC_CONFIG_FILES([ kugar/part/Makefile ]) +AC_CONFIG_FILES([ kugar/samples/Makefile ]) +AC_CONFIG_FILES([ kword/Makefile ]) +AC_CONFIG_FILES([ kword/data/Makefile ]) +AC_CONFIG_FILES([ kword/dtd/Makefile ]) +AC_CONFIG_FILES([ kword/expression/Makefile ]) +AC_CONFIG_FILES([ kword/horizontalline/Makefile ]) +AC_CONFIG_FILES([ kword/mailmerge/Makefile ]) +AC_CONFIG_FILES([ kword/mailmerge/kabc/Makefile ]) +AC_CONFIG_FILES([ kword/mailmerge/kspread/Makefile ]) +AC_CONFIG_FILES([ kword/mailmerge/sql/Makefile ]) +AC_CONFIG_FILES([ kword/pics/Makefile ]) +AC_CONFIG_FILES([ kword/templates/Makefile ]) +AC_CONFIG_FILES([ kword/templates/CardsAndLabels/Makefile ]) +AC_CONFIG_FILES([ kword/templates/Envelopes/Makefile ]) +AC_CONFIG_FILES([ kword/templates/Wordprocessing/Makefile ]) +AC_CONFIG_FILES([ kword/tests/Makefile ]) +AC_CONFIG_FILES([ kword/toolbar/Makefile ]) +AC_CONFIG_FILES([ lib/Makefile ]) +AC_CONFIG_FILES([ lib/kformula/Makefile ]) +AC_CONFIG_FILES([ lib/kformula/config/Makefile ]) +AC_CONFIG_FILES([ lib/kformula/dtd/Makefile ]) +AC_CONFIG_FILES([ lib/kformula/fonts/Makefile ]) +AC_CONFIG_FILES([ lib/kformula/pics/Makefile ]) +AC_CONFIG_FILES([ lib/kformula/pics/crystalsvg/Makefile ]) +AC_CONFIG_FILES([ lib/kofficecore/Makefile ]) +AC_CONFIG_FILES([ lib/kofficecore/tests/Makefile ]) +AC_CONFIG_FILES([ lib/kofficeui/Makefile ]) +AC_CONFIG_FILES([ lib/kofficeui/pics/Makefile ]) +AC_CONFIG_FILES([ lib/kofficeui/tests/Makefile ]) +AC_CONFIG_FILES([ lib/kopainter/Makefile ]) +AC_CONFIG_FILES([ lib/kopalette/Makefile ]) +AC_CONFIG_FILES([ lib/koproperty/Makefile ]) +AC_CONFIG_FILES([ lib/koproperty/editors/Makefile ]) +AC_CONFIG_FILES([ lib/koproperty/test/Makefile ]) +AC_CONFIG_FILES([ lib/kotext/Makefile ]) +AC_CONFIG_FILES([ lib/kotext/kohyphen/Makefile ]) +AC_CONFIG_FILES([ lib/kotext/kohyphen/hyphdicts/Makefile ]) +AC_CONFIG_FILES([ lib/kotext/tests/Makefile ]) +AC_CONFIG_FILES([ lib/kross/Makefile ]) +AC_CONFIG_FILES([ lib/kross/api/Makefile ]) +AC_CONFIG_FILES([ lib/kross/main/Makefile ]) +AC_CONFIG_FILES([ lib/kross/python/Makefile ]) +AC_CONFIG_FILES([ lib/kross/python/cxx/Makefile ]) +AC_CONFIG_FILES([ lib/kross/python/scripts/Makefile ]) +AC_CONFIG_FILES([ lib/kross/python/scripts/RestrictedPython/Makefile ]) +AC_CONFIG_FILES([ lib/kross/ruby/Makefile ]) +AC_CONFIG_FILES([ lib/kross/runner/Makefile ]) +AC_CONFIG_FILES([ lib/kross/test/Makefile ]) +AC_CONFIG_FILES([ lib/kwmf/Makefile ]) +AC_CONFIG_FILES([ lib/store/Makefile ]) +AC_CONFIG_FILES([ lib/store/tests/Makefile ]) +AC_CONFIG_FILES([ mimetypes/Makefile ]) +AC_CONFIG_FILES([ mimetypes/kde33/Makefile ]) +AC_CONFIG_FILES([ mimetypes/kde351/Makefile ]) +AC_CONFIG_FILES([ pics/Makefile ]) +AC_CONFIG_FILES([ pics/crystalsvg/Makefile ]) +AC_CONFIG_FILES([ plugins/Makefile ]) +AC_CONFIG_FILES([ plugins/scan/Makefile ]) +AC_CONFIG_FILES([ servicetypes/Makefile ]) +AC_CONFIG_FILES([ templates/Makefile ]) +AC_CONFIG_FILES([ tools/Makefile ]) +AC_CONFIG_FILES([ tools/converter/Makefile ]) +AC_CONFIG_FILES([ tools/kfile-plugins/Makefile ]) +AC_CONFIG_FILES([ tools/kfile-plugins/abiword/Makefile ]) +AC_CONFIG_FILES([ tools/kfile-plugins/gnumeric/Makefile ]) +AC_CONFIG_FILES([ tools/kfile-plugins/koffice/Makefile ]) +AC_CONFIG_FILES([ tools/kfile-plugins/ooo/Makefile ]) +AC_CONFIG_FILES([ tools/kthesaurus/Makefile ]) +AC_CONFIG_FILES([ tools/quickprint/Makefile ]) +AC_CONFIG_FILES([ tools/spell/Makefile ]) +AC_CONFIG_FILES([ tools/thesaurus/Makefile ]) +AC_CONFIG_FILES([ tools/thumbnail/Makefile ]) +AC_MSG_CHECKING([for filters to be compiled]) + +if test -s $srcdir/inst-apps ; then + SUBDIRLIST=`cat $srcdir/inst-apps` +else + SUBDIRLIST=`cat $srcdir/subdirs` +fi + +# fallback (KDE_CREATE_SUBDIRLIST has this fallback, so I have put it here too.) +if test -z "$SUBDIRLIST" ; then + SUBDIRLIST=`ls -1 $srcdir` +fi + +# first check which main apllication we could compile +for args in $SUBDIRLIST ; do + case $args in + kword) COMPILE_FILTER_KWORD="$args " ;; + kspread) COMPILE_FILTER_KSPREAD="$args " ;; + kchart) COMPILE_FILTER_KCHART="$args " ;; + karbon) COMPILE_FILTER_KARBON="$args " ;; + kpresenter) COMPILE_FILTER_KPRESENTER="$args " ;; + kformula) COMPILE_FILTER_KFORMULA="$args " ;; + kugar) COMPILE_FILTER_KUGAR="$args " ;; + krita) COMPILE_FILTER_KRITA="$args " ;; + kivio) COMPILE_FILTER_KIVIO="$args " ;; + kexi) COMPILE_FILTER_KEXI="$args " ;; + esac +done + +# now remove the applications the user has asked not to compile +for args in $DO_NOT_COMPILE ; do + case $args in + kword) COMPILE_FILTER_KWORD= ;; + kspread) COMPILE_FILTER_KSPREAD= ;; + kchart) COMPILE_FILTER_KCHART= ;; + karbon) COMPILE_FILTER_KARBON= ;; + kpresenter) COMPILE_FILTER_KPRESENTER= ;; + kformula) COMPILE_FILTER_KFORMULA= ;; + kugar) COMPILE_FILTER_KUGAR= ;; + krita) COMPILE_FILTER_KRITA= ;; + kivio) COMPILE_FILTER_KIVIO= ;; + kexi) COMPILE_FILTER_KEXI= ;; + esac +done + +USERFEEDBACKCOMPILE="$COMPILE_FILTER_KWORD$COMPILE_FILTER_KSPREAD$COMPILE_FILTER_KCHART$COMPILE_FILTER_KARBON$COMPILE_FILTER_KPRESENTER$COMPILE_FILTER_KFORMULA$COMPILE_FILTER_KUGAR" +AC_MSG_RESULT([$USERFEEDBACKCOMPILE]) + +AM_CONDITIONAL(compile_filter_KWORD, test -n "$COMPILE_FILTER_KWORD") +AM_CONDITIONAL(compile_filter_KSPREAD, test -n "$COMPILE_FILTER_KSPREAD") +AM_CONDITIONAL(compile_filter_KCHART, test -n "$COMPILE_FILTER_KCHART") +AM_CONDITIONAL(compile_filter_KARBON, test -n "$COMPILE_FILTER_KARBON") +AM_CONDITIONAL(compile_filter_KPRESENTER, test -n "$COMPILE_FILTER_KPRESENTER") +AM_CONDITIONAL(compile_filter_KFORMULA, test -n "$COMPILE_FILTER_KFORMULA") +AM_CONDITIONAL(compile_filter_KUGAR, test -n "$COMPILE_FILTER_KUGAR") +AM_CONDITIONAL(compile_filter_KRITA, test -n "$COMPILE_FILTER_KRITA") +AM_CONDITIONAL(compile_filter_KIVIO, test -n "$COMPILE_FILTER_KIVIO") +AM_CONDITIONAL(compile_filter_KEXI, test -n "$COMPILE_FILTER_KEXI") +if test -s $srcdir/inst-apps ; then + SUBDIRLIST=`cat $srcdir/inst-apps` +else + SUBDIRLIST=`cat $srcdir/subdirs` +fi + +# fallback (KDE_CREATE_SUBDIRLIST has this fallback, so I have put it here too.) +if test -z "$SUBDIRLIST" ; then + SUBDIRLIST=`ls -1 $srcdir` +fi + +# first check which main apllication we could compile +for args in $SUBDIRLIST ; do + case $args in + kugar) COMPILE_PLUGIN_KUGAR="$args " ;; + esac +done + +# now remove the applications the user has asked not to compile +for args in $DO_NOT_COMPILE ; do + case $args in + kugar) COMPILE_PLUGIN_KUGAR= ;; + esac +done + +AM_CONDITIONAL(compile_plugin_KUGAR, test -n "$COMPILE_PLUGIN_KUGAR") +if test -s $srcdir/inst-apps ; then + SUBDIRLIST=`cat $srcdir/inst-apps` +else + SUBDIRLIST=`cat $srcdir/subdirs` +fi + +# fallback (KDE_CREATE_SUBDIRLIST has this fallback, so I have put it here too.) +if test -z "$SUBDIRLIST" ; then + SUBDIRLIST=`ls -1 $srcdir` +fi + +AC_MSG_CHECKING([whether only Kexi is being built]) +KEXI_ONLY=yes +for args in $SUBDIRLIST ; do + case $args in + lib) ;; + kexi) ;; + *) if test -d $srcdir/$args ; then + KEXI_ONLY=no + fi + ;; + esac +done +AC_MSG_RESULT([$KEXI_ONLY]) +AM_CONDITIONAL(compile_kexionly, test "$KEXI_ONLY" = "yes" ) + +AC_MSG_CHECKING([whether kopainter should be compiled]) + +# first check which main application we could compile +for args in $SUBDIRLIST ; do + case $args in + krita) COMPILE_LIB_FOR_KRITA="$args " ;; + karbon) COMPILE_LIB_FOR_KARBON="$args " ;; + kivio) COMPILE_LIB_FOR_KIVIO="$args " ;; + esac +done + +# now remove the applications the user has asked not to compile +COMPILE_LIB_FOR_KPRESENTER="#" +for args in $DO_NOT_COMPILE ; do + case $args in + krita) COMPILE_LIB_FOR_KRITA= ;; + karbon) COMPILE_LIB_FOR_KARBON= ;; + kivio) COMPILE_LIB_FOR_KIVIO= ;; + kpresenter) COMPILE_LIB_FOR_KPRESENTER= ;; + esac +done + +if test -n "$COMPILE_LIB_FOR_KRITA$COMPILE_LIB_FOR_KARBON$COMPILE_LIB_FOR_KIVIO$COMPILE_LIB_FOR_KPRESENTER" ; then + USERFEEDBACKCOMPILELIB="yes" +else + USERFEEDBACKCOMPILELIB="no" +fi + +AC_MSG_RESULT([$USERFEEDBACKCOMPILELIB]) + +AM_CONDITIONAL(compile_lib_KOPAINTER, test "$USERFEEDBACKCOMPILELIB" = "yes" ) + +AC_OUTPUT +if test -z "$LIBGMAGICK_LIBS" -a -z "$LIBMAGICK_LIBS"; then + echo "" + echo "You're missing GraphicsMagick (>=1.1.7). krita's GraphicsMagick import/export" + echo "filter will not be compiled. You can download GraphicsMagick from" + echo "http://www.graphicsmagick.org/. The GraphicsMagick filter allows krita to" + echo "read and write XCF, PSD, GIF, BMP, and many other image formats." + echo "" + echo "If you have problems compiling GraphicsMagick, please try configuring it using" + echo "the --without-magick-plus-plus flag, the C++ API isn't needed for krita." + echo "" + all_tests=bad + AC_DEFINE([include_imagemagick_filter],"",[don't use magick filter]) +fi + +if test -z "$LIBGMAGICK_LIBS" -a ! -z "$LIBMAGICK_LIBS"; then + + echo "" + echo "You're missing GraphicsMagick (>=1.1.7). krita's GraphicsMagick import/export" + echo "filter will not be compiled. But ImageMagick was found, which mean that krita" + echo "will be able to read and write XCF, PSD, GIF, BMP, and many other image formats." + echo "But the ImageMagick filter is deprecated and we strongly advise you to install" + echo "GraphicsMagick either from your distribution or from http://www.graphicsmagick.org/" +fi +if test -z "$LIBJPEG" -o -z "$LIBEXIF"; then + echo "" + echo "You're missing libjpeg or libexif 0.6.12 or later (binaries and/or headers)." + echo "krita won't be able to import/export jpeg" + echo "" + all_tests=bad +fi +# ImageMagick is deprecated, we don't care anymore if it's not here +# +#if test -z "$LIBMAGICK_LIBS"; then +# echo "" +# echo "You're missing ImageMagick (>=6.1.0). krita's ImageMagick import/export" +# echo "filter will not be compiled. You can download ImageMagick from" +# echo "http://www.imagemagick.org/. The ImageMagick filter allows krita to" +# echo "read and write XCF, PSD, GIF, BMP, and many other image formats." +# echo "" +# echo "If you have problems compiling ImageMagick, please try configuring it using" +# echo "the --without-magick-plus-plus flag, the C++ API isn't needed for krita." +# echo "" +# all_tests=bad +#fi + +if test -z "$OPENEXR_LIBS"; then + echo "" + echo "You're missing the OpenEXR library. Krita's OpenEXR import/export filter will " + echo "not be compiled. You can download OpenEXR from http://www.openexr.com or " + echo "install it from an appropriate binary package." + echo "" + all_tests=bad +fi + +if test -z "$POPPLER_LIBS"; then + echo "" + echo "You're missing libpoppler 0.5.1 or later (binaries and/or headers)." + echo "krita won't be able to import pdf" + echo "note that the qt-binding of libpoppler is required" + echo "" +fi +if test -z "$LIBPNG"; then + echo "" + echo "You're missing libpng (binaries and/or headers), krita won't be able" + echo "to import/export png" + echo "" + all_tests=bad +fi + +if test -z "$LIBTIFF"; then + echo "" + echo "You're missing libtiff (binaries and/or headers), krita won't be able" + echo "to import/export tiff" + echo "" + all_tests=bad +fi +if test -z "$LIBWV2_LIBS"; then + echo "" + echo "You're missing libwv2 0.1.9 or newer. KWord's MS Word filter will not be" + echo "compiled. You can download wv2 using anonymous CVS from the Sourceforge" + echo "repository (http://sourceforge.net/cvs/?group_id=10501) or get a" + echo "tarball at http://sourceforge.net/projects/wvware/" +# echo "The MS Word filter won't be compiled due to experimental changes." + echo "" + all_tests=bad +fi +if test -z "$LIBWPD_LIBS"; then + echo "" + echo "You're missing libwpd 0.8 or newer. KWord's WordPerfect import filter will " + echo "not be compiled. You can download libwpd from http://libwpd.sf.net or " + echo "install it from appropriate binary package." + echo "" + all_tests=bad +fi +if test -z "$LIBXML_LIBS"; then + echo "" + echo "You're missing libxml2 (at least version 2.4.8)." + echo "The XSLT filters will not be compiled." + echo "Please download libxml2 from http://xmlsoft.org ." + echo "" + all_tests=bad +fi + +if test -z "$LIBXSLT_LIBS"; then + echo "" + echo "You're missing libxslt (at least version 1.0.7)." + echo "The XSLT filters will not be compiled." +# TODO: URL is not exacly right anymore + echo "Please download libxml2 from http://xmlsoft.org ." + echo "" + all_tests=bad +fi + +if test -z "$LIBART_LIBS"; then + echo "" + echo "You're missing libart 2.3.8. karbon will not be compiled." + echo "You can download libart from" + echo "http://svg.kde.org/download.html" + echo "" + all_tests=bad +else + if test -z "$LIBFONTCONFIG_LIBS"; then + echo "" + echo "You're missing fontconfig 1.0.1 or newer. karbon will not have text support." + echo "You can download fontconfig from http://fontconfig.org/" + echo "" + all_tests=bad + fi + + if test -z "$LIBFREETYPE_LIBS"; then + echo "" + echo "You're missing libfreetype 5.0 or newer. karbon will not have text support." + echo "You can download libfreetype from http://www.freetype.org/" + echo "" + all_tests=bad + fi +fi +if test -z "$MYSQL_INC" -o -z "$MYSQL_LIBS"; then + + echo "----------------------------------------------------------------------" + + echo " + The MySQL development files were not found." + cat <=2) + +EOS + fi + +# SUMMARY messages + cat <&1 >/dev/null + if test $? -ne 0; then + echo "" + echo "Warning: you chose to install this package in $given_prefix," + echo "but KDE was found in $kde_libs_prefix." + echo "For this to work, you will need to tell KDE about the new prefix, by ensuring" + echo "that KDEDIRS contains it, e.g. export KDEDIRS=$given_prefix:$kde_libs_prefix" + echo "Then restart KDE." + echo "" + fi + fi +fi + +if test x$GXX = "xyes" -a x$kde_have_gcc_visibility = "xyes" -a x$kde_cv_val_qt_gcc_visibility_patched = "xno"; then + echo "" + echo "Your GCC supports symbol visibility, but the patch for Qt supporting visibility" + echo "was not included. Therefore, GCC symbol visibility support remains disabled." + echo "" + echo "For better performance, consider including the Qt visibility supporting patch" + echo "located at:" + echo "" + echo "http://bugs.kde.org/show_bug.cgi?id=109386" + echo "" + echo "and recompile all of Qt and KDE. Note, this is entirely optional and" + echo "everything will continue to work just fine without it." + echo "" +fi + +if test "$all_tests" = "bad"; then + if test ! "$cache_file" = "/dev/null"; then + echo "" + echo "Please remove the file $cache_file after changing your setup" + echo "so that configure will find the changes next time." + echo "" + fi +else + echo "" + echo "Good - your configure finished. Start make now" + echo "" +fi diff --git a/configure.in.in b/configure.in.in new file mode 100644 index 000000000..bec764e0e --- /dev/null +++ b/configure.in.in @@ -0,0 +1,299 @@ +#MIN_CONFIG(3.3) + +# Remember to synchronize the version number with the file koffice/lib/kofficecore/kofficeversion.h +AM_INIT_AUTOMAKE(koffice, "1.6.3") + +CXXFLAGS="$CXXFLAGS $KDE_DEFAULT_CXXFLAGS" + +AC_CHECK_HEADERS(unistd.h sys/param.h floatingpoint.h paths.h) +AC_C_BIGENDIAN +AC_CHECK_KDEMAXPATHLEN + +KDE_INIT_DOXYGEN([The KOffice API Reference], [Version $VERSION]) + +# Check for GraphicsMagick... + +have_graphicsmagick=no +KDE_FIND_PATH(GraphicsMagick-config, GRAPHICS_MAGICK_CONFIG, [${prefix}/bin ${exec_prefix}/bin /usr/local/bin /opt/local/bin], [ + AC_MSG_WARN([Could not find GraphicsMagick anywhere, check http://www.graphicsmagick.org/ for GraphicsMagick >= 1.1.7.]) +]) + +if test -n "$GRAPHICS_MAGICK_CONFIG"; then + vers=`$GRAPHICS_MAGICK_CONFIG --version 2>/dev/null | $AWK 'BEGIN { FS = "."; } { printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'` + if test -n "$vers" && test "$vers" -ge 1001007; then + LIBGMAGICK_LIBS="`$GRAPHICS_MAGICK_CONFIG --libs`" + LIBGMAGICK_LDFLAGS="`$GRAPHICS_MAGICK_CONFIG --ldflags`" + LIBGMAGICK_RPATH= + for args in $LIBGMAGICK_LIBS; do + case $args in + -L*) + LIBGMAGICK_RPATH="$LIBMAGICK_RPATH $args" + ;; + esac + done + LIBGMAGICK_RPATH=`echo $LIBGMAGICK_RPATH | $SED -e "s/-L/-R/g"` + LIBGMAGICK_CPPFLAGS="`$GRAPHICS_MAGICK_CONFIG --cppflags`" + AC_DEFINE(HAVE_GMAGICK,1, [GraphicsMagick is available]) + have_graphicsmagick=yes + else + AC_MSG_WARN([You need at least GraphicsMagick 1.1.7]) + fi + +fi + +if test ! "$USE_RPATH" = "yes"; then + LIBGMAGICK_RPATH= +fi + +AC_SUBST(LIBGMAGICK_LIBS) +AC_SUBST(LIBGMAGICK_LDFLAGS) +AC_SUBST(LIBGMAGICK_CPPFLAGS) +AC_SUBST(LIBGMAGICK_RPATH) +AM_CONDITIONAL(include_graphicsmagick_filter, test "$have_graphicsmagick" = "yes" -a HAVE_GMAGICK) + +# End of GraphicsMagick check + +# Check for ImageMagick... + +have_imagemagick=no +KDE_FIND_PATH(Magick-config, MAGICK_CONFIG, [${prefix}/bin ${exec_prefix}/bin /usr/local/bin /opt/local/bin], [ + AC_MSG_WARN([Could not find ImageMagick anywhere, check http://www.imagemagick.org/ for ImageMagick >= 5.5.2.]) +]) + +if test -n "$MAGICK_CONFIG"; then + vers=`$MAGICK_CONFIG --version 2>/dev/null | $AWK 'BEGIN { FS = "."; } { printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'` + if test -n "$vers" && test "$vers" -ge 5005002 + then + if test "$vers" -ge 6000003 + then + AC_DEFINE(HAVE_MAGICK6, 1, [ImageMagick Version 6]) + fi + if test "$vers" -ge 6001000 + then + AC_DEFINE(HAVE_MAGICK61, 1, [ImageMagick Version 6.1]) + fi + LIBMAGICK_LIBS="`$MAGICK_CONFIG --libs`" + LIBMAGICK_LDFLAGS="`$MAGICK_CONFIG --ldflags`" + LIBMAGICK_RPATH= + for args in $LIBMAGICK_LIBS; do + case $args in + -L*) + LIBMAGICK_RPATH="$LIBMAGICK_RPATH $args" + ;; + esac + done + LIBMAGICK_RPATH=`echo $LIBMAGICK_RPATH | $SED -e "s/-L/-R/g"` + LIBMAGICK_CPPFLAGS="`$MAGICK_CONFIG --cppflags`" + AC_DEFINE(HAVE_MAGICK,1, [ImageMagick is available]) + have_imagemagick=yes + else + AC_MSG_WARN([You need at least ImageMagick 5.5.2]) + fi +fi + +if test ! "$USE_RPATH" = "yes"; then + LIBMAGICK_RPATH= +fi + +AC_SUBST(LIBMAGICK_LIBS) +AC_SUBST(LIBMAGICK_LDFLAGS) +AC_SUBST(LIBMAGICK_CPPFLAGS) +AC_SUBST(LIBMAGICK_RPATH) +AM_CONDITIONAL(include_imagemagick_filter, test "$have_imagemagick" = "yes" -a HAVE_MAGICK61 -a ! "$have_graphicsmagick" = "yes" -a ! HAVE_GMAGICK) + +# End of ImageMagick check + +########################################################################## +# This last check is copied from kdenonbeta/gsf/configure.in.in +########################################################################## +# KOFFICE_PKG_CHECK_MODULES(GSTUFF, gtk+-2.0 >= 1.3 glib = 1.3.4, action-if, action-not) +# defines GSTUFF_LIBS, GSTUFF_CFLAGS, see pkg-config man page +# also defines GSTUFF_PKG_ERRORS on error +# Note: This is specially tweaked for karbon's fontconfig check. Please fix +# it before using it for other tests :-) +AC_DEFUN([KOFFICE_PKG_CHECK_MODULES], [ + succeeded=no + + if test -z "$PKG_CONFIG"; then + AC_PATH_PROG(PKG_CONFIG, pkg-config, no) + fi + + if test "$PKG_CONFIG" = "no" ; then + echo "*** The pkg-config script could not be found. Make sure it is" + echo "*** in your path, or set the PKG_CONFIG environment variable" + echo "*** to the full path to pkg-config." + echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config." + echo "***" + echo "*** Due to that we can't perform the check for fontconfig..." # added for karbon (Werner) + else + PKG_CONFIG_MIN_VERSION=0.9.0 + if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then + AC_MSG_CHECKING(for $2) + + if $PKG_CONFIG --exists "$2" ; then + AC_MSG_RESULT(yes) + succeeded=yes + + AC_MSG_CHECKING($1_CFLAGS) + $1_CFLAGS=`$PKG_CONFIG --cflags "$2"` + AC_MSG_RESULT($$1_CFLAGS) + + AC_MSG_CHECKING($1_LIBS) + $1_LIBS=`$PKG_CONFIG --libs "$2"` + AC_MSG_RESULT($$1_LIBS) + else + $1_CFLAGS="" + $1_LIBS="" + ## If we have a custom action on failure, don't print errors, but + ## do set a variable so people can do so. + $1_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"` + ifelse([$4], ,echo $$1_PKG_ERRORS,) + fi + + AC_SUBST($1_CFLAGS) + AC_SUBST($1_LIBS) + else + echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer." + echo "*** See http://www.freedesktop.org/software/pkgconfig" + fi + fi + + if test $succeeded = yes; then + ifelse([$3], , :, [$3]) +# else # removed for karbon (Werner) +# ifelse([$4], , AC_MSG_ERROR([Library requirements ($2) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.]), [$4]) + fi +]) + +# --- Check for KDE 3.2 or 3.3 --- + +AC_MSG_CHECKING([for KDE version]) + +AC_LANG_SAVE +AC_LANG_CPLUSPLUS +kdeversion_save_CXXFLAGS="$CXXFLAGS" +kdeversion_safe_LIBS="$LIBS" +LIBS="$LIBS $X_EXTRA_LIBS" +CXXFLAGS="$CXXFLAGS $all_includes" + +AC_COMPILE_IFELSE([ +#include +#if ! ( KDE_IS_VERSION( 3, 2, 90 ) ) +#error KDE 3.2 +#endif +], + need_kde32_compat="no" +, + need_kde32_compat="yes" +) + +AC_COMPILE_IFELSE([ +#include +#if ! ( KDE_IS_VERSION( 3, 3, 90 ) ) +#error KDE 3.3 +#endif +], + need_kde33_compat="no" +, + need_kde33_compat="yes" +) + +AC_COMPILE_IFELSE([ +#include +#if ! ( KDE_IS_VERSION( 3, 4, 90 ) ) +#error KDE 3.4 +#endif +], + need_kde34_compat="no" +, + need_kde34_compat="yes" +) + +AC_COMPILE_IFELSE([ +#include +#if ! ( KDE_IS_VERSION( 3, 5, 2 ) ) +#error KDE 3.5.x (x < 2) +#endif +], + need_kde351_compat="no" +, + need_kde351_compat="yes" +) +CXXFLAGS="$kdeversion_save_CXXFLAGS" +LIBS="$kdeversion_safe_LIBS" +AC_LANG_RESTORE + +if test "$need_kde32_compat" = "yes"; then + AC_MSG_RESULT([KDE 3.2.x]) +else + if test "$need_kde33_compat" = "yes"; then + AC_MSG_RESULT([KDE 3.3.x]) + else + if test "$need_kde34_compat" = "yes"; then + AC_MSG_RESULT([KDE 3.4.x]) + else + if test "$need_kde351_compat" = "yes"; then + AC_MSG_RESULT([KDE 3.5.x (x < 2)]) + else + AC_MSG_RESULT([KDE 3.5.x (x >=2) or SVN trunk]) + fi + fi + fi +fi + +AM_CONDITIONAL(need_kde32_compatibility, test "$need_kde32_compat" = "yes") +AM_CONDITIONAL(need_kde33_compatibility, test "$need_kde33_compat" = "yes") +AM_CONDITIONAL(need_kde34_compatibility, test "$need_kde34_compat" = "yes") +AM_CONDITIONAL(need_kde351_compatibility, test "$need_kde351_compat" = "yes") + +# Keep the old KDE 3.1 test, as long as it is still used +AM_CONDITIONAL(need_kde31_compatibility, test "supported" = "no") + +# --- End KDE 3.2 check --- + +# --- OpenEXR check --- + +KDE_FIND_PATH(pkg-config, PKGCONFIG, [${prefix}/bin ${exec_prefix}/bin /usr/bin /usr/local/bin /opt/local/bin], [ + AC_MSG_WARN([Could not find pkg-config]) +]) + +AC_MSG_CHECKING([for OpenEXR]) + +if test -n "$PKGCONFIG"; then + vers=`$PKGCONFIG OpenEXR --modversion 2>/dev/null` + if test -n "$vers" + then + OPENEXR_LIBS="`$PKGCONFIG OpenEXR --libs`" + OPENEXR_RPATH= + for args in $OPENEXR_LIBS; do + case $args in + -L*) + OPENEXR_RPATH="$OPENEXR_RPATH $args" + ;; + esac + done + OPENEXR_RPATH=`echo $OPENEXR_RPATH | $SED -e "s/-L/-R/g"` + OPENEXR_CFLAGS="`$PKGCONFIG OpenEXR --cflags`" + + AC_DEFINE_UNQUOTED(HAVE_OPENEXR, 1, [Defines if your system has the OpenEXR library]) + fi +fi + +if test ! "$USE_RPATH" = "yes"; then + OPENEXR_RPATH= +fi + +if test -n "$OPENEXR_LIBS" +then + AC_MSG_RESULT([yes]) +else + AC_MSG_RESULT([not found]) +fi + +AC_SUBST(OPENEXR_LIBS) +AC_SUBST(OPENEXR_CFLAGS) +AC_SUBST(OPENEXR_RPATH) + +AM_CONDITIONAL(have_openexr, test -n "$OPENEXR_LIBS") + +# --- End of OpenEXR check --- diff --git a/doc/.directory b/doc/.directory new file mode 100644 index 000000000..6aa9870a7 --- /dev/null +++ b/doc/.directory @@ -0,0 +1,4 @@ +# KDE Config File +[KDE Desktop Entry] +BgImage= +Icon= diff --git a/doc/CookBook.odt b/doc/CookBook.odt new file mode 100644 index 0000000000000000000000000000000000000000..7e950e34d0d834ec99ef6fac63dffc288c291b09 GIT binary patch literal 19525 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%0D6m97Op!Ner+*3{MlB>}z zZ+_y%3F!Lz3*uP1YvNscyr7z0oRkAEXJYl^hx)e%hr@1yVo_hBilYpFcq45L9(B5U zC_Qexhh0U^Ir!A`cdFj(N+V6qfz-ud2Ev8rCbv>vPSZIXO`z&I#n__U&$n9EeIR^V zLYy>`k16EtTfFKqQVGSa#A~wm2XHPTPN)0_*3ZKs#-)QIN+p9WW;(>WS|Vn65E~pd z0?Wa^uqBbAjr|G#!Nc$0-S^oht%UwjR>dkyb3cT`X-}cm5QQ&?E8oFY@8kh4h$LZ1DECyWzJc+#$n1} zy2iCyrwCA?m?a<=jc!MxJGT?^(})RH%l=&i7#cD`O|Z9>g+zNbL3OAv_PG z-S#&Q^hO8I=-qe<22U=Ys#5U5ckE+?#ahUV-7ssSt2gUKp{f-Ix$=aynHHKToe8@P zU^tPr!uAbrkA@PcD#Y7hHLN)|cC~A~IztF5Ww5y_Lc7Lq?0EzK%Sg5M+>|}c$ZpU0 zI128QnH-n?mzsUvwU)Rc4@x7{IvvdJtba%eqzH)&Ek% zqKT}$w4%NBsa02*dlM=d9%6Oy82tU|XOWgQE`uw;$CN`kF8rjL_Q`T(w?W?4FOHRV zjA=2!#mb4tH#TOXE|e`PdvAsk?g?=(2mPn!)h`@JG;PFK0F^R|2H2_ARcTZRHM09i z+V%u@Z7RSTHsnV`^5U32v|FY3(8oKXpj4h>j95?Y%oO}wIiVXa0=omsUD|RaG<^&u zHud6?n{hXkA8f%w6jBvErR4Hq%1JG)uk=i!HbAV?P|vg*05km^2uP?k5ru^|$tW9O zGIFy_QxS}Skk8~q_vCQ1MHJSOD2lA^;xn8Y`&cLinbfiMY!gws%Zy?=-Yg>?RY-64 zpqnI(GGg+Vw2!POU73_xT>3!Ukw1{FwuV6eJ{nRE>+LId?FxjC z_by2xFoRQA*S4R|p>H}69uUlNNG-`ji@ckCb`=jBOR9Ho{Mb0E>@Pk=f#Y*iQ0^u8 z0avtZOOvRMhznNRQcP?-ax{OW01M3|<*%8!nmaQX=g#KV2PXk)Bze`9DX4 z!H3RrcWj^$@IaeD-gI%M%t>4q@i&cIiXa0Zj@?cve&ung*0eP@Fw_I*B)~M<4rU}? zz`{MxPLg}q#jHiP?D6s~ycBu6>I^F)Iv-5+$6QM2o_5-U40TE-D_)D8%cT7$y%sKq zl?N9)Ak=O@b-G#&+*uu6zC;>Rzl|=OXf6rKX*0y5Wp>p|vU;CFNOzp%CEuMy(&>Kf62)g4_4w~D`asGDUJ`exO&s@d ze$xc$oS32cKtsL$GvE+R`4HQ8HE!J!74n4zx#?Y;VqGDr>$O?p*2(>Q@30X!FL9JK zWY4w1ThX>)hv4R?t||4+{+wSa!31TMal2AOoKFe%nvdiXkFOf{7zXoIh_`cw=DO)C zoGkS)dVE3ajHVEMmd&JzGF*O_R*a$J&s_MS^$(vnnwUS&y*UwJeVx*Yj#rDN^z5Oc zav#X@jpnV(7J|NApo_n*m9x-xQ~5YX!a#DNb3d0{^}URod{W{XNP;n$8VI9PFg+}j zpCt63>>AdAEPoB7R>@yEy2l(D0~)&K(t(>0+8o`VGd$W|6^&ES@j2&Uca*}-phIgT z2Nh;Pw*D*`;oi@^S~do)Xc)15OsqC?;iBRkO27g@ z((;C~#<$+&2TejXS61qc5}Hm%?u|rs%%{;3Ww|0^UKo~dnh?N7n6`g&L)@dgFUqsQuB*}Z~<|T z#Gh~Tn!>%EXs5ag@SQ}2EoS;F9aC`6Dr~R9869+U%04?tsH4e6;$Fek?u<3wx~J+a z%e%WyXi!(Lr&J!1{u|4>W4?{*mwRyC8dg#O$DV8_D7pHT(!yWdo&y2dU@flKiu@CP zIv6eI!1azC#z4B(FNvrXm40zB4LpYRBDdyBu<&>}w_a>&e7CZU+8+uDRVrohJzUkW z@t(EZ>~Yv}76+pPv>_nttYuADyVI49*b%6wks^yn%j>m+;uWx3dhJ?)5qzl(ydg1m z2H7E-lx3Va5(TwXupT&fzIuN#*G0rZO4BaoNfpS(tmXgybWA(ljq=4`XQak7^vpzW z?F)jL=&SuXug3k>7X1^l{Lm%n3*P{d`Y@%di%xU!SgAp$DUv^_v^=4BZPGE)rS2Jk zkvJSX0KtfBqu|s&K+T%Tt*EWR=NX-+ephf(;Mlaqy~_xG<@A<=*2tZ^ zu1M$2TYW$bJ@!;ca(ryxBn`Bna3`d4QsdZG*_W7#{dRao}`NvG+y1y1$%DhKW7@0bs+iXpV_MXR{xrJ42_ZBzVdtQ z{@)GL;vl;54@eM@XA%$)xPJ{(XBQ7!bLao*m+I`=t#crM<&+?+T@3pI>&&TSqgDpj zernaa(9S%8T7}oOD&-5QxOSwjOm}W)n@Or90au;O+7Wb&Kv7qQ+xItz+vk;2+f!q4 z9tDgUV8)NXUYriRxMHhWuJvT1>5FO!#EA^enhif5+)Y1Vi_={z)5b zHN5j4iX%2jDF8&KMOjw%v|^;UZm@PH=b35c=gmbdCr4{%CoC#i_g{|5egH#dXtz@6 zbmn^PY%DZ+cCA>|v~K&tTlOG_!LZ{NpgHBDY3Di269Am%2@Qxw(Jw|2?De!+EZGPc z8XeV@VcgVE_CH&6?`T4xBWeE`V63M&3RD(Fy(}Gx)0_TmOd6yEaAr&%S~!iq(BN-x zZ3WpID}Q@<8RC6dJLH1fAlFy=7hDDDkAhB~DRAlVoW{JqEKm z^$F(Kuve-@i_j=04~NL)Ae~#6Mj@r6G!Q{dB9gE7${Wp4Gt|r({2&_223&{WZ*Y6QxUX?>P|HXJvJB`Z0J4yJDOpFugg@1Dm7l`YeNG8zfEz`J#{$xas8?p!sHy!7`^-VdRQE#QkNT zburpI;#M07@1L%>GcvKk`J~<0r#TU7M+x8;Z@Oa(Xt5uV!>lnhIe)uBHYBR;kiSV!r#0g@THg3mYRbfDrlLCNHd+SHyaZ&5$E@FR7o zpImat9$0nco8FYu;L{cfP(}zE!{O8tO&c<+@E3CWqRPM(H8$RUzIZ3a{&s#?-O0>E zvUI_oI)UISunczg{`_|)8|nCfDKimmCzB5?(^B}Cs}sow4zBLRu5_~d^Ugagi2U^3 zx0Yg!;?skqPUS4BEGn62d5z}u**Ox``&)S-`nYOmhpz%-xF=!0)~2$e+w){~%s$>} zNu5h`y?6XsPFAt9ps^cIYcrkYOz4ngGxs%+^woD*S9Zz#5<6TMQL~{yPlqMDl=eDr zNv@mBnzYpX*+;SFroBt1!t=vmyhnW7<_+4^wLnwT4G&&tjx{pN7h%L?Cvtm8G! z&zDojs`|C??M!JpFxF+-)@)mkM-gOI@*vM&qlIq*3-3M(8va`9q`*JK7B3pP7}Y6_ zy6W@+Z74u#UX3!Hqg{)AKJMioEDP1`e|eQ^(J<9ypxSn-l^EHZi!t!A*7{Z(&aC6P z8BKl{p})~{<~KN>mJjmA&!vgV75D^(omgCx=gTe?gy{rs%}?>$6`Q7Zkc8uo=x-XZ zKR1HyB!KQ0rZr+l$;L=onizwVA-9y8Dc@OAn-x>xTU;5RED9*s!-x7etFcGahA(t5 zVnrnkTq}q^?H-d>M)hq_qq!L)AkfjNofF)EvPCLwYnA+z`jx>C)ke}pm2dmkTxubG zL#pCLX1CWk9bOtOvOTVp-qi%1L$K+wBKQ~a%{tK<;dBh7Tu7J2g)wZmgj#-)r65FH zYB_R9q)b&^|796OF;~jk?^dEzJ;fYMW%UjGr(gIW@caKC76#JA3?(3hTe$FZA}-Qf+IG`raQ@0$4yQ z^-n)G9=Q9Jj#~YI_ufkWWGP#mCp|uHB;@xLy0$qLEYdRer%?Pm=M{dh_$|{%80&!# zUF?;&S@0o`j%b9949fV+uKZQUsw7B`Z94S(md+=H(~9~%me&%TGeERTwj$qIx8R#c zM`bpefv^l!-iOW`dydq8I_a(feLr)8>Pm7~f4<1y0m-V4Jo3C3!Kl8tt;y;a3jLSl zR=-r*BciCawujnZ!^5B~G}Rqg*Y!Ae(}XtZna)qux8hVC^ZS7xT3##eZ{ zO4_XqYITjTr7}`w+8llCN4jNmAJ$Ro&_;5g8OZri*i#1lWOkz{YIScqTMxvN(GB%a zLt!t1bNxM97V83P>AcS}0@<#1@5$}B{}|WNf0yAxf~IE(I%2C*GpTwe}$2dCgmHg?NPV>C0n!=Bspr{(#|N(A+2ZU~AKU9>8P2V>*Vz3uh8 zz?C6boL#dnrkW1jh|6N_q64}1i8g2e#@5Q-J?)9;Lqx;SYZO0@g+#%V&O&?xau8Ye z?1MXa_96~AJB*h2o#fI^#N_0+8sVjk69pgoIJvf@G%h`7sM%zqW_BeDM>yyH!Vv*V ze&=7@5ra&b`Q+X=%ZRDp(dbFI!tqKt+Y}`;F#7W%0OrX*sGQ45&2wM_MV<0qv9Yq| zNV-|ENZ(~zA7KCcOG|LQ^yL2IdKv!&``=_%vvU1uVrOh^>&)o#|A!0?c9x(SBxYOT zN(z#2xc|{Y1ZgQTm48Q_f8q}V^=}`E;42FPLJT4;CamVZcA2FeWwz|G?RR`7d#S5w zKVR>JIpt7-xfYYm^*3uI#db6drH9$J2R2{;1%Dm%E`jfW1j#o74H`Cp>n}Q)n=P$F z<)0L*@O(@e^iWdysUdAo&+F>)YM;*cQPIf;Da1yAybgMaK(3N&s`FLrH_!7o{W0$` z9CeWy<#h{?6~;nn+CO^~aDp?#nrnI2H1dmetD#%raDUg|vg?Cx)jNgj23y`chEA=e zwpRKV*Y3t@J)is4#`)Msj^G#BhD!+1>$+fw>De!5+6%ku+P@7TJy%Z*j~0QUM4l%x ztT~@&siz3wUtfw}oA${uWWLv`IY(GuyOJ;cf*uKe5AZ~O`e}@UpOBb{IfpN^t-lUp zk^KmGd8APVKF|b*u0O7bZr*b~$cgxVg)#a(niKMPWeStFc61JR*yR1dgh@7h9}qki z{Ccv#AAlx2>h?WD;`Ta2XNk|`_X-)uT1FP>wXd0vmU9Y5b(%9f>{8Y9+2zL6h^cK` z-+jp=HL(5L+8RBgO}7RWQO&xtPNG_RH|=|g_R;S5t^0A*{Q;5lc5uB130oef%oe#w zTk)|l?Gq*VJwF{cikl<@i5ra>Y?9r}Wij{s%K81o`IqjV{?UqLfEWD1ooi=wS|GR_ zr%*pI94k(i`%lR49P-NLr{3qZ8Z{>T(C){6!2zO=uW$0KQI+bX)vb!e=|bjB{C2#G z+;uG(p&)56tGVNYQ&qigPXhhL6U1R+(@dA&w|~d6dsPGijkOUp+wokACHC-0BL%|zOl$J@A@>Z){|daIyyblme$M9Cl8W9xRdnYVrf!prXl{6X}%kR*K>oNlQfo0 z>i#qqzBppQ_DeJB@GW5RS{$eACi+;4kzoJ8ByI6r)8p}o!+O0(P1KebJ|bqu6<_q` zV7Y4wDaXrSuT`X?Y0w>gClu~J(i~>^k3tL@Rm`N4FKccmac*Omga(>>_H^{3=8c!@ z5f&C~hrhR5jD$^;5*4s%(C~UaQE|>$imC32TS0Yjp$|PedJgK`3&&?A1!lq z9mb`z>AB6`U!%hH9n{#;)F)(ZJr9s0_{}2twI3X4KhO3`^nKZVb5d}9ymnZ@l@bt7 zjb;%>#Zq~FNdic;Vi|H#J(#1$ouo{hg;5Gi{F9VHngZKaj5-J# z34j0ZH#zrOY7BQy&SEhbm>u32lWv#HU$Ss&LXt;IWT~`@phIA%$YZ+`LtJWP$h69# zhYkpbSx=H+go&KEkUKjEC`jg)$0@+}Agmx&|@anQnu zIOwme%m1kW<_h79bh%qz-v-9nl}x&`i7Bf;xw&z>959`_r1a(@g%8NL5>pss=i*_q zgx~NZjZ4qkbBS8LR&!4+8yAn`kk=%K^s7lTw=q>x$;D0U{`Vz{| zOqGGlvQ9CL$c&;T^IoazN`jr(WtC0Ig#PCiUad;VQxW|tEnIet#G5>QE6#M z%pn82#3*O%$PZ}X#%1Ajbz#$?L_|=fHxl}uqOqwcln{QC3YQWmP`B7{qD}GV-sKT> zvUY7=BCKp}W4JYQgzaNXxQYne7={;g%OO5ys5gMmj&|6!BVH$4HgvNfeM&XOLz_oj!${ z!F#BYg!%jW#42H{RhUZ@pcrE-0ntxgbhzw(bAe4Kt~{MH^4<0{88O8b&IcGMq7Ewo zVe&!N_`{18rs>g(&AkYuX{eM8Rg?4mt$l4IQN@Aj5>*-{I$69czMPH^Sx1}8IfF>1 z9k*ecw_>s`NQ>BhGjG70N#OVSUMxkTq zYL~RKINF@(Xdj+zx6k(bElKDTM3wV~PxLj~4c+5x=$A5T)FT?(i6pgB!|r}NXn!|P z^v<>AKH<)0h8mP4OA!>soW+)RUEAe}vFWC*zkLvn)Ik(a9%Srq!2^>P$B2HVpZlCa z(B$@9YHzD#!&aIiyYPb@MnvGzDCmRH~XvBv0UqH*VQC zQ8Q=qh=^*x=QQ|V!2U(NWe2(ptx|xe{=ezB7!2u|g&31g$(fojh@U9W&6XjLJ}HF4 zgdeS?r)BiZG*pCJG9Y*HN1~K;ky;@uc77&#C-xlC(`l2}fvmV)rGaEU z{@5UkFn(Uawln@`)1P0`2^$gRo9%6n)m{&}Ec!`lw@%AP`UM6Bi?(w=I9Auz`BwyQ zJ9xi(C!;d}R5jazxY3BdNN=CZnK?|@0K_J*&8gmN&!4fIoBB^rPbbfwE?)CapT0zC z-n7ODe8jsy~Hnf+PmSH+z#NYm$lG4gXEW^zg>+;gGV` zxABZs1aFuT?thk5ET8YSQ0FU|dhrU&U?Y;p@OCmkGBDj!p>mROIca&=gYc_{uws2| z<^c>nZ^h$abKd)o?Y}koK2sHIJ9RBtZm}Oc0Z`y?oeclrvghpk_p>k_YmHtP4w#|R&dgcFMs=d_PpViFK5>3pRy4b zen+z@L3=xbOftXQ5@#tV?u7c7t!=gA?U*`dDyH@2b$zYD{=zOCR*ju%bs?9}1(Ttm zU$Ei#a`#YVjb3q6{W$QUv}V~+FZxgw$)PminAPu1J4G?GxT|@H@#{{|_*e4~tD;X# zN%svtQa0}p6M)It{6itKmUDO6@1D~Var~K7*T#m9fIHxYa9Ur$>41NH_8%`$4Y|H` ze~4tv{PzYbbO&jMdIxKd=LhiOw*6*IC#d41Z1BJsAbLb@IpB?d&+4qYEFBSSt%{?( z*vZ`^?aN9IA8J4)7YLR%fbPWo0W4m>MvEG*#OEIxT7wH_xpadcZ_?J&GvmT$!bVg= z7si)0L$C8bL5}tW&$Aiu^-qFb9Hgi=Xq~84Eot@MB^@7^Wy52ia6$B2=vO#y@i>H& z4b@~q$S5lEFz|U)zgq>UoQ!Y@kqW`=5%-LmSufj|MM4$^Igw1eRVh$r1_6I~uz?`Rjzm3>2}U}oN0BXooJ12ynh@l|6KscFSkGO4h#Kr2Z%Z>+ z#`REoFdUr|?BQP9O&S0^WO}UZS1796A)f0k<4a zV&3+70y(TBsWQe4LSPRP6CjZ3Mtbj$Nux~3s>nQow_l$-8>t~3slP#uB4r|F3~5k4 zDFk-Bdwm8r#U4k-|Dp8@cezx7tD@QtCiJ?_Yx@T44sTDZuRiSU)Kuw8t8XZ1&T1? zhHAx(4;@iTCn!;;uG+hXQ@E@X&DF%VR;}Fs-KLO92)yL9H*>oAT;s8myegE#?mSAjr=u-0`v`H{=rY*xg1#g` zgo1uAU>dmZ;Eb+E3I%Uj{N7r*I{FgW?KJ^MozCcBzrRXj^vx!Yz)=v1sirfr;z?yN zEY_=#5gicO??to%7iNBNe_#yo7XZ0d_olJrxr8L@dZ86r{T4^J4PlK*;7)mTD?!f z6p91FDBZgh@rTtaoTG+8d3o{Fj>{pGN8-t-m|T*_HLI1%lKxbrq&-MpTwTvsE{`UU zxhKLZ(1=qe3qzreIo~(%=&wye1!+&p}o+D}o--X9JYf5FVFi7NhZ&wRO0oiq1Fm zI!EvF4wr9Bk@t4u6I4*eP(q4{7M|NeU>qyZMgz~`Zig^X2QyN9_*0=vn{C;Wq)g>cdH63qD9q&kRO(=(#n zpHu_S@NgpU;fQ~#l+3A&T_Onszwk4}ueXRbtE*Ij$*3}!8DTjV*M++7_b_0#%0Xy0dsHxH>@eMR=!mNRF>@Z)AtVPC${ zwJD}s3Mb?Nejl{mPSc=1(2~s=@@oBJFc|WX!?oIm+eW@!5!a#aTM*Ot%r05Lh#3R~ z`9+ujf4w}Rn)M7Qf4M}vUt#BefDuManQ=1Q1I917^S4{O|2GqU=8~+b*)-$BRZiC> zM)W~PRZ`nfOV?kM(+9u6vnpFeWSBK3Hn|1IvUpHgn=E=fjfjb3A(y1MH>w&gKrLln+aQ|>d1P>MN% ziR4<-q{+o(*ltTv*3~h9 z=>yw}O|_}I`PLZOCyf_5D%*DQ``9!c|ZG=B0_?GtK2q6reAuYV7M9|7Fx;#YUbn z&Ww%tkEhE~_OGqsHf0=5q|LK=`BV-GOlqL%&%z{P_x}y+3(Gji+wePssOfO}{Vz4k zC#Q@-FL!=zrtdyLjIm?S_!skud!M}l&gBycVyK~@iMJ4obq*7!lii+=G$jhzV#??e z`^?p*tb~ex=`+Z~t=Tfvj*r5?a+u<^ilu9o$x_E>PhCci?_k8`oGXh8x2%kGI5zD< z^#qU{Kia}`RL06usY@#IWwMW=4Od@noP3|-zRYSC!Jv31+Fc_%!FPT`u2`joIk zE2}JDrLkghF^O2|`FzWB~m}Y`7#4UgG2v8M;9Kfq^n(Jwe!IUiMJqW3Uhk?-;RcfrzNOZfiEtP;~Kw zBbHo)?O|qly5-{a%XsOcm2La~qF8->dvu;|6qV^eaM4P});0Pjwg&%mSJes9>!lhI zrjnZOhslxH(B%qfXd-s>zEc3Hikm~Bi<5bj+o^4Jd#%AtUYL=PhBW)Q%&C?3?v8b{v z*zlci`^Gc5T+{8E;T^@yt7U4osbaw7)`PiroyD@1Q>#Ow^EH`CHCl1 zv#7j(*@B1XCIhLy5HgA!pG4xn%9yY^d3iZAEST+hUlTngnti#b3)4ShcwSl_qU8F+ zi=8EnudR5Gi=%({#QtCJKysSvjelykLeo%u5#e7!^_1;d8Y{xKs;1V(3Q}Gj2k>U* z>=BnB(W#K9MILTymXLeKqas5${(tH?@1Ul#HjD=eRn*V~1f_)liii-3v=A0#=}Hl# ztq4J3>Am+NMS}E>w6MTR5hM^Kp(DMmw9q54AQ1(W4&U{g{bph2sV%&dj}M z-Z|$zzw=lhEo( zSdXK~Iw&a56%{YUfT5RHO?QdK zH5SI-l6I_Wz{NP2_8F}_2G*1xmDkkPD;2S;kQ8UztsHHscm<9Evn(1_W%X4g;bvXM z3B9gI`yQ#OS2=WH5H;Y>R+Oh>G+83xYaRoN&Z(MgcNXeJFCbYW`UdYX?gqg5`@JWu z2z9aMX7hiKa2Z)Ng_7z&Kw&XVF%f(-foV-m3W~?y&|BLp2=s<-dX{OstAo1$OiM)e z4N#M0ib_=J6uNN8(+t1#wv>hVa_lx*0`nkKjlW=cqN|F_-zk)Zeo`xD!MS;4lfIG2 z34W!*3K67hFpC$=^VW1qhlafj0oj{;BTy%M3Lx?I{=rvO6r z`((WzPC*3BAu^H zw5joM_Mh0$K+s;E+L<~y)^Vlr@LxVT;+Tcb_XTu$FBEIO-w3$kM(Vr-vqEp0y;_*) z;-*QyN!3$K|I##d-URf%T}?tAo+s3FI9K3|V(?46tnvaX76eq~BYiBPSp zlale-XPMibGLku%pqVr$&|RQDV*I#A&%N8sEPs%4=WeF=wAUguWW#NB@m98cKxA{? zbWhR^=B~sBjSNmxx#!hrn~CiD4e;;M6%sdmrh~pP7y(mzME2MAD+(>WcbeL}lLQ<5 z_vnjVqb(ZS+R%uBVg9I%*)`fjTW^*pUS4TH9{DVT^{xr$2D9VtLj=-s_u0YEamN^R z{K~-}F|KMoWHJskl_P~AEzaUF8wcsjShV&oGI-Bi=9@XfX19+mFE^60Q20u&tWS1e zkW%?a9u*W`4@0yQ&+x9#5W%l73f#SzLVq-zpoLK)%mFDWNnCO{?aH@9>0A8Z;)%$}g3J$4Fu3CL5Fy26Y|iP4jhk^~ z2MLXcEGt8JEB)5w`SPivE?-H0aqaK?A;ZouEZKK0<1kv3vzAP*oNreM4-q?4A)byB2l`1zC-N|{9f>Y~LJB~%uV;)v^hQ))y8T-EE=tg-Jv$(U^Pz?Juu+fO7qg*JN?`6roi2Shjexm`b) z*8&IL*CR~1y68NB2LCgu*hGQQ}i4?YqbSSNv;mJDp=m?d%@jl|9si4$H_ z2-AY=Y^xfvu~zr~UUs+e3KHWX{oJP(tCp%jK}>*O)@;t_BQ`%L$1j;rKH zv5t+g++etgxd~ZnPdNig&@8kl!Bx?!YZ*8NhaXvRLydJZjYQ3OqOE+J6kXD*{H-Gh zzTYa1Ei7J}-5mYmPFt8Rba~aCTE;O3x@n6wu^<0Y<(?B5B$iY2VnDsOr74AbGeAG` z>sSdTL4SJ3Mn8^VDsPQp*m#KYrt#Q57*+kXK;}Lp{c3XC?10p&SqKlU@YRbF26LC= zk9)R&!6uVzVZyJOheP~=d!r|ZrrsT_iiZ;1c@#&UF5Beo@-XIhxWnfkR(DMwdvy*= zM4@0#t;4?^?2kL^+1hIhBy|t1p`+h3s>T25ytF3S6Tx>Bh}Q53u_=`52amvUWKp16 zwT_hos>TH}3n4W-qjq0N6PM-QDQFQ@M-AOod0!|4Im$q)3#hfo;EXLT7a)y|a(#wu z-g{Yt64?6i0$Kw@wVrTCEZTNW{&<(<|D&6bUJ;Po`*wc~rLm=1U)M2NvoZw#Zcej( z{jZ0=!`UxU?*=L<<`ojjh10&KHY=kb5XGaPC_tF%GqL5NP5Cg3jWHr8HPj`JTPvyi zdRNixdVVasut3MtSDs!DWoQUY<#e#Wu&bMOxJl~K70j~`eZ5zpM8>cPP5WC3HYkeDzlKU#*HH2JNB1FD{?}hJhYVZ2xyLL_p_Sm z>8bn#ZRRfClEG}0%-?V4>?lKLW@Iz$uZ<3IxXT`HcO6qS#Q8ZM3@w&H@zK~yO|>z{O<&N94tmIT731Yz#O?@lv&x9;AG0#gL&#hp^`pLW zyEV?bP_>o(+by=1)~^t1vK&?H)38>t51) ztC5Hzt-v{7l~q#LeX=o;|3t1&zt}GOBotafoO~$5P$hM{Qr4KoetLq!cRF$ovUyb zsy?j{2zXQdi&&p4a2B~cEl|LJ7Qj1K;w(~iT7n7&e1v}ht8>H8azdxWodBb*^QfV7 h<<54|({ifn=XBUpT2w!QBM=R6&QX9s`Wio<{sU`R@$vuw literal 0 HcmV?d00001 diff --git a/doc/Makefile.am b/doc/Makefile.am new file mode 100644 index 000000000..8016c1508 --- /dev/null +++ b/doc/Makefile.am @@ -0,0 +1,7 @@ + + +KDE_LANG = en +KDE_DOCS = koffice +SUBDIRS = $(AUTODIRS) + +xdg_apps_DATA = koffice.desktop diff --git a/doc/TODO b/doc/TODO new file mode 100644 index 000000000..a3bd38ba6 --- /dev/null +++ b/doc/TODO @@ -0,0 +1,2 @@ +You can find status information and TODO items for KOffice +documentation in the CookBook.odt diff --git a/doc/api/Doxyfile.am b/doc/api/Doxyfile.am new file mode 100644 index 000000000..05aa7591a --- /dev/null +++ b/doc/api/Doxyfile.am @@ -0,0 +1,153 @@ +## generate API documentation with doxygen +apidox-am-yes: + @if test "$(subdir)" != "."; then \ + $(mkinstalldirs) $(top_builddir)/apidocs/$(subdir) ;\ + cp $(top_srcdir)/doc/api/Doxyfile.pim Doxyfile; \ + echo "PROJECT_NAME = \"$(subdir)\"" >> Doxyfile; \ + echo "PROJECT_NUMBER = \"Version $(VERSION)\"" >> Doxyfile; \ + echo "INPUT = $(srcdir)" >> Doxyfile; \ + echo "IMAGE_PATH = $(top_srcdir)/doc/api" >> Doxyfile ;\ + echo "OUTPUT_DIRECTORY = $(top_builddir)/apidocs" >> Doxyfile; \ + echo "HTML_OUTPUT = $(subdir)/html" >> Doxyfile; \ + echo "HTML_HEADER = $(top_srcdir)/doc/api/header.html" >> Doxyfile; \ + echo "HTML_FOOTER = $(top_srcdir)/doc/api/footer.html" >> Doxyfile; \ + echo "HTML_STYLESHEET = $(top_builddir)/apidocs/doxygen.css" >> Doxyfile; \ + echo "LATEX_OUTPUT = $(subdir)/latex" >> Doxyfile; \ + echo "RTF_OUTPUT = $(subdir)/rtf" >> Doxyfile; \ + echo "MAN_OUTPUT = $(subdir)/man" >> Doxyfile; \ + $(DOXYGEN) Doxyfile ;\ + sh $(top_srcdir)/doc/api/doxyndex.sh $(top_builddir)/apidocs $(subdir)/html ; \ + fi + +apidox-am-no: + +install-data-local: install-apidox + +## install API documentation +install-apidox: + @if test "$(subdir)" != "."; then \ + $(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir)/html ; \ + if test -f $(top_builddir)/apidocs/$(subdir)/$(subdir).tag; then \ + echo $(INSTALL_DATA) $(top_builddir)/apidocs/$(subdir)/$(subdir).tag $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir); \ + $(INSTALL_DATA) $(top_builddir)/apidocs/$(subdir)/$(subdir).tag $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir); \ + fi; \ + if test -d $(top_builddir)/apidocs/$(subdir)/html; then \ + list=`ls $(top_builddir)/apidocs/$(subdir)/html`; \ + echo "installing $(top_builddir)/apidocs/$(subdir)/html" ;\ + for file in $$list; do \ + $(INSTALL_DATA) $(top_builddir)/apidocs/$(subdir)/html/$$file $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir)/html; \ + done; \ + fi; \ + rm -f $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/common; \ + $(LN_S) $(kde_libs_htmldir)/en/common $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/common; \ + else\ + if test -d $(top_builddir)/apidocs; then \ + $(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs ;\ + list=`cd $(top_builddir)/apidocs && ls -1`; \ + echo "installing $(top_builddir)/apidocs/$$file" ;\ + for file in $$list; do \ + if test -f $(top_builddir)/apidocs/$$file; then \ + $(INSTALL_DATA) $(top_builddir)/apidocs/$$file $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs; \ + fi; \ + done ; fi; \ + fi + +uninstall-local: uninstall-apidox + +## uninstall API documentation +uninstall-apidox: + @if test "$(subdir)" != "."; then \ + if test -d $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir); then \ + rm -rfv $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir); \ + fi\ + else\ + if test -d $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs; then \ + rm -rfv $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs; \ + fi\ + fi + +apidox: + @if test "$(subdir)" != "."; then \ + $(MAKE) apidox-am-@KDE_HAS_DOXYGEN@ ;\ + else \ + $(MAKE) apidox-am-toplevel-@KDE_HAS_DOXYGEN@ ;\ + fi + @set fnord $(MAKEFLAGS); amf=$$2; if test -n '$(SUBDIRS)'; then \ + list='$(SUBDIRS)'; \ + for subdir in $$list; do \ + if grep '^include .*Doxyfile.am' $(srcdir)/$$subdir/Makefile.am > /dev/null ; then \ + echo "Making apidox in $$subdir"; \ + if test "$$subdir" != "."; then \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) GENERATE_FLAG=no apidox) || exit 1; \ + fi ; fi ;\ + done; \ + for subdir in $$list; do \ + if grep '^include .*Doxyfile.am' $(srcdir)/$$subdir/Makefile.am > /dev/null ; then \ + echo "Making apidox in $$subdir"; \ + if test "$$subdir" != "."; then \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) GENERATE_FLAG=yes apidox) || exit 1; \ + fi ; fi ;\ + done; \ + fi + +apidox-am-toplevel-no: +apidox-am-toplevel-yes: + @echo "*** Creating API documentation main page"; \ + cp $(top_srcdir)/admin/Doxyfile.global Doxyfile; \ + echo "PROJECT_NAME = \"$(DOXYGEN_PROJECT_NAME)\"" >> Doxyfile ; \ + echo "PROJECT_NUMBER = \"$(DOXYGEN_PROJECT_NUMBER)\"" >> Doxyfile ; \ + echo "INPUT = $(top_srcdir)" >> Doxyfile ; \ + echo "OUTPUT_DIRECTORY = $(top_builddir)/apidocs" >> Doxyfile ; \ + echo "FILE_PATTERNS = *.dox" >> Doxyfile ; \ + echo "RECURSIVE = NO" >> Doxyfile ; \ + echo "SOURCE_BROWSER = NO" >> Doxyfile ; \ + echo "ALPHABETICAL_INDEX = NO" >> Doxyfile ; \ + echo "HTML_OUTPUT = ." >> Doxyfile ; \ + echo "HTML_HEADER = $(top_srcdir)/doc/api/mainheader.html" >> Doxyfile ; \ + echo "HTML_FOOTER = $(top_srcdir)/doc/api/mainfooter.html" >> Doxyfile ; \ + echo "HTML_STYLESHEET = $(top_builddir)/apidocs/common/doxygen.css" >> Doxyfile ; \ + echo "GENERATE_LATEX = NO" >> Doxyfile ; \ + echo "GENERATE_RTF = NO" >> Doxyfile ; \ + echo "GENERATE_MAN = NO" >> Doxyfile ; \ + echo "GENERATE_XML = NO" >> Doxyfile ; \ + echo "GENERATE_AUTOGEN_DEF = NO" >> Doxyfile ; \ + echo "ENABLE_PREPROCESSING = NO" >> Doxyfile ; \ + echo "CLASS_DIAGRAMS = NO" >> Doxyfile ; \ + echo "HAVE_DOT = NO" >> Doxyfile ; \ + echo "GENERATE_HTML = YES" >> Doxyfile ;\ + $(mkinstalldirs) $(top_builddir)/apidocs ; \ + rm -f $(top_builddir)/apidocs/common ; \ + if test -d $(top_srcdir)/doc/common; then \ + common_dir=`cd $(top_srcdir)/doc/common && pwd` ;\ + else \ + common_dir=$(kde_libs_htmldir)/en/common ;\ + fi ;\ + $(LN_S) $$common_dir $(top_builddir)/apidocs/common ;\ + doxygen Doxyfile; \ + rm -f Doxyfile + @true > $(top_builddir)/apidocs/subdirs + @$(MAKE) apidox-am-tree PARENT="" PARENTINDENT="" + @sort $(top_builddir)/apidocs/subdirs | sed -e 's+++' > $(top_builddir)/apidocs/subdirs_ && mv $(top_builddir)/apidocs/subdirs_ $(top_builddir)/apidocs/subdirs + @sh $(top_srcdir)/doc/api/doxyndex.sh $(top_builddir)/apidocs . + + +apidox-am-tree: + @if test -n '$(SUBDIRS)' ; then \ + list='$(SUBDIRS)' ; \ + for subdir in $$list ; do \ + if test "x$$subdir" != "x."; then \ + if grep '^include .*Doxyfile.am' $(srcdir)/$$subdir/Makefile.am > /dev/null ; then \ + echo "Making apidox index in $$subdir"; \ + echo "
  • $(PARENTINDENT)$$subdir
  • " >> $(top_builddir)/apidocs/subdirs ; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) apidox-am-tree PARENT="$(PARENT)/$$subdir" PARENTINDENT='\ \ $(PARENTINDENT)' ) || exit 1; \ + fi ; \ + fi ; \ + done ; \ + fi + +.PHONY: apidox-am-yes apidox-am-no install-data-local install-apidox install-apidox uninstall-local uninstall-apidox uninstall-apidox apidox apidox-am-toplevel-no apidox-am-toplevel-yes apidox-am-tree + + +# Local Variables: +# mode: makefile +# End: diff --git a/doc/api/Doxyfile.koffice b/doc/api/Doxyfile.koffice new file mode 100644 index 000000000..76049d36d --- /dev/null +++ b/doc/api/Doxyfile.koffice @@ -0,0 +1,191 @@ +PROJECT_NAME = +PROJECT_NUMBER = +OUTPUT_DIRECTORY = ../apidocs/ +OUTPUT_LANGUAGE = English +USE_WINDOWS_ENCODING = NO +BRIEF_MEMBER_DESC = NO +REPEAT_BRIEF = YES +ABBREVIATE_BRIEF = +ALWAYS_DETAILED_SEC = YES +INLINE_INHERITED_MEMB = NO +FULL_PATH_NAMES = NO +STRIP_FROM_PATH = +SHORT_NAMES = NO +JAVADOC_AUTOBRIEF = YES +MULTILINE_CPP_IS_BRIEF = NO +DETAILS_AT_TOP = NO +INHERIT_DOCS = YES +DISTRIBUTE_GROUP_DOC = NO +TAB_SIZE = 4 +ALIASES = obsolete=@deprecated +OPTIMIZE_OUTPUT_FOR_C = NO +OPTIMIZE_OUTPUT_JAVA = NO +SUBGROUPING = YES +EXTRACT_ALL = NO +EXTRACT_PRIVATE = NO +EXTRACT_STATIC = YES +EXTRACT_LOCAL_CLASSES = NO +HIDE_UNDOC_MEMBERS = NO +HIDE_UNDOC_CLASSES = YES +HIDE_FRIEND_COMPOUNDS = NO +HIDE_IN_BODY_DOCS = NO +INTERNAL_DOCS = NO +CASE_SENSE_NAMES = YES +HIDE_SCOPE_NAMES = NO +SHOW_INCLUDE_FILES = YES +INLINE_INFO = YES +SORT_MEMBER_DOCS = NO +SORT_BRIEF_DOCS = NO +SORT_BY_SCOPE_NAME = NO +GENERATE_TODOLIST = NO +GENERATE_TESTLIST = NO +GENERATE_BUGLIST = YES +GENERATE_DEPRECATEDLIST= YES +ENABLED_SECTIONS = +MAX_INITIALIZER_LINES = 30 +SHOW_USED_FILES = YES +QUIET = YES +WARNINGS = NO +WARN_IF_UNDOCUMENTED = NO +WARN_IF_DOC_ERROR = YES +WARN_FORMAT = +WARN_LOGFILE = +INPUT = +FILE_PATTERNS = *.h \ + *.cpp \ + *.cc \ + *.hpp \ + *.dox \ + *.c++ \ + *.cxx \ + *.h++ \ + *.hh +RECURSIVE = YES +EXCLUDE = +EXCLUDE_SYMLINKS = NO +EXCLUDE_PATTERNS = *.moc.* \ + moc* \ + *.all_cpp.* \ + *unload.* \ + */test/* \ + */tests/* \ + *_p.h +EXAMPLE_PATH = +EXAMPLE_PATTERNS = +EXAMPLE_RECURSIVE = NO +IMAGE_PATH = +INPUT_FILTER = +FILTER_SOURCE_FILES = NO +SOURCE_BROWSER = YES +INLINE_SOURCES = NO +STRIP_CODE_COMMENTS = YES +REFERENCED_BY_RELATION = YES +REFERENCES_RELATION = YES +VERBATIM_HEADERS = YES +ALPHABETICAL_INDEX = YES +COLS_IN_ALPHA_INDEX = 3 +IGNORE_PREFIX = K +GENERATE_HTML = NO +HTML_OUTPUT = +HTML_FILE_EXTENSION = .html +HTML_ALIGN_MEMBERS = YES +GENERATE_HTMLHELP = NO +CHM_FILE = +HHC_LOCATION = +GENERATE_CHI = NO +BINARY_TOC = NO +TOC_EXPAND = NO +DISABLE_INDEX = YES +ENUM_VALUES_PER_LINE = 4 +GENERATE_TREEVIEW = NO +TREEVIEW_WIDTH = 250 +GENERATE_LATEX = NO +LATEX_OUTPUT = +LATEX_CMD_NAME = latex +MAKEINDEX_CMD_NAME = makeindex +COMPACT_LATEX = NO +PAPER_TYPE = a4wide +EXTRA_PACKAGES = +LATEX_HEADER = +PDF_HYPERLINKS = NO +USE_PDFLATEX = NO +LATEX_BATCHMODE = NO +LATEX_HIDE_INDICES = NO +GENERATE_RTF = NO +RTF_OUTPUT = +COMPACT_RTF = NO +RTF_HYPERLINKS = NO +RTF_STYLESHEET_FILE = +RTF_EXTENSIONS_FILE = +GENERATE_MAN = NO +MAN_OUTPUT = +MAN_EXTENSION = .kde3 +MAN_LINKS = YES +GENERATE_XML = NO +XML_OUTPUT = xml +XML_SCHEMA = +XML_DTD = +XML_PROGRAMLISTING = NO +GENERATE_AUTOGEN_DEF = NO +GENERATE_PERLMOD = NO +PERLMOD_LATEX = NO +PERLMOD_PRETTY = YES +PERLMOD_MAKEVAR_PREFIX = +ENABLE_PREPROCESSING = YES +MACRO_EXPANSION = NO +EXPAND_ONLY_PREDEF = NO +SEARCH_INCLUDES = YES +INCLUDE_PATH = +INCLUDE_FILE_PATTERNS = +PREDEFINED = QT_VERSION=320 \ + __cplusplus \ + Q_WS_X11 +EXPAND_AS_DEFINED = +SKIP_FUNCTION_MACROS = YES +TAGFILES = +GENERATE_TAGFILE = +ALLEXTERNALS = NO +EXTERNAL_GROUPS = NO +PERL_PATH = +CLASS_DIAGRAMS = YES +HIDE_UNDOC_RELATIONS = NO +HAVE_DOT = NO +CLASS_GRAPH = YES +COLLABORATION_GRAPH = YES +UML_LOOK = NO +TEMPLATE_RELATIONS = YES +INCLUDE_GRAPH = YES +INCLUDED_BY_GRAPH = YES +CALL_GRAPH = NO +GRAPHICAL_HIERARCHY = YES +DOT_IMAGE_FORMAT = png +DOT_PATH = +DOTFILE_DIRS = +MAX_DOT_GRAPH_WIDTH = 800 +MAX_DOT_GRAPH_HEIGHT = 1024 +MAX_DOT_GRAPH_DEPTH = 0 +GENERATE_LEGEND = YES +DOT_CLEANUP = YES +SEARCHENGINE = NO + +#----------------------------------------------------------------------- +# KOffice Settings +#----------------------------------------------------------------------- + +HTML_ALIGN_MEMBERS = NO +REFERENCED_BY_RELATION = NO +REFERENCES_RELATION = NO +VERBATIM_HEADERS = NO +GENERATE_LATEX = NO +GENERATE_RTF = NO +GENERATE_MAN = NO +GENERATE_XML = NO +GENERATE_HTML = YES +SOURCE_BROWSER = NO +GENERATE_AUTOGEN_DEF = NO +ENABLE_PREPROCESSING = NO +CLASS_DIAGRAMS = NO +HAVE_DOT = NO +IGNORE_PREFIX = K +EXTRACT_ALL = NO + diff --git a/doc/api/doxyndex.sh b/doc/api/doxyndex.sh new file mode 100644 index 000000000..a310c8e9b --- /dev/null +++ b/doc/api/doxyndex.sh @@ -0,0 +1,60 @@ +#! /bin/sh +# +# A shell script to post-process doxy-generated files; the purpose +# is to make the menu on the left in the file match the actually +# generated files (ie. leave out namespaces if there are none). +# +# Usage: doxyndex.sh +# +# Typically, this means $(top_builddir)/apidocs and something like +# libfoo/html for the output. For the top-level dig, set relative-html +# to "." . In non-top directories, both and +# are calculated and replaced. Top directories get an empty +# if any. + +WRKDIR="$1/$2" +TOPDIR=`echo "$2" | sed -e 's+[^/][^/]*/+../+g' -e 's+html$+..+'` +echo "Postprocessing files in $WRKDIR ($TOPDIR)" + +# Special case top-level to have an empty MENU. +if test "x$2" = "x." ; then +MENU="" +else +MENU="
      " + +# This is a list of pairs, with / separators so we can use basename +# and dirname (a crude shell hack) to split them into parts. For +# each, if the file part exists (as a html file) tack it onto the +# MENU variable as a
    • with link. +for i in "Main Page/index" \ + "Modules/modules" \ + "Namespace List/namespaces" \ + "Class Hierarchy/hierarchy" \ + "Alphabetical List/classes" \ + "Class List/annotated" \ + "File List/files" \ + "Namespace Members/namespacemembers" \ + "Class Members/functions" \ + "Related Pages/pages" +do + NAME=`dirname "$i"` + FILE=`basename "$i"` + test -f "$WRKDIR/$FILE.html" && MENU="$MENU
    • $NAME
    • " +done + +MENU="$MENU
    " +fi + + +# Get the list of global Menu entries. +GMENU=`cat "$1"/subdirs | tr -d '\n'` + +PMENU=`grep '++' | awk '{ c=split($0,a,"/"); for (j=1; j<=c; j++) { printf " / %s\n" , a[j]; } }' | tr -d '\n'` + +# Now substitute in the MENU in every file. This depends +# on HTML_HEADER (ie. header.html) containing the comment. +for i in "$WRKDIR"/*.html +do + sed -e "s++$MENU+" -e "s++$GMENU+" -e "s++$PMENU+" < "$i" | sed -e "s+@topdir@+$TOPDIR+g" > "$i.new" && mv "$i.new" "$i" +done + diff --git a/doc/api/header.html b/doc/api/header.html new file mode 100644 index 000000000..b6b7b8777 --- /dev/null +++ b/doc/api/header.html @@ -0,0 +1,70 @@ + + + + + + $title ($projectname) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +

    $projectname

    + + diff --git a/doc/api/kfontdialog.png b/doc/api/kfontdialog.png new file mode 100644 index 0000000000000000000000000000000000000000..8d834d46f6b9655dff8d091539139ca67d83994c GIT binary patch literal 4909 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 + + + + + $title ($projectname) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Name +Tel No. + + +Joan +699 23 43 12 + + +Adam +711 19 77 21 + + + + + + +Terms and definitions: +A single data which constitutes a part of a greater collection can be called a +row or more professionally a +record. +The collection is normally called a table. +Moreover, the most natural name for the table is one describing the data it +offers/stores which is Contacts. +Furthermore, each row in the table consists of columns +often also called fields. In the table +Contacts there are two columns (fields): +Name and Tel No.. + + +For simple uses a single table can make up a database. +Many people consider these two equivalent. +As you will see, for real databases we usually need more than one table. + + +To sum up, you have already got a simple database with one table +Contacts. + + + + + +Database and Spreadsheet + +It is very likely that you have already used spreadsheet applications like +KSpread, OpenOffice.org Calc or Microsoft Excel. If so, you will probably +wonder: since both spreadsheets and databases have tables, why should I use +the latter? + + +While comparing spreadsheets and databases you may encounter the following issues which you will later see in greater detail: + + +Referential +data integrity +Data redundancy + +Data integrity +and validity +Limiting data view +Performance and +capacity +Convenient data entry +Reports +Programming +Multiuse +Security + + + +How Is a Database Different From a Spreadsheet? + + +Gradually exceeding the capacity of a mobile phone, expand your table +Contacts adding a column (field) +Address. Add more telephone numbers +(office, home) for each person and add surnames to names. +To make it simpler we assume the following: + + +the table is limited to two people (obviously, +there could be hundreds and thousands of them in a real +database) +there are no two persons with the same name and surname + + +Contacts table + + + + +Name and surname +Tel +Address + + +Joan Smith +699 23 43 12 +Western Gate 1, Warsaw + + +Adam Willson +711 19 77 21 +London, Frogs Drive 5 + + +Joan Smith +110 98 98 00 +Western Gate 1 + + +Smith Joan +312 43 42 22 +Warsaw, Western Gate 1 + + +ADAM Willson +231 83 02 04 +Frogs Drive 5, London + + + + + + +Such a table can be made both in a spreadsheet and in a database. +Using a spreadsheet is very easy, of couse. What problems do we +encounter at this stage? + + + +Referential data integrity + +Suppose you are using a spreadsheet and you need to change the address of at +least one person. You have a small problem: you often have to change the +address in many rows. For example, Joan takes three rows. A real problem +will arise if you forget to change one of the rows - the address asigned +to this person will be ambiguous, hence +your data loses integrity. + + +Moreover there is no simple way of deleting a chosen person from the table +since you have to remember about deleting all rows releted to him or her. + + + + + +Data redundancy + +This is directly connected to the previous problem. In fields +Name and surname and Address +the same data is entered many times. This is typical of a spreadsheets' +ineffective way of storing data because the database grows unnecessarily, +thus requiring more computer resources (larger size of data and slower access). + + +How can you solve these problems with a database? You can split information +into smaller chunks by creating an additional table Persons +with only two columns: Name and surname +and Address: + + +Persons table + + + + +Name and surname +Address + + +Joan Smith +Western Gate 1, Warsaw + + +Adam Willson +Frogs Drive 5, London + + + + + + +Each row in the table Persons corresponds to a +single person. Table Contacts +is from now on a relation to the table Persons +. + + + + + +Data integrity and validity + +Note the way data is entered in the fields Name and surname +and Address. People entering data can be fallible, +sometimes even negligent. In our sample data we have both different sequence +of entering name and surname (Joan Smith and Smith Joan; Adam and ADAM) and +many more ways of entering the same address. Surely you can think of many +other ways. + + +The above problem shows that ⪚ when searching the telephone number of a +person whose address is "Western Gate 1, Warsaw" you will not get a full +result. You will get only one row instead of three. Moreover You will also +not find all the telephone numbers searching for the value "Joan Smith" in +the field Name and surname, because "Smith Joan" will +not fit to "Joan Smith". + + +How can you solve these problems using a database? You can do this by changing the design of the table Persons by: + + + +Dividing data in the field Name and +surname into two separate fields: Name +and Surname. + + +Dividing data in the field Address +into three separate fields: Street, House +number and City. + + +Guaranteeing data correctness: by ensuring that no fields +are empty, ⪚ you must always enter house number. + + + + +A modified table looks something like this: + + +Persons table + + + + + + + + + +Name +Surname +Street +House number +City + + +Joan +Smith +Western Gate +1 +Warsaw + + +Adam +Willson +Frogs Drive +5 +London + + +Conditions + + +required field +required field +required field +required field +required field + + + + + + +Thanks to introducing the condition required field we can +be sure that the entered data is complete. In case of other tables you may +of course allow omitting certain fields while entering data. + + + + + +Limiting data view + +A spreadsheet displays all rows and columns of the table which is bothersome +in case of very large data sheets. You may of course filter and sort rows +in spreadsheets, however you must be extra careful while doing so. Spreadsheet +users are in risk of forgetting that their data view has been filtered what +can lead to mistakes. For example, while calculating sums you may think you +have 100 rows of data while in fact there are 20 rows more hidden. + + +If you want to work on a small subset of data, ⪚ to send it for others to edit, you can copy and paste it to another spreadsheet and after editing paste the changed data back to the main spreadsheet. Such "manual" editing may cause data loss or incorect calculations. + + +To limit the data view database applications offer +queries, forms +and reports. + + +A very practical way of limitting is the following extended version of +the previously described table Persons: + + +Persons table + + + + +Name +Surname +Street +House number +City +Income + + +Joan +Smith +Western Gate +1 +Warsaw +2300 + + +Adam +Willson +Frogs Drive +5 +London +1900 + + + + + + +Let's assume that the newly introduced column Income +contains confidential data. How can you share ⪚ contact details of the +persons with your coworkers but without revealing their +income? It is possible if you share only a query and +not the whole table. The query could select all columns except +for the column Income. In database world such a query +is often known as a view. + + + + + +Performance and capacity + +Your computer is probably quite fast, however you will easily see that it +doesn't help with slow, large spreadsheets. Their low efficiency is first +of all due to lack of indexes accelertaing the process of data search +(databases do offer them). Moreover if you use things like system clipboard, +even copying data may become troublesome with time. + + +Spreadsheets containing large data sets may take ages to open. A spreadsheet +loads lots of data to the computer's memory while opening. Most of the data +loaded are probably useless/unneccessary for you at the moment. Databases +unlike spreadsheets load data from computer storage only when needed. + + +In most cases you will not have to worry how the database stores its data. +This means that unlike spreadsheets, databases do not care about: + + + +The sequence of rows since you can order the rows according to your needs. +Moreover, you can view the same data in many views with different orders. + + +The same goes for columns (fields) of the table. + + + + +Together with Limiting data view +described in the previous paragraph these qualities constitute the +advantage of databases. + + + + + +Data entry + +The latest editions of applications for creating spreadsheets enable you +to design data-entry forms. Such forms are most useful if your data cannot +be conveniently displayed in tabular view, ⪚ if the text occupies +too many rows or if all the columns do not fit on the screen. + + +In this case the very way the spreadsheet works is problematic. +Fields for data entry are placed loosely within the spreadsheet +and very often are not secure against the user's (intentional +or accidental) intervention. + + + + +Reports + +Databases enable grouping, limiting and summing up data in a form of a +report. Spreadsheets are usually printed in a form +of small tables without fully automatic control over page divisions and +the layout of fields. + + + + +Programming + +Applications for creating databases often contain full programming languages. +Newer spreadsheets have this capability too, however calculations come down +to modifying the spreadsheet's fields and simple data copying, regardless of +the relevance and integrity rules mentioned in previous paragraphs. + + +Data processing within a spreadsheet is usually done via a graphical user's +interface which may slow down the data processing speed. Databases are +capable of working in background, outside of graphical interfaces. + + + + +Multiuse + +It is hard to imagine a multiuse of one spreadsheet. Even if it is technically +possible in the case of the latest applications, it requires a lot of +discipline, attention and knowledge from the users, and these cannot +be guaranteed. + + +A classical way to sharing data saved in a spreadsheet with other person is +to send a file as a whole (usually using e-mail) or providing a spreadsheet +file in a computer network. This way of work is ineffective for larger +groups of people - data that could be needed in a particular time may +be currently locked by another person. + + +On the other hand, databases have been designed mainly with multiuser +access in mind. Even for the simplest version locking at a particular table +row's level is possible, which enables easy sharing of table data. + + + + +Security + +Securing a spreadsheet or its particular sections with a password is only +symbolic activity. After providing a spreadsheet file in a computer network, +every person being able to copy the file can try to break the password. +It is sometimes not so hard as the password is stored in the same file +as the spreadsheet. + + +Features for edit locking or copy locking of a spreadsheet (or its part) +is equally easy to break. + + +Databases (except these saved in a file instead of a server) do not need +to be available in a single file. You're accessing them using a computer +network, usually by providing a user name and a password. You are gaining +access only to these areas (tables, forms or even selected rows and columns) +which were assigned to you by setting appropriate access rights. + + +Access rights can affect ability of data editing or only data reading. +If any data is not avaliable to you, it will not be even sent to your +computer, so there is no possibility of making a copy of the data in such +easy way as in case of spreadsheet files. + + + + + + + +Database Design + +Database design needs careful planning. Note that Contacts +table redesign proposed in section 1.2 can generate problems when the +table is filled with data. For example, renaming a field is a simple task, +but splitting the Address field into separate fields +requires careful and tedious work. + + +To avoid such situations, rethink your database project +before you create it in your computer, and before you and others will start +to use it. Thus, by investing some time initially, you will most probably +save your time on everyday use. + + + + +Who Needs a Database? + +Stick to spreadsheets if: + +Your needs are limited and your data will never grow to +large volumes (can you actually forecast that now?) + + +You are unable to acquire the methodology of database construction. +You may however consider either outsourcing this task to someone else +or using simpler tools. + + +You use complicated spreadsheets and you lack time or money to switch +to databases. Think or ask someone whether this does not lead down a +blind alley. Don't count on magical tools that would change your +spreadsheet (regardless how well made) into a database. + + + + +Consider using databases if: +Your data collection expands every week. + +You often create new spreadsheets, copy within these and you feel +that this work is getting more and more tedious. In this case the +effort of switching to databases easily pays off. + + +You create reports and statements for which the table view of +a spreadsheet is not suitable. You can then consider switch +to using a database with form views. + + + + + +Database Creation Software + +So far you have learnt the general characteristics of databases without +going into much detail about specific applications for designing them. + + +The first databases were built together with large mainframe computers +in the 60s, ⪚ IBM System/360. Those were not the days of PCs, +therefore these databases required a highly specialized personnel. +Although the old computers' hardware was unreliable, they were immeasurably +slower and had less storage capacity, one feature of databases still remains +most attractive: the data access by many users through a network. + + +In the 70s scientists formed the theory of relational databases +(terms like: table, record, +column (field) and relationality +and many others). +On the basis of this theory IBM DB2 and Oracle databases were created, +which have been developed and used till today. In the late 70s the first +PCs were constructed. Their users could (gradually) utilize many types of +applications, including those for database construction. + +When it comes to large databases in companies, the situation +hasn't changed: +they still require powerful computers or computer complexes called +clusters. This goes, however, beyond the topic +of this manual. + + +In the area of "accessible" databases with graphic user interface +for PCs you can choose from the following: + + + + +DBase +- a tool for databases operation for DOS popular in the 80s. Files in DBase format +are still used in some specific cases due to their simplicity. + + +FoxPro +- an application similar to DBase (early 90s). After being taken over by +Microsoft, graphic user interfaces were introduced and therefore it is +used for creating databases on PCs. This product is still offered, though +seems a bit obsolete. + + +Microsoft Access +- an application for databases (data and graphic interface design) with many +simplifications, therefore suitable for beginners, designed in the late 80s, +based on 16-Bit Architecture. This product is offered and widely used till today, especially +by small companies, where efficiency and multiuser requirements are not very demanding. + + +FileMaker +- popular application similar to MS Access in simplicity, operating on Windows +and Macintosh platforms, offered since 1985. + + +&kexi; +- a multiplatform application (Unix/Linux, Windows, Mac OS X) designed in 2003, +developed according to OpenSource principles, part of the global +K Desktop Environment project, +&ie; graphic environment for Unix/Linux systems. A significant contributor +to &kexi;'s development is the OpenOffice Poland company. + + + + + + diff --git a/doc/kexi/designingforms.docbook b/doc/kexi/designingforms.docbook new file mode 100644 index 000000000..b205fe712 --- /dev/null +++ b/doc/kexi/designingforms.docbook @@ -0,0 +1,1480 @@ + + + + Designing Forms + + + Most important terms + + + Form + + + A window provided for easy data entry and presentation on the + computer screen. + + + + + Form's data source + + + Database table or query providing data displayed in the + form. The data source is needed because forms itself are only + tools for displaying and entering data, + while tables and queries are the source of data. New, empty + forms have no data source assigned, so they are not displaying + any data from your database unless you assign a data source + to them. + + + + + Form field + + + Direct equivalent of a column in a table or query. Most frequently + used are fields for displaying text and numbers. Entering a new + value or changing the existing value of such a field causes a change + in the bound table or query column (after accepting the change). + + + + + Form design + + + Tasks you are performing to define the appearance and functions of + the form. To do this, you need to provide + data source, + insert form fields + of various types and place them at the appropriate location. + + + + + Form widget + + Form's element. Main widget types are: + + + + Widgets displaying information, ⪚ a text box or an image box. Each + widget of this type can be bound to a data + source field (a table or a query column). Therefore, such widgets + are called in short form fields. + + + + + Widgets able to perform a specified action, ⪚ a push button + that can close the current form. Within other applications this + widget type is sometimes called form control + because it can perform previously defined action of + controlling your database application's + behavior. + + + + + Other widgets allowing to enrich a form's appearance, ⪚ + a line widget can visually separate two form + areas. + + + + + + + Container widget + + + A widget that can contain other widgets within + its area. For example, frame widget or tab widget are containers. + The form's surface itself is a container as well. A command button cannot + be called as container because it is not possible to insert a widget + inside it. In more complex cases, container widgets can be inserted + inside a container, so nesting is possible. + + + + + + + + + Forms versus tables + + In chapter + 5.2 you learned about how to enter data directly into tables using their + data sheet view. However, in many cases forms are better suited for data + entry: + + + + + A table can contain too many columns to display them on your + screen. A form can display such a data using multiple rows. + + + + + A form allows to visually split data fields + into logical groups, thus increasing readability. Labels with + additional information can be inserted to give users more hints + on how to use the form or what given data fields mean. + + + + + Command buttons can be used within forms for commonly used commands + so users can use forms in a similar way as a standalone applications they + know. + + + + In data sheet view displaying multi-row data text + fields or images + is as easy as within forms. + + + + + + + Working with form design + As with table or query design, you are able to use Data View + and Design View. Form designing is performed in + Design View. We will often refer to the form design window as to + Form Designer. + + + + To create a new empty form, select + Insert + Form + from the Menubar. Optionally, you can use + + New Form + command from drop-down button on the Project Navigator's + toolbar or Create Object: Form command from the context menu. + + + + A new frame will appear, you can resize the form by moving the + borders. The form is covered with a grid which simplifies + accurate positioning of the widgets. + + + + + As with table design, Form Designer provides + Property pane. To save some space on the screen, + the pane has three tabs related to the currently + selected form: + + + + The Properties tab + + Contains a list of properties for the currently selected widget. + + + + + + The Data source tab + + + + Contains properties related specifically to the data source + of the currently selected widget or the form itself. + + + + + + + The Widgets tab + + + + Contains a hierarchy of all widgets of the form. The list simplifies + widgets lookup by name and navigation between them. + + + + + + There is information about currently selected widget's name and type displayed + on the first and second tab. + + Additional toolbars are also available: + + + + The Widgets toolbar used for inserting new widgets + into the form + + + + + The Format toolbar used to format form's elements (⪚ + adjusting widget's size, grouping). Formatting commands are also available + in the Format menu. More about these commands can be found + in . + + + + + + + + Using the <guilabel>Widgets</guilabel> tab + + The Widgets tab in the Property pane provides + a list of form widgets and their hierarchy. Each widget is presented + within the hierarchy beside other widgets being on the same level + (the same parent container). Child widgets (inside containers) are + presented using indented names. + + + + Each widget has displayed its name and type. The type has also an icon + displayed - the same as the one displayed on the toolbar used while + form designing is performed. + + + + + + Changing the current selection on the list causes appropriate selection + on the designed form. This allows for easier widget lookup by name and + easier navigation. For example, it is possible to select a widget by + name, and then switch to the Properties tab to change the + widget's properties. + + + + Keeping the Ctrl key pressed while an item on the + widgets list is being selected allows to select multiple widgets at a time. + Keeping the Shift key pressed allows to select entire lists + of widgets. + + + + + + Giving widgets reasonable names can be useful but is not mandatory. Note + that widget's name is a property that is not visible to the user of your form. + Users will only see a widget text, provided by Text property + or similar. + + + + + Inserting widgets - text fields + + Let's create a form providing information about persons, i.e. a form connected + it with Persons table. + + + If the form being designed should present data obtained from the database, + you need to place appropriate fields + on it. To do this, use the buttons on the Widgets toolbar. Each button corresponds to a single widget type. + + + + + Click + Text Box button on the Widgets toolbar. + + + + + Click on the form surface with the left mouse + button. A new text box widget will be placed in the point where you clicked. + Before you release you can drag your mouse to specify a desired size for the widget. + + + + + If needed, move the inserted widget using drag & drop to a desired + position. You can resize the widget afterwards by dragging one of the + small boxes appearing near its corners. Note that the boxes are only + visible when the widget is selected. If you select another widget or the + form surface, the boxes disappear. + + + + Click the Text Box toolbar button again and click + on the form surface to insert another widget. Repeat this action once + again until you get three text boxes inserted in your form. For sake of + simplicity we will limit ourselves to three data + fields. + + + + + + + + There is a context menu available in form's design mode, activated by a + right mouse button click the desired widget + or the form's surface. The menu offers commands like + Cut, + Copy, + Paste, + Delete + and other, more complex. Many of the commands are also provided in the + Menubar, usually Edit. + Keyboard shortcuts are also available for these commands. Some of the + commands are only available for certain types of widgets. + + + + + The commands + Cut, + Copy and + Paste + makes it possible to move or copy widgets between forms, even between separate + database projects. + + + + + Holding the Ctrl key down while clicking a widget allows to select + multiple widgets. + + + + + Instead of using + Copy + and + Paste + commands, to duplicate a widget within the same form you can hold down the + Ctrl key while moving the widget. After the Ctrl + key is released, the dragged widget will not be moved but copied in the new location. + + + + + + + + Assigning data sources + + The fields you inserted + have no data source assigned yet, + so these are not able to display information from the database. To assign data + source, use the + Data Source tab of the Property pane. + + + The very first step is to specify the form's data source, + i.e. a place the displayed data will be fetched from. As mentioned above, you + will use table persons as a + data source + for your new form. + + + + Click on the form's surface, as you will alter its properties. + + + + Switch to the + Data Source tab and enter persons + table name in the Form's data source drop down list. + Alternatively, you can select this name from the drop down list. + + + + + + You have assigned form's data source. Now you need to do specify + widget's data source. + + + + Click the first text field widget at the top of the form. + + + + In the Data Source + tab of the property pane enter field name name in the + Widget's data source drop down list. Alternatively, you can select + this name from the drop down list. + + + + + Click on next text field widget and enter surname as the data source. + + + + Enter data sources for street, house_number + and city text fields + in a similar way. + + + + + You can now save the form's design (this is not mandatory to test the + form in action). To save, click the + + Save object changes toolbar button or use the + CtrlS + File + Save + menu command. Upon saving you will be asked for entering the form's name. Enter + Persons as caption and click the OK + button. The form's name will be filled automatically. + + + This is the right moment for testing your form. Click the + Switch to data view toolbar button. Unless you made a + mistake while entering data sources, you should see + form's fields filled + with data from the persons table. + + + + + + + If you want to remove widget's data source + assignment for a form widget, you can use + Clear widget's data source button near + the Widet's data source drop down list. Similarly, you can use the + + Clear form's data source button near the + Form's data source drop down list. + + + + + Use the + Go to selected form's data source button to select + appropriate table or query in the Project Navigator, + so you can quickly open a table or query being the + data source + of the form. + + + + + + + + + Inserting text labels + + To make it easier for the form's user to identify the meaning of every field + widget, these should have added text labels with appropriate titles. To + create text labels the + Label widget is used. + + + Insert three text label widgets onto the form, placing them on the left + side of the text fields (or on the right hand if your operating system + uses right-to-left layout). On inserting a new label, a text cursor + appears at the location where you can enter the desired title. Enter consecutively: + Name, Surname and Street. Additionally, + on the top of the form insert another label displaying name of the form, + i.e. Persons. Enlarge this label's size and and increase the font size using + + FormatFont... + + menu command. + + + + + + Actions + + An Action is a single activity isolated in the application, + available for the user to execute. It can also be executed automatically as a + reaction for a given event (⪚ after opening a form). + + + + Assigning actions to form buttons + + Many actions can be assigned to form button. The assigned action is executed + after button is clicked. + + To assign action: + + + Switch to form's Design view if you have not done yet. + + + + Select the existing button widget by clicking on it or put a new button + widget onto the form. If you inserted a new button, enter its title and + press Enter key. + + + + + Click the button widget with the right mouse + button to display the context menu. + + + + + From the context menu select + + Assign action... command. + + + + + An Assigning Action to Command Button dialog window + will appear presenting a list of available actions. One of the actions + is selected if the widget already has action assigned. Otherwise the + Action type drop down list has the No type + item selected. + + + + + From the Action type drop down list select + Application item. Available application-wide actions + will be listed. + + + + Select one of the actions on the list (⪚ Delete Row). + + + + Click the OK button or press + the Enter key to + accept your selection. + + + + + + After switching to the form's data view you can try + whether the action works. For example, if you assigned Delete Row + action, clicking the button, the current database row will be deleted, similarly + to executing CtrlDeleteEditDelete Row + menu command (depending on your settings you may be asked to confirm the removal). + + + + + + + To remove an action assignment, select No type item from + the Action type drop down list of the + Assigning Action to Command Button dialog window. + + + + + Actions only work in the form's data view. Not every + action's assignment is reasonable. For example, the + Font... action is available in data view, but + only if you have a widget selected in the Design view. If you + make changes to the font settings the changes are applied to the text + of that selected widget. + + + + + + + + + Widget layouts + + In most cases form widgets should be conveniently arranged and aligned. + Positioning, aligning and resizing widgets by hand is not easy and these + parameters are not adjusted when the user resizes the form. In fact the + situation is even worse because you cannot assume a given form requires + a given space because users have different font sizes and display resolutions. + + + + Using special tool called widget layouts can help to automatically lay + out the form widgets. Widget layout is an action of grouping two or more + widgets so these are well positioned and have appropriate sizes. + + + Using layout in a form improves alignment. Moreover, its space is + better used. Text fields are closer to each other, spacing is constant. + + + There are two methods to create widget layout. + + + + Select two or more widgets that should be placed in a common layout, + and select one of the layout types from the context menu item + + Layout Widgets + . + + + + + Click a container widget (or a form surface itself), where widgets are + inserted and select one of the layout types from the context menu item + Layout Widgets + . + All widgets existing within the container or within the + form, being on the same level will be put into a single common layout. + + + + + In each of these cases you can also use + FormatLayout Widgets + menu. + + + + Widget layout is presented in the design view using a blue, green or + red box drawn with a broken line. This line is displayed only in the + form's design view. + + + Besides the grid type, there are other widget layout types. + + + vertical + + Vertical widget layout + + + + + horizontal + + Horizontal widget layout + + + + + + + + Springs in widget layouts + + A spring in widget layouts is a special, invisible element allowing + to adjust widget's position and size within layouts. Such a spring + stretches or squeezes a widget on the right, top, bottom or left hand, + so it can have desired size and position. + + To use a spring: + + + + Select spring icon on the + Widgets toolbar. + + + + Click on a selected point of the form to insert the spring. + + + + + To make springs work you need to create a global widget layout, i.e. a + layout for the form itself. Then, springs can use edges of the form as + a boundary for expanding. + + + + + + Removing widget layouts + + To remove widget layout without removing widgets, perform one of + these actions: + + + + + Click with the right mouse button on + the layout's border and select Break Layout + command from the context menu. + + + + + Click with the left mouse button on + the layout's border and select + FormatBreak Layout + menu command. + + + + + + Removing widget layout using the Break Layout + command will not remove widgets contained in the layout. If you want to + remove the widgets as well, just select the layout by clicking on its + border and press Delete key or use + Edit + Delete + menu command or context menu command. + + + + + + Size policies for widgets within a layout + + Instead of setting a fixed size for your widgets, in &kexi; you can + choose between various widget's size policies. A size policy + is a flexible strategy for controlling how a widget is stretched (or shrunk) + depending on other neighbouring widgets and space available within the form. + + + After putting widgets into a layout, typically each widget + gets a proportional (Preferred) size policy. These widgets + will be automatically resized with preferred settings, depending on their + type and size of the entire layout itself. For example, three buttons put + into the horizontal layout will be resized to fit their visible text. + + For each widget inserted into the form, there are settings for size policy + available in the Property Editor. The settings are presented + as a group of properties called Size Policy. + + + This group of properties contains: + + + Horizontal Size Policy + + defining horizontal size of the widget, + + + + Vertical Size Policy + + defining vertical size of the widget, + + + + Horizontal Stretch + + + defining strength of activity of the + Horizontal Size Policy, + + + + + Vertical Stretch + + + defining strength of activity of the + Vertical Size Policy + + + + + + + Values of size policies + + The following values are available in the drop down list for + Horizontal Size Policy and + Vertical Size Policy properties visible + in the Property Editor: + + + + Fixed + + + this value means that the widget cannot be automatically resized; it + should maintain the constant size defined at design time (width or height), + + + + + Minimum + + + this value means that the original size of the widget is set as minimal + allowed, it is sufficient and there is no need for expanding the widget, + but the widget will be expanded if needed. This type of policy can be used + to force the widget to be expanded to the whole width or height, especially + if you set a stretch value greater than 0. + + + + + + Maximum + + + this value means that the original size of the widget is set as maximum + allowed and can be decreased without breaking the widget's usability + and readability if other widgets need more space, + + + + + Preferred + + + this value means that the original size of the widget is the best and + preferred; the widget can be shrunk or expanded however and it + will stay readable, + + + + + + Expanding + + + this value means that the original size of the widget is reasonable but + the widget can be also shrunk; it can be expanded as well to take + as much space as possible, + + + + + Minimum Expanding + + + this value means that the original size of the widget is allowed; it + can be expanded to take as much space as possible, + + + + + Ignored + + + this value means that the original size of the widget is ignored; the + widget can be expanded to take as much space as possible but other + widgets usually will not allow for that + + + + + + Different widget types have various default size policies; for example, + button widgets have default size policy set to Minimum (in both directions), + while text field widgets have vertical size policy set to Fixed. + + + The most frequently used size policies are Preferred, + Minimum and Maximum. + + + + + Vertical and horizontal stretch + + The Vertical Stretch and Horizontal Stretch + properties accept integer values greater than or equal to 0. These properties allow to fine-tune the + behavior of size policies. The default value for the properties is 0. + A higher value of the stretch means that the widget will be expanded + more than widgets for which a lower stretch value is set. + + + + + + + + Setting widgets size and position by hand + In case when your form has no main layout set for auto-positioning and + auto-resizing its widgets, you will probably want to modify the position and size of widgets so the form can look cleaner and be easier to use. The &kexi; form + designer simplifies this task by offering the following groups of commands: + + + + + Adjusting sizes of selected widgets. The commands are available in the + FormatAdjust Widgets Size + submenu of the menubar and in the + Adjust Widgets Size + submenu of the context menu. The toolbar's drop down + button Adjust Widgets Size + is also available. + + + + To Fit + + + The size of the selected widgets will be altered so each widget will be + resized to its preferred size and its contents; for example, a text + label's size will be changed to fit its text. The position of the widgets + will not be changed. + + + + + To Grid + + + The size of the selected widgets will be altered so each widget's corner + will be placed on the form's (or other container's) grid point. + The widget's position can be slightly altered. + + + + + To Shortest + + + The height of the selected widgets will be altered so that each of them + will have the same height as the shortest one. The position of the widgets + will not be changed. + + + + + To Tallest + + + The height of the selected widgets will be altered so that each of them + will have the same height as the tallest one. The position of the widgets + will not be changed. + + + + + To Narrowest + + + The width of the selected widgets will be altered so that each of them + will have the same height as the narrowest one. The position of the + widgets will not be changed. + + + + + To Widest + + + The width of the selected widgets will be altered so that each of them + will have the same height as the widest one. The position of the widgets + will not be changed. + + + + + + + + Aligning positions of the selected widgets. The commands are available + in the + FormatAlign Widgets Position + submenu of the menubar and in the + Align Widgets Position + submenu of the context menu. The toolbar's drop + down button + Align Widgets Position is also available. + + + + To Left + + + All the selected widgets' left positions will be moved to the + position of the leftmost widget's left edge. + + + + + To Right + + + All the selected widgets' right positions will be moved to the + position of the rightmost widget's right edge. + + + + + To Top + + + All the selected widgets' top positions will be moved to the + position of the uppermost widget's upper edge. + + + + + To Bottom + + + All the selected widgets' bottom positions will be moved to the + position of the bottommost widget's bottom edge. + + + + + To Grid + + + All the selected widgets' top-left corners will be moved so that + they are positioned in the nearest grid point. + + + + + None of the above commands resizes the widgets. + + + + There are also additional commands available: + Bring Widget to Front + (i.e. above all other widgets) and + Send Widget to Back (i.e. below all + other widgets). These two commands are rarely used, as it is not + common to place one widget on top of an other (except when a + container widget contains other widget inside). Also note that clicking + a widget with a mouse button is enough to bring the widget to front. + + + + + Setting the tab order + + A widget's focus determines that widget's activity available using keyboard. + Focus is related to widgets displayed in the form's data view. Exactly one + form widget can have focus at the same time. The most frequent use of focus + is text entry (when a given text field is active, i.e. it is focused). + An other example is a button widget - when focused, it is possible to + press it using the Enter + or Space key instead of a mouse button. + + + There are a few methods of making the widgets active (moving the focus + to the widget): clicking with a mouse button, rotating the mouse wheel + over the widget, or using the Tab + key. The latter method is often used because of its speed and convenience + for users. Availability of the focusing methods is controlled by + Focus Policy property of a given widget. + + + There is a relationship between focusing (activating) widgets using Tab + key and tab order setting of a form. After pressing the Tab key, the + next widget should be focused, so the form should know about the tab order. + + To alter tab order for a form's widget: + + + Switch to design view of the form. + + + + Execute EditEdit Tab Order... + menu command. The Edit Tab Order dialog will appear with settings for this form. + + + + The window contains a list with two columns: the first column displays + widget names, the second - types of the widgets. To make it easier to + recognize meaning of the names and types for the user, icons related + to the types are also displayed. The list contains only widgets having + focus policy allowing to use the Tab key. The window + allows you to change the tab order or set the automatic tab order. + + + + To change tab order, either: + + + + Click a selected widget name in the widgets list and drag it + to a desired position (up or down) using the mouse. + + + + + Click a selected widget name on the widgets list and use + Move Up or Move Down + buttons, to move the widgets to a desired position. + + + + + Click the Handle tab order automatically check box to set the + automatic tab order for the form. If this option has been switched + on, any changes made to the list of widgets by hand are not taken + into account - &kexi; will be handling the tab orders on its own. + The automatic ordering means that the top-left widget will be focused + first (or the top-right if your operating system uses right-to-left + layout), and the order comes from the left to right (from the right + to left, respectively) and from the top to bottom. + + + + + + + + Click the OK button to accept the changes or Cancel button to dismiss + the changes. + + + + + diff --git a/doc/kexi/enteringdataintotables.docbook b/doc/kexi/enteringdataintotables.docbook new file mode 100644 index 000000000..d65c17d34 --- /dev/null +++ b/doc/kexi/enteringdataintotables.docbook @@ -0,0 +1,130 @@ + + + + Entering Data Into Tables + + You have designed the two tables Persons and + phone_numbers. None of them contain any data yet. You can + enter some, and in this chapter you will learn how to do this fast and effectively. + + + + + Start with the persons table. Open it in Data View using the Project Navigtor's context menu. + The current cell is marked with + (usually black) thicker border, a cell cursor. The contents + of the cell, if present, are highlighted with a different color. The current + row, i.e. the one you have placed your rectangular cursor in, is marked + on the left hand with an arrow symbol. + + + + You can navigate through table cells using the arrow keys, Page Down, + Page Down, Home, End keys; you can also + click with the mouse in a cell to select it. + + + Initially, after opening the table Persons, the cursor is placed in + the id column. The column has autonumber property defined, + marked with blue (autonumber) text in the last row. It + means you do not have to enter values there by hand when entering data for a new + row because the cell will be filled automatically with successive numbers. + + + + + + Inserting new rows and entering data for them in &kexi; is different from + the way of doing this in spreadsheets. To enter data for a new row, you need + to use the arrow keys or mouse, to move your cursor to the special empty last + row marked with a plus + sign. Place your cursor in the (second) name column and enter a + person's name. Also enter surname, street, house number and city. When + done, move the cell cursor to the last empty row either by using the + Arrow Down key or by clicking in the last + row with the mouse to append a new row. + + + Details About Actions Available While Entering Data Into Tables + + + + As soon as you enter the first character, the current row is being edited. A pencil symbol appears on the left side of the data table. + + + + + Double clicking a cell with the &LMB; or pressing Enter or the F2 key also starts + editing of the current row. + + + + + Pressing the Esc key when the contents of a cell is edited + cancels changes made to this cell. However, the pencil + + symbol will not disappear because you can still move to a different cell + of the edited row to change its contents. To + cancel changes made to the entire edited row, press the + Esc key again. + + + + + Instead of pressing the Esc key, you can click the + Cancel + toolbar button or select + DataCancel Row Changes + from the menubar. + + + + + Click the ShiftEnter + keys to accept changes made to all cells in the currently edited row. You can also click + OK toolbar + button or select DataSave Row + from the menubar. + + + + + + + + Fill the phone_numbers table with data. In the persons column you + need to provide a number of the person existing in the persons + table. + + + + + diff --git a/doc/kexi/enteringdatausingforms.docbook b/doc/kexi/enteringdatausingforms.docbook new file mode 100644 index 000000000..08fcb627f --- /dev/null +++ b/doc/kexi/enteringdatausingforms.docbook @@ -0,0 +1,33 @@ + + + + Entering Data Using Forms + + Data entering and editing is usually the task of the user of the database application. The designer of the database should check the form in terms of valid + data entry, and see whether the form works as expected. + + + To test your form, switch to its data view. A single database row (record) + of data will be displayed and a text cursor will be set inside the first + data field. You can move between fields using the &LMB; or the Tab and + ShiftTab + keys. While editing, there will be a + + pencil icon visible near the record navigator. After entering the row's (record) + data you can press the + ShiftEnter + keys or click the + OK + toolbar button to accept changes made to the current row. Clicking the + Cancel + toolbar button discards changes made to the current row and restores the contents of + the data fields. You can use the + record navigator's button to move to a new row. All the navigator's functions are + also available in a similar way as in the data table view + . + + + diff --git a/doc/kexi/index.docbook b/doc/kexi/index.docbook new file mode 100644 index 000000000..04692e4c5 --- /dev/null +++ b/doc/kexi/index.docbook @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + + + + + + + +]> + + + + + + The &kexi; Handbook + + + + + + Martin + A. + Ellis + + martin.ellis@kdemail.net + + + + Jaroslaw + Staniek + + js@iidea.pl + + + + + + 2004 + 2005 + 2006 + Jaroslaw Staniek + Martin Ellis + + + + +&FDLNotice; + + + +2006-09-07 +1.6 + + + + + &kexi; is the application for creating databases and for data management + in the &koffice; productivity suite. + + + + + + KDE + KOffice + Kexi + database + + + + + + +&intro; +&basics; +&building; +&configuration; +&menus; +&credits; +&database; +&comparing; + +&documentation.index; + + + diff --git a/doc/kexi/intro.docbook b/doc/kexi/intro.docbook new file mode 100644 index 000000000..dc62ba008 --- /dev/null +++ b/doc/kexi/intro.docbook @@ -0,0 +1,78 @@ + + + +Introduction + + + + + &kexi; is a database management application. It can be used for + creating databases, inserting data, performing queries, and processing + data. Forms can be created to provide a custom interface to your + data. All database objects - tables, queries and forms - are stored in + the database, making it easy to share data and design. + + + + &kexi; is part of the &koffice; productivity suite for the K Desktop + Environment. + + + + In addition to storing your &kexi; databases in files, &kexi; can also + store your data on a database server. Using + a database server allows you to share your database with other + people, and also allows more than one person to use the database at + one time. The following database servers are supported by &kexi;: + + + + MySQL (See http://www.mysql.com/) + + + + + PostgreSQL (See http://www.postgresql.org/) + + + + + + + More information about &kexi; can be found at the &kexi; page on the + &koffice; website + at http://www.koffice.org/kexi/, + and on the website for &kexi; itself + at http://www.kexi-project.org/about.html. + + + + If you have any questions about &kexi;, there are two mailing lists + you can use. The Kexi user mailing + list can be used to ask questions about using &kexi; or about + the &kexi; project. The Kexi + development mailing list can be used to ask questions about + the development of &kexi;. Further information on how to subscribe + to these lists, together with a few other ways of making contact with + &kexi; developers, can be found at: + + + + http://www.kexi-project.org/support.html + + + + + + diff --git a/doc/kexi/menus.docbook b/doc/kexi/menus.docbook new file mode 100644 index 000000000..8428fcaf5 --- /dev/null +++ b/doc/kexi/menus.docbook @@ -0,0 +1,701 @@ + + + + + + + Anne-Marie + Mahfouf + +
    annemarie.mahfouf@free.fr
    +
    +
    + + + Jarosław + Staniek + + js@iidea.pl + + +
    +
    + Command Reference + + + The <guimenu>File</guimenu> Menu + + + + + + &Ctrl;N + + File + New... + + Create a new project. Currently opened project is not affected. + + + + + + &Ctrl;O + + File + Open... + + Open an existing project. Currently opened project is not affected. + + + + + + File + Download Example Databases... + + + + Open the KNewStuff dialog which + allows you to download example databases via the + Internet. This is currently not available for MS Windows. + + + + + + + + &Ctrl;S + + File + Save + + + + Saves object changes from the active window. + + + + + + + File + Import + Data Table... + + + + Imports table data from a file in Comma Separated Value (CSV) format. + + + + + + + File + Export + Table or Query as Data Table... + + + + Export data from the active table or query data to a file in Comma Separated Value (CSV) format. + + + + + + +&Ctrl;P + +File +Print... + +Print data from the active (opened) table or query. +Note for KDE: Make sure the proper print system is selected in the +Print system currently used: section. This option can +be seen after clicking on the Options>> button. + + + + +File +Print Preview... + +Show print preview for the active (opened) table or query. + + + + +File +Page Setup... + +Set Font... for the Page title:, +Change... Page Size & Margins and +Add table borders. + + + + + + + &Ctrl;W + + File + Close Project + + + + Close the currently opened project but leave &kexi; running. + + + + + + + + + &Ctrl;Q + + File + Quit + + + + Quit &kexi;. + + + + + + + +The <guimenu>Edit</guimenu> Menu + + + + + +&Ctrl;Z + +Edit +Undo + +Undoes an action. You can revert to the state that existed +before your last change. + + + + + +&Ctrl; &Shift; Z + +Edit +Redo + +Undoes an undo. Reverse the action of Undo. This will restore the change +you originally made. + + + + + +&Ctrl;X + +Edit +Cut + +Remove currently selected text and put it on the clipboard. +This command is unavailable if there is no text currently selected. If this action is used +in the Form Designer, currently selected widget or group of widgets are removed and put on the clipboard. + + + + + + +&Ctrl;C + +Edit +Copy + +Copy currently selected text onto the clipboard. +This command is unavailable if there is no text currently selected. If this action is used +in the Form Designer, currently selected widget or group of widgets are copied onto +the clipboard. + + + + + +&Ctrl;V + +Edit +Paste + +Copy of the clipboard contents at the insertion point. +This command is unavailable if the clipboard is empty. If this action is used +in the Form Designer and the clipboard contains copied widgets, they will be inserted +onto the form. + + + + +Edit +Copy Special +Table or Query As Data Table... + +Copy selected table or query data to clipboard. + + + + +Edit +Paste Special +As Data Table... + +Paste clipboard data to a new table within the current project. + + + + + + +&Ctrl;A + +Edit +Select All + +Select all characters in the edited text box or all widgets in the Form Designer. + + + + + +Edit +Delete + +Delete the currently selected object. + + + + + +&Ctrl;Delete + +Edit +Delete Row + +Delete currently selected row from a table. + + + + + + +The <guimenu>View</guimenu> Menu + + + + +F6 +View +Data View + +Switch to Data View. + + + + +F7 +View +Design View + +Switch to Design View. + + + + +F8 +View +Text View + +Switch to Text View. Currently, only available for database queries +and means switching to the SQL View of the Query Designer. + + + + + +&Alt;1 + +View +Project Navigator + +Go to Project Navigator pane. + + + + + +&Alt;2 + +View +Main Area + +Go to the main area. + + + + + +&Alt;3 + +View +Property Editor + +Go to the Property Editor pane. + + + + +View +Show/Hide Properties + +Display or hide the Property Editor pane. + + + + +View +Show/Hide Project Navigator + +Display or hide the Project Navigator pane. + + + + + + +The <guimenu>Insert</guimenu> Menu + + + + +Insert +Table... + +Inserts a new, empty table design without saving it. +The Table Designer window will appear. + + + + +Insert +Query... + +Inserts a new, empty query design without saving it. +The Query Designer window will appear. + + + + +Insert +Form... + +Inserts a new, empty form design without saving it. +The Form Designer window will appear. + + + + +Insert +Script... + +Inserts a new, empty script design without saving it. +The Script Editor window will appear. The command is available only if scripting +is enabled in &kexi;. + + + + + + +The <guimenu>Format</guimenu> Menu + + + + +Format +Font... + +Change font for selected object. +Can be used in the Form Designer to set widget's font. + + + + + + +Format +Snap to Grid + +If this is enabled, when moving widgets on the form surface +the top left corner of the widget will snap or move to the nearest grid point. +This does reduce your freedom to freely position widgets on the form surface, +however it also helps to line up widgets precisely. + + + + +Format +Layout Widgets + +Creates a new layout for widgets. Widgets can be layed out Horizontally, Vertically, In Grid, Horizontally in Splitter, Vertically in Splitter. + + + + +Format +Break Layout + +Breaks the currently selected layout. + + + + +Format +Align Widgets Position + +Align the currently selected widgets' position: +To Left, To Right, To Top, To Bottom, To Grid. + + + + +Format +Align Widgets Size + +Align the currently selected widgets' size: +To Fit, To Grid, To Shortest, To Tallest, To Narrowest, To Widest. + + + + +Format +Bring Widget to Front + +Bring the currently selected widgets to front. + + + + +Format +Send Widget to Back + +Send the currently selected widgets to back. + + + + + + +The <guimenu>Data</guimenu> Menu + + + + + + +&Shift;Return + +Data +Save Row + +Save currently selected table row's data. + + + + +Data +Cancel Row Changes + +Cancel changes made to currently selected table row. + + + + +Data +Sort +Ascending + +Sorts data in ascending order (from A to Z and from 0 to 9). +Data from selected column is used for sorting. + + + + +Data +Sort +Descending + +Sorts data in descending (from Z to A and from 9 to 0). +Data from selected column is used for sorting. + + + + + + +The <guimenu>Tools</guimenu> Menu + + + + +Tools +Import Database... + +Opens the Data Base Importing Wizard +to import an existing database into a &kexi; database. + + + + +Tools +Execute Script File... + +Displays the file dialog +to open an existing script file. + + + + +Tools +Scripts Manager... + +Displays &kexi;'s Scripts Manager +dialog to execute, load, unload, install, unistall or download scripts. + + + + +Tools +Scripts + +Executes an already loaded script. + + + + + + +The <guimenu>Window</guimenu> Menu + + + + + +&Ctrl;W + +Window +Close + +Close the active window. + + + + +Window +Close All + +Close all opened windows. + + + + +Window +MDI Mode +Childframe Mode + +Switch to Childframe user interface mode. + + + + +Window +MDI Mode +IDEAl Mode + +Switch to IDEAl user interface mode. + + + + + +&Alt;Right + +Window +Next Window + +Switch to the next window. + + + + + +&Alt;Left + +Window +Previous Window + +Switch to the previous window. + + + +The last items in this menu show the currently opened window names. + + + + The <guimenu>Settings</guimenu> Menu + + + + + + + Settings + Toolbars + + + + Show or hide one of the toolbars. + + + + + + + Settings + Configure Shortcuts... + + + + Configure the keyboard shortcuts used by &kexi;. + See the section on configuring shortcuts for more + details. + + + + + + + + + The <guimenu>Help</guimenu> Menu + +&help.menu.documentation; + + +
    diff --git a/doc/kexi/querydesigning.docbook b/doc/kexi/querydesigning.docbook new file mode 100644 index 000000000..5114dbd0a --- /dev/null +++ b/doc/kexi/querydesigning.docbook @@ -0,0 +1,109 @@ + + + + Designing Database Queries + + A database's primary purpose is to store and help extract information + you are looking for. Unlike databases written on a paper sheets, &kexi; + database allows you to specify more search criteria. Results + are returend faster even for large data sets. All this is a power of + databases, however to be able to perform efffective queries + in your database, you need to learn how to tell the database what you are + looking for. + + + With database queries you can limit data coming from a table to a predefined + set of rows and columns as well as dynamically join + data coming from multiple tables. + + + To see how queries work in practice you will create a contacts + query joining data from two tables: persons and + phone_numbers (designed in + chapter 3.1i + + and filled with data in + chapter 3.2 + ). + + + + + Create a new empty query by selecting + InsertQuery from + the menubar. The design window will appear. The window is split into two areas: query + relationships at the top and query columns below. + + + + + + Select the table persons in the drop down list Table: + located at the top of the window and click the Add button. A graphical + representation of the table will appear in the relations area. Do the same for the + phone_numbers table to insert it too, as in the figure below. + + + + + + Add query relationship using mouse drag & drop technique: click the field + id in the table persons table, drag it + and drop into the person field of the phone_numbers + table. This will join both fields by creating a new relationship. + + + + + Double-click the name field in the persons + table, to add the field as a query column. In a similar way, + add surname, street, house_number, + city fields from the persons table and + phone from the phone_numbers table. + + + + + Query design is now ready for testing. Click the + Switch to data view button on the toolbar, to switch from + design to viewing the data provided as query results. + + + + + + Save the query design for later use by clicking the + Save button on the toolbar. You can also use + FileSave + from the menubar or press the CtrlS + keys. Because the query design has not been saved yet, you will be asked to + specify a name for it. Enter Contacts text in the + caption field and click the OK button. + + + + diff --git a/doc/kformula/Makefile.am b/doc/kformula/Makefile.am new file mode 100644 index 000000000..085981d9b --- /dev/null +++ b/doc/kformula/Makefile.am @@ -0,0 +1,4 @@ + +KDE_LANG = en +KDE_DOCS = AUTO + diff --git a/doc/kformula/ambiguous-string.png b/doc/kformula/ambiguous-string.png new file mode 100644 index 0000000000000000000000000000000000000000..83aafdc57c2f69ac293a96191569cdce04a86255 GIT binary patch literal 8692 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 literal 0 HcmV?d00001 diff --git a/doc/kformula/correct_index_location.png b/doc/kformula/correct_index_location.png new file mode 100644 index 0000000000000000000000000000000000000000..65f07d186facf9d52a75b356b4629bb99ec899e3 GIT binary patch literal 1185 zcmeAS@N?&q;$mQ6;Pv!y2?Ek8K&-&Q3?zO1we~PDFue}&32_B-85tRwn3$NEnORs^ zSXo)w*x1A3sn5P(4sD&=8*pI15)vC5o0*kaR9sYFU;lp;3`hw4`~Uwh82y1UfFl3?{{w@+fB*je{rkuF zA74IydH?qP>zA*eKYjk_;iJ2E?%up{^UCEbXV08HeE9Irojcd9TeoP@qWSaZ&zU=C z)~s1GX3Us6b?W5FlP6A^*w@$B+1V*3Ato#;EF>Z%C@jb?#Lp+l$1A|g4NOpc++2LX zq{qp_2}B&+93aF6LhM}Z?40au9Bi!YtSqc7Ow3G-;4}wJ#VCLgn5t0`6T>B*?IA!# zCM7|B!3>N{%q*;I>>Qk2+&sK|`~vcNwqb2sZoK{W`!B?s|Na3z3Iu=tfGMD0!|HYe zpqa*=E{-7&UWwKapY}D& z+-&EG)ZnK_VrCYzJItIDy|clj+p>PcXU7fk4$}=7v_3ruK32n+n#fS%BRETJ!j_kF zxZl-gocPQld+LN(t^|WXPVEijAh}CQSFbLAU}#{vmW4s)ZN{D^t1i(6mZuoL-eC&Z zRnj>xs#{8$_b@JaTG^&FFD!dzT+pVUbj`?td5HQ*^AohheEQgYhQEN3t{2B^h5?$oMT4mUVKzK-=uo lQag)hvLs|2-(7k>HeOoVa_iJy#cEI-dAjOC|xyk|rgT%bE|acGS65ag%aUdB zvUo|nBw7+JiWUS5bF*__r@wxg`Z75_IX*f*JTyGWALR4+1N{R%Jw0qTyS1&A#bPxy zG%#zK)r@L-CH?7>r=_K(#YM%1g@sfqH8&?WJ1aXgGn0IqoSKrFn3xzJA0PL7Tuf}t zjhi>ZBf>+7A=d)0`4W6D`CRh6;CT*r4to}hIfHS>xVyT!I&VEQ8f|B9heDxjkTwVe z!phpp!qUS0n7Qdu(<8=54jCPS8^HAr=)rVhP;Dq=FGNFA1FQkwskT!^RYiH5vZA6Q zNC5clx0BC>+S~^n)c4p8tXNP;#ZE z?BZpbjXDHb)FUq+nSn!R1YZz*!@}X%YXJ+OvHdl1S%!ER5~!X)4zlB#b|CQqq)0Mr zw0G_+=*}Kv-|E=}Fik6|6c(iwEgANFt%OR&N(B^~)6L?Ce-;?+xl0$1kNqOj3!7#Jprm8K}57nmBHr!X4 zLHSGd*G9T{>GG!^&sdeoYu58x%(z^=pfL0*}&5eH5Xtwfmma!Ux-l)wd zQTjPOi(VSD$vv=a$Ed@tUb15Iz280W7Aiy;PBW+>~f&Qww^Ucn^EIB)S-;z_}1n2Fa(Uzy;i#3;+Xg3D&6Zf8$-`?OW zu_q64$A~Iu5{p?8EfRM>(8!unHBrC&r>;Ws2932h)KZOP={)t6@Ea9$2M$-$`lu8D z>X`Eod=F+aK#tWZ<=g4}^woqM_ueY6`Cj*Rb${WYb=4dMy02orG*$TmqD~Sk0@$1f zakG(Uvhurat-z!ii-XC}{OX{TP`y*L{WD$g^8-3VMV4cKJ&&}0$oc$>58%Vm^U^Nj z`DxZ+omOT&b}Wd`>9?IXZsgj3CY#?ZX)iF3su-EP=dCU2GO7s)3i|;UrXnhOs}lp+ zUX`J=cQmMDRnV8l%zLbmwtEugt;3DpukVnI%+>nQR)KCa`Ti6YWYhjr_V==~EJgBr zWp&BRvbhR00U=v#yAe~UCtk2ZSR80sOPGwd|ShVv61A+o2Ug*glTywZIf-7|7Kpiw|GpA7$ W)3{}0H-NG=vVe;N22Hp3P5K)jW6{q5 literal 0 HcmV?d00001 diff --git a/doc/kformula/file-toolbar.png b/doc/kformula/file-toolbar.png new file mode 100644 index 0000000000000000000000000000000000000000..39ea201d2fec935f5ab34657b7ce03e55846300b GIT binary patch literal 2365 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 LwsO%U^Pv9)TCDgQ literal 0 HcmV?d00001 diff --git a/doc/kformula/green2.png b/doc/kformula/green2.png new file mode 100644 index 0000000000000000000000000000000000000000..132cfb9fc0dd6e84392924830e64268e958a40b9 GIT binary patch literal 6119 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 literal 0 HcmV?d00001 diff --git a/doc/kformula/greens.png b/doc/kformula/greens.png new file mode 100644 index 0000000000000000000000000000000000000000..8f1abfc34183c630bc847130dcd5372ba21e7f24 GIT binary patch literal 2112 zcmV-G2*3Ak@IAtEBL0n?5jg)^?w;kD8O13C5KgN3bhc&!-p zMAR$y19WgEooS@HR|^kF7N)@M+v(9b&O}5LOnEwt3TPhcUM)NzIhX>s?^|se{d7&} zp^DSNslJcfFV($!ZeRh)!W6juwj=UNKY06Oj3r(8JT{p6On`oZ|q= z!gO@|1~U;EjJM~7R+*t48(8uR-9`u3d`$<{rj?|+R|^kF9;SoaS6F_(4Q&fctTitX|i4_Go7b|Oq))1hP9FV*F~09z9Nvev#A9*{gt2e;qtbhwEv z*44&B2fx#yhx?KanrVtucl8Bm0L3PhvewE74@e%SgWK0D9n^g~*!8C;i+!W%mHKum z2~5n}WV)+$R_Dp}rS_#|t(6fTkSt6`x3AG?t+l?*bhXV64G}eNqeGAWdpg)t^5t|F zdvZ)f{mMUxa})`i4NX+B66w>@@1|4Egg<- z|Fd?u8F<*H80CqGx^5;5(>`&h5glfx{Zd`_qi)x^OB$EIthZac2K!MN?oT{CAhUoD zAGiP6S{^qyoFa_f`648XtZ-E(ET>elmG54|d zzo$ds_6;T?>a%`0kKtuJQcj0~sVdYRThM$a$)%$oCQIY;$9l23cy9Rz=rFL)3|Tsa zZokz;v&yaj^B5MQgJJxZP_*utv%f4sYCk|O$KByO&v+-s=?Y!*()j5EOyjtoz zwJgyNW#g86UbpDS#|}P9KnKG*{0vNq+xNOPs>`jb1Q_yk2)gG?3#i^*(?K(R%IVS+ z`~E#U*ySr(ah1m9!+N2);V?>kc7I$dD6F56@}CIdvCMCacmAq>4y!#uWa+r~0<`0gaa0}PYs-LZQu22V6cy#xQITRJAi?$t`WCTg)XE+5uA zHOFW7w^7jRxcUZ@Q_I29ux#}fJq+{MF>ELuqI)nslZUyDuzPDCt+5w$&`htgIxfX- z7V6q~-z|;HNA=Fk@!9=$U0h7txLPQUfh$vRM1Ju_$zv47{f|3dn+GWile4GdlzVg+<~b`l{$=V5Lm?s*FU(XJNpj@B@{+>DM*v3sD|k}B+~cowdn z=PPr3c0V207Fh43#AOQ3uRFHnv015Eh&AuW^DsS;JGqT>IuNkivsAJ<_IMnz>rYL7ET zMctjlM55ykOk0!7wlZ&#Vw1NLc5mIm4X6xK^Ne8Y^0v(rP z*X;6H7MEx0>66ts_v)zwn%<8~uwsE}a~H?5Wg9;8kKLn#NSn4bzHBR!1RI%^py#6o z(DXC?1RXLd_AsDs=c4s)yqZl26*z+{&TsQ=T`t=KG`2u%9%6IfN+t|7G3}S?o?aTJ z5`*!@tGf~>^e2`MBA7mxZGm+Lf6$;ZRw6n)OKASD=`cSyZ%iUUL@*t0-4KAmlk0Fh zC{e~rr9%%u(;w2|aO-9d$lpJGQ^pEIhvzpm*%bTl$n#fgpmjy)Aibd(w)J@HhPHX? z_CS`glG5RauH^l@Qi{RPujGAh-RuK+dmzhL;pkwQKFM^i79Nm1OvhU{&j+%Mm6Q$* zb1Flsd$sU@0p|)2GFGVmo7Dfn>|#s&*8^p&R610tbf{A4P^HqLN~J@U qN{1?y4pk~0s#H2usdT9F%km%U;7rVQ$Xu@g0000K8Ep literal 0 HcmV?d00001 diff --git a/doc/kformula/incorrect_index_location.png b/doc/kformula/incorrect_index_location.png new file mode 100644 index 0000000000000000000000000000000000000000..33b7238b96a464bb74e09c26196aa084aade7825 GIT binary patch literal 1244 zcmeAS@N?&q;$mQ6;Pv!y2?EjzK&;5Y3?%!1L?$yZFf#=Bgt!8^jEsy-Oiawo%q%P{ ztgNhTY-~Uh$Oei4#eo2*00^Tb;E?mBB`PwyWH*VOtb<5Tr+js2SyYKMf!^e&uJ9YBZ`Sa&5U%veR z_kR@h=l_2Q`uqPs1pWK}AAi{rmIh&+p&AfBpLP`Sa(OFJIoda|am3z=#IM zI575s$pDxhAZfU3X%*@cxP)A!wU0q#8MMY6jQBF=yMn*^;z31Y~EH1o;Is zFfuW-u!<#2*?#`P+b=)=`~^Ds-`~G~etrA&`qA~{+ZVPa`S}L~1_g(NhJ{B&Mn%WO z#>FROmDY94*l_sDgO~3=fB*UG_wPS{{(=BVGbR9w>*w%r12dDdr;B5V#p$<`eDe+& zh_qO`Oy#b;S{tdV>ZJL=H}COe%SZ)Q)uS%clqT%`T-No! zkf-F@YSjemi_aOX@13%5aH#59&iBT(t^R@Pf%!~xuVhRrznC=FqCmOX;^EmkK3Sm# zCGJ;EYsHNiuNB^5Q1qS8P%AUtVl!)d)bT>LN3PPw1x7E|9ID>aeu`U&L2G}evB#Sv zmRReJmrpUCH7VNN{3$ssVZ*v95{|MLEZzHp|E#R_y`r5}Y7@t + + + + +]> + + + + +The &kformula; Handbook + + + + +Jonathan +Drews +
    j.e.drews@att.net
    +
    + +Anne-Marie +Mahfouf +
    annma@kde.org
    +
    + +Alfredo +Beaumont Sainz +
    alfredo.beaumont@gmail.com
    +
    + +Ulrich +Küttler +Developer + + + +
    + +2002 +Jonathan Drews + + +2005 +Anne-Marie Mahfouf + + +2006 +Alfredo Beaumont Sainz + +&FDLNotice; + +2006-09-09 +1.5.90 + + + +&kformula; is used to layout formulas. + + + + + +KDE +KOffice +kformula +formula + + +
    + + +Introduction +&kformula; is used to write formulas. It doesn't evaluate +anything. All it does is print them. +&kformula; was designed for your editing pleasure. It makes it +delightful to enter Greek letters, fractions and all the stuff that +makes a formula look like a formula. +But most of the time you won't want to use &kformula; itself. +Instead you might choose to use it from within &kword; or any other +&koffice; application. That is &kformula; is not a useful application +on its own but an extension to all the other &koffice; applications +you've fallen in love with. + +Where ever &kformula; gets embedded, it will +behave the same. + + + + +Basics +A new (empty) &kformula; document looks like a small blue square. +This square stands for the central idea of &kformula;. It represents an +empty list. The idea of &kformula; is to have different elements +arranged in lists. An element in this respect might be a single char +or a root symbol or something like that. The lists are put together so +that they form a formula. That is there are lists for indexes, lower +and upper bounds and so on. And of course there is the main +list, which we've already seen. + +Writing a formula means to fill the empty list with letters, +figures and mathematical symbols. That is straightforward: use your +keyboard. As soon as you type something the empty +symbol will vanish and you will see whatever you have inserted +instead. New characters are always put at the current cursor +position. + +There is a toolbar called Add that allows +you to create more complex elements. There are indices, fractions, +roots and matrices to name a few. All these elements +consist of at least one list, you can move the cursor into and insert +new items. + + + + +Using &kformula; + Below is a typical formula entry in &kformula;. To enter the partial +derivatives and Greek letters click on the symbol combo box, on the +right, and select the appropriate symbol. The symbol combo box, in the figure +below, has the word +Cap on it. Click on the return key symbol to the right of it, +to enter a symbol. + +Screenshot of &kformula; + + + + + + Screenshot of &kformula; + + + + + The Greens formula above can be printed to a &PostScript; +file. To do that choose FilePrint + and configure print as shown below: + + +Here's a screenshot of Greens Formula in &kformula; + + + + +Here's a screenshot of Greens Formula in &kformula; + + + + +Here is what the the resulting &PostScript; file should look +like: + + +Here is the &PostScript; output from &kformula; + + + + + + + + +More &kformula; features + +More on formulas +To enter matrices, click on the [ ] and then click +on the matrix symbol + + . +You can move from matrix element to matrix element using the arrow +keys Right arrow, Up arrow, +Down arrow and Left arrow. An example matrix +is shown below. + + +Here is the resulting matrix; + + + + + + + + + + +Command Reference + + +The Main &kformula; Window + + +The <guimenu>File</guimenu> Menu + + + + + +&Ctrl;N + +File +New + +Creates a new &kformula; +document. + + + + + +&Ctrl;O + +File +Open... + +Opens a previously saved +document. + + + + +File +Open Recent + +Displays a selection of recently opened documents. + + + + + +&Ctrl;S + +File +Save + +Saves the document. + + + + +File +Save As... + +Saves the document with a name you provide. + + + + +File +Reload + +Reloads the more recently opened document. + + + + +File +Import + +Imports formulas from other formats. + + + + +File +Export + +Exports the current document in another format. + + + + +File +Mail... + +Invokes &kmail; so you can email the file. +The file is already attached to the email. + + + + + +&Ctrl;P + +File +Print... + +Prints the document. + + + + +File +Print Preview... + +Shows how the printed document will appear. + + + + +File +Document Information + +Provides a dialog box where you can enter your name, +email address and a short description about the document. + + + + + +&Ctrl;W + +File +Close + +Closes the current document. + + + + + +&Ctrl;Q + +File +Quit + +Quits &kformula;. + + + + + + +The <guimenu>Edit</guimenu> Menu + + + + + +&Ctrl;Z + +Edit +Undo + +Undoes an action. You can revert to the state that existed +before your last change. + + + + + +&Ctrl; &Shift; Z + +Edit +Redo + +Undoes an undo. Reverse the action of Undo. This will restore the change +you originally made. + + + + + +&Ctrl;X + +Edit +Cut + +Cuts a highlighted piece of text from the &kformula; screen. + + + + + +&Ctrl;C + +Edit +Copy + +Copies a highlighted piece of text from the &kformula; screen. + + + + + +&Ctrl;V + +Edit +Paste + +Pastes the text you selected with Cut or Copy to the &kformula; screen. + + + + + +&Ctrl;A + +Edit +Select All + +Highlights all the text in the &kformula; screen for +either Cut or Copy. + + + + + +&Ctrl;R + +Edit +Remove Enclosing Element + +Removes enclosing braces, brackets or absolute value bars. +This action takes place on the braces just outside the cursor. + + + + + +&Ctrl;G + +Edit +Convert to Greek + +Converts a Latin character to a Greek symbol. + + + + +Edit +Edit Formula String... + +Brings up an editor where you can edit the existing formula. + + + + +See the Advanced editing +section for details. + + + + +The <guimenu>Element</guimenu> Menu + + + + + +Element +Add +Add Root + +Inserts the square root. + + + + +Element +Add +Add Fraction + +Inserts a fraction. + + + + +Element +Add +Add Bracket + +Inserts a pair of brackets, &ie; ( ). You can also just +type ( to insert a pair of brackets. + + + + +Element +Add +Add Integral + +Inserts the integral sign. + + + + +Element +Add +Add Sum + +Inserts the summation sign. +(sigma). + + + + +Element +Add +Add Product + +Inserts the product sign. + + + + +Element +Add +Add Matrix... + +Inserts a matrix. A dialog box pops up, with the default size being 3x3. +You can specify the number of rows and columns in this box. + + + + +Element +Add +Add 1x2 Matrix + +Inserts a two rowed column vector. + + + + +Element +Add +Add Overline + +Inserts an overline in this box. + + + + +Element +Add +Add Underline + +Inserts an underline in this box. + + + + +Element +Add +Add Multiline + +Inserts a new line each time you type Enter in the square. + + + + + +&Ctrl;U + +Element +Add +Add Upper Index + +Adds an upper index like so: + + . + + + + + +&Ctrl;L + +Element +Add +Add Lower Index + +Adds a lower index: + + . + See the Definite Integrals and +Indices section for details about indices. + + + + + +Element +Add +Add Negative Thin Space + +Inserts a small reduced space, here between the o and the e: + + . + + + + +Element +Add +Add Thin Space + +Inserts a small space. + + + + +Element +Add +Add Medium Space + +Inserts a space that is one and a half times wider. + + + + + +Element +Add +Add Thick Space + +Inserts a double space. + + + + +Element +Add +Add Quad Space + +Inserts a quadruple wide space. + + + + +Element +Matrix +Insert Column + +Inserts a column in an existing matrix. The column is inserted where the cursor is at. + + + + +Element +Matrix +Append Column + +Appends a column to an existing matrix. The column is appended on the right. + + + + +Element +Matrix +Remove Column + +Removes a column from an existing matrix. Removal occurs where the cursor is positioned. + + + + +Element +Matrix +Insert Row + +Inserts a row in an existing matrix. The row is inserted where the cursor is at. + + + + +Element +Matrix +Append Row + +Appends a row to an existing matrix. The row is appended on the bottom. + + + + +Element +Matrix +Remove Row + +Removes a row from an existing matrix. Removal occurs where the cursor is positioned. + + + + +Element +Size + +Allows to set the size of the font (from 6 to 72). + + + + +Element +Left Delimiter + +Allows insertion of various delimiters &ie; (, {, and +[. + + + + +Element +Right Delimiter + +Allows insertion of various delimiters &ie; ), }, and +]. + + + + + +&Ctrl;I + +Element +Insert Symbol + +Inserts the symbol, selected in the symbol +toolbar. + + + + + + +The <guimenu>Settings</guimenu> Menu +Here you can choose how &kformula; is configured. + You can select the toolbars you want displayed or the type of fonts to be +used. + + + + + +Settings +Toolbars +File (KFormula) + +Toggles the toolbar that contains clickable icons for +new, open and save files. +Print and print preview are here also. + + + + +Settings +Toolbars +Edit (KFormula) + +Toggles the edit toolbar. Here are clickable icons for +cut and paste as well as Undo and Redo. + + + + +Settings +Toolbars +Add (KFormula) + +This toolbar contains all the mathematical elements such +as Sum, Integral, Exponent &etc; + + + + +Settings +Toolbars +Font (KFormula) + +This toolbar contains the font settings (size, bold, italic, &etc;). + + + + +Settings +Toolbars +Symbol (KFormula) + +This toggles the combo box that contains Del, the +partial derivative symbol, limit arrows, +boolean operators and other mathematical symbols. + + + + + +Settings +Toolbars +Matrix (KFormula) + +This toggles the matrix toolbar. It contains clickable +icons that pertain to matrix creation and editing. + + + + +Settings +Syntax Highlighting + +Checking this item determines if the numbers will be +displayed in color. + + + + + + + + + +Configuring Shortcuts + +The +SettingsConfigure Shortcuts... +allows you to specify shortcuts. + + +Below is an example of how to configure a shortcut for a +print preview. + + + +Picture of shortcut dialog + + + + + + + + + +Click on Custom. + + + +Next click on the button Advanced >> and then Primary shortcut:. + + + +Do &Ctrl;Space +and the dialog should disappear. The shortcut is now entered. + + + + +Picture of shortcut dialog + + + + + + + +Pressing the keys &Ctrl;Space +now displays the print preview. + + + + + +Configuring Toolbars +The +SettingsConfigure Toolbars... +is used to add additional buttons to the toolbars. + + +Picture of toolbars dialog + + + + + + + + + + + +To add a button to the File toolbar, + + + +Picture of toolbars dialog + + + + + + + + make sure File + <&koffice;> is displayed in the top combo box. + + + +Click on one of the items in the left hand pane. This item will now be +highlighted to show that it has been selected. + + + +Next click on the Right arrow button to place it in +the right pane. + + + +Click on Apply and then +click on OK. + + + + +The new Item should be in the toolbar. + + + + + + + + + + +Configuring &kformula; +The +SettingsConfigure +&kformula;... is where the font sizes and font styles are +selected. + + + +The Formula section allows you to select fonts +and font highlight colors. + + + + + + + +The <guimenu>Help</guimenu> Menu + + + +Help +Tip of the Day + +Opens the Tip of the Day dialog which displays a random tip about &kformula;. + + +&help.menu.documentation; + + + + + + + +Advanced Editing + + +Name insertion + +A special feature is the name insertion. The blue square you +type into is actual a list. Furthermore, that list can contain other +lists. When you type a backslash (\) you get a new +empty list right away. But this one is special. It uses a different +font and is meant to insert things like function names. There is, +however, a second idea here. Your keyboard only has a limited number of keys. +The wealth of mathematical symbols on the other side is overwhelming. To get one +of those you can type its name and press the space bar afterwards. The name you +typed will be replaced by the symbol then. In this context, the +Space bar means get out of here, that +is move the cursor to the containing list. The cursor will be +positioned at the end of what you just entered but will also enclose part of the original +formula, after pressing the space bar. + + +Another thing you might want to insert are spaces. We all know, +printing formulae is all about the right spacing. And you can do just +that using a name list. + +Inside the blue square do: \,SPACE to get a small space. + + +Do: \<Space to get a medium space. + + +Do: \;Space to get a thick space. + + +Do: \ quad Space to get +a quadruple wide space. + + +In the same way, specific mathematical symbols can be inserted. +\ oint Space inserts +the path integral about a closed contour. Below is the result of +\ oint Space: + +Picture of path integral + + + + + + + + + +Editing Formulas + +The +Edit +Edit Formula String + allows the user to edit the ASCII formulas that have been copied from other applications, +such as Scilab, and transform them directly into mathematical type. An example will make this clear. Below is a screenshot of INRIA Scilab. + + + +Scilab picture + + + + + + + Copy and paste the text beginning with x*sin(30*x) into the formula editor as +shown below: + + +Scilab formula edit picture + + + + + + + +If you click on OK, the editor will complain about aborted parsing. It cannot +recognize one of the symbols in the formula. The displayed formula would show that the Pi symbol is +not correctly rendered. This means that the % must be deleted. Do this and &kformula; will +render the mathematical font properly, as shown below. + + +Scilab formula rendered in &kformula; + + + + + + + + The formula editor will accept most C language mathematical expressions, like the formulas from a +Runge-Kutta program below: +void derives(float x, float y[], float dydx[]) +{ + dydx[1] = y[2]; + dydx[2] = -0.8*x*y[2] - sin(x)*y[1]; +} + +Here dydx[1] is the first order derivative and dydx[2] is the second order +derivative. After copying the formula, you will have to edit the derivatives with &kformula;. Here is how it is done. +First copy and paste the bottom expression into the formula editor. + + +Runge-Kutta in editor; + + + + + + + +Next remove the [ ], leaving just y's. + + +Runge-Kutta edited + + + + + + + +Now click OK and place the cursor by a y and delete it. Insert the appropriate symbols as +shown below. + + +Runge-Kutta in &kformula; + + + + + + + +Not every expression that &kformula; is capable of translates into a valid C expression. For example the +superscript expression: + + +Superscript in &kformula; + + + + + + + +is displayed as ()**(), which is not a valid C statement for exponentiation. Similarly the 1 by 2 +matrix displays as ()/(). This is not a valid array in C. + + + + +Definite Integrals and Indices + +Definite Integrals + A definite integral is made by using &Ctrl;U for the upper limit +of integration and &Ctrl;L +for the lower limit of integration. + + + +definite integral + + + + + + +Reposition the cursor in front of the integral after making the +first of the limits. + + + +Positioning Indices + +The upper or lower index can be positioned by highlighting the desired +text. In this example, an arrow is needed above the P, in dP. Using &Ctrl;U places the desired vector +symbol in the wrong place; namely above the d. + + + + + +The problem is solved by + highlighting only the P in + + and then entering &Ctrl;U. Here is the correct + result. + + + + + + + + + + + +Credits and Licenses + +&kformula; Copyright by The KFormula Team + + +&kformula; Developers (Alphabetically) +Alfredo Beaumont Sainz alfredo.beaumont@gmail.com +Ulrich Küttler +Andrea Rizzi + + +Documentation copyright 2002 Jonathan Drews +j.e.drews@att.net + +Documentation copyright 2005 Anne-Marie Mahfouf +annma@kde.org + +Documentation copyright 2006 Alfredo Beaumont Sainz +alfredo.beaumont@gmail.com + +&underFDL; +&underGPL; + + + + +Installation + + +How to obtain &kformula; + +&install.intro.documentation; + + + + +Requirements + + +&kformula; is part of &koffice; +on The &kformula; home +page +You must have &koffice; installed. &kformula; will not work without the rest of +&koffice; + + + + + +Compilation and Installation + + +&install.compile.documentation; + + + + + +&documentation.index; + +
    + + + + + + + + diff --git a/doc/kformula/index_smear.png b/doc/kformula/index_smear.png new file mode 100644 index 0000000000000000000000000000000000000000..b557b7db75be8b02e2dd65bedaae4d9f709aa7a0 GIT binary patch literal 1173 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�(yOth@oy&IzuBy0XDy~!*zS60>^SkMGUiTN9#&vO@<2wPtZ1RF|oQDqS zsUqT+mA~%#=aQgH=Puq(TYpbVMbP5j>W?(j^fJ524GQIJCJ-GayKNKr1}i}{8gaIR zRoD=EafJs0y%1=I{`3j(Ow5F-%WH2)N+-axUPVl;Amo<=yRaLH=KhO#Z!9_xk zv17Iq++tF9gx*btsH@SQy49B=FC)Wmg@KVPOnCBF$GhifIOKLC&#Fv7F7exk|LlF$ zdwiyS!tF*tiK4|LQ0HK$hF(-W+wfU}nKx!^J4uFS>X?9)8-6XJgr$YVpntrd_ayKA z?pyIzSwz&+#<2M-Mwn_MH~c>-T`@T36X|}PA=0mycGks26i)NxFm|;o?QXm%_!?X% zSo_oD&sIHk?T4)S>BRf~Tscnok#U``&Y(DSNXK+#AgiQX)Aenx6mB?`PxY^t37>o8 z)8)R^1EB;_v520RQi>pRnsqvg>c&H#Cr3a7UN+VXU4}IqaqRC3T-fQ6t#4?(f!(58 zJg%+r@+aQnynqE;vrrj}33s@irY9Nf`HWU}3h1I#gtZ`9(rhEQKJooW#D#5`uBUi; zPr%Jw{`ayY$Mf?dk@2{|zLe7k?03`x&0L<#b`|;%xfnCtn_=lmS1#+z*m z2F886u)fz7A$hUYV^y60p#xs1djE|3W**8eRvKXc~7&ie1oe?@A*gS(QYMNz8Jmp(&ZG;Iew3a=2jArkEa zYfpzqW1SAN<#3Hu$OCDPOiVk!mG%PvLeVw;q8#(~@%q*ic>x?Qn>V_*|1uNs#wvE2 zb5Rp&K@DhFmei~I)K;;ez#};N(R2h9dywK?n4#Nm$KyGPbsh7^j%T2Ba%oIIo?i*J z5I4caj~w;e8ZBJyFS(z8vxKFtn}12-hwlO|aOY&_QO&vY3+gC|yHpk@%H4qJ!{PoB z>;lTr{QGBWqKOOW4Tb)Zr6oXyd*diA#@t{397usDq*cLaoyARn+icgk^`;ZqT#=u(LH zEF{ikPQ_Q35ZA>6j;Bf7DE>Or#8w?19$Tb%7?g#pNL?V5PLDtU13@@jhGv|M6BxWt7cy2%Ot944}3~XLt;D!=RGQH}S z3o!zaoe?&G|BQ!VrtT^=jyeSLB(WfnUgfkcx=dSj3@K9(Ae$um>FetgcSsiM9Ui2? z@>>uteoCU(2L03ny_y~5l&7?~I(u|6 z9@$U6%u2&R4`=abONCIg`Q=rjt=foThe;d_(FtPVeSNs3d+QEy0XH|sfD__>xX_qd zB9-xqaBAYce_2wJN)9Ca`;akX(4E5r({}*ROH0EdkO@`>QB0Kc)_DK6gbY`L2a+L8 zBH1%x96V8;Zk~pCg%+s(8=@~4LX!xxJoTtL%;;Y)fH*NhopRZSp&mJ%2`?ebCWL`Z_ zH|?GAMHMd{{SU=?5$*1|88;t2f;h%4CsW%d9Zdad;QTJm{dYZ0oDXa`R52K)Mk=UX z!eIzRxsv4_KKhBz<+%z7=Mf5M1w4enk}`N4mn8*)2p({2taU9n7RLZ~z^=3PGqAh*pXDu*pxMQ2D{%H6uezGs~lm%y?KpzmDH zr4i_|cxXO^HJt>j4 z)YGvgY0R$&rYfx$U!5xX#V;9knO{{lJ$8Yr?c-V!XH7X2_`#;C(h~JP0@`aQjr}#P z2|&?f0;d8175cK8ec{WZ`OvGOs^N%%{B(@rQZad*s|m?OByzJWpnV;EuLAJfqZExK z*Ez5#?rB_AJe&Tv?u>r0k)w3j@s(R{$z2vC62#<&v%B#|CxVRW?v${5>JkgJ5M2MGGh=fg?XBIh>3Sxwb&ykypCi!YLsDRhNBP`g{@oQ?%3h_ z8y00xJ{`EE&;Id&cC2UYb(dK2-UW>&E;A?8-7a&{4n)TM-(G(V)-Q|V%?90g-ZygR zDRN09NkKOq5xsNPdLPaLGRg(MR$?Hlh(~99guY93sz6=au*gTf^>j8G4u57@Ajv7bR#$2bnxN<_=-r>ct zynYKEr6qN)ql=eL|SOL{+9Ra*IZG%s?B8mD`FjeweQGh7<}V?t$z93qMo8b1e}H{FnC+U`sN9cF1T!j{GD?YH@{dxh*PH*&1LQ6WDp{c4teUdn98JABN{&Bhdq3 zsV>J~2exkx;^`%H`HsGQ@nz$lycg%6I^p+4bPoE&S)jITsz9irv_kIcC#pUWiT!j~ zr~keDyjf!o(G$g(NLd3oS7y9Gw^Ia<(zbl)B6m*YSPs9FFLuHU!tbS=5EzP; z#pQP*p7!(^6d+kt@cis5N%#>(yHy&ssZ(BE^jm2aZoPTnX?w4|1?RJhHu4Q>8Oxu zprbJgf7UNe)y4pM6$HJ6Og+7=q~POI=H^47@YzNOkU1@Ddkn1;|03yb{rR*G;CE&p zqHV{TJ>5RkC#`IZy4g@7t(}oZhh6{R&B2HQr__kp+~(2I?0&!e9IMNo@35}6eHG6w z)qCU0d;$9pCj0K8@rbmnL&tvKWd3MnZi4UPPnUm9$3F>P{Q9Jd&*I|As#7^xQzi6? zfrOp2en{Q~oJM{X=^)ZatPYd%5V-?jneowD3$AbH$a`v`10|Bbr!tyb zJC1&beeXKhsjBt;5KZ}{>HYZKDnkc3wdhs?+4fGv&R6FPX$A1R6s$8-72*nkg}~x$ zLP-C&OamR97`-S&a}S4;yLRoppT*SW#OOUB_PdWL(AYgxdOJ(8gG2wLR6~|k0exd$ zFjo#I_e+Q7#E!zWz2W$yXSujUO)VWfY5* zv77ean4(_4!B*C;p4lpOR&s?#`R2W5RUSddj}txL+G?|CzyQGf{x*4bR|)=&iH#zG zttgae3E#*=_r4`}KX6@$NCt|E$y0E7Ji44@2h+Vycj!kb(P#4wN(J~vFL7S)Nb78N z%U#c7>Ch@h=vwEsLH!E6#f*0Pxl<~&+^saKxf%=T4w@83kXf+`v zS=dyE*)c~$EP&P5gzrZpfaDx+ZX?A5iPuZlR1f0?u` zGRhUsT(K>kT5>Ce@{?9q-J19OP53+lsBVK+W+!H5ey;YIJr<_J$;lc=X`lepQke#% z6hJLpSGzeYkjF2O_d>-iaI(HutnMUUf)V_bvFMf41HX8}L9}Gp?`4g-ddH1v(Ep&1 zjnJptj#$zau}7N*^`pz*QN2ci&iisLxa&b@vkTqARaCx zDi=168#$LhUFU3{D!fm~;dZb9th7^Ad)Wia<9JuzfMc-cWM%VbYS$PWDOh%AP|KlS zRd!RYY>*exk5L`VdRp~< zT??Mgrdk8ooT)~LYkM`PEA$S&})cCZe%rA z>ac0%1{>qJD<%N)PH^so(2dF_qYi%Wr$ztBILeCX6Vf8cufArWB`Yp9*OHd&9@iAq zP_N_Ro3+3Sco$8rN0ZJA&AGoC!uJB1y`bEbR~x%1Wd?HszF>stSN-H@tx#1{6Qrt@ z+pVttv7A~?0)vC3EnGiJd4{oweoSciBD%pag&Urdbcp;SRadk4xgaO{&{HB`{Na2FEu}R{^ z*!$=Z{gx3c%&H3n7b&vEtks*7b?+>NQ;l3Jbt3LkSE)5eY8xm+>-3rCvLzF+arzd zi~<_bk18MvUxmREA_@oui`lPLAlXH~z5GaWL|(m6Wdf9l=-h9Rq}DjqWQr^@^Iz^g z9=2VeR;b_qQ6xzj znk&D!KSo%QecQ|H>Di%rkYwf>gX)po7Vx$Kvd{p1+#HMp`IqFh&_1fR>(K{owrLQF z)TQZ}wL+vPbaAhN3Cu{G3Zx#y7IAksxhCW@6e z>>pt`=#s&%B?`A&;SHe{iEu)J&=02jpaT&VdVjY8-@zqpgVQOzcE$8g?(5IKqExBm z??*NiJGF@ibK)k?nSXJ42dDIzVnzr_rF|XkN-T=Au?9>D<{KRd-DlxekS`-7EgoI9 zA5k9s-X~PUTN6I|r~{!N^*J6aiB~=wl9G|eVIToD_`2pfQZc{xAe+x1>a`%$3Y=8e z2h#-uHGMDMaPh9A-RAO`6$Pd^nPgie;1hUGKAXBDcmFx3L{BnQ0iA5pv;g}{ zWj-V?vZ?x}T(F)MNX`NJM9SG-AbDSC6hRe5+)_mqmCFGPvn*q*qsfDZdKEt71PG%B zMEtk8d|X%qZ!F*@@fiTGpqQP5I|V1=jhXSvu8LtNG0iv1q;A_D_s1sx>ivznuIT8K zU=GKRS?-;#Hrc88Zv8t2-~+v&MmY-xx!a|*oL^nsZGT*w5+~U68}$K`2zmlC z6b$)Ugw{NW_|}x0m+HJuzC|*C9;ms|gPA5!9K%suMnmp0@0Qllo8^7A!7GoXO463| z=mw1o4R9P#&VrgXJWc7leUrryoyLoUMAvwqtkKPuiq;Q5K`%ED?txQQ;+nuZh~YQC7>eFR zCsd_+$;bxzq?F`ptK9zE$_t+YC-^1(76iVI8SbYknS}94ynLlXlRd!(c{;#smS?dd z*b>~t-f?eI`GL;mnkP@f4X=}$D>JugSO-S=r?b`lX)6| z!#gPZD6lA^aEJGnqPDMgn*1?;9{b;eA=E-r1kUNQ{&L0OV6_)rX*rlovmYy1EKtW~ zU&S{J@B5x~Ze`-RwE8b@l5spfhKPsoLWO~*0QOcrDd~!GE@uHwKfW#|=?bd`cwxmc z8_Jn1i^=*JN+~-$>y&ePj1v)o<0$AZ;ZC1?jRKSB4#znq z#;A(ILF+ow2WWcz7dEQh+@{bp*kt3)c9q`W`sb{lp0}~%-QLRI+-lsZAJq@a*U-e1 z_t@(*Z8j_?rQ~T#-|I#&E7(&`gXLn;g!|px#M12DyQpjLxoIEyt8$}$|9YkBzsEYd znM)NyD}3G5Ok{(5^j10k4A{|?ct4Y4f?-a~t=0I7l0e0pgdUjer;^Rd%|;!k=q+*3 zKvp>7mFeLa#_OLsbks-jN}1BE7k7}==m*#rb4qL3if)hob6JCyP(xw0?mt63X()wo zXs$Z_^EAzUu5;b*{`q}Q(O;OlT4xG!=AwpWs8fW)<+G~hgr9I3;ONpJfMQs)KE({$ z42ZkvB`EZnHscK@JV(LVV){YG3I(olwuy!&3{ zr!c+g(^n38J~D$BV#20ccX^OGlK*O?K@W#4-1|}ojB1AKF8y#-r#vr}7du|)LYH|Oj^z*N zuK#e1fMz<-N-$q3Wog@kz|$e;r?d>1PQ0RH!qxS}QA!PO^6RXo3XCy)^n5G$)AxBB z%pe|R9P?P)BGjn+3!&%X`Z(OW8xQhLM1T1+L}%-@^+6KsGJQBf7(I4D$z!O6Bcbs!DpF zyO=^BkNH*7Le~W@*S+w$10f|spt@H)WOFF@zBgcwN?7S4Os15}m_UyOJmVl;W_;V@ zr@F|xJHzm2VoNXG%q=r* zfATg{h|;k~CvU+ktc`DU(qF0<85r;@@8U_Jy%J$1Ymc$kF{W^yNj8n>=}o4zAeI~q zO~qMEpNkjHsVLN(UZ&h&Vjb1H7#UmS$GCiAPQqWru25QQB*c{)47p%A^U|{*ZTQ)* z3vyi<8_tG@2h1A>zTsA~v(vAciAb8!2TmiN`Z&Bka@skGd+v-OBJyA=|CSC?(;`%~ zQ1|E{>5lIh^(kw$E*;NglwuF4Zqh@BA7tN_Ju)DdZPgBLp{m2@8C@T8zZYhLi%&=G z=Z}JbNgRHPPyS@-U6Xr7-lVb;*NCE@SC<+0g57kTc(R?&YgvUBZ4Ms0TqLIxLQK|+ z4~xmVi!HalKg-JH)uh zSHQoRxcF$4zF_SwiO!97#TDfR!%e6??07bJM|n>HFZZh5GZ7-NNIuUr7#+$S*Ah>8 z84cOX8$jzjw(GlBbW}Au%4pk#>h2+>4=bvNL9=7cUL$YmMA=2t_nv^O+q=S>`8;LA z&!kQ-KK16=7Ea?TwvEu4?2@z%tGH~ME2=H7T?mvj@{;$BczcJwbDO~;Yp zYyN~S9rxAHAOKG6_2%asi4M*hgkpaaZ0gbHxPTL#F5ZN04l7ufUR*p<;(<3awV^=+ zLasMVQcAk+WuOO-fZWKPoU)~AQb>08K3idc2%=vezQk7%PrUSYebRnqMd#Ec2(-MN zmdttJs(y8gvq)es&n|LT+lax@#q;~o=|8(+$fdhY-x^=A77WagO`fqKG9<)+Z!YD4 zyN%hlWH{Aw3&0f&Qh}H5KM9vL4KkGIG{L#2ypTc1%aH75$k~I|B-SdxrN!LhKAQy1 z&lC2b6j`W({QwI3IfG`D|Kkw;(>?rO|02bN%XJq*Nxt#EM%r`d8LU>vwdJ`JGIHBb z<9^)KF-SDueBD2WiWOpm^2msyDW&$W@6UrRV1uRr_ig)-?rst$0iw&KKo9PyCvF6K zRXe3qdrN1@fUe0hO2(8e{bGyzD{%5%x0gZ}5K#Xp9Za5jA?) G=>Gyf{hF!( literal 0 HcmV?d00001 diff --git a/doc/kformula/kfontinst3.png b/doc/kformula/kfontinst3.png new file mode 100644 index 0000000000000000000000000000000000000000..42e643641e8131afd897454fa7627ac80da06eb0 GIT binary patch literal 10377 zcmZ{~1yodD^e-+Tq0*p83?V2YNJ^UK9DpATl#3J(t{&XK#lyZLCpcjs-+xWFEBW}y{qga4CUn}%wE(^qW8rO0N%VWA z0|UKXON(7Q+dUVT{ZHOUk)P4=(Ocgj<4HkPk=_ZBo`Ih|!Jj~mZcY~V<_7kLns!mbzdo1K9h4|l5=8||0@h~&KRK-@FU?0CFX!o@_(h3$#|ie!e$W1ZUEuXhw$q| z#4Nr@SSO2p%oKF|A?#Ah=kn`~YX!f1C7(;xYrFcFR&6gW`(N7*a(^7*bsQIP9TNeK z0DbyI{5t-MKSnx50=h&3yF~(ffS-H+N>HC@P`_w!zgX~qSjeDQC`Mpnp~GTfBVyrj z@rW_;i1B|iDHVp63b}Y2awr!%D;+g~5viyN$>>SR=qbqTeZzyamv~P7otN;_F~JnBXTB#Vq+ng78e(XIb!1D;}a6&6Ot0XBqb%Kq@;ZN4o%O?|4~p_ zP*hY>QC`vd>&Ig84|GxCPGxypdwXX`M_*UhNN;CvZ*O1!z`!7^w{NJsXRxCOR@1j$ z*075 zeP?ZBZ*3F3v9-IswY|Hxc7#Np&(EK)EMIJHo}qS5_I3}@duTLzZ||RAPSE?P{lkre z^WB4!gTtfaqob2!%;)6jb#-@le0z6$dv}MCvK72P7{ud(-m7ZfUaoDQ(9DwU-@EtxjiQW{meY9PHw_XOU6F90FI=rR5ndQ*+Fag>^?okf4HM!avD`=#-dzggx>eF72kC?7) zV~m33#;>2Mo^SYTszKn|H~jp_i@FxP{N@-1(w7cj$s$qLL=y!QvH^F@qdsNVQr__T zcL6v`e)`;I|DJXJDPGEX+hRYZty6Z>c$kxdYQfEK=J-}_EXPuLgpGMLx?i`scD?3f z&ZOTZM3TGS)!NacjcN^I-N>L@e994FN}E)?b`iF&-*L^O7+v<@K0f3 zVP4+(u4kR!$jE+gbWyK<+wUOQ*6c&?7b&`=@OQn*T%%`?xs;xV-Mat{T|cz)cvTVB zG&CFlr<7rf|1rA0y8NmB{XCP0Yz>{ICNBjpE-pD)$b1I{RS|jo-y+ zl$(peQ4~MWq2g&*C$Yewt+#9!JEQL_ts@AwMz+=u3wbt*szgFHCSzmE4c{*x57arp zOQ@FB8~amc?*+}yYEeY07SklVXm5?%gHmQ)PAjRkv@cwKfOb8?X02De_!bN;&C+xw_`n8jOx;;?6M^`YyFXKV3Op4Xa|!$2psrH z+ftGhAR38adtK}x9uU0graVzeZc|g=J{-zv7T9!38j)UFoHYiwCmK#c-p{yw{e(XO z0D5VmKV4Z_$xC=Bm2k^mqAG`~&@^byuBxl6tFN!GJNtB$MqWJQA~a{O{hfXM0nZ`L zivZ(xqk-OyVUt=T-4_L0atpC9q|Hi2nZK68)kVSmdvi_hN9*qbdlwZsrje#)8EbrwF!UhbQ|{*8Za@RQ?x34UYZU*kX^E)nmKl)cSS;m!w+`3RCZDl-%QcX|Gt8a zP=!F1H(GLS3U(H@syB{?@$pVutcFzWeyQfW+=^9KJ>|Gfy5etV;7QbH{?71?m%n!ILyc}4zV63byLP1je}6HqJ4Y+0 zlK{7cM9c?dM_hse@zsm1%>kZ0;2x7l6 z>o{nCQIYj03%}6E$~|;&NQr3GA~f8-=B&E!K|D z0;)@^BAY7TB}`@Jn%p^mXqKiCM>P!iZvAmM9P*RaUK9BO-e=(BE%C1`50kgF(TMJb z&C9y@4$}gS@%4ABdsG#@lM89jRlmUoq6cf1#AEXFk875lH;+R@hb%84x6PH+PVUOe z%HLEv8a%#64{dN=mVLOqV?e955`VS{yQsu)g{6m<_9mOq4gIum>$ddwme7=vpEHu^ z`05dRh2#S&<(~qdf_2jD6{Bq)c~3-+8CVDs3Rkk+G&}=(ogXz1+`00$@khT@wr1^U zCH8;M`Y-9_#ZGX3M-e<9C|)%TSSnh34*U2()NpOe+MOihd`Aft5y|Rgs2|G8Y|(%V zWR#c|ZVXR$1ow7X8S{&^OzaSTWudKEwu;V4beyU0P#^$E^o&6LLGq(0-zCmqMcG2sZ|Jm5jF}~H= zwULcCwtlKOSur6sngzF!!~oKmM3-lh_y|`Ll62XB#25%5{r}NqAixxVl>|t%!sxA; zO{30hH@HwmbIv@Qm8D6d^kO0eyF>Ne&2Qlh2VR1l#z_C-7YeADuPc2o=H^tcB!B5^ zHkaf*bq?Be%E6BU*!NI`Bw@AANSc;X7E9B|ceVEet?gLonYJIx)`BmtFCfHg1gUjd zWo4yB+HCf=hLZgUXOw`7JFaHAso0f$dZak;`|DLc;3S0gGJ77y+A*g$`0WuR_$j^E z+uXa09g~~wubDUNr;8^$+hn|sSgGRMq?T$A%FRq zyVBDn=Q&6mDo+!-CIKv3Q9L5haCZ%|Pl*KlK!AqKEqdiQ1s5(S2CoD+U_VQd@WhvV z-^rWFCqUN|)o3x1bqXC^3%c+T*RwLIFZvW*wLSn*3A(apcp zQnrNu`8P`kx*cF$eo;SE|+(bLEqY-g?LC}OH zrY|0NWnI@cHaE{wpt6@@wbu}*>(f$ay6oR50-VhG05n$>93mxEK4D#c4uLGw2gJd7 z)+vyZ`BR&)X=>_(G1arc1(c{`AMsb;;G33!^V=(%36&XP(&&qTfY)L$sgw$TXQDkY%USyh7@3+WU*u zh9U%I)Z%{=y>x2pS516%qbBH>1GEmW2KPQz-i$mso+F>;A?lJD9OnUQ$cau<=h1Zk zZh@V3WD3BcmCX52|LySCgpN9lQn%&7ne?nZ6uVi36OKWfoVh@=jmchuA(5$Heb4K( z!J9IJ;-F`@tS^}Dp2hIPzHSBcs4h>1GeL8JX7ZaYa^t@?X9xy}&0n~^`eMzi`q>T;dx|563!Z$qp%=_MS*Vzc zmj$hsFJx71o}MDlNqXHutSG`_8YBmzxd8PII!y25GAT{c?1^*@2Ns}y&&PwGk<$g7 z!6`C~S4A3dz$jVI1E5H>Ty`qbr*V6VHhQEu)c%C{9!Uw?CZ#W3%AheP7J=~4iED=KJ7hV1iOzql5=jkC62Qv6a zNQ|eFIu@#CgSoId4^F2BH@ENCI?Y*Q7HDgb?De~RKb71A<2HLM$pkq4 zgM;EzQ-#@!{XihlZ!x|^5@1HmWqSF_5E-ef+x^a3OtM410E%AYg%0Xh(Wl)^rwh-{ zLyx4+P#Ej@aKT2l>GTCNE+@Y&VyBz;KEzydOjleVbQd!-wtu?82OjMQZ1D=crI>r{A9E{`kB=|#!4r4 zcg#%IC5s7TLy|q4OA6$NghoMJI#m_DQjzMovY?r zu~-fI8$4lytt|-YIgwA?UI>)*!p$SCGEuSD&S9>xA}xi_{q$T3!{J7Uz`8 zXLFifs#P=M%>5@9i2l`-FR*Rc{nLrU&$kf+j$%KikHC^MqlX!HoNni^Srry|8ghB9g#cfbt zyaIGbsD>z~?|={f!Jnp6-)zx$CIGku0(GW1=>3Cx`(vi?hf68y56xb>O5=yB=R{|qEUH8f9H0i9VX^IEqt`TF*&h1Bqru1GCBXd0Ia+xcDt~U z;Q8npkM)H}K@(rV2l~fS1-^?~v)KUP#~<7lS6K_DN-`Vc^QqN=uQpcI9SX11bvt02 zl(Z}GY_#rnf8SY&qUH~kJ~45QxxKBZUAsrG%jqmSR2`q;qVmLnlo{`GgPCtCc6M2} zskk}W2EELzx4!{41%;O2^%d^Jt87OL41YN1_8Ji7t=u1<>Z>HI)bgGask(stTNLN` ztfZVeMqE@7jgpJ)5cyp3&iT9L4Z%XZlUe7HYsRGm2rLeOJ$#*BYZ$!yC`1UgX#j*x zA6SnUT=7KYE@V}71ZP45!A7b=avQyn{TkeQ{@sTn%fGf4Oeu(%F65 z)qdj7^0#cy&ve$)2O8s?hP4JtkG!~|Q@XEQy z^Q^u8l`L_tvG(0rr_8VP(?vqy01NgsWeDV8q!A~APPEJaqeEizr_;}Cn=50x_6!n}< zLAc#Dq_Fvd=viZU*GgFTaf~|vNe}$+hrH)I^bZTV7Zu-B)o5lT?e{Wo#MFkMa1TCZ zbd5(=JFIGYgXdVj0$$h^GIKKzkFQEMs!pNs$yoTKwz(yuF}zCANm!-vo@`X?M#HS9 zGtR_6_%Nt%N6>bFY(yF)CbY64_`7cHVl>%)vdp;AdaW|2r9=Y307TM{np9OU`SsgM zN!45+)siYO|ee)zuw-K%9d)2Hy z6!aPiZ?JWIBk}}zX`e#cV}N^&7fb=A0y@^2Q(06<8`r&sXOxMZ5S?h${^<~XW*pW% zqBAKb0zCm^x3n$FY;?h-eAG4uQ}qJ;-hdBHS0L(I<(``Omqah#VNx9dKO6w`oOFf) zpZjiHon+gBj`Tc1t$duxxPGcqY;DBHwCVeseFMapgaA5bvBrRo@#@$#0~4?gFSGoE z!=!ok{DYgO4;*m5wa&=&5DydKjysdCjGw9>Yzo?DLf;(IcBVkN--iR@{DYsMTn=bE zF%;q`gze+Xmu}l4RffWFmJGsr{-ByE#Os1+rXQH`hn)2lTJ#e2<@vC9|L{O-G!bK^ zub!xr?cgb7XR{V@fJzqPL5VgTv?ezXUqL3t`+t_ACh$f$fuB!ktH*S}^=NQ9_eI5# zgZ;vU^4F^fgG{1~g{(fZl_wse2xtYx8{;dFKyM88J1r(~Vbd78mx_b! z`c8Thh^(g7l$#zSfAiAZ5{Zk6cnq>;{nmmcOwJK}(NtXi z*6{Y8C*n+-2&teY31o*&jeUx#fRUm|i`4FE8YU4RAd|ZXhA=#unE64aIiKP&CC3M$ zNC0~YA)if#(@+fggfX1FlKIuXfAG_z1KKwi{!6Z&e5>6MZtnwfA7}3s&lFJsMecHD zThpi0aIsHd6>tz*(AK-`+U33sf)mJ@qs9$fjcyRH%VJs+u4JM{KAlbT`hNboLxA*%?tM)-%bM$vN$-t$7e^4y~xDNMofqI!iFQwSqSSI%kO z0LVkBc7HjBS?w4uVEcT)%GAbqRdR;oe+9;ztYE#(6|JB7^t4f9eeF_boBAoRhK%!H zd0w$%CvEY~90MPA^gf7hwMW(1*x2z64bq^>YUj!S^l_C|^2!8Y5gC`UwhqPb@Y_r6 zHF+QX*l)1@{10Ap^Gm|rc-MHE@W0IRmp338o&P}(Q)i7MF<~1SiK)pjwOJ%2qx!Gk zAN<{_$*Q)NCy><(J!X))eHk*0@O>^0U}927g*?M4d3G7c7(hu@{zrFtjO+n!6jb5P zO0I|ba+uKsBx+6pU^>_mB75)@h>U^AJ$vif`uJh$9d=o6?UCy8m@9`V>ez@hv~w#v z;!ybaL!vZ{O8WE&vbH7ZmL3<>txEOy?J~+m=9chKGkkXgFfhgxz>*o<1xv1yAz%^# z`Z7NA!@DTL`S-|(IOb(cvp^NjiCs`Q^K5xTlAV(G4%f)>pH}_h40gBbnd`GkXAt-k z$@KIJmagr{HI>V5MW!c*TKK83DT*%ttwMSNG+8|OdYt~syXO$p%Mgbb3w;zW%j7!q zG}1_v@X#>!Kl?tWn^uf@#FI_yBR3dd{Tm3QQEeZq;4?*~BZoJoE32+>%0{v-xE3!* z{O1+DM8pZ70t?Q#XC6nUBXJH58&Mn3kOB)`7Soo{J@d!#fcqEBv)-%+TLcK_>=Aqm zqf1kQ(;WM@?vOJ3*){71A2k}<+%ei`21j1+K_R@w*X>B zAc0-ns(FS9yM%X=ABeVmB?QnPaV&GMzY8lFs?19Cb~L1E6DX3fu5Qqib>VWCzCPxjz6u-)e_YJAO#8yDq^epC)zrRBNMhSeI zyYb8#{&^-|ur=dMx*9xM-NO4)=>NpQ`w+nImK8r0*IwTUOH2H2N?!&|x~SuNZI+}? zR4ZCv)jzSEUXyOCaZ^W$z?Ai5x`IxVu73OSXANs06lB)pqvE<+v{Nuij}IOV1?=#2 z(IbSPuz*(~!7t%@>W{$j=izzMGT1EQVZFy6W;o=2!XRtkmLpt+M8uxB%4N~^$Kgc* zJl4|ymRTK7fa_67mOXAN6$ir03eay>FK=JEpcJH;<3)>vm=wr?&jb{DJ{tw*3BMmr z(2`qFkVT2Sr>qx!K3#z^vEH2Lsj*RfGZmFKYZ%XVco2AqmvG>%#RdQXe8?i=7XKwJ zzWs4<6lmzn@Atv^EWi|tDCV!nacc5|zy=nP{O{!=biGZ?B)xAfj2dOYN$gL|%VapX z!hUuVz8#!+Hw08rR{Gid*LsDz(1g#nW`Uh&3bg|2;(Q{cM&NHx)Zc=~tF!H|SS;li zct;U!Y;%W^d_RQT;O)JOoe#QtBr|v^-dzO`LZD5#MqmyEk4aVe34gR1Yv?ciNsK8} z%hc3`PIwK&C8<)9(;Bn=?N1%8aDa!NAmPWUGyQIwLa%50|8~4H1MxDF+w{acm}Pwu zn4zxD-}@t#M7+=hD7O&%A!J_3TVDDH%e-fUr>hn688E=pl~5L^$F>qFQJF2a|6Qix zUpKeYaziYjT?gdk+cL-s<9OhI&ODZ?`>0|K{tr3X5j(Egipc*fd{hl8`G|vU} zefj?nV1M`QF;`6p?;Bjw-qa7e2&~U^m~|;Og4MTi;mwCa1gml+wH0XZ;+|VtD literal 0 HcmV?d00001 diff --git a/doc/kformula/kfontinst4.png b/doc/kformula/kfontinst4.png new file mode 100644 index 0000000000000000000000000000000000000000..6f3c42e7a1f70828c406d6d87c9b190c705091e3 GIT binary patch literal 10380 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 literal 0 HcmV?d00001 diff --git a/doc/kformula/kfontinst5.png b/doc/kformula/kfontinst5.png new file mode 100644 index 0000000000000000000000000000000000000000..ec5cb4a5dcd72a2fefdc72531ca7dc0fdc43a2e2 GIT binary patch literal 5000 zcmb`Jc{G&$-^XVfF=?z>#u_1{GGpJ3eP6N`mF*@wp~w-#z1>-sF;CED0fi<+Gp007YFXseq506;X^ z-UNfl&z2$7HUMz$z*yf*gY;WJ|DSaBk4{cbj*gCh93JlO?(OXCe*gY2JHL(H&CRXf zUnZ@uudn_ut*xzZZf^eZ`9BS^!yliG-&$H;{kFKe@a`#e4Sq=e*MK9 zacOpLk<85Ox0%_6>6u>;rWd9NU&%~P5y?zU&W%sZk{KJH86BG@gC8Z38Np8tk4%yo z8lD^+p1=)`b@z^R^$c}&l^`DyGSA8fiFE1@GFDb2j zQ}`h(yC@!$8W*4VhsVfxrzdfa{;|IZ!2A`QWsiE}5LxViE_H}1`|Iy=$LI>Dm`bPE z_YdOUJI7Z!Csey&KDZ{9)P4+37 z)?b8RWrCZf1L`IHsw90YC49)d6MtAC?p-GC{zl?Krno~Y%qCIfF6Nqb!Y{1ig)F14 z==$<%d+}&_{()E9L)O5-)Xc*Cw@gjVboDHhl#TfKDVAQ%Xw1OlmnKnM^B z0s?{L=Koi9^%~4%>ztp7q3L&G6jSC306?#-qpo5WFu9R+FP2M#y;D3pM;YOrM-O8K z0hd4$5xlBxlKiDD^l9401pYvTKZfH$gAC(?ub<%cU+QmygBVy??cjffcWHl_i~J(R z#z})j--SGnbnGH5EY^(&t`wI)du!-FAUpiFKVwPRx4t;LytdrN@=^9M9xwmq&8QCF z=*UPy(Vi&TI2uXV6a8t(UO76-h7L{AypANw52ZWrrI+EuHa=}qphHt?R7+~l?AJ!G zxjHaHpEA9W7nhd)x&IZ5wfIYJyF!7p} zhyJ;!Ne_}oUoC3Y3 zx@7oxLiVW2Xy$(JCSm&H{TPQYF?2SL(B!ozZ)yaBg_V3FUE-hqst}f7cgJ}f?^!E^&>mnGlRPRwRa3W%(5q@?6dajW}VFfV4gr#n4uMJFn>yIDcMMnOsyCiJrK zf(mki{EsE77pGbMNx`JIB_Nz+ZQ`P~qBNNuU(dzpmA^E}W;8iO-NJ8)fHlOuj-9)Y?<&c& zR8Qj0XryjcdiIE2L(xWx@mrTuWNw@ZH*lyNgh5&~*$zQHtJ2IJKZRJ!VLR5IJACB# z^CuEqW>{tdb_~$OWZ{~fXQS#BiCuf^j5c@}=k#teqeHqSe3I0it_DU| zN(_nA^N75W;l3FktDYA6&^p?(t|qPj8r?NmFrQz=NXO~%>~s5&`rF=G<*^^^O)GDm zaWE{@To=KXy4Wx@i+KywWxQGsFAZye2a8K3n|r!4f7o7~gMLm>cYET*;WLovXoHFO zJnO?7jC34iI{bKW-KvMMR~i~t_^7XJ=jE6&$E;`qQDi86dD6go>|9O7XGZ9m3VS65 zI+oQ^n{T8&ma$b=mp#`446@^4pu{4sKq8RpP%tPOMo(#S7h12FoacEAt#7o{PPk6H zVY}R@dYVv@ul3u*7t$=@2f1P(e@Ey{M7+d?9sDA97sM1)_}Hx8c-$PBBUF74USKjF ztbuO^^zAorQzBf8%pvH@nOx_CDlY1+@CegbX&JznqV%ms)0F~Vn9+6eV8rCj=V$dT z%O_ZZUT)0s-gv9f(c%tGgAOG*Xiux1>y2?UJBMc{j2B#Jh-;P=%2Gu<`Z7|BVrZMb zbpTeEs))ucmI8=xr~yJ=>6(Qf=iwwjd2xZ8q*1yP~u z2F#&|>~WgQF)Cit#WIiT5mXFA{PwOi#*ua@Z=JnYbMCuoA3v6KUYfVOlWizW@>TnJ z|1mU+ad##BdPT^6Fq#4^Xki~F!IdH+P}QSfc4oU{sq0jLdeZgP@4B%4Em=!H-C{nK z^3?9Kqg31hAuQA@EFF%kbv}Zl$Z0+ik!em0o#BOyuxsJsQsDaT;VGWEY(IMPa}K*v%+nH84Iu0oaKX3&OP?R&8NDH@R6 z0`)t)+oJ*H#%{~vS7j5n8@C;_lX!!WEtoW@NigTP<<5hSm=^Z5wYc{nC=?}mA{xHk z$WV)}-b_;FLEFAnU!q)FUbFlLOEv83jw?^aZPJ{1-wj&!T)ityRNLG;Uvj!jeLFA4 z0XnNU`+CJ%f*jk+QH!`u0dnl%*8OILTC|H0JieC)&-CA62g7jR93iZw(=(n!=_TLS ztiAjX)&mOVM{V*%;F+iTYXepclN~SAXdstYxz2VQOyX*)QsRlA#OQ{7iJAwf*aDjrbO2&j|LhED_OsO z(Y)XwgE7-mkoqKv5Oaa<4p1)5n#T+}z2e|UN6SfP4$oTl+`|k?5ocfb-21uARRHyf zK*FlG9MGe(Wnhm>Pn(dW&l+J!%Cio5>T^veoUuLoTlHVdl3Z@a-&xs%%b0%55tT1v zIV!dipGIB{Lb5EyY#%iHy*qWYupu6%_6q06)s3?^USxWi+7+Y7gB}&4*arZnspIw7 zNU6OmP2P~X%Yel-Qke-w44d}V^P7_II@VVAF0OC5e6>Ol*MR}1J}c**i6RYJLN-g4 zlibf!R&0jh)}zkWNR6#CPuKj-#g_BazvMgNEIuJ%`7)HBe&kNb=F(CIy@x?Saxb4B z`}iP&WW5svwNL$@PyzBx`#%`+MzqL(OuVpxn}6fwrhN~hsdawl5ajCMZRGh_tPfU= z7p4KC_C`IR6sQRUl{px#fqSey_`u^4yn0yJ4!^naJfzybjMreBP5=15@L`sT)eeDv z)rcWmTKeG}A@OSpd#$f0*qk@VfJ;>AJNDpcmV9vy(LA z;MO8P|KlDyP}vL-4@-#!HiH<;sdqcV_856Y@K2iz##&%V&KGuo-LX~N4XU7E08cHh zZ)$$7F=q%qu8i@z2nn0%Y@2096QUlINI70jV~>I;xn7VASpz0Da;o`a!NxbGzl@Z>4O;3&qc5VYGX*4 z=-<>5th{R6PvbJ{&+B#U3sNE=Y{n=$@PV~kpiQ=#moJV#>m6r3n>x}h%9t!?!P2WW z;t~OW8thlZniyhJzJ(bQdDYfUYeaak?$62a$4w23qcK=EaJ{7F^`PiJM`W1xaKw!p zc9LkS)W>@`A4FBi!z(CO`%A;kh*p3n+Yx4t>MuACy>kLlT9C?Z`7<^KXH5}H#1-V`^$hsBb zdN)TrG*NMY_I-(GuDQj296HQs6dVs%C`^@us)F=3ifDn^j03OSzXXT3T&{m1ry~zL zm*Q&2XWQuBxW3iE`;Ko}4f((3U>z5ukX!Vc-&jz%*(A*Nc77bzO#g6yiSJBC>Co&ozzDHBFz5+d5c9ujdstr(ezN=6)5P=+XW7Il};p-fMO53*2PdzvT z->|o?<95i-yDc)i?vm)0+$EI5^G72qeohRJ=(8_1pgg1{^I*N4K5d?^T&fg*S736} z`$o21A>wIlW8*#zaCE?<2OU3XX8j+KZ zZ97G%T)u0Se3+Gl`;YUB@?5Py07)@0`y_3x+N6YGvHfch%t=3Ep#WIxhRO@Xc{>A5 z4ZtuDCxDqy#Y`NzswP+rm(jQp`#{!lC6^F|P!d8b4yViMR4#B^RQOC}EGm(hINsh# z5ylGoWR*Rp*76d);_L!B#@s&lfr7}SS4Z2g`N4!;_igo*lzdF?QVDrB^Y)8NPE70r z4=zD(M^aNnOUQEUQ6Kbdd<$d)wrr&e80#4)tVoBa@($7$^ofnP7&ID#P&Q^@`Nv6H z!BUaD@Y8GBQ9Ug%4+@bQe|PF(j59>*2GT0rN56>{tMxWj#HaDy+B@6G$UH+`+Xr{4 zP^M;CTeo`QQdB!F@ZQ_2{O!p>5e`QWb~Vez@)HWi+V`)7r*~{E!}W5~b2x`L-4zx+ zuSri;o|7_ds^|z~V#d-wmuLDy)t=Zd!`Y@~*|;JN{}M)tPKdYDWYgcUgmMRUutX^5 zsBMMfL~J7g^RwW!Ni$bn!4kN_B6F%}W9eyW_~8f^)>@yEp2ch)EAw7;D5RwPRHz}`heh73$ufss=4`!hSt@_) z<^eQ2A8bouve(phTAEM&W#?wHOo`o;k{L-!mpLt>Wf-4lSHEo zV$4M@Gqrw3!cxm#GoaN3zZ%m(qR_AC5{OCryMm_5*L#_i++#Rh2;c?Sy>|Gi!R&tp7-HxTmA tJzOIaDPeU1;+B8QEu?cq&Sl}nk+PgQs^*lh5&|GgN5fFPT-7%GzW^pq-ZcOK literal 0 HcmV?d00001 diff --git a/doc/kformula/kfontinst6.png b/doc/kformula/kfontinst6.png new file mode 100644 index 0000000000000000000000000000000000000000..377d088ef3f9182fcdd11827274f2e5c510c79b6 GIT binary patch literal 6514 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 literal 0 HcmV?d00001 diff --git a/doc/kformula/path-integral.png b/doc/kformula/path-integral.png new file mode 100644 index 0000000000000000000000000000000000000000..cc21d087dc91ac3dfbde95a10570e3c0f31e74ec GIT binary patch literal 279 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 literal 0 HcmV?d00001 diff --git a/doc/kformula/scilab-edit.png b/doc/kformula/scilab-edit.png new file mode 100644 index 0000000000000000000000000000000000000000..79c5aa6958d56c723a8b01c5fc7176a76d07ad7b GIT binary patch literal 3410 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 literal 0 HcmV?d00001 diff --git a/doc/kformula/scilab.png b/doc/kformula/scilab.png new file mode 100644 index 0000000000000000000000000000000000000000..7bb27190f6271e1b94beb04db72f3c2575804c08 GIT binary patch literal 6012 zcmcgw2Ut_vmJVP6R8YXHQZ5KW=tvPfAV@C?L8{WF22d0dngRg<1*C?iz@dsns+7>1 z*hmN-L5hTWg+N5AhGqdK=+igveRJ=7GvCbY@6We(&MsN|thN5Nc496d^jNuBVKCSM z1AT2%7>p65e|VUg=udnE+Sch`RxTKt>umpQt`FYP;gt8sGb=pd`d4XMYz)rcL`j2-v^^}7RS?+%`g8BmMqSBs{j zPc`a|YE-Z49Xfhc@4P;9n+{0z_AAxf-D;8Ds*xns$nG;g5J6Ij=-NRz9mE~nBK&}I zSm#f?1VZU}u>;KWpLhm@JUboSp>(rNDX{sJU+pP$wF0X07vy~&%X^p0T`!gOdL(rX&-nG8~zpfV}(=G-E2KsCKmyJG+ zm6er^jqT{sqsNaQS5{UwH#fJjv2k>CL?V%1US2-m8|u#*8tv`tXMZEYGAPC*IR3wc zX-Gm%T|?XdW!u`?`spM86G>k_Jv~kNZ??hrA1Y~|3)iVMqsXy{nbA<4M63>+D4Z4xF$_zSt^$Jf4vcYjk4zNO~Umamku6xSI~An5t& zSY!+NUGy_=qxHw@x#_m7&%ELcV{AlITa}E*_lhRL1IB|sZ8yiA)rP#3k4LW&wDd>duuK$Vd8N+ z!=>0ITUR@OYaJo#TdCI*EsfVE?AkZDFP}QQ_su4lZP`osY|(lBvAx}?>-HhLD|2!g zXE9xfQg=#l|Hl<_&D@vO7kzrNamCwAlsx^nMH#=t7i6YL#;f!3AbU`S`0r}LnAMZe z<92S^oL1O=%(t4?iC)73)Q2g9Ti5!;xq)`xM++@&TW|91UoJa!TM1LGw)MU;gCnaVb>fMmL50PfUuWS>QJXwrVw??v8m&g_|DE- zPX_wLFSa)=UEm4qb(vYux;GR0V4AEmHA4=8#dq>=oVnK5?fMl-`_hnGQB{&#L0?mo zQ(F23x8>zy(!61{;I!I#zx<+t&g+_**D!NwMnGm*K@XBH_or3Y(+Vz?0ww0o0FeR>pI^V`QWY5q6JZ3-TTM zK$_jHFl56~h&u7z5f|+i7sKB)1l6a}dTqj<21bHmAdJAGCx(M@X^O%fEJc|pyC}QV z5$aG{>F)bw`xee4n37-s1AyhcW`H>K`1yy!Cnj{y>LP|RKn{J8-k9L{*7mMsv$9u* zmQuJmH;1x(p#mZKvY}W^5OU#$=N_PekdfZ^xhK9rxJ#_VDv1K1j9o70bYH?#axugz z9gY;q0pqT;8d71@-BvzeMEiz>ePHm{wSzUQg&-7FfsqUOT^Rl$^8hbaSdFg?blQEU zx7yDmB&`BZ7PqMb?L-Etu1>kViY9UQUO!AV?IzjdRkXGqyU(YXm4(5r8?YL%W2cB_wd)=?dmRgT)M$zq zULGN}sF}o%IvGf6%xX9}Sh@;zrPmCYrO8K^L>))+YxTEO4w#5=8M+0@IrkP|9G+L% zq{<-^KwYeLxnwa9*5s0yvdwkc@^PC0H)d9tscDAU2|?sRi~1BZJN)zTM#*F|t6VjQ zbBNyc{BNu#7b|!jxP7usXD<0wyDe{tE7~koD+w=Ipl0~GaXs3Ud^PoW?JPtT~lV+ee5Ac=Fw?hL;K z!V=ncO;Q<4-*>4M8k0wI-dkcriQH(lOx?XN(5?+cEBbt1Y*F(9u8Rb2DqnAsI#PKv zyBP_INKa(HCB%Tg&?$sOJKKe-zYKVXt;J9eHt}dxi~E& zaGEi>{y4#dU)UtU>VxEo#HvR{uTH~@{k~jDj|An65k&IS6_Kvz_>`<@@XMjBRGJ$* zYTSvEnzcHS3!ugYkm;b44s?8}H{oiQyn%|zJtM!+_(tz@5a##BDmQGu^4N>@(nY13 zZ7Gg(GuN|Qw=UV*iQsDH9DZRUE**!(IxQ35xEzMSh;xwSsDM%B_Qirk( z0oUk5Yp4?(=}jKjUy57&Q6qYrQxAdMvrekApzzKqk6#qVFi)X408Ug9tKr-VvQ)iJ4w$JJgGivby!XW3i02-8_#$C009{<5PLmpe+NlC?nq$_hnd+%L@T%jCnZmqNPEwzVOB-!ARf34e|+^7L5|{sjnf+SnuU#x1=)RM zKZAO-HP0lkuhhsSYp;gg@#L%!x{(_-BX=xkYeOAYMhQ}hq|Y~#M`!D7pM3CJ%mK0* zf&&oN(5O)J7lp;(^j1P6Z47Yz&rV|s-II=!f_>$!6%eMXP$H8lc)>ZkET9AeukJ?qe_CD2vawR*%= zE?5hC#crD8T+oz#j)Bs`2dFAV5F_b2@1reC+tf`24zKdZ^e*NvkC~_HA}F@JJTGoK z&xz0%+&04!IYj8E%8av-$2Q2Qz)POD5fn-7)1FpnL}eC&TB3Db zDIwl@fuMlNXwk{B63{7$rjV7qB8Q{%nL<(tCvqk9sIt;GA~Zl zymL8fC=)w$2h2*>d`n~@G(I3?5X6bPSUUg2icS6AnVE#vH46Ut?YyO|^JU8iai0c- z&kfZFJFRqIR>-ib5u&y^CC|$}ExahJ1yLRnt5!oiH@a8Gj0jelV39lU!Xfqf!{nGj zCO?0mBW|;jV$L%ZG2^>EqeS(OT@;cjWxptkzC5T7y%SND0^K4VG@xh6@+cK>E-Z*0 zdGKgwinP6l%%btjCuLnt&m|OQ2p)EG>u!2b1Xey8zG&A*oAxame0v2y>7a=a+PXWV z4f*)L(4(B$1*FAJC3A@!r}husBi^!F^^0jXn6xC~*36S=mDA?Fc7iw;f*4u|7w~L+ zl;9B!M)jwr(sY}Jyy`&oUbpOl)WU?xOfk5T!L;I2iHyKYUhJMg7oo&a(pu@{m4ZWR zCX6i8`+43ylhQ^=J4jz&9$vMzZPSLr)98Nw+~}XeW*24uTSeQPsaHAUe+#r<;(JHn zXZ-DScH;2ogI|I9&jYBP${>mJSBCgozCf5js_afe!CFc3BFMQr``ZOc!@*Oh&(cHE z`#oxn+?>)|ul1J9e}FBPg_Q|X(4A-0I^Dd9J==WA1ALJpgZAt-ya~+bi9>K`e|pNG z@s$ReZi`>c*AaU;l&Q^IUGwDC}Ka8Dn@5_)8o}wxll{B+Ve*q{#IB)DueMFdj+l-^FfSJChjdZ(Ocs3sOWDRLcdu`aNPBp z&-tu19p0GHig_bvqvM{-rZQzw0exaw@W~JtV@YgcG^hthPG&Y3N+Z)i=O+r|Ug9Fl zgBT%fViN5r#rHa9BnIr@3%FJx4WKgdV3)lBwSy#f4BO}aqCOaK6-RL|U}kQhN=Uby zlg#LGD)CGbi0~!Hg3LGdQAHB7lcQ|7Q2|_kb(%+V>3!>jH#rBhPun&JG^-WyT2gFB zod_9w=u`&QD0AcU&Hrv@?BC6u#QCE>_+kH@fy)jkPgUPS&Nnp^izdUw!bTbq^hhs5 zk((ac0>ZWVTb!OrN-($NE`#jWT#Jj(cR;t^hsdVl1` z>tt#$5r0)r1d7G zb#APDzN){mL{mYxPM@lIo`R3{AHHYVZ3?_N#$gi2=@>q5IOi(;e!Bx=UajF?i{@Z+ z&5F}4ju5CSh&=peDtqIVm69T*7WppkpcciiOkqr7|k6-q>)(9mnpf@^}ST>!|(p^D#l+BXOXXSmm%;=AezztgyGac&FOpZYFUp z=Mn(iA1f(;=*d`>6Uc4>ktJB;KXS`iI<$?B{lPP0*JdlHNc`Y%VFicHD-Kgep72Z z_1Ia#l_)qA1Cp`l3Jg9XQSvIfW=ACH4Atmg)O;a&Wiy#9Yi)~|*M`(3+ietCa{CiV z#nPe!veuKaVIbjHY?Q{fdDS?>Dzb;ZR0~1rUUY??s~qV{Mca3}_kQ4_S8=u68{z=c zKTemIa_AQ7s6L^pf1$i$ z;e4bVye!#lVXv6t*6qkc@{+LqAu-YUf3Vo-LGPbvA literal 0 HcmV?d00001 diff --git a/doc/kformula/shortcut0.png b/doc/kformula/shortcut0.png new file mode 100644 index 0000000000000000000000000000000000000000..f538419e545ce62b22fb574612cfb3a096260f7f GIT binary patch literal 6901 zcmbuDc{r5c|Nm#k;I`jX_GTePWXm3!88VbadS|VWWX)DcVT>U{BT`TPh_jPPxzSH~t{{Ft->vR3C-#@?C^|-I=KIcB?zRrElxnJk?dPW!<;n{`RArJ_c zfxhl#2m}T|AW&m~iBYpC;ByrMVS*SNUO5MaLJ#xt+MUsOrXZIuj<&S2qOU(Zn6cX* zyR<)|vp1mfyGLpNC;njSE`2?dzSBzI8>jED(EmT}fKK0|(|^O2ix@h zE&ARTeP@%tL8GtI=*ye*rT-fXTlBeY`pgb}`ft{@w>P%7Hvb<++uU5=++6z?+Un-o z%I5O&=F-yU;_~MF(&p^a=Je9$F~4)afbe)a2icQKv@!VQhM2Y-;4!)X2!x$nf6`P5m02 z{53c>Iyf>sI5IFe(mOEH!=P`Zr+1{MXQZd=ABKCn2D&b{|7?D-!!QQx2Y5VhSa7`YSRe&jtTF^g!O2J z_h^Losxb)bRSF$aj+oSl9K%MB;G)NHPkvn>kC;3gw0O~Fo%quxje7gdjKjN`n{TFV zUr*Ym{Iq>ieDiUMU38I%f<_%<+$?u58<`$VQfIf;yrG|hArOI716}MDzrn@ii!P## zpBoEfM)_=)RA=PUqWM+qC(m)WvdW_il~hMs&)XCwgz^t^a+;%9NTDVlK7GnlbjajH zH>h!Mi5h4|jz^l|n$tYsSPst+rZQxihEFeV+XZ|jC^H&h@kG7 zvrwRM0mVVv!@WF|iwY%*Zr1HD?Ch$`v{Or&&;d+PR-tP+wUlr z#a_uLPR2WyekzYDCI#B5Hd3&!5*4eIbT7a&v=^?H@Jl2U55P0o`3Ap(| zO<{N*4m0ToSXm#r%?fC`Z4O_%Ws3lAdJ1uqhC+0X#hBdJZGINr5IW^xTtUke2xU>X~+xSG^YRcru4M6DU#e{bH+@_bXvB~p!pRC2!Yi`2GjGdK(vY7>vL;7=*qaj5o7e$hJpm3-v%i4zXm3asK{ zm)69YDT&n44*^sN_U+9B%+rpkSFcdp$6U`~9CKi4CNTMfXiQ>+#1$~Kh7PCPp#_I>D?^k$UWlxqK#OjDGoi<|pJ zQRHuwsFky~Sy0+r*2ab)tNvP^y|dMqC3sZ0N}O3QJiKP*a8gw@V?oDQ2swZ8p7v%< zQ-%$j`P!Z&#P(9K$A>6ccVt^xl~!^|n`$XmZBt$C?Tk@EB=_5fFO?Fbk&*zjVzoy_lL^Cy1)<5y+A7#GK@x=Za6L|2GBY0&xCH9B_+z9l4es`j=BOmK0 zaP^F*wJ@sa+7r=l#{qX1Uf)jlG~0Pe*Rf3#s+vPXFqWVf2Did%)j{F<>ON2kI?hE3 zKuUAhv-B5fAB`Ox?mvf61!odO_iW`y?bnt91Gw`b}3&6+B zUda^tqBWJ35Mv8YJp{x3EIp@3|9Wnf?geSaWdIP0AJI71i(5Z-^sgN0G0JNRCr<5HMs$k{LgPP(0EhV-nMq!`4j#rgEzh;t zabpwmdWhZ19Pm(9OcN8pQ5-(X3xQ#pP66?g;Sd}**0JcSxNuswuj zt0zfQ3m{{v{+;WzV<@Fmth#Zb2+($W-k96|=_qV$U{~-eOj%Fj+1NF!iaU8GF9Umz z!12B_A99pWCUPzhs#u=W$<^ZnMXQj7x#xwm;`ENkk6jzOYU^|7qjmO`7tSrxIXqSn zC~880I_Xr>QX+n&pO-|kCsCUPW42~9R?2X!YOFdRPHl6&Z#}Sv)1%=AJ7~N1M3UU&@5hpO|Dp(S3Bd1otRsQZr`EkA&ce^zN+ru}zTAn$8Xar%tAG==e9UrJmG# za~G-4k9l`B=SuG5?1ZP@SCm6q9TQVy)h3!OjJGwT-;@~=TWsAOrtzNlIduYp^UKQg zBO~q3Yvl9W6I~rc|7ocU6Pq4LOsu>9bcLDY*0FWLuw9s~lT(DboTK(FUr|?Q*%|mi z2m4uxA1y;_4{t_v$7-6qE;HN+MSB-|l-N56X~m%5(K;@Rf!~T1y8c-<>Dr2tbk@;` z6z%V15g^AY>9TO*2kzxTe~I~VC@G03j}$|*0UYD36pEvLfd*sY$as&9N8d}XcB#El zQnWZaQoPtG{^3coWkziC%11XO0vc`B_-WM{i9pZjAUVBFn#$x6I3%Jbz9lzm{+Y>- z4mJH|aR}){NX%#a_PiVcLiU*NU2d67h2WlOQ4R)XXAg3%X!Cs^`+9nAwR+*rJkdSX(EhrtbT1ZYsfv(t=K)b~6%~y-)fzlAGHT!1w*eml59( z6gznU8mx=vMWnw_q`dmF@4r5k6(}xnNQNEUUf5v4G*#ejyv?%4c-NMA zg`+}p%p`!lr_q()GxOAot)b+YZgC|+*1o)en+ckBTR)hCGj}pj z{gErcHBE|rMzh-X>#`r)Hx9w6NEP(balONE_G)^{_5=s1TN78TR{Ciwr@F)2ZDd_1B}5kIy8w7)lWQZ=bh8h=@z;}!Te>NeN?j}|{A`OmJOtsfX*$24sfvM3n_XY;Q}oijX#4>tw$QL!fnT!FzDC!#fS#-Mt~xTEx)-iKZm}Bd4wPIuK*! zchWb=*}0E+sw0_eA_-u5yfH5$R0zR0;e^I^*5-Vv!v&_M^!3TLW6tn3OY%y-^|&`( z{obwO&(O%JGKW>+)Cxsq(=hD1m7X6x@TSibt=o@qIq|e?%ij3Q zLg~f{{R&D@(2JQk#(TV^)bJvNl;lrJ&UGl<**2OjJVV}3%sonoQ3er~bHBu0i&d8W zPWvtyK9Cj>fx!zJ@j}D0`N@sOoh}WQQpFZB3$E_N>o2X^Q?(x~4F7%}GAgL+6o(Bz zsv~tG;I--8tdhc~N$>ogpZ$aWRJQ^}m_;Dw$!lG44%`ccxP}x`k-x@8LnV$tw5R{e ziz#&k`EQ8y7Qyr5%Y2uGb)4*`zgHzMx^Yv!?fEodSJqf@jJ3agFjB%pEUhZ8Qq0qY z-4cf1jI%h_d>&WTH`o4-ETL*@sNVD=yCuFPr!%!!LKX) znhfZGgAKpLW89nwF;?U>nNy-V@&a%O`Vu1eF6Jpfh{;gI!QmnxBNReli;dYiPX(jS zu%ISBMuDqPIGLab`v#P`YzFhAtbldFsF_IS7l7%HSU7Dl-E*HN|L`7wdcoYvH zMGIpA%2{f3YU4hcIE%l9kVHdl{77eIWn~Zchlcv{ZY+C4Nv=dph(C!#Md^1%VOMD^ zoDgFGhC5=&9-hw_2kMuKjO%9)?6Y%j=DB#W3C#(cx1?|7Ky~8Is9E@6i znvoPIVe|E_cn)K)UuT1&IMqhqT99qFL+m~+e0J$zIliv<pin_Ym4_i)q7rUiwBlfT%ebK-^x^J;SFv&EiW~2uu&(=`j_&k zf|4c-L%?_7Op84o-}i3moG7voEmVoz*A5HA3zjzI1gIF!%G;e^kQBPs1tr-&=XD%a zgxwS23ymT`DE*r*;Tr);k1nKJ4f2pQTAt{?&?m$UUehU4RZ@R0ii*-d!Pqh>`0%I% zDnhg-nHy#QQ~a*5f&>f6Dnl)h1>3PM5B zU;2UNlYFn(Dw&&iVvk%xcd<0rM%>dq46jQ0uwQ%k#eP>B(`6MNISZp&qg#{deR?WN zQ%#r{iq*jHN3zBF`X%Z~Z+%0+SNN<`)~GrV9^eR0bTt}d-5}t^RzjTg5AUac=_PiZ ze5--|%2dbmd*jnitA+W30LeJ`8D;XDzEO<^5x-5C8$^s*NT~yd4}L6h;;4$Scxx*t z>8^o3H_?KONhb!q`{2&cw)mMFHuF7zWdU?r9GW5Ium?)r>3-m{N24x z&uQ8zn)Y8fP^6zeG7wO9o^?Gbb7?i>CCapHPH}0Ja!-(zf zv~=X9n(6qIMaBN5H^gC)l2U(N!Qs4YGctw`zA71fSXdV_mbjX3HT+u@zRt@;6s3Hd8N%IqxPD(WY2n3b5p<7SCU z%Xf_9z0;&f;hM+4=*7=WU8#^s)a@udbSEbzhAvVLx z2^S#PhbJc2hOg#5=#a(siO1E+5tF1>W5rT$hUzJt8u*KYX#t@encXMjb*3n4S-kw@ zR+4h0Xh>TEjZ8Tb$sOwJ-XnK;dHg*MLj0l2i+b39o9p^JJKlC-Jt5L6-~a4B5W;X@ zj^DXK*T_vNg1juMQqT~BUZ(~iSu-I4$VMo9gW=5oM-=#1C)mwL=?;d3T0Js()c56O z#Cg9}qY^A&(b2=B4h0zJ43v~s?mr>%wdMig-Y-~VPHC)9Qm7u1B)dFYn0qvU$G+f6 zq49H!WPNbj{@HU{xIaY}jQsWf3*AuCXz~}IW-)_C3rP_~dfZAD+I$WMYmKR@2rDz& zYN#w%XUE0&Ju$mDTAseALVC%>=-xGP}D34VoQAgupK(}-gQ zU!u@RQKbsP=rhP9<~ZveFl~?Rf2khbB0%)jlg^`S$GfOi6PAYU`hP@^R$mEDR7^}< zNOYD#ak{>KjsEihYgCbT>V-0wqxeR_YC{7RqdX`Xera#0m`s@_kRK1#o>(Ih|yR2YZwqf{3@%) zL#t!P%{V{GodECUlSSaa^Kp-KY|l6IHu4Cgj=^nv18SuFi(Q}q$I;vgK1P#6@J7#w z5W6&%L-*1$skq;{P!b9C^GUUPtDjtUHiR@FC?egZpJm6=U88*m{3(aaIKSXxnvCZH zSy<3(@70;$kDi`X$W!t8(pGQ=D6I%KW{A8{U_V%1fC+XFGFBo&QnR8lQ>-}wJ2kr< z%er@w3>P2=M26|JW(pKtRRX*fP^60)kJ6S{N$;gDo4$YPeHEj3KKB+O<}gV@CzFZ& zc^oGws`p;Q@aBg_`_xR7v9hbLI$qD(5ibo%M}nlq=A>C}VhP_pHtNDSOU;_z&%Af) zv!DA#y{$7f6ZT4n1u^;nQ%nC3S74=WWQ@0f!{7<1E^!n zw&~BWK!M4-i{o%x?Whw{dJj5JVrH1&bAB~UAd70JvpZ@-?$5B!Q(gSqxhSKXp2U0z zC@VyY&t%u6P$US9FVA47=y2gC6*1;U=OAb_AaV(L{I3pNcI?N1pKknSro4kP$4yh+ z_`8aEEEULbwv2(tLf_K=)y@7>N=rMy`gsGBmhOiE@AIC?-B$`xi#iSz56+$#4l4Wdz7+dzpmShwmOO&;-Git0up)mHXE)~MG z3|YsR8T*VFR5TbOOMfCt0PMf^Z+_t{sr0RZgSGBduYx3IAA<-f80fAjsH*!m|n|35Z<^6h`K{ugWi z$=APFU0vlyZs)S{pK$(S`3Ib(CC=g^w=Z*DT>R00g6hF*`C*PZIm=+OCK#*%gxQjf#COt%82%cBYByiq4S-7$0EQbwO`I@##Kh{63aWZIZ^>L?=Rmm^xq!#_+K z(n_LhCQ!K|5(c#sD2RjsjX1J;ELk1Xr+%+TJ*Hbdrt5t4`}0wqYEd0(k)&Uqi+Iab zHJs~f)w^7Ys&}}ytAxIS2R6X{>tO!1XKq%X@vVS)7s0P)!`;&4ol<2lrN}rWOWP+y zEy5)Xe8iDAxJnpYH?g#{wz77#vbtqq;eLM-%56|bBpv91o2=F@37SM0v7z1yrF_#~` zN23eDuY`1CVd-e&-EGHSd-{5xh!K^1Ixdp9D=SMiregXYU*xWRi6FuM^R!U2*ieWfR^-aBzIslnQek^9j0T^D6blRsCgqjb}|wsTaGJmP*sN9$^!P zE~`G<9(aXKn47l*Z|loo&~!wK$=5uSpcs139vWM7sxe?51Nfk0)O`i!_g&|F!V5E@0i zw_}0|9)ux>${#lLii9=x^7`nVGPA9{S{(BJg+I6&hWwH`l@!m{=De4;+S?YpBm-^% z&l@_tE2Ho`?0?sNJ^}qzO33&*h22T*YjAayas92z#YPAId0~H@pmR1qvCTPiK2a{= zi#Y#W5aD2uRe%jjuNS-WL@qUJu<7LxvnruAdg()gV~q2=$Ex%H2J8UJ6HGscus=1MVysQpSw31`#`?#UCO5U^hDE8TJ~Ym ze6T6C?xFEe%6R0sfn0eDJD*2W9{*YQcDo|!VOz>M5343eH_it7)XT8%m2n-={!aRE zPNT**SGAQECSSCdimPyYNP$bXS*3BNr}kCh&XE3l?V)={4|kyTV%rew(-L3z&drGs zBhaDdM|`LOcl82k<8fI<%w&JHgnn_|sebG*Y4?&wGXj?AAz8rGQ;2a1Hai$1@$m2^ z^|75_wW7OjyZ}9X{45T0eHX2!*+kC!Fnz96ITmw$eX4td(~g+bFBnzaU0(zcGuAlU zc-vkLM{S?)oK;WfZ1@#Rxkg@MRVJxlq3yUsnzs!qcDb;~WHUU`iC**_eR$vx*v=m!Hv{Dj2wi*E_hotmVPY{Y)jP- z|2FiI$3fvND0V!C7Oz^?wC{#Bra!+5L&M8VFY(DHEu!_`(CyBE4`YNl2xafvo4*Tp zVl9teX!dBq`Lgq5{VM_65_4at zjcwk36Oi@DkvF}m8!fyl3@Iy?I$F0+vqXk0JahE4`?%GbhJJ6*KgUnVD{_;k(1v2bPs`CKldv@97mYRsFo3 z0<#@c1`p<;)wHz4UL<{c(N{y$l5rP;=Yx3vR_;ph^S3YUNi`!H9Mn*VEmL13 zFcE5Rfwio~nQ-aYfmCxH-0HN*^&)0~YAynN6Ff1R;Jedv&9}z&I6+MWDC~YCi6aMmrtUwBnmViap#U@3L!qSZ+__T|Wiq$1Ulh8{ z=Q+!ZnA!E{v{0fw5eMcG8X%}Dr6)2e7rS-9dDPwYTIyZ1?-AF;Hxo_hIFevd!EvQp zYyMMnsB;XZ{+7G=O%$4E{X?oIX?{eX$l>@7Yfa%6Jnh3u^K)u$g;~R$c}{o8>?iecx6$|3!g;rfe)z7 zJjM*!mAVA}Asli8uzp5!^LK4V^V@N1XBY;fHpRx82|jh%``E?9L&Z(p8AHM-N)C%2 z;Ty44)Eh&BS6)!es)LRP-HZi=RP#U}@>e81*8(FKA})g`2Q7R}(JEIFt-H z20pglSDP>TP%UWu{R~EM={Zwd)&UrQ8JzrNbB5xJj&u+w>(un^fM68CuL~mS5G|nk zHTmFmqtbpxHI9%rcpgF-#D<*hTp#sCr(F~Gs%!LwQM}_q2zK>R$awo*tO_~wGnYy# zd-)Dgk0*En8))gJ3!|TfHu7F}%AQ#vVDO2o`NQ=!!I#llc}IG*XF-M8SLAA~KL;r%iXn|_qF_6FAEYeW(v;yAM z4W9AKf2)RM`Q6+VPK40^H0~K54Jh z1F^>Y3l~LFYh;|SVM^8DR;7V?GPWgdZWrr{2WyJG2qqaIGvdHaM{tcy`s+mOaj1)= zO&zP+CHeGOJBZdIf5otWk%BeJ3+>`_6yhA29qYzt73gB`p{4O z@CxP2sNoHaCs>xEFX6Br^j8@;Yf5 zE#F%94mO**h^Wnz=Zl8&ENY@kw@)2Mh(3qSc0R&9m!8wynybLoe(%C}K7U-?TQ;Ue zhG*Hw=0Ym$MawmQuhj>2P@FZ~d&vOVM5}413{X^1Q5Ym(a6EmVk5O{24e&man3+(X zH!Db~n875GjhdvB^O=Q{`o_RhkicdOziX{FMsC*t+iN~aLH${7$L^NI926i&}%ZDBdP%rvJYmC{=;hq&=mBt*R!DUS-U?`ZK@l@KL(X;(lNSdL=*uki0cI@!NYDnb3YhH zW)J?nAvgr7O7AMPfxH#rF1PQZ`Zl{~G?7ogZ51@=xA+6&BZ;LOpR>b{EgR{0b7Ha{ zi1$QF1$I8dg=RzK$DT@XE_6>HN7rYVLgZCJ)kpi!m;+5e<20o!y}@bQ#xY&X+uc!n zRgv_jED5jfriA!zV;lO(h0r32+jV|MlOL!*R^QKhD%J>xT{n2ZzV?8iT0a^y;gv$V z>xv;<>8`VZ6iSVFw_Ez{867Jf>M}5P-7^YlsTZFtI9y0{HVHVRZUuIKBMV-vw~{it z4_a8@IC{9=_hV4lw3i1rkCpec_x8%UKt zvZM!?dnbSqpJ%aO$AbHYzVl8U!9~pBp9jG`hX(N_g|!BOsnAC-m0o3L*kCL2BTjNB z3Ve1UGsy;WBT13H!va^yWcmHr#`<#`%f^URUSq+y}@ bXzN(mBx>Vk)$m8|KR>`w52ahB?Hu(lw9`Kc literal 0 HcmV?d00001 diff --git a/doc/kformula/sin.png b/doc/kformula/sin.png new file mode 100644 index 0000000000000000000000000000000000000000..b495d87439b63c0021bcf5bcba9f45c0c926020e GIT binary patch literal 1989 zcmeH|`#aMM0LH(JGs^ukqcN?=oqX4$P&uw!t;uz{b;d?^T;@`GrlvWW5w-U4IJvGP zawx|wJ5)k*IU0sgo)}UYEpc*B!;bTu|Ka@9`@HYx{r&yr&Gzv+wa;K50064E(;j|% z&E89Z5@e5-&o~$WfB-(81dQyvzAy0qFR&|T2t%s;anLE{DTOW2PlvNv2Y% zVPRo`fq}k$zGv`f+&$c#esr>Tum{ngxrI5>7zu;H)YR3WN>F)-yqugIAP4+sR%9w3 z02I=29BS;ZT{WnY$(WKcp2{mLS|{F9T=q(~`gq6%IDYL~wmONx2a`7=BtnQSrZoLyo0KGo|fu^>2U}TW<~G3gG~kuF~aIPQ%92q5hSEC97EX4^u%Qg}h1N7cJ~U z+lTm)wL-I1a5?x!Do4leMk*{vG&@#hr%Y7M19y_yh&OFmp6GIeoWuR&_2Md5Y>Z)0 z(ji)n;%Gjf?RMY=eLBrdSj9u@PqYj2`Im9^JQl?*rN!%(3;m+AL`+oF#FOI1_s-9Z zdXAJ(mY)@Vx&yf+HVv3J0f}YoNO;C#dr_X)rK5AFCxJ~at0;bYyk@4m4FeWMY2k&V z>1B=~aC^Ws`UPS|(2dEk;9_3Z*FKPk5$re4@|KWW!g z-k+77#SJX}<80GiQH;R(;JKC8Es`A+r&jM`X(LjoJ{Jw2$k}O@Kv&bZP73wh>2ku# zfH~)Ml;Li@g+^ohhBhHqbXU*w)28Fr(l0%;@_Ecl8rD5)%;1Cz|>bMgLNp}B1idyqvJyw z_RDt|i6!xNEa&7IJ<^3J+p)%^vYjJrOUb}EbtFX>8>~j5wj)%cf6MgM>%*lG%%z|e zJ)4GVZct5q<;Etr4oW7)1Fv0#-l~;G#{#vjRxgMgbyl_2LtfIRqsI7x%vQ6x(L`^l z&oHq!b2}aMt6uAF)jdbRz<{sw3vr(<%!tSgN%oTfVL`NZ1Z63>D4O+qT+CF(0uMZd zE(IIlz%_`2{JZ7e2s;!#S8O`x?h=d7XDF0^7J-}L?ZnzObrLo_^d_w1`aKqzp-Hix z6S*14aT+3a^b1eeY}VZVtF<*1EvJL()+2}V2D)Y*AL;8VcV=xteR{k;NZxnq@BK4? M!+3erxsjOv0E2h*kN^Mx literal 0 HcmV?d00001 diff --git a/doc/kformula/toolbars.png b/doc/kformula/toolbars.png new file mode 100644 index 0000000000000000000000000000000000000000..7d3f9798187a289413d67c8e1ce6444049e28290 GIT binary patch literal 9201 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 literal 0 HcmV?d00001 diff --git a/doc/kformula/upper-index.png b/doc/kformula/upper-index.png new file mode 100644 index 0000000000000000000000000000000000000000..3147a8a29c8d3c1424f4c2541c4c8fa77c39f0c3 GIT binary patch literal 1216 zcmeAS@N?&q;$mQ6;Pv!y2?EmMKrGF{3?vtrJ$cE%z|0Wf6XMFi$N)r)Fu=sb#LUdh z%F4>Y!NJ4B!_UtzEG#T0CMG2%B`Yf{CnqN_FR!4Wps1**q@<**tgNDp{c2Cc{uWw*rU}$J)WMpJ)Y;0m;Vrpt?W@ct?Zf;>= zVQFb;Wo2b;ZEa&?V{2<`XJ=<`Z|~sX;OOY+lq=?d{{^F7Z(>FAD@trkeHa5l$4a5oSc%9lA4;DmX?;Do}Q7Bk(rs9m6es9ot=}D zlbf5HmzS5HpI=Z=P*_-4R8&-4TwGF8Qd(MCR#sMCUS3gAQCV48RaI48U0qXCQ(IeG zS6A2A*x20M+}7IG(caP3+11nC)7RTKp>M*(2@@wzoIGXHl&MpuPMgwyNYpP4jON&a1YHDlh8tNLG8i7)+ZLMA1T|o6S zXU<%(V8N0lOIEB{v3AYc&6_uG-@bkK?%n(M?>}_t(2*lYjvqgM^5n@=r%s(YbLQ;X zv**s8yKw%(#fulOT)uMc+O?ZEZr;9q`~JQAj~+aF`uORKXD{Bqe*5vm$Nz%_{QLhO zi2haAPR=f_ZtfnQUfw>w ze*OW0LBS!RVc`*xQPDB6aq$U>Ny#axY3Ui6S=l+cdHDr}Ma3nhW#tu>Rn;}Mb?yB# z7OYsmbG=+s^Dnf&-zv4;`+X9loZHjNzR5ZcJ@TK| zK50;^{S|dG|M?dwwf)Zxf4g37z5QeQ<|_gD_PgBL|D4XcbwuQG<8cv&8Lzia>z%%m z-RXQp>$R14cg&Awc)j9TqG4gw&)lrA{`t21xK_lMH+-|4_pQq3{XM?lue{IyKUUB9 YA^hn~hjZMzK<_Yky85}Sb4q9e0D#PM*Z=?k literal 0 HcmV?d00001 diff --git a/doc/kivio/Makefile.am b/doc/kivio/Makefile.am new file mode 100644 index 000000000..085981d9b --- /dev/null +++ b/doc/kivio/Makefile.am @@ -0,0 +1,4 @@ + +KDE_LANG = en +KDE_DOCS = AUTO + diff --git a/doc/kivio/credits.docbook b/doc/kivio/credits.docbook new file mode 100644 index 000000000..1a85a4e68 --- /dev/null +++ b/doc/kivio/credits.docbook @@ -0,0 +1,64 @@ + + + +Ben +Lamb + +
    +kde@zurgy.org +
    +
    +
    + +
    +
    + +Credits and License + + +&kivio; + + + +Program copyright 2000-2003 The &kivio; Team + + + +Current maintainer is Peter Simonsonn psn@linux.se. + + + +Contributors + + +Ian Reinhart Geiser geiseri@kde.org + + + +Laurent Montel montel@kde.org + + + +Frauke Oster frauke@frsv.de + + + +Dave Marotti lndshark@verticaladdiction.net + + + +The Kompany.com - "Where Open Source is at Home" info@thekompany.com + + + +Current documentation is maintained by Ben Lamb +kde@zurgy.org + + + + + +&underFDL; +&underGPL; + +
    diff --git a/doc/kivio/index.docbook b/doc/kivio/index.docbook new file mode 100644 index 000000000..02300cedb --- /dev/null +++ b/doc/kivio/index.docbook @@ -0,0 +1,64 @@ + + + + + + + + + +]> + + + + +The &kivio; Handbook + + + + +Ben +Lamb + +
    +kde@zurgy.org +
    +
    +
    + + +
    + +2006-01-30 +1.5.0 + + +20032000 +Ben Lamb + + + +&FDLNotice; + + +&kivio; is the &koffice; flowchart and diagram creation tool. + + + + +KDE +Kivio +KOffice +Flowchart +Diagram + + +
    + +&introduction; +&usage; +&working; +&credits; + +
    diff --git a/doc/kivio/introduction.docbook b/doc/kivio/introduction.docbook new file mode 100644 index 000000000..0fac69144 --- /dev/null +++ b/doc/kivio/introduction.docbook @@ -0,0 +1,33 @@ + + + +Ben +Lamb + +
    +kde@zurgy.org +
    +
    +
    + +
    +
    +Introduction + + +What is &kivio;? + +&kivio; is the &koffice; flowchart and diagram creation tool. It allows you to create accurate scale diagrams by arranging pre-drawn shapes and stencils on a page. The stencils might represent stages of a process, office furniture or components on an electronic circuit. &kivio; comes with a large collection of different stencils which are grouped into collections, known as stencil sets, by subject area. + + + +About this Document +This document describes the features of &kivio; and how to use them. There are often several ways to perform a particular task. Where possible the appropriate menu option is described as this is the easiest to explain without the aid of screenshots. Users are encouraged to explore the menus and to try right-clicking on stencils to reveal shortcut menus. + + + +Contributing to &kivio; +&kivio; is a volunteer project. Your contributions are welcome. If you find a bug whilst using the software please report it by selecting HelpReport Bug.... +Contributions to the documentation, stencils, translations into other languages and the code itself are welcome. Please see the &koffice; website for more information about how to contribute. + +
    diff --git a/doc/kivio/usage.docbook b/doc/kivio/usage.docbook new file mode 100644 index 000000000..7714ef436 --- /dev/null +++ b/doc/kivio/usage.docbook @@ -0,0 +1,203 @@ + + + +Ben +Lamb + +
    +kde@zurgy.org +
    +
    +
    + +
    +
    + +Basic Usage + + +Starting &kivio; +Like other &koffice; applications, on startup &kivio; presents a startup dialog. The dialog offers a choice of creating a new document, opening a saved document or choosing a document from a list of recently saved files. +If you're new to &kivio; begin by creating an empty document by double-clicking on the Empty Document template. +&kivio;'s main window contains a view of the current document. The page outline and margins are shown, as is a grid. Surrounding this view are horizontal and vertical rules. By default a tools toolbar is placed on the left-hand side and beneath the document view is a page selector. Beneath that is the status bar which shows the current position of the mouse pointer as a location on the page. +At the top of the window are the two main toolbars. These contain buttons for the most commonly used features of &kivio;. + + + +Using Stencils +Diagrams are created by placing different pre-drawn shapes and stencils on the page. Stencils can represent many different things and &kivio; comes with a wide selection. For ease of reference they are grouped into collections known as stencil sets. To use a stencil set select ToolsAdd Stencil Set. The stencil sets have been sub-divided into several groups; a sub-menu lists these. The shapes in the stencil set are shown on the left-hand side of the document view. +Stencils are grouped into stencil sets for organizational purposes only; it is perfectly okay to add several stencil sets to a document and &kivio; allows you to mix and match stencils from different sets freely. +To place a stencil onto the document simply drag it from the stencil area to the page. + + +Selecting Stencils + +&kivio; identifies the stencil currently being edited by displaying eight green squares on the corners and edges of a square around the stencil. Stencils shown in this manner are described as being selected. The green rectangles are known as handles. +To change the currently selected stencil move the mouse pointer over the stencil you wish to select and press the &LMB;. +To select all the stencils on the current page select EditSelect All. +To deselect all stencils select EditDeselect. + + + + +Moving Stencils + +To move a stencil to another position on the page, select the stencil. Note the pointer will change to a hand icon. Hold down the &LMB; and move the mouse to the new position. Release the mouse button to place the stencil at the new position. + + + +Resizing a Stencil +Select the stencil, and then move the mouse pointer over one of the handles. Note the mouse pointer change. Hold down the &LMB; and move the mouse. The coordinates of the stencil will be adjusted continuously as the mouse is moved. When you are happy with the new size release the mouse button to give the stencil its new final size. + + + +Undoing a Mistake +If at any time you are unhappy with a change you have made to the document you can select EditUndo to revert the change. There is also an icon on the toolbar. +If you undo an action and decide that was a mistake, select EditRedo to restore the change. &kivio; stores multiple actions to undo/redo several changes. + + + +Limitations of the Stencils +Note that stencils cannot currently be rotated. + + + +Labeling Stencils +A lot of stencils in the Flowcharting Collections, Geographic Collections, Hardware Collections, Miscellaneous Collections and UML Collections can contain text to describe their function. To add text to a stencil move the mouse pointer over the stencil and double-click it or open the context menu with the &RMB; and select Edit Text.... A dialog box will appear prompting for some text. Enter some text and click OK. The text should be shown inside the stencil. +The item Edit Text... in the menu is disabled, if a stencil cannot be labeled. +The font, size, alignment and style of the text can be adjusted by selecting FormatText.... Alternatively use the buttons on the Format toolbar. +The adjustments will only affect the currently selected stencil. + + + +Selecting Several Stencils +There are two ways to select multiple stencils in &kivio;. + + +Click once inside the first stencil you wish to select. + Hold down &Ctrl; as you click inside subsequent stencils. + All the stencils will be shown with handles around them. + + +Move the mouse pointer to a blank area of the document near the stencils you want to select. +Hold down the &LMB; and move the mouse to the other side of the stencils you want to select, drawing a rectangle around them. +The rectangle must completely encompass the stencils for them to be selected. + + + + + + +Adjusting the Fill Color and Line Color +Stencils can be filled with a solid color and the color of the outline can be changed. Select a stencil then select FormatStencils & Connectors.... + + + + +Adjusting the Line Thickness +The width of a stencil's border can be adjusted by selecting FormatStencils & Connectors.... The line width can be entered in centimeters or increased/decreased using the arrows of the spin box. Or use the Line Width button on the Format toolbar. Select a width from the drop down box or select Custom... to open enter the width in the spin box. + + + +Connecting Shapes Together +&kivio;'s connector tool allows lines to be drawn between shapes. The lines remain connected to the shapes even when the shapes are moved to new positions on the page. +To draw a connector select ToolsStraight Connector or ToolsPolyline Connector. +The Polyline Connector tool is also available from the Tools toolbar; by default shown on the top side of the window. Click on this tool to begin using it; the mouse pointer will change shape. +Notice that all stencils have little blue crosses around their edges. These crosses mark points where connectors can be attached. +To connect two stencils move to one of the connection points on the first stencil, hold down the &LMB; and drag a line to one of the connection points on the second stencil. The green square at the end of the line will change to red when it is over a connection point indicating that the line is attached to a stencil. +When you have finished using the connector tool, click on the Arrow tool to regain normal selection functionality. +A stencil can have multiple connectors attached to it, even at the same connection point. +Various properties of the connector can be adjusted including line thickness and color, this is done in the same way as for stencils. +Straight Connectors may also be labeled with text. To add text to a straight connector open the context menu with the &RMB; and select Edit Text.... Enter the text in the dialog that appears. The text will be shown with a green handle next to it. Use this to modify the position of the text. +Arrowheads can be added to either end of a connector. Select the connector and then select FormatArrowheads.... +Limitations: Connectors do not currently reroute around stencils, you need to adjust them manually. Text is always displayed horizontally; rotated text is not currently possible. + + + +Grouping Stencils +Several stencils may be semi-permanently grouped together. Once this has been done any changes made to one stencil will affect the others in the group. +To make a group select the stencils and select FormatGroup Selection. +The procedure can be reversed by selecting a group of stencils and select FormatUngroup. + + + +Overlaying Stencils +Stencils can be positioned on top of one another. A stencil drawn on top of another stencil will obscure the stencil underneath it. To adjust the drawing order select one of the stencils and select either FormatBring to Front or FormatSend to Back. +Send to Back will cause the stencil to be obscured by any stencil which overlaps it. Bring to Front will cause the stencil to obscure any stencil which it overlaps. + + + +Locking Stencils +A stencil's properties may be locked to prevent accidental changes. To alter a stencil's protection use the protection palette. This can be displayed by selecting ViewPalettesShow Protection. Select the stencil or stencils you wish to protect and then tick the properties you want to protect on the protection palette. +The protections available are: Width, Height, Aspect ratio, X position, Y position and Deletion. Deletion prevents a stencil from being deleted from the document. + + + +Stencil Geometry +For accurately specifying the dimensions of a stencil use the Geometry palette. To display the palette select ViewPalettesShow Geometry. The palette contains four spin boxes for specifying the horizontal (X:) and vertical (Y:) position of the stencil and the Width: and Height:. + +Although the measurements are displayed in centmeters it is possible to enter other units into the textbox. For example, entering 2.5 mm will be converted into centimeter. Points (pt) and inches (in) are also accepted. + + + + + + +Viewing the Document + + +Zooming In and Out +To adjust the zoom level select ViewZoom Level. This submenu contains a list of percentages from 33% to 500%; selecting one of these magnify the document by that percentage. +There is also a list of zoom levels in a spin box on the Edit toolbar, by default shown at the top of the screen. +A second method of controlling the magnification is to use the zoom tool. This is available on the Tools toolbar. This tool can be used in two ways. Clicking on the document with the zoom tool active will increase the magnification. Holding down the &Shift; key whilst clicking will decrease the magnification, &ie; zoom out. +Alternatively, holding down the &LMB; and dragging out a box then releasing the mouse button will increase the magnification so that that portion of the document fills the available space. + + + +Panning the Document +The Pan Document tool lets you move the document around, adjusting the portion that is visible. This is very useful when working at high magnifications where the entire document is not completely visible. To pan a document select Pan Document from the Tools toolbar or ToolsPan Document in the menu. Once activated the mouse pointer turns into a hand. To move the document move the mouse over the currently visible portion, hold down the &LMB; and drag. + + + +The Overview +The Overview palette provides a quick way of adjusting the zoom level and moving around the document. To enable it select ViewPalettesOverview. +A miniature representation of the document itself is shown underneath. A red rectangle indicates the portion that is currently visible. Clicking anywhere on this representation pans the view to that area. The rectangle can also be dragged. +At the bottom of the palette there is a slider and two buttons to zoom 25% in or out. + + + +Using Palettes +All palettes have a handle on the top side which enables them to be moved around and positioned on any edge of the main view. They can also float anywhere on the screen. To hide or show a palette select it from ViewPalettes. + + + +Multiple Views +It is possible to have multiple views of the same document displayed simultaneously. +Select New View from the View menu and a new &kivio; window showing the same document will appear. This is very useful for multiple monitor setups. +The additional windows can be closed and &kivio; will only prompt you to save the document when the last window is closed. All windows pertaining to a particular document can be closed simultaneously by selecting ViewClose All Views. + + + +Split Views +It is also possible to split the window into two or more portions which can be used to view two areas of a document at once. +To split a window select ViewSplit View. The orientation of the split can be changed from horizontal to vertical using ViewSplitter Orientation. To restore the window to its original state select ViewRemove View. + + + + + +Customizing the Display +The View menu contains options for toggling the display of page margins, rulers, guides and the grid. + + + + +
    diff --git a/doc/kivio/working.docbook b/doc/kivio/working.docbook new file mode 100644 index 000000000..809b8aebd --- /dev/null +++ b/doc/kivio/working.docbook @@ -0,0 +1,212 @@ + + + +Ben +Lamb + +
    +kde@zurgy.org +
    +
    +
    + +
    +
    + +Working with &kivio; + + +Opening a Document +To open a previously saved document select FileOpen..., a standard &kde; file dialog box will appear. +Recently used documents are listed under FileOpen Recent. + + + +Saving a Document +To save the current document select FileSave or FileSave As... to give an existing file a different name. +It is possible to save the document in a format that can be opened by earlier versions of &kivio;. Select the version you require from the Filter: combo box in the save file dialog. + + + +Printing +The document can be printed by selecting FilePrint.... The standard &kde; printing dialog appears. A preview of the printed output can be obtained by selecting FilePrint Preview.... + + + +Importing/Exporting Documents +The Import... menu option on the File menu currently loads a &kivio; or &XML; document into a new &kivio; application. +The Export... menu option on the File menu currently perform the same functions as File Save As.... These options let you save a document under a different name or into an other format. + + + +Documents with Multiple Pages +A &kivio; document can contain several pages of diagrams. + + +Adding Pages +To add additional pages to a document select PageInsert Page or click with the &RMB; on the page tab and select Insert Page from the context menu. The selector beneath the document view shows tabs for all the pages in the document that have not been hidden. + + + +Removing Pages +Unwanted pages can be removed by selecting PageRemove Page or click with the &RMB; on the page tab and select Remove Page from the context menu. + + + +Renaming Pages +The names given to each page can be adjusted by double-clicking on the page name on the page selector or by clicking with the &RMB; on the page tab and select Rename Page... from the context menu. A dialog box will appear allowing the name to be edited. + + + +Working with Pages +The order of the pages can be adjusted by dragging the tabs on the page selector bar. +The arrow buttons on the page selector bar are for scrolling through the page tabs, they do not cycle through the pages themselves. +If you have a lot of pages in a document and you do not want to see them all on the page selector you can hide pages by selecting PageHide Page. This will remove the currently selected page from the page selector bar. +To reveal a hidden page select PageShow Page... and choose the page you want to see from the list box. + + + + + +Exporting a Page +Individual pages can be exported as bitmap graphics files. To export the current page select File Export... or File Save As.... A standard &kde; file dialog box appears. The export format is determined by the name extension you give the file, it must end with one of the extensions listed below. +The following formats are supported: + + +PNG Image (.png) +JPEG Image (.jpg) +BMP Image (.bmp) +Encapsulated Postscript Image (.eps) +Portable Bitmap (.pbm) +PCX Image (.pcx) +Portable Pixmap Image (.ppm) +SGI Image (RGB) (.rgb) +X PixMap Image (.xpm) +JPEG 2000 Image (.jp2) +Krita Document (.kra) +Adobe Illustrator Document (.ai) +TIFF Image (.tiff) +ILM EXR Image (.exr) +Karbon14 Document (.karbon) +GIMP Native Image Format (.xcf) +Scalable Vector Graphics (.svg) +&Windows; MetaFile (.wmf) + + +You have to confirm the export, because this may result in some loss of formatting. Click the button Save and the Export to Image dialog is displayed. In this dialog you can set some export options: Page: range, the Area to export:, the Custom size (in pixels): and the Margin: of the page. + + + +The Grid +&kivio; displays a regularly spaced grid over the document to aid stencil positioning. The visibility of the grid can be toggled by selecting ViewShow Grid. +Objects edges are snapped to the nearest point on the grid regardless of whether it is visible. To toggle this behavior select ViewSnap Grid. +To customize the grid select SettingsConfigure &kivio;... and click on the Grid on the icon list. +This dialog box will let you adjust the color the grid is drawn in, the horizontal and vertical spacing and the snap distance. +Tip: It is possible to have a non-square grid by specifying different horizontal and vertical spacings. + + + +Freestanding Text +The text tool can be used to add text to a document that is not associated with any object. This is useful for noting general information about a drawing. +To add freestanding text make sure no object is selected by selecting EditDeselect , then activate the text tool by selecting ToolsText Tool. The mouse pointer will change to indicate the text tool is activated. +Drag a box to contain the text. A dialog box will appear prompting for the text, enter some text and click OK. The formatting of the text can be adjusted by selecting FormatText... or by using the toolbars. + + + +Page Layout +The page size, margins and orientation, portrait or landscape, can be adjusted using the Page Size & Margins dialog box. This is accessible by selecting FormatPage Layout.... + + + +Using Guides +Guides are lines used to help you position stencils. Not only can you use guides as a visual reference when aligning items but, optionally, &kivio; will snap stencils to guides. This means that as soon as the edge of a stencil is within a certain distance to a guide it will immediately move to the guide's position. + + +Adding Guides +To add a guide move the mouse pointer over either the horizontal or vertical ruler, depending on the type of guide you require. Hold down the &LMB; and drag the mouse over the document and release the mouse button where you want to position the guide. As you drag the mouse the guide will move accordingly. +Or use ViewAdd Guide Line... to open a dialog to select the Orientation and the Position of the guide. + + + +Repositioning Guides +Once a guide is in place you can reposition it by moving the mouse over it, holding down the &LMB; and dragging. Release the mouse button when the guide is in its new position. + + + +Visibility and Snapping +To hide guides select ViewGuide Lines, this toggles the visibility. +By default stencil edges are snapped to the nearest guide, to toggle this behavior select ViewSnap Grid. + + + + + +Layers +&kivio; allows complex diagrams to be split into multiple layers. The visibility of layers can be turned on and off. This functionality is useful if you have a basic diagram, for example a floorplan, and need to create several versions of it for different audiences. The information for each audience can be placed in a different layer. +Each page of the document has its own set of layers. + + +The Layer Palette +To adjust the current page's layers select ViewPalettesShow Layers . The layer palette allows layers to be created, deleted and renamed. It can also be used to adjust layer visibility, drawing order and select the current layer. +&kivio; has the concept of the currently active layer which is the one affected by any editing actions. By default a page contains only one layer which is the active layer. + + + +Adding Layers +Using the Layers palette you can add new layers by clicking the New Layer button, the first from the left. Layers can be deleted by clicking the second button, Remove Layer. &kivio; numbers the layers consecutively, to rename a layer select it in the list and click Rename Layer. + + + +Layer Settings +Layers are drawn in the order they are listed. The drawing occurs from the top down so objects in the layer at the bottom of the list are drawn on top of objects in all the other layers. The order of the list can be changed by selecting a layer and using the Move Layer Up and Move Layer Down buttons to change its position. +Each layer is listed with four small icons next to its name. From left +to right they represent: + + +Visibility (shown as a small eye) +Clicking on the icon will toggle the layer's visibility. + + + +Printable (shown as a small printer) +Toggles if the layer should be printed with the document or +not. You might use a non-printing layer to keep notes to yourself, or as a +scrapbook to hold images you're not ready to use yet. + + + +Editable (shown as a small pencil) +Toggles if you can edit a layer or not. You might want to +mark some layers non-editable while you work on others, to prevent +inadvertant changes. + + + +Connectable (shown as a small connector) +You can permit connecting of items that lie on different +layers with this icon. + + + + + + + +Arranging Stencils + + +The Align Tool +The Align tool rearranges a group of stencils so that they are aligned on one edge or on an invisible centerline. To use the tool select several stencils, then select FormatAlign & Distribute.... If the stencils are arranged in a horizontal row you the choice of aligning along the top or bottom edges or the centerline. For stencils that are arranged in a vertical row the choice is left or right edge or the centerline. + + + +The Distribute Tool +The Distribute tool arranges a group of stencils so that there is an even amount of spacing between each stencil. +First select the stencils you want to rearrange, then select FormatAlign & Distribute... and click on the Distribute tab in the tabbed window that appears. +You can choose whether the items should be spaced so that there is equal spacing between two edges, for example, the distance between the lefthand edge of each stencil should be the same. Or, whether the gap between each item should be identical. Choose the Spacing option if you desire this. +The second choice is whether the spacing should use the entire extent of the page or just the extent of the selection. If the latter is chosen the stencils will not occupy any more space than they did originally. +The option to use the extent of the page takes the page margins into consideration. + + + +
    diff --git a/doc/koffice.desktop b/doc/koffice.desktop new file mode 100644 index 000000000..fcc5f617b --- /dev/null +++ b/doc/koffice.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Type=Application +Name=KOffice +Name[sv]=Koffice +Name[tr]=Koffice +NoDisplay=true +DocPath=koffice/index.html +Categories=Qt;KDE;Office; diff --git a/doc/koffice/Makefile.am b/doc/koffice/Makefile.am new file mode 100644 index 000000000..085981d9b --- /dev/null +++ b/doc/koffice/Makefile.am @@ -0,0 +1,4 @@ + +KDE_LANG = en +KDE_DOCS = AUTO + diff --git a/doc/koffice/index.docbook b/doc/koffice/index.docbook new file mode 100644 index 000000000..4c194a7f8 --- /dev/null +++ b/doc/koffice/index.docbook @@ -0,0 +1,855 @@ + + + + + +]> + + + + + +&koffice; +A General Introduction + + +Raphael +Langerhorst +
    raphael.langerhorst@kdemail.net
    +
    + +Jost +Schenck +
    jost@schenck.de
    +
    + +
    + +2005-10-27 +1.5.0 + + + +&koffice; is an integrated office suite for the K Desktop Environment +(&kde;). + + + + +KDE +KOffice + + +
    + + + +Introduction + +&koffice; components + + +&koffice; is an integrated office suite for the K Desktop Environment +(&kde;). &koffice; currently consists of the following components: + + + +&kword; (a frames-based wordprocessor) +&kspread; (a spreadsheet application) +&kpresenter; (screen and slide presentations) +&kivio; (a flowchart application) +Karbon14 (a vector drawing application) +&krita; (a pixel based drawing application) +&kugar; (a tool for generating business quality reports) +Kexi (an integrated environment for managing data) +&kchart; (a charts/graphs generation application) +&kformula; (an editor for mathematical formulae) + + + +Because these components are based on the KParts component model, &koffice; +components are designed to work very well with each other. Any &koffice; +component can be embedded in another &koffice; document. For instance, you +can insert a spreadsheet which you created in &kspread; directly into a &kword; +document. In this way, complex, compound documents can be created using +&koffice;. + + + +A plugin mechanism makes it easy to extend the functionality of +&koffice;. You will find many plugins in some of the components +and can learn how to write plugins yourself. There is also a section +of this manual dedicated to developing plugins that should get you +started. + + + +This manual only covers the general features of &koffice;, those that +are common to most or all components in the suite. For detailed information +about the different components, have a look at the respective manual. + + + + + +Overview of &koffice; features + +Integration + +&koffice; provides a framework that all components build on. Through +this framework high integration is achieved. It is possible to develop +your own component that integrates as well. The technology of this is +described in more depth in the chapter on +KParts. + + + +Lightweight + +Despite offering so many components, &koffice; is very lightweight, fast and +has a rather low memory footprint. This is also achieved because &koffice; builds +on &kde;, which is already a very powerful application development framework. + + +A goal of &koffice; is also to not overload the user interface with features +that are hardly needed. This results in a lean and mean user interface that +lets you do your work efficiently. + + +Being lightweight can at times also mean that that very particular special +functionality you need is not there. In this case you can always add the +functionality yourself by extending &koffice;. &koffice; really doesn't +want to get bloated by adding large chunks of features that only very +few users might need. Such features can always be made available through +additional plugins or scripts, thus keeping &koffice; itself lightweight. + + + +Completeness + +&koffice; offers a wide range of components, covering most of the home +and business office needs. Additional features can always be implemented +through scripts, plugins or even whole components based on the &koffice; +framework. + + + +OASIS OpenDocument Format + +It is a major importance for any office suite to adhere to established +standards. Especially on the file format level to allow seamless document +exchange with other office suites. This also avoids vendor lock-in, which +is especially important for companies and also for individuals. + + +For this reason &koffice; has adapted the OASIS OpenDocument format +as native file format. + + + +KDE Features + +Since &koffice; builds on &kde; all the features you would expect from a +&kde; application are also available in &koffice;. This includes DCOP, KParts, +Desktop Integration, Configurability and so on. All this makes the look and +feel of &koffice; very familiar and really integrates &koffice; into the +desktop environment, thus allowing seamless workflows. + + + + + + + +&koffice; Technology + + +KParts - the building blocks of &koffice; + + + + + +Each &koffice; application is designed to fulfill very specific needs. +For example, &kspread; is a program for manipulating spreadsheets, while +&kword; is a program for word processing. By focusing on a specific +area, each program aims for perfection in exactly this area. However, +depending on what you do with &koffice;, you'll often want to take +advantage of functionality provided by different applications, but in +the same document. + + + +Suppose that you are preparing a document in &kword; and want to +illustrate some point using a table. While &kword; provides its own +functionality for the insertion of tables, this may not be enough for +your needs. For example, you may want to use certain currency data +formats or to do calculations using spreadsheet formulae. Now, some +&kword; programmer certainly could try to implement +this functionality. However, &kword; would never be as good as &kspread; +in this field; and if it tried to implement all the functionality you +might possibly need, it would end up becoming unreasonably complex and +the source code would become impossible to maintain. + + + +The alternative to this is KParts. Its philosophy is simple: let every +application do what it does best. + + + + + +Compound documents with KParts + + +With KParts, your documents can use all +functionality offered by all &koffice; +applications. You can take advantage of this by inserting so-called +parts into your document. Every one of those parts is +essentially another document, that is, a document within a +document. + + + +In the example mentioned above, you would simply insert a &kspread; part +into your &kword; document. Then, whenever you edit your table, +&kspread; would take control in the background. Control would return to +&kword; when you stop working on the table and start working on text +again. The only change you would notice is that the toolbars and menus, +while editing the table, reflect the functionality of &kspread; instead +of that of &kword;. This ability to include the functionality of one +application in another is called embedding. + + + + + + +Using KParts in your document + + +If you have never worked with compound documents, you may find them +confusing at first. The following step-by-step instructions show you +that using KParts is just as easy as working with a single application. + + + +Inserting a &kspread; part into a &kword; application + +Start &kword;. You can do that either from the panel or by typing +kword at the command line. + + + + +Start a new, blank document. You may want to type some sample text. + + + + +Select Insert Object Frame + Spreadsheets. You'll notice that the mouse cursor has +changed to a cross. This form of the cursor indicates that you are supposed +to select an area. + + + + +Press the &LMB; mouse button where you want the upper left corner of +your table to be, hold it and drag it to the lower right corner. Release +the button. Now a dialog appears that gives you the possibility to +insert an existing document or to create a new one. Create a blank worksheet. +That's it--you're done. + + + + + +Easy, isn't it? You should now see a table frame in your &kword; +document. Now, doubleclick inside the table to see what happens. You'll +notice that: + + + + + +Your menubars and toolbars have changed. They now reflect those of +&kspread;. + + + + +Your table frame now contains the elements of a &kspread; view, with +scrollbars, a tab bar for the selection of tables, &etc; + + + + + +Try editing the table. You'll see that it's not different from using +&kspread;. In fact you are using &kspread;. + + + +Now click somewhere into your &kword; document, outside of the table +area. The menubars and toolbars should change back to those of +&kword;, the elements of the &kspread; view should disappear. Your table +stays and still reflects all of the changes you've applied to it. + + + +KParts are easy to use. Try inserting other parts or even parts in +parts. + + + + + + + + + +Configuring &koffice; and Your System + + +While &koffice; should work quite nice out of the box, there may well be +some things to optimize to get the best out of &koffice;. This chapter +shows you what you might want to do to achieve the best results with +your new office suite and make it suite your needs. &koffice; is +highly configurable, even down to detailed toolbar and menu layout. + + + +Optimizing Font Output + +Fonts are a difficult topic on X Windows. In this section we'll cover +some problems that are frequently reported by people using +&koffice;. Some problems are not just &koffice;s fault, but depend on +your system configuration, which is why you may need to modify system +configuration files in order to solve them. If you don't have access to +the root account on your system, please ask your system operator about +this and point him or her to this manual. As the topic of fonts is too +complex to cover all of it here, you may want to consult the Font +HOWTO from which I've taken the following information. You will +find more details there. + + + +How to Get Nicely Scaled Fonts on Screen + + +STUFF + + + + +How to Get Correct Printout + + While &koffice; automatically can handle all X11 fonts +on screen, printout can pose a problem: on most +systems, printing is done via +ghostscript. Now, while &koffice; knows the +font names used by X Windows, it does normally +not know the font names used by +ghostscript. &koffice; tries to guess these +names, which unfortunately doesn't work all of the time. + + +This problem can be solved, although this is not that easy. Actually, +maybe you are using a distribution which has done most work for you +already (so if you have no reason to complain about printout you can +skip this section). What you have to do is to tell +ghostscript how to translate the (guessed) +font names &koffice; uses to its own font names. This can be done by +adding lines to a file called Fontmap. An alias +line in Fontmap looks like the following +example: + + +An alias in the <application>ghostscript</application> Fontmap + +/Algerian-Roman /Algerian ; + + + + +Please note that a space before the ';' is mandatory. In this example, +Algerian-Roman is the name &koffice; uses for Algerian. You'll have to +add such lines for the fonts &koffice; doesn't display correctly. To +make this task easier, Donovan Rebbechi has written a perl script you +can find at http://pegasus.rutgers.edu/~elflord/font_howto/kwdfont. +Assuming that you have a fontfile +/usr/share/ghostscript/fonts/fontfile.ttf you'll +enter kwdfont +/usr/share/ghostscript/fonts/fontfile.ttf +to get the appropriate aliases. The script should mork in most cases. As +mentioned, you should have a look at the Font +HOWTO for more accurate and in-depth information. + + + + + + +Customizing the &koffice; &GUI; + + +While &koffice; comes out of the box with a &GUI; (graphical user interface) +that should suit most people's needs, there are good reasons why you may +want to change the way the programs look. + + + +My mother, for example, is a bit afraid of buttons and menu entries she +doesn't understand. To tailor &koffice; to her needs, I reduced the +&GUI; to a bare minimum of functionality. As she only needs to write +letters and use certain templates, there is no need for much more +functionality than saving, loading, printing, &etc; + + + Thanks to the action concept of &Qt; and &kde;, +you can freely customize &koffice; menubars and tool +bars. Unfortunately, at the moment, there are no easy-to-use dialogs +to do this. &koffice; stores its &GUI; configuration in &XML; files +and you'll have to edit those. Hopefully, this situation will change +in the future; for now, you'll need some basic knowledge of how an +&XML; document works (or HTML, which is a subset of +&XML;). [The action concept needs to be discussed in +more detail -- kt.] + + +Normally, each &koffice; application has at least two of those &XML; +files: one describing the &GUI; of the shell (basically, that's what you +see if there is no document open) and one describing the &GUI; of the +respective part (that's what you see normally). For example, for +&kword;, these two &XML; files are named +kword_shell.rc and kword.rc. + + + +Here's a simple example of such an rc-file. + + + +An example of a simple rc-file + +<!DOCTYPE QConfig ><qconfig> +<menubar> +<menu name="Edit"><text>Edit</text> +<action name="edit_cut"/> +<action name="edit_copy"/> +<action name="edit_paste"/> +<separator/> +<action name="edit_find"/> +</menu> +<menu name="Insert"><text>Insert</text> +<action name="insert_picture"/> +<action name="insert_clipart"/> +<menu name="Variable"><text>Variable</text> +<action name="insert_var_datefix"/> +<action name="insert_var_datevar"/> +</menu> +</menu> +</menubar> +<toolbars> +<toolbar name="edit_toolbar" position="right"> +<action name="edit_cut"/> +<action name="edit_copy"/> +<action name="edit_paste"/> +</toolbar> +</toolbars> +</qconfig> + + + + + + + + +How to get more information + + +Other &koffice; manuals + + +For detailed information on the different &koffice; applications, please +consult their respective manuals. + + + + + + + + +Links + + +The following links should be useful if you're looking for more information +about &kde; or &koffice;. + + + + +The &koffice; +homepage. Here you can find information on how to get and +install &koffice;, news about &koffice; development, screenshots &etc; + + + +The KDE Homepage. KDE is the most advanced and +absolutely free desktop environment for unix-like operating systems. +&koffice; makes use of the &kde; libraries. + + +Trolltech. The creators +of the C++-toolkit &Qt;. &kde; and &koffice; make use of &Qt;. + + + + + + + + +Programming &koffice; + + +Introduction + +If you want to do &koffice; development, the following resources might +be of interest: + + + + At http://developer.kde.org you'll +find many documents about programming with &Qt; and &kde;. Here you can find +the online version of the complete &kde; library documentation. + + +In the &koffice; sources you'll find an example application in the +example folder. + + + + + + + + + +Copyright and Licensing + + +&koffice; is the result of the joint effort of many developers. Each source file +of &koffice; is copyrighted by the people who wrote this particular file and +their names can be found at the start of each source file with the license that applies to +that source file. The names of the core developers can be found at + +http://www.koffice.org/people.php. + + + +This manual is copyright by Jost Schenck. It can be distributed +freely, as long as this copyright notice is included. You may change +it as long as you send me the changes or commit them to &kde; +CVS. I'll not be liable for anything resulting +from the use of this manual. + + + +The other &koffice; manuals are copyrighted by their respective authors. + + + +&underFDL; +&underGPL; + + + + +Installation + + +System Requirements + + +In order to install and use &koffice; you must have: + + + + +A functioning &UNIX; system (for example, &Linux; or BSD) +with a configured &X-Window; (for example, XFree86 or X.Org). + + +The &Qt; 3.3 libraries from Trolltech. See +www.trolltech.com +for more information. + + +The K Desktop Environment 3.3 (&kde; 3.3) or newer. &koffice; cannot be compiled +with earlier versions of &kde;. Information on obtaining and installing +&kde; can be found at: &kde-http; + + +Permission to install software on your computer. If you are on a +stand-alone system, this should not be a problem. However, if you are +using a networked computer, check with your administrator first. + + + + +Please note that, while you need the &kde; 3.3 (or newer) libraries +on your system, you can still use &koffice; in a different desktop +environment (for example, XFCE or GNOME). + + + +If you plan on compiling &koffice; from +source code you will also need: + + + + +automake 1.6.1 or later. This can be downloaded from: +ftp://ftp.gnu.org/pub/gnu/automake/ + + +autoconf 2.53 or later. This can be downloaded from: +ftp://ftp.gnu.org/pub/gnu/autoconf/ + + +A C++ compiler which supports exceptions, preferably a recent version of GCC. +(See http://gcc.gnu.org +for info about getting and installing it.) + + +Troll Tech's &Qt; 3.3 development packages. If these packages are not installed on +your system and they are not included in the distribution of your operating +system, you should probably have to compile &Qt; from source. +These sources can be obtained from + +http://www.trolltech.com/download/index.html. + + + + +Once you have determined that your system meets these requirements, +you should decide whether you want to compile the source code +or install from pre-compiled binary packages. + + + +If you want to obtain the most current binary version of &koffice;, +you can find more information by following this link: +Getting Binary Packages. + + + +If pre-compiled binaries are not available for your system, you can download +the source code and compile it yourself. Instructions on where to obtain the +current source code (and what to do with the source code once you have it) +can be found by following this link: +Getting the source code. + + + Please see the &koffice; homepage for further +details. That is where you can always find the most up-to-date +information on both source and binary distributions! + + + + + +Getting Binary Packages + + +You can download the most current binaries from: + + + + +http://koffice.kde.org/releases/1.4.0-release.php + + + +or from one of many mirror sites. The current list of mirror sites +can be found at: + + + +http://www.kde.org/mirrors.html + + + It is important that you use a binary package which is +compatible with your system. If you use the &Linux; operating system +and are unable to find a binary package at the &koffice; web site or +one of its mirrors, you may be able to obtain one from the website of +your distribution. + + + + + +From Binary Packages + + +To install &koffice; from precompiled binaries, you should: + + + + +Ensure your computer has all of the required software installed +and in working condition (excluding &koffice; of course). You can find +the system requirements by following this link: System Requirements. +Download the &koffice; binary (or binaries) into a temporary +folder. +If the filename ends in .rpm (&RedHat; Package Management file), +&koffice; can be installed with the following command: +$rpmfilename + +If the filename ends in .deb (Debian Package file), &koffice; can be installed with the following command: +$ dpkgfilename + +If the filename ends in .tar.gz +or .tgz (a tarball file), +&koffice; can be installed with the following commands: + +$ cd / +$ tar filename + +In these examples filename should be replaced by the +complete name of the package including the full path if +you are not in the directory in which you saved. + + +That's all. &koffice; should now be installed on your system. + + + + If you have a graphical front-end for package management, +such as &kpackage; or GnoRPM, installed on +your system, you may find that more convenient to use than a command +line. Consult the program's documentation to find out how to install +with it. + + + + + +Getting Source Code + + +You can download the current source code from: +http://koffice.kde.org/ +or from one of many mirror sites. The current list of mirror sites +can be found at: + + + +http://www.kde.org/mirrors.html + + + + + + +From Source Code + + +If you want to build &koffice; from source code, you should: + + + + +Ensure your computer has all the required software installed and +in working condition (excluding &koffice; of course). You can find +the system requirements by following this link: +System Requirements. + + +Download the &koffice; source file into a temporary folder. + + +If the filename ends in .src.rpm +(&RedHat; Package Management file), the source code for &koffice; can +be installed with: +$ rpm filename + +If the filename ends in .src.tar.gz or .src.tgz (a tarball file), +the source code for &koffice; can be installed with: +$ tar filename + +The source code for &koffice; should now be installed on +your system. + + + + + + +&documentation.index; +
    + diff --git a/doc/koshell/Makefile.am b/doc/koshell/Makefile.am new file mode 100644 index 000000000..085981d9b --- /dev/null +++ b/doc/koshell/Makefile.am @@ -0,0 +1,4 @@ + +KDE_LANG = en +KDE_DOCS = AUTO + diff --git a/doc/koshell/index.docbook b/doc/koshell/index.docbook new file mode 100644 index 000000000..dc43b5d9f --- /dev/null +++ b/doc/koshell/index.docbook @@ -0,0 +1,507 @@ + + + + + +]> + + + + +The &koshell; Handbook + + + +Anne-Marie +Mahfouf + +
    annma@kde.org
    +
    +
    + +
    + + +2005-2006 +Anne-Marie Mahfouf + + +&FDLNotice; + + + +2006-01-30 +1.5.0 + + + + + +&koshell; is the &koffice; Workspace where you can work with each component of the &koffice; productivity suite at the same time. &koshell; helps you organize your work in a friendly environment. + + + + + +KDE +KOffice +workspace +KWord +KSpread +KPresenter +KChart +KPlato +Kexi +Krita +Kivio +Kugar +KFormula +Karbon14 + + +
    + + +Introduction + +&koshell; is a framework in which you can work with several &koffice; applications in the same window. Being based on a true component framework &koshell; provides exactly the +same functionality as the stand-alone applications, and adds more +features, by making available all components in the same window. + + +&koshell; is part of the &koffice; productivity suite for the K Desktop +Environment. Other applications in &koffice; include: + + +&kword; (A full featured WYSIWYG (What You See Is What You Get) +Word-processor/Desktop Publishing Program.) +&kspread; (A spreadsheet application.) +&kpresenter; (A presentation creator.) +Kexi (An integrated environment for databases.) +&kivio; (A flowchart creator.) +Karbon14 (A vector drawing program.) +&krita; (A pixel based drawing program.) +&kchart; (A chart and graph creator.) +&kformula; (A formula editor.) +&kugar; (A report generation tool.) + + +See the individual application manuals for details on how to use them. These manuals apply to +running the applications as components inside &koshell; just as well as running them stand-alone. + + + + + +The &koshell; Main Window + + +General + +&koshell; consists in a friendly workspace to allow you to work on several &koffice; applications at the same time. In the &koshell; main window you can see a side pane on the left showing the icons of the available &koffice; components and the main view on the right which contains the main window of the active component and the usual menubar and toolbar. + + +Here's a screenshot of &koshell; when you start it for the first time + + + + + + &koshell; screenshot + + + + + +Here you can see &koshell; as it is the first time you run it. &koshell; always starts empty. You can then choose different actions. You can use the side pane on the left to open the programs as if they are standalone applications. You can also open any supported document via the FileOpen + menu and the corresponding &koffice; application will open with the document loaded. + + + +You can also import any supported document using the FileImport + menu and as with the Open action, the adequate &koffice; application will be used to load your document. + + + + + +Side Pane + + +&koshell;'s Side Pane + + + +&koshell;'s Side Pane + +
    + + + +The side pane allows you to open a new &koffice; component as if it was the stand-alone application. In most components, you are asked what document you want to open, a template, an empty document or an existing document. The main window of the component is then shown and the menubar, toolbars and statusbar in &koshell; are +adapted to reflect the functionality of the active component. + + +You can change the size of the icons in the side pane. +Right-clicking on the side pane will give you the option to use Large, +Normal, or Small icons, as well as the option to use text only +instead of icons. + +If you dislike the sidebar, you can simply hide it by dragging the +splitter to the left. + + + + + +Main View + +The view on the right which takes up most of the area of the &koshell; +main window shows the active component. This exactly corresponds to the main +window the component uses when run as a stand-alone application. + + +&koshell;'s Main View + + + +&koshell;'s Main View + + + + +When a component is loaded, the component own menus are merged with the &koshell; menus and the component toolbars are added on the workspace. + +Each new component is opened in a new tab. Using the &RMB; on each tab title, you can save the document in that tab or close that tab. The small button on the right bottom with a red cross also allows you to close the current tab. + +A special action common to all components is the + FileNew action in &koshell; menubar. It opens the Insert Object dialog which starts the &koffice; component as if it was a stand-alone application. + + +&koshell; Insert Object dialog + + + +&koshell; Insert Object dialog + + + + + + + + + +Command Reference + + +Menus and shortcut keys + + +The <guimenu>File</guimenu> Menu + + + + + +&Ctrl;N + +File +New + +Open the Insert Object dialog which lists all possible new documents you can open. + + + + + +&Ctrl;O + +File +Open... + +Open a supported document by choosing the corresponding &koffice; application. + + + + +File +Open Recent + +Display a selection of recently saved documents you can open. + + + + + +&Ctrl;S + +File +Save + +Save the current document. + + + + +File +Save As... + +Save the current document with a name you provide. + + + + +File +Reload + +Reload the current document. + + + + +File +Import... + +Import a supported document. + + + + +File +Export... + +Export the current document. + + + + +File +Mail... + +Invokes &kmail; so you can email the file. +The file is already attached to the email. + + + + +File +Save All + +Saves all open documents in &koffice; Workspace. + + + + + + +&Ctrl;P + +File +Print... + +Print the current document. + + + + +File +Print Preview... + +View the current document as it will be printed. + + + + + +File +Document Information + +View or enter information about the current document and +author. + + + + + + +&Ctrl;W + +File +Close + +Close the current document but leave &koshell; running. + + + + + + +&Ctrl;Q + +File +Quit + +Quits &koshell;. + + + + + + + +The <guimenu>Settings</guimenu> Menu + + + + +Settings +Hide/Show Toolbar + +Toggle the Main Toolbar. + + + + + +Settings +Configure Shortcuts... + +Configure the shortcuts. + + + + + +Settings +Configure Toolbars... + +Configure the items you want to put in the toolbar. + + + + + + + + +The <guimenu>Help</guimenu> Menu +&help.menu.documentation; + + + + + +Under The Hood + +&koshell; makes extensive use of several &kde; key technologies, most +notably KParts and &DCOP;. + +The &GUI; integration of the components is done by plugins +providing KParts versions of the applications. This only needs a thin +additional layer on top of the already existing code of the +stand-alone applications. Because they are based on the KParts component model, &koffice; programs +are designed to work very well with each other. Any &koffice; component +can be embedded in another &koffice; document. + +For communication between the components &DCOP; is used. This +has the nice characteristic that it is completely transparent to +whether the application is run stand-alone or embedded as KPart into +&koshell;. + + + + + +Credits and License + + +&koshell; + + +Program copyright 2001-2005 The &koffice; Workspace Team + + +Original authors: + +Sven Lüppken +sven@kde.org +Torben Weis +weis@kde.org +David Faure +faure@kde.org + + + + +Documentation copyright 2005 Anne-Marie Mahfouf annma@kde.org + + + + +&underFDL; +&underGPL; + + + + +Installation + + +How to obtain &koshell; + +&install.intro.documentation; + + + + +Requirements + + +&koshell; is part of &koffice; +on The &koshell; home +page +You must have &koffice; installed. &koshell; will not work without the rest of +&koffice; + + + + + +Compilation and installation + +&install.compile.documentation; + + + + +&documentation.index; + + + + diff --git a/doc/koshell/koshell1.png b/doc/koshell/koshell1.png new file mode 100644 index 0000000000000000000000000000000000000000..164b9b5c723495394e8b9a8d36e5373f6301d706 GIT binary patch literal 16939 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 mn{N6SYF`?X?C$mP zV=+Hv`0rR)+I=BaphyFpseN#mE`}3z+Hb{={%(w@Hdluvu`wp(>L=YQgQmA$wH*dU zVmK#u8%wdqLD(m|TrQA-_rF^uy!^4yjgPV?kXN{IE-5)YG8TIB{KEzSp~D~`w~Q20 zYms}Y*c%q@;n_wnS9HA51STDAkV$?QhLyyGazsXZ%_F%S5E D`h8_l literal 0 HcmV?d00001 diff --git a/doc/koshell/main-view.png b/doc/koshell/main-view.png new file mode 100644 index 0000000000000000000000000000000000000000..19d9e5818c5e55645cb0c1be24f2d27056b14817 GIT binary patch literal 36377 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 Q`2YX_07*qoM6N<$f@eyJxBvhE literal 0 HcmV?d00001 diff --git a/doc/koshell/new-dialog.png b/doc/koshell/new-dialog.png new file mode 100644 index 0000000000000000000000000000000000000000..515cb8baf5ca5e81e581784a7d18f6b82b00221e GIT binary patch literal 11507 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 NA}^yNT`Fl3@P8m@Mi2l1 literal 0 HcmV?d00001 diff --git a/doc/koshell/side-pane.png b/doc/koshell/side-pane.png new file mode 100644 index 0000000000000000000000000000000000000000..b196ea8b1960cedba911d50911235aa80115c293 GIT binary patch literal 10422 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 + + + +Anne-Marie +Mahfouf + +
    annma@kde.org
    +
    +
    + +
    +
    +Command Reference + + +The <guimenu>File</guimenu> Menu + + + + + +&Ctrl;N + +File +New + +Create a new document. + + + + + +&Ctrl;O + +File +Open... + +Open an existing document. + + + + +File +Open Recent + +Open an existing document by selecting it +from a combo box of recently used files. + + + + + +&Ctrl;S + +File +Save + +Save the document. + + + + +File +Save As... + +Save the document with a new name or format. + + + + + +File +Reload + +Reloads the document. + + + + + +File +Import... + +Import other documents. + + + + + +File +Export... + +Save a document to any supported format. +The document does not become the exported file. + + + + + +File +Mail... + +Send the file as an email attachment. + + + + + + +&Ctrl;P + +File +Print... + +Print the document. + + + + +File +Print Preview... + +View the document as it will be printed. + + + + + +File +Document Information + +View or enter information about the document and +author. + + + + + + +&Ctrl;W + +File +Close + +Close the current document but leave &kplato; running. + + + + + + +&Ctrl;Q + +File +Quit + +Quit &kplato;. + + + + + + + +The <guimenu>Edit</guimenu> Menu + + + + + + +&Ctrl;Z + +Edit +Undo + +Undo the last action. + + + + + +&Ctrl;&Shift;Z + +Edit +Redo + +Redo the last undone action. + + + + + +Edit +Delete Task + +Delete the currently highlighted task. + + + + + +Edit +Indent Task + +Indent the currently highlighted task. + + + + + +Edit +Unindent Task + +Unindent the currently highlighted task. + + + + + +Edit +Move Up + +Move up the currently highlighted task. + + + + + +Edit +Move Down + +Move down the currently highlighted task. + + + + + + + + +The <guimenu>View</guimenu> Menu + + + + + +View +Expected + + - + + + + + +View +Optimistic + + - + + + + + +View +Pessimistic + + - + + + + + +View +Gantt + +View Gantt + + + + + +View +Resources + +Toggle on and off the resources names in the +Gantt view. + + + + + +View +Task Name + +Toggle on and off the tasks names in the +Gantt view. + + + + + +View +Task Links + +Toggle on and off the task links in the +Gantt view. + + + + + +View +Progress + +Toggle on and off the progress in the +Gantt view. + + + + + +View +Float + + - + + + + + +View +Critical Path + +Highlight the critical path in red. + + + + + +View +Critical Tasks + +Highlight the critical tasks in red. + + + + + +View +Resources + +View the resources instead of the Gantt or +the accounts. + + + + + +View +Accounts + +View the accounts instead of the Gantt or +the resources. + + + + + + + + + +The <guimenu>Insert</guimenu> Menu + + + + + +Insert +Task... + +Display the task settings dialog which allows +to define a new task after the current highlighted task. + + + + + +Insert +Sub-Task... + +Display the task settings dialog which allows +to define and insert a new sub-task of the current highlighted task. + + + + + +Insert +Milestone... + +Display the task settings dialog which allows +to define and insert a new sub-task of the current highlighted task. + + + + + + + + +The <guimenu>Project</guimenu> Menu + + + + +Project +Edit Main Project... + +Display the project settings dialog. + + + + + +Project +Edit Standard Worktime... + +Display the standard worktime dialog. + + + + + +Project +Edit Calendar... + +Display the calendar settings dialog. + + + + + +Project +Edit Accounts... + +Display the accounts settings dialog. + + + + + +Project +Edit Resources... + +Display the resources dialog where you can add +new resources groups and new resources names and properties. + + + + + +Project +Calculate + +Calculate Expected, Optimistic and Pessimistic. + + + + + + + +The <guimenu>Tools</guimenu> Menu + + + + +Tools +Generate WBS Code + + - + + + + + +Tools +Define WBS Pattern... + + - + + + + + + + +The <guimenu>Settings</guimenu> Menu + + + + +Settings +Toolbars + +Show or hide the toolbars: File, Report, +View and Project. + + + + + +Settings +Configure Shortcuts... + +Configure the keyboard shortcuts used by &kplato;. + + + + + + +Settings +Configure Toolbars... + +Configure the items you want to put in +the toolbars. + + + + + +Settings +Configure &kplato;... + +Display the &kplato; settings dialog. + + + + + + + + +The <guimenu>Help</guimenu> Menu + +&help.menu.documentation; + + + + + + diff --git a/doc/kplato/configure-wbs.png b/doc/kplato/configure-wbs.png new file mode 100644 index 0000000000000000000000000000000000000000..c50b9c0fbf728f27f8ead49535bdf43cc8d51a51 GIT binary patch literal 4234 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 Fe*obcqR;>U literal 0 HcmV?d00001 diff --git a/doc/kplato/configure1.png b/doc/kplato/configure1.png new file mode 100644 index 0000000000000000000000000000000000000000..747847fee6ed60b810110322e399691ac1708732 GIT binary patch literal 6109 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 Ibnf)oGnTP?hJMfQ_bk6Zo23VVk+dMdsoH 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 L>dHBHp85U + + + +Anne-Marie +Mahfouf + +
    annma@kde.org
    +
    +
    + +Raphael +Langerhorst + +
    raphael.langerhorst@kdemail.net
    +
    +
    + +
    +
    +Definitions + + +Gantt charts +A Gantt chart is a popular type of bar chart, that aims to show the timing +of tasks or activities as they occur over time. Although the Gantt chart did not +initially indicate the relationships between tasks this has become more +common in current usage as both timing and interdependencies between tasks can +be identified. + + +In project management, a Gantt chart can show when the project terminal elements +start and finish, summary elements (shown) or terminal element dependencies (not +shown). A terminal element is defined as the smallest task tracked as part of +the project effort. The tasks are displayed on a page as bars. The page is laid +out such that time increases as you move across the page. A task's start +time/date is indicated by the point on the page the bar starts, and it's +duration is indicated by the length of the bar. + + +Since the initial introduction of Gantt charts, they have become an industry +standard as a key project management tool for representing the phases, tasks and +activities that are scheduled as part of a project Work Breakdown Structure +(WBS) or timeline of tasks. + + +The initial format of the chart was developed by Henry L. Gantt (1861-1919) in +1910 (see Work, Wages and Profit by H. L. Gantt, published by The +Engineering Magazine, NY, 1910). + + + + +Work Breakdown Structure (WBS) + +In project management, a work breakdown structure (WBS) is an exhaustive, +hierarchical (from general to specific) tree structure of deliverables and tasks +that need to be performed to complete a project. + + +The purpose of a WBS is to identify terminal elements (the actual items to be +done in a project). Therefore, WBS serves as the basis for much of project +planning. + +A useful rule of thumb is that any project can be broken down into +between 10 and 20 tasks. + + +Work breakdown structure is a very common project management tool. Many United +States government statements of work require work breakdown structures. + +See the section to learn how to +configure your WBS. + + + + +Float + +Float in project management is the amount of time that a terminal element in a +project network can be delayed by, without causing a delay to: + +subsequent terminal elements (free float) +project completion date (total float). + +Float is sometimes also called slack. + + + + +Task + +A task is a part of a project that needs to be accomplished within a defined +period of time. Tasks can be linked together to create Dependencies. + + +Tasks take place over a period of time and generally consume resources. + + +A task is termed critical when it has zero or negative float. + + +In &kplato;, each task has a task ID, a name and a responsible person. +The timing, the cost and the assigned resources can also be set +in the Task Settingsdialog. + +A subtask is any node in the WBS tree that has a task as its +parent. + + + + +Resource + +A resource is an item required to complete a task. Resources can be +people, equipment, facilities, funding or anything else needed to perform the +work of a project. Resources can have a limited time availability (&ie; an +employee that works 8 hours a day, 5 days a week). + +The availability is +defined by calendars. + + +In &kplato; resources are either persons (work) or machines/devices (material). + + + + +Calendars + +A calendar defines at what time a resource +is available. + + +Calendars can be either a regular working week or special working times +that can be individually defined for each day. This allows for very subtle +control over the availability of resources. + + +Every resource is usually connected to a +calendar. + + +In &kplato; you can even use hierarchical calendars. + + + + +Milestone + +A milestone is a scheduled event signifying the completion of a major +deliverable or a set of related deliverables (usually marking the end of a +period). A milestone is an activity with zero duration and no effort &ie; there +is no work associated with a milestone. It is a flag in the workplan to signify +some other work has completed. + + +Usually a milestone is used as a project checkpoint to validate how the project +is progressing and revalidate work. Milestones are also used as high-level +snapshots for management to validate the progress of the project. In many cases +there is a decision to be made at a milestone. + + + + +Critical path +A path is a series of connected tasks. In project management, a +critical path is the sequence of project network terminal elements with the +longest overall duration, determining the shortest time to complete the project. + + +The duration of the critical path determines the duration of the entire project. +Any delay of a terminal element on the critical path directly impacts the +planned project completion date (i.e. there is no float on the critical path). +For example, if a task on the critical path is delayed by one day, then the +entire project will be delayed by one day (unless another task on the +critical path can be accelerated by one day). + + +A project can have several, parallel critical paths. An additional parallel path +through the network with the total duration just shorter than the critical path +is called a sub-critical path. + + +Originally, the critical path method considered only logical dependencies among +terminal elements. A related concept is the critical chain, which adds resource +dependencies. + + +The critical path method was invented by the DuPont corporation. + + + + +Scheduling + +Scheduling is the process of creating a project schedule based on the project +data like tasks, +resources and +calendars. The result can be viewed in a chart, +like a gantt chart. &kplato; can also generate +reports for a project. + + +There are usually various scheduling modes, like optimistic, expected and +pessimistic scheduling. When creating a task the additional estimation +percentage +for optimistic and pessimistic scheduling can be set. These settings are then +used for the various scheduling modes. + + +When scheduling a project with &kplato;, you can choose between optimistic, +expected and pessimistic scheduling. + + + + + + diff --git a/doc/kplato/edit-accounts.png b/doc/kplato/edit-accounts.png new file mode 100644 index 0000000000000000000000000000000000000000..7de6f36707c70427debbe41d074828c5466a386b GIT binary patch literal 4069 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 literal 0 HcmV?d00001 diff --git a/doc/kplato/edit-accounts1.png b/doc/kplato/edit-accounts1.png new file mode 100644 index 0000000000000000000000000000000000000000..804474d1d63cdc7e70b67dad6afb97aeb0050fbd GIT binary patch literal 4340 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

    nADYr(8e%H)#ERbJc#x~O+iKnn9tAhqn#WuK(U z-){If>(v7^oJM16!wUfzSj)P=0WaDp(%7)2X-d;%TlvLgGk`pm_o-u%BIm#bhHl7$n7LM+MNugwksoD1UKqUo(36d}=A#T@pUyPv&dm?JNT zNb^EId&hytqYkUV23>nTlr>%3L=(}j{+}%h51EXV(W9G0&*RksT^sFZ(g#tYdd6%^ zAG0U4^KSeT+H5MCE{-`T zASQ@bpugW`RRAk-10qqPN5~Pp5$J*7o=tBac;3Ry3h&o3zyDYPo%3k_m53fYIn9qs zxz^UC{pXbtx*bLe&jn3EspYCLW+f#1%VFo~vZ7;tL&TL1qjZ}7G3HGtf9JQSkJJ<$ za$<%X(@$L>Th+b*%+Q(j`sAGf6frc3?Od4pE-;hre3sm+jBwczITZx5_S`xPdmZNl z>{G9446L3g`kj-KG5)JowkMzDIl*r$+=vr_=@kUz$;*nL#|RW3ci;TJn0afB(=-{g z1Ty#2MY;?j+YDpZhwe9dy)0;7m346DqjK6$4fmiNU-my7)^R;0&+YC+F=A2b;GS*$ zx?Pl3c?2dJF(i&shh2PUHKe3jop>dWJtcf6#-G^G#%@SbaT#~@^El0Q#v+^NGih1>xB;8HpK8ZT(H)0G9XXy#kRe0YLU2NyF z5R`4cY`K{4u=X?m{6D_-Y@N_?fQkw8em_!^4ovV1y4^W%DQBo_a|(+0&^va)_MV$D z>y`HXQ!{jNfAeZkoPH9-i{lwd5Ebq0v(NfVl$;uXmYSqljLto$lCF#hhu6y!<7BMl zV6ALkTM1#W#1y16Wens$O48$4wEVlC0~qxH@K`#^FcJXo6=gYLU=5U3xn40=z`9rG zL3SSQByS2%o>>fSJAC<`+rDkd?xz#HZT@e0hW8ZET$YIA$fy;tcDEXA&+-BloqyC$ cyqvq+ux+2u{(-)mU;oBgnt@E8T=Y)(A6^_kwEzGB literal 0 HcmV?d00001 diff --git a/doc/kplato/edit-calendar.png b/doc/kplato/edit-calendar.png new file mode 100644 index 0000000000000000000000000000000000000000..41f37158b5292da400c3c2b502a29650a27984b0 GIT binary patch literal 7933 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 Q|A^GnHr6WBxcTV60Qc5{SO5S3 literal 0 HcmV?d00001 diff --git a/doc/kplato/edit-calendar1.png b/doc/kplato/edit-calendar1.png new file mode 100644 index 0000000000000000000000000000000000000000..abe7acaa5b516323fed2644e14e00a0075ebedad GIT binary patch literal 8609 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 literal 0 HcmV?d00001 diff --git a/doc/kplato/edit-calendar2.png b/doc/kplato/edit-calendar2.png new file mode 100644 index 0000000000000000000000000000000000000000..9c0ed3abf63b92580f1bba78fb32fb2f345bc07d GIT binary patch literal 8913 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 SKCC}fY#4nL)C=7!A^!nX+d1(7 literal 0 HcmV?d00001 diff --git a/doc/kplato/edit-resources1.png b/doc/kplato/edit-resources1.png new file mode 100644 index 0000000000000000000000000000000000000000..c7428ba546446efce5a79e5c5028578ae43f977e GIT binary patch literal 5484 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 literal 0 HcmV?d00001 diff --git a/doc/kplato/edit-worktime.png b/doc/kplato/edit-worktime.png new file mode 100644 index 0000000000000000000000000000000000000000..b898cf38850cd88b38acf4ff60c8aca30133a5ca GIT binary patch literal 3272 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 E3)a0J^Z)<= literal 0 HcmV?d00001 diff --git a/doc/kplato/index.docbook b/doc/kplato/index.docbook new file mode 100644 index 000000000..e9204839a --- /dev/null +++ b/doc/kplato/index.docbook @@ -0,0 +1,131 @@ + + + + + + + + + + + +]> + + + + +The &kplato; Handbook + + + +Raphael + +Langerhorst + +

    raphael.langerhorst@kdemail.net
    + + + +Anne-Marie +Mahfouf + +
    annma@kde.org
    +
    +
    + + + +&FDLNotice; + + + +2006-02-11 +0.5.0 + + + + + +&kplato; is a project planning and management application for &kde;. + + + + + +KDE +KPlato +Project +Management +gantt + + + + + Introduction + +&kplato; as included in &koffice; 1.5 is a technology preview +release and it is not advised to use &kplato; in critical +production scenarios. Do so at your own risk. In this first public release we +focus on planning and scheduling of projects. + + +&kplato; is a project management application and a planning tool. +As an integrated component of &koffice;, &kplato; can +be used within larger documents of other &koffice; components. + + + Features + +Features include: +Resource management, +Hierarchical calendars, +Tasks with dependencies and subtasks. + + +Chart for visualization: +Gantt + + + +Project scheduling +Pessimistic, +Expected, +Optimistic. + + +Work breakdown structure (WBS). +Critical path and resources. +Embedding into other KOffice applications. + + + +&definitions; +&mainwindow; +&wbs; +&options; +&commands; + +License + +&underFDL; + + + +&documentation.index; + + + + diff --git a/doc/kplato/mainwindow.docbook b/doc/kplato/mainwindow.docbook new file mode 100644 index 000000000..7b48ec207 --- /dev/null +++ b/doc/kplato/mainwindow.docbook @@ -0,0 +1,53 @@ + + + + +Anne-Marie +Mahfouf + +
    annma@kde.org
    +
    +
    + +
    +
    +&kplato; Main window + +Here is the default &kplato; main window when you load an existing +project. + + + +Here's a screenshot of &kplato; + + + + + + &kplato; main window + + + + +At the top there is the menubar (1). All &kplato; functions are +available from the menus, which are described in detail in . + +Below the menubar are located the toolbars (2) and (3). You can show or +hide them using the +Settings +Toolbars menu. You can also configure +the toolbars (add or remove actions) using the +Settings +Configure Toolbars... dialog. + +(3) is the view toolbar. It allows you to quickly switch between +different views: Gantt, Resources or Accounts. +(4) is the main view. In the Gantt view currently shown on +the screenshot, you have 2 panes, one with the tasks names and one with +the Gantt chart. +(5) is the resource pane which you can see in the Gantt and Resources +views but not in the Account view. It is not shown per default and you +can drag the separation bar to display it. + +
    diff --git a/doc/kplato/mainwindow1.png b/doc/kplato/mainwindow1.png new file mode 100644 index 0000000000000000000000000000000000000000..99a98a6cc29c2c043d648e534c78e7a85578dea5 GIT binary patch literal 16866 zcmZX*2UHVX)HaHOq9P!mp!6cBAiYWNJrEQHrFRTfAcFKRy^AD32t^VR0fA5qUFlUA z1nEc*NDsZ;;r+h*-}SGX^|0owLuTgW%szWR``Krr_4PDvFy0^`A)(aLRDDK5av1>s z79-2?;5QKIFOD#>NK8Im!PYm(DKH?~}>SU)KgG zbi1ik8)(H-Xjos|AiaKxx6;^5$T_~0Q3-bcKTdHIBegdznW zp9ww!aW3%S0(>0jf?UViy!&x{$IZN_e}wmY5&TQy+CNMRCupc#08|^_bEmV zDMtU6kNPcrf#E0be@g@pG3ySK(XU;)dO{&`!kt7^jGtDDnO2IQR!NxBN}AD1n$k&` ze3>?6l0ImP9J9)uv--4Xp0{qFyXITC8dJXUu4Pwb<@nOsIm!9|;^y|bYT2ZDN}Y8) z&L-i1@jANHDg3jCf10m3o?eiN$j!~hd@C;eT3S@}t>|k-VR32kw+eh2uBGz(Pkdc-T|+}%eM5bHeM3`i zSJU^7)*o%)r?sb}wXdtKzpwLGPv=li=SWZYa8K`_p1$F}{*j@9;r}o;G&nglI6X8p zJ@k9}H;9q{FgiUvIyE_YfhiE<|6u}bPft(GPLC~4k1kD5E=_@$2C+Ofvo!U0ae8iX zer|CQ!~%$=#f9a?*|nwF^~L#(#f6Qf#f_z<3;ZK&tgrqbtY5U(HrCfcBi-2C*xcLR z|6dUIc6axPJNxTv`=fJ*H4~>lXU~4GoiA^lukD_%gCL%7?457!ou8du;D0}0>tONx zVD|iAeie`W9fH>C0a;eqqj{Z~TeM3HJfA-4vUIZDfC=IxC~M|lnwliM zwv(!9@R*(Z^R}=i=Wd+B=N!wV+{=flmWtHZUgfNL>UsN%+)>CH`zamRklrMXB%G_}j&UUt9G*T* zB@!C}U+JH94(MHk{IXN*&YgdLUJ=T1EeJy zYYj|)w1no~%$|_LW%}2P_OC6~*zH}RnB?Ay{q|a){oO(T*;W6W)JJG4dghz4fA*SR zbKe96ddaEr5%q%vv=XvMY{@`&p+6Qe1?}BIpZeSc3{tV=tjFsE`H7T}2AL*yo8zqS z^Z2i86s*lzxAz^8h_V1=}!d(XL$Qya0i zV_{=z8TMnbD{IUzH}Nh`jfZ7gD`97T+6{K{%Z*P@ZgyF+%pl}v`gdMZSx|>B_;=S&3o^7} zPsP{%OifK~&G)wjRs~tQ_&f-?sl~cA+ejI>vVW+sUsboP^yT%*9S()JLOdUgLv%|Y z@M`!IPF@}Ft&OK|-g_>JIJ;LwdM4}Fs6eP^jq38zBwx6Tc>sm3-+lY|cv(R=8-tKX zG~qM`lrlxW4(7=N{yxMr-f2Y%2GZhMa?`!Z zQ;aHRsmAS8%lpzPEj{JOcD?`s^N?fOzwvqmB$@61%bkgMw{cYej@vW`Bw};De_^v)w|-!8&BvVaMS+s zZ}O*Kw`J3rZIG_@FQaH2FFP9d+an?&nPG4ta%#wy#XB^tC$rF$wYjiD|J5ClQwZCO zGTFd1`#cc>G6_cUqRiBHZa?q)XH#X&s;co1G39tjbrXcz`1R*x!myB>W~RL@Bhpm} z_!tGFK&oRh`^46uTmZKaWpdF z&&IO@cSMTeU+DT!U9^-CzORhWmy~B2gRRDtF-%?XH)rqi)lqB?g+}`3k9|pgi5`@% zJBFsIn_Q&`UwwZd>OSxpf7TZM_QtDxNm|$E4d`2^(gWhUhmVt(F6G@9F=GIdoc}Z_ zphb?=*qJv$A8;%4ieq*bj9pU6<#DH;=M}rmOR)k}&bkHY0$ITsudB$CKWIHWX)k>7 zW5@%U>Dw{HrB7#KFKIEwJ&gvyp9wIAuQgAo92B%@2Oj4&DbL6@`ES9I6cx>I2M=L1;1uU zxq{~VcIT<7#@h`k4EZaJ@bBAe@LqfARmp)AMcoBaj9S-@bPISsxAm)&_+61GEFZ~h_6{e$de6RxaSwY-Ls3cGuZPjO zB4=z7N-d&wtwZd~D5O8;n55^+=D)|;V$UToSBgC<5LHL5Mjj;==ZqP(yF9|WwSz$R zi8r_NLD=`kqoCO|i)-{2lf422CtKgCkp&&LY?iUphepoNa#lWP?C?o?69#)mpJS}# ztaMLXK7HVRnezBj$A|a!yg-F&$56dp`myg)K5b4m_4@VUMt1q!=Gng*UTeOpwZ}9f zG|mOntM%1RBTGx?C#Rz7f$=}`%?4>F$64niGDqCw85^VMo=-w9{n|~YktSN2%Kf9N z)MMT78OSkYpX;+=ke7qOJYTlVNDV&GOgiVYtR-;Y1A_Ez^^;`+UNz@ELU9x!Q9vr_zF%Y=+pNlPX}iL>aqa%AMA0D!`LjRrzT1!%;=t3YmOC5HldCS8 zV^LGHFD?ObbC>*5<8H;BS#=JSxhdwM&Q56B^%P`1wm*F!1P0YNHn{9|SsB-e9sO`Y z5nD&luUke1hN{VamEbkC8T}FhsH&`@b6lx`kZUq7`|A_+o-r@?R0eIk9N{MJ+^cUWAQgf z)COnMB=<*Q?GPDAznMHwHE?>iw|8VL1^KBXsB{_V6P`jeLJS40GmbdQN6X7M8gSOPxry?I$<#}oy|PqUpY&NRMzi=HE-*x2#tNDpZH6K52@>5`=G_wH58YaR z%mta4pKXTjm>vAPrkmfHD=^|^GwkIX+WBB{)$sSrB+k@%mw90FS>lAKtOiSlSo$VAiAmbx{ zr6Y(L{0?|(ouNGL)4! zdel~B5#&vmzqb5^X~&_*E8Fm0TUZN1NVO&tEDV~ z3u-a2cFkJ*BVuQ2qkB%E2VA4>U!x&Q`g{*ITW5Xc^gE$Dh$V`iZJeFHaRWifo$jZJ z)oTCwTS1mcxdoLGzj~>rz}D-iO(306ke0SUCR0CUVp8FIgiJ_U%<T=fV0DrNgOKhRF_(_ zTF3fi)2Xyk@jL5qC-NSc#JxNn|8X**!PanI&qfP@%Jc}F`R{ZjS5M2IRPEd~d4rSm zG8vYT_}Et0>eg64z5|c!Q{aj9yHB0le3kr13J&E3x(N-p(yw3Rt|8a`G)?-Zjn7pD zFbneHAz~DjKZy(*-(@z~PgzeRQbi{tfv1HIsX9Vt$8N zPm5YDnSkXp)G<21*L$bq&)*RXpM_tsf`bq=(miSFVEo6#M1jr*Iv~XwUtLw_ez0bw ze2SgZcWV*T-SzEeDkYDNtW%%;H5etf-aN{{cik}=CBJcUm6F=5zPe1LUwAU{E3VYv zOSM(oDG$CYdo8_$^?rf@6>h$PQt=`H#4i zNZZh!3vIWkRv3pf#<!mc%S7Xto?W; zLbkTNQWP~0l}W2z7dkBlnD$-WzCIMHr-I|ouM#~)U7qT86kPQg3iVHHD$QPx)NN_* zpR72OT7Wjn2cEAl9wZA#5>x~mPs)P{P-cqLW^z}9Eh3UFUjDYAjFo~J#vu$*b+Sr57ua%(F!}S` z``tmC&|fGU-mk;U_>CUd)@G5wprELxi3SvvK@lt;urgFQ5X6OGJ)AkERtHHiz1-RA zDRp1lY25T%1`Us_#N3K`>%LQc#SA9K>~dg9;oSdVAdz8l>55l|qOZqx%cq?VMzrB> zq1qOVjo=orlX>pxqvDJ$3~XV|nlqeL;g?g6PL3~nn%=`}TA9&}Q!_(th`Q|m`}w472|F(lSC_# zBC~2b@?E>rm2A}Eqh4a_gP=7r$^f^c`OehD4R%D8K=1j&q=JRTjdRR{rE_hsBnt#u zW^0MtVkz>y7aBt!ORFpD@Lb>P2pzP){3Fi^yQH9HebiFrg8rs$W&CktfXyRmYV7D& z$dOzwisvs*G0U)lY}^M~Wgqsn-rh`5!^}pqucL(Bn*}HeIKc5e@ZOe$Xb73FKoUUmwfFFAK zR}IzfafyE6K?%_b#W+_?ga_}4-$6adX^z9(^rmzwfR95TOMdv8V~Rb^y>_LFzC#R* zVrqSS$Ogp#x5H#EazdlD;h1o{pvY=~HJli!;C~XCsIYY~m!Fs@Po#AG+u^3b>4(B< zu;$Y%NYL`LG9J}dyc4vM6Ej~b|2-|;h%YP0|0}?31_%fbrPk9K{)Wg@j<37y*0msS z%b;dhCqgG6CI-Lqe}w7UN#l8fRWr%}!FSTPR~8s5TqM^2di0ISR@X2H2Lw9#g&eDW zFkjkEC><(z?vLN#zP2}!RTN$)J6?ZVxUIZ=)zq}Qy=b!D7L&^8UX*mCn`*6~2A>s6 zfd%USFgRZtDxAr6FTygM)1UQDBaTHgO#^%bo6j@-+|~uzP9@X*_`MZUl6XFakSn|SvHiP^7qXNd4e2^zG6TZ1Q%@T-*V%CD~hhG>c3Jcdu! zE{}WPc>E%i5efUSG2r%Nq%l$AMp`FYJ=gfB7?nw!F2=*bPc1`NL)2Ai0F zNl{#}9h-)f4=mwZe@Pc9r`jqUK6f7oTsAtH;Kr=p7^^4sI`x}A&=!LDJaLh@tmclZK&IGkBqq`$7@NAzHsh*Y5g@bg!-#U0K=?x5`WC{

    LAmuz2^Ncz^kELb;)*26>}OCL!|@1 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 TQ3`xBokUAbPqjqZGW7oeGZuK; literal 0 HcmV?d00001 diff --git a/doc/kplato/options.docbook b/doc/kplato/options.docbook new file mode 100644 index 000000000..86354a2d4 --- /dev/null +++ b/doc/kplato/options.docbook @@ -0,0 +1,366 @@ + + + + +Anne-Marie +Mahfouf + +

    annma@kde.org
    + + + + + +Configuring &kplato; + + +The <guilabel>Project Settings</guilabel> Dialog + +This dialog allows you to set some properties for your current project. +You can access this dialog using the +Project +Edit Main Project... menu. + + +The Project Settings dialog + + + + +The Project Settings dialog + + + + + +ID: +Enter a number. It sets the project +identification and must be unique. + + + + +Name: +Enter the name of your project. + + + +Leader: +Enter the name of the project leader. Clicking +the Choose... button will bring your +contact list from KAddressBook and you can choose a name here. + + + +Scheduling +Here you define when the project will start or +end. Choose either a start date or an end date. + + +Start Date: +If a start date is set, the project is scheduled forward +from this time. When the project has been calculated, end time shows when the +project is planned to end. + + + +End Date: +If a end date is set, the project is scheduled backwards +from this time. When the project has been calculated, start time shows when the +project must start in order to finish in time. + + + + + + +Project notes and summary: +You can write here various notes associated +with the project or/and a project summary. + + + +Clicking the OK button will apply your changes and +close the dialog and clicking the Cancel button will +cancel any change you just made. + + + + +The <guilabel>Standard Worktime</guilabel> Dialog +This dialog allows you to set the worktime in terms of hours. +You can access this dialog using the +Project +Edit Standard Worktime... menu. + + +The Standard Worktime dialog + + + + +The Standard Worktime dialog + + + +These values are used when you estimate the effort needed to +complete a task. Defaults are the numbers of hours worked in a normal +day/week/month and year. + + + +Hours per year: +Set the hours worked per year. + + +Hours per month: +Set the hours worked per month. + + +Hours per week: +Set the hours worked per week. + + +Hours per day: +Set the hours worked per day. + + + +Clicking the OK button will apply your changes and +close the dialog and clicking the Cancel button will +cancel any change you just made. + + + + +The <guilabel>Calendar's Settings</guilabel> Dialog +This dialog allows you to set a calendar for your current project. +You can access this dialog using the +Project +Edit Calendar... menu. + + +The Calendar's Settings dialog + + + + +The Calendar's Settings dialog + + +You can have several calendars for your current project. First add a name +for your first calendar using the Add button. The +calendar view becomes active with the current day marked in a square +when you click on the calendar name. + + +Working with a calendar + + + + +Working with a calendar + + + +You can set Working or Non-working days. Click on the days you want +as Working days for example for your project and choose Working instead +of Undefined. Set then the work interval by choosing the start and end +times and click the Add interval button to add the +working time. Click the Apply button to validate your +choice. + + +Working and non-working days + + + + +Working and non-working days + + + +Here you can see the working days in blue and the non-working day +in red. + +Clicking the OK button will apply your changes and +close the dialog and clicking the Cancel button will +cancel any change you just made. + + + + +The <guilabel>Edit Accounts</guilabel> Dialog +Accounts are used to evaluate the project cost. This dialog allows you to +set up the various accounts used in your current project. +You can access this dialog using the +Project +Edit Accounts... menu. + + +The Edit Accounts dialog + + + + +The Edit Accounts dialog + + + +To create an account, click the New button. +You can then enter the account name which you validate by using the Enter +key. You can add a short description of this account by double-clicking +in the description field. +You can create sub-accounts of your main account or a new account. Remove +any highlighted account using the Remove button. +You can also set a default account by choosing the account name in +the drop-down list. + + +Creating accounts + + + + +Creating accounts + + + +Clicking the OK button will apply your changes and +close the dialog and clicking the Cancel button will +cancel any change you just made. + + + + +The <guilabel>Resources</guilabel> Dialog +This dialog allows you to set the resources for your current project. +You can access this dialog using the +Project +Edit Resources... menu. + + +The Resources dialog + + + + +The Resources dialog + + + +You need first to define a resource group by clicking the +New button in the resource group area. Click on +this group name and add a new resource by clicking the +New button in the resource area. This will display +the Resource Settings dialog. + + +The Resources Settings dialog + + + + +The Resources Settings dialog + + + +Clicking the OK button will apply your changes and +close the dialog and clicking the Cancel button will +cancel any change you just made. + + + + +The <guilabel>Configure &kplato;...</guilabel> Dialog + +This dialog allows you to set default options globally in &kplato;. You +can access this dialog using the +Settings +Configure &kplato;... menu. + +On any widget in this dialog you can get a What's This +help with &Shift;F1 or using the +Help icon. + + + +<guilabel>Task Defaults</guilabel> + +This set the options that will be used per default each time you add a +new task. + + + +Task Defaults + + + + +Task Defaults + + + + + +Responsible: +Insert the name of the person responsible for this task. +This is not limited to persons available in a resource group but can be +anyone. +Clicking the Choose... button will allow you to +insert a person from your address book. + +Addresses + + + + +Addresses + + + + + + +Timing + + + + +Schedule: +Choose the scheduling constraint you would +like as default. Depending on this constraint, the date fields +become available if they need to be filled. These +settings affect the actual scheduling of the task. + + +Estimate: +Estimates the predictions of the quantitative +results. The estimation can be either effort based or duration based. If it is +effort based, the final duration will depend on the resources assigned to the +task. For duration based estimation, the assigned resources don't affect the +fixed duration of the task, but only the costs. + + + + + + + +Note: +Write here a note that you would like to be +displayed as default on each new task. + + + +Clicking the Defaults button will reset the +dialog to its defaults, while clicking Apply will apply +your changes but leave the dialog open. Clicking the OK +button will apply your changes and close the dialog and +Cancel will cancel any change you just made. + + + + + \ No newline at end of file diff --git a/doc/kplato/project-settings.png b/doc/kplato/project-settings.png new file mode 100644 index 0000000000000000000000000000000000000000..1beb2a96ed3aca7cc55a0d2b6ec32ecdd0e4e207 GIT binary patch literal 5462 zcmbW5c|26@-^Z1-P!vhBrIL!K5Rz+W=0W{Y|p6Qec!+Pc|CtU*Xw<*bIx_H*E!$wxxUwRKCcs{udB{_f|ZGh>5#^4 zHA5z*T@Ygn-p|ZvNs^xnU}D<6sjqE(bDL4NwzoI7x7UBeIA*X@mbbST8THoI*4o+{ z{Re$@dG%lXSY2hnXk7Zu_tlketILb4-)XChl-0$Bl^rN6H0n1hb&*P?F`)eyR4R35 zdS+&7W_ogFYHDG6l1iSWPES$E)70tTOis>y9iJN~&M+Vm$vZ$~5{XP2CzHOANngp( z*J%j)3XPIRM@b{2q~SjhAlwKEH~bqM2{#1oFbI7fga!vj`v!)wSRA$&*W2@%L08v6 zdndNNv!}hYv!kl?>2Tr6uJ> z#pt40hAHqXJ60$;2U`TeuKjbuq(_S0r%BQal<<5n@u*tjQI*7lN(qm$E3SDrTvOCt<2CNZ zs^5#1wT-=C86$2PrC|Qhz|_dd#K^$dP~XTv*Faxc(^&GB5;g`2XylR(*%w<3vX#eTK?x z?le(W9$&iT2b#rrY8>vJSw4AHHnYFqJ?Zuq{yvMJhWlhlXTC<4mvP;#V*+7(_Cl^M zvtxJTB3L-ZD545$%E_Mr9-&K@E_omn1M0VaexG0JtdP(A6xv4!bcO9#>#AkF9o&oe z^bGUK{C1|Vzr#5H%jj!s3(o5aYwf+Q7@c&=iM}O5wuRk>H@Vzzc`3_Gwh7(~3$XHE zPY z^AEv>w5CS^Lc_oWS=Yn);lp1EL));`^%pDd8R!eWgN5xn-L>5gib{8l0upZC)fKhh z%q;HVn%3|*f!4X`;W@u% zrc&0|lme9$8q6tz;=KZjFZz9}Gcy1jNh#}5;L;nEpyq3V#@3(bX1hZJ51ws(_fb3% zF?~(K(C|DkKuh318;O0QZ+GIzv0k;QOz!@%;qrBCQF4Ei&7Ix=8&rJ-b+E{-fb)c( z%`MLIWVMxFj==nxT{WHqcme)&fox4;pMpfm6SrCV!>! z%T|U<%1GeNVY{Hnwl|W3CAHlzBGr?xP*#!jW8Y~3N?ShbKsba9did+L=c%Wq8ND}u zDD$_+ac_9$D(HBz)|^jc!?{hJKzAI_>c;4pQF0yyEBB&weKYD_Nw+zjTI!9K&B`uh z#OT*41cG3U2M55>*wFZ7o!oGikmV|A5@Dq%D(cmdax<$>L2R}M1s57{c(buAeAm3| zPV60*>nB!ccaD{h&rchmxLjW!yIM$#D@U);_dg&!v@HFS#_`LdHe z7pK)aId{>br^2=a_4;d!#8}o9KDzJRNn!;tbP+6&`aql0u8`E$GX%DOZe(U7=a6b6 zJs(@x<3&gjSL+-1r9n+~+FD@*;QR}Mo4t>(il!ic0i;l$_9Z>#rHy8o2Ivu!#4k9W z79?OjzB@+BY~Ygf>(mJx!^)jqQ_hmd)rj;f)D>z8=-Cy@Xj?xNy3TFbDfL)Z` z_%Jwy70-fZv*n4MnCERl7){;6-JJ`As7KUQ4z;7%7~NEe6wXccbK=_CD#E?++3Kuf z;w$J=PVfX!2?$hc;gX#2EN;XVYV$<`w_{S$nzoa$iY}Nh0jw!4s>m&q96gBtyMM2M^b8ZNgkSH(|}mw|C;Ph)D29gG83^XlYMN#1QBhX=QOrrVYCxA_aHFyTxy!IX6;fvII zyi7Eqg8-j5rr-IOncf5J*j`ZNDO5Vz;fopaPXAIxq@Mm~@L^A(d0uJzJqt^7BXG0` zr1jhlIenE>9{6_7z`x)G%FFB5Kpjhw%Pfr|jLC9CI_lXvzqgV*{;=K?!?{=Y#)ZvP zg_KHGQ=<`bEM*iyFFn2wC-~_K>7CPq$#vZuEEK1s#V~M-5=|6%Ezgb^K-k2-yj>iG zE38;=e#f;Y;>i8`GAl7|(k^NAay(YOYwps4daS+13c#_CeEV@*^aoKSRk6!MHqX|Z zu;Og?8F8KR(0I45XIva!hZO2>*8NP|9{s|B_EK6=j>9xBHhF?MnIk)>Penvrn{hw3S9H@nhpFkC(m_N9>m-ws3M6H<4strBrIQ+bor`7Yi#3 z5&(A-H^QMxO0=Yps21z7Ob=ys8v%4{sS+3rOnw!(AUoivZf1?!FQZ^uS$5=pkTq)& zRnS89>Ghgh=wW8F%9eK>-*BOulWrOp+6C(B76m?9YH1P=r5*bt#%P15bBhLID^|*5 zmbccz^uF88^0Mz{MDGtwi2%06V>%bpj>^dU>cnol`Ap)R1}6MhA4gDSeld)AyRD!s~Jht0?bjKCu-C^jK-5WjTd2LDVFWF+gU} zj&`)Zcy!kF!y0gt#Ns+Pp-iz_C+kKo4(!XgOw{MDPPO84)2r7x+vY0n-6y;+TpDRL zB?{0YmuY>M3*d{s7)g*;M)IZp3NHgXujyJ}2ZVZBlA`X^loqBDu;dPbGZFEGhyZ>dZ&yC)tmCK zRG+v?hesh1w2{;-{GIXACfjPliqi-H?jyBCPUfkne(TkE`xJ@|#yQeYdg_y9hzd*W zxA-{(&2HF_SoFF7&R&I&{3*5F7d@gCf`$&=$uS8@j@MN($Jj~}u!1SPCFD#a2bOu z!y}rCA>)?$>IEk=Jfcu2vB2e)G^D*m6iDbG4gy64wOl)lnS>LS7!>slW(T&6rfGcsXGcFcRZmMadtkWWBXz ziFXB6MUWXT>Bd7*=hERbdrb(honMq+Ws6&JC_dXs$tV+`8&ST88gu%sn&2csUY4RB z#!}Kc(rfvn%a4S8?_{0FWuORd?F%>$8c*O2ExQm+?;%IMQ*LOh?&L1)>S@a-O<50d zcL~(xtmcP-;tLnE`C_;Yi_~d`;E_ve!<)2<9tqLMRgx!PKwiMY^&(c;;e>lsXA`@o z%Pdr2$-+b{M=Bz<>$Qv)!5#7>hd)t2I*J&sSxB|&WK5d*3dTF02B3zf&P2HcXtNcF z2@uyDy+|*f-|nR;Qii*hlessYQKAp(f_eg^ug=Z>2=Qh!)l+&EOL^|j^T$)9>|^+% z=D$r_D~z(GG^!9zI@Y6LZ6`axHX40?#Dm9c55vs;W$PFpNiYqr=Nw`@&g|hF>aTEg zKd^2}B|l&S-7#7>iiCs`nH`Uxwx1o4LX}H;O^+xIinU_PdA$PlaV7e|h6#~-@jUAi z9(#hN?Pm*oVlL5r1zQuCKQc#iD?Qtu^F4K!F_Kh0pH_qecwhntL_9MNIcp_tIb=*T zrQ)C}I3(tm37=Fyx#Ha6JR&DqKzUQc>^-XEawt7MHIch5KFMX|v!*SQ3uxFk>pufs zUar@&MOpz;rJ1TXC>&2$vg+TtIVDN-hO>SX%1j-;PQPc%5Z#JYdDtowKK|+Wo=2b+ zQW!I&?)2ZUyfebNkL7~(&^ z!uGey3>p8joI5K9L&+U`{73(Po&3kK{%d6Z?XCaUi2SkKzuor#KZKp9{-2LjDFM_a zRt@~7<4y58KZ0xQKdum21a|%1Jr@S1=VFV|G3vWZ_NqIfkpD$E>J zp0iedE%CAXcU=q9KtGO;%a025?<+<%T@~-yv8gQXRel^mmK!}+oNkBY1M>FBm|S|^ zSOI#da;~ON7Dqtt__$d!4`bJ(XqF}jR6nNH;4oPnzyxMt#QbmdmWr7Xsm_sFg_o_) zs$F`g93xCYv>;B38azvK!wX~__B^|GI#h2jt(^(LxXDJ}sU4-g9H%wUZ~=T4$dI>a z_+#(XiXvt^&#sDh7vnmQVM z2qwN-ysI|~37t6Hjb=))LoR!p$;$S5ATQb?<<-d|=RkEd(GFzBQ!AhdN8jBb- + + + +Anne-Marie +Mahfouf + +
    annma@kde.org
    +
    +
    + +
    +
    +Configuring the Work Breakdown Structure (WBS) + +The Work Breakdown Structure introduces +numbering for all tasks in the +project, according to the task structure. The tasks are numbered in a fashion +that reflects the structure of the project. +The WBS is defined as a tree structure. + + + +The WBS + + + + + + The WBS + + + + +You can configure the way you want the WBS to look in your project. To do +so, you can use the +ToolsDefine WBS Pattern... + menu. This displays the WBS Definition Dialog. + + + +The WBS Definition Dialog + + +WBS Definition Dialog + + + + + + WBS Definition Dialog + + + + + + +Code +Default is Number but you can set the WBS +code to be Roman Numbers or Letters, either upper case or +lower case. + + +Separator +The default separator is a dot and can be set +to anything else you want. The separator defines the way the +tree will look. On the screenshot above, the separator is the +dot. + + + +Instead of having the same code for all levels (for example 3.2.1) +you can define a different code for each level. For this you can check +Use Levels and then you define each level code and +separator. + +For example if you want your tree to be 1:II-B you will set +level 0 to Number and separator :, level 1 will be Roman upper case and +separator - and level 2 will be Letter upper case. + +This is illustrated on the next screenshot. + + +WBS levels definition + + + + + + WBS levels definition + + + + +To set a new level, choose the level number in the box near the +Add Level button then click the Add +Level button. Then choose the Code for the level and the +separator. + + +Add a level + + + + + + Add a level + + + + +To remove a level, choose the level number in the first column of the +list and click on it. The level row is then highlighted and the level number +changes to bold. Then click the Remove button. This is +demonstrated on the screenshot with Level 2. + + +Remove a level + + + + + + Remove a level + + + + + + +<guilabel>Generate WBS Code</guilabel> +The WBS code is auto-generated; simply choose Generate WBS +Code from the Tools menu to generate the +WBS code for the project. +After you changed the WBS definition you will want to generate the +new WBS. + + + \ No newline at end of file diff --git a/doc/kplato/wbs.png b/doc/kplato/wbs.png new file mode 100644 index 0000000000000000000000000000000000000000..f597935b68ed95dd4d3928a2cdd26f281ffdf8b6 GIT binary patch literal 3804 zcmeH}_g53h7RRw6O#~FA1VXW_3PD69kzPd?uu-CvNCKinkWfMs<0=b*Kq4IharKA@ z3Bib=h9)UsD7rvE`X(5phN=)ld~x^ed4I%v-}5;$-f!X`|N0-xfLJX4wzlzY?c3V&n&59OEC^<1 z1=G_4K7Wz_d67T0$mdB|;PYlb^QJ#@r>FknPe_>Lk5BN&$N1x;{PB^`<0IVh;fb+N z6N7^j9M1T_!1#b<{Fnaz(cbRC9yX`@CjG zCR!t{G2=xo0#8NY-@-Hg3nHUBI-@i#BNvyE^Do({xJSRIBqt>&J^cOQgQN$En8fIq z=qPj)8jZRi6`U7wu?Y3+Pr}a^gt?$S!E(EIZId*>-x~Z5$4W`bmz;C7^N1Z@@UtR} zfR&nlblAk%f@B`OgBree$&^ZP3eUhzJ_^G{dDpo>S}Q}(Yi2owxG1&+MhtR>pTE5u zuWxptSYvCM*8&9UylPFc8CU-C9p|%Q)_Bw_TY$xEbsC8Z$MzFDHJ4K^&{n$0pWG-# zmdb*h{AHz13~5n=O*iuRi0 zO*h64ffEetxE%NX)` zayzqjQxysv))Twvi39bRf3yyXvZKAKf*<^*t_?|7*DU5BvyJG+gWHAF=1^eNW(6_~ zIT=*h=t0BmnTr?sw2<8Vuazld>eW6}t%rX9gFVr}uaWMW2-W^Dw>(~vL+xxZ#KNj} zt<9~Yg+>_K^A*2Ans+0)S-k7MxwGKg`cef3R@vlv6qz0U5o?3tPFgz#P-EvpZ-Gcg~ffgXuM(02z%o!+FQGXL|-8twwZm>G;wDh=#+!)_7N3i_$gJh zYi2a`78@>NH+`}J-}Vf#Dd!>A2Tz%eCc~<;f&_`9c1|H)d zCckIX+?fR7q%7S7=hc2QV-Lz{KXcv!r}1#_*jicUTX@@+`lqQ>MEGrev9`VF2Bu~Z z|8CjMzQwp#VAHTET^6t4eaeG|_P~eIV~6A(5t$3Du)#y$mq%W04QUWV>CBtytdN)m z-P8HeRyu$33(@Nz7eW>ZDZCPl3w~fnt^z%nAH%YiK^lAU_CFF-_td zsLil+6RezDdY~EZ@SvJa>)#a?uPGn(>*QCM5<7&(x%0CK-4eisg;VRxQ+2?^F7046 zrlSK%nLOz2sttJ|{vE zt~AGreR=f6Z=mP#rb^T2%iMrP5!>B>Bio_&>wMjwLZ5?YLE(;+%l>i2ui}ZmPdotd z9~q>VTk0pPSZOq!9kczD#{y*sMjm(X+EWV(_0GQ;VS`0dV{P$e=rcLiC4g_~U}H58 zPJV+N7s~GL*sZ_ttKR}CS-rKEAqQdRHvs7-ZVgbj3~Ux8h)mV>qS_m0p9QI=s83I) zt(Gp{oXX-3aaveTU6O?~$~Qtfn1o*{)#>NIA+yXF7pBo>09lg}aq;l2kg{hG>kD|+ z2iE76$U_RFI(w_5g1EE1ip~10s_Bz4U+fBaGTpahFIkwX*dG4+e5@*ajdIf;7$%~a zw9%s{UC&JqoE1^5s5;?)dLA=fRxTwttwy4F1Z8*v=#yz*aVog&sbw0^uN&af%a5Ux z(+jM;s=0(}AxZ@vbu1M|fGo4bl;J4)cx1~Who9BN{2J!n{tC-5TSY-ihHuUCI#H-Z z-xD_Zv1*q!5=rkrPtVGt>=U49YGzBJj4|4Z!!_AAo8>|bcm*_hzB58pE-o|mP~?q^NrzYU$ZDnrUtkN&`cQd;tGM!m z*HG#8E}}tlW$37))Q`Xj1NtXGwGuH?x%yP(^@!1u0p#fj*$5h;4oA868kkLre_|8z zbl`q)R1h;nbW#QROt0}X^a%_O&nok?TA1yWbOI9Jo6Rd(H*tx)ZGqdxf3zdu_sM-z zFXc7-OkWV>UA$xh0t~(`YRUF9_^BQ$D}Xzkg6y8c6FmwRq2|e-8e}Oru#n`=FEIPI z^ZMkZwSz{G+E;J~m0Mty;@S<_eN4>>5UIV&IA{^s;hr4A-WmqBE4;KFb5hs?_Dbk{ zVuY_;eP+!iQLa@0EwH(V;(x0oJX2tKxt=U^a0d|klnFPjOy*U<>3(~Rl*|totnXAS z`1@ikx6kli`?}WFgW>t5&kRbJo2~O|8{{?vOiN81&g~q@?m%S*>#x2raRB19IES95 z(v0_O&G5G08;Zb|s)M#%1IZUhJ#o4iE0D-_>K*pVcN8U9Um(ZuOQh{fE$*e{0MVLU z{)*RK@ANrTP-DC$T^j{Ju-z8cq=si!ZUSJSy=;_Q;=Fs2bI>ciQhU=E1Sj$jCwh27 zVtUtePZidUS9s<2kHWh2?E9g1Ov#z7WNp;ELs=l>wIO$ZBF(HXuExaNAv))j>qXpl zK=zJGV=ZcyYWo{(b;{i9B~|72Od<43yelkP3Y!`!NuCLPhlX36{cYQc5i~YIAJX<7 zfaR4F=JZMc1SZ8*91?OWfC(Jz$v>Lea>iH;Eg!DWs9yD+mhAQNi|6oopS4q$w>O$y(+b;F)Wtkv;G$GDCS9^!av`IEye z0$XxbN2{%+Z{d$Kfe()ag}VR=+8B~$_F_PyVK2qWu5*LuN6)d=IU^o2%>~WFy7_g) z4Md#m;6d?FS?9YDiXp2aP(+FO<-KjOnb!e=&A8M27sM~^DC!16lvCF}qUn;X3HC-IgL5P`Y8R^=snJQY=hGeBR}Jabu7Fo!U^DMD>b&UXPHf>~xy3NM6qnA@(2(6a`mVMN|@pvN*2yWaiWxMTRcp_v4E>eSA<|aF&NLY zUuOB=8XYEEJBv`RO&S>A&b%Vw#L|=U| zSi=N@v9uSV0z0VTB9kH>nM?Q#wDUM626JL!E*Qy$yDGkgFS9->&S*#qip<>L1=6QP zl&^`VPVz537PV1%~NL0c8Uov?^q1SMAJPyUb5;{>aq?9+8pQm za;{5Mh=?E+4dnb&@mMD9{S)KU%04{;d^Lsgm-Q4j?ZL_?!XvGtb^(D1#d;yeuFPh)w6FrV$84 z4}d^)nkN`&|9Bc`r-DEXAk-}rE!yROCOSGgfaM$yhcKL9MoLmaUS8=6LPK3c|F(gl ziJ_s1@oi%h1zlSq%}0Wo&NSd!kI(CRh~Ev9G!MUE8L40wd(|mf@p0xwm%NMUGI@6z zpDsSFxcI#Gk{1c#+obfe`7i!0O8%`%{@;`WI{y;bsTA}N!JSGWT}mN8ltTKHLi=f4 zr4iPz`j-K<@By{RVYMjAzfg~&Xhu_XVko+?6umf#!E4H$Hx%>aG3&GmJK~HzarQ5n zvvwIXcJC+cQb+Hl3|YPzuuSZ;NbIpl=(3FeW*ygT7hP!|S$037*eNIl?d|7*eg51N z`@-*KU{D|~828@on2U+UHmr-i|Z?k+pCK^e_8qqb!BILZD(tJXM25T zXJcn)^B=Z%{yS}NZ*Qz^P?xByi>v=1ORK9ZtN%Aq|4BzjN5}s=Z5|&}kB>KxX*v7H z$9u=ee~yoLkDdHjKY&0296Fk6CZ0np@2))=xtZ9?BYRg*`jH2#*cYc$tQ=ePx{Qc5 zEeE^rSo6|b%IxqDMc~M6^rq{NgVC|81c~C=3tyTHgU!#(PSsdeqHJsF@(YGy3GxjfS{w-N*w6) z8%Y?!$t)rOWOlk$H0XH8rdXz=3=i`ysXvY!bgMpF7Lw_<3*2Wp=?8OE+4p$%O|Qil z{~|W+KuY4opy5I^^8SS9@-IWou9Ex?*Fox_f`#ay!Xp*+=UEr`bidw0oINta?E~6W zRYmBxq&P{$!PIC?)Jntg_p!Ra!#_H7}@T9UCb8s#W&1&XS?-{3SFnKR8EmW zps7iNS(RS>rRRz#GSZckqTty5xpcG$QtJ`sM75|g-EI@)B0z3vR%K6nzKk;2^bstx10u{v7wNkxQz{q~aESb?73 z=lkAvbJiia^3%U}ZSuxpMtOl`wY`7?!E?NWN-cprk67?^wL0bzM^#CGZzv4iI4muC zMdhKx^FHO)A72wH6U+RxEtW}Bk)9!^`%_wWI>=?rnHJf*Umcq7S9n<|j{X|i)og_y zF5es4IuLBv*~rWlJo!G%!RyCU-j^djc8wFkbl?h`MLq<(&mi3LH?aOl9DVoT=#k>* zntQh{A0JX3B)2xf{Ha45T zOmJON|CMsbr(EjTzNyr@VzaP(Y;`ryx8Ve0%Rzhd!9%};!`0tC!znc>l_vo{Sth+9 z`2LH}8nWQ2B%cGeQ7O*oR$r`L>=T`rEl=h;>UN>(~u9yXqtJgYLvRvL(H1os8UbK(Rqy&GV z-4&i+szozw7W5wF&?{Id_EO_fge_(Ds?7l zRL&h23~i>D61?zzX%0m?ZtiP}wFmbe_fl~kEYNa0@iF;DUT?hrD)GV2{=#jQ{0vx* z%if_H%G{p2jv+|V!nBTI5|siT1n9q>1rpU3#TAm9A(sR~zx{j*&@}MLw9-tJ6B;D+b|Dk=>4<~#P9;DYZ|evlFl@I z#Liu(k&Z=e1A_Cmjo~;QM!L8ix<2|Qf*mw@5g8xB3q2!IWlI@!>s?Z@a2{HyBD0Ywo>?m+Prq`_Tuu=iV zS89tl6_UTqXKrws)i-B2+mhoq+K6hr6OC}c(*vjR9k{;JV1Bw?|8jUBPSM0A^{rg9 z4@y)~7u|MGLDsNV8RSR@@^bo#d^7Z`wE6h-J-Zw1(2W5e%1I_CZm4jN8fP62bMcI7 z+OUZUo8}-%Iw~iK%rMz~gPMMH$dR;<);n(k1;!jiCsg<2mrDr~YY$CVx~bX>!5iE}M;m-vuho%J zXs6|K`cu11nu}5NliiGfODk<45<8K*mn~=B^jUPVU>s^6`h%MYC!y&9Z~ClC?NhQq z1oOu##4vSYR}AR8Fd`T2tdpo(ub9F4%BkLsl? zWbvgZrPy*@u#9p2x0-?G8J>_m}RmX zOD(RlsHqN|w%N0g+V~wK6L+WLIam8Y;luWiT9%T~Z)B8w+IVzE0O%<;{^vk2Sy}$( zQC86(`qKByQC86J*B^dhc5bgJn<0@hu>L2oc#ObYX}l8V?v%7lc};y6PwbPZ3As5% z;ia#uFkkdq7ionM5L0UA^xZbVms5T;m;wJiDNJpL^&o2NwX{*@=E5Dedu%dPw9n_+00tLQC?elFP51-%EAP@}3W*i$Mnx3{ zpr!&5>cbp<&@K+#GE?alUqb$xmLihyfqNi{3vX3`8vdyBN2>M`#Qlvs2n@J;oZtb< zJ`J9F_%W*pw4lBl@PyBSwc3)?GDQS&Q>0aI6?UMmY_b994lkCa+Oluh-u9hnns_)6 z3o8=-D}gh-q1t=EPsb%k*sr}ojJtEsOY5u9^pjMS8pA|&Sqz7b_<{@+VfF5rLxUv3 zx6!aYrX=WQX55_*OYaVlhcT%ZirDl!49H(NZKe^BdIhX_D{o86JFQJHGIi z(o=Z!5*^!(3s*D4dIv3f2MJwH8P5d9=r+ysr2yJIo-W~Q_`7C+Pb^**0!Ev#p_wLf zP$tY>UFvwh?Y*bmjU0FUcjz^5HCh@6yh11njKK@BAfIrT7uocfv)*HBDb1ywI&k0x zSuKWFvlofLbejU9BEh0)Rw8{J$i9AA#ywzg0CN!i+XxV4cd)t8@fwVE{*fJJ}12qnoM;g z1!)fs!9O6W@rMMayV{As^LH4zC%ct^Tneeu{MH{Sb+l6>5^Bzw>C{t)gTD`6b4XaL zGQEDbAgl9Ir~uKiBoOmv{x;9u*S0lhzBevTfVePnO+@A+VrrTK-*oF5$m&N*zmW|B zzT%?E z8d|hw^)=Jg%5tw`Y`wuD8ZG2uSze&;4{Q4%yuobkppxBv*5h<2S1&SX#C%$1=v^>0 zLv2|>m&7al=s_{Bv-;{=Y?aNtwayVi z3mI+mFXCCz%%`#g5+~Uu*r8y!Shc$&spyR0USPnOdHH7K!}qo1VTZT1_im#{N-j`U z_X5esT$d$$K_J1C(%!V8@qfzw&IcSx^`{U%Q0NK(V8BlN#4^%<9kKJsMHPCrl~jn$ zN$XYbSM{$FClek*o-`3esHkvq`4gg1BOw%-r*B8V&I)HpbXs_TXYVs#J)IcS;Q%S*Z>6n!^ak{=hLEbuzH*KU%Ka-j#1ofmD zMEoL5FawLi*Tdxbp&hKDII@1xaz-$Vb^HV>7n}1ga#$v;jIeda9j{%4#- zp3C6pPwLt@@41{6Sh`fNjWiV%d8b33zuctSp8lQ}F8<>c5Wd;eKBi$>wCK~rxdE1Q zY>V&6?BFB{yc)aaZNL#U_kxtxie$w9@dci`o^VEL&kD{o)lYJeRS7435HY1i`p?~bvo>0^Z z90h?&0GfW7*DRHX>KQ3#Q9Ad>V!gr!!8mHZl}^)GFRznH-~5kQA}Us-@*vlq88X$~ zYaU)qxRy7Z@T3FDnItGdV)8&cVtiuH7W1_6pz=RC3v_bPXL;M}N2pVup7Jy~^Q8sm z`rTOXkAq${0&icSkGy1dqATK(#ib+eaBIob`{_@)A<^W{{5#K`^C6noTTyikHJ*&) z=uugyK_pjT+g#&0{U!nzH1UP@X098;>Ju8+0xm;m9qUS8b4vzMNYP}>_xvc9;3ZhT z!pQaw5uGf2QL2|L>MEb*Qmj);JM#EeOLIShhkv2$=g5$cisYQa<&dV zF&-}}<`-#GeQD<4HUGqTBo%_`74oLAiUAFuHHokHYYbcpO>8NTsoifVa92u1HNr|1 z;k()=6VGC`!vQv>LP%F`dgH6SWEUsV@^26FEN8Yp8`VWz_W>6_n@QOKi1#S0SAdV+ z2)g!kiRU$l?g*_2Ww&%R$&&66JK%z^)chUI|H5G7U@B1vL9yvsx{e?(}&^b*Y1b`2L0nb(;Ai8 zseYxx-gxa=T){$^-U#Y6xDw%79mmZ-2Ct=}=3z}S#=n;+QSXt)Zw3gQ5WG3XcI?;~Ws+EZ(O(K$}s@tG4w4@gi)Rb!Bqld_t4{7VU&c z-N4^D!pMC_yCHPZu ztK$O;9q!IM-I^V|I;by4>i3*ujRWsWt^``NcVXUqccBydjOda|h{t(LmN477CK)^D zUPaHBoU+i_0@x#URa5jQqCeZEfWLLxb%d+thl6LZKLk~ za~jH$?j625TrrL8%r7l;LQ@0;C*@4MIy;;$vtuj;z8C%0k9QW4?)YhS!CWYT)8iT1 z?pIEmgxXO5x!)y87CI>uLf6z=U4DHzgU}&#j?$iaZbG>tK0Sf+Qf#ue5o7?vmZfKK za+V=^I+51offj<|*Ft|B=Pk3_Himw=`BoPmnbmV!=s+&TqVma+OTwSc;#egIyR?-= zIJ4wlKVR?F-SLj8w%D9ks>(XcZyPPE|D{x>l90gogEv3ktWg}Vc*P8K?H zg-v(jtO z4w?t$m+mCYz-FybuQ+br5Wvm=on*CoR&+6(8T z_AcFwvd~E_Q!Nno2KVV^U{8?fKE+vk;a4Y-yUhulfjacgBH(41?v!pWNtl-PfTn*x zkU5#G(Nz}N*6vA7u;&2;D|5KbC)>%YW zt1eS1(ZM0sp@iD1Kr;NoUeVw*q-YmWhXFZdoc1_ zo)KQZuOQSe(ybeJc^?Q7`;)SO400ApIjtiTV0Okr04wgR!aCR8_)d$~<#5_FeTw_~ zSk- zIOl+0MbNTj0JA#W`DOJgZ1<{^LqG19V|iAUDpY8y`=b?sWT;dA9CPAbnG-L5>bK!C zV)yYYlhaQNB$=g^EKI5BgQM%=Oq-BAp%x36zV5?vG3WT#T<>~({RG-S)UzKRyx>Sn z>(4b&%v2V;{yu*`Qgl)kQ*|K?X|QY`NU_Vp*ec!oRo1Mq1>{AM3$|?05&&!-cIqSR zR@txC#vn(z15DeV>9hLZTE5Wi#hQ;6g~NSTd8fd4`hq77%a`rSU%ftBfHlsEGK`dE zaQ3qx92|D&@sD~cjP38f!3df`Q(cJ4OV2ERAQdyQ;<@*3LRC*+{MF26hbZP*6fPBg zd$E#qw443Mf{cI+RkVL}3O0e>GR=)5Cv5oYq*LH8cX^(HhQz>?S4*00E=F>!whG*i#*rS+6MwD0bS{shGL=>+FR+D`H+>F|i;&#=EkGdCY8Nbe3*A5t1*1gdT6Gx1$~Bm8M4cpVc33=C*Ll?DufLP|X6imZ&X29CnUz<7M?6$2H`G~!Cd69?Tz216FJcZlmfGzPsLTBs{tF=$ zUMBM44ENS_lbHw@n8EcOWyVE)H{YTMUmvTODS zz%TtVbR#^b0*&B#{WT5fLdJOWM0CquA8HnIF6h8i83qa#EYfC`?OEb=ZK|9D&DVH< z$dQjR>q9~tjyao!oJ3TbD{IY4vdYpISp{>j;MKbHj`d$FrH?0lW)k`^!P~UM9S>N< zG5ZQ&x*iyZ8-L0j`@RfBw#o#v4XS_3$?Nw0hSWc};1$YhyH%f)SuC z#m0Nj^lTrkCCG)|h`|)=4YOeaVDBPsC*m#N^`xM7IIuv4kt` zlCnlvP{8~;)Bzgrz)kaR(BkXB5cK({$jj9%ZqKOa~Qm+pMV!?jA!0@}W z&{V=t+Dj%;bJ?b8)eptp&b*WU0|>yl>94^l2ZdU3j6fz~oCWlr%G2ObjY~EPrjgG8@0IhKQlWXw?5(r8(*`Yofn8SR`}pP=DcXDr zp-}Q@fkzMt4>cb9j9W_w>ILh;`pLT5!mi<30*U-SaYV}q5sW=s@0#R?N=?0-?zZc`Gb z(2q$0%ohB*KS&!~%eOoApK>=-FR#{A2xOn64RIxyX$ zRrg2CJtcS>Jv+ra-Q^jf@p42jN!GO3W(M$3pY0bl9B#O^w~!dAQH}u%XyMMb5!4eS zXnn%;$!1y!oy`rEanNgcQc-*J*t&ZxBZm9LPD!3&JF~zvzYt)K@=@9hrX9Dua^5{x zbnKbFe~2U7EgE>n;zb*{r@9#`&6$u3El5S)X**8}VYlJW6zZ!1ZS<66xUYw?7ADfs z#`Xy-UWsNyt2ItY^+op}w|XRJYQ)RqS_uyabgTL2+1YlOa;%F{KK=vi37Y)Q|Re9(L~Cms?vhItdPjNThv>HgSRsEaI$v1 zW0IKeu^oAvbM9h%5KSZ;pp$PMqa$)QQ$sb}F!T09d>BTBsEP5einS7Gw!XEKr7k648{Q zQW=U3gd$-GfoP2&LuCaS35X;>AR#i6AV|Ih+J0T%c>12-^FHrA=e_rwKkjp%o8pFb zT&KPc0Pv9$2JH?2#8y&w$iXBz6_(oq0Cdjn)1waJ|0kBj;zhCe{ohz#SY8k<2!%qy zpJHAhm=g$QSIh_me=)rhJTC8-;PR%Xcw=m7=5l!xlhRs>H9a;uEy>);Io_n;?{Ne? z&OCQwerkM{!{)JBQ!BWC%slq!uUL|vmDRW7?B9$|u-TJCj4=r&gUw{JC3$F&Jvz*0 zjr`*68@9x6tE)ZIywc2MvY3M-%z+_hKa<|er1wcN`k8~0qMOmv#au1V3Jw1|ogPb^xR5aHPn!F07?Sxf^~7M!8JQ;k+*K zYmHFK|KtP?@IIFFwRK1}UV<7kc)MfT6)eO*t1UO{2iDYV!XMN-{HEupspQbRqAs&h z`-L@YLP1QlV==oOhy=?T+3I%XGNR==all1V^^LvnnT_>V;h)DbJm}-cU7@1b#-dT9 zxps&Wh_@(vB{WwaKIy#8bNo0KCdwo0-fT;@ayCfpi#SS~a4q~^mOs&*kbLJeqLbye zw1&5q*f``72-_GP^`c3jUKex_<-Bd;L@5uykT-Sxco^%wMLvB&6BB1&3!1p6RH(6v)VYQvBc`YFhRu7o zxDVZ9c)n>i+`Vx)GjV(?Jbd4G-68DQC^JUK5ic*ZmwIaF7~e86+f7MxsBx~*isOo8~9*vN#M!gy=S$r1FZ); zSR>QUdnT<7AZ`0(_?+qeMpPqEwvJzk!rj{_K&|z?#B?t+n!6>(uPP;WM5x$eitI|d z>sl9|$uWJbP3~;c@Fg|*`E)emGmellApGb%HYJVL_woiO2!^u!X25gDPR#8$kS!-7 zszVaHNNLdW!!A=n{d)PSvO46R`vbQ}U_?!v!+PAy^e>dhGHgypT704ClS)DvIiB)B z0qaDFN7#oQ1w>R_)`Z=OG3+&YbVFauNrk7k9U-rY=dOeX&gU?kXS^-W+v#~cY0vF_ znO*G}{$>yq-hl9AA?$r6JTHYG$B?Bzl~_-gr(H5uaXR6sxIy% zY7?|#guPqA)l`RS?a=k5c0oHAHcsj%xqmdt-maNE7_Esb^6Qv4Y(vS#yKN|h2O^Vt zLT@ObUlf3>RN9y;Czj?Jnqo5L9&lT9$b<}|eQrzn=@R|GGaqD91FiQdVeTAuQ5)rb z`IrgyNT<;&8%|q}I1R$@R^;PDE?IsU0aM49Nwa5KP6BS!dK{%yEPNl>`3;Bmxf|D~ zGtTbOWyHTnc2A0^cdQn18o!l#Aum}xYcQCiKVpLqM|$hs&BGXICWmWR$)f_2KQ^@L zPiQ+{>Qco)LycxaoQ6o~N_mu4@DQihVDl#1$9vy7<~8?&2z$VS*AI^6F5Zsv%(_5M zp;%;J9e99Pn`M@V@l4Sq%cFvE%i8E7QfeEyH$i` ze*)2Ebt_lud1Ue8c#V=h{JyLATo7VLd|5H*hUBb`_2EeWM~a=H4+<4^KbVY=P1Xh> zI;-6SzTTCDIHocDDK;Ty_qPbONp$o6E#{fd2*70(Kr0$xbs(7|4<-4Va==N z+gO#HK91E_pxQjHr&sPU#3QLL7MW`xXIoRALLviCUs`7FKMlbzzEL{Vn}UYDel@EU z3@j}Z@H2X4h!iOQYCa1h`my*N=dE^WrOrEXOPGyDMcMkb=9%WeXF!P({sdUFHfO#O z2RA?3r9X^DLg(IT$bR31*M%6WDCQG~WfZ>4LKa~u0 z08|GcSDzp!t^Xhh@)4HF&Jmh@bWIsu{M{@9WG4N3+-5jLupB=4uGWMR zUVMAGQ<$VBOtG1pG(MIy>}5qMnx3bcY$&5#Jp-W+2_Nc{2r}lLuIDD+2MoV%@2iW{ z1Q~GYSK2yD9vnEUJp9cb>b>xQ#1FDF;Y4Fx(lPg)3VhSJmJT5NR@*QL*49=z;IHT( zh2v>GryS&Q8P^&s0mcekxvQfU&h>-FSZC{op-{9=aOc)$e3?_jV~rUC8j z5;FtyzaQXyDfjzaVNS_SSk+DLiF6%THlz~{LYpuahY+wvkAYAs=ER;7j zoMnCn;muwqRm!`4?Q3%f*uGyfr532EY$`0~=)aiBxjs7r>a5cJ4jM(5Yg})<04sM< z%8y=ezD_3!aOCf`Zqc&sjE9wXnY&#SeVz7UAJbB$kMJeNyW9lcc#!QCod2a|D{M-z zf!208qQLFc3_(j)WIUu-J&i9l>rC>yX{>O*_%^dsPm#6ch|FG4IBZ+|RY;jLY)%l9 zf1fnhY;O@}9J3a>6iEmJ9B!;O?b^0}e8ge5(vtn;F#f>bh6fSr0SN zGqc9EI~4c_;`}F~t=7D#8^=+WND?YU)`%i4j4i^5FtScrMsEnAX0k8Yg~^ts!b4@rzGNwbQTBZp zjNM>{8S7XZFQISr_I2LxyUy=9=YQ_!KF@XE*L|J)y3P}I7jm1GkCl#&j$Kzr%b1Ri z9zuKWvK*m}kc}M5=;)5n-PJb*KXP*N@bU@?3keMi4GpL9A~ZabLZSRT`1wEl{FnWH zwe|C0?&rbw&%MK$2L}h++uPKC+jlB;i%Q+3Qa66FPNl9L@_p_5+Va}!(kf+
    &Ae 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 + + + +Gary +Cramblitt + + + + + +For Users with Disabilities +This section of the documentation discusses accessibility features in &kpresenter; +for users with disabilities. Some of these features apply to &kde; as a whole and are controlled from +&kcontrolcenter;. Some apply to all &koffice; applications, +and some are specific to &kpresenter;. + + +Installing the <command>kdeaccessibility</command> Module +kdeaccessibility + +Most of the features described in this chapter are enabled by installing the +kdeaccessibility module. +The kdeaccessibility module is part of the &kde; project +http://www.kde.org. The kdeaccessibility +package can be obtained from &kde-ftp;, the +main ftp site of the &kde; project. + + +Many distributions offer precompiled binaries on their ftp sites. Please check your distribution's web sites for more information. + +More information about &kde; accessibility can be obtained by +visiting http://accessibility.kde.org/. + + + + +Visual Impairments +Visual Impairments + +&kpresenter; is not usable by totally blind users. It is hoped that +a general screen reader for the blind will be available in future versions of &kde;. + + + +Theming +Theming +For low-sighted or light alergic users, several features are available from +K-Button&kcontrolcenter;. +Under Appearance & ThemesTheme Manager +, you may select from several themes. If you are light alergic, the +HighContrastDark or HighContrastLight themes +may be helpful. If you have difficulty reading small fonts or seeing small icons, the +HighContrastDark-Big or HighContrastLight-Big +themes will increase the size of text, buttons, and icons. You may also customize +background, colors, fonts, and icons from the same screen. A set of monochrome icons +is available. + + +If you choose one of the Big themes, you may discover that +some screens are too large to fit your monitor. Purchasing a larger monitor will be helpful. +You can drag the portions of the screen not visible into the visable area by +holding down the &Alt; key and dragging with the mouse anywhere +within the screen. If you have trouble operating a mouse, you can also move screens by pressing +&Alt;F3. In +the dropdown Windows Operations Menu, choose +Move. +Move the screen with the arrow keys and press &Esc;. + + + + + +KMagnifier +magnifier +The kdeaccessibility module includes a screen magnifier +application called KMagnifier. +If it is installed, you may run it from +K-ButtonUtilities +AccessibilityScreen Magnifier. + + + + +Text-to-Speech +Text-to-Speech +TTS +The kdeaccessibility module includes a Text-to-Speech +component called KTTS. If KTTS is installed, you can configure &kpresenter; to +speak the text that is under the mouse pointer or speak the text of each +screen widget as it receives focus. Before using this feature, first configure +KTTS. See The KTTS Handbook for details. +To turn on the TTS feature in &kpresenter;, +select SettingsConfigure +&kpresenter;... from the menubar. +This will display a dialog box. +Clicking TTS will allow you to change +the following. + + + + + + + + + +Speak widget under mouse pointer +When checked, &kpresenter; will speak the text of each widget +as the mouse pointer moves over the widget. + + + +Speak widget with focus +When checked, &kpresenter; will speak the text of each widget +as it receives focus. + + + +Speak tool tips +When checked, &kpresenter; will speak the popup tool tip +for each widget in addition to the text of the widget. + + + +Speak Whats This +When checked, &kpresenter; will speak the Whats This help +for each widget in addition to the text of the widget. + + + +Say whether disabled +When checked, &kpresenter; will speak the word "disabled" +if the widget is currently disabled (grayed). + + + +Speak accelerators +When checked, &kpresenter; will speak the accelerator +of the widget in addition to the text of the widget. +Accelerators are the underlined letters you see in the text of the +widget. For example, in the main menu, the +Quit menu item +has the "Q" underlined. You can choose it by pressing Q. +To speak the accelerator, check this option and enter the +word you want to speak before the accelerator in the +Prefaced by the word box. In this +example shown above, &kpresenter; will speak "Accelerator Q". + + + +Polling interval +This option determines how often &kpresenter; will +check for a change in the widget under the mouse pointer or +a new focused widget. You should leave this option on the +default setting. + + + + + +If the TTS option does not appear +on this screen, you do not have the KTTS component installed +in your system. + + +Not all widgets are spoken. For example, +the items on the main menubar are not spoken. + + + + + + + +Motor Impairments and Mouseless Operation +Motor Impairments +Mouseless Operation + + +KMouseTool +If you can operate a mouse, but have trouble clicking, the +KMouseTool application may help. Run it from +K-ButtonUtilities +KMouseTool (Automatik Mouse Click). + + + + +XAccess Features +XAccess +Sticky Keys +Slow Keys +Bounce Keys + +The &kcontrolcenter; offers several keyboard features collectively called XAccess. +They include: + + +Sticky Keys +This feature permits operation of meta keys, such as +&Alt;, &Ctrl;, and &Shift; without having to hold the keys down. It is useful +when you can only use one finger or one hand to operate the keyboard. +With Sticky Keys on, press and release a &Alt;, &Ctrl;, or &Shift; key, then +press another key. The result is as if you pressed both keys at once. +Press the &Alt;, &Ctrl;, or &Shift; key again to turn off the sticky key. +Activate this feature in +K-Button&kcontrolcenter; +Regional & AccessibilityModifier Keys. + + + +Slow Keys +This feature is useful if you have hand tremors or difficulty +accurately pressing keys. It prevents +inadvertent key presses by requiring that a key be held down for a minimum +time before it is accepted. Activate this feature in +K-Button&kcontrolcenter; +Regional & AccessibilityKeyboard Filters . + + + +Bounce Keys +This feature is also useful if you have hand tremors. It prevents +inadvertent repeated key presses by preventing another keystroke for +a certain amount of time. Activate this feature in +K-Button&kcontrolcenter; +Regional & AccessibilityKeyboard Filters. + + + + + + + +Mouse Emulation +Mouse Emulation +Mouse Emulation permits you to move and click the mouse using the keyboard. +Press &Alt;F12 to activate it. Use the arrow keys +to move the mouse pointer to the desired location, and press spacebar +to "click" the mouse. Unfortunately, you cannot use Mouse Emulation to perform +&RMB; clicks or dragging. + + + + +Mouse Navigation +Mouse Navigation +This feature permits you to emulate the mouse using the numeric keypad +of your keyboard. To activate it, go to +K-Button&kcontrolcenter; +PeripheralsMouse +Mouse Navigation. +Check the Move pointer with keyboard (using the num pad) box. When you do this, the other settings will become enabled, and you can customize the keyboard pointer behavior further, if required. + The various keys on the number pad move in the direction you would expect. Note that you can move diagonally as well as up, down, left and right. The 5 key emulates a click to a pointer button, typically &LMB;. You change which button is emulated by using the / key (which makes it &LMB;), +* key (which makes it middle mouse button) and - (which makes it &RMB;). + Using the + emulates a doubleclick to the selected pointer button. You can use the +0 key to emulate holding down the selected pointer button (for easy dragging), +and then use the . to emulate releasing the selected pointer button. + + + + + + + + + + + +Keyboard shortcuts + +Use the Menu key to pop up the context +menu. On most keyboards, the Menu key is on the righthand +side of the keyboard between the &Windows; and &Ctrl; +keys. It has a menu icon on it. + + + + + +Resizing panels + +You can move the sizing bar between the outline panel and the +slide panel, and between the slide panel and the notes panel +by pressing F8. A sizing icon appears +overtop the sizing bar. Pressing F8 again moves from one +sizing bar to the next. After the last sizing bar, pressing F8 +hides the sizing icon. Use the arrow keys to move the bar up or down, or left or right. +Press &Esc; when finished sizing. + + + + + +Setting focus to widgets + +Normally, one can use the and &Shift; +to move focus from one widget to the next in any application. However, when focus is +in the slide panel of &kpresenter;, pressing does not move the focus. +You can set focus to any widget that can receive focus by +pressing &Alt;F8. A small lettered box appears +overtop each widget on the screen that can receive focus. + + + + + + + + +Press the letter to move focus to the corresponding widget. Press +&Alt;F8 again or &Esc; +to abandon moving the focus. + + + + + + + diff --git a/doc/kpresenter/autocorrection1.png b/doc/kpresenter/autocorrection1.png new file mode 100644 index 0000000000000000000000000000000000000000..8de3dcf9b9238c4c26bc5af8a43731ee336ad190 GIT binary patch literal 12095 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 BIf(!O literal 0 HcmV?d00001 diff --git a/doc/kpresenter/autocorrection2.png b/doc/kpresenter/autocorrection2.png new file mode 100644 index 0000000000000000000000000000000000000000..d8227294f86c6b26685cd5cff07f6e8806764e23 GIT binary patch literal 6483 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 N%qvBSTroY*{{yHRc69&% literal 0 HcmV?d00001 diff --git a/doc/kpresenter/barstyle1.png b/doc/kpresenter/barstyle1.png new file mode 100644 index 0000000000000000000000000000000000000000..47747f59dfa76b326a5bd556bf8362cfd3308a2e GIT binary patch literal 9674 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 literal 0 HcmV?d00001 diff --git a/doc/kpresenter/barstyle3.png b/doc/kpresenter/barstyle3.png new file mode 100644 index 0000000000000000000000000000000000000000..19db52389198fcd67f3a3b37eb556709acd70ca0 GIT binary patch literal 14522 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 VV|Thgk17g(A}6gRRV-oT_dnuQO1J<3 literal 0 HcmV?d00001 diff --git a/doc/kpresenter/barstyle5.png b/doc/kpresenter/barstyle5.png new file mode 100644 index 0000000000000000000000000000000000000000..d27f23fa36afe97068fe1a6d76b9c73e4489acef GIT binary patch literal 9889 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 R7W`5JY_04qYfgFH{s$UHh?f8W literal 0 HcmV?d00001 diff --git a/doc/kpresenter/barstyle7.png b/doc/kpresenter/barstyle7.png new file mode 100644 index 0000000000000000000000000000000000000000..0f4a95934378f1cf70b8b9fabc46e391a660d6de GIT binary patch literal 9007 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
  • 2A1c4WeIh-!=rxxV1Ik^^s|nBt3ClKtF){sbcrY-Uc*quHYrejcx5#? z>s88XcOG%z0&9N>Oh+kwUUL37X}KbjSNzMxL1D;KD)BEUx&o?XPF&b;7zTIPr$~9^ z%4)qvN*_%;Z1{MfM9RXWdIL#)p;+^(pzdTcH;i?n%)ahjlb$Jf>M2U6*`+xYf*)ko zngD|ko35lVsVE<^TqSods<*gU?9D$-@zK&ALg0n+B@&qZo99yT5%sLpJc1(0nhA3CdqL=MCFyyg;4zLbaAukHb zZuYw_FDu&l^pBJ4p1YsUZBXAjb2E;mt(4e91--&{X+-i*@8xFgcH@6FO!= z1EK-ZTV{RfCW_&<-_;vKdH9*ZP4fqSl=}f1Ik=$mJHd=Si*|#LlAUdl;080|P>j9L zj47Df%YP$-`ATuzI&RUNfjg0~K6%cFC*1wEXiTpS{1sEnC3&ZZXrw?DwN;-6eFA`^ zazk@HMp8A-lJJa;2X+`3q2MO8nNIi=TkDHNVUIsQRZBmGE}~T853R;`t?xwVA6@B< zR;y2~m5q2xo+Lq_9a%2apo7GmUfb<2#?`_E&L{^}FU1ZIdBu(*nl2{B+JcgovENkw^y?3 z*xkA{A)e?1GKV#%#ksJe57f_}RiYB8wS%9fk`e?#7O1s#btynPX0l9Jow`!|1bt}k z4$=AX>V!`UN~R>3k$xnUs=9%~*m5Tm#aFwmxk_*__*HS^5&hE1Yhi}@<5Rt~_`LSo zDPv=Wh}v<1tZ-Jk#T{M$)7M>wYpe*3#5m`@=4BzE;wWh*LRnnX_0r)&@nLJuvUelz zF)eWQ`kTNB`>Q}0jCbaZq~OiXNSY+PJie0+RDLPBC!{K zc6N47PEKxaZeCtqetv#IK|x_*VM$3zSy@?mc|}DpFDN$JrsO=|Na9Qy?^%(gxDq;hKy>x|g)2aG?)>Gm=PsQ-bD@92q`v-1 zy?qmVdMA*Cx_kP8sI#lLy`!tSrLC^Mp}M*T7zMy!F9HQP2*A@euWYm>FzI)c1o;L3 z`}^njkFOtJJ-%^z-`ZJC1u?FcI`RsNO3Es#YU&!ATG~3gdin;2M#d(lX66=_R@OGQ zcJ>aAPR=f_ZtfnQUfw>we*OW0LBS!RVc`*xQPDB6aq$U>Ny#axY3Ui6S=l+cdHDr} zRXwv;Y&m@C?z1-^zyA33`_JFM|DfP61YCQfrpLg*$nELk7$PB=deAUSgi(U+!uR^m zn_Z9j9dvVAW!qq;$GXsQ*N(RKE$v9o(8c($}mr=3Y``-_YAS)!2;rS6uAx z@aj7eIqts-i?cW0?0fa_8>ii@nny2BTl@Yf_w z8FDYWu&Usl=&3cS2hKkHxP3lbYuLkoleYezv337D-L~iJ*NQzZTYCKMu_WtD$E>>r cKhC#bu}j0U_*TRfU{o=9y85}Sb4q9e0NPGbhX4Qo literal 0 HcmV?d00001 diff --git a/doc/kpresenter/changeformat.png b/doc/kpresenter/changeformat.png new file mode 100644 index 0000000000000000000000000000000000000000..074f95e962d688e96e66da36bed7e41c07cf6b45 GIT binary patch literal 8917 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 literal 0 HcmV?d00001 diff --git a/doc/kpresenter/completion.png b/doc/kpresenter/completion.png new file mode 100644 index 0000000000000000000000000000000000000000..6d9b7bf3597b74969900109c6650a280b76e4677 GIT binary patch literal 9987 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 AxBvhE literal 0 HcmV?d00001 diff --git a/doc/kpresenter/configure2.png b/doc/kpresenter/configure2.png new file mode 100644 index 0000000000000000000000000000000000000000..520282c08841be0215a4efba4597de66790eb009 GIT binary patch literal 10415 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 literal 0 HcmV?d00001 diff --git a/doc/kpresenter/configure3.png b/doc/kpresenter/configure3.png new file mode 100644 index 0000000000000000000000000000000000000000..53e747817ac050c59b04615626fcea1d221ee644 GIT binary patch literal 12892 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 literal 0 HcmV?d00001 diff --git a/doc/kpresenter/configure4.png b/doc/kpresenter/configure4.png new file mode 100644 index 0000000000000000000000000000000000000000..21e07ac28620773f80351dcff62bd0f60c2c38ab GIT binary patch literal 12907 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 literal 0 HcmV?d00001 diff --git a/doc/kpresenter/configure4a.png b/doc/kpresenter/configure4a.png new file mode 100644 index 0000000000000000000000000000000000000000..01e85f5555ecf1e5b79bf4d16702fd157a3c086b GIT binary patch literal 1546 zcmeAS@N?&q;$mQ6;Pv!y2?EkPfmoJ<8Au-dXFH97ftew|C&cy8p+kocA3k#A$gyL` zPMkP#`t<1w7cN}AdiBnoJC7efe)Hzdw{PEm{rdI$_wPS{{`~#>_us#N|Ns9#2nGj6 z!Dt8&9RmCJ9|WSk`w#Bfe{lD{gS++|-nsMGuI(pwZaKAM)0yoX&Td(Ae$%Rp>sOs$ zv+ne=^(Pi=JUV;B(P`_COj>_r!ulh>%5#f2s!Sv85o$3dAc};L>zuQ{ch1M1A*4hC!YJ>WlD^?Gl7BE?{GlfA8o<&*ST+Q z^5M*^x@_Po?tX9X#Ba%4<7P_7zS^;KQvAvP!bJ;;@4P$o^2(2l9wrR8Q;mOIRu4Vbb_y&&`SM)p0_e+8XkYL?&FDz;nGM|1Zm`$eb0^ z`;x5UOt||_OuxkOhV#=>lg3NWlS1U#dfnP$qO-WxZfyRX=Dx3V=9PVSWit7Ldz&nx zJ(fstbv|ov=iX&CU8%y-(JrTcvcKEQQg2P?wyX0V>0X|^U18Z>nUfav;>Qn|oOt%8 z!g2lfEmQBR|JQLX`0zy9XuURHxhZ$W3eS5+)}L-I-PYzG#Ntuv{O<7;$CT;&|25ew z%$Iw5=fjKAn8}H$CssVqpE>W(?$s=kJF1n8u1Y+&Xya>$Km?LUR`EsOH-h&2v>}UBblf_#pBAThpSgAZtZ$wVfB&53 zvUXR?S<^Dz7re#_oW1ZZk^5cr^YCN)<)?e( zJC>mrpFe;3^5yH-uiw6X`~Lm=j~_pN{`~pt*RS8dfB*UO=kMRY z|Ni~^|NlSG#!)a#Lty`b13-X$iwQKLP zoqHE;-!pg1&V`$|E#16j_12BscCOvMbH$z=OZIG=ziadK?dy8BtgKnPplHeLyeV_) z>*voZn7b%_+MJ}WuB5ucgo22uOyA@Lr>scZj1b!>Ul(_0Uw!jvIqi6HwP;aAe^pgG zD>c1HZJ7{7VSgDuBO!iC9ziY+aYjZaMmS(#JT<#50hkfadb&7zuQJu&~5l}Ov~ z)%Wdpyz~+lH@sC4n&G89DJ%FElV+xn^p_WP1&>sEmfkYSbUrNKXX&P1_oe8MRm@AD z<5yY#F#Qv6V19cj_TF5-Ue#mA<>mJ7-M9Hu@Pk0tbSujsGrND5557KMxP0%#9~FKN zl(W~*{_*=@{^e8q?7SE*_%OXIKei^{%39~-tB6fgLy}ZPXFS}}T^XLll=(4cX6XaD z>hCd;pM^?JEQ(Eyo4iX+>+Q1mfM#(974-w&4LO&Zw(I_DnXAFV)T=Z5;TC2){S6zx zZO2p*B%{OMPZ+3(>0!=0Ba7FAjVF>bg&ACnZ z9}aM(RWCmuaH~mv&W7qA3bjm2YI)y%zj=6v^0ViUo4y~+?-SAQtmWaaIlAJBcKd_9 zSDM!ssqYlNs+pH~sd%^Y(c^o!20vi`{`0}~Np=10Gx&X{aOp@tjadG$;8kquOBMT9 zAAh`<_WJ9Neb*n$?PhbFfURv_^MT zZ0i!%e!m@E?D`FB=kMw7zioS4Z2B~Z1sg2CHD|KdaL%mSCSxVPedF?#wKaElM#nln z^E+htqbU9C>iG=@+n=T0s`>Bly1>dyDpaD}w(q{L^@FPBh*{-&hg_qgHpi73EC$B0 ze6>Dn_w!S0mcKg^`}e`@qwnRnr?daN=wvkS`uEqCn*Xlc2|75lv47v2ReMeKH=myW hl=}xL3BEr5U$SRf-GT{h>cE1Y!PC{xWt~$(69AtPl7;{P literal 0 HcmV?d00001 diff --git a/doc/kpresenter/configure4b.png b/doc/kpresenter/configure4b.png new file mode 100644 index 0000000000000000000000000000000000000000..72bbecc420d9bbc12a41c4240c469c2d200dc247 GIT binary patch literal 1658 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 K=jAfy!T$$r6vYPs literal 0 HcmV?d00001 diff --git a/doc/kpresenter/configure6.png b/doc/kpresenter/configure6.png new file mode 100644 index 0000000000000000000000000000000000000000..ccf339f28e96a60e53839d3120a325d78fc28951 GIT binary patch literal 13365 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 CJZO{v literal 0 HcmV?d00001 diff --git a/doc/kpresenter/configure6b.png b/doc/kpresenter/configure6b.png new file mode 100644 index 0000000000000000000000000000000000000000..8d5843860bb04ea059811ca7431f049d9aba4fd0 GIT binary patch literal 12737 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 o&?#M#m&++!Civ{hu{v22X}|yZg=1J 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 + + + +Neil +Lucock + +
    neil@nlucock.freeserve.co.uk
    +
    +
    + +Krishna +Tateneni + +
    tateneni@pluto.njcc.com
    +
    +
    + +
    +
    +Questions and Answers +&kpresenter; 1.6 + +Things you might like but &kpresenter; does not yet do (and what +to do about it) + + + +Powerpoint Files. &kpresenter; does +attempt to import &Microsoft; Powerpoint +files but it does not always work perfectly. It depends on the +Powerpoint file version and what is in the +file. You can always import pictures for the background image and +re-type any text. It's not the ideal solution, re-doing the entire +presentation. However, just bear in mind that +Powerpoint does not even attempt to read +&kpresenter; files. + +Taking notes or minutes. One piece of software allows you to +make notes during the meeting and puts them into a word +processor. If you are speaking, someone else should be taking notes. If +you really must do this sort of thing, take a note pad and pencil. + + + + diff --git a/doc/kpresenter/great-presentations.docbook b/doc/kpresenter/great-presentations.docbook new file mode 100644 index 000000000..82d4bcdcc --- /dev/null +++ b/doc/kpresenter/great-presentations.docbook @@ -0,0 +1,145 @@ + + + + + + +Neil +Lucock + +
    neil@nlucock.freeserve.co.uk
    +
    +
    + +Krishna +Tateneni + +
    tateneni@pluto.njcc.com
    +
    +
    + +
    +
    +General Hints and Tips for Great Presentations + +Okay, you've decided to use &kpresenter; for your +presentation. Before you start making transparencies or animated slide +shows, go and find a piece of paper and sit down at a desk away from +the computer. It doesn't matter whether you are doing a teaching +session or trying to convince the boss that your plan, policy or idea +should be adopted, you need to figure out what you are trying to +say. Write down all the subjects you need to cover, try to get them in +the order you think will make sense. Don't put any details in yet, +just decide on headings and the structure of your talk. + +Under each heading make a note of what facts you need to +cover. You are trying to build a convincing argument. Consider +grouping your facts into things must be included, things that should +be included and things that it would be nice to cover if you had +plenty of time. + +Once you have written down all the things you need to say, +consider the time available to do it in. Ten minutes seems ages when +you start, but it is very difficult to actually get much across in so +short a time. Get your sheet of paper and a clock with a second +hand. Practise your presentation over and over again. This has many +benefits. Firstly, you get the timing right. If someone says you have +ten minutes, never go over the allowed time. Secondly, when you +actually do it in front of a live audience, it will not be the first +time you have done that presentation. Third, you get the words right +in your own head. You will find ways of saying things about the +subject. If you've heard yourself do this presentation several times, +you will know what you are going to say next and how you are going to +say it. + +&kpresenter; does not produce Speaker's Notes at the time of +writing, but I am happy to just use ordinary slides. Produce some +slides for yourself, printed on plain paper, and some for use with the +Overhead Projector. Make the text on your slides nice and big, you +need to be able to read it at a distance. I use 14 or 16 point text, +experiment to find a size that you can read easily. I never write out +a script. + +If you are using an Overhead projector, learn how to use it +beforehand. Make sure that the bulb works, that the spare bulb is +still okay. Clean the lens and display plates. If you are not used to +working with projectors, practice. Ensure that the projection screen +itself is clean. It's probably best, when timing yourself, to allow +for five seconds (count one thousand and one, one thousand and +two....) to change each slide. That way you know you don't +have to rush. If you need to point at something on a slide, you can +use a pointer and point at the display screen, find a laser pointer or +put a pencil on the transparency itself. Be warned, these tend to roll +out of place when you nudge the table. + +Consider where you are going to stand. You cannot stand in +front of your display, so off to one side is probably your best option +if you want your audience to be able to see. I often project a picture +onto a wipeboard and draw over the top of it. If you are using a PC +with a digital projector you can draw over the top of your slides with +&kpresenter;'s pen tool. Remember, drawing freehand with a mouse is a +skill that needs practice. If you are using an Overhead projector, you +can use transparent overlay slides and a pen over the top of your +computer generated ones. + +When you are doing the presentation do not accidently look into +the light, it's easy to do. If you are not going to use the machine +for a few minutes, turn it off. Practise to get where you are going +to stand sorted out. Check the room you intend to use for electrical +sockets and learn how the blinds work and where the light switches +are. Good preparation not only makes you less likely to make mistakes +(inanimate things can be a nightmare in front of an audience) but also +gives you confidence. Always have a Plan B ready if +something refuses to work. Have a paper copy of your slides with +you. You can photocopy and distribute these to your audience if the +equipment fails. + +I have not said much about the content yet. At present all you +have is a piece of paper with everything you want to say on it. Before +you make anything, ask youself if their understanding of what you are +saying is going to improved by showing them a picture. Bad +presentations consist of a series of slides full of text. The +presenter then reads the slide to the audience (who have already read +it as they can read faster than someone can say it aloud). Try to +avoid writing anything on the slide, except a title and a number. Draw +a picture of what you need to say, then explain the picture to +them. That way they do not get ahead of you (they can read faster than +you can speak, remember?) and you look like you know it. You do not +know it, you are using the picture as a series of prompts. A slide +should support what you are saying, not duplicate it. A slide should +be the focus of the audience's attention, not a distraction. + +An example. I teach Railway staff how to respond to accidents. I +wanted to use a slide to discuss how you can move dangerous loads from +a derailed or damaged rail vehicle to a road vehicle after an +accident. The slide I made had a simple drawing of tank wagon, the +kind used for carrying gases or oils. On the side I wrote +Lethal Chemical Company so that I do not have to +explain it. I wanted to make several important points. First, you must +get any overhead electric wires turned off before you do anything if +they are within a certain distance. I drew one of the supporting +structures and drew an arrow with the safety distance on it. Then I +wanted to say that you must not transfer the wagon's contents in +darkness or thunderstorms. I drew a moon and a lightning bolt above +the vehicle. You must get specialist advice, so I drew a sheet of +paper and wrote the word Plan near the vehicle. You +also have to ensure that the vehicle does not move when the weight +inside is removed. I drew little red wedges by the wheels. Everything +I need to talk about is on this drawing. All I have to do is look at +the drawing and it tells me what I need to cover. When I have covered +all the things in the drawing, I have finished on that +subject. + +In general, only use a slide or picture if it shows something +that adds to what you are saying. Finally, relax and try not to rush +through it all. Talk to them, not at them and remember that a +presentation is about whatever message you are trying to get +across. &kpresenter; is a useful tool. It can help you to get that +message over, but it cannot do the job for you. + +
    diff --git a/doc/kpresenter/guides.docbook b/doc/kpresenter/guides.docbook new file mode 100644 index 000000000..9055bb435 --- /dev/null +++ b/doc/kpresenter/guides.docbook @@ -0,0 +1,556 @@ + + + + +Neil +Lucock + +
    neil@nlucock.freeserve.co.uk
    +
    +
    + +Krishna +Tateneni + +
    tateneni@pluto.njcc.com
    +
    +
    + +Brad +Hards + +
    bradh@frogmouth.net
    +
    +
    + +Danny +Allen + +
    danny@dannyallen.co.uk
    +
    +
    + +Anne-Marie +Mahfouf + +
    annemarie.mahfouf@free.fr
    +
    +
    + + +
    +
    +Detailed Guides + +This chapter describes how to perform some common tasks in +&kpresenter;. + + +Create a <acronym>HTML</acronym> Slideshow + +Turn an existing presentation into standard HTML +pages with accompanying navigation aids. + + + +First, either make a new presentation, or open an existing one. Then, +click on FileCreate HTML +Slideshow... + + +File menu option to Create HTML +Slideshow... + + + + +File menu option to Create HTML +Slideshow... + + + + + +A dialog box asks if you want to use a previously saved +configuration: + + +Previous configuration dialog + + + + +Previous configuration dialog + + + +Click No if this is the first time that you have +used this feature, or if you want to alter specific options. The +Yes option allows you to use details that you have +previously entered for your HTML slideshow, so that you can +quickly create the slideshow without needing to adjust the options. + + + +You will then get a dialog box asking for a few details: + + +Fill in the details for your HTML +slideshow + + + + +Fill in the details for your HTML +slideshow + + + +Fill in each field (the dialog takes the informations from &kcontrol; if they exist) and ensure that the path details are correct, as this +is where &kpresenter; will save your new HTML files +and pictures. Click on the Next when you are +done. + +If the path you select at this stage does not exist, &kpresenter; will +ask if you would like to create it. + + +Now you can configure the specific HTML options: + + +Fill in additional details for your HTML +slideshow + + + + +Fill in additional details for your HTML +slideshow + + + +Here, the encoding and format details can be changed, along with +the zoom level of the slides. For example, if you originally designed your +slides to display full screen on a 1280 x 1024 resolution screen, you could +scale the slides to 50% to enable them to be easily viewed in a much smaller web +browser window. + +In most cases, the defaults will be fine, and you can safely press the +Next to continue to the next page. + + + +Now you can customize the colors of the web pages: + + +Setting up the display style for your HTML +slideshow + + + + +Setting up the display style for your +HTML +slideshow + + + +When &kpresenter; creates the web pages for you, the text colors +for the navigation aids will follow whatever you set here. To change any of +these colors, click the colored bar next to the corresponding text label. The +colors used in your actual slides will be unchanged. + +Choose colors that are complementary to the contents of your +presentation. + + +The Next button presents a dialog box +that allows you to change the name used on the HTML page for +each slide: + + +Setting the slide names + + + + +Setting the slide names + + + + + + +If your presentation was intended to be displayed in an unattended manner +(&ie; automatic advance to next slide, &etc;), you can also make your +HTML +presentation counterpart exhibit the same behavior: + + +Unattended presentations + + + + + +Unattended presentations + + + +Here, you can force the slide to advance to the next after a specified +amount of time, and also make the presentation return to the start once it +reaches the end. + + + +Now it is time to actually produce your HTML +presentation, the progress of +which is shown in this dialog box: + + +Saving your configuration + + + + + +Saving your configuration + + + +Finally, you can save the configuration you have just used before you +close the dialog box by pressing the Save +Configuration... button. + + + +What we now have are the newly-produced html/ +and pics/ folders, +created where we earlier set the path: + + +The newly created HTML slideshow +folders + + + + +The newly created HTML slideshow +folders + + + + + +There is also an index.html file to launch +your web slideshow. + +You can see how it works by using your file manager or web +browser to open the index.html file. Click where prompted, +and the first slide of your presentation is displayed. It will now behave as a +&kpresenter; slideshow. + +Each click on the arrow icons take you to the next or previous slide. +To get back to the start of the slideshow click on the slide icon. + +To share your presentation with the world, transfer the +newly-produced files to a network-accessible location (&ie; webspace), +remembering to keep the directory structure intact. + + + +Exporting &kpresenter; presentations to a <trademark>Memory +Stick</trademark> + +Some Sony projectors have the ability to run a presentation directly +from a Memory Stick, without needing to connect a +computer up to the projector. &kpresenter; can export presentations to the +format required by these projectors, and this tutorial will show you how to +export your presentation. + + + +Each exported slideshow consists of a series of image files (one for +each slide in the original presentation, plus two title slides) and an +index file. They are created in a fairly complex directory structure +that allows more than one presentation to be stored on a single memory +stick. A simple example is shown below, consisting of two +presentations. + + + + + + +Memory Stick directory +structure + + + + + + + +If the presentation that you want to export is not already open, go to +FileOpen... and select the +presentation that you want to export. + + + + + +Now, select the File menu and choose Create +Memory Stick Slideshow.... + + + +The &kpresenter; Create Memory Stick +Slideshow... menu selection. + + + + +The &kpresenter; Create Memory Stick +Slideshow... menu selection. + + + + + + +This will bring up the Create Memory Stick +Slideshow dialog. + + +The &kpresenter; Create Memory Stick +Slideshow dialog. + + + + +The &kpresenter; Create Memory Stick +Slideshow dialog. + + + + +The Path is the directory in which your presentation will +be exported to as directories (DCIM and +MSSONY, see the directory structure +diagram above) will be created. If you are able to, you may wish to export +directly +to the Memory Stick, in which case you would enter the +location of the medium here. + + + +The Title is used for both the name of the index +file, and as a text label on the title slide. Note that this title +does not affect the titles on any of the normal presentation slides - +the title slide is visible using the Sony projector setup prior to +starting the actual presentation display. + + +Select the Set Colors option to expand the +dialog: + + +The &kpresenter; Create Memory Stick +Slideshow dialog (extended). + + + + +The &kpresenter; Create Memory Stick +Slideshow dialog (extended). + + + + +These two color selectors are only used for the title slide. It +can be useful to change the title slides to make the presentations +easier to identify when working on the projector, though it is perfectly safe to +leave them as default. + + + +You can then press the OK button to proceed with the +actual export process. + + + + + + +Your presentation will now be exported into the correct format, with the +following dialog informing you of the progress of this process: + + + +The &kpresenter; Create Memory Stick +Slideshow progress dialog. + + + + +The &kpresenter; Create Memory Stick +Slideshow progress dialog. + + + + +When the export is complete, you can select the +Done button, and the dialog will close. + + + + + +If you did not export the slideshow directly onto a Memory +Stick, you will need to copy the correct files onto the +Memory +Stick before you can utilise the projector. As noted above, +you need to copy over the correct directories and files starting at +DCIM and MSSONY into the +"root", or / of the Memory Stick. It +is +critical that the directory structure is maintained, and you may +find it easier to copy the whole of DCIM and +MSSONY directories. + + + +If necessary, you can safely rename the index file (which is +Slideshow.SPP by default), however you cannot +rename the slide images, nor can you change the name of these directories, +as these are encoded into the index file. + + + + + + + + +Creating &kpresenter; Templates + +It is very easy to add new templates to &kpresenter;'s library. + +If you have made a presentation in a style that you would like to use +again, you can save it as a template. + +This tutorial will show how we can make a new template and save +it. + + + +Open &kpresenter; and create a new document. + + + +To add a little sparkle to the blank slide, we can change the slide +background - do this by either going to Format > +Slide Background..., or by selecting the same item +from the &RMB; menu: + + +The &kpresenter; Slide Background +dialog. + + + + +The &kpresenter; Slide Background +dialog. + + + +We want the background to look attractive, so let's add a background +gradient by using the drop-down menu, and then selecting the gradient colors by +clicking the colored boxes. Of course, you may choose to use an image as a +background by clicking the Picture tab: feel free to +experiment, but keep it beautiful! + + +Choosing a slide background + + + + +Choosing a slide background + + + + + +The page should now have the background you desire. Create a text box, and +type a heading for your slide: + + +Adding a Heading to the new template + + + + +Adding a Heading to the new template + + + +When you are happy with your template, go to File +Template Manager: + + +FileTemplate +Manager + + + + +FileTemplate +Manager + + + +This dialog box allows you to select where you would like your template to +be saved: + + +Saving the new template + + + + +Saving the new template + + + +I highly recommend that you save the template in the Screen +Presentations group. You may call it whatever you wish, in this case, +my template is named Tutorial_Template. Once you are +happy with the settings, press OK to add your custom +template to the template collection. + + + +You can now close the document you have been working on (there is no need +to save it). The next time you are presented with the startup +dialog, your very own template will be available to select! + + +Your new template in the &kpresenter; startup +dialog. + + + + +Your new template in the &kpresenter; +startup dialog. + + + + + + + +
    diff --git a/doc/kpresenter/htmlshow1.png b/doc/kpresenter/htmlshow1.png new file mode 100644 index 0000000000000000000000000000000000000000..a9f8a4e8aec19cb0182a90a81fa85399ae38c3fc GIT binary patch literal 9349 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 literal 0 HcmV?d00001 diff --git a/doc/kpresenter/htmlshow2.png b/doc/kpresenter/htmlshow2.png new file mode 100644 index 0000000000000000000000000000000000000000..ba52b6ad5397e8e33a6ecc101170209de34a7876 GIT binary patch literal 5558 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 literal 0 HcmV?d00001 diff --git a/doc/kpresenter/htmlshow3.png b/doc/kpresenter/htmlshow3.png new file mode 100644 index 0000000000000000000000000000000000000000..c4876d15e6cb754b68c36b6942d5f57a23dc5ce4 GIT binary patch literal 11504 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 P_u@QM)=(;knIr!XtsCY| literal 0 HcmV?d00001 diff --git a/doc/kpresenter/htmlshow7.png b/doc/kpresenter/htmlshow7.png new file mode 100644 index 0000000000000000000000000000000000000000..d7011cfe8908cbc3ddce67391ce4622cf164836f GIT binary patch literal 12413 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 L=VsLnx0rte(|N_} literal 0 HcmV?d00001 diff --git a/doc/kpresenter/index.docbook b/doc/kpresenter/index.docbook new file mode 100644 index 000000000..79ac69132 --- /dev/null +++ b/doc/kpresenter/index.docbook @@ -0,0 +1,267 @@ + + + + + + + + + + + + + +]> + + + +The &kpresenter; Handbook + + + +Neil +Lucock + +
    neil@nlucock.freeserve.co.uk
    +
    +
    + + +Krishna +Tateneni + +
    tateneni@pluto.njcc.com
    +
    +
    + + +Anne-Marie +Mahfouf + +
    annemarie.mahfouf@free.fr
    +
    +
    + + +Gary +Cramblitt + +
    garycramblitt@comcast.net
    +
    +
    + + +
    + +2006-11-22 +1.6 + + +19992000 +Krishna Tateneni + + + +20012002 +Neil Lucock + + + +2005 +Anne-Marie Mahfouf + + + +2006 +Gary Cramblitt + + +&FDLNotice; + + + +&kpresenter; is the presentations program in the &koffice; suite of +productivity applications. + + + + +KDE +KPresenter +KOffice +Graphics +Presentations + + +
    + + +Introduction + + Please check http://docs.kde.org +for updated versions of this document. + + +&kpresenter; is the presentations program in the &koffice; productivity +suite. Using &kpresenter;, you can prepare a set of slides for use in an +on-screen slideshow or for printing. Your slides can include text and +graphics in a variety of formats, and of course, you can embed all sorts +of objects using KParts. + + + +The &koffice; productivity suite consists of a number of applications +which are designed to work together. Overview documentation for +&koffice; is available, as well as manuals for each component of the +suite. The components of &koffice; are: + + + + + +&kword; - a frames based wordprocessor. + + + + +&kspread; - a spreadsheet application. + + + + + +&kpresenter; - a presentations application. + + + + + + +&kformula; - an editor for mathematical formulae. + + + + + +&kchart; - an application to draw charts and diagrams. + + + + + + + +&koffice; is a free (or open-source) software project which is +released under the terms of the &GNU; General Public +License. + + + + +&tutorial; + +&screen; + +&guides; + +&great; + +&menus; + +&options; + +&a11y; + +&faq; + + +Credits and License + + +&kpresenter; + + + +Program copyright 1998-2000 by Reginald Stadlbauer +reggie@kde.org + + + +Current maintainer is Laurent Montel montel@kde.org. + + + + +Contributors + + + +Werner Trobin trobin@kde.org. + + + + + +David Faure dfaure@kde.org + + + + + +Toshitaka Fujioka fujioka@kde.org + + + + + +Lukáš Tinkl lukas@kde.org + + + + + +Thorsten Zachmann t.zachmann@zagge.de + + + + + +Ariya Hidayat ariya@kde.org + + + + + +Percy Leonhardt percy@eris23.de + + + + + +Documentation based on the work copyright 1999-2000 by Krishna +Tateneni. Portions are copyright 2000-2002 Neil Lucock +neil@nlucock.freeserve.co.uk +and 2005 Anne-Marie Mahfouf annemarie.mahfouf@free.fr + + + +&underFDL; +&underGPL; + + + + +Installation + +&install.intro.documentation; + +&install.compile.documentation; + + + +&documentation.index; + +
    + diff --git a/doc/kpresenter/kbd-focus-ext.png b/doc/kpresenter/kbd-focus-ext.png new file mode 100644 index 0000000000000000000000000000000000000000..1135bb70b3c654534f0db3222ddbe132ad629e02 GIT binary patch literal 5939 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 + + +To edit or validate this document separately, uncomment this prolog +Be sure to comment it out again when you are done --> + + + + + +Neil +Lucock + +
    neil@nlucock.freeserve.co.uk
    +
    +
    + +Krishna +Tateneni + +
    tateneni@pluto.njcc.com
    +
    +
    + +Anne-Marie +Mahfouf + +
    annemarie.mahfouf@free.fr
    +
    +
    + +
    +
    +The Menu and Toolbar Items + +&kpresenter; presents different types of interfaces for you to interact +with the program. Perhaps the most familiar type of interface is the +menu which appears on the top of the &kpresenter; window. + +Clicking on the menu items gives you a list of commands from which you +can choose the one you want. Many of the commands can also be accessed +directly by holding down &Ctrl; or &Alt; and pressing another key on +your keyboard. In the next section, each of the menu commands is +described in brief. + + +The Toolbars + + +Manipulating the Toolbars + +In addition to the menus, &kpresenter; also has a set of toolbars. Each +toolbar consists of a collection of icons. A toolbar icon often presents +a convenient shortcut to a command that is found in one of the menus. + + +The toolbars + + + + + +The toolbars + + + + +You can move the toolbar around by dragging the handle, shown here in red. Toolbars can +be docked or attached to any side of the &kpresenter; +window. If you like, you can also have the toolbar float in +its own window, separated from the main &kpresenter; window as shown in the +screenshot below: + + +Floating toolbar + + + + + +Floating toolbar + + + + + If you don't like dragging toolbars around, +right click on the handle and a menu pops up as shown +in the screenshot below: + + +Toolbar context menu + + + + + +Toolbar context menu + + + + + +The first few items in the popup menu have to do with the placement of +the toolbar. You can choose any of the four sides of the &kpresenter; +window, or have the toolbar float in a separate +window. Choosing Flat hides the toolbar. +To unflat a hidden toolbar, &LMB; click on its handle. + + + + + +Choosing the next item in the menu, Text Position, leads +to an additional menu which lets you control the appearance of the items +in toolbar. This additional cascading menu is shown in the screenshot +below: + + + +The toolbar modes menu + + + + + +The toolbar modes menu + + + + + +The default view of the toolbar is icons only. In this view, if you +don't know what a particular icon means, you can hold the mouse over the +icon, and after a second or so, a little hint pops up in a highlighted +text box as shown in the screenshot below: + + + +Tooltips + + + + + +Tooltips + + + + + +You can choose to display the toolbar items as text instead of icons, or +even to combine both icons and text. If you want both text and icons, +the cascading menu allows you to select whether the text appears beside +the icons or below them. All four styles of displaying toolbar items are +shown in the screenshot below: + + + +The toolbar styles + + + + + +The toolbar styles + + + + + +The &kpresenter; menus are discussed in the following sections. + + + + + + +<guimenu>File</guimenu> Menu + + + + + + +&Ctrl;N + +File +New + + + + +Begins a new presentation. The +startup dialog will open, allowing you to choose a +template for your presentation. + + + + + + + +&Ctrl;O + +File +Open... + + + +Opens an existing presentation. A standard &kde; file +open dialog will appear, allowing you to choose a file to open. + + + + + + + +File +Open Recent + + + + +Displays a list of recently opened files for you to choose +from. + + + + + + + + +&Ctrl;S + +File +Save + + + + +Saves the currently open presentation. If you have not +previously saved it, you will be asked to name the file. If you have +previously saved the presentation, it will be resaved with the same name. + + + + + + + +File +Save As... + + + + +Saves the currently open presentation with a new name. + + + + + + + +File +Reload + + + +Reload the currently active file. + + + + + + + +File +Import... + + + +Import a presentation that was previously created in +one of several common formats. + + + + + + +File +Export... + + + +Export the currently open presentation to one of several common +formats for use in another application, or for exchange with someone +who does not have access to &kpresenter;. + + + + + + +File +Mail... + + + +Open a new email message in your selected email client with the current &kpresenter; document attached. + + + + + + + +File +Create HTML Slideshow... + + + + +Starts the HTML wizard, which is described in the +section . + + + + + + + +File +Create Memory Stick Slideshow... + + + + +Starts the Memory Stick dialog, which is described in the +section . + + + + + + + +Template Manager + + + +Allows you to save the current slide as a +template. In future the template will be available for you to +use to build slides with. Creating a template is further discussed in +section . + + + + + + +File +Use Current Slide as Default Template + + + +Sets the current slide as your default template. +Especially useful if you have created a template of your own to fit into +corporate style guidelines, or if you just use a particular layout very +often. + + + + + + +&Ctrl;P +File +Print... + + +Prints the presentation. More precisely, it opens the +print settings dialog, where you can adjust the settings before printing +your presentation. + + + + + + +File +Print Preview... + + + +Displays the presentation with a &PostScript; viewer, +exactly as it would look if printed. + + + + + + +File +Document Information + + + +Allows you to enter information about the document. +This includes information about the author, and an abstract on the +documents contents. + + + + + + + +&Ctrl;W +File +Close + + + +Close the current presentation. You will be given an +opportunity to save any changes first. + + + + + + + +&Ctrl;Q +File +Quit + + + +Close &kpresenter;. You will be given an opportunity +to save all changes in all open presentations first. + + + + + + + +<guimenu>Edit</guimenu> Menu + + + + + + + +&Ctrl;Z +Edit +Undo: Last task + + + +Undo the last action you performed. + + + + + + + +&Ctrl;&Shift;Z + +Edit +Redo: Last undone +task + + +Redo the last action you undid. If you have not undone +any actions, or the last undo action is not reversible, this menu item +is disabled. + + + + + + +&Ctrl;X +Edit +Cut + + + +Copy the selected item to the clipboard, and remove it from the +document. + + + + + + + +&Ctrl;C +Edit +Copy + + + +Copy the selected item to the clipboard, while leaving it intact +in your presentation. + + + + + + + +&Ctrl;V +Edit +Paste + + + +Insert the contents of the clipboard into your +presentation. + + + + + + + +&Ctrl;Delete +Edit +Delete + + + +Remove the currently selected item from your +presentation. + + + + + + + +&Ctrl;A +Edit +Select All + + + +Select all the objects and text on the current slide. + + + + + + + + +&Ctrl;&Shift;A + +Edit +Deselect + + + +Deselect any currently selected objects. + + + + + + + +&Ctrl;F +Edit +Find... + + + + +Search for text within the presentation. + + + + + + + + +F3 + +EditFind Next + + + +Find the next occurrence of a piece of text within a presentation. + + + + + + + +&Shift;F3 + +EditFind Previous + + + +Find the previous occurrence of a piece of text within a +presentation. + + + + + + + +&Ctrl;R + +EditReplace... + + + +Replace one or more occurrences of a piece of text in +your presentation with a different piece of text. + + + + + + +Edit +Copy Slide + + + +Copy the current slide to the clipboard. + + + + + + +Edit +Duplicate Slide + + + +Insert an exact copy of the current slide. + + + + + + +Edit +Delete Slide + + +Delete the current page from the presentation. You +will be asked to confirm this action. + + + + + + +Edit +Duplicate Object... + + + +Create a duplicate of the currently selected object. A dialog will +display allowing you to set some options for the duplicate, ⪚ if it +should be rotated, or scaled, or offset to a new position on the +slide. + + + + + + + + +<guimenu>View</guimenu> Menu + + + + + + +View +New View + + +Opens another window with the same presentation loaded +so you can work on more than one slide at a time. + + + + + + + +&Ctrl;&Shift;W +View +Close All Views + + + +Close all views on the presentation. You will be given +a chance to save any changes, or to cancel closing. + + + + + + +View +Split View + + + +Splits the window into two (or more) views on the same +presentation. The default split is horizontal. + + + + + + +View +Remove View + + + +Close only the currently active view. The +presentation, and any other views you have open, remain open, and any +changes you have made remain unsaved. + + + + + + +View +Splitter Orientation + + + +Toggle the split view between +Horizontal (the default) and +Vertical. + + + + + + +View +Show Sidebar + + + +Toggle the display of the sidebar where you can +see an overview of all the slides in your presentation. + + + + + + +View +Show Notebar + + + +Toggle the display of the notebar where you can +see an overview of all the notes in your presentation. + + + + + + +View +Slide Master + + + +Toggle the display of the slide master where you can put objects that you want to appear on each slide in your presentation. + + + + + + +View +Formatting Characters + + + +Show a visual representation of non-printing +characters, such as tabs and paragraph markers. This can be +a useful aid to precisely positioning text. + +This item can be toggled. If enabled, formatting characters are +visible; if disabled, they are not. + + + + + + +View +Guide Lines + + + +When working in &kpresenter; you can drag a guide +line from either the horizontal or vertical ruler onto your +document. This guide-line will not print or display in the finished +presentation, it is simply to help you align objects on screen. If +this item is enabled, these guide lines will be visible. If this is +disabled, they will not be visible. + +Guide lines work across slides, allowing you to align objects the +same way across multiple slides. + +Disabling (hiding) guide lines does not delete them. If you have +created guide lines, and then disabled this item, enabling it again +will retain the guide lines you created. + + + + + + +View +Add Guide Line... + + + + +Opens a dialog to select the Orientation +(Horizontal or Vertical) +and choose a Position: + + + + + + + +View +Show/Hide Grid + + + +If enabled, &kpresenter; will display a grid of dots +representing the intersections of imaginary horizontal and vertical +lines. You can use these dots to precisely position objects on the +slide. + + + + +View +Snap to Grid + +If this is enabled, when dropping or moving objects on the +slide the top left corner of the object will snap or +move, to the nearest grid point. +This does reduce your freedom to freely position objects on the +slide, however it also helps to line up objects precisely. It is +easily disabled or enabled with this menu entry, allowing you the best +of both worlds. + + + + + + +View +Zoom + + + +This submenu allows you to zoom in or out of the +slide. Several predefined zoom levels are available, including +Whole Slide to scale the entire slide so as +to be visible in the size window you have open, and +Width to scale the slide so it fills the +entire width of the window, although you may now have to scroll +vertically. There are also several other scaling choices, from +33% up to +500%. + + + + + + + + +<guimenu>Insert</guimenu> Menu + + + + + + + +&Alt;&Shift;C + +Insert +Special Character... + + + +Insert a special character. This might be a character +you don't have a key for on your keyboard layout, for instance ü +on a US Keyboard. + + + + + + +Insert +Variable + + + +Here you can insert a variable that is filled in with a +value that may be updated as you update the document. + + + + + + +Insert +Link... + + + +Insert a hyperlink to a file, a website, or an email +address. This enables these locations to be linked to directly from within active presentations, with resources being handled as appropriately by other applications installed on your system. + + + + + + +Insert +Comment... + + + +Enter a small note that does not display during the +real presentation. You might use this to comment on a colleague's +text, or to leave a note for yourself about something to do +later. + + + + + + + +F2 +Insert +Slide... + + + + +Add a new page to your presentation. A dialog will open +allowing you to choose a template, and whether to insert the new page +before or after the currently selected page. + + + + + + + +InsertFile... + + + +Insert an already existing presentation. A standard &kde; file +open dialog will appear, allowing you to choose a &kpresenter; Document (.kpr) or a +OASIS OpenDocument Presentation (.odp), which will be inserted after the last slide in your current presentation. + + + + + + +F10 +InsertText + + + +Add a new text object. Click and drag to create a frame where +you wish the text to appear. + + + + + + +Insert +Chart + + + +Insert a chart. Click and drag to define the size of the +chart. Some default data will be displayed. Double click to edit the +data and choose the type of chart to display, using the embedded +&kchart; editor. + + + + + + + + +F5 +InsertTable + + + +Insert a table. Click and drag to define the size of +the table. + +A &kspread; open dialog will display. You may import a +spreadsheet that you have saved in one of many formats, including +plain text files. You may also choose to create a new and empty +table. + +Double clicking on the table will allow you to edit the +contents. + + + + + + +Insert +Object + + + + + +An object is an embeddable file, in one of many formats. + +A common use of this action is to insert scaleable clipart in +vector format. + + + + + + + +&Shift;F5 + +Insert +Picture... + + + +Insert a raster image. These are not as easily +scaleable as vector images or clipart. &kpresenter; +currently understands many formats, including .tiff, .jpg, .png and many more. + + + + + + +Insert +Line + + + +You can insert several types of lines. Line drawing is described +further in the drawing tools section. + + + + + + +Insert +Shape + + + +You can insert several prepared shapes, in vector format. These are +editable just like lines you have drawn yourself. Using the drawing +tools is described in detail in the drawing tools +section. + + + + + + +Insert +Scan Image... + + + +Scan an image with a scanner. This requires you have a +scanner installed. It opens the Acquire Image dialog to allow the use of the scanner. + + + + + + + +<guimenu>Format</guimenu> Menu + + + + + + +Format +Select + + + +If you have been using a tool such as the line drawing tool which does +not allow you to select other objects, you can use this menu item to +return to the normal selection cursor. + + + + + + +Format +Rotate + + + +Changes the cursor to a double headed curved arrow. Click with the &LMB; onto an object +and keep the button pressed.Drag with the cursor to rotate the object on the slide around its center. When you are +happy with the position of the object, release the mousebutton to stop +rotating. + +If you change your mind and wish to cancel the rotation, use +EditUndo + to later undo it. + + + + + + +Format +Zoom + + + +Allow you to zoom in or out in the current slide. You can see the zoom factor in the Edit toolbar, in the zoom indicator. + +The zoom factor indicator + + + + + +The zoom factor indicator + + + +Left clicking on the slide will Zoom In. Right clicking on the current slide will present you a menu to allow you to Zoom In, to Zoom Out, to Zoom Entire Slide, to Zoom Slide Width or Zoom Slide Height, to Zoom Selected Objects or Zoom All Objects which put back all objects in your view. + +This action has the same effect as ViewZoom + on another form. + + + + + + +Format +Properties + + + +Open the Properties dialog for the currently selected object on your slide. + +The Properties dialog + + + + + +The Propertiesdialog + + + +The Properties dialog for an object allows you to manipulate it in a +very detailed manner. You can change several properties for the selected object, like the text color if the object is text or the depth if the object is a picture. + + + + + + +Format +Arrange Objects + + + +This is where you can manipulate the stacking order of +objects on the slide. + +An object that is on top will cover, either partially or fully +depending on its size, all other objects beneath it. Meanwhile an +object on the bottom of the stack may not be visible at all, as it is +covered up by other objects. An object in the middle may be partially +covered by other objects, while partially covering yet more objects +itself. + +You can send the selected object down or up a layer, or directly +to the top or bottom of the stack. + + + + + + + +Format +Align Objects + + + + +In the submenu you can quickly align all the currently +selected objects with a side of the slide, or center them either +vertically or horizontally. + + + + + + + + +&Ctrl;G + +Format +Group Objects + + + +If you are drawing, you might want to make something out of +several objects. Arrange the individual parts where you +want them, select one, then hold down the &Ctrl; key +as you click in the others you want to group together. Click +Group Objects and from then on they act as +if they are just one thing. It glues things together. + + + + + + + + +&Ctrl;&Shift;G + +Format +Ungroup Objects + + + +If you decide that you want to alter an object that is made out +of several pieces, you can unglue it with this tool. Click somewhere +away from the object to deselect it, then click to select one of its +parts. + + + + + + +Format +Shadow Objects... + + + +This puts a colored copy of either text or a drawn object behind +it. You can make nice dropped shadows for logos with +this tool. To enable this item, ensure that you have object(s) +selected (you will see the six small black boxes around the +outline.) You choose the color, select which way the shadow is going to +fall and select a distance. For text it looks nice if you set the +distance to two or three. Click Apply +to see the result of your settings for all selected objects on the slide +without leaving the dialog. + + + + + + +Format +Page Layout... + + +Allows you to set the page details. You can specify the margins, +the orientation, either portrait (higher than wide) or Landscape +(wider than high) formats. There are many templates, such as screen, +A4, US legal. + + + + + + +Format +Enable/Disable Document Header + + + +Toggle the display of the header field on the current slide. Header content can only be added in the master slide but you can choose to display the header only on some slides with this action. + + + + + + +Format +Enable/Disable Document Footer + + + +Toggle the display of the footer field on the current slide. Footer content can only be added in the master slide but you can choose to display the footer only on some slides with this action. + + + + + + +Format +Slide Background... + + + + +Allows you to alter the background to your presentation +slides. Your options are Color/Gradient, (which lets you +set either a plain color or one of many gradients) +or Picture, which gives a dialog box to find the picture +you want. Set the View mode: for this picture +to Scaled, Centered, +or Tiled. + + If you want a plain color, click in the box to select +it. Gradients only work when you have chosen two colors. The picture +option allows you to center the picture, zoom it to cover the entire +slide (if it is smaller than the screen, this is very useful) or tile +it. This is used when you want a small pattern to repeat across the +page. It's probably best used with patterns rather than pictures of +logos. + +You can get rid of a picture by selecting another one or +choosing a color/gradient. + + + + + + + + + +<guimenu>Text</guimenu> Menu + +This menu modifies selected text and provides a few tools familiar from +word processing applications for your convienience for when you are making +presentations with large amounts +of text in them. The Text menu will only effect selected or +highlighted text. + + + + + +Text +Default Format + + + +Restores selected text to the system default font size, style and +formatting. + + + + + + +Text +Font... + + + + +The Select Font dialog contains options for selected +segments of text: + + +The Select Font dialog + + + + + +The Select Font dialog + + + + +With this dialog, you can change the font, style and size of +selected text. The preview box at the bottom +allows you to approximate changes before you make them. + + + + + + + + + +&Ctrl;&Alt;P + + +Text +Paragraph... + + + + +The Paragraph Settings dialog contains settings for +larger blocks of text, such as paragraphs. Using this dialog, you can set +indenting, line spacing, bullet/numbered list and border settings. + + + + + + + +Text +Color... + + + + +Use the Select Color dialog to have precise control +over the color of selected text: + + +The Select Color dialog + + + + + +The Select Color dialog + + + + +Using the color spectrum box on the left, +colors can be precisely defined for use in your document. The +color tone can then be adjusted using the scale to the +right of the spectrum box. The input boxes below the +color spectrum allow color values to be entered, so that exact +colors can be specified. + + +Use the color picker to select colors from elsewhere in your document +(⪚ images). + + + + + + + + + +&Ctrl;&Alt;S + +Text +Style Manager + + + +The Style Manager allows you to create an entire set of +attributes that will be applied to selected text all at once. See Working With Styles + + + + + + +Text +Import Styles... + + + +Here you can import styles that you have defined in another &kpresenter; +document. + + + + + + +Text +Style + + + +Using this submenu, you can apply a style that you have previously defined +to the currently selected text. + + + + + + +Text +Create Style From Selection + + + +Copy the properties of the currently selected text and +save them as a style that you may apply to other text. + + + + + + +Text +Align + + + +Align has a submenu with several options: +Align Left (&Alt;L), +Align Center (&Alt;C), +Align Right (&Alt;R), and +Align Block (&Alt;J) +which is also commonly known as Justify. + +Text is by default left-aligned. + + + + + + + +Text +Type + + + +Using this submenu, you can format the currently selected text as a list, +either of the numbered or bulleted type. If you choose numbered, you can then +select a numbering style, and likewise if you choose bulleted, you can +choose the style of bullets to use. + +To change a list back to plain text, select +None as the style. + + + + + + + +&Ctrl;+ + +Text +Increase Depth + + + + + + +&Ctrl;- + +Text +Decrease Depth + + + +Increase Depth and Decrease +Depth move paragraphs in a list either to the right +(Increase Depth) or back to the left +(Decrease Depth). + + + + + + + +Text +Extend Contents to Object Height + + + +Text +Extend Object to Fit Contents + + + +Extend Contents to Object Height and +Extend Object to Fit Contents help to +resize text within the text box or make the text box fit the text you have typed +or pasted into it. + + + + + + +Text +Insert Slide Number + + + +Insert a dynamically-updated slide number. This page number will +automatically update when slides are added or removed from your presentation to +reflect the correct slide value. + + + + + + +Text +Change Case... + + + +Presents a dialog that provides a variety of different case/capitalization +options for the currently selected text. + +You may choose between several styles of capitalization, +including all lower or uppercase, book style capitalization where each +word except conjunctions has an initial capital letter, and sentence +style capitalization where the first word in a sentence is capitalized. You can +also toggle the case, so that uppercase becomes lowercase, and vice +versa. + + + + + + +Text +Spellcheck + + + +Use this submenu to utilize the spellcheck options. If you enable +Autospellcheck, &kpresenter; will automatically check +text that you enter for spelling errors. + +If you prefer to check spelling explicitly, rather than automatically, you +can also force a Spelling... check here. + + + + + + +Text +Autocorrection + + + +Use this submenu to utilize autocorrection options. If you +Enable Autocorrection, common spelling errors will be +corrected as you type. For example, if you entered Teh, +it would be autocorrected to The. + +If the autocorrection feature is not active, you can also +Apply Autocorrection check here. + + + + + + + + +<guimenu>Slide Show</guimenu> Menu + + + + + + +Slide Show +Configure Slide Show... + + + + +You can set up the properties for the entire slide show here, +including whether to show the duration on screen, which of the slides +in a presentation to include, and several other global settings. + + + + + + + + +Slide Show +Edit Object Effect... + + + +Choose what effect you want to apply for the highlighted object. This is where +you can set the order of appearance, how the object will appear, if you want a sound while the object appears and if you want some disappearance effects too. + + + + + + +Slide Show +Edit Slide Transition... + + + +Apply transition effects to the currently open slide. This is where +you can choose how the transition from one slide to the next +will be handled. + +The transition effects you select here are applied on the +transition from this slide +to the next. + + + + + + + +F12 +Slide Show +Start + + + +Begin the slideshow from the current slide. + + + + + + +Slide Show +Start From First Slide + + + +Begin the slideshow from the first slide. + + + + + + +Slide Show +Custom Slide Show... + + + +Opens a dialog to Add..., Modify..., +Remove and Copy slides and +Test the slide show in full screen mode. + + + + + + +Home +Slide Show +Go to Start + + + +Go directly to the first slide in the slide show. + + + + + + +PageUp +Slide Show +Previous Slide + + + +Go back to the previous slide in the slide show. + + + + + + +PageDown +Slide Show +Next Slide + + + +Go to the next slide in the slide show. + + + + + + +End +Slide Show +Go to End + + + +Go immediately to the final slide in the slide show. + + + + + + + + +<guimenu>Settings</guimenu> Menu + +The Settings menu allows you to customize +&kpresenter;. + + + + + + +Settings +Toolbars + + + +The items in this submenu can be toggled, that is, you can both enable and +disable the display of specific toolbars here. + + + + + + +Settings +Configure Autocorrection... + + + +Autocorrection is &kpresenter;'s ability to correct +common typing errors or expand abbreviations independently of the spell +checking function. There are several common typing errors entered for +you by default such as replacing teh with +the and you can add as many more as you +like. + +The ability to expand abbreviations can save you a lot of typing +time, if you often repeat text whether in the same presentation or in +multiple presentations. + +For instance, if you work for Company with a really really +long name Inc. then you might define an autocorrection entry so +that whenever you type myJob or some other piece +of unique text, it will be replaced with Company with a really +really long name Inc.. + +Autocorrection can be applied automatically as you type, or only +on demand when you choose it from the Text +menu. + +Please see the Configure Autocorrection section for a complete explanation. + + + + + + +Settings +Configure Completion... + + + +Autocompletion allows you to type the first few letters of a commonly used word (often technical or job specific), and tells &kpresenter; to finish typing the word for you. + +Please see the Configure Completion section for a complete explanation. + + + + + + + +Settings +Configure Shortcuts... + + + + +Configure Shortcuts allows you to +assign a keyboard shortcut to actions that &kpresenter; menus or icons +contain. + + +Customize Shortcuts + + + + + +Customizing the shortcuts + + + + +If you try to assign a shortcut that is already used, it will +give you a warning message. Highlight what you want to do (in the +picture, I have chosen to make a keyboard shortcut to About +KDE). + +Click the radio button to the Custom key setting and type the +key you want to use. I assigned Control key and +Y to bring up the About KDE dialog +box. + +The button shows what has been assigned. Click +OK to make the changes, click +Default to restore whatever was assigned as +default, click Cancel to do nothing and leave +the dialog. + + + + + + + +Settings +Configure Toolbars... + + + +Configure Toolbars allows you to add or delete icons on each of +the toolbars. + + +Configuring &kpresenter; toolbars + + + + + +Configuring &kpresenter; toolbars + + + + + + +At the top is a drop down box to enable you to choose which +toolbar you want to modify. In the picture the Format toolbar is +selected. If I want to add the Spelling icon to +that toolbar, I click the entry in the left window. The arrow pointing +right becomes available, if I click the arrow the Spelling +entry is added to the selected toolbar. The left arrow +is available when you click in the right side window. It allows you to +remove an icon from a toolbar. The up and down arrows become active +when an item on the wright side is selected. You can also move the highlight in +the right side window up and down with the keyboard arrow keys. By +clicking on the arrows with the mouse you can change the order of the entries +in the menu. + + + + + + + + +Settings +Configure &kpresenter;... + + + +See the configure &kpresenter; section for a complete explanation of all &kpresenter; settings. + + + + + + + +<guimenu>Help</guimenu> Menu + +&help.menu.documentation; + + + +
    \ No newline at end of file diff --git a/doc/kpresenter/mousenav.png b/doc/kpresenter/mousenav.png new file mode 100644 index 0000000000000000000000000000000000000000..462c6051f3cd8fba4ba6abf502e42f393da7efc7 GIT binary patch literal 3673 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 Zxd>^lvB8<(^Iu5_3Nk9vKO~Jq{s-_jpXmSq literal 0 HcmV?d00001 diff --git a/doc/kpresenter/msexport2.png b/doc/kpresenter/msexport2.png new file mode 100644 index 0000000000000000000000000000000000000000..27bb44f2bdab8d803605f0306ec8ca21308deea4 GIT binary patch literal 6614 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%0DyedCP3>0g8WjJR(X7l!C$fg9rM0 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 literal 0 HcmV?d00001 diff --git a/doc/kpresenter/msexport3.png b/doc/kpresenter/msexport3.png new file mode 100644 index 0000000000000000000000000000000000000000..55b03e6097f8c333af75c90cac8ad84ba0f0dfc0 GIT binary patch literal 4938 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 N$|DV>kBSzr{{tu#kd^=d literal 0 HcmV?d00001 diff --git a/doc/kpresenter/msexport4.png b/doc/kpresenter/msexport4.png new file mode 100644 index 0000000000000000000000000000000000000000..634246107e21569eb6787262a35e90334928ba35 GIT binary patch literal 6644 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 literal 0 HcmV?d00001 diff --git a/doc/kpresenter/options.docbook b/doc/kpresenter/options.docbook new file mode 100644 index 000000000..39f13e130 --- /dev/null +++ b/doc/kpresenter/options.docbook @@ -0,0 +1,1032 @@ + + + + +Neil +Lucock + +
    neil@nlucock.freeserve.co.uk
    +
    +
    + +Krishna +Tateneni + +
    tateneni@pluto.njcc.com
    +
    +
    + +Anne-Marie +Mahfouf + +
    annemarie.mahfouf@free.fr
    +
    +
    + +
    +
    +Configuring &kpresenter; + + +The <guilabel>Configure Autocorrection...</guilabel> Dialog +Auto correction is a system for correcting common typing errors, converting abbreviations to their full spelling and adjusting capitalization. As you could guess from its name, this all occurs automatically, while you are editing your document. + + +Enabling/Disabling Autocorrection + +To toggle autocorrection on, select TextAutocorrectionEnable Autocorrection from the menubar. When enabled, autocorrection makes changes to your document as you type. You can determine which changes to make by configuring autocorrection, as explained below. + + +To toggle autocorrection off, select TextAutocorrectionDisable Autocorrection from the menubar. When disabled, autocorrection changes are not made. You can, however, apply autocorrection manually, using the TextAutocorrectionApply Autocorrection menu. + + +To adjust the options for autocorrection, select Settings +Configure Autocorrection... from the menubar. + +A dialog window appears to help you set your options, with four tabs: Simple Autocorrection, Custom Quotes, Advanced Autocorrection and Exceptions. + + + +<guilabel>Simple Autocorrection</guilabel> + + +Simple Autocorrection + + + + +Simple Autocorrection + + + + + +Convert first letter of a sentence automatically to uppercase +When selected, &kpresenter; will automatically capitalize the first letter after a period. You can tell &kpresenter; when not to alter capitalization in certain instances (ie “Sr.” or “Jr.”). For more details, see the section entitled Autocorrection Exceptions. + + + +Convert two uppercase characters to one uppercase and one lowercase character +When selected, &kpresenter; will automatically convert a double capital letter (a common typographical error), into a single capital letter. You can tell &kpresenter; when not to alter capitalization in certain instances. For more details, see the section entitled Autocorrection Exceptions. + + + +Autoformat URLs +When selected, &kpresenter; will scan text for patterns which suggest a certain section of text is a URL and automatically creates a link. + + + +Suppress double spaces +When checked, &kpresenter; will ignore the second space typed. This prevents users from adding double spaces between words or sentences + + + +Remove spaces at the beginning and end of paragraphs +When selected, &kpresenter; will automatically remove spaces at the beginning and/or the end of a line of text. + + + +Automatically do bold and underline formatting +When selected, &kpresenter; will look for words surrounded by asterisks ( * ). It will remove the asterisks and change the font of all words in between the two asterisks to bold face. +&kpresenter; will also look for words surrounded by underscores ( _ ). It will remove the underscores and underline all words in between the two underscores. + + + +Replace 1/2... with ½... +When selected, &kpresenter; will automatically change 1/2, 1/3 and 3/4 to their single character equivalents. + + + +Use autonumbering for numbered paragraphs +If you start a paragraph with a number and a symbol ( 1) for example), &kpresenter; will automatically convert that paragraph to a numbered paragraph. All future paragraphs will be consecutively numbered. + + + +Replace 1st with 1^st... +When selected, &kpresenter; will automatically change 1st to 1st. + + + +Capitalize name of days +Automatically capitalize the days of the week (Sunday, Monday, Tuesday, etc...). + + + +Use list-formatting for bulleted paragraphs +When selected, &kpresenter; will look for lines that begin with - , and automatically convert the paragraph style to a bulleted list. The bullet is selected with the left button below this option. + + + + + + +<guilabel>Custom Quotes</guilabel> + +Select the tab labeled Custom Quotes + + +Custom Quotes + + + + +Custom Quotes + + + + + +Replace double quotes with typographical quotes + +When selected, this option will replace the standard keyboard double +quotes, with typographical quotation marks. If you want to change the +quotation character, click on one of the buttons. Clicking on +Default, restores the default paragraph marks. + + + + +Replace single quotes with typographical quotes + +When selected, this option will replace the standard keyboard single +quotes, with typographical quotation marks. If you want to change the +quotation character, click on one of the buttons. Clicking on +Default, restores the default paragraph marks. + + + + + + +<guilabel>Advanced Autocorrection</guilabel> + +To switch to the Advanced Autocorrection, click on the tab labeled +Advanced Autocorrection. + + +Advanced Autocorrection + + + + +Advanced Autocorrection + + + +This allows you to automatically have &kpresenter; replace one string +of text with another. This can be useful for special symbols, commonly +used abbreviations that you want spelled out, or common typing errors. + +&kpresenter; uses different autocorrection strings depending on the language. +Set the correct language using the combo box labeled +Replacement and exceptions for language:. + +The check box labeled Enable word replacement is used to +toggle on and off the autoreplacement features of &kpresenter;. If there is no mark in the check box, +then &kpresenter; will not perform any autoreplacements from the list in this dialog. + +If there is a mark in the check box labeled Replace text with format +&kpresenter; will not only change the text when it finds a match, but it will change the formatting of the new text. +If there is no mark in this check box, then +&kpresenter; uses the same formatting options for the replaced text as it found in the search text. For more information +on setting the format options for replacement text, see the section on +Changing the format of the autocorrection string. + + +Adding an autocorrection string + +To add an autocorrection string, simply type the text you want &kpresenter; to +check for in the text box labeled +Find:, then enter the text you want &kpresenter; +to substitute in the text box labeled Replace:. + + +If you want to insert symbols or special characters not available on your +keyboard, you can click the +buttons with three periods on them and select a special character from the table provided. + +When these are entered, click Add.... Your text +strings are now added to the table. + + + +Editing an autocorrection string +Changing the text you want to find. +&kpresenter; does not allow you to change the text to search for. +This is to prevent disastrous mistakes. +Instead, you must delete the current autocorrection rule and +add a new text string with the corrected text to find. + +Changing the text you want to replace. +Begin by clicking once on the string you want to edit. It will be +highlighted and the find and replace text will be listed in the text boxes +above. You can alter the replacement text. When you +are done, simply click on the Modify button. + + + + +Deleting an autocorrection string + +Simply click on the string you want to delete. Now click the +Remove button. The string is removed. + + +Be aware that &kpresenter; does not give you a chance to back out once +you have deleted a string. Be sure you have selected the correct string +before you click the Remove +button. + + + + +Changing the format of the autocorrection string +Currently, you must create the autocorrection string before you can format it. +Once the autocorrection string has been created, simply click on it once with the &LMB;. +Now click on the Change Format... button. A small dialog will appear: + + + + + + + +You can use this dialog to select the format of the replaced text. +The left column consists of 13 check boxes. If there is a mark in the check box, then &kpresenter; will change +any replaced text to match the property selected. +If no mark is in the check box, &kpresenter; does not consider that property when replacing text. + + + + +Family: + +Use this combo box to select the font family you want your replacement text to use. + + + + +Size: + +Use this spin box to set the font size you want &kpresenter; to use for your replaced text. + + + + +Color: and Background color: + +Clicking on either of these two buttons allows you to select the font color and/or background color respectively, +you want &kpresenter; to use. + + + + +Bold: and Italic: + +Use these Yes/No radio buttons to determine whether you want &kpresenter; +to change the fonts to boldface or italicized fonts. + + + + +Strikeout: + +You can select None, Single, Double +or Simple Bold to use for the replacement text. + + + + +Underline: + +You can select None, Single, Double, +Simple Bold or Wave to use for the replacement text. + + + + +Vertical alignment: + +You can select Normal, Superscript or +Subscript to determine what font alignment you want &kpresenter; to use. + + + +Shadow: and Word by word: + +Use these Yes/No radio buttons to determine whether you want &kpresenter; +to use shadow text and/or word by word underlining and strikethrough in the replacement text. + + + + +Capitalization: + +You can select Normal, Uppercase, Lowercase, or +Small Caps to determine what capitalization to use for the replacement text. + + + + +Language: + +You can select the language of the text you will use to replace the found text. + + + + +Once you have selected your options, click OK to accept your text options. +Click Cancel to ignore all changes. +Click Reset to restore the options dialog box to the initial values prior to making any changes. +Click Clear to remove all marks from the checked options. + + + + +<guilabel>Exceptions</guilabel> + +There are instances where &kpresenter; will make autocorrection changes +that are inappropriate. You can use the fourth tab of this dialog to define +exceptions to the rules previously discussed. +The dialog for exceptions is shown below: + + +Exceptions + + + + +Exceptions + + + +To prevent &kpresenter; from deciding an abbreviation or other text is +the end of a sentence, simply enter the text fragment in the text box below +Do not treat as the end of a sentence:. Then click +Add. +As an example: Adding Jr. to this dialog prevents +Robert Jones Jr. is a friend of the family. +from being changed to: +Robert Jones Jr. Is a friend of the family. +To remove an erroneous entry, simply click once on the wrong entry with the &LMB; +and click on the Remove button. +The second set of boxes performs a similar function to the first except text entered in these boxes will allow two capital letters in a word if it +is entered in this text box. +Simply enter the word in the text box below +Accept two uppercase letters in:. Then click +Add. +As an example: Adding CD to this dialog prevents +CD +from being changed to: +Cd +To remove an erroneous entry, simply click once on the wrong entry with the &LMB; +and click on the Remove button. + + + +Manually applying autocorrection + +If autocorrection is turned off in your document, you can manually enable autocorrection. +To manually apply autocorrection, first configure your options by using the +autocorrection dialogs. +Then select +TextAutocorrectionApply Autocorrection +from the menubar. +&kpresenter; will start at the beginning of the document and apply all selected autocorrection options to the entire document. +When &kpresenter; is finished, it will return you to your document for further editing. +For more information on enabling and disabling autocorrection, +see Enabling/Disabling Autocorrection. + + + + + +The <guilabel>Configure Completion</guilabel> Dialog + +Autocompletion allows you to type the first few letters of a commonly +used word (often technical or job specific), and tells &kpresenter; to +finish typing the word for you. This is often very useful when you have lengthy technical words. + + +Using autocompletion +Using autocompletion could not be easier. Simply type the first few +letters of the word you want &kpresenter; to finish, and press +&Ctrl;E. &kpresenter; will look +through the list of autocompletion words and if it finds a word which begins +with those letters, it will finish entering the remainder of the word. + +Adding words to autocompletion +&kpresenter; maintains a list of words for each user that will be used for autocompletion. +You can add words to this list one of two ways: + +&kpresenter; can automatically add new words to the completion list for later approval. +This is selected using the dialog. +Individual words can be added to the list by using +the dialog. + + + + + +Configuring autocomplete +To configure autocompletion, select +SettingsConfigure Completion... +from the menubar. This will bring up a dialog. + + +Completion Dialog + + + + +Completion Dialog + + + + + +Enable word completion +It is used to toggle autocompletion on and off. + + + +Add + +By clicking this button you can manually add +an individual word to the completion list. + + + + +Remove + +To remove words from the completion list, select the word with the &LMB; +from the list, then click this button. + + + + +Automatically add new words to suggestion list + +This option will add any word equal to or longer than +the Characters needed: to the list of proposed +autocompletion words. +The large listbox in the center of the dialog contains the current +proposed list of autocompletion words. +Not all words listed in the list box will be immediatly affected by +autocompletion when entered into this dialog. + + + + +Show words in tooltip + +If this option is enabled, a tool tip box will appear when you type the +beginning of a word that exists in the completion list. To complete the word, +press the key you set to accept suggestions in the Key to accept +suggestion: drop-down list. + + + + + +Characters needed: + +Use this spinbox/slider combination to prevent &kpresenter; +from automatically adding short words to the completion list. You can select +any value from 5-100 and the words will need to be at least the number of +characters set here to be added in the list. + + + + +Suggest words: + +This spinbox/slider combination can be adjusted to allow more or less +words into the autocompletion list. This option is most important when +Automatically add new words to suggestion list is enabled. +This option keeps the list from becoming too cumbersome. You can select any +value from 1 to 500. + + + + +Append space + +If checked, it adds a single space to the end of a word after +autocompletion, this means it is not necessary to add the space manually for the +next word. + + + + +Key to accept suggestion: + +Set the key you want to use when an autocompleted word is suggested to you +and you want to accept it. You can choose +Enter, Tab, Space, +End or Right. + + + + +Make Default + +A word is not part of autocompletion until the list is +saved to disk. At that moment, &kpresenter; +will use that saved list for all autocompletion, until the list is replaced with +another saved list. +Some of the words in the autocompletion list may not have been saved +yet.To save the current list to disk and have &kpresenter; begin +using this new list for autocompletion, click this button. + + + + +Click OK to save your options. Click +Cancel to abort all changes. Click +Reset to reset to the state after you clicked on the +Make Default button. + + + + + + +The <guilabel>Configure &kpresenter;</guilabel> Dialog + + +<guilabel>Interface</guilabel> + + +Configure Interface + + + + +Configure Interface + + + + + +Show rulers +This is checked by default and both a vertical and horizontal +ruler are shown on &kpresenter;slides. When unchecked, the rulers are not shown +anymore on any slide. + + + +Show status bar +Toggle the statusbar which is shown by default. + + + +Number of recent files: +Set the number of recent files which will be opened using the +FileOpen +Recent menu. Default is to remember 10 filenames. The +maximum you can set is 20 and the minimum is 1. + + + +Text indentation depth: +This setting is used in the Text menu by Increase Depth and Decrease Depth menu items to change the indentation depth. Default is 1 centimeter. + + + + + + +<guilabel>Color</guilabel> + + +Color + + + + +Color + + + + + +Background object color: +It changes the background color of the text box. The Text boxes background is white by default. If you had a dark +background color and you wanted to put some white text over it, you +could color the text box so that you could see what you were +typing. When you have finished, the area around the text would revert +to whatever the background color was. The +Defaults button restores the original +settings. + + + +Grid color: +You can change here the grid color which is black as default. + + + + + + + +<guilabel>Spelling</guilabel> + +This tab defines the spellchecker behavior. + + +Spelling + + + + +Spelling + + + + + +Default language: +You can choose here the language for the spellchecker. The languages listed come from aspell so if you want more spelling support languages, you should install the corresponding aspell-ISO packages. + + + +Enable background spellchecking +If it is checked, it will highlight in red mispelled words according to the dictionary selected above and it will spellcheck words as you type them. This is enabled by default. This option has the same effect as TextSpellcheckAutospellcheck and both are checked/unchecked at the same time. + + + +Skip all uppercase words +If this option is checked, the all uppercase words will not be checked for spelling. This option is also used when you choose the TextSpellcheckSpelling... menu option. +This is useful if the document you are working on uses a large number of acronyms. If this box is left unchecked, most of those acronyms will be incorrectly marked. By placing a mark in this checkbox, &kpresenter; will not mark the acronyms as misspelled. + + + +Skip run-together words +If checked, then concatenated words made of existing words are not spellchecked. This is useful in some languages. This option is also used when you choose the TextSpellcheckSpelling... menu option. +Examples of such words are shutout, +cannot and blackout. + +Checking this box will help prevent &kpresenter; from +flagging website and email addresses for spelling errors. These +addresses often contain words run together. + + + + + +Ignore These Words +You can have here a list of words you want to ignore in all spellchecking. + + + +Add +Write a word in the field then click on the Add button to add it in the list. Once the word is added in the list, even if you click the Cancel button of the configuration dialog, it will stay in the list. + + + +Remove +Highlight a word in the list then click on this button to remove it. + + + + + + +<guilabel>Misc</guilabel> + + +Misc + + + + +Misc + + + + +<guilabel>Misc</guilabel> + +Undo/Redo limit: +Set the number of actions you can undo and redo (how many actions &kpresenter; keeps in its Undo buffer). Default is 30. Maximum is 60 and minimum is 10. Any action that exceeds the number set will be forgotten. + + + +Display links +When you want to include a link in your slide, you will use the InsertLink... menu which allows you to insert URL, mail or file links. If the option Display links is checked, all links will be displayed in a different color. This makes document links visible. This is the default behavior. If the option is unchecked, the link will be the same color as the text color. The links are visible (or not) both in the edited slides and in the slide show. A displayed link: + A non displayed link: + + + + +Underline all links +If this is checked, all links will be underlined. The option is checked per default. If it is not checked, the link will not be underlined. A displayed and underlined link: + + + + +Display comments +Comments are inserted in the text at the cursor using the InsertComment... menu. Comments can only be viewed in editing mode and not in the slide show. If this option is checked (default) then each comment will be shown as a small yellow rectangle. You can then right click on it to edit it, remove it or copy its text. A displayed comment: + + + + + + +Display field code +In editor mode (not in slide show) this option will display all the variable codes. This is very useful to see what variable is displayed. Variables are inserted using the InsertVariable menu. + + + +Print slide notes +If checked, all notes will be printed on paper. The notes will all be printed on a separate last page, from slide one to the last slide and finishing with the Master Page Note. You can see the notes for each slide using the ViewShow Notebar menu. + + + + +<guilabel>Grid</guilabel> + +Horizontal grid size: +Set the space in centimeters between two points on an horizontal line on the grid. Default is 0.5 centimeter. + + + +Vertical grid size: +Set the space in centimeters between two points on a vertical line on the grid. Default is 0.5 centimeter. + + + + + +<guilabel>Document</guilabel> + + +Document + + + + +Document + + + + +<guilabel>Document Defaults</guilabel> + +Default font: +Click on the Choose... button, and a new dialog will appear. Use this dialog to choose the default font. This setting determines the default font used by &kpresenter; until further formatting is done. You can revert any text to this default by selecting TextDefault Format from the menubar. + + + +Global language: +Use this drop down box to determine the default language for the document. This setting is used by the hyphenation and spelling tools. + + + +Automatic hyphenation +Check this box if you want &kpresenter; to automatically hyphenate long words when it determines the word wrap in text frames. This is not set as default. + + + + + +<guilabel>Document Settings</guilabel> + +Create backup file +If checked, this will create a .<name>.odp.autosave.odp in the dir where your file is. This backup file can then be used in case of a problem. The backup file is updated everytime you save your document or everytime there is an autosave. + + + +Autosave (min): +You can use this to adjust how often &kpresenter; saves a temporary file. If you set this value to No autosave, &kpresenter; will not autosave. You can adjust the autosave from 1 minute to 60 minutes. + + + +Starting page number: +You can change here the number for the first page. It is set to 1 per default. +This is helpful if you have split a single document into multiple files. + + + +Tab stop: +Each &kpresenter; document has a default set of tab stops. If you add tab stops to your document, the newly added tab stops override the default tabstops. You can use this text box to define the spacing between default tab stops. +As an example, if you enter 1.5 in this text box, and the unit of measure is in centimeters, then the first default tab stop will be located 1.5 cm to the right of the left margin of the frame. The second default tab stop will be located at 3 cm from the left margin, etc. + + + + +<guilabel>Cursor</guilabel> + +Cursor in protected area +When this box is checked and you click in a protected frame of your document, a cursor appears. When the mark is removed from this check box, and you click in a protected frame, there is no cursor visible. + + + +Direct insert cursor + +When this box is checked then you can select a section of text using your mouse. Move the mouse to a new place in your document and click once with the middle mouse button and a copy of the selected text is copied and pasted to the new location in the document. +When there is no mark in this checkbox, in order to copy text from one section to another, you must select the text, manually copy the text in to the clipboard, then manually paste the text in the new location. + + + + + + +<guilabel>Tools</guilabel> + +This dialog sets the default tools settings. There are 5 tabs in this dialog. + + +<guilabel>Outline</guilabel> + + +The Outline tab + + + + +The Outline tab + + + +This is used in the InsertLine menu. + + + +Color: +Set the color of the line. Clicking on the color will bring the standard KDE Select Color dialog. + + +Style: +Choose the line style from No Outline which will not draw any line to dotted lines and plain line. + + +Width: +Set the width of the line. + + +Arrow Style +Set the styles of the beginning and the end of your line for example you can choose an arrow at the end and a square dot at the beginning. + + +The last field displays a preview of your settings. + + + +<guilabel>Fill</guilabel> + + +The Fill tab + + + + +The Fill tab + + + + + +Type: +You can choose between Single Color, Gradient or Transparent as the type. + + +Style: +Choose the style or the pattern. + + +Color: +Choose the color. White is the default one. Clicking on the color will bring you the standard KDE Select Color dialog. + + +The last field displays a preview of your settings, provided the color is not white! + + + +<guilabel>Rectangle</guilabel> + +This is used in the InsertShapeRectangle menu. + + +The Rectangle tab + + + + +The Rectangle tab + + + +You can choose to keep the same ratio for the two settings below by having the + icon or to separate the two settings by using the + icon. + + +Vertical declination: +Set the vertical declination. + + +Horizontal declination: +Set the horizontal declination. + + +The last field displays a preview of your settings. + + + +<guilabel>Polygon</guilabel> + +This is used in the InsertShapeConvex/Concave Polygon menu. + + +The Polygon tab + + + + +The Polygon tab + + + + + +Type: +You can choose Polygon or Convex/Concave. + + +Corners: +Set here the number of corners of the polygon. + + +Sharpness: +Increase or decrease the sharpness of the polygon. + + +The last field displays a preview of your settings. + + + +<guilabel>Pie</guilabel> + +This is used in the InsertShapePie/Arc/Chord menu. + + +The Pie tab + + + + +The Pie tab + + + + + +Type: +You can choose among three options in the dropdown box: Pie, Arc or Chord. + + +Start position: +Set here the start position. + + +Length: +Set the length of your pie. + + +The last field displays a preview of your settings. + + + + + +<guilabel>Paths</guilabel> + + +Paths + + + + +Paths + + +There are two paths that are set here, the Backup Path and the Picture Path. The Backup Path is the directory where your backup files are saved and the Picture Path is the directory where your pictures are saved. Highlight a path in order to modify it and click on Modify Path.... A small dialog appears and if you uncheck Default path, you will be able either to enter a path yourself or to choose one with the standard KDE file dialog. + + + +TTS + +See the Text-to-Speech section +in the accessibility chapter for further details. + + + + + +
    diff --git a/doc/kpresenter/properties.png b/doc/kpresenter/properties.png new file mode 100644 index 0000000000000000000000000000000000000000..a1b38c301ca4d6075f0d852dda0301d26bb6ecf5 GIT binary patch literal 6779 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
    &%FEh20Ny* zmrN~xduT0D)9)nDZSl?8QDG}feZwx*@e)^`Uold#ctdixk>;c`Ar~cG8g{(YgPJ(O zoAX?1#XDgl9sBV>IC=o@_uT%U0ZRZmyirRV(f#Y=X$|;v+yN{GsvxBK_Ge}Kuc9FT zhxzZC`*%M5yMp~E_6h!$55muaI+Xki-+p=0>)tR z?YZ+@;~nDilHYo}KCTLXP|0ybc|LI18&4cUpn%4)&l ztZ0}45N%w>Hy(I3&ktKmOd2&K4yycGN=$}u4RE&LdMj+E$p)>ng>UX|-8ony%_~#w z*4lEK2()dpgT4@&pef(8DG{W`*q2MU3RqPIIUrC>`V>3ah##`C> z26!>T#AY!pc1OPuK_=pqtZjCv{i~}rNc;uy$J$gW$e9kcdxO33k{f&RVQ>1lkvTqu z5NDg|uAIa$L-TNBUBQ)tq}<>GX3=4}CIgdm>-SsEj%r@||XD8+-!9P6?pZsIEr(<{Xj%n_nD-T6h!=lUDq zDP{X>R!d*>Ws`evO=Y#NCal6Iz{SE`0z+nQja6D`=8xwu_jcSCSK|#N#3I7(Hczj?Lj3=9)-$y+;LG7_nbA zHtj14%#Un7X==M{styHLVt=6gb$BjL8gdme3R1JjZNp{QgblyVU`>J<5TPeyxZ#qu zF9&9QE_a>gB6_!4gFLnQh{2CiRQjcJIadnptPd0PK4-*tEYTH?mL_69Iue9IEyQk) zjp>Z&+&9Q*uY$RBE&FG^;RHbsMr3nH(kY$&z=g6S6j_GQ-1Yc!luIE*5Uq z*D#DGRI+{VpnlRo;nkmCh!f*j5tKFm20pzY9hS_!_o`U#omg}d^$-6z1G|aezVjO> z#fMb2+6xwFMtG3lo*WPCb`Y>EWVTzTwPG_iw@m=J4Hc<Wzfjs?PJ%!tFm{!YdnHzST#dSDf}dJN{8Q}Rs?NGifjM@O=-gmJgqccRJv zPBOs2VLGVKlzcscnTWVrlLnz2?}tINZ5qbMcq6WHLa7d)QG`rN0kEX5tfN$^@a+Bn E0CT%)ZU6uP literal 0 HcmV?d00001 diff --git a/doc/kpresenter/screen.docbook b/doc/kpresenter/screen.docbook new file mode 100644 index 000000000..f35d11168 --- /dev/null +++ b/doc/kpresenter/screen.docbook @@ -0,0 +1,44 @@ + + + + +Neil +Lucock + +
    neil@nlucock.freeserve.co.uk
    +
    +
    + +Krishna +Tateneni + +
    tateneni@pluto.njcc.com
    +
    +
    + +
    +
    +The &kpresenter; Screen + +Here is the default &kpresenter; Screen Layout. + +At the top there is the menubar. All &kpresenter; functions are +available from the menus, which are described in detail in . + +Below the menubar are the toolbars. There are several +toolbars. You may hide and show toolbars as you prefer. The toolbars +are described in detail in . + + +The Outline and +Preview panes give an overview of your entire +presentation. The Preview pane provides +thumbnails of each slide, and allows you to drag and drop to change +the order. The Outline pane provides a +hierarchal tree of each slide, and also the objects inside the slides. +As well as overview, this allows you to easily select objects which +may be covered by others, or are otherwise difficult to grab directly on +the slide. + +
    diff --git a/doc/kpresenter/settings01.png b/doc/kpresenter/settings01.png new file mode 100644 index 0000000000000000000000000000000000000000..db91f31c3aec67f86c2557baf73adb28c5a0cf72 GIT binary patch literal 3775 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 F{{XckDVzWR literal 0 HcmV?d00001 diff --git a/doc/kpresenter/settings03.png b/doc/kpresenter/settings03.png new file mode 100644 index 0000000000000000000000000000000000000000..85d370e6e1eca25bc6c5992563d0468b1de75c16 GIT binary patch literal 13350 zcmc(GbzECb(B$?@^=(c#h2!Qt`#!O`yi(azoxZ0~q$|6e%S zJUCt7KV3RFo!LJf-8t#qI{h(ySTMX>KefNKdAPNGum#)Sgzax^?fu@|UEkPQ{|#GP zhpob44YsnnwY<8yw6eLlyuPrsKEJRwH@`YNw=y%kJUz2CHN7}FwJQ&l4GRhm2?`4F3<6t3R-1%X zn@3h#MAzCSws}`B*p{rD6>gg3t{Y}9YNd=z#w`oQtO!LdafWRPhR=#bObdig@&}Lc z2M+W3LwWrMK7a4$@$LES)6MJA&ik#B!?BvhzKI6ZM{iilX_P>(5%qyDm`uW+T*8h* z+=iM%n*u2Kk%XM>Ef&#hJoML;D9EUYh=@7gWq9B!f$XF#uX1^CeO5WCgN%T{GAS)4 ztm?LSllL`K3EO4Oo8UbqNcrR^p)+ zD8D}12iI8#C)VKrW5|z|eNVds&;&obRgqt`x&}_h+IG`%dq~vnGs~22H^sSM_B)LVxGUkw$OEKP`XygsYtGya!Cnor(v&ls}_}R#v5!4}>_T zFp~6?D}mbQ&CLe$u}>9aSAy=~6N3IIfqJcVE=)1|pU+ULF~v5WPaxc#ECQ13D@Wa! zqi@&jGyza5!0oQeedC8RK5E9-e)Xs?l~DH79W$p+6AC3Io8~Dg>e@?Fh%6?1I87}j(48Ed4BEXu9EO>6qE zbX=ed=vsUYr%H#14)&KDLS50tgk_xsV(s>5mR!mpKW1t%h#M@OnCg#VIK_wl_F0Y_ zJXFu-D1CY)n+yvwozK#|{CAA5DIpa5iB$dVzt_+D#~at($&xE?5pa3Vs&>cRbNh#2 zh}7Bk2!35lZ>b~SV^Fc?*W)VG*k$7>bm;r|Q>z3=kSsOYk9mn8zp}jm>e5jVeXs
    wu0-wA7yJD$L~g=9NaftWqM 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 literal 0 HcmV?d00001 diff --git a/doc/kpresenter/settings04.png b/doc/kpresenter/settings04.png new file mode 100644 index 0000000000000000000000000000000000000000..6f2883bd2f2080d40a878baffac18d34c506c87d GIT binary patch literal 14897 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 bccObga86H3@-{HvzG2C{SCA@_F!1|du;aj2 literal 0 HcmV?d00001 diff --git a/doc/kpresenter/template02.png b/doc/kpresenter/template02.png new file mode 100644 index 0000000000000000000000000000000000000000..8d1ef97694657507529d0a48a7d3f4455d7c0df7 GIT binary patch literal 8916 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

    E^3CBUZ!P;IU z2cWnCq&K!~JRB@|t|k29r-aMga-aJ8Xm}{=n|L8WZr(H+5pD9Nrof^BkPrck9|7i2 z`X>?hbyz~HnxHpxUXh;xjLAIe#-xK89OFU`nG5!)L7ef zU1c9G-Pu0Y%s4r70Zk3fo?2$m`b7L+QIu$e4#_~)UG>imnc6aOl<~4<;(Y%x;nk({&IpYB z%4PLpK=6nIbLX#)V_mgFU3?Fk$uK3B6QHCGaiVmuyRTSb zrIR~8jV#kx{MG7An@W|uqi-D6QkTi?{GZWXfIgMP&bX=P5wg6!=}pcllJ_h4#awwk zahg3O5W0%IXLfTKK1e$D{mBcVlm>153~f-Cif8{dVa`L%RHhg0M literal 0 HcmV?d00001 diff --git a/doc/kpresenter/tut11.png b/doc/kpresenter/tut11.png new file mode 100644 index 0000000000000000000000000000000000000000..bc7df396db9a8dcf4db9bd4f0ec3fc393a7fdf5e GIT binary patch literal 21941 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 literal 0 HcmV?d00001 diff --git a/doc/kpresenter/tut12.png b/doc/kpresenter/tut12.png new file mode 100644 index 0000000000000000000000000000000000000000..440e49d5604c19ab32292333613caeaa6f23110f GIT binary patch literal 25558 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

    ;W(+?_6zm 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 QAprWRDQPK|$y)^fKWo{LI(zQqY(jiodFW^yrzK zsJ=9h<^y^yW>OnwqR@M!pZRHHWNBlycrs0RiuIYAR2fG_;cI-H8&5@-t%R4tI5tul z_rB4b)RLW!5FZb-9JER7_o)4CFkC9p8%)<~i81O-vl-9+Fq`c^UJ^A}kcBG!UR6=? zy|g^PpfEot=i9gZ%%(BFk!sxi1nAqe`QL!JRVn0Pi|5rbK`uOo<=>JM^a7a*a zXheWd2=W8c&)3~E(B(s@^Lu}1S2tT%drSM*hL(nUhI(4Bw6wH!G&FU^UKsN{f5R|Sg&EkC(D{3Au{PwGmL$Q!!rI2&Q zW0wkX_ZkVWW}%=q-j8iU0UhGL?c#o&;>d0Z{~n2eUdg~dsi0p{!TnOfgHj*PXK${X6Gln|sqsI}1yj z%gdW9tAE$lH`ms87S|8gHjg&`9{kE-F^+3DHQ#rg5Y#l_|2`Q_!=<<;5c_4$AG>hgc} z-{rrn|Ep(LH~(&KuW$dqa(Cy&ZI%y!jjpoX6D{|dopgL7ZSDDUujxPh0W{pNQwrF6 z6F8%lzwz62H*Qo;?tUm!9cW8>Dwn}wO@TU9^@mJ<;4d+~^~En^!r%>-F+k^K5Oczy6{(rsf}f z)oYuT^xsYl%ngQ3ipNnG7Az^n#-y}oJO*VL_rV4ESjXa1b^goot#D#h@5Sn=x&gn} zKbpz9S8j6(b`$6X5AY1t`5mRnp5X-}J6eTqD}{)fx_8@o7RKsWe5aMzd2rj=CzpP> zZ=aPrl%WQ2!F+(H=~}=z>iVmsmGtUipW%-)8UGb#;gh_U(~Z^rE1LyR{O=@uxGd{+WyH@ zuC;JW#S^0!4eM^ko)>8izq`hZRo%V4>1s0>^m)!7du7?jK5-BsE6Ak`4yc%sr%i6F zJoQ9jVDYyGvE+Hb3+h%E1H9wrZpyw@{Vq+>9es_l@8u(N+i`Uvg35Sz3+t}xeeCbo zt=@`NIhJ3tfT^>1L4LQ`@=&bMHM?BYo$>C`MIdvbY@4s+bwa5G5327=*@2297V%tp zlo)nQa?pzUjoBm2MaJuV(fcVgJ}fOOkDHd&-i1$#@TMBH^WgR7ob(xgHNH2ww5`0f zJ?-Y@zuVq=x+)GolSW~X>yiRw(iie^j{M=dVn13vVqteIW`oJFGC#`wS)9b4)~|JZ z-Z#uBx|p?UHLg#lSk)O<3clWvsvLNcv#K|3B1JdK1T{+mR`272^ym}Z z?OyK_A7m@y3CKtleRzMl9_GD1n9g`gtuiaI%<07#Oh=jTS= zy&q(om*{Ts$VOEDUdm_T2r#8ox&kSW?d_hD(Svnh!I$edbYyBhPhE)Jy*w(wj!bh@ zC70t9AN>6l1A)5DE{H!bhN#)+N}%x_|}es7-2;`wg4y$heY$D3M(O&d|TMSLIJBG4Qhz{HuC zAe-JoU>~8Drc{Guc3*50L%i76P%)^BZHZXHZ-pjM?710TSYzC#7H@fcm37DS6uWQl~EzdJv@SRQc4 z@(~y#Dy;nbcpsipzzW2?(J+JA}xdZ1e{xorHWylc*9=EqwXCaj2mJh`Qe zWiNzJ75WBl`|Cb2RQa;3U0vmFn?Uqiwzj@&qZx6)6oYX;**oK3R5>_&m8X$RJ|!5n z-=bZUF@;}oCj-3hwoSt2?9`m-^anhJ^aOZ@spF&2yk( zavoD31v~J2RGo2$eYfeF?84Z8!(HJ#XEH6@c6WD=o7ePoU1aG!Lz{feKk?=-?)mTU z@QVL7oniY3oDlU^7Cu&DFVbzreBCJ7_Vc^S_Cy)SLYN!E2+Y5tmfCnID+!F}uKDWl z$o=O(yJe6-UqzvGpKBK1h=O|sE~KL)gE6qTs4`t?>;nP zmQLP92Ib@m`*4l1mrOzqAr}iDgkN~>raMWnI5sQD@We?&F6hbPDz@ytS~z$bZo46H z0P8mnWLa%!1rY>kzK#~Tix@&hRJ{zRZ7^2gx1}g6`1B?m8%V*4dl`ZOLKeV53<*$D zLchq0i7FqL7Ve&q4l%6WJ~gzTJSU1(AOP4{^I>;!KMQy}td?6-;oV%_ItQNPe6*u= zez^?xBaIUp+5I{JyB+oK*r)Z%#C}P+sIu$h57$pO*S~G#VxJNT`KZ+jtgqJ}2Af2V ztllhkN+@h+8qNyY=CHl~;-WV1@%0aj&KW)l2T%B5$+9tr77kc}Ag_D5IrK}Uc&sE6 z;%(oPPIu_8c^uS!SZJp*)6EwTXDcjXWW#GuoHk@D(z;EgBG*iQ^}6Lb8MW8P`A6xn z>uCvA?5Q^Bb1Cb;BxP~$Nog9V$5<2YBFXA``2##72)))jdMivo{Eij=hrFd9n}5uO z`!Fgt3@)=)6lq-g1i_G%@{WrvM&-B@F!i*%x^{C0stcp*_g?D1tCjd(fy~k zw|eTNwseIiu&vv4z_PWB=0?R%v(@CQ&STW=zYSy~^_a*!{xIW2M75YWwQg0i3hBvK z7ptxxS6+2CsTU1(SzrAh8%;~lKeQe=mHF};dA~z0)ibtF)Jn=-w?12dMO*qw-g&H% zscHz#qjDSVS8kteFaS$goXrFG>sM=4Q7?l&6u(oE`}l54R};h})%Wsa`u}2Yex_R4 zpvIW?02MjtqBB0YZda=TMRI%o>(I?{)-HWt;i_Ubm?kN9hHo0zn;shq_cCy`|7V+g zXH}p3GM{(!^^&cjVj6$kyc81af{k}o61k>r>Lm!Yx(nDRogz3tSXc4aa#bZ1shj=i zuKn@c?0q;_HH5dcsC2}mv=WOqvZnhp$ciZK+A?=e2o$GulN;+jYysjaq7Rly%+(_Y z2Qmn|q;!k^`;U^qVfH&!k4`rP%<2SVv(6Il4+E4g_(rMv z$^&cStmT_}pE|f9DJZh0B?cvRa}g^LZVwZ{k#Y+D8$!$9AuzB8DR`L(K~_BwrCEh^ zVSw|Q_pLMocHr3|<P+ig}hd2@3muYuF=)3&xc0!VjM6#bM$ru z_S8;^O05RcQJ?3hr?E%RVvSM$Unimuj!0IYM-Hml5uaIlB)XK2lFvx;CjZyl4SPAE zo%D80Nz^m`n6)7BdSS#GYp8n!xy_6EUA_`-d(!fGC$eWc0FIiE+cCa()Sj^X8mk%M z4X$?>rQ@V&@~CmB)J~wvt3_dz)y9UuGQ^ymcc@Xy>#oB+=~U^dGfX>#*Bd(Lw$eW= zpX=99huyLZn50%)#g=Tr0Bf_-&#FHBIlLiep!q?K&5Mh|kK#e40BxvWzd;gT>*>^< z?8*nBfeG0i{mazXIA9eL^Zze@Kt=`yxVR8xP>u~CLTi;@Z-baV2Ir(}P~!Zr*}Moa zh`m0_x53U26LJPx@8V$yj(m6bo$Ypmy=6xkK{G}j|1qO&oaF+y;`a-CYf^Vw^>VW7 zPAV|A+HdjdSDBI?l>zZF`wz8QqrHV+Nm+s)YZl=X!yJb>wlDswLvwldvXNTPpX(TW zQLXt{UZE3`@&h8O9hAi++P1n_vQ16z9AMC8eV!2Qp*?}ABq>xBmOOtnzlfO7F5HcJ z+3P4iDaIj+%M>knB#^5}ytjJt z@{2jTBNlO8J$`leXGjuI6M=vt7nINy_mn3{2 z5qR_$OA{Z0f{F958;P?#L)b0XyM!-u_XS6~|5U_1sr7I?bhdwejCH*dy;!|J_$GQV zW%qKsbA*a$r!{{gixqg7AB8Knee5#+6I4h{zHai;*TTBsL8}53FpdS717uf9(kv^c z>45=9@kW^N!J+iwg8o2Iawi^(CUo9K%N`@t{-z` zFVK5;yxj3fO2i>|3~!Q|^Fin2{zcfW@FU$wp8GN8%6-my_~b^q)mUd_?Y-{Mt&rSNgJ|Rwf!^O_8?t!F1Rw|t0uUSBSfIExS;K%C+{D-1UP_odXCxpIxO`SX) zVAU%A%&+ieJat;VqglK5al$KO5QT}ZItKtrzK zL?pgeTvQ}e^I(hW6Of#4Ix$_ZUdJlA4?HE_SUT*M2V?m;M2qJ*fNx%f zLMvdz*}2pWS{<;plDi%d?GAW*xZq^7O-!j0A0}2Lf&c@NkKlm`#!apNjY$*354h_K zX?`&l*B7Si@QycUX^LMhow%R8v{F57KeTvcHCS8-;Xn2#?57Y4h;~$E_!xp`z{qKL zxAcr9J6lJF@q}=w>epjvd4apU!SSK|gJt8a3CrGjI2D+h9CE3Te}=>afj6}hsd!Oq zedxIqB53k#@ofBk?)HzcRyEBbcxCTO5g=wgN~2QoLAEhG>*x!%Ls^K)_yH(TZ^EI^ zCP9YqxBj_OczwT?iy(Zp8q@5{*r>NuXKj(;Rval zT$t`Xg+Rf~UEso1?uN6P+3?|tAW$s|1gfR&heb612)h^W$RDy4LaP&<-1-T;{KZ3i z%9baZ$d8+wq0jqQAThE=$#AeS;gkOP^ACrGUq5ajPcNwhJKswyGwA@-S! z18vGwm)2=uAF^9bM)A9_gh)O-(oOYmE?jKokGy7;naEZ}@l(~K&!NnG-9F6h5O>U$ z1ev2AibCV8rk;dnO2N-aNSM^l2WpEWfQJrWEG&y14zzyyl4r!XWXroUn;y(m^OVFj zKVdTdj05(Jw=qq0!-T+E{_{D=T-M|0{(gSGL zVuevcr`V)QC#{a;_ClJ+^!4mz+_5URtqWU#xX#n3Qe$mzp44~iAL9o%kK7|9l-s%o zP{oUXR@7Y}G(V+Kb^>_FlnWASFvz8#ps1k0_o~5F+uU5sHRHf5JZIATd`={mCyDP> z%a#P33-tL|1?GMHUC1W(EBK5U&}{A2Pk6{ziiE*XH;uIt{M2hbK!Z_0W>LjzfF-)$ zy{S;Sln?<-J&2q1h8@ZYV?^(xMG+^~{T*iCo=5G*S*fTChq-JA^AeOqg*>kI4PA{;y}oyX+v;rbWN^NI0U8vET< zf|D|>H8^2^Qy|#JHI345WpX=SXIV|RH#p~3hd&QFAGRF$LV2*@4f2kGdl)|OiWth$ zEg>K_p*$sgGhP28I}hRNs--38?(S}`rRDk=6Rc&pSpE(;U-3>-_z|{`x$p*%oMOj< z{&WdysDNu(epMZU2pI+LJZ|%|ZbU?E0N{YY7jWu1V%3(+ppFpV{Z7CFWht-$zx9<%1`s#TyjkQ>tp1NqPsZ$)|Jc$IfX|i|OsX73PaD@APE8pTFXAwXZ+b5Iq;R*fN z7;7b$q%DZ3>w7qAoON}My?>S|?nHL6MShz`Z}w?F-_@TUqI}hw!*|Eu+D}hh!SXog z2Qa!KhC)#>nVZ$m|8&G?#ayVl$tU=6(r}(!2jR+hZqSYz;-&u9ude3eGVx81(=>eM z%Kkw6Fz!(m;%G9Qi_6!ADSfwH4O<)T$8e63XJULy@~MrY*BD-qF#H{PKl|0ISKs`d zb6c_zlQ=OPaq&G^C>JVg`pW^2{!p;^@b>1<%F||7%CJqschV+ZPyxF=Tg^o>KfkQw zqu{(eO?_Z`@n5@z-UeX>=G*#5U z{~1J8L#}kXkdl(px`bCOdO=`lojZ)A_dj;DHteQY`|~= zsg{MV0{9Md0l^=g7noU4RrUIsNMDREadN`Jp~MJj-DyinDxABuEgy${|IU0du;a%( zcDMaIhjstT^XiOv-plIE&abA|y1d3|@g896F8*F*SY%T?r_;d0m}r}a(j zaOqMdi!sKlZ?7;c8lIp{&EJP7Jh}s4FvM}gs4F(-vnKG3faMEr@J-D=9PMXjdcbxVx@Tc%=fNL78w)?XuTx?@`7y@y<(}|CJ=nesFRkZ*RICwzv}QBKQ^t z?9yPU?noD+JpL0xw$Pelw`GVUJRiQ1vO}ie9~niBSyB5n%ADyp;Xt1K@3HAbVZC5PPQ8m7nCz9BJ0S6}n5?(x0^_yuWWRn-MLe%tyge9T^A9`#dl(O^<1W zWCekAAQ^Y3bwikS(dh;f(>?xSU6Lw{f*P6hruXooc5%)?W3o&wQf&>R{595(JFJ`= z{#V;*uVb7NfoGhOVUsJA8Ck=Tn(7jgJa;>iI{N2Yi{6XFos?sGc9fhobAwg=-iqn9 zOmDCJCaF zPxasr!Bw(pNT9~S&)SqD>&ae-GM!h-<7Njl@ z6G1$N-gnzBxN;TB?IE1M*0_JAbwiaw`I=PLC;G_}Lu!1?FDQqtqbxix{j2@v#7urA zz6OQd+f|REa|6<{y=4eC2JZd)%o$tvX7M{-igFDU#(~eOp@aq|y>@@+;nLt^@WSXK z1RDk$-}3E2h#(LI2!$yc5Yri7A0+4O8=dbkye;n}|;wi_<$CMKZu(axZ3z`fJw3!%Zwf z<+q~pY*!mO+1=U6Px)isLbH}A+7)9X%nh0md0dY~<#UFApv~!ia&VI4&T5e&3N|m# zmDWWe{#ulr?F3%!F&gy9>N{8cd(arwI{ME$ti;b`;NKnEhjfJ{ztZA(dEhXK2Z6D&e0U^hQz~``$M5$OP zHZ6SMxXj#jnR8Q?UH*ShN!{50E5Q0x5lqaCB0t%Qw(6|>0>CIPC=9a ze6C?sE2`9G1xcsFl6|!^em>R{K5W(@%7xk?>Y2q-Ki6Q6FgqMtQuaN(?QF!Ya*k&HLT-r zX#+=G$g@w1u-Yxu5MD3T>^4JJwz2xMRs)_w1x3jq$fYHJ$)y>;+P>M>b4cXia}28Jeyjm#Pvf3w6g>Yp@jSl!`WHnjM;}!w7S(jsC6deJORTO zDUW#mwpxFME$-F&_!q<6@9ib%8vC3k=zd_I5FTTSmsVFFL?#Gm3mn5cgw_&K(Xo#uV0J_1Q*~+AXYY{ef2 z%W<9#`Te8n^F&e$+oIj^zcc)Hl;5K0HKoU9FbMX$+sxHpmQ2h;emth0p7I{O`b-8E zhqWFfH~=#Sxmz8#PW<>5N9h!L z2#}c8M}WrcI{AXTlmPsx@!We8{RA-i9)Agf>Gj42!NA$VpFe_5uN6(YW%Y?kYRxcO ze8~Zv(j7TQTzvu-lW->qLAF6m00vH{?LpZ)Idt;_k+v{?W{P0 zpSM>MEnW)t-8C^F*nng|QdO*K7lV=z$^G#1*Y08E`dwTb1bF#hfCHSEO|1J;!22Il z2V7$azk>rYg-^jGN-h1IFj#SMyWzk>Y4E#(;NUe%JYf3$>C;2C#rBN3#=8n-e84)8`Ix@< zIR)GQ%L{FTK*4IyFw6Jd-B+~3;r)2@h7z2HaC+TzaM16)+zU~}2n!4L>k2Fn#XN+?*8W!(ELQ1krh~eR5BScJjNro3v17Y|0|8mwwG)=c;gA zc7}GkuJKAIlgxyu!({c$ZaxBO1!QW%{5_#TN*Me7T{ zKO@~~kq{z`bX|je`wjgjV`hL>{;^&&Acs2cXX}<2(YA1V=iVp*n)=)ArG#HU14l;# zsjx$Dxg#DszR)eW5?Y}1OEAYK1=Xfq#T{xU-YZozfFrHkM8Qq`7 zUuF1YHXO^t@~R|l_n{Ykr!l;~LB@-$9UF~eISG)k^)ZV;;Dws2+-i}M7f&a53|ld1 z^Aj(E20x!B_1-jv|G3M~)OXYRO58s=_a?=agLXgC+Yf&mf?5fcQF;DvIYI>+wC`ZO zhKTMgSJDwj;Ss6G6s$tbuZ|KR@I8zZY?+OnohHvG{L%r&a0cN(bzL2u3EtRKKrFeq z%)q!CF#Sf(>uDQCkBE;4$3xZs(AWndVdvy!8JV9Kn_-*jG_D}ERs0bU{K>QiJLhM} z2bSU$rVD13sk^FYx?BqZku@gS^`zHpi4T(Wfflv&t?Yp|8eKFOf71!^!4!T6bg_xM zUyS+#ktMf$%F#K*8VDrRxWQFjSyVS6n0BB7R<|(eO9wPw9^2>>3y_Xg+7{!iWYRo5 zgy<7zjU5NRZAvJz<0q--8n)rB$kgcP9_gGmPPNyVJB6P9G=zN5x(N)=I?8nj7f}0% zGXTcyrxSZ1h-FhHpmfaa@Snh?0aU>uQq?0^#8J=x8=Z@GTE~PMK7@y%kq`xx+JRn9 z)wRLAx6JRsHY6huGvu3+^)NzAAL-Nv=|Tl{u*a}bl}Q`@f(z*E(M4ho)kV# zX=f(vyIXGeXhwtx(Yd;+H^+%7n(>nmf{PPH%>ZW`J#x)<{eE+GJ5gZdYc*>EhrnhjTKL)p(7nL1ksnbg3|M00;!^2f*cupOAVx7) z_g=kL<77hoV?ak3^d7tLFGc%(-YyLaTsrE-{)LfD08|RO38lUUXqjHP!=~wmetKDB zAdAk@?e=rtU9=FiU*~%H6O8~=)Lo$eqG&s{c@GqR{vX59&ouiA!g z9D9p1W?`1Qg(PNSb2DRmf%IE6owvWe_M2m8@^B#ueJGIi-z4BL;=DQ?d#RomkFU?k z?tT$RLt1hvNQzY=^xC{I=+he()$uXkp}k1ex#O-bU1`Dj2t&2-^(8pI9l{*!_PRz)hLyw<$kC!)^0#Q ztse|ff&>EzK%kXu{A*Ou?K%TL=VkQmoDJ}XiK&@Y>2b#qypFV4irF4U`# z?4C4yfP3ssK7MR%aM#53kNQ)gJjJY3FOwCMh%w1FJne2$uBYenTk7rN7ieh&F^)bI z5<%MdYG04l8;}24$m_G=tInVh(Y672G;6CvA6$N5A>J8=V`%i{-P7L4{a8Z?Y@X1X zHGlh@g)IMw4tOYhGh=MxtO8(PQS8f8YbG0Cj?O~k9d(viPt7Bdq$&b3AWpK0j;#DH zNu5O7Q?&sY$bbQVxp2E&Ro#23AzJB4g73hh^^i@;x0m5rK_lhpsKv0g9*n=QAGR2- z$b4E2^GY={h!dY6K|Vy2-S=|_2M>_7 zclM`cjF%XND%meH5!Z!dBbrKj-v71BRXcCZHm~HOz8^Z=^UObj)`DMSsv7^>%NNNJ zwMMo^fM8=$KBXR*oA>*iU`_@}Amc?JTT$JFY4fu`7EM-8e|9J6!dyaSJNr{P0hp2` zJ6dh5J)_nGs8J()$28_4O^xyZkDl+>HLls#hHpo2_#y~usVrDDGo3sX*tPpG7Ev7z z3k~k22t3fMB@LDyE}{LEbcCLiw}}?Nrwzq-L_aM3e5=gTO))`%*Pq>!4B@0B0`m7k z7HLw@?N;k8&xPYNMS2ZFYS7mqVU*p5pV9}(!egaWkdq5KH~!@6M)c0+dm&Uw)SJG<}wx32Cah>93-7JmkQDAl4Vv129S)tE-Ji zb3da!3lKWw{C(XdtbtgfB|F{HAKC*{7#hoD!+s^7RMEzH>OS54?CgT2ALil9D^5BF9Zv(HO)Wd-AlN0B?gF#0#E;+ zrD?EANtp3-!%Ugz^dz#pa(0>GPf5;cHD3#VcSaBnE`k^dcgL)k?}`5$M!x9d#YL2T ze`e}ekf4TdJF5a5d)S)J`?Ryyc%bm#r>&k>US*;v?IR#sC7#HG4Rq3Ao~Yns237B+y?Pa(M4l-xW03(_4kE`AqB0WJC`Mx^$F^vOTBQ|$5um2Q(z3S9Z%quD5 zHJm(_wzKz$st?Z?PHKhaKn_uhI5v}Y^@9-oNgj(tZ20|m9-oh2mK=Pe087K6;^L*T zg|Z+(7wh!BE5oONOiC#f$@Hhu{(52*6!A(_d6X0iuih1q0)IMBx07hL(ShN3Zd(kL z_Yo6l&v_}98`K>`5rmIJqr*QG{MrB#)!9koE<5oE^2D!3mKe`QD-c>($-1*7LWfwP^JyY$DfG7>>NgX<*sx;tXc~%;m z$qMv{Kpj;>nyR)v28u6h-4Yjg+8c*ryN6@JLU8cF(1%Y;|zMtM`QYUf`8c7 zYf@;6<;G0jIvVpJ4k19Z8PO5_&JY;ml_Ua!j{`ALK9Z%?0SU^9b}J(l}z z5~P)FFp!rgLr##^-WP0ML;#+mBP3F_OBM{q-LycE6JXm9PpbWNMWfw8!iZSFaeG~D zMwCAS#Hdkvf@Jjx3?TCUWgraB2r!Yec&LzReAllyJwA#v72jH;9&lF{qd#h5QiMF* z(7UC~tM8YN;Z<=4Pq~tK{a+B7J*AAw!U}J<6u?5QGWvU9<03oS8smwnt2^ZZj$kC@ z0-|>~lJHgLq%_J~q2%@j0IGKSl!qAQcg*4F z*lvqUqBrfr!2E{qd45heQNP7=`=MZ6i`?zXN=JI!%XPe{$?M#A35v*FS3s5CGW*>_ zJD>~3Y$7v=2yi`mPt8IjhhQbIFf(p5uZTOwYIH^Y=htG`&_KiA6 z^D_4YXtX3fkeAk;eB(d35&eAHY#_kG^yyQgRl=MW+&~I&Jjd{!juk8i=0oZp4NQ36 zsO9#P0V5m3Iw8sHLN@%qy}4FDb#$n=ZzCiR1B{t-GXn$|mdtyZAPMX`WQiU3g_}UT zim2Nz1z7BNV}^o`S(Pt*{WU^*-1M<{d3kYsaz+uV(ra3I6m}VJisbo+F5i56S(6oH zyF!QeFfEYUVjX(0TkEoshIuyYB;WaXS^wl|O>>T>2S84g@jQNkpinB&IRH0OWB{p{ zLb+&q!g@|e#2f0-Uwd7nwTyhv1a_7$ic*~?_x!DS|4pb3Fd=-c=rrB_vn9tqi-`MB zzc()bZ-ZY!Z}67@*_Q4YL@aPfq}Ti6?kIA`tA-dKDYqqQDYVJ3U&CX&#eZ&ERGTM^ zjuuNDj9f}N{cZAnMFePx;qy8pu3q-kC2@laIaC&mNy?O;@7F#eENp-x_prF>*}xqc z+_j?)&+bR4u984Rn}--=I_Wz` zmopTR#}-Ih??d)Zt=G_B6pffL=2kAB-4?}^Qg&j*TKkkilpI%Fp*RL|3yXVzF+D0M z;V`l4BR+D8p^5VmGt%KE98o%LbXgUxC&l&rbX_ipEB6Sp`S;#T#ZLtR2nzg2+jnq& z_nSwQ*dt*!QT6kbPM<5xGa~RF7|Hvt5tc=9>1~jd9T_H&YZdq|UtkGC{?X5mIB4?T z$z$JMiUIGd4#_P2VsB{OZ<^Ahj9>8|D9>vP*K^3$O;{Moy}g4G?EqmvYX(LA?rOZ{ z&Qtjuzy(F3bvU^PI9Q$Aten28%#|hD8j_OG*kFveUYMG*Dhx zuOP?_{G8G5Y#MCv#tpL}#jvfMDKY@v_UzN05dMk>rotmJ|1lT;7}u|dnU)Z>6M+C> z5J$92EX6Px1`yHtih|v^I3I0%foq$rtTr5-#t6vb1|f)ZNK8LHaAgL)#orOvS3rNd zv%AvSuxq6NPq@r5Da@CFwYe5jSDlq+Brvnx*CzXFzw-S`!>7Wal(NWAH%5ZL)*sB) zcG$mDkRgt1fhX6}{nW={U^Au1{Td726~brGK`VRi~MO79EEF z9v+P4^b3AE^V=lJ^AY^9=c$C)SwN;dL%&y2QBh&$wbO9CNi93V3~X;WSTS|HRRT+I zj(+ji-;FrFg<<9@7kx2g63mD9FH8;0UalzJCbT^(Q(2CPcEVW1#EjD#y z|KATJ61i;dh_&C~fgaZQiS(w&!te3T*2yq605Zo-ZBs;cwNkEljceyf=d&a$>VLn#JoY-{&2)Z2nOU%GI#L31&3`t0 z9d^hq@%vtf*MX<)A9J#RkEtEU7?)oE^LM;EdkPZld`-$ys_Gg9W(FKCC8-aceV>Vh z#GgpM!(>6z4|{>!usy={sq+36OcfQ&&R65NW=@BE@G+%(hlD|!pwchLX&39Y)}F-n zLs=J0OhhjSfzCvaOFM zKQL#}HNPVOJ-4x4h16l{;PB(J*r+`F?ap z4?HU~V7?lM#hs}?4A@~--UmvP0g|RBnVih}%*tNm3@-ayFW z^b56C=L`Mx{+{prpupi9HN^Bi2s$-x8S-u^{!v$Opl58alS~1$OKT=<-syW4YLSu~ zzK#G!^wkPaQRv(n6;2!o5|ChM(58u}%7le-rD9!%!?b!!T>RJ4)iM{+Cm1cRTdoQnUY%`5i_Mk2|RikJEbI z7+X=>WZsF8EEZIatlO=l4QyaKt$ECiiPB9F zdvqArvn6VKtMQ9b==PpXnIqjI6!2}~0g|%aIFQCRzhj`C5CsJ)v}TL^3nEnBQ}Mc6 z83tSAhT=CRn&nVdjmW!~TUUOe}us>R_Rwft-q{T;IbE5cD`r^R@BT(82JSlqUEpe7Z7+_w__a*Im8E}S#FOL42O9`T zi09=P!v&nY*}+aSb@^2P#3?B~Uf)IQKf)PfqcX>4|fzGvy~)<1-3@7=TGT$v&dt(SVB8C(~c4ED#Xyw;GKJ zzUh?C?_m<3E6~LCDp4kO#_vfYgzdWfm3}QjV;;Q&dSAbiD2)Jf90k)Y95C*0Ri*d< z6T}Te0S*mu?zg2OrS|Vow@^B4t@bZ}eGSiqiz#BSxzRdUzm5 z#>ST8*tUTTyiiiQ&jk*4%(ya19Z=BFeyl9^zWJ`7p0cj!To~sIrTcGjQ6IW+kV6<* zCiHJ}z#{sf#Oi+z>k0+SO8b}}!@d2%(YEEePdoE8HN-9Fq(hazV&7XjGK6dG2)ePr}Y z0ey=USkXA4^ES|JL78o#IZ+p{2m>v$gg=Xlx>`JuY!1qICCu$6w-~lT=wy|49yT7v zT>So5w_O-ecpuH&KNzxUqzu#N$-*#@{8xa3T*X_bYv!TV@;`8pjx56uUw}yy`I2W& zQLFPW<&%?z_Iy0~;t+=YWRCn$`Gd`JJon0W%Oz{9L3F(73wiW05rUr>VGt$hSLcL> zkb-kP=mofKkPcsP z29eydBEXa^b4aDisIZZH=x< zF^v<+G#WeCAaLIgmmJ;z!N@#eN;kS}R+4Fu4QT#!8e$}jy?puuilB#QSYyP9 zeYN@;fe`r_b3z2vRpzo#0mo>=VLnaRv^iWP1kp;|ESKVT<1y7w zUSb{rr4-vxXhn?L$3`n8w2uLdD2-pjF{|JJ1$iKaJW%)# zX9bW=EN}t^p4GI3+%Ryt)ri{w!%uzu>B~U1ro{Iyip2lunP4qinrfQgC7<1G*~nwo#^iK=D)L_!VT4Ab8aS^tGObHZg&Yx) z30>FYpUUxAA;^99Xelk`!r*pK_e*TQ_pjzCQMMd+3qR=R`pHyLN`~vjkfW&G3^LMD zDGR?^yEh*s(ntB%uk7=1=FqwyWVw^2Irc}~Lq9hbEQAr(%#hD%n|W#YPhu((n8v76 z^^fP4iRJd#V301$IaK(HJ+-Pvq~QT_U{q`cF%ZTDMe7PfALtR;)M3mN>R+zZhARG! zZ~|0Kq(R-*Mh~wOSS+P^tMX|U&(?u*LU zC3E;`AX6;|G4)8S#qJwj=U?1Ux6dO)th;`H6S2u80fvNPS+G%ItqrjsvEp{IclXW= zyJ1v;r_N<;nn?=w_5F>;3Fp`Hf zaQ1R>NAZxR<^-G4$U=w!0~&n-hCrwqLIU2re7o)wJzg`W(yd@m#fi^DPY<)29KVMV zVkxB^Ptal!@D|(j;t(hZFwB(Cf@O60A4wWLr|p+aR& zN@~iPPqJva>62;Tg*2;$sFEX{Y%%_L#FXytw?76*9}BH@ivVr-)5KWlL6wBvoR{M# zAW8%WB!C?YH6%1sXA(c?d>2);8m{b`cY_{nlpYYUZ~X+bo1v%hla|4ER^x>Nh^Y#= zP^oq3lv!|fRwHOFpwsoT3EkAnb67uAvZCjq-xx0pC>j|e|8BHv$NNO{B*I|nu*Y8h z!-zs1YL$|ZuK(Fnv4A&>vEo!@jmad<1^Bx2p@QJ#+#k?b0h%j6GXw_UD2UR0E;yBT zgwL<(^XR>x$p6#acmGozzW?86*n7|Hh{#b{5htQ#%gX9l83|?YW6K_q?T8{Gn`9iy zOrntOh$MStukWkgpYgUp*H?9LRwBfDh~%qiRR=Fx~mElIhQp6UbP z!JP4qQn%YqDiEX-t(8LwGJ9vaFP8RvZ1fmPuE)Jy=GCGq9yj!7j@vpSa6)Qu$`L(O zfRI**ck1^)A2f%_5&{>?o5zFLjGgTuG z;-2K2M+E9{oLpuZ%Ir@74-G0l4kI_%q1T4k->M=H++eMHz9_l2Ba>#W!s=05h<@^8 zM@-Erd^_ux`^C$uhx;`bNK#fhOMaZ=JV}+&Gw{-)vgcYC3G7YtvNN;dUZK;I42+p- zijaP%&VVFz(^||C^AB~bnO{?&?s`3N{1P-LzV_>wAU+bEaMSXl86n4e zszM3WT!?gg)6l?uA&r7fSJ}FG_)&18hr@`o*tVl}Wx8GCQo{2R7k}s!eEiR}dHk!q9NsWAM~-5XmZE5x43rnCn0A~(+Rca}`V>R#;K;Mn;hpT+W5qukvA z910paU0IXeah~$I+2e`l&g|2Ps~|a1nVoB|R4cuN2Hk*-uBC;4W$^-}xsh%CL%>QTcwRbaHKu@nMO}V0T$V z_4KkG)e)_~PfxZ$|DNSi9KjOcy1KG9;Z2KN?p>E;f#{pnb7n7|OGTx~=G;pAst|hE zp+bCTiosx8ju&2$9hY6cdzvxazDj&NVWK?iYTt^B33U|9xAXUE;MAP_2h$ zH+Y4-mr;aI&{w{^F1jauc<^-Cvl|hcNTTyylZ%myy)E_j581fT!JXTHLr$pn-eXz&Ogp=G7tmHn4}H-`kW zc7BcOOEX;YKm1d?-M+Z9rbhTVAHz?KZH%Spg7?IJW_Xj?cP@9S)8iZ|R^lB)AA*26 zY<*(lR<5Hi#HrWzZDtSkI^AJR(akrV@JB>&(y&zMdjczHq!wVMYP^3DXc<4T-<($n zqlBS$fvERoD0lse_^OAv_iGd7OyXC>tzl{~bRL(yII2g83~XLr4;l*OxMe}qezcPA zjm=w3L@b=XBL<6u<2Q}$i8|tkqq8UW{wfEypI=pF-h5TyO7Y62lhARgCznprdwjs! zZ%e;&SD>RE?Oe{L<1)HXf* z3S6~m-rs1kEX*qHv@l8_1`C6?-<*7(Gl8SO`%Mcl%MV~=nt{&Rm5GVv$}a!sIcpeL zMdAD78@YHxx?7#4dEcFrIH=Hp`^ zfz&u5-;I!=Gt{;8h3=X_gKuhH^5M8e0$AJd0hb0q`E}sl9JxeZmSJOg2u3ZRxP__3 z*^-Xf9?OwoTkSL>_p*K50NicjH}{`H>!nq8=>bivjL}(`=!dO0YA}56^gU+q;#$K( z`QZ%z648%B>K$_{ZT^*Q6{w4vdHJD>5YY1SLlItnvP|<6(LfPNKgGA70ayt=RaR{_!C}(! z3Kvcz=-iI{^^;FQ**~XrCFKB>BkNQSp)xsoZ(YF=u}F*MmK&dFivrqt-(b~RJ;yDt zJh}0s-~t0Jv>H5#Lj`H$p4jwuBhrPz&z9U=SU~r)Bob7sT-)t#1nZ|93=(XC2UElY z*MV$@3K0>JgKT#cMDR%p-8L{VFxCH}M#H89B4q~FrvmQ8SikEIF)Z9yZ+#dxzd1Up zP&SR60JkW+5tHjJ=_zTQM=C^gmahcgMO7r_%4`AE3DO8axx;9~)h8;}YiR;+k3un| zINcn*t<6~ri>;%hge|^HcjIWXXiQI2p?O}&-!39}uZ+k#QX*)AEY7iB)uT2=81Qh@ zb!J1&EgunQ#t)&4{nQ*X0XQ@HH1)vn& zS{{WyFabF^P)>z~rcg{UNC#rsjc9DAW4*=iFUMApn`r~ZpKpap2t%E;;WysXj=0Fm z-k<_QxxV9xgk#AvszAX{JhvxH%T(n>xBY2GkeEPft(QoG>Q>!I2Ls>SN&$SpryPg< zN4)&Q8|)~TT5Gi*^7*azO@$l?+LTx&OAb=ZKir<+K*=`@3V_5o zQtP{kBm)TWqldlbA@V~DjzG|DeM0gTJ_Hv1EF5cyO6COD_EqLBGNLvBOX)ko%sqz; z>e&hZ`w|xtVZVcly)@+aNPT^3#1`R$k8! zi!exq+YtrkQ>{u~A)kxrR?LY^+AOLAI5+^fA29t1Y=nw8&^DgmJqi^nFkNeAAl!bF zV==)}(f^Nixf%kbP@6+?=`t0Q%V5W9Gp~`|oA_W9f2k z7(TsutluHD4erZ;lkUmBkuyrLfZ#+;R6gGX{F(W=KHmoL3X41FWPN> zk#fvFh59jRfXly63?07-4|_v6UE6*{e|`lo;2hucg-)uS;T9LZ8^*fAy?<(^)#l>e zD#dxGs)DurBlInbJSC6cDNHC{9!rOCZLQjx#-sCR=7``xh7O~b7i+xb78bYh5mM?8 zRo4#xv!(S`ZtVtEjLrvx|6@iCHsAi(hxC@5084P-8o6Te@BeruejXS zK!*b(3R`58kwjd0zkGcDu{bRgEJ7krgHJ?5f$zWN9gsVlWlI2XM`tq&-X-cHsGWrr zhnwL&s{bqV=UBGWdiVomy4J>Knt#79V}5l4Tjwu! zhS*c{|Ed)5w@3tKGoAlJU)^etonG?pqnWgB4tnd)Yn5u-D?kje(b z%425@g3G_VOpr{o5A~=`)U&vfs2J{dZV;>88I@r*7~5I|p4(kLsUUK-E{Qbiyin|XWGDUH(y!nQrb>3{#JD(|fzkEF^xHOqLg`S@lm>$X z0*^`~U231}(WmUKX{y=67Pnzs_rQ{f* z_Sfk~jFC>)zszz)dZm2H9^2cQHqqk1h%K^IHQ!*DsoaeZ=eatPd~c$7ZLZ_<_%u%D zh2Vc~njS}3HC>Y$8W{=HE!CQAJzF+;MgC_U2-$zYHv|cM&do$6v#_hD%ffCa9L_W~ z+*2P<(qYix1BoPwS7NX}^MofKh+nvBQ{>%}hSwjFn>n!S0s6^_GlA?ja0)P#6yuYy2PH zMWVyt6{6^O*MrVUhom_nuzf?wl)sO!5LV$tBrZ8<*F}Ln-K)Pk07wtTOS7Frw9Y*o zZAQSYUX$@3k363YUXBKD?9 zB+njRs|b1c!1eVlF7)>}0+3_+^+-NK$!zkdeyaB5vR73E1N+LSfH#-n02+I2R3=#s zM<4XBzM%2}ZvQ4SC{YisEIfr|=+tg0ap5nlBZJ}#`FUwD&kT5M8m=KQKfjf52co&q zMIiP>C+drF*}d&CcfiW`3r-7BxS9$e#@VgyVs2J|qlysnc1;vV!(GS8vD$ZQ6fr^TX*drskwPR>7SLz4T zWAQ)F>P^q~CuYu0Uq0t#U>*MTG5|KSxuVSwNl(xI&FkgyvqYV})gliW|A|z+3>_~X z-rvreN_yw}zV8ToAFNQ1@&p<286(`nSMCtyEwyT{@TZZqs$ugq?gDJVJ0Bkv+eFA% zV#%?KL;AncpW|eJzlopch9fCzQk!h_FyC1$jdZ~R^;()U&NSt>^|5EE{Da`E6^YI>0P0Bab50mn3G*I(Fl6TU%al=tdS zz!upl+2-E8M{QKu_xNV$18+ApFDt%xUJc23PgpL`!yh8AQB+b~zOvc4yh8ZGo0nb; zz?uA$KlT=uW9b09hD@LWn`lbV>Q!^UnLqa{TFKwPUB_RZOZ!;z!OK9{bR+!_uOt^T zuOD;EcQ5`}zH%|@ct;!iJRp_FjWmhaEkLPoa*|0q4MwiD_G&QbN1^iD=SqGy0nx$?&X~qFj|>>x-M`^%zS<*xc<=PM@pNi`CcO~v2pe5K~pi+x5NrGUe=mK-?}22ZJ1>l&Qn4$v(N z?T)u;VR%+|WWE%B6t*!KE!i*J>gDblVNyM3y+soD_T2tUcL@agM_h}>#;)3joKS*T zzGa1|<*$D8{U13v?x;zg%E!fGqz_JisNR#W{47Kjy2`V;%@Gg`LXU8<`T1zR@M9N8 zfIPSVE5G1fS8pdAxC?nZLDP^%k0rb&kmY%TN8$d*{DjZyv{*czk`z5*Fb|8MzP>GZU9p)0@J6DH@dbQDhyP=&|{w#8kiUC^lb#Ve{{ZWCkw``!I#MRxO z`l>}qvDCo+h(;*4UeRPkl`>Ts@(=87a*6H&a4e38rJazIC*lB8o-3~tt*J+T>Zijz zqiwh`G8in64TfQr*gTl&9p*TjcrI)>u-I=(^+#^Sn3(j&H=+|T45_;M-r1~zSAWPM zp(q6}u+P0^-bb$nPi*OBQ(zxn8jEd8ZdY!t3Zc2<5g;fnExm4hPu;XDDv~T;t_|9q zgp+iWTG%4urhjG>yc^Sgk7jks)jV5!zcM)(m!j+yLI*lwXw`}sCMV*XL_zgDwCfvPT%(j(9e zXj`77%EQJr_eZ6dC_Aa}iZtg;=Foq_FV#l!$h_&nUUO%>3fJMl6C#vQtuydn@|d$P zT;ygsT>*j@whQfJGd6Tf9e972{W5h%o}Is(&Ic%lm>l(5PKCq-$3$}?zRm|4PX&6f2IZt zZqbC(U%#PqF%+u)ckFGe+sFrVTkac5r1-(fIoHI+ZiKBqnBXas0Rn;O_nAE0D*P6UPzv2h zkFGH>9PI_%Mem;yV%btoj@#9oXecxpcvF3asHbC32A1jp+r9sWuJcwAayL2$0|Y?w}yRBw84bxe$kWPfAOB z{B`^M(uY>H>($;qF*vG z(T+plC~8Qjk*8!ZOrilUd^bKmUc7_TAhKM>?SV=$j!H+OXZG&b*tW2Q`2e8#O(}XD zv{Sy4v7ArF;qVB835^mTMUMp9kWM|sl7SWdm@+n;%RIf%0fF|&h?@(*l8MWT$u|m0 zdiZ?Y2=u&?%dAI=##~!mMb=s9Gc#&ZhIo>hH_#46Q)9_>28%z02?Nyj7C3y*VD{sh zY?T1~g7Js-zR6i$me1ZMw|T(^7itk9CUP-apa7q1L3?wO{gnv15h{Zb14RR`Fkeut zA!6HvrvH(=oUEWX0(mR&+5`n!R-_9hC#--le(R(`2M&JphCfsMoD6;p)b*)5IB}a5*n@%r1(l}Tm07vw>-f&Lq4{|HD|HwRZqDFbQM`h zci_B$k`u@%QbvW+ocG0wrd{gB7NBX)5m95VT0h9H2-OK>Y&tcSBROF} z!tjwl(-s$QJYLj7K@pHO7%p|@cef&AjjN@r>i|?fhIhYWaZc>qIZ`l0Dir{t9;|5_ zO^o;6*{W_uSmIGvdEVO8)MFh$l{bW9L}K${Xm-b2UBh)%b3Q(|@~bR4o9+l*5!_T& zj?5p#MNp&j-oagek!vSdIyD^`w>G+;Dg5>+&7(R{7Z?nS{7 zm?On{QCj{S!kz{t-hgp9>lG;0Mp4#H`U&9&hhX@d;P{xqTck0%LHO0-4X-O5Jm3!% z_ULGyDVK7o`35oZ46CY5#Sw*r^spce5QJkl;Dzoo<|1(P7w~7Sog-6P7>wdEtNfuC z&BV%<`vwrPaT>0uY|9xkVo9D_-`>Cxg#HE?5V_p&<;#32+A#o*>HU!3^)Oj}Y{v6i zjqAE`BNc#$iZuXxI<}QG@9#q&I-moBo%G-vd6dMWh)$le^uZmHopFDg&qU~$Zo*v} zlgzsf=@tN0pLiS5$e>|1^)rkwbcYByB9|$E#r#{}%(4z-II&nXr7B3D&cO&Ev9dE{ zs!9L{K~?iXVjBf1y5I&Kct8w%<*&ilFD8~$h(k&Z8(qIB6}&$X^3=05nPMg zT2cm-G*}#Ue3BWNk^!!g2sd6y(sVizKXI@w81I&!mKxe6@G}BHXU2?z+ds@M4@*JW zO+SF5rjFfzn#6I?e*Yz_{3{<;Dt3xOF)%wT03*d#a+7P0pIp4wPqFP0vKKBP@`Hl< z&*M=|Q>@Yk>w?{Sg(7yp`x)}NhIRSv>+!@y!0a8p)?#n!ML`(WQaa>_Kx!X(3F4k` z3%~68q^8K!sMwKMY-3Pg{PG6BIejVy0#*iX0$S{bYbN*x(2oX`dF4;bcgMOv z`sh|-Sg%jt*X#(T%VP}b!r)nVboG-VFY%iOTPJn+{Na@{k%8AFWx0Fx^(Lkdb(+xz z5=%WE8rdwJSD*Amy^Xfj-K}A}NR%*$D3*AdoJa!o|Iwq_*_$ z*jxy++F*t7@K(UY^mkraEzuMS${1WlCh!7P7~n?&c1pXz&{-4XjE@)@B!J^rB9*s4 zaJFAYY6o+>@d9@eU?G(m)SH&bi(*P4jS7w<#8z08x9`VTizBgXKxek#pvZ{~|Km!# z%q9?Ipl9=3y?m>~^7v;ZOXhh!uj-rey{D4KN@}d#uE7Ql={*21TS}o~X<0(y%LHwb zf54uJ<+Fl;vA&W~8=#XU6h`+p-11LVOBfiiJ&254+(_TyJmyZB`@4PVu^pk1jK?Z`Xj-!v^1q75|@|Zf_I62MLsQSMmDC(2UdR%Ea2%3(@xi~uPv^1J6YD^g8~DDaBzH&t zd+kP!npd=*z;H3P9}-R;QStP8*ZfBpFE|0(O=61l(xv_@8LF;syu7jApQ#I;@0|Y( z^yN+nhF>y}$>hItTC$>!iK-qIO1aK_TW9zbcfdphtKL?%((tS`{GXN;o1B4eXTc6g zPQ&W9-jxCb`FU70_^8j`_AB8rQY))oe)sDODuTr0f}6MBnzPUyP}ul99|vL41{+p? z#a(GiVofnG8;(tJ><=SyuY9p#J?D(LU;>9h`=Ne1;%5&p8{n$s<696#IYmYegT%$1 z?B|tyUw7X>JUm&C;R!W4;TLDrU_|!yb3Bz88#ehY(-UAD!xYKQQAwgx6BYymy*y-? z_}j&tP(hlj&kOi1Ep6ZVrZR&8E-d#~b(PbvlKUxIVRwsN=T&H8Lb1Pn_$372n|xvu z8Z)Xhe!O2v=Lb~OyW!y3mVC%lfDc;oGh_{VyzxR^o$v#w)GCA~g5Y3)7LbCwM7V@)k(A<*%at^+zaAM5rjZrQ zUe)T8tOFvrPnzy2!QE&u%vKN z5FSJRt3B#dJyEk^nJt<{kvMjfX{c-=>1HY~bTeycMWIc}5UdjJMn}AS#NKRpJr;XO zia54RG>)%?5)z7aTM9o;{I8i1X1}eD_kT=kM_}fYtSHAsIs`uIMK2Unq?51XBFw z%HVHOS~{d?&5p04*!7aebr*h({E?Dcs>L52*h-N2^dAuq=;XwT6lJ+1nVI^-U$3I7 z{5q3c)Nlr97IETOA}skF`#-h7Fj%jUw`>bLY%mNm4&y|#*(+)kF9b$OmD~NPwhvVRUDAe{-UI(vkT8HF63*%{ytZv;W{N6-fY!^bRS zU~;eKpaXI-zN-d##((E%QT8_cpAOF&Selo0iY01~eZ(!(c`6a8g+emydN1KR2 zDuaJ*LrJ6K4LF*T2m&_xfbC-VYke-ieJ%({>=H*fE;vu9ec43Mb_I@^1jVj`<6yOd z3PWbnx>mayDB%kuxQ3NJY-zO3h?Kkh0Eusa;kGQ_2TqpF-a;{=p)x+ma;WTA&b)(k z?EPjMHU&8TYJ{>lX@YCKPO15IA#odLB2x$dtyfu=k-~gnz|~$1w&;CLew?iaA?Tyk zYpq(cb0F)mKb*9~4>YV%lY`x>3U`V3vM_Pkm1%X(aaQv>BrIN>7OQef?_NCkShT!+a9OW^PX6@m4 z*`ZT4Y;b}f(oW_Agqfdha4&Y|-xQ4g_VX4MKV*`s-$^|c2rJn|7KD`*(UR#8Uf1;Z zF8v>Z&Jj`tPC94q5^Ac?trw`kxe|3>pqqV3(UBFhS5%#dPFQL4!$5EQ#jRu>HL$2N zW#oMHW=`uHX{ft|G1 z|4ED@2Y;@sh+NTh?E3Zz&Sz<~__aY%Dc|CZ4u)D#G>mXSB+_}_JmUk#YxJvVB zcJ8wvKRX8YTTCPyRn_muR-L2kG{3HPD*IJ0gbpa<)!USDENU;Gh9_SyG?`-|=gSp~ zV$yx1#+2{Ci@c#PQa61^dLq4y>{(eRqi0u6N=jPgO+-+(qSXy`d10rLOTFGw^r_}|O_ z6_xZE*cNJNuW&g1LSh0e0bX$Nfcqv4aB=&5UJd=c zjeVEoVnRC$@LHq;zI#FMX}~BO3^GXYUzhP)*yRrsvxlCDnycS?3P)Hl-loA3^&GgD zY=SAY0LDWK7tJ2$&@vM>Ny|S~iygl<)-W#Wxj^H7vx`C!J~_r66EAN1xx~b<|LCpd zwJfMzVVG6Fnwv?4|dy4Z`eR@B10E zNlQvdhkQQkDd%3R&4x!lD6?irbI}+&3TC=b$Deucp~P>=?)WRTF?|iQjp8iLTs$5I zCAkW!+yRQiqk`RqIwk~AJ1c>frx zo@s>tX>oY<^8xf0fSRcjWy0qc{Gb63B;7Tn`OCmIIF=S_0Am@)BKRIGJt4mN+6%Sb-dn`-Wg zk%W&{BZcu*w&QabiX4w`RP*XcdakFug#d|BS(}w=rFK`Xcl=*U-X_zz@?A#YYx7J- zQenAFj*68DH=OAYu|p;K;j{Z>I-W$X?VUyHW3c?sN<(YhO^#1!;7B##GofyHSE;Z@ zSc+EyP5Rs6VXtUK-^rfn8SMqTnctsyYaf?H^nOMbcUoLEtbzG>To8Ejm{&L2R?a!* ziZ4}3Ka6sUF*VjPxWw%GhFjIHlSL>clWELLNloh9KAQkz;X07+ONbg`Nm_i?)~lwS z;Ub{`xVPA#AH$4*%=6bYS#d+VfcZL__W2F*Q{$%Lp#B_0Q+~wcYuiUpbuA92y~G~c z=VhIZUoJlQDM%lDwM@cnz=>GwYsn;9?0@@hJsYi^bN$A~}T zWuJK;1lN;4OE=8gXkogZ^szUV={uLr0aqAR$CLq&fq`@R)0G%0VhZj*d?>Yzzq)a0g63pGgXW96;+o6oCbBmb@%#98Tv{Y`KQFa4 zWhrRM;J}XOUC;VLy`zGZNa~WfwvdcXr~;TPe?A>;1*Y(c(#u0Q6B)(Yjf#gbDe7 D{3?Y> literal 0 HcmV?d00001 diff --git a/doc/kpresenter/tut16.png b/doc/kpresenter/tut16.png new file mode 100644 index 0000000000000000000000000000000000000000..1f289c11b1ed44f0b82c65f7b6d6821567f256ba GIT binary patch literal 5864 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 literal 0 HcmV?d00001 diff --git a/doc/kpresenter/tut17.png b/doc/kpresenter/tut17.png new file mode 100644 index 0000000000000000000000000000000000000000..c36b2af831180d8687032f00f454976abe3da1f9 GIT binary patch literal 6112 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%0AQrKz_~q{6=+}{BYb@R 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 W$JsK44tp*#KtokW<*hO*?Ee8}0Ot(= literal 0 HcmV?d00001 diff --git a/doc/kpresenter/tut20.png b/doc/kpresenter/tut20.png new file mode 100644 index 0000000000000000000000000000000000000000..0a9c8c01bf43f0b784eba75c1e1262bb697795cb GIT binary patch literal 26499 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

    {HMZ|XlUet;B#L1;Tx@lf>UQ3mW#z=GF? zG~_b&Q5VyB|BF@jQuNT=WiiaSlZ5GCctUjmkh-Mgf6zzO@vRy0UFLJQ z<(iz7i5on|fGMz8q}9`LtkzL_Za@nC*S{{$U@X!8V3v+&19_;=!u7ty8%D~@GOWdw zVx)ToVUNKYu^IH+(Z6wYh!<4BG(Bo^awO>eA}FBZFUuG#faZM%l?;tEBh!^mtDaE? z`QARWc=$KUZ>QM8*hS%g?kF8%O`3PFmSynSCjB&6`XWv7m`{5A7C|b%!k_h}ENMX5 zWnBDCVf`DGhnUppQr31t7mS0dz_WjA6`KQe_QZ*cui?|{S9JNm8P+9i=TsJOB|2Qy z5e1+NM0XgaMZKjCPqtbNhNu27w-!Ld4ZKJje1c$9p1oxTXFCQ5L&+MiRCBAx@Vy+g z2GT$FjnBOvQ~%4Z5LfD$`k6w&ebdi8fiPfCaA>3yo2 znh~Tz-lp>vYGp^@9DYcVQ&rW}K+4iMYMcdTZm*~avPS(9>YZ^G5<*O!8fETDY)0F6 z(skmshKRIZ>mY~)w%2+%fs{bx1CPCfL($?Ep#0hL3slc^kyO3!#V&z+$m&~Us7Bxs zl)0=N$u?67)yHCqVJ8KWB$ektdr7i(ubm>JGhCxoNBoC$=?PWNOkdNcL9 zte~AybIVZy5eFl-wMs%-;kUBE4q5UKl=(wHBg_+SOf3tv?hlOi%bW_OCsIQ+pjhQ0 zxhCWEayDq5lI4o=c+e3Xar8B{ViV6>0D+x`C<`YW9sIlA6LHGsmQNq!_V!M47}>bU znN)_p4n`e51UAM{$DXKQ>uDnJg;DHgrL!791Ki!+shpWV90Q;fN?PL1rpqpN(>~>x z3b*GX#_&CuQ6N_w{l!hJH`mq>PF<9aoh2x?`Ug@>|39S!UeY)P1rpl`02LWc0*G1uix-gQjF% zH8QCf!Y^FP96aEAGQ3+gf;Vr0nBOg=;crS53Dgv@yd9EG*uoJ{B4fNHc#dJEiwS$v z2*2T3eUF`M) zgTuFKE#rnd#o`O0#_o=uHGm)cSB)(`ZjLQT`!kd$8f226hOR_=LST3v6@QxsMkJ=j zoG0mROq3di!=yog^lpkRg(dQQj5)RZWURKCv;Mz%fZ83aFfKJbnn#&)(G{$K;$zfM z9KZ32M;o+MzM|%6)QlARiA@IzyiVMkb}ma8(Grxk5i?r=!q2Js9U%s>B=Qu@Es_bvw} z#Ym03uZY#yRq@>Z*rulKsQf>ZPKuxalgM#M$%??)T7{(c)$<7{hlflFZC0P(beFz9 ze*(S`f?xu^v-oqFy@GhPRYl$|o^RnTFvamU7Ky9n#YqtBmnyER%v6m6^+5gp_QeSPnr_)P{I5+YlIs zVY7u;OOD^{SLI$MjA9M4)|?F5a07y3JNaEqBwPt2lCf=oYfeTclmE&r7zayG_Wjt# zQP8@i$yp1Q=Gfk*Rv?IXuj7!qhIr!=e_Qgmn^B3LHb&dvcgxDE*};O{p_(*;fgPZ( zR)bK25t=^w2Bx-m}S>|}F<_N7AjDWY-t>^Jlv2Xy!F zxB&BSnL;RD*%7O8r@)YLBrE~?DrG_E2W+LQPjZVK6WlW#(&JIhhccE!L4kz%Vl(@{ z3t*|gY0}6dt)!lsCF5#$kG*An?2k`R0RWC?<(~ERbyK4b0e_shEc)2dgl$yah3hV= z^RIciSJa;7Z0k^~SYRv{nbMa`%FT(A>A1AZ4ui5t(BkzjZFDN*bXVY``DhBQ?-iK8 zg!LoEZZ<@o9IOIOIA6r;q31NWkZSw z+=N+?F|xYHz}IDSB9|5ls%@y35>$s}boL?@ekKd3Y65BvR19`?2Vk(C&eXBiGiU9A)!V9y@E@4$uXBo9 zlu=I1sF8~{L)t+*;Ug)HGtEQdHX7Ez%V#rD?>e9@VpM(8G5io1vNKT9ZAwS8!|H3N z$s1>-T*5f9!9rL+8W2(7!}xnMjoe35Y4O1Rp+!i&W&Z^pLs-O-#G%zo>xnQi&Bift z9b*!xF=Rf<)f!WZf!zN@FZlm7N0tbF?y<{&Bt4{UjD8mK;)sQmn+ai+vqDpf^+?;X zY`5`WdHHds+O;ub|Ivn1I2bgntvT)QSMcZcb z!^hxutyHA({#7a=24>)XxRi0A#@WXB#?{{_t5Hh{&4crNF_44F>S}9vk%C2`A~=pp zaQ|zN_=Zme=@UiN^3eTXD586`QyV$rTuE+wZ6@TYJ}H-ZSn3#KjWqYG(b;W* zao4N)R-@YmBcH<0$QWx>z0x?hwo116M?oCId8v;6*I!Y38Wv_uz~d?|z1kAy!9D;t0Sd%Q z0Ngx6ElXrL&g1VOs&-H5;uS%(N65DoMAZ)V7)`MbZpq7Vb)=+yI_%vYccFb$Cq3_4W0SBuER6?z&@0;>#_hI>vK8O6&&uji=P`qRB!(nt<$A?6(XbehFuOG(N4<_lFck#!y70DWhiO(DqjP0S*0)*mMc>BO?|D zKrl{O?KftN`8*lt+>9Z7Tb^emWkP01Oh$xA73;KQB-hF0XF%?#^aj&ve8v1<|@BHIDMte zCV5_xt@i|LKi%zc3tXQOyDpsEv`lRzu<=jze(i3?F{pakda-?cv~_17&5!SKLUEBw z*^1>u(BBIs!`Ob}JJ?zA$?rEfm;%YXFZ*^t8QzG|4}Ss&MF#`#q;~rt8g%bk;ti{i zzJ!8anuT+cu3rZ?p57|y7$_*cOqymtmcADaKCOS+wQ-vfOBlSIRhaIUZzxh~^fMT9 zU^zDYaK<{)e!7(zAd}c0fj(?@wB}=RI5;K#W7i~o)l)KqFjpW_m!PR+2VkY!QHE(_ zo&Rz0cWjbgPH3)?p6%Q-L+o0ha3=Ar1h|l7r zFRk0p#3!MgX$bqAsp_EorY&_pgK1A*vbQ*njY+(EspW3Uc8g-)Z5QeAN9-?YSM_hb zyn`OTd54!c@k~2V#-P&SH7SG)m=-*%Fx6MOf46?Ilzf=KMOecA9StOF-$rBueuY`e zUlXKZEjj(EEBJbkN&F!v^qF+)8Rtj4w|EBIcLKhLfX?Qs<&>I9KUuTE3SN4oz6={T<`hw3wS-K-nW_JXcXS)kUKj6 zF?Ha$(%IY5;orH<@t4rjBJp_6Tjn_y)qEr#3*i6x{)F&~CH?t9?Aq|T6*H$;__W1u zoDIpcS}NnkqxZ%?;zky}A?6>0)_YMc zyL%GmQS1#d%^u*hxNq@_?(lT!aS1{eSG&@qN&y=aPIjM=wO)#vr7GPtZ847;p-jeQ zLba!Vo0)d@V$_U$rdvo50-q0ue@TeE1-Qh_;OeRU+@QZDN6ecASCoAN0gs(B|~$oyUd7dOI1QIq2g1;o1_J z$s#>*j_4DA*Zpt)CK6B9#j1eu6gGhGZURbD-XG8~rG{$#0qc6esh(}}A5f%PYwy{& zIxlpY7OQb3K}L+{WJ4T7 zYrswX+yXqQK zpl#ksC?uP8>YZyj?=6yUvf#c78RDk=suhV?5_>QngW7y}=s48wAPDaMC5$TSO(Dwg z&Qcy9;Hgk6WTGVx2WYBhAGaSr5hPeiXI(Nbk@x&l{|5jfTC8FmSY!ne2wqy2LK<-^ zE0G~uRR2zYB&W@!WA3U4s_2j34!KKz!zv0QQ74r`?GJuRYZMdnbPdD^1X-!N-mQ5o~+x4f>7nos=KGV{PFCAIuyn3LRJgZY*E6_v;)U{T+>cGqL$ zcg3vMfkYnyowh3NGGC_rCT<-P9gzfYOG)FiT%Pd9kx?%GG}`QTd9XK?q5y!sg3*&E zzewU7b69OW|6CjamTHXRs}17bhF7^!Na)&0aP+B7VAkV zcu4-#(DdHT2tt8wou|5Y(+**dwuvys17qimz7rt<&)ZD@fcw9H4WV>3acvNJ9L7>bLd|XEXaSb>C$Z+ z_s01NsT$~oO%-%-OONk|Zd~jp603f*q%g2UH(BsjXum$N@pQZ;v2@CrVR-k~*E8gJ zsk%2EOw4IN|5Z+2{;N+AtLwRG-jz^`iWn-9Fi+Xrgh>izk)C;ozTZ$c?N@+3f_9Wy zuL~l-pPB8)yhM|HiI|#xgm=mw1y|(wWti)2u+nGmEJx%Fhru}RYZSgP2|qaVmYMV= zw6_~RppI?%5oiVB_LJv@capy*m<<=iD-8=1nQNq#Z`F`zN6tJWz$dEs|KXkQ^22$! zJ&I?nCF>jK9&$Y{;}OCl@A9M$`mlqC`g@Mlf?h@HEXQUq6lWEFJmB4xOs980;x%#5 zJMESq^wQ(=8E5@}U-`*~Zx7=%Tzuh{z)!O&Y|rOG{xJZKj6m0~7iSB~m8Yhe!%jd{)6nhvUw}WxMv88Grh1 z_ z9DwWjwnQD`lh}u|aQ3WwYt_Ink_O7>M-H_X>us@W$}Zs)hP!e!=-3=9JoaIu<8 zUb}y|?R{`u(~nRqQ3k1};Pdh>jEvcbK0jiZzPaXFs~9{Q8Pi6P)laMmj~!v(+?x~l zQXZ#|vqsV} z$HOt`MhEFWYi%~l>hyCtEIGAMMcWRv5kW1kt$p`EcuR_ z6Zy|X4>!aiq2Zr0XYm{~3X=mV*~VpcU4wq*W(5eDn^_Ms?L;PHo$CJmbif(M=|G$Z zs3oN)dR?PftYS^E&!K3Nwm|mme`qEUdEkLGyY-yuOgC8Z#l-$KyFFPEsCfmTlGsk( z!>uOJLdppCf2~MMwB}5Qsj4WmPlG3777ZFG7GrD^77&>~)$3M^e@iwAS$=SjiW)?D zklq_~LTIyi|>E6c8b=9LMq&J;saMg#7YYKWHDCXAcN>EF4 zLzG#mV9G_Qi9N>}I{6Iq=bEY``HJyD6d%=47YP+ar*__LfqD8}elM^W*I4IsCaS5e zZNAoWdUqBq2HFaGR#NdlT7x_)ITWO9m1dD8dFYCgnaD3`LDV5hiU}5iN|5!DsE<%h zE&dW!!l*j1nUMuC@d+R`Rin=RC$i_sGL}j3Gp_pFtlJA5KDAKCm+IHQ^|yJ^hOi^= z@P1}-BD~Zw?NO}o_ns$E)93?h!aP`3zz=(n##en5@8E0*J`b0bkYEqE-gy+b7)UK< z{V0ct$CjH2p?x(g$1{!mK~HX?i!Qo}oaF@{C-dT6He+O|Ja7~_Hoo(uzXJ9@=>~03 zkyA7NuNQzJ<`=J-s*c$mqRkW)bg`A&g%i3rgg^p9+9jeX)(Z;@b5>f*1i6$ z(`Fj$`3)rBZg}s@NIN6*&}9NoL^*x>Va%EP+Ed)=dY96r|L-x zkgdveULDaP7>`LhM~q1@)LFw~{gg{CfjQGdiaL}@a}w3L=ZA4c1hoKk^j$bizv*7h6axNtGo%%zQBqt zYJ|5f7k$gVYc#;6yAnvblj?onChXN!!%qelLmVfAZJ(?2YL9Lo?FZu7L|#Itrb}HOq!niTps==9 zWO8h*?=jIN5y7VGqnE$E6i@W!y1>~gwS(In2;WH#Dycz!@4f5fl1uIDF=SG?!PRHr;@(s?BWPx~s#A}gDZlX@TI!TuMrm(xn z%;*muQYUKP?s;jwRYh?)`4i&25lhEN_K;0_rpA`}8@+_Oi6(D{FNCE)7}_`lohd^_h_;0Dy1PVU_QGMU}s9 z7Rp6=D1a;L79Bgfkx2OFv@-5I{Z!Rwb58hpAE7#1<@Z!uhoB#p6mQ(H@frhATbZ*w zSyPdReQ0Qf115hum!Ni-mGCRxB1QY|xOWh>9y5A>R#VTLH@>mzf=T0RYAV;z|TOjN~1tFt0t%GtXDYhiR00iZ))t%lo!SQ zq`46Lke~DBnnu+$k$ImTRn)`5R;d#yR>h*|V3kaGBp{tGIg*@z`VAqN=D z)+A_}w#>|On79q=I*-EsK3V&2CJ{NT}U%UknrEmt(8XSMYHAmYsF{}EHk<$PIU%_rA z+XSy_Z^|_Y-+P>S*_$d;!ZU6DcZRX&OmzcLj2AV-%hk{ z6!IMr>jBO4HE%Z??^__pL1s|!mT5N+_j68=deD_LCYP2T88jwHV3*BuaL=MO_^aZ_ z{*88C3#V?jpu4X%TmgioD-A)`2JZ|!J3lqx#)|JV9yC{x2IDS@dAT->qCzGQ;xNhz z{kLD;I1ac|At#``RR)nB*~!1MKunNrx#u5sLHjzUrcTXj!4?&%F;Ql)Sn+MM&$euJ zHH(CJI_2m$@g`cyFC6kd3 z4r;8}L$_E#AXkBwx=sDN6Gg?c<+X^ew1$&|jl->qi$yNaGsf1NM_u=MIrAO%W@@YH*RTK?4M)Fjv`KY?@~v_{ zcc|v%S^f$$Qur!N2@TaD$^s|v_S?*hfxMw9(dx+xm;Dz`=hQEWBV>O>0?L1#^W5)p z=CvdTaQ8MqO`ZCGf=`T5P7@2V*-pQzZ9eL!>HC(vuDPi>Sq`Z&siTGkpu#g8fWkm? zi%_^#s3+}Sc2lEMC&lFg0f|WZchm}YyncorP0}Jv3wR_o5M{vq=?C>5e+Wb7XFBt5 z$H?1b`3kU@&U+$VhewchNokff-fScgPc&Mb#XE_yAOc zH~@q+H>#ja?vXUkEeIPgu1$KktR;1%P9~Cb5n> z-}ku#bc}cc_musib`2b2_5;bx<=qjeX!pn|B}XCRwgJvYzac=alKM-9sCtp>oBis% zS}}bEWTWh%1rZ0FyXS9B*ms>o?R;V97){ERuN@OKof3c{A&kR;zohY@4^g$T?vsM$ zt_y4nvJ>@zE*yp?ZejK`%HC}uR#_Fr3oExI>0X(iSLj;-P{KCQ0ug=tn)LMA&kfy; zlHyVTfV>-qx{>&yp(FSKBiINhi*R!YS$#Lk_wBBlA`wq$?Jp@k?+{+DGyhnHgA|aO zaE&_?}cVV-XZr3}SL;~JXr)cwa*5Jr{r98>KR(WJR)ybL0{Si`jt z$X!en$bo3}{z=A5H8Hk7!BO8c@cU#~!1qPkSs2(1?Z9sQ*s$g=Yk=n6HYebyYXt7a zbl)t|d1=qCTy;4Umi`HDUfW*OJjdTzhVW^)*tH#tikJ4 z&&WjQqfc*OMv=HRYCY=St)HDpS3H!n<9?s7ty&eQUMNyO=1b(wlc%|Bsv%>mSCY^8 z;9OP4_8hNHF%kfXN^78+DF4L-Cythy%O4kgM(;w^$$hVPa88yB~B@8&j*EZ)uuHW-8}*D=2O!`<#)HW#K?DQT{~-jDS|Kh@e*lgu2(OmCt)m)wAVhIJhtY z(Zl^+%+d~Wb!J~GoAC#wT5yVo)r(4Jgh;)ES_uUMf9v@Y=ZrRDx3adGrz&;{x$(-sX8yy6siW2kT#p5NnF;H*H?=m2qMh1rqeAl!rRYW zFsVhny0Coi6Quyb4-i;dDFxz8DGTLpCI6b~hbCo!AOx&l6oB5J>ZIgu&Q2W{G<5Ik zEq}RJ1-<)cQ8obTPVteY)`3ypKcf|t19IcPEn{>;g+-)G_rFSUam~(^{V~->W0wI zg)QK&6f+IcAfX->oRZ$*3Ya|MKqYl!D_EoU5744tde|hY6|R;07N(7$LgaVyGfeXo z7e#&-N@vHqQkun#aC>&mS=@(cGJj=&ns6a59a9af&!RM=_M}7dYb5~06$A*6d*EW1 zf!2r5Qz?-7-l(l~X!Dd5zahWiK|HsMU+;AC{1&kFf$;E>2ov&@&U9aSO=0On{n04y zY9HmaBBcIe%vS_o+ei5^MA zxNcTvU_Y7~M$#gtu{~eES+97`*YO|T7}58y3gik;9TR`r5Og6Tv5Y@hkD*kV<`$;} zrv~Pbp`x8pW{cgJ;|mFt0)XNg@f|_l8XOZqo8E!t#HaWIi zW*b{;*5=N5C$uRV9k9DXHT&X=ks3s3XHj?es=Ni8Ib+5IhphbhgvCX*>E`BU&lkW8 zzcVkoplg@a82OiMRQfco$c!kJ1;JOfRs+wOmaKmbWr@#>Uq1SXN$(2(b54!@loZ47 z3i6;;j{01v`rplD@OaG+i|FfqsV%z{xn7L8x-6&(u`F92ze2VInRf}|om@r|@jeq5 zWO4rQ)Uw*jaqNn#@vz%@43^A4Hl$?${kcPdqNzrRGq(lTL8pZiMHjQnVpiY6m6#k; zoUdSM!pS{Y=D82Q3u>6JjtJ}Kt@8pS$l{Oq4G8HaY>dNQl2GQLv0U|3Rwp`hH!D!f z&F-sr)TJ{GBa(15vLs!Lsv}KR)RoT+cEmIp^>@&au=5i6rFNoBbA4tSiXCSK3VXpI zM*2N=IT47bZyU!S6b{0Fbm+Ik>5P(j|4Pp*s?oYd{aVStyR5WP^Z%#97TEr=roEZK2msg@a(D+_V)(xdlj-*})H5^Y=KD5Xl4@daYC6U5E~U#2l)7Z zWw8~lHH`n|8Q7)=dzZm#50u*CU#l8;T1)jmoW~k0NtqLP8owVZdV!+rF)^P#f~$jf z+DA~pa_W@>$EG*MT0Amh-Vt@R&yxp&<^s>7G@Bp$7FXrhJtXR|g2L>J=aYTlE zi+*uVCGePN$RC>-JW!P@){NRazSLIgaHkH&@L86vC*~u;#aH&aTop(U@nunN?iWEb zdcx+Oh~2CA`JUU}Hl2#8K8Lbbm)jRb8tLX^)OxE^!au(o`H|Rh=rW7eFqFlXlypci zpHKQqHhaHI-cMe6e$}D(`v!7|vc>GlU%TdefGAo5*tonCI7J92r)bp;Z`KvCGClk%*H0bww zC?64d<+JSM`S?0iIwKi6l~3%A+f#3|=;^(w z(|P-rWKp-pmpL2iFG7EB2XU1LboNL`(5@JN(lNW68rj7ZZG$T*&NGJVvu!cU0Bj_8 zTr*SBqaexT8#x$8IFs;OH|aKQ_3l{2&gdTZ5IAa3P|-jHe&o&TWJd&;u~_*fZzJx; zUX%T7^wA)6nbH{cD8Xe zd8V?kR$Z(zVoNI5LW%=q06c39nwIy0HB-KNYu0kPBC`FZH)K3VYm%en{!zljDF7h8 zvJi1Ic$&H?=c{nQ$)$k0SDMV2+ehWzF=#J$4D&a3gZ0|X|Fq=EK@5rU0duElT~5`Y zwD&8^S-pa;TS0*P&$&gVdF$+4RPr9cXBFPv7@Ea1OnJct>*G2nHag$frwzyJrR(bI z=`UV6?vIBUmg+9pB{5yh*G-d-xfN>|dzqX(6J||Y0SPdE0;Cb+Gv>he1uJ=cvn9^5 ze0R@=`A0t}6hG6b3fIG$kv_Tsg$35+PO zMU4i{J8k=GPm{x4CT``%sYm7mz7;PzW^jGBJujcx*F);H)TQs#Zv5Wn`-w06ioW2P9rdOZ6>r)nr^v3AutAC|)|3 z159It_Pq8cc_;N8V*s9_k{{`Arn}#p^d>h_NXJ37>J~!#rR4ErwB%@PHC0+5iB$3_i3}`p~i; z6^$Rao?y24(Fw!BrDF=77xi@}5eu%47qJxAVv^j9DrEanfXp$#-bbN%hh=cTAne04W2u^ICK3}mn7I64?b&N!(pu0dzNYS& zK`ZISq-w>F8aeXQKF_flWtXMsdtYTxK7l)r9WsOuG}sG`@D38eG_tj|QXR`AiWibs zUrFkFya!kX=_Kp)jxG41SvFkqeSUjKML^>zbal3A(7{_ebVi4^%;odd%d7m)KFMp0 ztc&c;!uQ)hTO04}*%L@B_X0k}&*~fM@82Ey7b?Yi2^IYCEyXTp`TVCaS{1dIo*<44cCEf@WO-mHwQ$5g5F2(i-yqzjkTW;2js3|Qw44)CAXo1&79 zOzD-#jVC%}-gyv;VO0t>5|rz|SWVR_5F$12=@+a@NWRsr(PFmmvc9E^DKEKGgno!4 zatmPsk{uAF)nH&lcZzGWTb?cDHUe_pE$sh3#}r7^jqYxW7yK1P?ot*1>iU4Oj8=T# zL3YJYuC6~??NhSd_64s(f535sdiS`Q4k=vc8V&~KLS}GM>-X`Z_r|nK9S(BtKf_1z zbLF1PXeNXWhOLCe9Ol{$mT282++7knvYXhs>5)!h@su0Zg}7Iy5NGYiI7?F%={SWW z{D;nUj40bbWEzK}Y1NyLx8d!7+y$l zznr)O@jh71^r~WfC^Cbt4wSYl?V}H;Ns<0ronydl&mYs>#mHTBckW; zq;|(Fx|Z)!p2v*3G#NwKcBV>(RWZyGF;Z%c56qF~&>`Pii?29D{BB7>zDI1Z`uMhE z1JL$<;UOvB{m##xovnSs+S-Z}3?30;YRMWe{eed>)i+^q1VIvauzmf#=Fey7u@?mf ze;YWwV}ww!CoCp2^3oxYoOP3<| zRxJ1xYH5ZUmLT5jP$P?KBk_U#+F>6{<0lA`q6GpqRS#$1 zUDZh0e*+NFOXw$pQ8lOf64})8?;K)C%vFU{Q1z5EF<6+GqPj4ZDCXlRSBqNLOjz5BgyklQEw`;_h72D;06-^{}#)6xu51-AwNZf&KBk!hlbn)ZCJ zBrH<=lmx^?3t^BbEZUQ@pu;o8l$E>q%KqBtV&96Q@_jCu|1dSvjrEZ20`sITUr0!&Kb|8Q&yb@O~=XxI&qKyC_@_qL_NQY)tz&rSHei=2+QzOb_RHr#L_o8~N@e`Gdd6jE+4m z`wX0`Yr3~>7AU0c5mpwd>3}ZKRbYuX#wS5jqj+Bpij_PGGUNJUeT@A`tAXavPu@Q) z5w56{lK)-c^)p_#A~wvI#qiU)ag}I0ORZ}Bw~NbAlUCE_m!z-^0S zFzS$KI~R%dz$`|i_LN2?Ils!v7LWY;NTh~Z(GZ5!`DJ0A06lky9O3r6CGz-f4+~`9^uP6*4W+S(r))N@B;o8&is6wFzyW zVqE0Ccp34wcxugbfigCRNa6ivaFmY)bj{r+op-O!nMdNCK3W_{X+_O#iuMb-MJ!#C z=f+`BEXxyT!;|tXaT?X~r!I69gavsrCiQE^LO;(vL;fg7j)Zo`Uk$2x&LOTG&OL0< za9Lb->Zs;iK~u$;eWEf<9Ec15mo z0zwDGQRZ8$j8L)s{KEo8M#|smxIN;FXP%PSXE{=Z zFr&m3L5bSJig!^_d{=EXUuNI)vg5$DAEY+YR_VHY;jwgjh=zRL)bOa#m+f2hcaHest^sJx;+V$1Hh z8N;B0*u^%hIe4Mn-1@KG=HWT@v=rA3pDxT8=OEu3(Y2h={#C|0GMZQLLu3^_kT4t7yd+R-UskI*v>BEh5guCzp2OCfeTYcXSGsr z58cznhaOCMdR3-@55LQf4}O#&S@>-0SaWkJI1?arpfKN~aqhAo(htjO9~hk}88n@5 zq+Q`AQt%e09Gc4v(fP=CP3A5r=u2!L%*uFnvj$S2|IND!|;8l555wWXucF(!3*2P^k z?B@pohiRH7g9x8gvfe23@S;177<^M)n$XnB*!>G?BJbO_b2gTzGc2`_wRs~YvDlL{ zO5N)`otD%nmnw>>Ein5~(&$0h%Yh_*dgJ)=pXjwN2(ju!*JS|`oeFlR>YLW+{uSn_ zWCzX^m0ww8xE>Jit=2G_n$IFN3jF?#wV z5w|PimX?+rGjq>H6wV(XyHsk@{sVaj2L}LvQ-#S?#8~F+{Co-gWlCFsAI7u8^Wtw| zVGu+kRU`_8_prppA?%6aP5TRl-ZA3-6FsFe5Ae>5MgokNe~*$a{{v({K;?h&fqyGZ zG?N>4T9vOs`Ww|HS(%th@MwhW%j--03Y)O^Q;?{;z3cCj_q3H4^FBNpj1R$o_a@>U(oR;{a!<-T6gMciRu`8S}E*Q#%o!@VNk=W+QOwX z&SSg@(>u|U{-?xt!%uZf2D%4e-(zDxVE^}f2LN8;673VvE)cW!Qt)L{aD^}{xUjr% zfGRt(K6l`jf6J{Az-t^YYL+PfI$rKw5Zud4-pA)fkgr;dmu|GDQG}08NPr76z|$|l z%g4vl%hUb+doLHe7;C9SIcO?7O#?6EJTLo-qWEkO-%&C2yqD{2Sa;*6*L3OomK4X( zz<@wxa7buqcvx6?L_}D0WKc?CY;t0Jd_r7&QhZ!$^2g7gK7UUC@;N;#BlBxfR(5`N zPF`+a-nWAMf`Wp=;^Lg*(uA_2uKYpx8e1Ei zTYj`Ox3;$Qw6wOjwY9c)v}0O#N9RaacVBl;Z*Om3??8Xw@L=!Y$iU$6a8KW_uI|B> z_FpB9sJ^)Xi!1vlS2ufGl-=gl3|FYWcAH-?sGe=YnTof{pW8lD&*9UJ@oYjkF8 zd}e%Nc5-rRYG!(Rer{@Jd3t_nc7An!0ll!aytuTsyt1;p{%dUwz4~Vrz5Ztzy|Ik` zyS%!KUfW(<-(LT-{b%Fv>gL}1*1_i1!PfTH&i4Aw?)KjP{sE>PV*26X!QSz~=JDa~ z@yX%w$??hQ@yW^Q(aHJ2>E+(()!xbV?)mlN+0Eb6+vDTw)6;+F=NISaXBX%H{+(a{ z`*-#4^6C=PuKxYI{&#tEd3AI3zkYpldwY9#d;kAy9(sD)SXdr!UMR@vde84=68KZ; zHEoq2?5T#7@ihKw^;-7$3>(R$Q=-GeH5sF$aXXa4qkE1F{VpC3CCGfC3?VYKOWYfi zBM^ql4^Zqiv}Dz0N_izhBsQ zs1H$Y8;!pErY817g7cva)EPBo*wgW^&YX_q+tP!S`1HBlU_#7bFb(yFXEQMnag?R( zuPxU8!*lrA+9qJR)Fo}oMj;qqT`7GKz zXDBGm@eVa;ZQ0oyLTxH6x_bW2)nQ%GlsW&lv544POUp^S_k@*~fw%3Y{E{$`40@by z>$Cr~-8fM}L4hyh3@o@_^UCvOPs1+r^;NvHfOEhWG?l4gccR{Pb3ysV)Tq`6C7z}V zCi95h`v#NiuDV--;vhRI$z1aqK69mNDvx;n6=$z|m~*ZI zsF^l25xw3Yty%6#Bq%CwU!QUMW6jPE6#Vk1qP|bw_a!F##dO`;T;ajQG~}GL{wSU( zE%9fzNaAx`RKy?faB@mg&;o+!JX5w?|!Or3q3<~8s2?IS|+cd=eow6 zPC~5h>4Eh#l$paV-H`r0ahlZ~l}h%&$Z#6R_soRv4$Su4Eg*hgWoc#yjwX%=#@(ag z&x_gLSyD461KAk~pDlNabxn!CowjVGDz3FkXuMMQJogsCddBF*W+D*|zr^ArvgQqn zAY!p-&x(rpD_L9fli6D1E_#6?-tX_roKQx*6eQmVC!Iky?cNdAt`UkMC!9N_pc>`> zXtz~%I?lYAFU9IC4K%xxad>I&wBet%2tft`oS zpNUZ`1p7d|?EjPlE7=(SfW!iJPJB~MSy@k3CBh$`{24O#hv7X5wXXI( z>b}v}?#0>Jw=8%1UnJM1_{>;o)>6$B6*Dz~ot|rLcK?!v+4`^qWetn~?=ccP_Rkg^ zB01jj7F##yANnkDD(t|+jF!B$pZMffB)8&fR@&lR@6Nq#d}#!*l%x8Z_V3v!x-JVoIhq4lRwAuGflNer{Ac>KXMtRoYF_J)#W`kCH@Qo^5On&Xf}l3&@-cLS%)M1E<_Glt8^aGV(eYcf zpey@K4vOiDC^&jyt;wygCv8!~Iyi<9_^%Y+QHSshE<}43HG?|yL?7O1qvhFDt-!Tk zm^a?9Kik+8bp9goA~(5x{#b1$$1p+e!|^7pVO!1xzgUUCQcOnV{+1gwY8xNY@Q)xQ zHx*_G$~e3%z`o(L2fOsS1Ut~MW5 zXV;DQ=PQtj7E2r1J;zIc^V%wYBY)1HBy%}RZ=46&;glisF&6U#BNZmSzn` zs{4mIRprv0%OvyMK!`HYq0YhaDn3VB_n~?q<{cie2Lfh;lUP>6yBGdNG1-jxpBdcZ zuaaF<-LSFi;x+a|I|wTc#NIvf>9j6_q0lQ)i_b*Sl_=mnOt3xRQl>HY9(L__Hm<}R zs62~mzhMrbx{bNX9zaks`_L}CZ=BGa^-Up$%wKw68XWz5$ED!hBd0Y)Fl!k^)vI6( zIl>ObK+1)M_!+iW5(@#h?Kq?hzhlY5YWC{qn%K;$tzC=xQlF!1NX~llM@>4k2)6lw z?J?kxb1OAUkn+0>1awa(*ltGKIgp!nuMtFG;&#Io{*u5t^wIz` zQimB4AiK!kGk>5)90~rv{_qcHd$zoF#G4+|y? z3zmn6$-|-9^3cZDAoa76s?4n(GtTQXzO1cXChZ?k5G~sg>cN0I{2gj#{h^hLpFXbq z=lxsiAA;e1adeJj;nhVj#DhS(q(j=MjxiggTK4Uhi)-EcBcta1+LdAou@ zpX`ZBuF!JE^mWQ6L7jp&4yJ`?V65v+Q)^m%^fWRRK7fqU^HAsgL^EDSDpV&f_SHNZ zCAR)4_5R5)l2To~i;XfE=Dnh=@LldCb zI5ILDwjln=F3;73iWxF7gO={iapIwETM!1?=|-yX;_RKP=3NdPM^I`6Ycj=oDU!;a zS{|3b2pXY?%A!_e`2}Jz!~xvDLOyb4u}dJ6Y|fgy?E?E2;h;6;~RMZ#86gbA`R%A3S~shit=6U!A=# zDGgwt1eI7w#aG(y2xDu%FW-W$6}}P;g|ZgH9<@J`Uu5G1c_tm+YJA>GAKFjW@@W4N zg76b_arBf>k8*6cI)k9Y&9?r1GAix0_|66k)liqo@CJnLSjxA`-C&sizsHuk(lBS< z^wX2a<~xT)SLIA7rFL}K-LR2{WWVR3$4#%&5$PtdjHw#%?k@UkEQ~sTwg>hc*y;hU zef<^`M+9i`fTF{lfSKCPQ?yL1{%+Moa|Gzp9^YRHJq=>YzlmdWpFJc!^E#=2 zGlvAnBzYzl+Y&Iw%!G^QBlyhJ1=8oi!IadFRP(#?!I}IR*^@Omcvur8+Pwng4{#EX zq;~vBuY6`7#Mf4L`PK^Tk{XPm7p#1Jkeiw z4C*_m5d-$Rmd~1U>}%zme)oTgwfyj&6BN4IvI7)dZT#>U~|RA+b5Ntw%z{!cb+ zQ;lC4QPX{E#_o5oosZft4Qb*!^W0esMLE!;K+)nJi6?mzUUSeaCL>|&v^BVS+V5xE z;u~IzP$s|?gexhRL@vJpsoH!A9yPIk_1sgLRIc`!40B2dc@0A7iTF`si-*%xFylbKmZ&E~ia`W*Ke;J?>)jNV=4!M@U_50o4f6crDX?7^vths_4}# z$DCvMihQ0qsVNH;^OC#zDe^fA zYC1aZfP9Vft{(O3??z?q^Y6g5{;&3Q^?$tx|Esw>zHM6B9HSzlXgC1#@uB}!#_MZb zhT!5zY$W-6sLW^3(DZ@YlwBE`3^S4{VFzuuV|tT^iJ_8H`5rJGW4 z7r(mfWeDm#30HXJJNsBWEIWU}2W|fzPjJroDR;j~m`q>E%T`m}52N$re~V-?3g?HL za{Je-a}gZRp5m&26ugk|4l`WB`h%Gqbj`nB$(2wamxX#qiP^|9qdFc}>&ro#V!W7? zapkDI1UtK{y3&W+LP_Awi*v)X(sfn!7d(&J$(f$BNi#issFK`?>tVi#oP=6beVu&7 z4cTg&pEokilkbe`FWO4kdqB+^C@MW~LZRI@Kihxd*C?NhW}U{+vfrpnT23oJms6?& znpHJ_2-v;iQ6sEx^*Y+}8~N53U-eii_Rr{6eNs;KpkTHe(?@eTNyaKZMbjZ9GUmbG zm>R{S%@h^rY*-)@^ME3loxQa7`X^gbLyk`fl0uUg%WL-9JYM-$Ek__X^Ld&WTu6!@ z=yAG(rIuGEC23uQzniAPN*9{wPplnG@{!qS;FKAa?)A9&QMF_&fom1nJjzPjSn<5wcS9Su7-0%zNIcO+AefS;Ve zmQnR=V6K21Ca<^|35hB0zegV%k7fa0kl8bYWTIw&;1*EMxU{@&f({kg-~XvRqgz2y zu@Sq|`XYJp(HSd{ln#g=K@1d8k_$%n5ncKXeiY}|IcQwJSaANb#uaoJ<1FYOaNA|~ z4N=>60D-;xBZ-Y7*9N({SaS@0HHs#dD=X6;a~tlMF)u}Yr#8rfFOO+QFrv1$iUbWk zE#JR?Kk+E_E&>4fAy~U!aZ(JcRabM*cbwHl@4+S!Emmc_tPSt*^!n;l zq>qHqzqzJWXI%fr&Us+1Nd*JNsTv;?LT))#d zM1zG|r?%Xs!d|(T6mwq)WX|(&x8>rQaV)iLW*85XvfnVV1(h^V;I)0XEw(POU+$Tj zWiYC?dXYzkn#p6B`#sdyk0!3h)%H@pAaBqJaGvqxC*)BZV3~GFcChy(=-m0+h-w&l zVr-NF*|O97MF9nU_wOFyF$Gnaw)$V!wpN$%y~IKBDqe06J%5)UbU6iC-a zG>aWNe`FH-uwUDJm~gK*yW0$NHxF{%^Pb+h{9|ue_f(jBb4ef+Bm%Sp;R5+!EZXu6 zr^{G*9o6IG(H*ZYBdNWXsse5*hUz| z7uiIy0zsPht81>!9|6>$CV_@IGK0WZ#n^H)ta$fvpDss7B9$&_riBCsJE~)PP04^+ zFRYd2&>xuqZx_8?wkMiG@$@cLO>P7+heC*K=ywuVxzF-Ata>R?LUtVfJ^T8>68QM{nF z-@ombqiVQy@|R>Y>gRN86o}H?PRM1FJa3ddN^2qFzk57Q_rIr1PESwT!O`YO$g37g z^UEJJsd5kI2~Z1zT7RCDJH!*%ncg!ACYoHXcN{8-~85qzQEKF^cGd_OF@-z z)4DhuEKsAzL78Dt>duv9g$Uu>4uJL?Yva9P7K$j{?_*kYbxFzHVKg4kAz0U0+&31a zo)lPHr%BlP+7k(qqw-rLIp5RlnQT7%qY#Gr1Sd*BG;%|sP$@YEl*l`|&p*kTb&_f3 z_nv5sO?l2Q=ccnKBV5jTVOAduiVNINP{Q!wbL15AuAS z=d=LNo?{J}t5Clq+?EAdg&M@Bph@G=eh(4Nh=D+y3E_injEBy`g4ePv>GM8_&H-%# z)!V_K{&U8+*G(Q#7;6a1gzajGX7GweLg6X=N~8p@y+l+L%NB68wW{1VN0=C7j120` zbvqT>=%<|E;TCForWsTyCr|R>6jyLdr)PW4SEh7AHyXyvrLDN%A)_I@Kc4mU;C8MG z3%@3cmYamwDGv)2^Sv@n)vb33todza=%uvqS-;snRT-}{!9Z{}fu(FBIQt|MrB;4X zEq;2d7Qs;a20)C=VQ619b9w1v8jb}K2cqcU&NB45b2*jRST3Gz%e2&WwN%97Z-a4J-a=G=KXKSd68 z7%y2cD2g4#Cew=3yCLw~nHhNXWlTcVh$(J;jXkM~0<=692EUC2lR9MiKI@-kT4*@c z>e4M7g9r(6_18MgRim@BJ0R2`hoBlGZFe3bLeV!bf2ki!FR;VWAK8=T#+E!*OGEUG z!0(*~>#W*wh+lpALbi*5FVkK+CO(HLdoSvMWE26!=ozvIJI}4%p)>)r+l#KSZ{X&q zVqLPT`QVolL1$75eK0VqUyI_TmGlR)elYDX$v|L`tusGWNd&{aZ@dB13#q`2J>Vz{GG^HP@4@f5o4VuZ_n`ePVBIW5=sx%4j{P@zB^1l<)4<9L|Ms;dT6JTeR_sE2q8JF_&H z(L-nZJU06Fh>pBY1JHTt*R;Sp?-kq5^n+3-7|H$N+t2v^VX4rc<}EI)r=y}R)+rnK z4NeQR1QyRLjXz&jgC|@e8@kEL~_cRM317{d;aKTXQ-^`7=?LDut3G%;NDE z{$3zMCeFH7zJ#^|VZkz~C=$O%hGk=;>FI&`ktP$d{Q1Qmt+ed$XC|jcZJTsi}pS`)w%ti>d906!iRc@f^03$tI+Omk} z^6KESAt_zGx~i%wVIFQ_VOKo((J}cdJ^hCdA8MGb6MB~d`x;N&UfBRy1}{&>xxFM&ncSD6XW*ic15`^v%z z4|K*a*B$Cyq3{qMB=_M2x_54f${|7y&gUFd6n!&J6>v1+L0YKvd_0KG6ld%phJdV8 zIpt@{7e@I%7}p87E@fGP;TuW|^@hPnYF>lhvW!*Hyg7jpqCWX{&Ejm-D<2PWLGqxx zcijsU_Q7aDpS`qkt1G+7w;2LcX0Z2|*A@I&Zr!Uh7@*_Q0o$3&`F?ivF|;;AVPS_t z)iC~P^UHbB5K0+Ut9LTFgxG%PyunypV<;?Pp%p5|!2F&tc6j@Za9(E6s$0PfH6^hY z=*cu`mFdH!>-L0dR0;*CcO|4S*2{q<=tlbAVu(P#h;u)=jGGnpC+t09WZ$V03pdbR zi9_C6<^9=U3L|i$g21@J>GW9-0R{&!%u zXT=o)su?9bz6}*TNtMf(80d_rNZ^A_1pMT3eZ&uejXagy`G@s767OLA#;5-k9Y#aa zDZ9Gv!}Vv`Z94T>$J5J6u?HxS+?rw8yT-(wuKXZvByyzQK07;m6msccC!byC85v28 z;+~Z^X~CkYY$`EDcWR^x7Jj9skN$~#`TkkwAT2JiQG{saEmn$*8)&ce^;_45?+X>q zrT6#$sMk;#)A^&aG$oH8v)(uCxxami#ER`$JvjKuAW^9-3VWZKD`}aLn6hUVZ<_h- zKUxN$kzhzL8{=`r6Nq@`5vjtgV@iRPahBZCfReV4SAQjw8w%aC@PolA9tX$Ur#t54 zwW#fIaEoL=i!J2%Lj9vUCoiwT!1Z(iyIvHrNmIt>Pujf2G8tcWduJ3CG8!{7xzq;u z0`EvTuVQRG`#*r$th;+gG@?rNBZ94>9JE1GLOvTYp4K2l#viOnM9I}aJ3oJmiX^Y;-kcb+er5;%$*XWaU&^Vds9*_f3>6nAp%q71 zn2r;HTX;X@y!ZR|1op8gFQ}J;yQ5uc2{T(Qs-`SA=g)q^})$NPUG^Qq=knCaJ@#il) zs%?IJFI%{oJ|rT0^f4w^zp!%e@_x5n?mqI*H`(^HK3V(PU7du;;>v&4Ae;dAo;EEn zyC@>UkDS#OI%=K{pCo#vSPpP1>2$%Mxg3&=%c@8e356>v`1LOdk=IMI?biWx)3TZz z(MCQid~eG!bNg{{)~p&JY(^*TW(wQD2->k=2#lM1Artu_Iho2{;HJSA9GNhq^I>bN zKTJ9pQYbS-#hjK3Q2Jy+N+O&4{BQ6GX%v`?TeAiz;Ycx%WDHmmO}JKJN@4uQ4zg-+ zCfj@fq@==|Rs{LeQ_&itoUB*-pIkSZ2m93a*j2Nyg!QTs9l-_A?=)1v8=srq!!lfH zEOl9iED7=JPR<-}YkoIxqGQ!%l-nQn4;}BmUU`d)OTws|5z7 zKY88NEo>PiS?^ENT68fzV3Oue z9sj;=fV-S06=K55lZr)a=j3#83j2MPK&+-J*QSc(T1e&@F`bzRT>H_fVqV{bn0X*JLjm@HiLV_c%GT|90o<^teuz!4Sur zO-DY110aJ#0r<$2jDY09*<%gYG_yu>!h#m1fvx^0&M+Hiu*o{I!Ua{%jBZ?ouuOH9ASWZTozDLIqtpcbeP z6mwBWHhWB#eN8w>9zgC+5r@GUB+*YHJsct~{J6QTD4%O~NcCmZaf&>091=O+o(9nr zCW=HUBLN$bYRbqNA6uj2 zT;63f^Is_f;uVnr4aT3lzM8_piJJ!tVgI$z3HEZKh4~LR!W5fB;W*eQ*t7?f!cGXx zLUlp}SkR%MYOkoG5}iQK{Ifcd5-OHL`|++Vek}^Z+Ql5})vEZe zv)bCps{!tmh_r9U`nKJww!>f`y9^FBKn7O3>Zp!|+QXaXw0W*Q?W$dIW;rord)10=t69Zrxa3f3*~22E)&ko#P=DRKQ9|)}k&7G_~zP{?57)ott_rAOqzSe&j=G zTLUdg0|apUw{55NEy0R{$1zmN}(H7KOyC z>39n4DLAqs0P^4?AP^8Ska)5h0RRp}@#=@()Nmtz_zz%KyYRL%q(|dB!n2!d^&yT| zn{9@vv48&L=U;}}si}fPIVb%C#@j2euj~y`%$(0Fd12j8o(P#Fc9wJiKUm|1G*mXg zK3IqM9B8EesPZg&#ZIe#{$MJPj@+0gvYvfHR%nF<&HlkYKqkJ9xIi?#@70v{5I4ya6apznclfc*qAL@$wM8?vR5^ z!>j^~c_i9o+H8jK)Ihb%jqb;j+kT?Uh8)bm#9Y60(g;ibe}wJvMzm%u2)Pu?|Z zAHdP#6qL-&>5g7u$e+SkP;@l{v&`a5*Dq5ZorxsC%O}qFi)AV)EjBghK_#Yssi=Ik zE8(75SFuL$Pu;45?yfuC8oa2LhcUs3BTsevH!9QNNK)h(?+Fkn?Z$ofuJX|A1}@F- zrL{Zu&rB+is9-0`A&_^}o*@=vGZQngBZ;fsY60s=MI=5yvMv3r=;HdIj*PVZ-YB9i z)$dyD&zCJlKN;9reLb<2m-4NV^g8KwX;gFF-Nj-KgT!qPF?Jf08$l-)b%92odrker zS6KJi_CS*%1U+1@ckHf*_*+=&D-BbycIgI&0&qm84MpJCtm&(9BupLyPD3mBL2+-2+uP5qm0T*Nb*#HsqH8|y^;_u)Md=! zD`)6Srt=EICQ<3BQYG}~t16^$^!y>Mv&u!8!^v%80H?I%rJ4%Jh+%MX=!2D21`6({%*eOtZ20M7ai{6#wL-we8dqkN2zc`c#(Y*S`w}e=5Z@O2p=4=eLQ& zn$7n8DmiwrAG|QxK_(~A2YJnMGNiuwi*Kr+5|62ddA0M61>vSVp#UuGlgMP4`pT!- z4>0P55JD6)V~e{b0npaSSawmDyM`*Wygs)~t%Xp(WctK1sBs%%yIg~<4xEjT z1ZO0{$4KVgi}!1n^v$=4k?!V(-)bwHt~r2jpZsP~AVD!O;J&EBuSP@*)^AS8L(#h5 zt#m?k6BZoAj6L+7-n}Ezm#Y$!HY}rVQ`u}wG4zoHzc)Q_s9A8Vw_yjKe0ftM4CFVw z4!BY&Y}?r}j)iKz4S#2O_vWen6o2QGYNl=aZYl2+KhnLN5pb7fjO(MOkt;EXmGq1su3QqdM+Fyqx&LI-CRpiMZVY-pI?#4{|JQKT4!mjbBpNO`K%K z{YSR9g?@Kcwd}Jiq&t=VlEYo;olCH@r>bh*b0UCSpHtu4BT5G`azOKvfSG)yspRj8 zMNMN$+`0x$Eb%C!^Tiz&?&NSsaMG>B|Lzf!LbNS|jnBPrKmCX4a5Ty(b6 zxkCvsbq78#@q14uaBcDKc+{HZ2uG=Rwp_N)5ourXU~=+Zxo_MCxJ4&;s%3g*#f@zi zM)h&jj90#63c!9}pz7#Zp&y)$B{!zE?|iV;IQfPzbe>+dBA&g`^IT*$cd%N78gyCe zg1|sh6vz`W#V=P*3S640D0%X;PVQx*V!1!nugo7sDY6$ujeP}}sO@9yTJdx{Q$&z@ zcWr&T@lZvX8@RM$&|ehM;pzM$(rogNl$2+lTj7Pjd>U@ z8e)fbI?{XOv$G`c0fp~t2);T`J@w7Me6CwQZ zmGj0#SBgIYr&yT%thltK-gMK(rA0`v>?P&RDqIV2Y87RM0dV2|1uL)CX>jmfym(#$ zPFMK+6aeV&7}3MRM@Y((tsfjbX@v7ZQgWpBGTBI46+Qv0d-@arEF=IfP4IGUB@hDD z1EvJqF?&<5Zuv+|4fN7ijgDS7O}^X6vukkoqw2<5(9y|GW$H@(Aq*9$DI;C}v?^FX z*v5{xTmg$W%N;b%9e(rLN7TG4iX@>!It1UDQrdno>^@@Mfe%pofqPdsRR?RjK&6HdDaM)o)Vg+8|{|C4czHwy15R5iT$leWuD(xO=BnE(T;{gKua0 zYQe-oO>%w}cVmPa6)=>0`8j5Dl9%;2Om}#06G(R^i&Al-qGkmyA1y9a90)`|e^QpfbS zLmnPHNeHI;`z(9@iH;{G6P^swHU5&6C#r#wvl81WFoPZI?uUXvmO?-VMt99URL91$ zH%L1L_V~r*5Y+LpHsvB5@O@p+-ncHIow{VLM5yK`!2YJ{j&;NcXlIcY0TEA1`)a}A z+(YA&V@ilkhx|<(#hgRL!gy?xQ>}s(qR!0{}tJF>Er;#XwbV=_O=w!wy z`iTP!b7x)=%Bc<&NaZhOGQB2BUP#Bm`5<84HktSpcOL{aag5-mH4`*ttpfmkNQ%S+ z#c*R4F70)VvnsH$8yT1~9fgvj1shm_F3QUILE=BnW#t0kenyv%#|{>BRF8hrDe)F& z{~7_?P4n<$+ZVni2(+L*H*%#?U!uNGAi~qFL5N#2=>?8?dap}f2Fl{HuXwN;hhni} z)v|N{Q4xR3@mRS&iCOLyG3=5;-jWnGfurPrLk_45;lzT~i+==jF{naZz@Uy_+mQqs z4!ciq`%GJ}LjVBXccP!?B?V0Hk(1G2^!!L;XyfJ4k-BavK_|QUixTq;PRv~ub(wEN zc&p;Pl>hvfo+c>BTX^!9Amh5E^zgNgMY_G{og7u3iRJ%LZII_Ocu0l&U3!!hqkh6y z&VOfzM~#h=JLw%>MDo%=#gkgzd@EF(`x`K)k2CY9YqcId49P###UYpznwC=;$m`iq~AY#*Q3?A zS(5y5hQvC8k^dP-2{?oA@rRe@smEYO0e+ZxKjgByAV0sNP6-U}UPval6zk)JQ;;Y7 zlN4)%G*yaDf96XCqj?N?{cC=liyO%V6qF;1eoX{pnf4~JS{5o|cRnq$!+G{|q^AHw z&gHfJC@t)to}T$6pO{`bT}2q3<+)sj(zsorId2WHry?kIE^{yOr>Esa8EuY_3;&m` zPE34(QD_~KX#d^=@!!3rJ^|4nq&>f^ryQv~8+Y(c4hm9Kt~M}Hi`gxyg?ES|+gmSjPjF;uPyRCq|G$AGwwEqV72BFq6)c7w_ zALaf{3v49(ApJ%A#G9H=tDHLbM@H_W#vRv4h}YJRF}FUGDx5-L1Pmc@4$*tQML&;9 zbtsj~eoc^ZQ&QrrWLy5Cm9C|0Gn_GHo<7iFtGT$EUT;n z(8g$cb(j(R{NoUKt6;J2c4YlV*Yy-OmVL z`4#$ezu0$ORIKpe15M3w=Kn&@3oyV(bgoi=d%7gHYfHYP5x(7|fJxmr*Zv!hyO6}I z`{Ddm3>n|?Vn}XL8c^59gO6T(c|GLVRM(WJ95q>f&IUaDf%uw)jVtHOguKW8 zP{!n)V3IS+bdrB20K~Zi4L{Rd*v!3Hgz|h%tS+-r+b-=By7)&+FH#~KBh4&XM-q3w zMQ8Y!EA8IVX}WmaLCFqJ#*4j{&&6}m4Id6${H|&1I1*N_eqA+l$|`baPmqE8rE?vP zk*NBYGkHQU$x7sY@*boUQ@w28{BqH(=h(UKRo~FCB7Jq-{#!6og$2JiSFrY;^5lek z$kX|zn;nOQ#Ft9w%QI0zl0M8$_{F~cc27Z``}2CPo0ybp-U>LSEew7Zre7|vK9(~q z)>v0(UmBw-6%zO|a=c=>#ZVD@`iRL(jYay7Ie*7XBP$;uhnoy5Y*)Y#*Km-yMPwa_ zN5wc;`*8T+`F?MuV4wp~c4Gt4g=oXSwL{QSxhZ`K zhvw%4u6(5z?;7Qg;L71GCBWXI?^<=fC#DNkvF+|s|Nd4aCTdt`7Op(~`k@(N6R6V8 z&J#d@eMnwz_~4~3GuQM~_$1Uwh!KdYV+?#dLjWi^7KAkVZclt81oiU%QUAsdhGG$# z<*rbq-1n0{4b=~b-9Xnn9xC!j$x~&digpNn0-W{I0fYd=1z4@FD71RmqQ{IWln}(0 z0zEU%onV=RDw*2-y_ZZZDc92?Cl88qtHzDRk%Q-AEA~)`gMq~HgtQXC--m8Ca7tA3 zVF6fkI}2k2t5z79KhRP()d}#tAy7Ue;7nujL&W;(c32>?&7|)HY+clRcI@Y3&F#FsM2Hq6 z4k4iskT|E~Gv<3R1ec}=#O`tuOaeo@glggyo%wkxCsK~9-m56cVNvGB3W=vcvv`@_Ll*w(=+vNjQasK60i zT`zvo@LAMy41L!*Yce{2pK(rLxC#0ky&^7(2K`_l!d%*J6Om7)Ub?v(!TJPxu+sTMqk z3LF1AXMJ@B9u8h#N=yWwFJN|3R<0@sYq_a;0&tM2O0^c_tQx}Tc)NAEFqK2RUW~2K z4VU`QWc;Vf3PD-Hg#X)M83YsW;1BEMtdXlG()i&_thDQtoebeRn-<7Fzq1u6<7In; zalSFFNw06d0G@&v`KWn#0K~KG)m=PrupdGe=Tv_$n&A;|Sg=YK{Cn>Db;Sr7 zY{-{42?QwpIDkT5MyNyqZ-o9LEiih+7gPQ?LnhZPes-AFPCgmsijNw_eT}XZll*h~ zb+E4$x05@sP~AK~t+TL86!G+$-bUAZuaTCFWHPeC;wxQ=U(UE+gl+g6DKFiv+GZT2 zD^1|%&UdnHOu;v@^LAJY^minp@!XKhmted*_t_&ujSUMyxv{NXZtB-@8xMk#-3UZn z^GZ#%8UGi_2Vh znf|;HfYOlJ2$Or5WI(Ic{wur*PBYD-_X;$6t3cgl!zM~f{bB653gnxO!_n7i%-*|w{M={5ZdE-UF z=rPU~p(6t(X}aauyR8q;HzIOb9<0U@Ssm?~osRc=A3#6zvJ_t4EAV)<0_9-4FF^DN zsi(TOwT0nEEx&cZeD}_I#`j+t5OjIcVpJVIm4z~B($pH@Y~O@u#P`DAw7GcLKDI7R zITR2u5WhEQ9@iN?>U}gOvz}9wh=_59b%VbACgTqziSA`iR`ICB?Tt0wjB(w~SByO! z(=2QuW~S#6>29_3%1d(Xdulsa>CE-ByEKWJKKgFNdl|tZG|@pT1pHHPt|%(B9CaV( zPrU1wM-Q|h$N;Q|u$*=&uUMGLR0vPg?T(4fE!vg|A3QxkvKH^L5QCqnpD=1@DUK53 z#^bO5$lDRa#5kvWPsvEW(U+KP{+J(U+IEVrwN{0A%Y?gfKFTF}5Woe-47SIn$}(07 z)gM3vW6$D}J_?eOb}rohT}%wIAR-;K5`vG>-o|ZC?$fV-&e8qAITNJIJYizltTN`F zsdRqrtq~BC{Hf#DKs8s0EAfO6Camr!z1q{1hkzaj)D*P{Naj}vpst=S|9uumxx-3K zxnp&rWiIa$z-;{|)>-Q5M^{dU?W!Y`wUoE+2WcwHhccL3Qv~T!<8K|?*RCmksc7GP zu6iRT6#qTm;Ym}Iasi_=(U*1QB;67`8KB}b%ISlnKe#^C*!b9zC7z?i=S%WGAI`@# z%Q`J*m_KnIZIc6IFCK?wKxfSZ^0c4Z#ulH2iR-uUQjQv;s_!y{TJ{ceJ}wCXb1{|1 zb_ff-vc)qnko29y90^fa@L+a07S|TpKwhbG@!29%^^jFqA7m@bFVve5Q-SP@g;cl5 zpn>(XksVl$g=5N-J;sp`LC^02pJt_`L8u~4Eovsvn-%REraZjw9ne#7;$Q_+Mo zZft4xT?h;^Fu@wnDUco<+jQ5hECKA_#LsjZWem&3a*7Gb_RB8=4#dYW9A|+k6I1s~ zL!nz%bSZ&IIEOFygcetLiX4{VS3$XuzB(_2OytU%Zu43?<_^b1hNd`EcAGfmA(%P{ zp{e>`fWwuFfKWC$pawN-ff&h5QeYlV?5HaADOEd0BQg)HIUa6tcRea&*xpv*bm!}9 zOP7*ED2ERp!v?=6PJ#_>m2vZbZ2k6+RwpMlyHL3E2R0vOng9yQ|K_>+g!xp)IZ_419ti9vas7NV~+s)p(Y#hMD|Vn-ffyxB@O@Z^Tz zJroP?h{5>m{mi^$J_ewC2Z^^MBE(34?z-&ENbKAKTVm-cr%^df_5FX(#6s>}sF=Zo zaTL@vuz)Y$_y3^0KiZAh9C=Phn|0!T`-sxug|iaYc-M3LeDrj4+e*avLWtPS1UYCz6D<9QQindrt-> zB=IAJbI|S?voJFbphNSPY~@4)%}((DA!`nL6?cIee0HtJ1qtSrCikn=noWj7xaF$F z`G5<6PKxZN(|+N#h-{>A3bu$wHg@Na{s%uZ($3sWab2N!Sj7Ku*x~Y0AH~+Si*zUN z#n1NNlVGGor#{qp7YcPt(9`N{NB97KY<*LPCY)l5gA(OI$6 zvi6hY$UXH5h|YYdd*3jwMekStpjc%09B= z(vWo`m*{t6*IVidj#pnli#g8!#uUePP9ZP$&Ai>PO1}=iIOuU=j<85v(Oth5aJW}c zCCvIu9mu&3#1{PRWQ#w+|A%HJ=dE0#Bd`?ABfDtU)2)B6I1Yyqu*&w& z=~;rjP-2fIvT9A?;gZeZ=w^i#Z@TuK5z02J)ytxIHnmoluv0S>T@nEW(|UWNI)XWX zqiJ4bHq?3GMMkjqJk!o2+E1~x%CG{vk0lvVOd}oU3~E+cyLYdT?p+=A<3A-KDHfMCIGaR^S(;7)=B3z86W_xro|-Ktlw>iw~&_S8AkGt<*EbGrM} zJstK7UuL@ou1^Nt(Q#*6Hep+V)L2!WhU}pFwc)g`(bhtU7RZ?r1jI2N>@e-KhbMla zj-}EODkGY`XRnYFI*ld{&z;28lqSU1l(|P_1Z1qQZYqjs{Te)7%@dR|>VAIz`)`HT zuTu(M&!M5`A1u3h+ec4#qKT)Pe*c+SvYEU>9602cK&~y!Yx+WVxK7S~pH0l#-q+bu znGu4d!UY35S9)mLdDLz8agBP!u-zF!9|`&Q8_ zzIV5bdai8O743T9==9c5g_TFrx5F?!Nli5WQFmCTy{3i{P>!YcxyMm!Z8xqnRVqlo z(dF)+OJ!_r7l7)A$+_tPhOQbDNVU2LRi zZkQy(Ox$rir$%&hyUQTgX%e4xVlbURC{nA-1vC7NqmfqncaQcJ@7@ZWpET`?V3PPH zP2#%``OA_4sCGHx(=zZc2ewlmsW+DHv-N%s(ymr;dNHZ-d_0x&!?_32Eg^meNDi&; z3*+?>!nbZ>gMO$yz77lm+7!NatO^Msna3vhMbl%X_d$E+Phf3TGyZgCsgbvv#N5e{ z>nCK_f5W@!1uT#>_uY%57}3KhhgYs8UWxt>9w;tw`rS} zmvEEnGhOzN=qMPz4=c>ccHMbgBj#@3gk;mL{iJ_oS{bI9_Dh>eHq)r`o=G@q9^_IJ+j@BI2^I8_OYes!1s>Yy) zjGiC&ROM>aLgE4zPb`g>rNnf^?5*^KZ}b|uU@D40BhA_Mle%uX zgTbom>o*I{r@1aX_j6{@tnB;mtxFvmPJ11wUw2(zeEQ;18NSyAR6xy=ermw8;Uv1_ zZ0CxHnV99j5UiLH0rH<{xC4|ll+EDpbn{m_@)Ds}zXHz{@4_9WA33W1rG1DL$7(1d z3N>LqHy5YQh;!UM0!ONk1++!EsbO~#d7=1BH(4tX6FawYaPn)b%TMuUw%hfOawGpZ z38`}ZF8)BVjH3F}c&D1!)F~is0_bt>waGgi9}Zb0sjwGzE8DU(b-jsHz$Y2Pw!q1I zxsF?)@Gd`QUX1afs7~c&whbQQCvf-<@QdN!U+a#@En>1e{Kcl?Kia%`-#x!P6vb@H z%R9S$BU|0SD*4!L*e5ZP53XCD-XX6gMRV1c`{ls&L14c7POenJZ{Y%#G#|MK1_jXD zoR~SNyfx!gkzlafk{IKfqA%}42^w8VCT>}C7sPgjV0jTh@d@T*!NT}W**Hza7%rv$ zlCWTa<{?z~%|o=wCx18E2l(7IIv(k*Y7Jdvr=XBqgFp+V+i?Z6Bj!9nIy{evafS><4%=dr%&Z(=Q z(*JDs;8epFTZHNjkDb5m+-CO=a#}`yoO5!SpN>+7T5lCQ=SXf zNGS#6Yts?Rd^(WM6~s&KcE~3_vzw8Y@?o!*yV(>Gx8%+eIG}rJfm4|KGDjd?HM{q7 zcETpK)H0YD=)>78XlX0?M=q}Bod&EatFfAuE97RE{r3%w#ckY`>$d$YPGut_T0JhQz zGS%ma-pr>|A(!o$9G;)m{6c@rx!HEa%Fr*8k&cRU`)sMcLkxC?WPJC_?Rv=fkxQQG zd`(SO`BN@dt=uhLzr#Q7st>U>3*OC{CH3LuKcJetaPZGJTPg!1e*dUhYpw3_Vkk06 zxAgT2Z#v!Td6#)(BBp;i)Egog=hw}0Ok^yJW|}xSqvCz&q3sGEbURTQe>p*DzO?To>Uf+?%K%8B!DcM+~~!zVdBipPbuBmSe#VYsNdb zhy|URt)QFsq^j!tgT|Rg|4Y4TT-5{OZI3QR9z;Q#Tz_#p@1s9-Wy2EGQTl=9B`Jc} z@!!^8_5x(u^*a0cZI8-(4lYl>_K+=V-!lJQ&j!E88NJ8;>9UA&m2RdW?O#`2*;mKk zhm|Y=-=zm@ATl|RPhLTbyrtheDx=-Q=;aw3xMtv$|7@(kHpN+PhDVo0*!Dx(9$;hhU*z_N|*}b}oXd=UiAJT)xB8Tmj#}S{eK21f< z)FO?L(%@KDvlaRMAJO@8sHi2rwa0e`>nX{!i|f-LGE{iXdd0W@T7Rs8|Ew$zW=*D2B*{N-n@SL8gki^NKZdXJz<^jJ=DeoAlD(QrtWrm<%QQBKr2e{EZ@M9Q^pE8EZvO?3f5B z^JT77{IG-y)|SN+nxy@2Qt;O0GnJ-rNiMf*&#b9vqQWo#WaXK|^7oqc=F)yDznfL7 zh5eP&)hkc0jt^PJ_rCnP;r(9GJqq_3#mdMDFrE0TWF)GhFX8GxD*O?#6_6~GSf*T2 zotI!u!`yx+YC^R!C^TF_xp{z4MO{|2Kk|3{73aZx{?fN()?*>)-`bTf1FI_Zu2ZzN zhE~x2wtG=hB zgP6Jx^!Wlo%MK#<>B7Qm4Gi%mPvb5t8pNIO*-Co&{ofh+Ew+RinB)>$lk}+>T2{Q1 zu4Fx8Myt#8MMA@Rl{3_qXvG|@@ZmKBh1m*adHT@MZ>%GO^|#w09HsxGdWURSsznU{ z@28lP=)m;!5TpOJ`TtY&|3hH%E%?*VC9WzhRaXz3;X7Ue_h-IOZ>2N2LW9HZjnb9N zc%t-G#nCkXGgPB%wu!1l>ta0rnTw8M1^(~VP7NMmgq{Uj|4)4cMgFnhCl5Yr-K0;U zO#-r(fT!pd3;b8^zqooH%shee|9kz<2CnLwG7S77v#k<=?wnrb+KB)rVQdw_JJl^g z{&H1ZyP^l4|J-0anE$&S|9_pr{Eq-@;eQciSuc)>jF%D>-+j&816eKd15J zfAMUB2MCO)i+eR)$%cW1lxG5OBAZ~PHEa_hF|k3-mGx{94sT+s#lWk1#!D(iD;D!L z;?WKVaV=A9xHN4}<)6VB0cPZ*KgT6{qBp70?LvlPg-+TW3LA$Pep__EIgvK)q?VJ- zn)FIGFe5=4&DRL#N1<%wR;hymp7nCmo>7|b;RUGeOreJgYc~`Np{pxYvHb*Crmn8u zB8UkXw)^%Kh^Ibp5N^(Bum2Q26E5ncov@rnDR;-v)$}zFElMaKIHKP6 z_H14K4lwD^+E)QdqZq-5K)V25&xA#qVfx~#zMufn5*v9pV`e@{9bFH(wr6IfUADLR ztj1QZ8bJI$;YwL8ik$=P-0}~SDJ)m>hz;I3LDc_5&IWcw+Ku>ah1|Nu()xKfO%@-!6 zMyo?An=z)4Hkh#OWR#Wf zRI1a#!TaZm<7JZI7GpsyY?P0C-M{dDZ!4bz`a@_qX5^tsz;E#xw+GoPWGaDbJPnXm zu>Zx#21-Jt{m;!9(=tppF*zwM24-jfakG2m35!b6@MbOuVzu9E^0~ETOydxYBLa-% zwIV|Hwr9bVG+v(q042&Gmu~e4`RcHHn`l%55VpJaCAuDE7JACj-MSX<)NmXhiK8 z4X?tm!e;&59>M$UaoAI7333?P2mg!-c%bECS`i39u7wn??6Hm!QUBG_Jb?4XI4g%pdulgHXw^)2X2upK{iSaN?DbLtZK?d)r!@&Ti zx;^@Q;%cGnQ`@&*Xk#oE7BZ!|r_1X%FsoL6D8d5sVSiPEOFC+ z8tC?sb580)l3U?l=AG+CjGzy@(Re*49Fp5YPeMGr$kOBTcFvMzybB$ddhb^8$73oB zy^uo)!mY^+G+J^`JQ)EOi&SB=BQh{lf!QU_$DC9mh!Q1Q^K-wtx*`J*3WAbf!Z;>x zw=eKA3+M{!Q5h95*rzs6Z>(kH&lBZx6v{e{T>>$+b1Uz4-6Ld;FgMSn*ld0GNQ&n5{@A}%C7iQOj1Em%bK>k2m<*_{r z*QwJVkgc0RtJ%;aJme0!MftKzkh^<8z#1TEHbQ`(fhVUv?^84U_a#NY>S-ub2rTRs-Dt`Ldx!0<#inVDv*}{gJRV zs~DI?t8HBnR^l@qYU8gDX=NZz^~Gxcg&GHXKP6A89E5_ziKr)- z{*JwXhi`rHZduRS?0R>1ZeZqnpVnS@^#YxYgn8{mYPej5cgg9ej)ad7yww0A&k2&+Tv~YR=Wm5^?V3umuJ`L!~ROk z4^PR+&o2PR=mZUOSJ{5dBM){~p9?KNsKJ<0p|cZz!+H_cSFrYH^Sjk#&n~P|%ykPc zR5SW`hTc5q>5&e8R~rw_AsC@B;n)=40h?X|L0i*h{>1hRepa07zcJ4S;>>X4KZl6t zwa_o?+L1D22Atm95J&FkLnsebe{zS3%t4-@2nYRdPO$MKQ7Adizqa*GhgzG54Lsv+1@!XA7t#>yypg^IjJ zbp9lu^bzkAmYvR-ggqGTnKw95ygA@YcpVRgO4GtXWJ3hQTl*GQ2a~?o<{?h}5Q~HM zfhayr<0fjv%$#v=1&5UI%*g60ez7{Ai_2z6JrIr|KUBZrp=t4f@qJxg0%He#xgBHA z>+CMieK7k&HZjpktL7W4K zcEYcus7JV<5t5SmaDF;iCVLS^O&?cXC^Z~1!653mVO*Ij;q7ebqlN=_y{V}U@_wt0 z_{7RIK~7HYD9FxI5r&l#&--WbNx;a%nN(TCqGJs9S!Bb`;fs)y6$9f$OJz-E6*ZN} z+$4&w(z&_f{#x9{{&gFF8wHu_ zTR%EArjvo!Wezj`J_AzUc0Py$7mJhUFbPB7MVLI{suAWtqX2#K%wKm1Br{pwCBsDS zw{HBVf%B`WAdb4)>n8Gr4z0QCCa7`9Gbaz~?;EI}XSS>+Do`ERyq+sV3ipJsQPlfS z_mDaSITPuu&q)<}^6<2jf9oz=e8{aKm?Q6E(OTb;<@)?3v^vNF9E!@$$xBPgAtr-Z z561ZU%W3FSZv7HPVq9Ra!*ASSuodIgb^P?Z4gebgy+7a z7hcWV0Z5^NYcwfYR4-B_aH?L+UE$BI~+NhnuP1}dZNX!)zePcsIc=itMu~^)&O1JGZeM@K> zZ54Ra8O&1%q{fSnS%0y6tF#eT(re3SR)Z577lsl0lF3gNC&C;w4J~j|kuAbd!Q)9_ zZw$D1o%*?r-OUPt9Ye$kJ{%z5L11u$MM}@+O#>sO9;LFjGFX4SdkA}rm1iV!&`Pjd z(l&^0rrueOGicD5Z1Jrfo)c|0kY|L3aG_YovI1|@GHm?05(GL3H3wveyr?Qnx>J-> zVS>+GLiYBIR3YqtFV^t9dvQ?!VhYjrHa=xxa06!+6&YES&F&nxgS#lX zY(Is%4D9VzgnzFD!>{NuXAU)jo0}V)kQg3DhwMEqqZ&Vp_bEB36d!ij_arhfWy_DzLWDHfJzgfLaq znwmf#96wgV2?Daj@d1%q1on6NUhxB)%mxHq7>plhJu&gH(|KNtI^J*%l%7F~wo2C* z14!uUq<5O8l)4aVg7V@K|bf&pE%!ne)5eo2C`F+65 zu32n|;QfV2^b+|UF^pZ91uFU1gVVNFCvfjad+`~A8{<+l^zeR>k*xtYyFLUjY<7G) zmHd6D4WlzcQ@Z(em=?Qa%ytI-3z#9H!#%9-c;EVq3uXqWDVgL1dxzf0qa|ahs)HDl zj*BqXp8}9fiA|Y|0WgO#I3tZkU3ib4mWC$6mT+4vQo;fJmi+#vl?2G2+fh~_VJTaW zRNd%2!1m+c_FMa{gWmZKXNx$v1UiXk+tK0}5d-8V6(EJTSAEFjert)&XIJ9box?#NQ0KQb%!OOBO!6ko=kbt{$>WF;(Zs zlNx3xdLF(JHI+AcXfjYsXfQKJm<7utfO*V32z`6@bE6A~PeRZS7Y7%2$6usd{eC&G zF>~*h6Y@(VYNYMi65AcxZij(s_4?wH(1%}vha0z{z)@qw8+f0YJ=<9P6$=w^mdFY0 z2KIS-)dO2MKEMovsv$H3YRkq-1e5stl$t26@PSeObLFoq^=%y7k{SSnt!j~o(5*fT zv(DU7kJyg-1j@*KYhlIERDmmb#{9~>$B8${VHnaS_$O_}<7@Uy{f59L-y26*@CA`k zJ<3WYq{3j=dU*pe&Lg%$ZH1kj03KRtW@|)ENx+t^@OJnfHpYhhZ|IbE^vUkAWqlY% zF)gl@qx77SGC2LM^*3;jtE5RExTRK*6VEICd4D00u!JyNr!!cK|Rma z#MZ06lU3sh6de)LV*FS_#OCrj2rxl8TJF58WduzyVbJyC%!c#6m;dH;9y!w?I+o$j zt*YXT2xX1;i0j(HSGjc>QcXgC8ThCo5YB$wOoK;Z&cDaZLjF*{xw@Ta;D{Z`d)U1x zUZA&6nIuQ%@bLFs(pxF*UU&*1Fw0ag(rC-yAG-Zc;N2+fubZH(NSXwZR!MleyQEw5 zTt+B#wGY2}6=vr{HunB?6!V`3g5fL)+`5jCh$@eEi^)N0l+1W-w(=T$hp6wW_KK;> z%rI9iT`gw9{d~ z1A-!#Nf2k;UoyPf(x>cen&GJISo$Y&T1E}nGI(Q<%$IuagE@eI(Kef{@&W+`59{&W6bO(* z7*5h(YZpqVhSMb}Lrz+J;OiqI!kxw+6`6e>L2gqzdll}BjC^QTI#jGNi8(=i6LCb8bXxK=5h|1 zt5LKrS$>!!&d$&mL}GqkpIk__mdTq$P~U1q#9qEg9TXskiX^11@sS!zdW;8Kaa9?t zkyk6>t~G+eKn^w>xsc+pcDn^gsS*=jrkqW@HXMSJA6s8a^a%G|NZXO!6LR!=jNcnmxIv+je2Qhp6^E5 zgMV&0e)c1-?c+lA#0hXqt&&DEohK;1tWRyO=btDjRpJ369o=_j?%81sn_XJ-s|k1R zhg>~iCa6#7#Vc~EE65hMC#+r&Q2S)a6!J<9Hx%F%ooGqyO}+(3xJG3^yK*}>0-%g8 zohOYN@!sAz03;!=ClE~X96<@P;oE$C(@V0{=xwsZ zXS#Oyh0ZI5enU_^7}ylGsbadF?Ti<6KiNEHF-Qslg@iuy#Z;}QTq}NO4qEIM%e4fR zkF|{*w9^4OHyMgSl-LJ-)%m^YgJ@58=-#E}^ zabSQ#NEpw`cY(mZ)wKcRnOHa8_P`2$?M(ap0$ErH9p}B1I}LR6L7=bp&J+y~ejaK_ zZ7X@yBe>a8G5w;NsjB`e@%(nyjFvO zZgBn==i#{XU_FJpXt3tsyR_n#Ti^1rg7#p^?bZ2jS49xaZxq5vJ3 z*A_%Qi4d!gcP6?y2*Y~V*}bq1B#H<3G`$vMcIA3zLJ+M3N@Nm1Z&#qmNqJubE3i!o zKh`1<&%jubfvMA6=i&!Qq5SmF(X$>}`%5?8`H;nKUy^q>gsT_=aEmvP;F8{1J4g^N zrd*=aW%~Su_q8SH!)+h(Sn7{xqIS0|*|r6h>j?D(>9XG~<~wpECZO+@Q)%QS3@(K2 zvE|pzjiVN^XEVMP5;6$PWzPHi%NBq$gKxH z6j^k+g@kjN3JS36KKp})H(E#D6n7H*xMdk-ytO_j9#)nGZl zO3zvP8D_W^^5?^5?i&_W-kFjov+Mc%x{K~D20uGWAq3>0xpN*7W}je==qQX6jLOrs z`pkW1XZgBB2(oOts0afye8?&v16KdjB&-5Q36APEiD3gpPRlWT<$AztHyG`<_wiUZ zh9`cMU))3I`pe!eyvjllIMGDKY+Zov+xQ-9(tJ=77z|yML>lE%_~< zxFuU+1V*HL&S&CNTYD004jOb8zCVOl%~vVlc{!kFW|A%w$vayF1Yy{3WC6-Beln75 z0+y5v(P%k#D&F?Q@@P9IH%Hfx1g8!@Sxh=2AA}uhyQeQ2isCf;1(r_|%>NiW#_#_1 zJ#D@*+C+}vfh&tq$1bri{;Z`c?s+cf@uy|5X1WCva1FmBiaH)`QZ3;>_wU$oHs}_b zTUhmg$jUjUP2iFR6L1uT;Pa_nl{67{(iE{^&b|L}+!dH%nz+^4m<&QF2lErTsoR-M zaHX>=N^JYt!;^;2!jZJbaX^!cg&+h+tO?d5opBsK#pPM?^^OwWn4nQV0%7ee0H6-T+jl8%t05MTzp84zGm zS5W-Ilu_B&LP69JQ;GRwb$8dLEGGfomF=*CLVaV z1Bz|6z8+t)=>1?keILQRo(PR{7=XBqT4z9%cHcSu)JgTNi0 z3{;OWpEW1Nh{Ewem09ZB%J_SSJblaE;-g7?kQQHL(B=49wu-0##e#Pl_gWz6rlu21 z3BCZV8744<=w9u?E%8kNhI|`5ubiIOUSNWAq1PAfKg{PWER`MgyWG5pW&~gHk*6RI z-P((}o7K42ndZhY9C3J_psI7U1K#_ zvRLpLR5W4}681yHX2&=QxF$`r0cWTb1F%lKxR#C z;Fd*?9VOl!LdsXD`w@_@yhdFX`Nf7)fx5h8+5IDVZ9g`+1s`1aBjOdHxg3@NtSyjV ze*uVMk#D$zmdo|oIdzZ!N*ef5E=wTl&*+Xp4`4G+RV~6HMK$KA&hotxNe{iVa`QNQ zNh*?E%+X7|z)Hu`AXu>gMJDAIKlO#ADPh?jD0wM~;SJDz$Bfe9aD4HgP0Uj|XEtPL zwvPhu!N2=i;*mOL96`A1u3wCix^jvWf&oQJsjL{MUM+!(G$3)u7Nyq&vWh`fMsmof zuj$nyI09*8KVHWXt2zM*utoX=!!i`3+w9~?G#Y5wCe`XcD#lErGkzJzaN(xfys`ms zj$*|YAJD6oQ6u#8OE2RE%1ZX1AGdNppfsD=F7x!4}yAHpV;Dm9th;qZgNSjkl{YAZ+ z1i!y)B&P!6Z8&qj-Yyo`sls|AO!28t)&G)JOYOby1qZ;!+ap`R@@O2R?b^ zu;mNn*q+TW|I)Gw(4aS;OW9M87@UsL2ixEUlS1W?%qAonfCSuJOBMw8a;75Sy{-5u zQ9F@m6AY`L0y$(VagRxq2JDp5(@Q@BiQN6b!`yIV06zp$=fyPOfdTW=yVv{Q2|F*k zx%CSQIky`0J+oBjJFA|PKIA+{8P*FaY5o2j&3pl^s)d2g#|RGOyKLABa5Or@cOngG zW(eMijAGIrQR`o?Im*XSbhR{%h~`oqdX*;&(iD1ljf5{&Laf zQU5DsrX%YcO3Z4UaZQzlg|^HDs8Zrsy_Qfav?79)e}WxV39(m4$!S`6zHcgInDhGR zlngYktYR}*W(x~6k3>D)7QEQrI3pq@lYPe|`Y52Ru~0j(CnmWgR_1-D5f@&omeSEI zLN37{ACaIbh`$@{)7Bs`pZ;8|`$M5eZ~t1`?Dw>~5h5V%K=k#GANcr|u$L6WO90Mu zn{)%!#h#kys^{Sz7_VST<^*6rhiG7`0{#An(qm-|B7uXM3q7&6uwo=UOcsz6K>qZD zKbZ+hDqYzpjrrZN>Aig#VSs01ZlJxk_pcl^@%hAUeZm)>q+m889BWd;C=K9Ef<$>e zmB7|3CBUdjm<8_q;_K44^-%eG48P=*?12;=(N?~6AhoqzB8r3bg&0^V_`RTtB{nbS zR6L6Q+>(;s28^(qKXC1b8kEcFxMHNokeO&RRx`P3w+dyEW)pZJh7-4bWkJZD*utAO?Hj4-!-z?<}qxRhJ2MV8#aaKHE8aX7l zTSx;u5d|eB7^EQO@FlxXhs`g3B~wtH;g-lT-tbeR!xOyVVN^@Bt5UpyVOyfm)M;!0sp9@Vl`FC5A) z;n!#YbgVD0iz+3#I^cj*j|JQ!w<`@pD27iXceL5Qo{ediok1~FG5m9%<6edh3wsR= z@D6KP!IHvYiiPEuT2zbl{;xLu7dI9A&9&({@&oYAp|%AX-S{#cH%Y3n^p@Y1ZPS766(t@J zDU_W4@a8XM1wZh2Eb)=+B7q*bh31Uh$noy_4o;Rr zzMyK!iEKi+KpK z_(J(3(HpEbeIXJL>ULLhCByhh`qSBT_CIRY5k(cp z!Q(^*v5i3Nk|I}$)t<`s4-OP^$e%WlWiL!u`8rnfX-W=(PtgA%wR(^vLJ&L{y@&J)Kg4zCuNN9>VnujR4+$vUf!@IJ4Kt8S2-8PEzc;_&+SUlrdxJ>psRv z0lU;`>JfoI*|}<<#{tc>D%Yw1d1Emy{>GnXTuXpu)F4-;Vu>`DY?%~l1;$g9>tkb^ zQQy-N0DDG^HU0Ddbf{RW7cDN>xq{d2->Jwe6#y z2sbBFc9nd%6$GA}$DH3E?hGg9)UqJ%S1@hxTVjDS(X?{TEvY~NKq63_<&g^r1Oxx? z&r2MvaodHb(fb4c=$}6TkfV;wH}EUUHweW18>|V3C&Jiaq~2^o!gn_##P;9Z%kCq`6j*3T5{sR0V9@=sRPapv;Df+@ zWrWkuz$Kl|JG*Ir8q$+MT(7QQpLlpZG|i&DON#W9|B-g3Uk1?X_OXLWy6jMqXvNua_M%H+{Ma zbR%W<4jp}38ly}S(cKN5EgA`Ss1@ifN<_H}_~ZU$__%qW3*_l7|LOldG#x!KSt%Gb z0F5*?s!`EB)BeWF9)7RlUt8U!G1~~sy%|0>1^7j$Us31o=k&d9x#l@NH2d}N zf9Rbc(ZUtWjQPTBB7Hrk{YdL25B{WK?@TfZAR0o$kS)xDQjQ~ip;IjPho{|#xCgj_ zpsU1=eCT=F+2u1=+jL9BNk%j XA>y|1K%&nd#!!~mc=1Wr9QnTh!e_BG literal 0 HcmV?d00001 diff --git a/doc/kpresenter/tut22.png b/doc/kpresenter/tut22.png new file mode 100644 index 0000000000000000000000000000000000000000..b96c2f5700c884993886280d1050a5c9bf14e5cb GIT binary patch literal 40281 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 literal 0 HcmV?d00001 diff --git a/doc/kpresenter/tut23.png b/doc/kpresenter/tut23.png new file mode 100644 index 0000000000000000000000000000000000000000..9da71f83280727decc537356775b052966476f42 GIT binary patch literal 13593 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 CAJXOk literal 0 HcmV?d00001 diff --git a/doc/kpresenter/tut24.png b/doc/kpresenter/tut24.png new file mode 100644 index 0000000000000000000000000000000000000000..d7d20eabb64990fdded2b85773bd3804449c8c02 GIT binary patch literal 11811 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 literal 0 HcmV?d00001 diff --git a/doc/kpresenter/tut25.png b/doc/kpresenter/tut25.png new file mode 100644 index 0000000000000000000000000000000000000000..4454bcfeef08bb34dc22b1b7a3f8c18c3ef2d3a8 GIT binary patch literal 432 zcmeAS@N?&q;$mQ6;Pv!y31VPiTm)oK<^U25FAbgefdUntE{-7;x8B}5$kl8h;Cj*L z|Nr@yV|i}48c0gK+NsT1@|f|c`(pE}?;eXO2r0QZskn5sa7^qHKDuMix><*v+7lT* zEf9u_XNj-<|D&syz5Q}~VgK)|-2At%{gnxSevQ@I^%C#L1)ud0MywK+{cY`X|M$=T zvh#K+vMt!c<8aRvY`jN@z{y<+u^aRv#DP``a0)6Z0>z^gjTlm8r5aA9GkgLX0}^s- z@wmqNx~cTwE(M^gfZ9MxFL6y|)OdY?A;gY(LODb?(9%sn!`5(LV})u1DxDbC!Q&9w z&bHu_WW%0ru{K3o1 z!)z?(>|g!3?(3n$+e+<^PxU>}><2Pk0IYq9uTnkh%DN1cKw87i_nmLQK~&4(#Z$tg PL2=>f>gTe~DWM4fX5OIQ literal 0 HcmV?d00001 diff --git a/doc/kpresenter/tut26.png b/doc/kpresenter/tut26.png new file mode 100644 index 0000000000000000000000000000000000000000..302216b53209b382e1342c30d835311c815f0001 GIT binary patch literal 25978 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 T`ljSN00000NkvXXu0mjfy*g89 literal 0 HcmV?d00001 diff --git a/doc/kpresenter/tutorial.docbook b/doc/kpresenter/tutorial.docbook new file mode 100644 index 000000000..a0aa1be2e --- /dev/null +++ b/doc/kpresenter/tutorial.docbook @@ -0,0 +1,510 @@ + + + + + + +Neil +Lucock + +

    neil@nlucock.freeserve.co.uk
    + + + +Krishna +Tateneni + +
    tateneni@pluto.njcc.com
    +
    +
    + +Anne-Marie +Mahfouf + +
    annemarie.mahfouf@free.fr
    +
    +
    + + + +A Step-By-Step Tutorial + + +In this chapter, &kpresenter; is introduced using a simple tutorial. We +shall walk through the most basic steps that are involved in creating a +presentation, and adding some basic effects. + + + +Start a new document + + +When you start &kpresenter;, the usual &koffice; startup dialog appears. + + + +The &koffice; +startup dialog + + + +The &koffice; startup dialog + + + + +Select Screen on the left then select the template labeled +Title (highlighted in blue in the screenshot above) by +clicking on it. You can check Always use this template to +make it the default template. + + + +Now click Use This Template. This brings up the slide +editor window, where you can view and edit the slides (and objects contained in +them) in your document. At the moment, we just have one slide, with one +object on it, which is a text box. + + + +The slide editor + + +The slide editor + + + + +Double-click the text box. The cursor changes to a vertical bar to show +that you can now type some text and the background of the edited area +becomes grey. + + + +The text insertion cursor + + + +The text insertion cursor + + + + +Go ahead, type some text! + + + +Adding text + + + +Adding text + + + + +Click away from the text to de-select the text box when you are done +typing. + + + + + +Add a new page + + +Let's now add a new slide to our document. To do so, click the +Insert menu, and then click on +Slide.... + + + +Inserting a slide from the menu + + + +Inserting a slide from the menu + + + + +This brings up the Insert Slide dialog. + + + +The Insert Slide dialog + + + +The Insert Slide +dialog + + + + +Select Use different template and click OK to add a +new page after page 1. + + + +The Create Document dialog comes up so that we can decide +what the new slide should look like. This time, select Screen on the left and double click on the +One Column template (highlighted in blue.) + + + +Choosing a template for the new page + + +Choosing a template for the new +page + + + + +The new slide now appears in the editing window. To change between pages +of your presentation, you can select slides in the pane to the left +(highlighted in blue for this screenshot). + + + +The slides list + + +The slides list + + + + +The newly inserted slide has two text boxes. There is one for a title, +and another to contain a bulleted list of items. + + + +The new slide + + +The new slide + + + + +Double-click and type a title. Then double-click on the second text +box with the bullet. Type some text and end the paragraph by pressing the +Enter or Return key. As you type new +paragraphs, bullets automatically appear in front of them. + + + +Adding text to the second slide + + +Adding text to the second slide + + + + +You can de-select the text box by clicking away from it. + + + + + +Insert a picture + + +Let's go back to the first slide now. Use the list of slides on the left +of your screen. + + + +In this section, we'll liven our presentation up a bit by adding a nice +logo to the title page. To do so, the first step is to click on the +Insert menu item, and then on +Picture.... + + + +Using the menu to add an image + + +Using the menu to add an image + + + + +This brings up a file selection dialog. To learn about this or other +standard &kde; dialog boxes in detail, please consult the &kde; +documentation. You can browse by clicking on folder +icons or by using the browser style buttons on the +toolbar (highlighted in red.) Clicking the up arrow +takes you up one folder level. + + + +Find the file named koffice-logo.png, which may be +in a different folder than the one shown in the screenshot below. You +can also choose any other graphic file if you like! Select the file, and +click OK. + + + +Choosing a picture to add + + +Choosing a picture to add + + + + +Click with the &LMB; where you want to place the loge in it's original size or +draw a rectangle with the left mouse cursor to specify the position and size for the logo. +There are selection handles (little squares) visible around the border of the graphic. + + + +The newly added image + + +The newly added image + + + + +Place the mouse cursor anywhere in the middle of the logo, and drag it +to the middle of the title page. Then use the selection handles to resize +it correctly. + + + +Dragging and resizing the image + + +Dragging and resizing the image + + + + +That's it. Now you have a picture on the title page! + + + + + +Insert a &koffice; object +Let's insert another &koffice; object under the picture, for example +a chart. + + +Every &koffice; supported document can be embedded in a &kpresenter; slide. +Let's choose a chart from &kchart;. To do so, the first step is to click on the +Insert menu item, and then +on Object. + + + +The Insert Object menu + + +The Insert Object menu + + + + +A list of the &koffice; available components appears as submenu. +Select Chart and then outline with your mouse the area you +want to put your chart in on the &kpresenter; slide. + + + +Select the area where to put the chart + + +Select the area where to put the chart + + + + + + +Once you release the mouse button, a blank chart is added on the slide. Whenever +you work in the chart, the toolbars and menubar in &kpresenter; main window are +replaced by those from &kchart;. + + + +&kchart; menus and toolbars embedded + + +&kchart; menus and toolbars embedded + + + +While you are in the chart, clicking with the &RMB; will bring the +&kchart; settings menu which allows you to modify the parameters of the chart. +Please see the &kchart; user manual to get more information on how to use +&kchart;. + +Click anywhere with the &LMB; outside the chart to go back to +&kpresenter; slide. + +A single click on the chart will allow you to drag it to change its +location and also to drag the borders to make it bigger as with any other +&kpresenter; object. Double click on the chart to get into &kchart; mode and +modify any of the chart property. + + + + +Add a shadow to the title text + + +Let's continue enhancing our title page by adding a shadow +behind the title. Right click anywhere on the +title text. This achieves two things: the text box containing the title +is selected, and a menu pops up. + + + +Select the Shadow Objects... option in the popup menu. + + + +The context menu + + +The context menu + + + + +The Shadow dialog pops up. The distance between the +shadow and the text is currently 0 so the shadow cannot be seen (this +part of the dialog box is highlighted in red.) + + + +The Shadow dialog + + +The Shadow +dialog + + + + +Increase the distance value to 3. The effect of changing the distance +can be seen in the preview window. Now click OK. + + + +Adding a shadow to the title + + +Adding a shadow to the title + + + + +Now the title has a shadow! + + + +The new shadowed title + + +The new shadowed title + + + + + + +Change the color of the title text + + +Let's finish by changing the color of the title text from black to +blue. To do so, select the title text by double-clicking the text box and select the text. + + + +Open the Select Color dialog by clicking on the dark blue A +icon on the right side of the Text toolbar (this icon has +a Color... tooltip) or choose the Text menu and then click on +Color... and change the color to blue. + + +The color palette + + +The color palette + + + + +Click OK in the Select Color dialog. Changing the color of +the selected text to blue changes its appearance. The exact color that +highlighted text turns depends on your system color scheme. + + + +Highlighted text + + +Highlighted text + + + + +Now click away from the text to de-select it. + + + +The finished title + + +The finished title + + + + +Now that there are two slides, why not try a slide show! To start the +slide show, press the play button (the blue double arrow) on +the Slide Show toolbar. The first slide should appear on your screen. + + + +The first slide + + +The first slide + + + + +To advance from the first slide to the next, just click anywhere on the +screen, or use the Page Down key. + + + +The second slide + + +The second slide + + + + +To exit the slide show, right click, and then +select the End option from the +popup menu. + + + + + diff --git a/doc/kpresenter/zoomfactor.png b/doc/kpresenter/zoomfactor.png new file mode 100644 index 0000000000000000000000000000000000000000..499738905c9d182d00d046eafd611e69b4ff1405 GIT binary patch literal 1302 zcmeAS@N?&q;$mQ6;Pv!y2?Ek3K&-^U3?z3>=KasWz|0Wf6XMFqz`)1|M2t)j#KgqH z%*@8h#>v6S!^0~eASfy-CM6}UprEL%tgNDp{c2Cc{uWw*rU}$J)WMpJ)Y;0m;Vrpt?W@ct?Zf;>=VQFb;Wo2b;ZEa&?V{2<` zXJ=<`Z|~sX;OOY+yL2-cV54UR~Q%SKs)5 zc!Gcb{{8*;_t)>=-+%r5`u*p(uRp$j{qX~czWsoM??1kO0}6lt_T}rB&!0bk`t{>|I>uU@@-@$%h^7jK`xc>VnO^B2$VzkGJ{<&z7~pWJ-<`0m3;kMBKv zdjG*QAi8(|>D_xz?%aKR>-NK&w;tTMdH?#2d)Kbty?X7=m8-WeUAcMb^398vZd|x{ z{oMJhXU|vMC@XmdQHt#vIX3q&A zxnu9a-Fpx0+qZB3zPXNuVHF??S%HG-o6Pvy#!Eu zXJ1oODqPshPQjrIodf zt)0Dtqmy$$Olt0=H5Xrf|MM^EO!IDFHtO?qaSZV|{&c!y_8|j_w!eYRdG*hJ8Tj(2Px>77BeDYzr7Jb_jhi~s`F)_dF zux>@;oTZKRO0xYcOTt35x1O1M<>>NbPs57UOFyaZ= z6?nN~V$`HBlJ2*wgWrrUw)ucrnwd=T??nIGh#%{wt%CRcy*GyR$y zd`(WFYO+lW~ zYp0#(3~S!;t!-QH72_ZCmT__Y*e82nPRYX~Tf?VKJGbsflS16`mP=9XLKZh=j%^8_ z_U!!WKZYEqUQY@6b>zd(3i~^8kx}MvKHNX@u+&TEZC8!V#^v{yFx_78a+2M?4jEgTe~DWM4f D`QGcw literal 0 HcmV?d00001 diff --git a/doc/krita/Makefile.am b/doc/krita/Makefile.am new file mode 100644 index 000000000..085981d9b --- /dev/null +++ b/doc/krita/Makefile.am @@ -0,0 +1,4 @@ + +KDE_LANG = en +KDE_DOCS = AUTO + diff --git a/doc/krita/README.SCREENSHOTS b/doc/krita/README.SCREENSHOTS new file mode 100644 index 000000000..bc1d55bd0 --- /dev/null +++ b/doc/krita/README.SCREENSHOTS @@ -0,0 +1,7 @@ +Note for translators: + +The file "mountains.png" is the original photo used for creating the screenshots +in the Dialogs section. + + +- ASK \ No newline at end of file diff --git a/doc/krita/commands-dialogs.docbook b/doc/krita/commands-dialogs.docbook new file mode 100644 index 000000000..758a4924c --- /dev/null +++ b/doc/krita/commands-dialogs.docbook @@ -0,0 +1,1411 @@ + +Dialogs + + +This section describes &krita;'s dialog windows. + + + +Dialogs for working with images + + +The <guilabel>Color Range</guilabel> dialog + + + +The Color Range dialog + + + + + +The Color Range dialog + +

    %hD$y^*!1-i}tKURb9+t9*oY!n5>Z&aoQ_5#tJ zY}h>__+bt#=9LQRvr!IsDkhC&i}Ago)^ahp*SP$}Z`$cAFR+GZ7rAE%n3 z-4JK5c-tjyieoKw8S8iLg;EN>@+Mi?33*RGjiG1GgdNQ|61YyDM>-XlG$=2P`DbD)c92{j?54NPfO(@d7eRu~hiGqT*685m=#Mz@rsu2=L17!Hojdq7Xb;aEEd~95_kk*XpWaBTzWDm`uOYt_m#d+PfRizIuV-{|fY3;wsBu2X} zex#B;$7Sv-m-qA1;}*tR3~S77haiDfS;3s$&p!4z??j#)0Gmq*&6zvT$vCe|6@o1+ zC=%{07&=)l-UYuYjiYvbqot%)CZKd*z^3OTbJk;U_(H zG`IDE{y^f&eA=25L|`ogWnL7uzJBMq=F!s!R287wk*@dRHs&jxA4E*Wv z(%b2G;KtUPbutlRV-+?^qVfqxalvy%hPBt=Gm0d+pQ;fUcrln#MC=G5p=3#VJwsj<_Iz2fbI3c)$A#gxRI{P0fz4j#RiUv`iW^Nz ztmm`odaM{?p&*i~;uxh>r(#q?4&8f zM4NDgTA_?OxC@{fM-~Q~8u9{U#wJO8bV9Vx1U@LVwcDLO*)Q(qUJp$-7~Z?NR*HTo zwFFc9qU-Vep5i4ZM-I^?i%|{J2MMFEEM5MP$+u0p+LhODyG+&4=-{ej0lR^(?a51V zXtcuPh2>2d?x1b1Iq8R#g7;yeoTll{?xH574uzdAnWHvQTh8&WU0v;D3TGj{a=F8m z=1_qft{U)?VN*U9Zf7?+<*LP2y9;9qdm~~2SV6dF-Y84U(S(@8q{b4@?4yZA3QvI_ zd;B-}`_om`dKr+y@*sw`lzqPH5a^3;8T;`0CFOUbHjN-9g?Y?_G~BxaHfH|9-B7Q{ zx>_ad(16}#(gsvFX?o=FpsA^{5c~v;8-8$Y6;hngZCh6Al)e9(u^}(p$e{ZG!odIX zz(6roV2B?ko>RCQysoeV;qInS70xEdSLw@0q&x zm?3Y&y=*i2BEU@CdGW}*H{X|Di15RUcY^N$Bx|)k z>#oyUUTvvl?Epyy=&qebbJApYp>rxorMz)a<@IQcX}l4jq{l+=i855|uh^sw6R^cK zgKr)&`n-T++R#VF0iK6O2lM$_Rj|Pe<6!GIF0NCPUq?v}Xg4eXZ{^^U52Ed;)c#cl;l-mg|a3A{|~ft2qORh literal 0 HcmV?d00001 diff --git a/doc/kpresenter/template04.png b/doc/kpresenter/template04.png new file mode 100644 index 0000000000000000000000000000000000000000..f0e69a16268fd1c68f9893c1f51a8dfc3e736f0d GIT binary patch literal 3502 zcmai$2|SeR7stm8Gt^iL8T(e*Y5s~VOCNpnXg8ceH$_^(WB3rR~3H|1Tc=E5Dlk*RtPg zp|{fMUn~AAiNE6C`L#6DT4=S+wCZLWxw*N4eV_K7(`bz}S_3^%B({?`eG}4Wh+k3jE!CUc zXM4@(c>iyzswxSDlCp~IoPwJ-^Kx>s^YgNb^3w6SA?0ZvMR7J65pKU@y|CC2zo=wP za*20F)v44fXIzD4NivQl!Q5{iPNO8g>wwhHd$5m1Lf zcZ0V|bMc6BLbidpctKoSK%Cq_AQuM*kb{E*0ATx%utzqBIe}~kLO?(sP9T&Ev>nX3 zgL~6Oc(_Eja7k~n+;Br?)+o;?`2bNB_l)(N?kn2N|mV2*Q5&N0hBDkp;!Vtr5cbSdoV0Q;EM&1`cI z5(r-sZi<3&5v%p2bh0Rao+!W;1wZi5fn|<8#t3?1tr?cwM(TqvQ)8f?F+(=*6YGaVA!6P2u>#$WL;?g^Dom7nXnc4h#M7+*& ziv7G1!^gBDwdH{`bL851Kp|mPePc*Z``W&lr!IQBJN4kWiqe=?mf2nE^Q=r3!P!vW z?X1SVS?BIv2Ud|5Yi!7uaoI_bFWLU|LFK#$hcIdK)U)RvF!OC1Gai)YAs-~wpgk)P&#!NWG*|R*$ zZDDqzXGi{pGs71hX^5jO6@Y6 zgWO524Y~N@S1l1`;%cfTfr}B)a|8yOI|3E6R#m+{$Jj-)clX-7eeD$NR_%TDmW!F_36phO&s) z)?C+>dhU-R;;p>-^9#NA4zCp8c%a=U0_i1Ik%8R`t>+or-cD2{EUrzQRf7>-xWiR4 zwuDt6`YbTU=M?*|hF>y6n^nA(fAq)Jt;A|k-}$(R3&{zTSvA%4WQ$=rj3!1p9Ujel zB~@3Xubj%Lo{kvo-D*;rUZeS>A!c>~RcxyqB6vF6V&$}J^xPe`)Z|>o+AQDQ{7aRR zVrlRX&YG`rho#MTQ|x$1C02LhiQ9~+3&|+kj|QTGupEQqV#1!&Q!%=N6V)%Z zBo0YRqB?e(kP)}D=Lvp1?b6&*Iv!LgCK7nN0Cvw?{JVaC+RWGuk~Wsci>JZyDVt;G?}WzW3(d*i-QP z0qB>>tp|$U#r|(M0WP*(o)CHuQ6=1}{l;@I!F5B6LZ}gOqISf!i9RK@4HvTai!2e9 z539RjdO3{f5aM{+RLVlF?Ulw&+U_e;jD{fh)mh-Ntrct858z!krH}qDTT+L#M5zurgGf#AsWknEkF;>bX^7=^{r%y0O|<)K~4R0 zU^FH%BedpHuX8xMoa}Wy36glmC?xF99X49*{{kzC4gw=iIVC=u(>I$?ewENm9;p^b zZaloWYBy=J=Bz5A4U+cJzQ9}T+2Yt^7&}TJ}#q8cgwMNTlNadb|mEBDg8>e zIIHRds~<+Bmi?7`SePK61rJgM8T-y%c%~&lvq0=7bA9rL3sn|g)ITe9`+t3XQ>?Qu zj&&?54#C#(3V#ZQU5mh#XVCL?7ZB9C@(A)c)GztE{VI|^Mnh{CE5 z_*p^=iJ$0${9Gj>;#V8bzATU3zJ2fptm1qjrHAii`i)BJQ3cO?8LFe#@{=QKO~9^wT`ljT0=S5Q-aU90L-mcBlL?JICC(g-Cu9YQ{?N=JI=i>+D0L-Wxt?=roA^jeWePaKoLqf#3ol zINk;)F4UEYa2-hRFrg5)wXS+NrL}oEM-A*U0kMy8v<>s;~IcVMK9W34qW5=pXG6ux$nO z(>VZo)QDVr2mmYq`q8#4wo7wBWxzkP(H(FW=LrD(N0W(0Gev(XW9z@jm;n5Av7Ja< z6X+*x(`Fl0tA=KRez};`FGm#qMF#&btI_mxfihrrHA25s$|Yq3v`Yj!7jqm^wb{R# MAGR{a8=i>yKg@5Vy#N3J literal 0 HcmV?d00001 diff --git a/doc/kpresenter/template05.png b/doc/kpresenter/template05.png new file mode 100644 index 0000000000000000000000000000000000000000..4faa5eb2dd2547160b91fb0a4086ca6abab6c52d GIT binary patch literal 8981 zcmZ{K2RNHi`!_|c)+kz(QajY%ds7iJMyb73jhZbLqxP&(60=rpN>O`nB_&ktQ5vyV z?D3^<-~aVp*Z;e|`?^o^ zzU|R&;o#um=zBM*=lef^+k-kA-8QRDK8tms^YzI~EqTkGwM!!%OOwNk(?1rbCzofZ))#+mt}mZr zj;^n-Z~ljF|6SbPUfsrcYiMIOw4VM&TkFP?{+Wlwl3~BF7DMX?pG`v6wL2u&FrO5?xlaak)?J~J@e)Z&)b;+o#(25obPw)v#DMnT&Wvb&-Rh5`yk{0m3@i$>p9Am4wP z^Qf7A`DGqlzM!9vR>|BFir;(^wf`h&o6BR3!+4%Sd4^80j~P_Us0OE(O=FY}=aBW1 zQGcaw2|?7$;2cCBk4M&T7Ipkv7_)=V!ABUN#?_pFqZ2KbVWwN$xJ<-};cP&YMIgLAY?ETMSs z%oZOI`$t2)PX0vkG&MPjpSs2UX&!1$#D6ZvN=}t(?7+-I{)s@{LfNalth_nEp*hpq ziOR9L9dAJvJT2mI$GlWNJ%nf4&QsYHu8M8 zh592_wqQqpX{8M~!QG{~R2H(&3#Pe9v5WEi^7ipHMk=-5YT3S#UT!cU;6)Kb+gMXL ztByB+uYnCXI5uSHGLm|m{cDB5Ff`qNVJ)(tG!yDWY42Wgj$wa z2w8u2=r-2>JGjDIIO}pIE+@Rvhh9VMdy4g|jS_Xj&?aBndw3Dc50!NS%JYiVV$ghb z%?thvSB(-KAzDeTr%e~4$u>~gsH1JMZL4#K-RX)4U^8!H%M^nu$)($rwxBRG@^*>V zSP7W4;4ZZtf9wdaiOz~>-0&1Qt>Z3=D$8ATegRR`#d0r6Svr!%_02Mf9qL)$bXzw= zmUOkIiS{Qk&X*|+-sA0w0lgVNnrRbiV$m@fqDzYX?OUV6!CC2HV&>K>A}*djs@k33 zktDO5!Uo<4kAAX!wE=Jy-N#TvyS{l5lgSfaa0XAImlLd@iTsjQc2F zx-xO^ICHR-)D^~ESGjLp-EueCMW@aaj&3nRLIrEuG?fex|JsK7&Sy-wAt4VrW%+fyJOhj z#T6(7;Sc_oNVkE0t@G040))CEH;YTazNnd<@7QcjNc+mboX;GxM;JgDxGa^ ze@&OyELWBSc?ofcDe2YQp1mtVFI`u3=+Sl%iDM%0bdF_%hKIbOBSOasl{++FcKamG z@Kpu0L9iWSI&_iUbc>*=L$g(he_-zpsSGY9m>t`P83$+zYp0k$YVc?oyVLxE_xrwu z18zVt%+Hb))MD+LyZkF7rV}bL^!5(-w3sri1K!!Cq-~b&X)=KF zVq&`DdL{=5e}dKFAjH$E93@;aJOgn3WDZ{)P+7xx{Z(-bDXpVZh?Bj-`&ESO;eOz)*&N6-zbYGz|KQwE6^|U zoRDn`4hos`dX}ec1s{TNw&ui$;Y4woh`_epgQ9Uqr&ELbj3fx^s9R|UunoU8fb$gk z$K6tuZI{th$I#l;V0c8j7yvee>gRy~U|!+Cyf0E|`g)(7ftaeoSHM2KdE}9$mX=mq zt(+{czpM8w-_v&h+HkiCK1~zZ4i?((Itbzh56%xZs$OUmM31QC^#s^mOswFUs&ZGO zjPaGBKie9`MO`b$IHjakK5cGFyk6gm$e4KWdBP#q^;%G60TE0`QeaxrcIXdzf}J^5 zIw@v7aJy59OQUXA5evcUHmc7-GyUCYrE$wsYnKvO33;FkZazk@+gY_It{hsc4l$BOh?aqFie%#S5PaQlU zBO44nWn|xk5VobKPlGjN<;m3!=rA@tf1tdVAfIV^HxV&0xMV}I;P(n#i-l?$I5xoP zS>$B1)+M=RrF$c8k{En>U~V~yQ#q2n`{8l)x6HRb9Y)aMt@C#RF`%u4ZAk-TLfD-W z)b;uF7rkTp{+wEv_|YcBOzsv{&r*&;b#V#0mdsIo<)1n>H1EM|#m8%#1Ij-67BEe{ zIMrO>56n+V))$%}%}B6G#-=Rf6N%P4^Sy9-oiAAM`AamJVm38c=BBO&cNnv!rI5j| z%a>vU?9bKLyIw3-g84rHm!XWa(I0*s5juS;&Gd(y9lqLHDt;SfQ7PmDMv!0L5q3AF zAG>s^LO`jj(nN)%$sv)Wypu19e|MfB8~Yu|419<(js42%r^( zKCGBB%$2`usqZtyG+$t~-K%x0AD;PsEK?Frhay706ZqN7u~VCx?Uzp!;b{7a!Td$z z6G5$S6mUQJz#Ei!rbw&-WHFkBHph9rD%JHMdI$h$NiY|pf;Ze(7?md?Aw1x(QaIH= zs_6YyNRX84r_{+M%q#6%_ocb)@T+{*w-?`g0meFgXxk0P^9#qm4zC5}az%c# z39QVVjJ6Ibq2xtdYcxn%=6RpX#);BQ@0tRrD(lEJGUJ7$8t3Z*vDXx&eu7^B51!y?J2fg(J z{RKaFky09~oV*;zy+rdP58*=!_~g=?5ATviVoHd^0B z$FGcqY}qgtn77h`UrE>GqId0wP`wZU z&2Xwv5vWubp3_G?mhUeM{vp){fJN(PQGh9)^Knm{QLTKn5M&ERD%)VsO(y7%kMlM#!)1aNVQ~DT$7nc}0tvsL+hstr_hjl9IJo#-@ zC+m|5U=`?7)DiQ; z4PA8(ymGPcd+K@~uY}fL@z`G|AD?1Z)Zc2UrlF~#2|o3!10G?Z7o0SO9|p~Iu)C41 zsR~s4K!=O#`Tl{RQ6Cs90lt1emx2^tHQF*BC@OrEJb4pqb->iNIt{r<+Y~}_CJV1m79=g}pl%6ZtG9tXTh50t&t zugjSTSVBT0($muZ=yJRga&<2+DRFYOL{B7mk45u<=IC9vw3ZCwFwx1%d%tEalIF+V z#)xCn3+MXgYQmn-5-0IFk!1NhR!j@Jy3>9AIl0(4F7vB5pmMkFzc}teC3ZIm$=*f#$zdEeMJ=~-JWMoX~e`%V=%atD>X}&v>?0hGh8aH zb|CTHnj6Ln4`K-+sh2W$7GAuedZ|ExAyD8H+iNEj4lFKmujpVBtj}Qe*nEDkRLLrh zn9PX}3J)VfX@jB}HLZY3gGVb;N$*fS_JhJcqx5+S|%Qs=wZ&c^-?@ z*!TZ9&ZBEcx2E<;w9l9$$qsj9ThNYYdb1V-|^Ume>FwfU!CwaSYsvl&o2>z zKUp7%Q2KujI5}!Wc_*MNq(2zHXn+1xND9IkO!e|lO#nYc~#;8fV=6VBnK!kQ~kemS}M%wya^;|-5~{gZI|2VQ;RItyD)AZY|=L>lnDSWgVR zgZ;U=c5%VUqY|C-nq1dmvoU6$Z~*Upx~@J1FxnwO9(IdcK^%2%KL z-{!a}oOZ~&=gGK(45nsMe)`0z@_VXJ5gdND9M)SW_mVT3c$U5K?gYmkUbXd4 z!-m^aokqrVL|=FQ-J4!^$eMj9s2)y zEn&{R4JV--JVtotqt+0IbZ3>ktJQvM!F@@*K|f2d+T2k$;A#DxL$r9%0eT6}v$xrI z2WDYJA!}wf!$@;Z@Jo9^K=gL&e)Ib;&Zb|#J}A1e-P$abOjmT}Xj;}LjNuCsjnrwa zkguiO4U@kX?dN~VPwoG<-=3dp@R*8Vyr(auYy`e;70~wx4!gYx*B}(XwafURZz%(r zS&MD(;A^CM!DPk(G`pdjCk~SOcs&Do+9J1iq|*vwMrxAeN5i~;x!I)2_GtJc zJq-u2S9(Q<@QAPbQ;F{1LIhE(kUx6lTb&>~>iRnjw;3s$&O+3a=@^v`=4x0n#30ObqdWQDrmf`~bv3dD*0!a=rfNQn~ z^og&YSVP#_1VVF}(C)&cjR2ch@}F}_xhh5e$7$}RlC?ylhroj}dO@EY)nMCy!{_~O zR;_*ac_NrJ_~VvQ>KBo}enbU$%3@u2MFpz8i<0Znq3DdH=*T4rUy~-*o)2&*az_{IF^b1>moP|2R4Hj%TdOCqBh~2ix&XsWv zEU_pFdcG1*r_I6SERX;aMyx$jES$68}A>HAMhk-}q>{Ek|Z^V`>EfAV^KbT?CyQ;v2XQv}$zH*5mL9KPK9 z?Xj15InN)HczN;oS$|`p9~ZcP5xR00DI6Y7rw$Uu)EjF#(}joMmJWKCt3gTJVjD<6 zbkndu59>_6)S>>gm-nU~eJcnj(Tt;;r_o7uE)^`6rP6Fkk|`(w!QC^?)s!Tjv@?Bz z>DDF7oRrR8YaE{%+h2M;pFZRK^Sao|U_8&RzmFw4R;RE_(g3Ncmj{v!0TiQhJI-LL zNG{rXXui4u#Yav6?I-Asw2BlJvw2}F`TedfDR3c*93SMkzd%4B+mTh4**+?TK3}P1 zV&K|OnmXbsYX*S1Rum9S>tE$g=GAuIO7@C#A$ zrVps=Bu21yB;p@)FX1vsixaV;WF?ZTq(DcjtE(q&i-+Y<Gg7rDf0`*ylcWcD{}Corxd1=fQbCJ#yWH@BaCkIBR5mJ`{AqR#K8@ zPh}euIqa9~`Y*S^VPI|^Vzl1`H;YiNbXW<)rQPbqm3CtQ3V@a_KzSRKF$A21e2I zE^6&x_mYGZjmued)s?ox;ST&8d&ZNveaGL7BIzRwguZu>p5n8d$vtX&St#ik2f8-1VLT~yD>Y5etFqTy?sCctR6Je3iw zH|aFqv3xls8T&{euw&&VbE$tIshN0#gv{xi*A9FQUqAf6n&PdRd6~BqRxxhZ+>xhX zhD=!O&i1l?%%>A>`vC)LQPX4oGl=Kd>ixYdt?7>Q{?w%G?EA}N&Irhr0+ge{ta@O= zPU}G#Ap5NlF(c5%OH)}E>gwNCFBZ(AMV#ZE6Z+;YEEe4w*7Too3-a#p%b&bY-PN;&!4fvTD8#QnuOFuuu{{nc zWa~g8rVUn!Kn1b@NqMIq=O6)wP8mmq5VWsm0HmR#=JWE~_wzNLBkqj`>grbXR3`FH z3pkF(Oh58@U+Gz8%vk!)TcUD^aZ3T&?mt`2BRIM#{<8CT zX~p}Nv5o~$j$SCMz~X9=X1R>>C29JvP1eoteRfJxk;+EyJ) z(rJBRcl~*kF`Qra>+2SprE{-KUexg1?Ci7k^|TwASs(pUcM=b!n&VuKMCn(F8HHr* zh&xZfu74n!a((#^!P?WOi;oSai&?N39=d1jxROu$U2HN;23a*m#?sf<_pOmz%WL{+i<$_!3997LTa=D)EekrQ+-%0*iukPA%=BRXk%;#-0Ej4na$sHB@C=U@XLE2>Z_&-QjJM YEn(2*Vx0o^|1LNhs@f`5N>-u&2St}7#{d8T literal 0 HcmV?d00001 diff --git a/doc/kpresenter/template06.png b/doc/kpresenter/template06.png new file mode 100644 index 0000000000000000000000000000000000000000..e92f9f73f567ad631043ea1e39ebc43c440b62a4 GIT binary patch literal 10383 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 KS?Suoz4L literal 0 HcmV?d00001 diff --git a/doc/kpresenter/textmenu1.png b/doc/kpresenter/textmenu1.png new file mode 100644 index 0000000000000000000000000000000000000000..0ed57be7a0b13f9dac95b674f4a01ea56ba8fe59 GIT binary patch literal 13193 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 literal 0 HcmV?d00001 diff --git a/doc/kpresenter/toolsmenu01.png b/doc/kpresenter/toolsmenu01.png new file mode 100644 index 0000000000000000000000000000000000000000..f1ad769270eea8375539c3e241b09a20143721bc GIT binary patch literal 4098 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 FV1oU#bZ7to literal 0 HcmV?d00001 diff --git a/doc/kpresenter/tut01.png b/doc/kpresenter/tut01.png new file mode 100644 index 0000000000000000000000000000000000000000..fc61e1db18f45f9cd363b58cd99572447081fe95 GIT binary patch literal 14666 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 literal 0 HcmV?d00001 diff --git a/doc/kpresenter/tut04.png b/doc/kpresenter/tut04.png new file mode 100644 index 0000000000000000000000000000000000000000..e609be6059bfca3c318d5bf30d327718fffe71d1 GIT binary patch literal 21576 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 literal 0 HcmV?d00001 diff --git a/doc/kpresenter/tut05.png b/doc/kpresenter/tut05.png new file mode 100644 index 0000000000000000000000000000000000000000..962fcf1f49e103e2ffd04c8ce10dafd4ec947ce6 GIT binary patch literal 22147 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�y{jS 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 literal 0 HcmV?d00001 diff --git a/doc/kpresenter/tut08.png b/doc/kpresenter/tut08.png new file mode 100644 index 0000000000000000000000000000000000000000..4e479869a9902e822102a3074cce4628711e74fe GIT binary patch literal 21905 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 literal 0 HcmV?d00001 diff --git a/doc/kpresenter/tut09.png b/doc/kpresenter/tut09.png new file mode 100644 index 0000000000000000000000000000000000000000..f46e7edf81ecc74775c440ee28fced13eacf4af2 GIT binary patch literal 20327 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

  • + + + + + +You can create a selection based on the color values of pixels here. In the +dropdown box, choose which color range you want to select. Pixels will be +selected according to their color value on this scale (⪚ a fully yellow +pixel would score maximally on the yellow scale and on the red and green scales). +If you check the Invert box, the selection becomes inverted: +pixels will become selected if they have a lower value in the specified range instead. +You can choose whether the current selection should be +added to or subtracted from the color range selection by clicking the +respective option: Add to current selection or +Subtract from current selection. Choose +Select to actually perform the selection or +Deselect to remove these pixels from the selection. + + + + + +The <guilabel>Convert Image Type</guilabel> dialog + + + +The Convert Image Type dialog + + + + + +The Convert Image Type dialog + + + + + + + +This dialog allows you to convert your image from one color space to another. +The Target color space and Destination ICM +profile are used to set to which colorspace and profile the image +will be converted. You can influence how this conversion is done with the +Rendering Intent option. + + +With Perceptual conversion, the source color space is +mapped linearly to the destination color space. If the destination color space +accepts a lesser color range than the source, shifts may occur +because the range is compressed. Relative colorimetric +conversion converts every color to the closest color in the destination color +space. This may mean that a certain color range is mapped to one color in the +destination color space. Saturation means that fully +saturated colors will remain fully saturated, even if this means that the +actual color is changed. With Absolute colorimetric +conversion, the same approach is used as with Relative +colorimetric, but the white point of the color space (the value +designating the color white) is not changed to match the new color space, +which may result in unwanted changes to near colors. + + + + + +The <guilabel>Image Properties</guilabel> dialog + + + +The Image Properties dialog + + + + + +The Image Properties dialog + + + + + + + +In this dialog you can change a couple of image properties. First of all, the +Name of the image. If you did not set a name earlier +(that can also be done when creating the image), it will have a default name +like Image1. Then, you can set its size (determined by the +Width and Height in pixels and +the Resolution in dots per inch) and the color profile to +be used (Profile). Finally, you can fill in the +Description field with any information you want to add to +the image. + + + + + +The <guilabel>Image Size</guilabel> dialog + + + +The Image Size dialog + + + + + +The Image Size dialog + + + + + + + +This dialog lets you resize your image. In the top part, you can choose the +way the image is resized. If you choose Resize, the size +of the image is changed, but its layers (which contain the actual contents) +will not be modified. So, when you double the height and width of the image, +your original image will occupy the top-left quarter part of your new image. +On decreasing the size of your image, the image layers will stretch out over +the image borders, unless you choose Crop layers on image +resize, which will crop all layers to the new image size. + +With Scale, the image layers will be resized with the +image. So increasing the image size will actually enlarge the contents, and +similar for decreasing. + +Under Pixel dimensions, you can set which new size you +want the image to have. The original size is given as a reference. The new +size can be set both as pixels or as a percentage, with 100% being the +original size. If you select Constrain proportions, the +new width and height will always be set to the same percentage. For example, +if you have an image of 200 x 100 pixels, and set the width to 20 pixels, the +height will automatically be changed to 10. With this checkbox unselected, you +can also resize the image non-proportionally. + +The Filter: dropdown box can be used to select a +different algorithm for determining the colors of the pixels in the newly +resized image that did not correspond to a pixel in the old image (the +calculated corresponding location in the old image was located in between +pixels). BSpline uses a 4 x 4 pixel grid and results into a quite high +blurring. Bell is quite fast while resulting in a reasonably smooth image. +Box is the fastest method, but yields the least appealing result. Hermite +keeps the image quite sharp, while smoothing it as well, and is reasonably +fast. Lanczos3 results in sharp images, but is very slow. Mitchell (the +default) is not very fast, but often yields a good intermediate result. +Triangle/Bilinear uses the 2 x 2 pixel grid around the calculated location +resulting in relatively sharp lines. + + + + + +The <guilabel>Rotate Image</guilabel> dialog + + + +The Rotate Image dialog + + + + + +The Rotate Image dialog + + + + + + + +With this dialog, you can rotate the image. The top part of the dialog shows +the result of the rotation in the form of a change in dimension (if any). +Under Direction you can choose between +rotating clockwise and counter-clockwise. Under Angle, +you can set the amount of rotation. 90, 180 and 270 degrees can be selected +using the respective option button, other amounts need to be specified with +the Custom spin box. + + + + + +The <guilabel>Separate Image</guilabel> dialog + + + +The Separate Image dialog + + + + + +The Separate Image dialog + + + + + + + +With this dialog, you can separate (part of) your image. Every color component +(channel) will be put into a separate layer or image. At the top of the +dialog, the current color model is shown. Below that, a couple of options can +be set. + + +Under Source, you can choose what part of the image to +separate. The two options are Current layer, which +(obviously) only uses the currently selected layer and Flatten all +layers before separation, which uses the entire image. + + +Under Output, you can choose where the result of the +separation should be written to: either to a couple of layers, or to a couple +of images. + + +Under Alpha Options, you can choose what should be done +with the alpha channel of the selected layer(s). It can be copied to each new +channel, be discarded, or separated on its own. + + +The two options at the bottom of the dialog, finally, determine whether the +source should be downscaled to 8 bit colors (if it contains more), and whether +the output should be in color (default is to separate the channels to grayscale +values). + + + + +The <guilabel>Shear Image</guilabel> dialog + + + +The Shear Image dialog + + + + + +The Shear Image dialog + + + + + + + +This dialog allows you to shear your image. By shearing, the bounding +rectangle of your image is transformed into a parallellogram. One pixel +row/column is kept in place, the next one is shifted by a certain amount, the +next one by the same amount relative to the previous one, etcetera. +The X and Y shearing angles can be set using the two spin boxes. + + + + + +The <guilabel>Substrate</guilabel> dialog + + + +The Substrate dialog + + + + + +The Substrate dialog + + + + + + + +(This dialog is still to be described.) + + + + + + + +Dialogs for working with layers + + +The <guilabel>Convert Layer Type</guilabel> dialog + + + +The Convert Layer Type dialog + + + + + +The Convert Layer Type dialog + + + + + + + +This dialog is exactly the same as the Convert Image +Type dialog, which converts an entire image instead of a +single layer. See the description there for details. + + + + + +The <guilabel>Drop Shadow</guilabel> dialog + + + +The Drop Shadow dialog + + + + + +The Drop Shadow dialog + + + + + + + +With this dialog, you can add a drop shadow effect to the current layer. +Select the X and Y offsets (displacements) of the shadow relative to the +original layer with the two topmost spin boxes. The Blur +radius spinbox determines the radius in which the shadow will be +blurred (to achieve a smooth transition at the shadow border). If you want +a special color for the shadow, you can choose one with the +Color field. The Opacity slider and +spinbox can be used to make the shadow more or less transparent. Disable the +Allow resizing checkbox if you don't want the layer to be +resized in order to give it a shadow. + + + + + +The <guilabel>Histogram</guilabel> dialog + + + +The Histogram dialog + + + + + +The Histogram dialog + + + + + + + +This dialog shows a histogram for the current layer. With the +Method: settings, you can choose what kind of histogram +to show. You can change the channel(s) to show with the +Channels: listbox, and the scale on which it should be +drawn with the Linear and +Logarithmic radio buttons. Under the preview, there are +buttons available to zoom in to, and move over, the histogram. These are +activated for 16-bit colorspace layers. + + + + + +The <guilabel>Layer Properties</guilabel> dialog + + + +The Layer Properties dialog + + + + + +The Layer Properties dialog + + + + + + + +This dialog is in essence the same as the New Layer dialog, with the difference that +you cannot change its colorspace or profile anymore. These properties are +shown, though, to keep the information complete. + + + + +The <guilabel>Layer Size</guilabel> dialog + + + +The Layer Size dialog + + + + + +The Layer Size dialog + + + + + + + +This dialog allows you to resize the current layer. +Under Pixel dimensions, you can set which new size you +want the layer to have. The original size is given as a reference. The new +size can be set both as pixels or as a percentage, with 100% being the +original size. If you select Constrain proportions, the +new width and height will always be set to the same percentage. For example, +if you have a layer of 200 x 100 pixels, and set the width to 20 pixels, the +height will automatically be changed to 10. With this checkbox unselected, you +can also resize the layer non-proportionally. The Filter: +dropdown list can be used to select a different algorithm for resizing the +layer. + + + + + +The <guilabel>New Adjustment Layer</guilabel> dialog + + + +The New Adjustment Layer dialog + + + + + +The New Adjustment Layer dialog + + + + + + + +In this dialog, you can select the type of adjustment layer to add to the +image. In the left-hand list, you can see the available adjustment layers, +each with a preview. When you select one, the Preview +will change to show a correctly scaled preview of what the result of the +adjustment layer is going to be. + +You can then choose to show either the original image or the preview of the +adjustment layer with the radio buttons below the preview window. The buttons +next to these allow you to zoom in, zoom out, and refresh the preview, +respectively. The Autoupdate checkbox determines if the +preview window should update automatically after you made a change. + +The various options available for the filter that is used to create the +adjustment layer, are shown at the bottom of the dialog. See the section on +filters of this chapter for +descriptions. + + + + + +The <guilabel>New Layer</guilabel> dialog + + + +The New Layer dialog + + + + + +The New Layer dialog + + + + + + + +You can add a new layer to your image with this dialog. If you want a +descriptive name for your layer, you can fill one in at +Name:. You can select the desired colorspace for the new +layer from the Colorspace: list, and the specific +color profile for that colorspace at Profile:. +You can preset the layer's Opacity (you can change it later with the slider in +the Layer box), and choose the mode with which the layer should be composited +onto the final image. + + + + + +The <guilabel>Rotate Layer</guilabel> dialog + + + +The Rotate Layer dialog + + + + + +The Rotate Layer dialog + + + + + + + +This dialog, similar to the Rotate Image +dialog, allows you to rotate the current layer. You can choose the +direction in which to rotate and the amount to rotate the layer by. + + + + + +The <guilabel>Shear Layer</guilabel> dialog + + + +The Shear Layer dialog + + + + + +The Shear Layer dialog + + + + + + + +This dialog works the same as the Shear Image +dialog, except that it operates on the current layer instead of on the +entire image. + + + + + + + +Dialogs for working with filters + + +All filter dialogs consist of a filter-specific part, at the left, and a +generic part, at the right. The generic part contains a preview window, which +you can configure using the controls below it. Choose +Preview or Original depending on +whether you want the preview window to show the preview of the filter effect +or the original image. The four buttons at the bottom right allow you to zoom +in and zoom out, set the zooming factor to 100% (this shows the image at its +original size), and refresh the preview, respectively. Furthermore, the option +Autoupdate determines if the preview window is updated +automatically. If you uncheck this checkbox, you will have to refresh the +preview yourself. + + + +The <guilabel>Blur</guilabel> dialog + + + +The Blur dialog + + + + + +The Blur dialog + + + + + + + +This dialog allows you to customize the way your image is blurred. The +Half-width and Half-height spinboxes +determine the size of the areas of your image that are consecutively blurred. +With the Strength spinbox you can set the strength with which the +blurring should be applied, and with the Angle spinbox +you can add a rotation to the area. The Shape setting, +finally, allows you to choose between circular and rectangular areas + + + + + + +The <guilabel>Brightness / Contrast</guilabel> dialog + + + +The Brightness / Contrast dialog + + + + + +The Brightness / Contrast dialog + + + + + + + +With this dialog, you can customize the brightness and contrast of your image. + +The curve diagram has a histogram-like background that shows you the abundance +of various brightness levels. The curve itself (initially a diagonal line from +bottom left to top right) determines to which new brightness level (on the +vertical axis) pixels with a certain original level (on the horizontal axis) are +to be mapped. For example, the default diagonal line from bottom left to top +right sets every original pixel to its own brightness value, meaning no +change. A horizontal line means that all pixels will get the same brightness. +This means minimal contrast, the brightness itself is indicated by the height +at which the line is placed. + +You can click on a handle (red circle) to select it (a selected handle is +indicated by a filled circle) and drag it around to change the shape of the +curve. The curve will be drawn smoothly through the handles (always +strictly from left to right). If you click on the curve, a handle is added to +it at that position. Clicking somewhere else in the image will also add a +handle at that point. You can press Delete to delete the +currently selected handle. + + + + + +The <guilabel>Bumpmap</guilabel> dialog + + + +The Bumpmap dialog + + + + + +The Bumpmap dialog + + + + + + + +You can apply a bumpmap effect and customize it using this dialog. One layer +is used as bumpmap layer: it is read as grayscale image and the gray values of +its pixels are used to to distort the other layer for creating the depth +illusion. High grey values, &ie; more white, mean a larger height, small +values, &ie; near black, mean a smaller height — or a larger depth, the +height can get below sealevel. A light source, shining +from above on the image that lies on the ground, +is simulated to determine the depth and direction of the shadows. + +The first option in this dialog offers you the selection of the +Bumpmap layer. + +Under Type, you can select what kind of bumpmap to be +applied. There are three types, Linear (a normal +application of the bumpmap), Spherical (focusing on the +extremes, that is, the shadow and highlight values) and +Sinusoidal (focusing on the midtone values). + +Then, there are three options to modify the bumpmap apart from its +algorithmical application. With Compensate for darkening, +the image is restored to about its original average lightness if using the +bumpmap filter would make it darker. The Invert bumpmap +option creates an inverted bumpmap (high and low are reversed). With +Tile bumpmap, a bumpmap layer that is smaller than the +layer it is applied to, will be tiled (repeatedly) to cover the entire layer. + +Under Settings, you can select the mathematical +parameters for the bumpmap. First of all, Azimuth (the +angle of the light source in the X-Y plane), Elevation +(the height of the simulated light source above the surface in degrees, with 0 +degrees being on the ground and 90 degrees being vertically above the image), +and Depth (the maximal vertical distortion of the image). + +Then, there are the X offset and Y +offset, with which you can displace the bumpmap layer relative to +the destination layer, Water level (the depth seen as +neutral), and Ambient light, which determines the +relative amount of ambient (environmental) light. + + + + + +The <guilabel>Color Adjustment</guilabel> dialog + + + +The Color Adjustment dialog + + + + + +The Color Adjustment dialog + + + + + + + +This dialog allows you to customize the Color Adjustment filter. You can use +the curve (see the section on Brightness / +Contrast for a description on the curve) to determine the mapping +from old to new color levels, for each of the channels separately. + + + + + +The <guilabel>Color to Alpha</guilabel> dialog + + + +The Color to Alpha dialog + + + + + +The Color to Alpha dialog + + + + + + + +With this dialog, you can make parts of the image having a certain color +transparent (officially alpha-transparent). You can select the +color you want to remove from the image (replacing it with transparency) with +the Color swatch, and how much a color may differ from +the selected one before it is considered not to match, with the +Threshold spinbox. Setting a threshold of zero (0) +ensures that only pixels with the exact matching color will be made +transparent, higher thresholds will make other colors match as well. + + + + +The <guilabel>Color Transfer</guilabel> dialog + + + +The Color Transfer dialog + + + + + +The Color Transfer dialog + + + + + + + +This dialog lets you copy the colors from one image (the Reference +Image) to the current one. The colors in both images are compared +and each color in the one you are working with, will be replaced by the +nearest one in the reference image. + + + + + + + +The <guilabel>Custom Convolution</guilabel> dialog + + + +The Custom Convolution dialog + + + + + +The Custom Convolution dialog + + + + + + + +With this filter, you can apply a customized distortion effect to your image. +The nine spinboxes at the top left determine the distortion. Each pixel is +assigned a new value based on these values: the old color values of the pixel +inself and the eight surrounding pixels are each multiplied by the values in +the respective spinboxes, these results are added, and the final result is the +new color value for the pixel. Before being applied, this final result can be +multiplied with a certain Factor: or a certain +Offset: can be added to it. + +In the example screenshot, each pixel is assigned a new value based on its +own (the 1 in the center), to which are added the values of the pixels to its +top right and directly below it (each with a factor of 1, &ie; the actual +value, since multiplying by one has no effect), and from which are subtracted +the values of the pixels to its bottom right and directly above it (added with +a factor of -1, so subtracted by a factor of 1). + + + + + +The <guilabel>Emboss</guilabel> dialog + + + +The Emboss dialog + + + + + +The Emboss dialog + + + + + + + +This dialog contains just one option, the Depth: slider +and spinbox which determines the depth of the embossing effect. + + + + + +The <guilabel>Filters Gallery</guilabel> dialog + + + +The Filters Gallery dialog + + + + + +The Filters Gallery dialog + + + + + + + +This dialog can be used to get a quick overview of what the various available +filters do. The filters are in turn applied to the current image and the +results are put in the left list box as thumbnails. If you select one, its +options become available in the Configuration section. +See the description of the respective filter for details. + + + + + +The <guilabel>Gaussian Noise Reduction</guilabel> dialog + + + +The Gaussian Noise Reduction dialog + + + + + +The Gaussian Noise Reduction dialog + + + + + + + +This dialog allows you to customize a Gaussian noise reduction. The +Threshold setting is a measure for how much noise should +be removed (&ie; how quickly a lonely pixel should be made +equal to its surroundings), while the Window Size setting +determines the radius of the area considered when changing pixels. + + + + + +The <guilabel>Lens Correction</guilabel> dialog + + + +The Lens Correction dialog + + + + + +The Lens Correction dialog + + + + + + + +With this dialog, you can fix an image which is distorted due to common lens +anomalies. You can specify a Distortion correction, +indicating how much the image should be corrected if its +concaveness / convexness is not right, for areas near the center and areas +near the edges. If you want an asymmetrical correction, you can specify +different X and Y coordinates for +the center (in percentages of the total width and height, measured from the +top left). + +You can also correct a too light or too dark image with the +Brightness correction spinbox. + + + + + +The <guilabel>Image Restoration</guilabel> dialog + + + +The Image Restoration dialog + + + + + +The Image Restoration dialog + + + + + + + +Using this dialog, you can specify exactly how the image restoration should +be done. This filter tries to increase the quality of an image, for instance +by removing scratches. Various options are available to customize its +behaviour. + +(Unfortunately, these are not described as of yet.) + + + + + +The <guilabel>Oilpaint</guilabel> dialog + + + +The Oilpaint dialog + + + + + +The Oilpaint dialog + + + + + + + +This dialog can configure two parameters for the associated filter. The +Brush size: setting determines the size of the brush that +is used to simulate the oilpaint effect, the Smooth: +setting specifies if the difference in colors between adjacent +swatches may be large (low smoothness) or should be small (high +smoothness). + + + + + +The <guilabel>Pixelize</guilabel> dialog + + + +The Pixelize dialog + + + + + +The Pixelize dialog + + + + + + + +On this dialog, you can adjust two settings. Pixel width: +and Pixel height: indicate the width and height of the +area that should be taken together and averaged to form one new, large +pixel. + + + + + +The <guilabel>Raindrops</guilabel> dialog + + + +The Raindrops dialog + + + + + +The Raindrops dialog + + + + + + + +This filter can be configured using the settings Drop +size: (the average diameter of the raindrops), +Number: (the number of raindrop effects that should be +added to the image), and Fish eyes: (the percentage of +raindrops that should be rendered as fisheye lens effects instead of plain +raindrop effects). + + + + +The <guilabel>Random Noise</guilabel> dialog + + + +The Random Noise dialog + + + + + +The Random Noise dialog + + + + + + + +This filter adds random noise (speckles, or something similar) to your image. +There are two customizable settings: the amount of noise +(Level, as a percentage) and the +Opacity of the noise (should the original color still be +a bit visible or not). + + + + +The <guilabel>Random Pick</guilabel> dialog + + + +The Random Pick dialog + + + + + +The Random Pick dialog + + + + + + + +In this dialog, you can specify parameters for the Random Pick +filter. The Level setting determines how much pixels will +be affected (measured as a percentage), the area which is looked in to take a +new color for a pixel is set with the Size of the window +setting, and the Opacity of the modifications can be set as +well. + + + + + + +The <guilabel>Round Corners</guilabel> dialog + + + +The Round Corners dialog + + + + + +The Round Corners dialog + + + + + + + +This dialog has one setting: the radius of the rounded corners. + + + + + +The <guilabel>Small Tiles</guilabel> dialog + + + +The Small Tiles dialog + + + + + +The Small Tiles dialog + + + + + + + +In this dialog, you can set the amount of subdivisions with the +Number of tiles settings. + + + + + +The <guilabel>Sobel</guilabel> dialog + + + +The Sobel dialog + + + + + +The Sobel dialog + + + + + + + +Here, you can set the parameters for the Sobel edge +detection filter. First of all you can determine which directions to sobel in: +horizontally, vertically, or both. The Keep sign of +result setting does not affect regular images. +Make image opaque determines whether the resulting image +is opaque or transparent. + + + + + +The <guilabel>Unsharp Mask</guilabel> dialog + + + +The Unsharp Mask dialog + + + + + +The Unsharp Mask dialog + + + + + + + +This dialog offers three options for the sharpening filter +Unsharp Mask: the radius (Half-size) +of the mask, the Amount of sharpening that should be +done, and the Threshold level. + + + + + +The <guilabel>Wave</guilabel> dialog + + + +The Wave dialog + + + + + +The Wave dialog + + + + + + + +For both the horizontal and the vertical components of the wave distortion +(note: a vertical wave means that the vertical position is dependent on the +horizontal one, and hence looks like a W), +you can determine four settings here. The Wavelength (a +shorter wavelength means a more erratical wave), the +Shift (which point of the wave should be started at), the +Amplitude (the amount of distortion), and the +Shape (Sinusoidal or rounded, +versus Triangle or pointy). + + + + + +The <guilabel>Wavelet Noise Reduction</guilabel> dialog + + + +The Wavelet Noise Reduction dialog + + + + + +The Wavelet Noise Reduction dialog + + + + + + + +The only setting here, Threshold, indicates how easily pixels +are seen as noise that should be removed and made equal to the surrounding area. + + + + + + + +Miscellaneous dialogs + + +The <guilabel>Add Palette</guilabel> dialog + + + +The Add Palette dialog + + + + + +The Add Palette dialog + + + + + + + +With this dialog, you can add a custom color palette to &krita;. Fill in the +name for your palette in the text field at the top. Then make the palette: use +the button Add New Color... to add a color to the palette +and Remove Selected Color to remove the currently +selected color. Click the button Add to Predefined +Palettes to add your newly created palette to the palette list, or +just choose OK when you're done. + + + + + +The <guilabel>Document Information</guilabel> dialog + + + +The Document Information dialog + + + + + +The Document Information dialog + + + + + + + +This dialog is the same as in other &koffice; programs. You can enter various +information about your document here, which will be saved with the document so +that you can retrieve it later to review or edit. + + + +On the General tab, you can enter the title, subject and +keywords, as well as an abstract. On the bottom of this tab, some statistical +information is displayed. On the Author tab, you can +store information about yourself. The third tab, User-defined +Metadata, allows you to store any other information. + + + + + + + diff --git a/doc/krita/commands-menus.docbook b/doc/krita/commands-menus.docbook new file mode 100644 index 000000000..b3abdcc93 --- /dev/null +++ b/doc/krita/commands-menus.docbook @@ -0,0 +1,2158 @@ + +Menus + + +Some of &krita;'s menus are standard in &kde; or &koffice;, while others are +particular to &krita;. The File menu contains commands for +manipluating files. In the Edit menu, you can find commands +that do things with the current selection. With the commands from the +View menu, you can change the way you look at the image. +The Image menu contains commands that change the entire +image, like converting all layers to another color model or resizing or +scaling the image. The Layer menu is like the +Image menu, but the commands only work on the current +layer. The Select menu contains commands to create and +manipulate selections. The Filter menu contains all the +filters you have installed. These work on the current layer. The +Scripts menu contains entries for working with scripts. +The Settings menu is again common to &koffice; and allows +you to manipulate the toolbars, shortcuts and configuration of &krita;. +Finally, the Help menu gives you access to various +(hopefully helpful) information, such as this handbook. + + + + + +The <guimenu>File</guimenu> Menu + + + + + +&Ctrl;N +File +New + +Creates a new document. This displays the +New document dialog, standard across &koffice;, in which +you can choose to start with a blank document of a certain type, or to open a +recently opened document. + + + + +&Ctrl;O +File +Open... + +Opens an existing document. +Because this uses the usual &kde; Open Document +dialog to let you select a file, you can open files via various protocols +(ftp, fish, etcetera). + + + + + +File +Open Recent + +Opens a recently +opened document. Clicking this menu item will show a +submenu with the ten most recently opened documents in which +you can quickly open an image you have been working on lately. + + + + +&Ctrl;S +File +Save + +Saves the document. If you +haven't saved the document before, you will get the Save +Document As dialog, otherwise the document will be saved under +its current name. + + + + +File +Save As... + +Saves the document under a different name. +The default &kde; dialog is used, so saving remotely via ftp +or ssh (fish) is perfectly possible. + + + + +File +Reload + +Reloads the current document +from disk. All changes since you last saved the document +will be lost. + + + + +File +Import... + +Opens an existing document. Unlike +FileOpen, +this does not load the actual document, but only its contents: you receive a +copy of the chosen file as a new document. + + + + + +File +Export... + +Saves the document under a different name. (For +the moment, this is the same as +FileSave +As....) + + + + + +File +Mail... + +Sends the document via email. The default &kde; +mail compose window will be used. + + + + +&Ctrl;P +File +Print... + +Prints the document. You will see the usual +&kde; print dialog appear. + + + + +File +Print Preview... + +Shows a preview of what the printed document +will look like. + + + + +File +Document Information + +Opens the Document +Information dialog. This dialog can be used to add +various information to the image, like title, subject, keywords, author +information, and any other information you want to save with the +image. + + + + +&Ctrl;W +File +Close + +Closes the document. + + + + +&Ctrl;Q +File +Quit + +Quits &krita;. + + + + + + + + + + + +The <guimenu>Edit</guimenu> Menu + + + + + +&Ctrl;Z +Edit +Undo + +Undoes the last action carried out. Actions +(like painting a stroke, filling an area, etcetera) are stored on +a stack. The last action you did will be undone, and the image is +restored to the state before that. Immediately choosing +Undo again will undo the action that was carried +out before the one just undone, etcetera. + + + + +&Ctrl;&Shift;Z +Edit +Redo + +Redoes the last action undone. As described at +Undo, a series of actions can be undone. With +Redo, an action undone is carried out again, and if +more actions have been undone before that, you can redo these in +turn. + + + + +&Ctrl;X +Edit +Cut + +Cuts the selection to the +clipboard. The current selection is put on the &kde; +clipboard, and the selection is cleared. + + + + +&Ctrl;C +Edit +Copy + +Copies the selection to the +clipboard. + + + + +&Ctrl;V +Edit +Paste + +Pastes the contents of the +clipboard. + + + + +Edit +Paste into New Image + +Pastes the contents of the +clipboard as a new image. + + + + +Edit +Clear + +Clears the selection. + + + + +&Alt;&Backspace; +Edit +Fill with Foreground Color + +Fills the selection with the current foreground +color. The current foreground color is shown in the top left color +square of the Colors palette. + + + + +&Backspace; +Edit +Fill with Background Color + +Fills the selection with the current background +color. The current background color is shown in the bottom right color +square in the top left corner of the Colors +palette. + + + + +Edit +Fill with Pattern + +Fills the selection with the current pattern. +The current pattern is shown on the Brush Shapes toolbar, +usually at the top right of the &krita; window. + + + + +Edit +Resources + +Contains options for working with color +palettes. + + + + +Edit +Resources +Add New Palette... + +Opens the Add Palette +dialog. You can create a custom color palette +here. + + + + +Edit +Resources +Edit Palette... + +Opens the Edit Palette +dialog. Choose a color palette to edit from this list. You will then be +given the same dialog as with Add Palette, with the +difference that you edit the chosen color palette instead of adding a new +one. + + + + + + + + + + + +The <guimenu>View</guimenu> Menu + + + + + +&Ctrl;&Shift;F +View +Full Screen Mode + +Switches between normal view +and full screen view. In full screen view, the title +bar is hidden and the actual application window is resized to the entire +screen. + + + + +View +New View + +Opens a new view for the +current document. A new application window is opened +so that you can have two different views of the same document, for example +to work on different areas at the same time, or to look at an area at different +zoom levels simultaneously. Changes you make to the document in one view are +immediately visible in other views. + + + + +&Ctrl;&Shift;W +View +Close All Views + +Closes all views. + + + + +View +Split View + +Splits the current view. The +drawing area will be split into two parts, which can be used +just like two views in different windows. + + + + +View +Remove View + +Unsplits the view. The second +view (the bottom or right one) will be closed and the first one will remain +visible. + + + + +View +Splitter Orientation + +Changes the way the split +view is displayed. + + + + +View +Splitter Orientation +Vertical + +Changes the orientation of +the splitter to vertical. The two split +views will be positioned side by side. + + + + +View +Splitter Orientation +Horizontal + +Changes the orientation of +the splitter to horizontal. The two split views will +be positioned above each other. + + + + +&Ctrl;+ +View +Zoom In + +Zooms in on the view. The view +will be more detailed, but a smaller area will be visible at the +same time. + + + + +&Ctrl;- +View +Zoom Out + +Zooms out of the view. A larger +area will be visible at the same time, but it will be less +detailed. + + + + +&Ctrl;0 +View +Actual Pixels + +Zooms the view to actual pixel +level. (1:1 scale) + + + + +View +Actual Size + +Zooms the view to the actual image +size. + + + + +View +Fit to Page + +Zooms the view so that the image fills the available +workspace. + + + + +&Ctrl;R +View +Show Rulers + +Toggles display of the +rulers on and off. + + + + +View +Show Grid + +Toggles display of the +grid lines on and off. + + + + +View +Grid Spacing + +Contains various options to set the distance between +grid lines. The available spacing options are +1x1, 2x2, +5x5, 10x10, +20x20, and 40x40. + + + + + +View +Show Perspective Grid + +Toggles display of the perspective grid on and off. + + + + + + +View +Clear Perspective Grid + +Clears the perspective grid. (All grid lines +that were created, are deleted.) + + + + + +View +Palettes + +Allows you to toggle the +display of the various palettes on and off. The +default view of &krita; shows all palettes, and the items are listed as Hide +palette therefore. When a certain palette is hidden, +the corresponding menu item changes to Show +palette. + + + + +&Ctrl;&Shift;H +View +Palettes +Hide All Palette Windows + +Hides all palettes. + + + + +View +Palettes +Hide Overview + +Hides the +Overview palette. + + + + +View +Palettes +Hide HSV + +Hides the +HSV palette. + + + + +View +Palettes +Hide RGB + +Hides the +RGB palette. + + + + +View +Palettes +Hide Gray + +Hides the +Gray palette. + + + + +View +Palettes +Hide Palettes + +Hides the +Palettes palette. + + + + +View +Palettes +Hide Layers + +Hides the Layers +palette. + + + + +View +Palettes +Hide Scripts Manager + +Hides the Scripts Manager. + + + + + +View +Palettes +Hide Histogram + +Hides the +Histogram palette. + + + + +View +Palettes +Hide Watercolors + +Hides the Watercolors +palette. + + + + +View +Palettes +Hide Brush, Ellipse, Filter tool, Line, Polygon &etc; + +Hides the palette of the selected +Tool. + + + + +View +Wetness Visualisation + +Toggles indication of the wetness of watercolor paint +on and off. + + + + + + + + + + + +The <guimenu>Image</guimenu> Menu + + + + + +Image +Image Properties + +Opens the Image +Properties dialog, +in which you can change the image name, size, +profile and description. + + + + +Image +Resize Image to Size of Current Layer + +Resizes the image to the +size of the currently active layer. + + + + +Image +Substrate... + +Opens the Substrate dialog. + + + +Image +Rotate + +Rotates the image. + + + + +Image +Rotate +Rotate Image... + +Opens the Rotate Image +dialog. + + + + +Image +Rotate +Rotate Image CW + +Rotates the image 90 degrees +clockwise. + + + + +Image +Rotate +Rotate Image CCW + +Rotates the image 90 degrees counterclockwise +(270 degrees clockwise). + + + + +Image +Rotate +Rotate 180 + +Rotates the image 180 degrees. + + + + +Image +Convert Image Type... + +Opens the Convert All +Layers dialog. This allows you to convert the image +to a different color space. Apart from the color space, the profile and +rendering intent can be specified as well. + + + + +Image +Separate Image... + +Opens the +Separate Image +dialog. You can separate the image into layers for each +individual colorspace component there. + + + + +Image +Change Image Size... + +Opens the +Image Size +dialog . You can resize or scale the image using various +algorithms here. + + + + +Image +Shear Image... + +Opens the Shear Image +dialog. You can shear the image in X or Y directions, +or both. + + + + + + + + + + +The <guimenu>Layer</guimenu> Menu + + + + + + +Layer +New + +Creates a new layer. + + + + +&Ctrl;&Shift;N +Layer +New +Add... + +Opens the +New Layer +dialog. This will create a new empty +layer. You can set the name, opacity, composite mode and +layer type. + + + + +Layer +New +Object Layer + +Creates a new layer for a +given &koffice; object type. + + + + +Layer +New +Object Layer +Scalable Graphics + +Creates a new layer for an +embedded &karbon14; object. + + + + +Layer +New +Object Layer +Text Documents + +Creates a new layer for an +embedded &kword; document. + + + + +Layer +New +Object Layer +Flowchart & Diagram + +Creates a new layer for an embedded +&kivio; object. + + + + +Layer +New +Object Layer +Slide Presentations + +Creates a new layer for an embedded +&kpresenter; object. + + + + +Layer +New +Object Layer +Image Object + +Creates a new layer for an +embedded &krita; object. + + + + +Layer +New +Object Layer +Report Template + +Creates a new layer for an embedded +&kugar; Designer object. + + + + +Layer +New +Object Layer +Chart + +Creates a new layer for an +embedded &kchart; object. + + + + +Layer +New +Object Layer +Formula Editor + +Creates a new layer for an +embedded &kformula; object. + + + + +Layer +New +Object Layer +Report Generator + +Creates a new layer for an +embedded &kugar; object. + + + + +Layer +New +Object Layer +Project Management + +Creates a new layer for an +embedded KPlato object. + + + + +Layer +New +Object Layer +Spreadsheets + +Creates a new layer for an +embedded &kspread; document. + + + + +Layer +New +Adjustment Layer + +Opens the New Adjustment +Layerdialog. + + + + +Layer +New +Insert Image as Layer... + +Opens the Import Image +dialog. You can browse and select an image file, +which will be inserted in a new layer. + + + + +&Ctrl;&Shift;J +Layer +New +Cut Selection to New Layer + +Cuts the current selection +and inserts it as a new layer. + + + + +&Ctrl;J +Layer +New +Copy Selection to New Layer + +Copies the current selection +and inserts it as a new layer. + + + + +Layer +Remove + +Removes the current layer +and its contents. + + + + +Layer +Duplicate + +Duplicates the current +layer. + + + + +Layer +Hide/Show + +Toggles the visibility of +the current layer in the image editing window. + + + + +Layer +Mask + +Contains actions for working with layer masks. + + + + +Layer +Mask +Create Mask + + + + + + +Layer +Mask +Mask From Selection + + + + + + +Layer +Mask +Mask To Selection + + + + + + +Layer +Mask +Apply Mask + + + + + + +Layer +Mask +Remove Mask + + + + + + +Layer +Mask +Edit Mask + + + + + + +Layer +Mask +Show Mask + + + + + + +&Ctrl;] +Layer +Raise + +Moves the current layer one +level upward. + + + + +&Ctrl;[ +Layer +Lower + +Moves the current layer one +level downward. + + + + +&Ctrl;&Shift;] +Layer +To Top + +Moves the current layer to the +top. + + + + +&Ctrl;&Shift;[ +Layer +To Bottom + +Moves the current layer to +the bottom. + + + + +Layer +Save Layer as Image... + +Opens the Export Layer +dialog. The current layer will be saved to the +chosen file. + + + + +Layer +Flip on X Axis + +Flips the current layer +horizontally. + + + + +Layer +Flip on Y Axis + +Flips the current layer +vertically. + + + + +Layer +Properties + +Opens the Layer +Properties dialog. You can change the name, +colorspace, opacity, composite mode and position of the current layer +here. + + + + +&Ctrl;E +Layer +Merge with Layer Below + +Merges the current layer +with the one below it. + + + + +&Ctrl;&Shift;E +Layer +Flatten Image + +Merges all visible layers. + + + + +Layer +Rotate + +Rotates the current layer. + + + + +Layer +Rotate +Rotate Layer... + +Opens the Rotate Layer +dialog. + + + + +Layer +Rotate +Rotate CW + +Rotates the current layer 90 degrees +clockwise. + + + + +Layer +Rotate +Rotate CCW + +Rotates the current layer 90 degrees counterclockwise +(270 degrees clockwise). + + + + +Layer +Rotate +Rotate 180 + +Rotates the current layer by +180 degrees. + + + + +Layer +Histogram... + +Opens the Histogram +dialog, in which you can see histograms for the current +layer. + + + + +Layer +Convert Layer Type... + +Opens the +Convert +Current Layer dialog. You can +set various options with respect to the colorspace and +rendering intent. + + + + +Layer +Scale Layer... + +Opens the Layer +Size dialog. You can choose the new +dimensions and the resize filter to use. + + + + +Layer +Layer Effects + +Contains commands to add effects to the current layer. + + + + + +Layer +Layer Effects +Add Drop Shadow... + +Opens the Drop Shadow +dialog. This dialog can be used to add a drop shadow beneath +the current layer. + + + + +Layer +Shear Layer... + +Opens the Shear Layer +dialog. You can select the X and Y angles to shear +by. + + + + + + + + + + + +The <guimenu>Select</guimenu> Menu + + + + + +&Ctrl;A +Select +Select All + +Selects the entire +current layer. + + + + +&Ctrl;&Shift;A +Select +Deselect + +Unselects everything. + + + + +&Ctrl;&Shift;D +Select +Reselect + +Reselects the previous +unselected areas. + + + + +&Ctrl;I +Select +Invert + +Inverts the selection. +(Everything that is selected will be unselected and vice +versa.) + + + + +&Alt;&Ctrl;D +Select +Feather... + +Feathers the selection. (Adds +a soft border around it.) + + + + +Select +Similar + + + + + + +&Ctrl;H +Select +Hide Selection + +Hides the selection. The selection is still +active, but it is not made visible anymore. + + + + +Select +Grow Selection... + +Grows the selection. + + + + +Select +Shrink Selection... + +Shrinks the selection. + + + + +Select +Border Selection... + +Borders the selection. + + + + +Select +Color Range... + +Opens the Color Range +dialog. + + + + + + + + + + + +The <guimenu>Filter</guimenu> Menu + +See the Filters chapter for more +information on filters. + + + + +&Ctrl;&Shift;J +Filter +Apply Filter Again + +Repeats the last filter +action. + + + + +Filter +Adjust + +Contains various options for changing the +colors in your image. + + + + +Filter +Adjust +Auto Contrast + +Automatically changes the image to obtain as much +contrast as possible. + + + + +Filter +Adjust +Brightness/Contrast... + +Opens the +Brightness/Contrast +dialog. You can set the +brightness and contrast ratio of your image here. + + + + +Filter +Adjust +Desaturate + +Desaturates the image. This +will effectively convert the current image to grayscale, but all subsequent +painting is done with usual colors. + + + + +Filter +Adjust +Invert + +Inverts the image or +selection. (Black becomes white, blue becomes yellow, +etcetera.) + + + + +Filter +Adjust +Color Adjustment... + +Opens the Color Adjustment +dialog. You can adjust the colorspace components +of the current image there (for example, in an RGB image, you can change the +contribution of red, green, and blue to the total image). + + + + +Filter +Artistic + +Contains various filters for +artistic actions. + + + + + + +Filter +Artistic +Oilpaint... + +Opens the Oilpaint +dialog to add +an oilpaint effect to the selection or image. + + + + +Filter +Artistic +Pixelize... + +Opens the Pixelize +dialog to pixelize the image. (A block of pixels is +changed so that they all become the same, averaged color.) + + + + +Filter +Artistic +Raindrops... + +Opens the Raindrops +dialog to add a raindrops effect to the selection or +image. + + + + +Filter +Artistic +Dry the Paint + +Dries wet paint. + + + + +Filter +Blur + +Contains various blur filters. + + + + +Filter +Blur +Gaussian Blur + +Performs a slight blur on the image or +selection. + + + + +Filter +Colors + +Contains filters that change the image colors. + + + + +Filter +Colors +Color to Alpha + + + + + + +Filter +Colors +Color Transfer + +Opens the Color Transfer dialog +to give the image a new look. + + + + +Filter +Colors +Maximize Channel + +Adjusts the colors of each pixel by removing color +channels that are less abundant. + + + + +Filter +Colors +Minimize Channel + +Adjusts the colors of each pixel by removing color +channels that are abundant. + + + + +Filter +Edge Detection + +Contains edge detecting filters. + + + + +Filter +Edge Detection +Bottom Edge Detection + +Performs edge detection with the bottom sides of image +parts as references. + + + + +Filter +Edge Detection +Left Edge Detection + +Performs edge detection with the left sides of image +parts as references. + + + + +Filter +Edge Detection +Right Edge Detection + +Performs edge detection with the right sides of image +parts as references. + + + + +Filter +Edge Detection +Sobel... + +Opens the Sobel +dialog. + + + + +Filter +Edge Detection +Top Edge Detection + +Performs edge detection with the top sides of image +parts as references. + + + + +Filter +Enhance + +Contains image enhancing +filters. + + + + +Filter +Enhance +CImg Image Restoration... + +Opens the Image +Restoration dialog. + + + + +Filter +Enhance +Custom Convolution... + +Opens the Custom +Convolution dialog. + + + + +Filter +Enhance +Gaussian Noise Reduction... + + + + + + +Filter +Enhance +Mean Removal + +Sharpens the image or selection by aggravating color +borders. + + + + +Filter +Enhance +Sharpen + +Sharpens the image or selection. + + + + +Filter +Enhance +Unsharp Mask + +Applies an unsharp mask to the image or +selection. + + + + +Filter +Enhance +Wavelet Noise Reducer + +Reduces noise in the image or +selection. + + + + +Filter +Emboss + +Contains emboss filters. + + + + +Filter +Emboss +Emboss Horizontal & Vertical + +Embosses the image or selection on the two main +directions. + + + + +Filter +Emboss +Emboss with Variable Depth... + +Opens the Emboss +dialog. + + + + +Filter +Emboss +Emboss in All Directions + +Embosses the image or +selection. + + + + +Filter +Emboss +Emboss Horizontal Only + +Embosses the image or selection on the horizontal axis +only. + + + + +Filter +Emboss +Emboss Laplascian + +Embosses the image or selection using the Laplace +technique. + + + + +Filter +Emboss +Emboss Vertical Only + +Embosses the image or selection on the vertical axis +only. + + + + +Filter +Map + +Contains map filters. + + + + +Filter +Map +Bumpmap... + +Opens the Bumpmap +dialog. + + + + +Filter +Map +Round Corners... + +Opens the Round +Corners dialog to round off the corners of the image or +selection. + + + + +Filter +Map +Small Tiles... + +Shrinks the image or selection and then tiles +it. + + + + +Filter +Other + +Contains miscellaneous filters. + + + + +Filter +Other +Lens Correction... + +Opens the Lens Correction +dialog to correct for lens anomalies. + + + + +Filter +Other +Random Noise... + +Opens the Random Noise dialog to add +random noise to the image. + + + + +Filter +Other +Random Pick... + +Opens the Random Pick dialog to +distort the image. + + + + +Filter +Other +Wave... + +Opens the Wave dialog to distort the +image + + + + + +Filter +Filters Gallery + +Opens the +Filters +Gallery dialog. This +shows previews of the various filters and allows for easy +comparison. + + + + + + + + + + + +The <guimenu>Scripts</guimenu> Menu + + + + + +Scripts +Execute Script File + +Executes a script file. + + + + +Scripts +Script Manager + +Opens the Script Manager dialog. + + + + + + + + + + + +The <guimenu>Settings</guimenu> Menu + + + + + +Settings +Toolbars + +Contains options to display or hide the various +toolbars. + + + + +Settings +Toolbars +File + +Displays or hides the File +toolbar. + + + + +Settings +Toolbars +Edit + +Displays or hides the Edit +toolbar. + + + + +Settings +Toolbars +Navigation + +Displays or hides the Navigation +toolbar. + + + + +Settings +Toolbars +&krita; + +Displays or hides the +&krita; toolbar. + + + + +Settings +Toolbars +Brushes and Stuff + +Displays or hides the +Brushes and Stuff toolbar. + + + + +Settings +Configure Shortcuts... + +Opens the Configure Shortcuts + dialog. This dialog is common to most &kde; applications +and allows you to configure shortcuts for all actions &krita; has to +offer. + + + + +Settings +Configure Toolbars... + +Opens the Configure Toolbars +dialog. This dialog is common to most &kde; applications +and allows you to configure &krita;'s toolbars. + + + + +Settings +Configure &krita;... + +Opens the +Preferences +dialog. You can configure &krita; here to match your personal +preferences. + + + + + + + + + + + +The <guimenu>Help</guimenu> Menu +&help.menu.documentation; + + + diff --git a/doc/krita/commands-palettes.docbook b/doc/krita/commands-palettes.docbook new file mode 100644 index 000000000..3661be608 --- /dev/null +++ b/doc/krita/commands-palettes.docbook @@ -0,0 +1,769 @@ + +Palettes + + +This section describes &krita;'s palettes. The palettes are usually found at +the right hand side of &krita;'s main window. There are three palettes which +help you in customizing your images: + + + +The <guilabel>Control box</guilabel> palette +The Control box contains three tabs. You can get an +overview of the image, view a color histogram, and modify options for the +current tool. + + +<guilabel>Overview</guilabel> + + + +The Overview tab + + + + + +The Overview tab + + + + + +This tab offers you two settings. With the spinbox, slider, and +1:1 button at the bottom, you can set the zoom level +for the document. The Exposure slider and textbox can be +used to choose the exposure level for OpenEXR images. Furthermore, the +X and Y labels indicate the current +pointer position, with (0,0) being the top left corner of the canvas. + + + +<guilabel>Histogram</guilabel> + + + +The Histogram tab + + + + + +The Histogram tab + + + + + +This tab displays a color histogram showing the distribution of +colors over the image. The histogram is split up in red, green and blue +levels. + + + +<guilabel>Tool</guilabel> + +Actually, there is no tab named like this, since the tab name changes to +reflect the name of the currently selected tool. This tab shows the +customization options available for the tools that have them. + + +<guilabel>Brush</guilabel> + + +The Tool tab for Brush + + + + + +The Tool tab for Brush + + + + + +There are three options available on this tab. + +The Opacity slider and spin box are used to set the +opacity when drawing (opacity is the opposite of transparency, i.e. 100% +opaque is 0% transparent, and vice versa). + +In the Mode drop down box, you can choose a drawing +mode. This changes the actual effect that results from drawing on the image +(for example, only changing the saturation or lightness). + +With the Paint direct option, you can determine whether +you want to paint directly on the current layer, or on a temporary layer which +is then composited onto the actual layer. This makes a difference especially +when using relative low opacity values. + + + +<guilabel>Line</guilabel> + + +The Tool tab for Line + + + + + +The Tool tab for Line + + + + + +See Brush +for the description of Opacity and +Mode. The ? button shows a tip about +the usage of modifier keys. + + + +<guilabel>Rectangle</guilabel> + + +The Tool tab for Rectangle + + + + + +The Tool tab for Rectangle + + + + + +See Brush for a description of Opacity and +Mode. + +The Fill drop down box is used to specify whether the +inside of the rectangle should be filled. You can choose between three fill +options: the current foreground color, background color or pattern is +used. + + + +<guilabel>Bezier</guilabel> +See Brush for the +description of Mode and Opacity. + + + + +<guilabel>Ellipse</guilabel> +The same options as for Rectangle are +available here. + + + +<guilabel>Polygon</guilabel> +The same options as for Rectangle are +available here. + + + +<guilabel>Polyline</guilabel> +The same options as for Line +are available here. + + + +<guilabel>Star</guilabel> + + +The Tool tab for Star + + + + + +The Tool tab for Star + + + + + +The options for Rectangle are +available here, as well as two options specific to this tool. + +The Vertices drop down box is used to set the amount +of vertices (points) in the star. + +The Ratio setting defines the shape of the +star. A ratio of 0% will create a star with no inner area (when drawing the +star, the two lines that make up a star point, overlap). Increasing the ratio +will slowly make the star more outlined (the two lines are pulled +apart). A star with a ratio of 100% is a regular polygon. + + + + +<guilabel>Duplicate</guilabel> + + +The Tool tab for Duplicate + + + + + +The Tool tab for Duplicate + + + + + +The same options as for Line +are available here. In addition, there are three other options. + +With the Healing and +Healing radius options, you can specify that the +duplication should not copy the colors, but only the structure +of the source area. + +If you enable the Correct the perspective option, the +duplicate tool will follow your perspective grid. + + + + +<guilabel>Paint with Filters</guilabel> + + +The Tool tab for Paint with Filters + + + + + +The Tool tab for Paint with Filters + + + + + +Depending on the filter, you can set different options here. The +options you can set are the same as those available in the +normal settings dialog for the chosen filter. See the +Filters section in the Dialogs +chapter for more information. + + +<guilabel>Transform</guilabel> + + +The Tool tab for Transform + + + + + +The Tool tab for Transform + + + + + + +You can choose which transformation algorithm to use in the +Filter drop down box. + + + +<guilabel>Crop</guilabel> + + +The Tool tab for Crop + + + + + +The Tool tab for Crop + + + + + +Set the corner coordinates of the area that should remain with the +four spin boxes X, Y, +Width and Height. You can also +fill in Ratio to determine the Y/X ratio. Check one of +the checkboxes to have the respective value remain constant while changing the +size of the area. The drop down box can be used to select whether the entire +image or only the current layer should be cropped. Clicking the +Crop button has the same effect as double-clicking +outside the area in the image. + + + +<guilabel>Contiguous Fill</guilabel> + + +The Tool tab for Contiguous Fill + + + + + +The Tool tab for Contiguous Fill + + + + + +The same options as for Brush +are available here, as are a couple of other options. + +The setting in the Threshold slider and spin box +determines how near the color of a point should be to the color of the +starting point of the fill, in order for the fill to spread out over the +former point. A higher threshold will therefore fill areas that have less +similar colors, a lower threshold limits the spread. + +If you check the Fill entire selection checkbox, the +entire selection will be filled instead of only the neighboring area. + +Checking the Limit to current layer checkbox changes the +behavior of the fill: the extent to which the fill is done, is determined from +the current layer only instead of the entire image. + +By checking the Use pattern checkbox you can choose to +fill with the currently selected pattern instead of with the foreground color. + + + + +<guilabel>Gradient</guilabel> + + +The Tool tab for Gradient + + + + + +The Tool tab for Gradient + + + + + +The same options as for Brush +are available here, as are a couple of other options. + +The Shape drop down box can be used to select the gradient +type: Linear, Bi-Linear, Radial, +Square, Conical and Conical Symmetric. + +The Repeat option determines whether the gradient is +repeated if it does not fill the entire image. With None, the colors on the +ends of the gradient are used to fill the remaining space. With Forwards, the +gradient is normally repeated (connecting the back end of one occurrence with +the front end of the next). With Alternating, the gradient is repeated with +every second occurrence being drawn from back to front (linking front to front +and back to back). + +Check the Reverse checkbox to have the gradient drawn +reversed (from back to front). + +The final setting is Anti-alias threshold, which +determines how smooth the gradient will become. + + + + +<guilabel>Text</guilabel> + + +The Tool tab for Text + + + + + +The Tool tab for Text + + + + + +The same options as for Brush +are available here. Furthermore there is an option Font, +which shows the font that will be used for the text. Click the +... button to change the font. + + + + +<guilabel>Color Picker</guilabel> + + +The Tool tab for Color Picker + + + + + +The Tool tab for Color Picker + + + + + +The first option is a dropdown box in which you can choose which +layer to pick the color from. If you choose a specific layer, +the color of the point in that layer will be retrieved. With Sample +All Visible Layers, the topmost visible layer which is not +transparent at that point is used. + +If the Update current color checkbox is checked, then the +current foreground color (when clicking with the &LMB;) or background color +(when clicking with the &RMB;) is set to the picked color. + +The checkbox Add to palette and the accompanying +dropdown box determine whether the picked color should be added to an existing +palette. Check the checkbox, and choose the desired palette from the list, if +you want to do so. + +The checkbox Show colors as percentages switches the +range of color values displayed from the normal range (e.g. 0 to +255) to a scaled value between 0% and 100%. + +With the Sample radius option, you can choose the area +size to use when picking the color. A radius of one just picks one pixel, +larger radii will make the picker average over the colors of the circle-shaped +area with the chosen radius that is centered around the chosen pixel. + + + + +<guilabel>Select</guilabel> tools + + +The Tool tab for Select tools + + + + + +The Tool tab for Select tools + + + + + +The Paint Selection, Erase Selection, +Select Rectangular, Select Elliptical, Select Polygonal and Select Outline tools have one option: +the Action to perform. You can choose between Add to, or +Subtract from the selection. + + + +<guilabel>Select Contiguous Area</guilabel> + + +The Tool tab for Select Contiguous + + + + + +The Tool tab for Select Contiguous + + + + + +The Action is the same as discussed with the +Select +operations. + +The slider and spin box at Fuzziness determine how near +colors must be to the color at the clicked point to be added to the selection. + +When the Sample merged checkbox is checked, the +bounds of the selection are determined by looking at the entire image instead +of at the current layer. + + + + +<guilabel>Similar Select</guilabel> +The Action and Fuzziness +options are the same as with Select +contiguous. + + + +<guilabel>Select Magnetic</guilabel> + + +The Tool tab for Select Magnetic + + + + + +The Tool tab for Select Magnetic + + + + + +The Action option is the same as with the other +Select tools. + + +The Distance option determines the maximal distance at +which boundaries to attach to, are searched for. The To +Selection button has the same effect as double-clicking the &LMB;: +the selection is finished. + + + + + + + + +The <guilabel>Colors</guilabel> palette +In this palette you can choose the foreground and background colors +that should be used for painting. You can choose these in five different +ways. Each of these has its own tab on this palette. + +You can choose which color to set by clicking the corresponding +buttons at the top left. The topmost color is the foreground color, the +bottom one is the background color. You can click the double-headed arrow +to swap the colors: foreground color becomes background color and vice +versa. You can reset the colors to the default (foreground black, background +white) by clicking the small black/white icon. + + + +<guilabel>HSV</guilabel> + + +The HSV tab + + + + + +The HSV tab + + + + + +On this tab, you can select a color via the Hue / Saturation / Value +system. + +The hue determines the major color and starts at red with 0, then increases +along the color spectrum (that is, along the line yellow, green, +blue, violet) to a maximum of 359. This is represented in the circle on the tab +as the angle component (starting at the top, rotate along the circle +in clockwise direction to increase the hue). + +The saturation determines the pureness of the color. A saturation of 255 +yields the pure color, while a saturation of 0 yields a gray. This is the +radius component of the color circle on the tab: the center corresponds to +no saturation, the circle boundary corresponds to fully saturated. + +The value determines the lightness of the color. This darkens or lightens the +color, as can be set using the vertical slider on the tab. A value of 0 gives +black, a value of 255 gives the pure color. + + + + +<guilabel>RGB</guilabel> + + +The RGB tab + + + + + +The RGB tab + + + + + +On this tab, colors can be selected using their Red / Green / Blue +components. + +You can set red, green and blue components on a scale of 0 to 255. At 0 that +color component is absent, at 255 it is used at maximum intensity. The sliders +will change color to give you a hint about which color you will produce by +altering the corresponding value. + + + + +<guilabel>Gray</guilabel> + + +The Gray tab + + + + + +The Gray tab + + + + + +On this tab, you can choose a gray value (indicated with a K for Key, +the usual designation for black). +The gray value can be chosen on a scale from 0 (pure white) to 255 +(pure black). + + + +<guilabel>Palettes</guilabel> + + +The Palettes tab + + + + + +The Palettes tab + + + + + +On this tab, you can select a color from one of several predefined +color palettes. +You can choose which color palette to pick from in the drop down +box at the top. + + + +<guilabel>Watercolors</guilabel> + + +The Watercolors tab + + + + + +The Watercolors tab + + + + + +This tab offers you a selection of watercolors for painting with wet +paint. + +You can set two options to modify the painting behaviour: Paint +strength influences how much paint you will apply to the canvas, +and Wetness determines how wet the paint is when it is +applied. You can dry the paint later. + + + + + + +The <guilabel>Layers</guilabel> palette +This palette offers two tabs. + + +<guilabel>Layers</guilabel> + + +The Layers tab + + + + + +The Layers tab + + + + + +This tab offers you access to various operations on layers. + +On the top left, you can select what blending mode should be used for the +selected layer. These are the same possibilities as you can choose from for +drawing modes. + +The slider/textbox at the top right determines the opacity of the selected +layer. 0% opacity corresponds to 100% transparency, and vice versa. + +The list shows all layers and their names, and offers various controls for each +layer. The eye icon toggles whether the layer is visible or not. The link icon +is used to link layers together. The lock icon determines if the layer is +locked or not. Locked layers cannot be edited. + +Below the layer list, there are some other controls. You can create a new +layer, move the current layer up or down, show the layer's properties and +delete it. + + +There are some more handy tricks you can do with the mouse within the list. +Right-click on the layer list and select New Folder to +create a new layer folder, which you can use to group layers in. You can also +drag and drop layers to change their order. To do so, click on the bottom part +of the list item representing the layer, drag the mouse, and release the mouse +button at the desired position. If you click at the top part of the list item +instead, you will get a text field so that you can rename the layer. + + + + +<guilabel>Scripts Manager</guilabel> + + +The Script Manager tab + + + + + +The Script Manager tab + + + + + +This tab is a smaller version of the Script +Manager dialog. See the description over there for more +information. + + + + + + diff --git a/doc/krita/commands-toolbars.docbook b/doc/krita/commands-toolbars.docbook new file mode 100644 index 000000000..05ddea55d --- /dev/null +++ b/doc/krita/commands-toolbars.docbook @@ -0,0 +1,752 @@ + +Toolbars + +This section describes &krita;'s toolbars. By default, the +Krita toolbar is located to the left of the drawing area, +while the others can be found at the top, below the menu bar. + +You can customize your toolbars by choosing +SettingsConfigure +Toolbars... or by clicking with the &RMB; on a +toolbar and choosing Configure Toolbars.... + + +The <guilabel>File</guilabel> Toolbar + + + +The File toolbar + + + + + +The File toolbar + + + + + + +This toolbar contains actions for working with files. In &krita;'s +default, there are five buttons on this toolbar: New, +Open, Save, Print +Preview, and Print. + +These actions all correspond to entries in the File menu. + + + + +The <guilabel>Edit</guilabel> Toolbar + + + +The Edit toolbar + + + + + +The Edit toolbar + + + + + + +This toolbar contains editing actions. With default settings this +toolbar offers four buttons: Undo, +Redo, Cut, and +Copy. + +These actions all correspond to entries in the Edit menu. + + + +The <guilabel>Navigation</guilabel> Toolbar + + + +The Navigation toolbar + + + + + +The Navigation toolbar + + + + + + +This toolbar offers easy access to navigation actions. The two +default actions available are Zoom In and +Zoom Out. With Zoom In, the zoom +level is increased. You will see less, but in higher detail. With +Zoom Out, the zoom level is decreased, so that you see +more at less detail. + + + + +The <guilabel>Krita</guilabel> Toolbar + + + +The Krita toolbar + + + + + +The Krita toolbar + + + + + + + +This toolbar contains painting operations and tools, as well as editing and +selecting tools. The available actions and some controls are listed below. You +can change the behaviour of most tools (and with that, usually the resulting +effect) by setting their options. + + + + + + Brush + +With this tool you can paint freely. Click the &LMB; to paint a +single instance of the currently selected brush, or hold the &LMB; and drag +your mouse around to paint. The mouse movements you make are directly used for +painting. + + + + Line + +This tool is used to draw lines. Click the &LMB; to indicate the first +endpoint, keep the button pressed, drag to the second endpoint and release the +button. + +Use &Shift; while holding the mouse button to restrict drawing to only +horizontal or vertical lines. You can press &Alt; while still keeping the &LMB; +down to move the line to a different location. + + + + Rectangle + +This tool can be used to paint rectangles. Click and hold the &LMB; to indicate +one corner of the rectangle, drag to the opposite corner, and release the +button. + +If you hold &Shift; while drawing, a square will be drawn instead of a +rectangle. Holding &Ctrl; will change the way the rectangle is constructed. +Normally, the first mouse click indicates one corner and the second click the +opposite. With &Ctrl;, the initial mouse position indicates the center of the +rectangle, and the final mouse position indicates a corner. +You can press &Alt; while still keeping the &LMB; down to move the rectangle to +a different location. + +You can change between the corner/corner and center/corner drawing +methods as often as you want by pressing or releasing &Ctrl;, provided that you +keep the &LMB; pressed. With &Ctrl; pressed, mouse movements will affect all +four corners of the rectangle (relative to the center), without &Ctrl;, one +of the corners is unaffected. + + + + Ellipse + +Use this tool to paint an ellipse. The currently selected brush is used for +drawing the ellipse outline. Click and hold the &LMB; to indicate one corner of +the bounding rectangle of the ellipse, then move your mouse to +the opposite corner. &krita; will show a preview of the ellipse using a thin +line. Release the button to draw the ellipse. + +If you hold &Shift; while drawing, a circle will be drawn instead of an +ellipse. Holding &Ctrl; will change the way the ellipse is constructed: instead +of two corners, the initial mouse position indicates the ellipse center, and the +final mouse position indicates one of the corners of the bounding rectangle. +You can press &Alt; while still keeping the &LMB; down to move the ellipse to a +different location. + +You can change between the corner/corner and center/corner drawing +methods as often as you want by pressing or releasing &Ctrl;, provided that you +keep the &LMB; pressed. With &Ctrl; pressed, mouse movements will +affect all four corners of the bounding rectangle (relative to the center), +without &Ctrl;, the corner opposite to the one you are moving remains still. + + + + Polygon + +With this tool you can draw polygons. Click the &LMB; to indicate the +starting point and successive vertices, then double-click or press &Enter; to +connect the last vertex to the starting point. + + + + Polyline + +Polylines are drawn like polygons, with the difference that the double-click +indicating the end of the polyline does not connect the last vertex to the +first one. + + + + Star + +This tool creates star-shaped objects. Press the &LMB; to indicate the center, +and drag the mouse to change the size and rotation of the star. + +You can press &Alt; while still keeping the &LMB; down to move the star to a +different location. + + + + Bezier + +You can draw Bezier curves by using this tool. Click the &LMB; to indicate the +starting point of the curve, then click again for consecutive control points +of the curve. + + + +Drawing a Bezier curve + + + + + +Drawing a Bezier curve + + + + + + +&krita; will show a blue line with two handles when you add a control point. +You can drag these handles to change the direction of the curve in that point. + + + +Modifying a Bezier curve + + + + + +Modifying a Bezier curve + + + + + + +You can click on a previously inserted control point to modify it. With an intermediate +control point (&ie; a point that is not the starting point and not the ending +point), you can move the direction handles seperately to have the curve enter +and leave the point in different directions. After editing a point, you can +just click on the canvas to continue adding points to the curve. + + +Pressing Delete will remove the currently selected control +point from the curve. Double-click the &LMB; on any point of the curve or +press &Enter; to finish drawing, or press &Esc; to cancel the entire curve. +You can use &Ctrl; while keeping the &LMB; pressed to move the entire curve to +a different position. + + + +A finished Bezier curve + + + + + +A finished Bezier curve + + + + + + + + Duplicate + +You can use this tool to duplicate parts of an image. Press &Shift; and click +with the &LMB; on the location you want to duplicate from. &krita; will +indicate this location by an outline of your current brush. Then click with +the &LMB; to designate the location where you want to duplicate to, and drag +with the mouse. You will then duplicate whatever is at the source location to +the current (destination) location. + +While you are painting the duplicate, both your cursor in the destination +location and the brush outline in the source location will move, in order to +give you visual feedback. + +You can also use this tool to correct colors in a part of the image: use the +Healing option for that. + + + + Paint with +filters + +This tool allows you to pick a filter and draw with it. The image below shows +the effect of using a large circular brush and painting with, from left to +right, the Maximize Channel, Minimize Channel, Invert, and Desaturate filters. + + + +Painting with filters + + + + + +Painting with filters + + + + + + + + Crop + +With this tool you can crop a layer or an image to a certain rectangular area. +Click and drag with the &LMB; to define an area. This area is designated by an +outline with 8 handles. You can then use the handles to change the size of the +area which the image or layer is to be cropped to. You can also click and drag +inside the area to move the outline in its entirety. + +Double-click outside the area (i.e. on a part of the image that is to be removed) +to confirm the cropping operation. + + + + Move + +With this tool, you can move the current layer or selection by dragging the +mouse. + + + + Transform + +With this tool you can quickly transform the current selection or layer. +Handles will appear at the corners and sides, with which you can resize the +selection or layer. You can perform rotations by moving the mouse above or to +the left of the handles and dragging it. You can also click anywhere inside +the selection or layer and move it by dragging the mouse. + + + + Perspective Transform + +This tool allows you to change the perspective of an image. Designate the area +which should become the new image by clicking at its top-left, top-right, +bottom-right and bottom-left corners. The area given by these four corners +will then be transformed so that the given corners become the corners of the +actual image. + + + + Contiguous Fill + +Use this tool to fill a contiguous area of one color with the current +foreground color or a pattern. Simply click to fill up the area. + + + + Gradient + +This tool fills the current layer or selection with the currently selected +gradient. Click the &LMB;, hold it, and drag the mouse to define two endpoints. +The gradient will be drawn along this line. If the line does not extend to the +border of the selection or layer, the color at the corresponding endpoint of +the gradient will be used to fill up the rest of the area at that side. + + + + Text + +With this tool you can add simple text to your image. Click the &LMB; on the +location at which you want have the text. Then enter the desired text in the +dialog window that appears. The text will be horizontally centered on, and +the top of the text will be at the same height as, the chosen location. + + + + Color Picker + +With this tool you can find the color values of a point. Click the &LMB; +somewhere in the image to see color information about that point in the +Control box. + + + + Pan + +This tool can be used to navigate through your image. Click and hold the &LMB; +and move the mouse to scroll in a certain direction. + + + + Zoom + +Use this tool to zoom in and out. Click the &LMB; to increase the zoom by +a factor 2 (e.g. 1:1 to 2:1), click the &RMB; to decrease the zoom by a factor +2 (e.g. 1:1 to 1:2). + + + + Perspective Grid + +You can create and edit a perspective grid with this tool. Click the &LMB; and +drag the mouse to indicate the first two corners of the grid, then click for +the third and fourth corners. The outline of the grid is now shown and you can +edit it if you are not completely happy. When you switch to a different tool, +the perspective grid will be subdivided and shown as thin gray lines. + +If you only see three corners instead of four, you probably +clicked instead of dragging initially. In this case you can still click the +handle of your now combined first and second corners and drag it to get four +separate corners. + +Clicking the Perspective Grid tool again later will allow +you to modify the grid. You can hide or remove the grid by choosing the +Hide Perspective Grid or Clear +Perspective Grid options from the View menu. + + + + Paint Selection + +This tool can be used to select custom areas. The currently selected brush is +used to select areas: instead of painting on the image, the area is selected. +For more information on selections, see the Selections chapter. + + + + + Erase Selection + +This tool works almost the same as the Paint Selection +tool, but a selection, if it exists at the mouse location, is removed instead +of created. + + + + + Select Rectangular + +You can use this tool to select rectangular areas. Operation is similar to the +Rectangle tool, and &Shift;, &Ctrl; and &Alt; can be used +like when painting rectangles. + + + + + Select Elliptical + +You can use this tool to select elliptical areas. Operation is similar to the +Ellipse tool, and &Shift;, &Ctrl; and &Alt; can be used +like when painting ellipses. + + + + Select +Polygonal + +You can use this tool to select polygonal areas. Operation is similar to the +Polygon tool, and &Shift;, &Ctrl; and &Alt; can be used +like when painting polygons. + + + + Select +Outline + +You can use this tool to select custom outlined areas. Click the &LMB; and drag +with your mouse, like when painting with the Brush tool, +to define the outline. When you release the mouse button, the outline will be +finished with a straight line between the current position and the start +position. + + + + + Select Contiguous + +With this tool you can select contiguous areas of a color. Click with the +&LMB; to select an area. + + + + + Select Similar + +With this tool you can select multiple areas with the same color. Detection is +done the same as with the contiguous fill, but the areas do not need to be +adjacent. + + + + Magnetic Selection + +With this tool you can easily select a visually distinct area. Click with the +&LMB; and move the mouse around the area that you want to select. If the area +has a well enough defined boundary, the selection will be drawn nicely around +it. You will see a number of control points appear, which connect the various +parts of the selection boundary. + +If you want more control over the area that is selected, press &Ctrl; to +switch to manual mode. You will now have to click for each control point. +In manual mode, you can also move control points by clicking on them with the +&LMB; and dragging with the mouse. + +When you want to return to automatic mode, simply press &Ctrl; again. You can +switch between these two modes as often as you like. + + + + Select Bezier + +With this tool you can select an area by drawing a Bezier outline. See the +description of the Bezier tool for details. + + + + + + + +The <guilabel>Brushes and Stuff</guilabel> Toolbar + + + +The Brushes and Stuff toolbar + + + + + +The Brushes and Stuff toolbar + + + + + + +This toolbar contains dropdown palettes in which you +can choose brush shapes, gradients, and fill patterns. It also contains a +dropdown box for painter's tools, and a tablet pressure setting. + + +<guilabel>Brush Shapes</guilabel> + + + +The Brush Shapes palette + + + + + +The Brush Shapes palette + + + + + + +In the Brush Shapes palette, you can choose +which brush to paint with. This brush is used for painting operations +like Freehand, Rectangle, +Ellipse, etcetera. You can choose a predefined +brush (in the Predefined Brushes tab, shown above), or +customize or create one. + + + +The Brush Shapes palette with the Autobrush tab + + + + + +The Brush Shapes palette with the Autobrush tab + + + + + + +The Autobrush tab allows you to create a customized +rectangular or ellipsoid brush. You can set its height and width using +the Size spin boxes. The link icon controls whether +the height and width are forced to be the same or not. If a connected link +picture is shown, changing one value will automatically change the other one +as well. A disconnected link indicates that both values can be set +independently. The fuzziness of the brush can be set with the +Fade spin boxes. Again, horizontal and vertical values can +be allowed to differ or not, depending on the state of the link button. + + + +The Brush Shapes palette with the Custom Brush tab + + + + + +The Brush Shapes palette with the Custom Brush tab + + + + + + +The Custom Brush tab of this palette lets you +use the current image as a brush. With the Add to +Predefined Brushes button, you can save it for later use. + + + + +Gradients + + + +The Gradients palette + + + + + +The Gradients palette + + + + + + +In the Gradients palette, you can choose a gradient +to paint with using the Gradient tool. Clicking once on a gradient in the +palette will show a larger preview. Click it again to make it the current +gradient. +You can create your own gradients with the Custom +Gradient button. + + + + +Patterns + + + +The Patterns palette + + + + + +The Patterns palette + + + + + + +The Patterns palette allows you to choose a pattern +for operations like Pattern fill. Click a pattern to see a preview at +actual size, then click it again to select it. + + + +The Patterns palette with the Custom Pattern tab selected + + + + + +The Patterns palette with the Custom Pattern tab selected + + + + + + +You can also create a custom pattern, as is shown above. + + + + +Painter's tools + +With the Painter's tools dropdown box, you can +select the tool your painting operation should simulate. For example, you can +paint with a normal brush, an airbrush, or a filter. + + + + +Pressure variation + +This setting allows you to change &krita;'s behaviour when you use a +tablet to paint with. When you change the pressure on the tablet, you can +choose between changing the line width (size), the +opacity, and the darkness. + + + + + + diff --git a/doc/krita/commands.docbook b/doc/krita/commands.docbook new file mode 100644 index 000000000..13ab46b05 --- /dev/null +++ b/doc/krita/commands.docbook @@ -0,0 +1,14 @@ + +Command Reference + + +This chapter explains &krita;'s user interface in detail. Each of the menus, +toolbars, palettes, and dialogs will be discussed. + + +&commands-menus; +&commands-toolbars; +&commands-palettes; +&commands-dialogs; + + diff --git a/doc/krita/createdocument.png b/doc/krita/createdocument.png new file mode 100644 index 0000000000000000000000000000000000000000..5188e232e1e9417cc592f90970fed8213268bbbc GIT binary patch literal 27558 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 + +Credits and License + + +&krita; + + +Program copyright © 1999-2006 The &krita; Team + + + +Contributors: + + +Adrian Page +Adrian.Page@tesco.net +Andrew Richards +physajr@phys.canterbury.ac.nz +Bart Coppens kde@bartcoppens.be +Boudewijn Rempt +boud@valdyas.org (current maintainer) +Carsten Pfeiffer +pfeiffer@kde.org +Casper Boemann cbr@boemann.dk +Cyrille Berger cyb@lepi.org +Danny Allen +dannya40uk@yahoo.co.uk +Dirk Schoenberger +dirk.schoenberger@sz-online.de +Gábor Lehel +illissius@gmail.com +John Califf +jcaliff@compuzone.net +Matthias Elter elter@kde.org +Melchior Franz melchior@kde.org +Michael Koch koch@kde.org +Michael Thaler +michael.thaler@ph.tum.de +Patrick Julien +freak@codepimps.org +Roger Larsson +roger.larsson@norran.net +Sven Langkamp +longamp@reallygood.de + + + + +Documentation copyright © 2005-2006 Boudewijn Rempt +boud@valdyas.org, Sander Koning +sanderkoning@kde.nl +with contributions from Casper Boemann, Bart Coppens, Cyrille Berger, Burkhard +Lueck, and Anne-Marie Mahfouf. + + + +&underFDL; +&underGPL; + + + + diff --git a/doc/krita/crocusses-autocontrast.png b/doc/krita/crocusses-autocontrast.png new file mode 100644 index 0000000000000000000000000000000000000000..e03b36357011c78234d92a907819c9cffd24fa7b GIT binary patch literal 499562 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 z z&ocE^#t=xK#k`$Go?1P@F4s9VhpriKmG+r8qEul$izA*1uOiO$kiEtFLDt)qo(;k? zOlVllm=+OECGJLe4Y9td7I3R4IdAl26bifFER{BPgi z$lIG+03YNc&m;{C%~O3i@_^a3?24_*N6Pd#7)30as{qpMqDHdEPH$5X;ET(#OnH`x zZv~eb0sQC-bpum;>OINP0ZP75uT4Cj$QXoSM4+q=a&_cG$px&l>Ad`n~sSNg+9d$&a!; zEaiUrqpa4ym!iJMbAm{7PcXJ#C)PTg)u}bs6>C@1>!k|aJol`_%J@DbJVBy02aMLx zPg*l_Ma8N$2|NUlQKJpy?5Ku$6i%R6nU=G$D)0*AsGZ>Ffu3rvo&Ul|PfTB+Pve9K zJV)tB#slmhpxTB_JzV>k{!r4s$F(Q&m{aVz`1=VQ`m-+r?Z~4|8cwdhNYhBQ)0|kF zeD$C)62!U{fFe_QEECsLCCe1Qy%Mi(Nh(tlWu7Me?J~@nRBnQCUk?ndneoV8zmWo!B{5qG1lg} zB!jVbQ?$kw57w+DFe+Z8lj?m9AE_8v7ToLqiIg(4Rs?vyKmGhoHW+< zn4R-@2;}erGCaSM^z6^&*}wRO7Ir@T=I^AM3?#h-{>@%N7AF!zk9__0FXSCC?(Jgz z1mie6p&EY~F>Z}D8X3m1%PE_{?Dr(lKaX(@YgC}aRkCz0eKTrK7$=%-Pyj0nrkG=0 zd0v%a-1>xZtU;U(22U_Vlou=~Wg5*SzLd3tSUVT4%xwtow9kB%^rJOrdb~5zU^qK&MVJ z!#Kz`?4B{BxiDRBq55y}*&o;$5C8roFycfV(LmP5oVM+ae79W7JB;)D&4Xm6nhiQ0 zjp(@g8Epne5(A9;&i`H#4=AS?w*tm}0LI-(UT4sqt(NMvvB8cy#B*yNQ8P83b*elx z+P8=^BT6nKR6AMH!A#pt*Ru8<#_<4O?BRe1s&5tZ^nh44@8RdVLhGN{?1*Rl^%y5E z66Lu(La^Q^<#b-!fI6&njMBCo}Nu}osvy6h(H`|h+ocSe$HVrHhDWeX7t(t+#8 z&**Gr7&x57xhf^ z!qr+^M6jiol92`~4m}`tkYM1k{*InpP9O!FrgE*VriWTk&w7G%(COi7r($2%V$kZb zoJW&&5}oUGC1#}XK9kuU5kM1U zA`N}*&(01+7w1EnjstB9;16dYGjnU)00SUA`${hV;@?W}>A#ov?|!XH#5^6178*~_ zuI1~OUrSN^00kAfoPP*BNg4pAV&|Owno(iNwwWyNSK0}MAQP}75G9A4zGI__+D;)? z@b@&-Te)q}^@shr^KnQlcAGt}bx`SA0yvgXbXjrG++JV9;Ortbgc6BOL3$R?EAiZW zXzSJHAWM4bm`2#@32j=~mS-DjS&&-o;)GZC2WDI2_kFsGN-7t2As+63G;X z`8kw12+|O;SQUHualMf}BZ-W3)}g$>s4tTe1_s8?b7|N)4F<$w^IraTy^z1}4zg-^ z{YX2#m25`QS|xka7On|Gtp@zt;}5c2;5nczclB0EeJ=~Dze+2PCQ?k-zE=f2C zsQ{RO)VEr5$Aa>KMIZeBbZJW&t6cgR)BL80M%Akp!JE7wG2+_4b*6b)d{k-f4*bR zz3CW|D__}IpmIqC*|)l8>RJLhN=K1KAb3D0BaOWGa0Ho{hH}U)6_EGtT-2#gOR!w# zzBsf!J+J3EqR<*4Je{}dT7QSBk)zR!q@`BSJFHsS-}3}<>!3Ip4WNr=FfbF@Znv^p z=KWdo>g|egofLCFVCtVS3^j!GL~t6h8jY~jy1>peqOGLX>rQoGR^Jr3 z6b7s3>l_!6&kXMn}*wVfNt#3&*YFh*2B4FH$|N4KB__M#1cW?hz z>t)SV3ls+)&xmoaKG&M4;|b$1w+Xw*4z)Yn{;&oq!#Fm;xQ8C&I<3zQ!#~70{`+H$ zb7o{;AJQ=m9kPM_b=>V$b{8j%+pA$p`8SLkVGe*fd8gO=hcV95AsJCTW;?~Wn`*CE zlu(W^A2-VtFm4N-j`58fU<(f#g?`7{WK0WWiX=PVC6>yQ?Ja5)T60bqufVLiktFU@ z9<0pTBBsw}nQL&sy;j@d;Y?jRJ7=v@AOjFPb|rkXDRqq>TxYT8xaS3pO{PK7$YkUh z_;|m$kzcQK`5u$8ZtRSt+>xWcBOHI$>}VJ5d6%!Dul@t%)0Zs>YK8UXu?%dFO=C7J zOy&xA??AJi*`Os*jMLWHOkF-$6gpybg3<9Vb{J=8*0ioBhV@N6_sok}XP#@+eE>F? zL{rE=uof7nOWrU`Ah8IJZy3-%!8rB1>+vz6Ho76sS$cJ7b)IbKb4m>NT%yDi+zUQ# z(jeW(1j&2in9@|g%FeUXls=cv+*K|*N9kp)EA~;M1gU;JXc%%hj2TrOSPETV^W?hN zJ;gY!lVvmw_lQ$pv!K`*C!(Im#vV?6bzawn{394A|GzM<)q`8H?$A;3#2QR70@@z2 zdNuWHW^3x7|oof`~4uNO%{}JO11H)q9NR?r7VNeVwFpPN) zgZ3CNP6sTJ2vx3SEmIrPWN5yzhG*d%WeuZSP7#oyrf{W$oy0>d%%;(X4f-&xDYujG z^cgvhF>~qpFf7zdp-p%uM5u9{iPj7?ExWtjO3vJMZzt2ynWXb)+FG-PvAx^hX^}5m z#tug>WC}LT!y32Kck+;y7;AUxiO#eI7E$wHLG6hS&D8>=y%Gi*3m2KEeW>LgN@WAI zV8MMFnC;q(0;>&xp=v2$V_gY78)EYT2HGV^(!Z4XH|NrfQ#ov4)aDyZ4VA$J%5o;p z&OepAhqb(ZfFL!w0w25Kjd>t!J5s}O4YILWY~}9u4$5+);pNHXOgjS+FminF!0)z| z=B#TZ&YiWP)U&Uf@?scSm?PG69H97DcUr&nu)EcR__!Gf92$~^^ardlwaHpbV}RH$DW=+G8!dHpx9oMBzM1Oi)sA5gAuy7R21%xnhg+O zm?k4%<~$6P9u2Jb7G!D(GPPk;0wiV*;U8nZLUvrl=FX@%AbIy7r0d0Aezn@jo#sA8 zQstpWd&ZF`1G3dB!v;S{;xUiDQ*Y7ckjn%10NYZB0LQ@$N@5nO*QP6dtgWwWV0p*% zUPlVbFyfV%=UNZ%wfMVr2ep)h;K>O-t)_}uF0&p~jA!@Q7(!3^c8as>Rf)B^ z>4HbJur{8-$%pQ1fxPDqZ4FEzx0Z)}N-ydR!0Mt=$3hp?cF-}`-hmDkGtYYA8U#-a z_s*e}FWu?XYi$6MfGn~D=h)IqbD)2*FO~F32puMw*668K(ponxD^l&fXpdscogpLaeV$L272gBnpqF`aedY|g{*0N*im6$SSg4=Q*QOzjGun0s zMmm6zg>z5@X7sirXKd7c3YfWRnfm5!-b((XJ|4c2V8(IXsqfIFRqig9(J7*{LC)jyAM zzNISD&}40E!6?+~UNP?egmJB6Tm*|N1;+W>jG&MV7{?Ur*kRoA3C696aZL4AjN>^< z3w2zw#+YrSHRTEOlCi;%E7jn^l)?YU-J34SaVANE=C^y?k(odOAXzL{_e}SU^z8e; z!OF_Y{+ZqB>SkB*00HC~8MlXf__eBLpGO2xWS@UprYI?70hy5z?w_05p{BY=ar+AY zomrEJopKttiW5&b?%Wc6Y*f0@zzQffL|EkF?c?|0Ys>pXTBqxti&5xg;PxTgK&fgu zisPp>zE@QbQE1`!49%BVim@pZ2Kf976rjt6$RC$#x32H4cGI4r+YjlS_YB3=D3Zo$ z*9tiLq!=ew7@?3GOzl0>sPpJTS-$MB^4Y{n_^`1TO2&v$8DA?{9)CKOPYUcB(_0_-$ zN(V-ae8mPtq2*=Jx*X$xR4Gk5 zQGsu3m0o_yj`GvfUcOFR`6_B`oQ=q_>wFy(hd7*x8oLhkkP}S(Vkd2}z~Ncp&}VWz zxt6T`h`YX&jyqZetT06Z_Xh9z6CUjMxOTZ#`|Ofr5t688q>j-0qLB6afX{PKr6y0k zXb!r-OvB95t5JCyr-EE{j*|J+OR8uRLscn&H#zeuLRUspI(FvU74FLm38V@#T#lrn z?ZiisSkQ63(rrz0fU9Gyg~`+XLOy-ESNH6P#l3nwkV1I`^6vA!%7xPpN|l+6l&`)> zSG4i-`LJz!7Nkh}SOa z6aX=h2v6e}S;I}VmU%{f{DXF*Gd#HolUTgo@`&>f)bg`dQtsYm?2ZLWi`XGDc~Phw z|ArG36l9H>Tk5J&f=A0&<0bR_Y3 zh`5!@t~AraPI|hV?*thf9WJz;Air}ayUxwr-s0I8spn32PV&3${LdCrJ2x%&{j>j+ zIl0l(6++ z_vXl59R^L(!h%momWDE&ULlq*q&nOnQOuOX?x{DN(MBk(&1nmFT#0QE~W7D>dof{Krx z8P?L9$xMKolhYxe`G`Ass%FLgs#s~K#5l8b>;*WcnjstyG({F7z?C07*naRB^4`#|IT2&|mCKIBj>x(*<-U4vfilV%N6Xb~-^?WS#u@ zc$9ZZC+}$VNHw&?B)@sPsN0mP>Z5Mp=+0k&EWX8klkr;j9&b>aK}m+~%MH3tLWo)Qbifmn3=?@KbWoSoLcd z=l133t<*)@R7vptDT<|#`yK5X_vKmX`J}QY;Xr1W7#CIAIN_dBk8zK{xR1cNhvz3? z94AkO7GK0T(lR~m-~t;cnm|SaJLN2p7%Ky#U6CzOt1_CWO_SzmMKURK<;Ly}CkcUX zq7CByZnw5#=;-njdRUgZXS*KU!=QmSV>8a`ZiQqnLD9LZWWDTUcNCXn*|W<_v?leH zMNe#r_ydZm7kuASW3)Zy1aV`95RRD4GMhN@Em47v(9Ns7WRb*2j>>dn7JlX($L8d| zu|lEtE#VCsD@OQ60!~VC=4c-JW;O@L{WUP|72fMo4u>Csak$ULRL1#RU@doxpXDXG z1IF!@Da8H5*OPC6aldyMcdz?w%n?}FRZ5XPTHd9|MEWN8a8ox~tekL+VN`R8abc*% zt@Lxq{z$dHGZj7W8A-2bcj*ljyM){K9LCwiroB*V7Ke-3Fx8x8t8t}POi-Ud;%7^{ zk{Hi$?5KLbjd6@mw5;&)tP0VqQ0A!V3?lQ{(nx!sK?HK9dsdSIwL(de|%fof?Imgn$44{s}?4m8(}1 zdAnW6n>V?-duIbw`WdMzi54&FsnI05S5lU_>oG=pD30n0Y9TI`%|%DHl9f)i%|j-juCy;QFP?lZ;ei^AQ4*yjzoQhG+7bIIX9ivoZeeEh^SG2t+TqP?dJ;)jSGC+W-K21E9{5R=MI0qQeL` zI7LxXBS>$M<>NG#n;UilYMCN=&jG{)5OU*F0Bwh8$z;!G7lSQ46i8kD9!VVl zvG_^SkEQu~zE;bvvdwi5X{?i}jr%xZ`X}y-0-AZzHL>k|O1CCC4rL(RP zPhLb>(irb=G?XBT_5P9^%}xRX1nG06Jswb;?6#$zlSqS{5mWe3=X<)>*V=v5hBBhI zuYMu8#8QE?TNl6&Tod_bYmsN}RwPN=l9;PeOgaXL;_oCBu<_Y*+F9fN@W zOG8C~uq$MSgzjCqlk144aQy1Ds2L^fxHZbZ&S?b7i5G*G&*_k_US9MWxdTxDlCwLF zdlZ{V8Qmr#eAfU);_d8}e0TMC@^AzQDhE>2m?Z1(PUQ;7_gDqsQ zhKo3-=}fM8ztXn|M!70)vEz6+B;0U-Alj0@hm{GjUCNS*IA{~MSn}4TW1XDpJ)cI$JjcVb!VA-b}F|5Nef-d zrnjCm32aP0mapnMXT4%m>p7WP)B3i31V$#^0WjJ1zWdqJ8`A4c_oKL(-G%m=>|z^b zTGxJYt_I>&i8izX|0vs#)958)_LGcy@dXP4PXHkluGTRnT?5$W*r|aL|@}Z36ZfC&iBv6XQsC zQX0)sF)mByk}1ZOS|BOLA-g8VwVz>JrQ#PkDX~;EWJ1Q|gyy{|ie_L)0*v((9*GD|{W6ZdF6ExHmi-0>rO*U^D<%` z?5KM*oTYi|4!>*T=+Tj*J#kQi5T!8F*#R9oH}OjC=XE&A*TdPk$6Ncj zx57^QFRi0IQy2n8;w@s|cUONaZw7y-{${)VKLF#9@9i=fuWsaO^G*`r6J@sZ@r&f4 ziS3NjDKPG9VB9-gLo$O}_4Yc@-{^#KqD5GbajnC+&SliSK+RuZoSGh;7I0h>&@Jux z?Kz3|&&l*>1=5LL=jKHk6HJQxGhk@!GV1P7p!;u(jjd~3oz2J37{~j| zJewH@4Q`2Xm9k6%)mW_BqyD__M2{(6qJ;|^q-x>gsn;Cy!GA5rnfO(yyVOVvX-TD& zOApwV;5|pI5>*bo)}~&DJdYT6*cN&wDNN+~-o<{V6+%4&qH)ur+D%`3VThB0U|%n` z=DF1WeAoM?*3PTSbGb@S`!~{p{vN(Y8Hp|Y1?~g829o~UJ5QUu;Eb=vV!>zl<;T6M z+&nM#^8CD%hd0l1bA2oG`CP7FU&-q?Z)7r_BUpv%`=B?lJ1P)Vss>cpLN^nT+PPfe zCXk~zo{+Z3WX02`N0n?ElSxs))l$-6h&PbkmNYZjUb<7)++Dz7O(LV-@ZiVcSjO2K z?JgI^PImbVUiT||AaH@F)7Nr6U&^P)@8$i+Kgu6||F<$7{guq7OI(000HKt}g5n5N z!$F}@A$h^;9!X81jOk=5$Gs;HA0H948hKn4a{oG&zrCfJT_AIO#7z#+r{pd`J)UHG z2pY<5cWxQ6SmFktfQzTn(4S-Zs5@SsR(|;S86DIo2%baj%#o5v-xqSTc_w!Ir7WIa zWVJdfovffA2cqW=zhkv|MlrI}0x2DgaJ@KPNM%oct#%>Jp^F8Q@pK!Ni$3B+Y+GC} z6b-xfL2hsoZswuPP+%s_m1NDW3|suWnrH`TO=t5p5)WkElmY*E|55(w{h#Dvg(O|O zbDeUlTjvwg8=GkY)-S&4UQ4Lp76WCu$ll6UyM+OFZ<<;sP86jm3QmSh*-E8hn@%OC z51lPr^4=z+2tX9tqCdyv6!M_rN#JW2uyY2PJFhSwpw5=j%^mxW5v_C%$N#%yboEV_dn3R z2K+v}_RlD6n_p^xZKO|RM?~{@rURKGL7OEvGLY9mpj0-yy(|_hIV@|5UZyfw&16!K zkyNEpG$S>@)s8%=r`|{%xOs0D+Xq>^EY#;KWRZM7c$M}Nk!D`mcVC^! z0SgsApK)Y6S*i}`7COy`AkgXI?$A`R<3}8vhHRE&ci`;>Y*Ld&Ww`_XQpW2XS+lE{i^)O z@6~hOo+y94FsOCxYMnY0In+|X^G~1UZ0g~=_u=Tcsx)TQvNNB-$q%%xyJzjG^ZM;| zsFO4)VmEoBvflIrMg{oSX_-xw{&taKp zcb1BXA5cUsp0-FF?_@Tgq9~Zltzz8lH!!YLV^I~#4depj0$`kv;x|xLsGRz?m1olk zrE#cxG-45AvttPZR#=Vm3tCf6u z__O@{@q78J-~YADhTq71LbcbOvtvIYqr8U zCB}_(VVjLfw(5vg-UY_3*GDaq3bkx#fN`Y>5%CP*&%C{8 zVS<9yKgsJe_SEeK#`#8rC9R4(QwgfkFbz~$bh|G!F7dd~9F`Lz(i+97^#-=Gq2dTE zkd7`{;{rVCLY`|}l-;bbdsg zHFy{(V#E*Hw&4g1naO61-ea6~)`?s!q6V1>P53U!=j)Qq_8y<>|NKROapxjUoZ;;h z@o$Ere&FGN70G897raa)T}@?l9P2WFS&wuQ$i`g|a1uLE)94=Ko*l+Tz&Ng9P}Q}^ zIB^))o-nR&+MSgb4C87O2hg#CSzd^d#I(p_t~p2>nM{ldN1sAt8-1bC@D~_&p3Gc; z;b-!9{f><1yQIHlUXrLV!{rYeE2BHT2+tcS#d)z8FKZ3s#6*h%r8xU`1}+*`ERdLM z$Eu7NYb@KZ&9APN?qtRBTNp>oWL{JWy?|QVJ0czKfNRuPapb$EDMuePnb#&@6zYVR zxoF7gQrFu^$jP6ta+FLK?R$FbHJ&vf0#6n18d`BgeZ$V`ofG8u*R+SA=7Rbdor@)D zF80Ry%Br6r)vk-sT<(+EbDrv+tnUg{V9|P0N{+-b=dKPazq|Xr42K_Nb~TW1zk4J9 zt@%3%zNQMsP=f@Q!rLTOJ~*YmTYeZW7Aw!P)EQB&i@6;MJt{4l@@d1n4^+bOsNm37 zd}g%O+PE?#SN^DKAX@Eq<}ggvFm~j9@_SS6q)cQyej}^(FUk|X8+_943j-_-|E^!X zQV!&L_au)`Pm%@`84j+H&~!4LkEGZmN#5cMcWSlS0TeQcDG7>0C|5I?zMjby0J%JF zWR)M~?&Tl{F53@78AP2*@|HCDnhZ23Qp>)n_xSvUZok$jU}6%D0r<=x>E#gPumw0o zel-%0DrESqF-~tBCfbekJp@<)BWZ@UkD?Xd^Mv$GYg(C~us|tQ1gs z!_<`7-m5VxJ7e5qDhjINb=vjT#YgQ9bh`V*#FNTFDU0oSqGqXFVy){?JBk4nV<^&5 z+kz>-NO7P;o)$*F6sau%Z#TXiwxnjos>h%DI~k&&o+L-@ z0+K^MOapU2cOCn>GLA4ONg2*4%UkuaK>{9+QVEg7B?wY?+ok+;572BvYmOjNj_^Fq z$0$gX0j@92GJldsoaGl3pz#i%v416l!$j|QgELixTO=%NT%ShI3cE>9%TKs|@8xB8 zCwaA!AztfxdW%GJrb0)aT z*!>`N;-J#rW;jY(g18-zPA<)+P4Gc?o+zKo-N1x$zmy8D)gQww_A`o!{t%5)PiFXyTzbLIOH$HJK-6>9C;5XR8x* zU!Bgm$jkz1D#OtP!9Pbbc96QL4A8h!)R}VD@fhfJX3-ir!(i@DlEz{ppH6A1m!s7x zs5xatr|z298|Zl#i^cZ6r(&vK0KVv)syKz4()rF(-Bz_+tIv5xsIfN}*WK%<$qvt8 zc=B!HpEtURqzkzdM)ix_AUC&T#Gz7xufl%;<9rp{-~xD$aZ~`KluAO3OU=KDF_=jO9Vz2}e!pxo=rm zg7|!0;Wf93V#a>ElKWzZ>z}HC$kU1#cdvpB2i&h+0W3Ng<=^8@vTFdU1}BP=(J0YL zb&qknd+8beX^&VNFlN9^nQcy$YA0O45TnzT(8(INwtGQ5a;n=hKp~pVOzDoXuW4Mo z3C$e37ouRH%?U!eZ$3}Ro#2Z~hf^p3_s$>LkC869-Qsn(_ItUT7~?CoKH&w%iNiR@ z)~qZnXwlT!`V;?~%kwk~jqy9OS}l|0{T&M5+R>H*!^`=2j6y5Lvx56w{tS$Jk>%<| zq8*B({94i@3TR}C)O#wq^9-C5#kfeHzvty0Vj%Jm?w40dku`4DlNaqxb6## z^W}T^7PM?$blSWy0UJ(c4dZHjacw{}A6~DHpO1swH5g`r7HXdJ{_#EA zyQP|5cbXu1ju}9Ku2!jKIt?oE{2$mtPTUS@YYi30ueijxM(qlzy`x&#upw2cjD4un zSXGGZ-1+ON)cCZd@y@R)3^YI-d6Aupb2<5Lhu7w-^f|_9@j_b}MRhU^?(iH=CW+E1d5_k+ z9B1WV1eWu*$Vo-8>nD2sex+O#Ow~n!)XVcV7X?!onCRIYd&M0(J+J9bM-m2)Jh zQ!R)iaCKb=2+*uG$rvEY%1Ko1-U%jPSE>Wq1>) zvw5jJ^+27_X~Y_;FG#9w3^mZ>Yl=-YRARW;15}^z8F%`C(ph|huSj{_C|omAjLh?5 zw7aoFvZygBk1$Z2Bv+$sD5Dlvs?b+qx zu32bZQ>u|24jc8BiWTgRDz!_GlK~#~{id{KyUzMJo+b-iC^mnbBNgLN1WjKJ<@K9u zm9N~sY}Bj5OcWZifBFR%|FpF41^qIlZ_dlSMx>a`0-0PPAsU#}`5innb zs>(GnENc|<&7Bq(lj&QT&%efXCQFlL19++e=7$Pr(!5f>l>O8$ArjE> zcqH>H05oM$?*dIihSONyd~>Zu!^h(T&RQv*oGA%f-^G?hQWlwu$}G+))0(eZGuW-2 z3XpHRM?)kC!|_DTt0~vNM~tBWOOLiHL{Ya6z&+jDA;yvpLbFn1Y&gz(*PGq>u5)TK z=chu)Gb!m4%f(6HYou{XPo00E`qkQyNbil`D>$8Ho4O0IzJ$=zP8unMNoPg78ua<< z2~^jS7N@GfSJLdT*5+2@w5QdVL{<4JrTPrw4@i2i0Fna<(<#7{rpUa8kx?Y+4+qSl zu`zp>T*Pm;mE37c zDV5@+&^fVEdUnh9`%c=D&*o6lAu(>K)41JXCBNLiM*)+|>*H4^jC*tYtzPqoyL((& zBtWPF23L*DUnPRtMP7a}jtP_YVbmy{sz3q1pO^CLdL)17VhPrjEbs_FA}{5l|95i> zp`mAs&6FKy!mXkXT+XI>B@(sru$L5ZJsRQ}324adt3XIf_kk23Yci2ps-FR~QCe^*m?Xo}| zH1ksRdg^n!zVFdp6h@JIej7*4qQV(s)8ty$rBv_)P>!6y3NL;>G9Wm&;KIBbxW={* zMS7iz*7xtXv4Y2UeHAs3&BU<;OlfS4p9ef6H!vLU+@wBBk^BxbwGJW1spljxuHIxa z-G3$X<`sTsDizM>ZuB6_@t@_Gz36LlVp&lwkg_ho)q`4F5aZ^+xOWcYo`7*n>pjq` zs>is_Fs^eL=lu%CF=6MvtD2#!`T4J5T&vRr=|10G3H08EGM^1)I2kC$6}md%pTrG% z#WXgQN;a!;L4&bPMi@U;1x`f{{Il`tmo&Z;CAu;LbmSpvYK^p#Lo+s@qEKmfUDuxD zic=bmIK8{NQsJTvb1*ijr35a8+L*67YIG`%ml#LyHcH|*;ZciV{&lrCzoXbUs~@Gs z`z9E~M#ca+IaxECeW8UdpAYW><9N;~Of&I@vOn1OaIbYTN_Ex3D9$GI)_V`Oz1Yl| zuyDQ)7e$Wl(fUr1qUrupaq#k4Y5(#XTR+fI-5XsH3LVgh?RH{r$@;~93!{N zN)6OE$x{l0DlRp)h-{{*ZnW5$KS`q!h?V)=5a=tDh-LNaBby?J{MfK6eM0d1K@If0 z;CB*T<2{aMax<^w>C=PUKYkKF%OyopoQ+#~_q(Ai?zVD|XvxJ#?&eHTgwXdQ-)^Ou zkLB%~k#zAv>J^u&Yx($mknL+EyeN)Rb`^^dfYjlJi_-PT&*r3uQ=1&cMUtYhJeYy`U@<@? zF)3RBX{VT`lsKoi@2Lnq&0=dAO+$GF(4Wr|$=4QyD~dsM=3_t!^Uldjo0?na4Cox7 zicOHH;x(H2a&;TZ^d{6v4;N!s&j`>PljseTqXwe{Nx(pbVm$5i*0t@2XffxOIfJ%; zxY((!3x*@?2odV-0N0t)C?skDP|JO&DBJuRJ+9j&+I_H zzWIZ^x%pPlOLN@Gjz~lKXn%%8bf8Z1yLO9YrgBq=Ghe)O)DeC_1{{LNQL77+lHqlx z5ix@V0hhU7;MQXMNw3lWJngCthY`MfHNLI0M5T4WjIIin$~&` z*j>}TMJBYpACcc(FqvI()R{6{inBbwPI1OlB#}pzf@eZwD0P-5@44OF3u5fxREM-r zO3H_cuU29eSHz(}Sa>@FT z%VE8iby4bhemeXjPs^X=;|l-A*)9^wqQ}}zW^ok-t?iz5Utk=mimkcLKYU!{`9G+Y zz^m6&dGqd8F>Z+aHlGb}f2N9Yg<>43v*8KjC@G%d+-9Rz4W88u8P9mf>!}!58(opV z$oHIYmt8}po*<5Stu=&5JxM}eyVKpkCgh}OmbjMd-44acgJP5yd<~4dbr@Hp$Xh7J zc^MM)t5!0^p4VUbIFnWoaZ-$YQ#X-iZ992-0*d9;d+mwO% z3LBDJ&lMN0D^6v(qv>=g4h$zEHz;W4(*QBT*X0T_T=;x8X8})*XEi6ArR&ZmPB4I% zs1TiQ(z9yzT4Z`EYeuQ6{8&382w(c&HPaArkXh^z)f*&HZsT&1t zKn{-1<|s?GEBdrfOS}`tZHRGeQtJ>Gm!!syQRLr9Gz(=N+{xqcA7wp#P#-u7HU!65 zEmVkc6(_d~+#~$?*TA>8Cyd+6mQzPOR~ZVe2-SRfEM$-0Rd&^dAdve|nt0ny2ppx# zs@%X$Lpq%%_ZY{09jD!Sj)k6_FfIeeamW5hj01M;;-gcCI}0nYxIZBGNyf%FARSwM zz4Y}BH#>)MYJmF%#!(KOYMUNS?dN1TBvMe#^XRE12q#vTiqPW3k4VQH;QDc@6K2Ni zV-uMTKC*61Y$-Hz-V2OtIRT}Vzh6l-wWg&iCzig_q3K1{Id(zanbCWkWWdg$V%&kc z^cAizckbm2jAOx(Br;9nbH$^gS;j_ERal+e_^Mjm?;2^N({r9#JZ807gYf@r{($?y z`$0Qn#w)M`k5(?O!o+n$^?bx3jd3v46_>_Sf$7e(lgK5qc4V&K1X3Re!w0@&Ja=V2H(6w zQuhd;|FFpA)3Ybv4NHkQ?nFZLh^KjQO+}vO!~-Tc6h)525Z9$SDtLrQ4n1ACt`Klc z&yXF+J+l2BD|;ReT(9+NAzR#Fg1b?hV)YY>lhkBN#SYNrGP|ZwI#RZY3#oVHeS5F2 zerAyAiHQCc`w2 zF`bBxr{_1mOs^>(V%_Zhwnm{>Tag->00Cb+;Dqz&_Lb<(QCa~OIj;yl#4HZzUsK~} zN(9)Leqf|u(WQKQ#F^U3%OODWf+DC$p-UG1KCnYoEI~!`VQ>DE(n$@XGTPwY0DZi(x_c-4+4VEs`;HpNj?S(9~ z6JOz$ICsP%eV=0~mPg4q2lFRz`$RgLN0KtXnacb%!G5b|ax}25b@JdjDq4HtoP9Q> z;5FpLispD%H)BagD0uHF&QO`D>`AWkEZwPlNH`PZN=H$w#h@1JLjzLRxr@tB7c)$xo)-YeFfx{qQL+)f)4R$!73t~3u8PK_ljJ@wq{ zx^w;0Ia5)u_s(zzg?;Dl;`&(^+cGE5dAzA)yY4O}N>go{REs`+9=-0=QdJKdPKays zoheFo+aG0|T*;UP$#jD2HWk0}wHr)o2|aBnkWXc|-SP=vk7}toHCXGO`|OeYQ+^#_mh)5>l_WM4+#6dGFY1J!2fZ#3Mcbd3li4 z?nOpBV%+qEaoJ#kB8t~AQeh%azU4YclHAItwM{?NIjpwD|2C(3Tm=m9fFGZVy#J93QkwgPb3fnO0X-(v#bKDrixQ*^m znZHN}%y>bfeo*z(Gsa~yK;ooAEx(Czt(jyh#)XP;x3A`MJ)Z&NHi~g0PLcjajJx|4 zjGN)!{uai)D8?=BwbaJ z@cEQqIJr@w=O*%umQLUBuHReXM3%~)$4))sw8H5Nq}rx^JcrX)_(HLjIeH!U%<_%% zFN<9R$4!OUtl_@W-pPVf2q0ik&$5j^N)-`v@x%Lpgq>kr42+|DafU>A zDA&Nacfh#G3FFAV9xBGYmSH@XJle_~P3wOjv5QD-vRg5c8AgPCtTlo1LvH|elGCIo`R)%3 z`ReP}(s+A-7=y-07uSv+oDnW)a=?3gLE<{AWsL(eMglkoNWB0AKO(vNr;l5? zdPBMh9y0nAJ#S@%&u}xeK7&obN*tVnidQhm1f*O5Jjj_QV3=cZgug$?X7i*{*`1E- z15Fr8b^8u=Izm;Rw413vlBb+!B;m+#MhS|Y@mM?I1S?XI$dTrlF~)To0U%-=W(Ich zeU$^6nyaynFi{Yas~sYNQ_1ik(L{lriN$)Q`%X-{S-fzUgas1&4p*05M*B^SqSJaxHCY(vYpA_Gqx65i7Sp@onm>}HYy3{h6d8*3f z>#^%JQ7HN3hE7VJ(!?y(J$kpa+DTR3I5iG9!Qt~lU#ymjcD|}cbxaaNdpH?oN~#VO z^j_J?Pe?NU_|V8x9_yqfMG?m?vC7!*@jYuK7~5E`n~AUiO%I4e_ALGoVR5jLb@D;G zTK)m|VT;0l|4t1egLsR?;0X`@QsQbTx9NY8tM085+Bwc|{Zc)oX3<-@_P>>@_$%2K zFDL+3vM+b8J!tAHdAIX)g}(-*$q>tbK5eL)=BxC1bTER@2pwL40&4Vndat#^`O7DvbP{EK3M6Dz9M zO>nkHu@=nq9HZ}zvYXm3iX_z}Fqcf;>xiG5luF#!!6eb$2pSb1cC|A|C6L=aWnx2* zEs8RvV-v7oQB*AP@2yco)v(a(lwLDL)-$9^8ar#!nt#fQ()yL2gHs{tB+ngL+bPkt zXOf#|*R?nNQ%v$L$#2`w`Rct|x#wsNZEat=Agp?)z3N@(CV3`jYK5(ngC+EJwp6Ri zcRgdFYtQO~-dTmv{H#1(m~N`b)TQW0Q=3F~+Y}0jq1*rJoWu~#V<{YcY-!;9gcvfB z>0m5Rj}yGFflht41?f*n#PdDQ1<(7PEFRyZ(7Z=H-D`owe@gGDs+Dz28Z8oS6lsB< zsC;hM74k1(obGHAOqsM%DJx&en|{lA{A@-h|j)0;Q2kg0OO`7 zjANr|IEZBsp(r56wHp*`zsO+TYBEcqgNTp2t=dVwL=rJ;WsUba@+r)~BB|42>idsK zuHU%i89C+)iY6}c-wgY6Wm7~lBGgBU^gt%EiR~;}p~rw3%dsTJk=|ZfW7PB244Cwt z+F@M4DOooKo@7p0v2_?XxWKsP-;Z$=Qc8M^LyV~!hjF39xC9s%JB(`$<0e<1VO#}_ zo2E}vZa>MV4|_9pPXm2#{f;GNxcL$I|M_vL(}A~#&mg+994YMMHHVfEANQtEskG$S z_PjzBqOFw%*s8jjsDDiBWQ>)?z$KqXJ~J~7`kf#u&*Aq?rlvf|N1i!VUYO#X7E+-# zLcF6XgR$98i$7`yNotCG`n;6ZtV!JKGtuv*l=*w5MCy)gq6`othvau^_4%|CJJ{V*uKujxJ)u&ZKveEZI%LL-ae!oExR%njf z_5y(aCXDm+xtz}jXVD0yMEj=#P-pabUI)FLy2h#2P2hapQRg(ttT0+Db}Lgpr0jcL zU+j0W@Q(sj7G?a^9p%soR=B;7(8ft$x?#zgEA0}0g20;Y@Ceio_ek85z>j1) zwXV<llG60~{2Y{VC`WkijJK3WssIL+9aiFh5M8HSBK z>?&Dqa19tJsf0)AP^#L{Z5l;DQ&+kS7%IQgy0eu_j`rJUS&|yql8ZTzEFH-(LIRA} zE-NlL_Z4u58-6tP6Hd@@Ag^Z=xxKknFPx?_9}PN`d!bRHvO$W!8|fH+@$#bkMC5zw z7!rYKvw6{Jz_A86;rl3?JDW}A8+j|kQKI*O?g{f#APHFi+Lga>x!# zN@XsZCMLE(=(wbm?q+}qC?-KVU*xG875TW_+bH&}j>Ea2@AV6NtqTrfI~cVa*>maj zP+Ib=ia*CxsW(2w8Prt5HWam?(t78l&kNLKb~0j@wUunW3IT8`d6LVbTmU>iN-@2Y%HILdH>y^b9j;_v{EZCCuK_Sr zBV5Q11(J`#e%^g2bNNo&-I`wRctv>f9*1ah-CW;nj+AzP0%x_~wmc z6D$MYn2W)b$EC!5)=3_7q<%b&y8n{$WkHn-+*CFkOpFx2TXRZN0JK}{mYyVB<)jLv z3)oc9q^}Q9oRkLw4<)7#+Xe+zVYHdvsDYmy*NTg(gLx;z8Glu)AXThAIc(@t650-q zZ_^)kv?$(^WCLvulob=jl`hGWd+qh?>|XlZJ2xr&&)SFM-oJwhJ}C-8V~J09+A{S{ zi?{8Csi01OYPUcxa*}G-p`dRaP_J`7R!(Bvib*FK?iL+-rNQ$(=stsqj>=JWpmD!J zyjO|&)>P<}!>!=xMkJ(56QmGFJl$&d)jT}Ucd}f5k_Tj%VV9wJqA*J(FS}=)^PLQ|bMz6o^9e7t!}D5eGTD*tMoJbc*ir2w;@31MCqpWfs>hV>Xz_JzdZck1v3jPHkD=n+ z8RK641;z~(~dUZt1H3}C0KCW#7pmY`D>tiiD7IW8# zdvgyMC$gfQ!&c9*)$T!M(G}xt+53!fQ()X{-Ag-RT$*aKM2sVq zju=Ne?qbnnoUfD{s+yfJu8Ni7N_?8lCl?sk{R+lahH*%+FELKExr@)~Kk3A?WwCNV z(YCLxxaP^pES8a)RXOQlD%5d`!CyOO3`x+MKUZ8PzZ4=Sp0f z);J?-Up~h;%6JB%x@WK#SU3Z%DE1v$?AQua9KKJuw~_j{Rn-$-;A%Av#01LKB@aW}xYKS)}> z0>aL8c?KzB#P8b)RFwS;YdS%Y;B=_AX&z-}*$TMjii;os76ys`BxZ{7X z72`^aDgNhU3J#MaErLB0MZj5XwQ(4nC9r=5<8&XF%>>*a?&=WZ_M3xJxhYTYb!T&1 zQ=+?!%Qm56{2<2Byfq%Fsfk3|Quc zCyeVopE!l{^?5$v-0tu^m{E9p5)=A&VBAT(%{4dc?zb_n`4xSJ0h}m9BLE1;SZy2IqHfonIie?!@^yikiFJ&u>E`OSym|FX z#uEfq1VkS01d&Gd@7e816FqPp4*%_|zfxJl^6)=V$-W@q0NBR2cwpa2zFWwje)xO& z`R8YuZc@2^9jb2yF9wrVpIvKCJlL6d*-DP$XIrovHZ>~cb z4{%}gPImr4%48-Xmqy!z6-YE2#Odm4XMwE`Q>Qc+(z0rR-P6-ga<~0a3ZIVA0|kO{ zLY>v2c91yHQ3rXyIWM7++bN_NPGtsgRNo!)w#BGS+RYDWjB69Ofcr0c?>Y?ui9thtDDW}mZry1Qzn$aFU%9{qck7R(?zzl7- z>sXD5JulYw3_CcaUZ~<03m;B^TI6X-vX2pDdR^el1Hh- zz09H;nYUj{SPqe}AN8DhNhgzRD(`OpTE4yc8wqzqsh<(VRxgrNG!4f6pjr#h2|2v< zf=N6rVm+5g@eGBbO#-{#tH>2cJeRF+-FTH`rf`Ro@a(BrxhE9x>Vs6$ljq-ralTTgcuo(Ts(jqZXy3^2mC>cx zxs8Ewx_{&_jxyq;R)Xdh`euF$>>|buFEDPPQ@JlO z?#-+3w8LE<{y}nfYwH3S_Zk@XR=c-<`r#+}`Tf02HXSg|5^f%2l{G$|m+WhLb$tSM zmF9c&x8K;ABE~)Av3o*MbbF1Yo1Yhn?~X>lhzCJg>TV7bjeye(nsnmBP`OY2iE2}* z**vjMM2f5pPkixUh^>8qdN%Hyv<+^x(S*6o0OAGT@$^F)lu1T;=wVJR7V4<4j;;i`UuL zXX$SpG|&SF7?(f<9Wwd9UNp9 zUdyZ_#tndRrLJL!V%$W&dP9u+ufVv09G`tDRw!;OCiN_gehcGF$%eTfn_Y%+&B^4| zFfLTdaK^~UGh!W6{<=Fi?F{20&50G`T;bcBjmk-ItkESc)ziSAkAMp$&SxGtAHmAZ$IJKp%o#pQiQh#AI;wOMfv8RrBUpO}S!^qLegu%eyO!Tyh4SGgkf)bgp4N>N zq-mi*$_AaR@g834P-gVNpfU&b=eb)#6%bql0uwuJbm0zhQc2BweE*~T2N2F z(oZ^7^0=DKB?;!{SI}};M2D07*naR6X`_ zqQM~I?`bHXeUJ?jvptpQ5P-6y$;Wa>i&Dxj%LQI@sp@n=6lhU8N2HDMo_6_07X)?e ztQ`8GcKErd$|8eDh2!(Z<63_D=}sPy)No0a0~&VT_<8{~<%h8rKUHbcwz{t%ERGuW zcv4TFIM6D;t$Jr?6A9tL&$pc{11=>VHCXYX?T)TFtA>n$K8&iA!hov^D!!`DsdOhN zLn)_LT;8MKQ6K|8Fq}-$xEH9#hFio5BBjy^9&Jw-6W1}aZjq;SQR|R}&Rv`GtV)## z#CD%NQzmRsh%670JS;gqirwOItu!-K)RNV66gI!ZwI0X;1Y0h?i5pay*PzX8UPTNiAY_$4wQG6X6RRDP1@U2S{(}{ zdXG?;VYew&SxjlH7ZfmQz0=+gm+Yxh#Ak$EZBA4vPtWsMY>%p%qeh=jdR04c!&dOf zNIJ6J3MzyZYonL+W`w7m9M3$kn7DKIh<{!bd)afzp8hbdKx&<8qg=|mo(u`kJ4)Uc zI=;G-)m;8mcbE8Gqy*+HCC1^|o{hi2xXNLi z|0@{x9j?(oatWd%gYxShoW>op6c%CZog4l5w4aN?`=D97+2|z9M8&r&pcoy z?|*($HA6PIs>(fkvF-gtLsvu`O@FEPBBNs5e&_aaSW9uQlFg(_&doqlE>RqKZ4)lExxAsgRdTyRY3ITaR&xvXL||39Z?AiE)P$#8fR;wDzVNH^%CP0XULC4?vqVSM2LA_nNy82HHq?G z{m$jieMr;&y(rLplZv1X*H_4iq{tbvoy1qyHN!Y=IMHeam8v&rRH2pkwj#BzL7oy0 zwa~i6IOdkM8tw*)ar}H#ZYE>OJGF%Vb6}kBD9oWQ(%J9rqjB4-KwNlOd0${$$OUC4 zk{p?n{&6-DJTLNoCX?ZtYcM-t`KFdTfJ86^sE|Te?@+-5K#=5zC~#;@pc?#nE#o;7 z(Lt-Ga8&Q$0n@H!TZ`W(7oF`ev6GWB`y=Isi)ILF2@@3_1f{T7%9Y$X!&mY=`F=<< zdwcr_+3cT?e1Al+|3T$p`Fn%o%`?^p7Vi%;@rc1Km1Ak;{dWn(quO@bK$x{X%}^yJ7NRYJT{3RD=_ zHRAFwx$s;%%qdrdyE^p8x}Va~shm=`D9pA8Q!R@D*c64JT>1!sVKT~as8j9Gs;ZQ7 zRYfIglO!{03i;ltrwJPojZPv1SF7+&MYN(5Qr}JiAIG${F3=X?aJCwd^iX(V)LSzO9Zpl%Ms=#Wc zQa?(e3VIMWx`Uvs%tFc2=PAZ(M5v}> z`sC2r+{vM~mX9d~kf1@y@F+142GTIrNKpQ~tmXZZOW=X-zL>uTdA}4m$fSyKP2+{E zqmQ!fmI&5(uLrzNej{;tjh_j0Idj~-LjnE{?`eo)5$7g)lq!7DT_)~kak;bfH@Gen zot~7O*!qEX=-I%i4xt=ymW$_|bh(*XFmT0cZkWn&keT9BNJ-&RJ2)c%N_j~1nzKOm zoS6Wpyj)P{7nj^kX{|d=B6t(kz^@&s9&Aqn=$!Xb*C*v}S)Nn9medv|lX(8QlwOju z#rWWL7qkHjYC&hC^AH)p5YOp&7Hj+{wuO{iGaF_XyKS5^oJyX0IvMc#0;#iouq~4E zP5CI#4{OPnI1~HM3S$Ryq<@B_uCO68Gw?s|IEnL=UZ+K!@0|(>?KAeYjwDfzH>cV~ zj)IogwKYYb&V8?#x1R=T@3Z|F?_}cF(-ZoD-FBB0h3@mNTz7U|?>>_@>O;7r)Aif- zUV8!_-J?)ytIcxabGk&ru`PWng;IE|%}VgTS~vL0rIBw2?z&k0=uJP6E}$;pYA zYBP{X!--LAN@_lywK%T+-596z4*WTCaOLnfN4(#4j&qbK7oJk&B1VfE&6rps9`7rs zP~~>G6yuEZsiKgSv(|}*#p-_v<7y@zNIv6^9$u+@_4*qW1#6t&XJFiWU|g&pXE@G) zao2dR17O?+7)N)~tx;Otl$$cvZ@v~S_9@Ahi+t@W{D+z1$Vg}4Qb zOPm5${4Zb}ClAdR80U>F&d_fWiP<*)0^@`jmjUAjDkhN^7Z~SVU|jXjVO*n&?S^p= za)1Af`$4rr+}Ev5lQ=nIdXdmJ6j6h zrdp)y@+~B8${4wS_Za7T4oWxYdrcgDkJp`hRyJJ1wlk*qT+Px5Yiiy{|$k z;~cq;VO(DBB?QLh$m#N@9SS5q3_Zq0CyW~^#mz#SoxGRig3(KiYn<^kFVe9N-D}$PN4~%~Uu}12yOOIkIF;+P z>9IRXS8{+5JJyC_oXSNx>jzy|3!Jhdjj|Qvp5^6fEnXR_<%jx0`WB3ih%Ni$UK-q| zWNL+e!=1$fc`$NG?!PO&%{yaU)fl~*O$sW&65}e4OB>5^y7oU8#`%{Rr~6s|dW;K$ z&?qw|%PbnGbcES|z%RyQ{Tnjh4PTS_9r61I~%7o!+=O%hWK{ zjAvVU`|dkD$f zXiSe3PrgR7xO^(*J-+YT+gM%?JvCIL;?Jjzxs30kST?BWWq*(fou}P=vqf={5r_}; zwK!;ZYXNk6J{(YZQ+&@+mxE2MqwnxhFrhPg8;aLzcP}{}h#+~Z=8O^BPQ_7yf+{ie@L+<& ziOS)SYX>g!kaQyf$~X7&_(J$DmR|+f}Znhh(darY4+7pb>!z-D^5k*%0OQ~O*$D* zSdcfWn6=%J(&wvDUOeuU20(#@ms+f8>tIAlY!v4R!0|DbsN(k>@OpbBW{q~_ z{KR$A9H%vn%s+=}Y*kH}_)2!iNPantHh5 z9Nf<`lX>~AjE>)$gL<}>EI{FWd@FKWK5^n-T%qbO3 z)5DDfMS!!pQkq7v^`+XB>em(G9C~qWvYXPnWn?_NNEnhtr9e<%Rhq!1c(!Q7$wlFS z`(B+hq;qtnMqeZ_Cbj3NRbobbX*AFUNOswMw{*%x)c4F>m(xGe4LUB4Mkd#;fJ9oZ zcKE^*O`+d=={tGc1))&F_$pG9PI_$>c(&LHI|W{+F3_8*_5}dr5$Q|I6_OzNC&?SC zR27I>mW-JBta;^xNSv|>0g5{kMiZoJ-C=8cM<&eR$=Q&+Qz}u2b04agRI3e~GS78l z>p5ShOUc-?T9FI}MC9-oKC*6e!3#oOw_=@K|jUv}bpkIft8{QO9;KDp9uK^AX8+q!r;tHhl z&>|V<H#X zn~1`H6yrpv0r>B=bt4aZQiF1w!3ytdsI~=#Z>nJ_o$m2`6>K84zQedyClr?$7qRld z-{(kR)=Td%FpfSoox`|9F)qBoxNjZC{ZC-r&q{MWD8@CwxS3+yonqV%dOu^A_!g?< zX^Z@0e0_~SUq6fd{2=npYxA-hCufYqt(85$2gyBcnnsa24cLjTO&zZVPEe?a`*jOo z+2YX1PumSJ&e6O)S3E?fx<#Dh6uS49Ibq!K--dC`Utru(G47}sS4$8(jAN(l;4m(W zw4=@mI7RmkzQZ^l7}pTv9)NKV4&!odqOd?dEH|o(7CRvyHq|OI`dJtnjg2@i^%n+} z#L<-{*!}7r&smf@x#GrDCVA_++USq^s5Q>il>2(zaB@jB&u^-N6FgIglaZmW~hkQldLX@TGa@vR!M+Va0)obNCW*Dp>~sH1Wi=lhi{_G=Mjdq%b1h|u-SeBHNa6O_&Ag!Hu@ z=BYOxPg ztyeWoPNT*11gR5O>$6c;s~m`9|_j{^&- zkef!CDW_gwoKk!XEA}!sTxsf3@l85MznA}gFfLRBLeG|#b#X}%+yF#7qu#Foh@9?= z$^>$pzeaQn$-5r}a=?vTuhy#7o+iepE)ZbHNHzu;4#%NYK5lcd_^X_E2M%};Y58WC;&i!c!db?-PiA=LgM?se)zxSmxrHp zLy-YD!p)pdCbCK>OHBjRqecrZ9@3+MiTL{k5@Lze$7Pl_@~|r8hfjO?`Z|-VK`eJg zEC0A_Ws9WvfIz<6@}X?x8tCEEqluKbO4QsnUp=EhTFZuJvv?3b;if#X+pP*(7FY@F zG;5R2D0)?~(S*;UVyFTIxhmatsxHU-79)xgNc=9)@n<^D)T4$j#$@!9oW;u_x0LOE zgV)?^2aQvq?ej`rUN-7mqlFRGV$wvv>ee16n>fj->ql@SEr+{NDvm%I$AHCQX?{G7 zonGI07zLgcZwx3li9kY)!lm+8Ce73tJ;Q6wFmyf-*Ns?%!$)x)=&~js z{sAYI$y%jSuU{p4&*S4z2K!qX?%zn1^Wpjhci{*8iZ$XSw@_OxatMssFqG+>A|gZO zCVzU$<@uPR5PpjSX)aGFY;zjKB1zOPU1G@-Lo`9wKjPV7a7W-8w^NzP@8q`qZ{pQM zoR<&M;r)%;nPkOGmGkm$DVyMv6w#ATDY+Ei0C?i8kZ^pffo)em$i4=6)qPA})#RhOkD^?4s#mEyVWZ&1Bu5SOIC16Fq3e0d?RjU(Ge0D% zLuK?Lnny-$+1I)cz)2Cou)X9s_X4l2>r8PXdE83*g6BlWGMaIDe2ACcD^<%DED-2X zEHcsH^oYJ9ROTY>;IP3p$UU7D_f@hLRTd9T_#sxAZ=Ys|#~ejKu4;0& z=@SpSlXI4JGA8O5vdt=8cZNLgB&u)*j?b5aFL#G}s-n^k{ByU>b5sPQ)pck0awC#h zSJHV&wcgp3_SDsDQuVM%@N5j3l=%hfA{3RJqVbG+h>u8mXs1Bv)O|m8g?%fM4_PX! zw2~zfn-@}Da7IbZjrAJhJ?PF6Vgw5#Qi~JBKtI&?siwzBpi1sBkye|=c3x{sP9nxJ z-R1m`VH^t}W~}ADQhJj&urBL<$(_m_;wY{GF>Zt+XM%VR+-OiJ==*cmOaCp_&7{Ix zs~E@KmX%V#%4!Xan=8f*6yqAjxJ)r_;4rS#MxSEbH}5ot{I4JWZ~5@>Ud?9=;}HKQ zV_egL`sg%VP)>DiLHAF1-QF+M>k|c;$TYF3(T|@{Fwutxe|86`_!E-g{ls=u_FK_? z$g7b_JabaeR3^8(Uq0$oZHo;28Grr>*XdF0=OX9*Lpt3c_1x~l1;**w{tb+aFE9>& zmQF4(&O2k={(xk;T%ahr!`DHpft&Ch;vz7v&TY-i>*EHzB68x z?rhdcN^0%9v5$(5_TGXN9O`6vZOJz=jzStNw3q-6Vxxg)+>?q_6F^P0uU?@*qL2eB z-)ujX!R|&2kfwRUYp+y|wGB-=JTzj9kO(xJi%e!#h<(J(eLhm!JC#p|fjn2a(zn(3 zh(E(;mGpo7nPOZubQl-QsEdJdU&~GXU-4!$c?OnAT*#oAO0plL*v6UnaQ&kPIYetM zMjG{e+u_+R5r=PaKYU=^lN_q8#QF4uaa1}i=sT9!5=^HePrrt7sbU1oZ~-gk}|H{jwIVh#7mtHx0Pt3Xu0 zw5y{wQ<>}b%R`qK$KOF!zW}i$;{(d+cV4S75T&{!6wPVcoiOgS!{6yPw!RL%myYFw z;Ht@Riee`l=`_)6L+6RqD!b%>;x$BZln&jFBG+W<7%_Z+7#*Ao2dAQ17AVsALMc6s zdW^#}Syeji4RqpxF!P@AE8VJ*D}ejy zBeATIBoA*Sy&1^<{v!Zy0RU`dm-uSz`i3%~ROkR`|M+2#kJ_nn2wN=+c4qKi2bBA) zTIHOtxftlHI=tSTaG%TK=?>TKAZy%_C0?^22ev{oQ5lDwZI)ZU8OnbsvzM?{9CyT6xN)jc!E1I*Tl z!;F=6cZsaXi1(gvW8~oe?2hnsulG1%;7s0+78wEf&3;tzSKJ#;`qarjcaCW7 zRb<@2a^Nc}0-TeNL5F)h+}Jq2wnh33K$|HMIF9Ztm>wj1Y{6d1A=mnF63^fWHqMwV zo>|BNPu!mf-$TiD9`6K>mi}RZzXm@|-wO7HdFW)*pge1p)p0QKa%VoVOV$teI<6|)D4)RB8 zgq*`A8=5F!R3Xaw8>7qxdWwah^)G$6270WZYn%R>mHkBA-^=f|Jj$Jp#`V zJc{0&-O-1$!1WnGPND&>pVxn+Qa7CG9>e3M`QPP~f}UJj6C*jIQDbjYoORQ<#ors7 z;t=Hfw*<*9O$TF14LFKZ=sv{z$Fr<2QtXw)Zug~ak68EY=8j{@uZE-0Rm>yjL&m_7 z0SuEO7G;te%m8t49i&cjz@3Uk>|Dh0_>6H)Q%Z?*)aMT0gmG>U(uCOh;wLaJ6isZN zU)U_W0LI~br>{|d!nlb#B2ptA=ayfkR=h_NaHthbm#GWJpHonWb2Nx|zJ29Y|3fGB z{17=+Gdv35l~ZTiHf}I~WnlO*#xeLw zJjNX*)BO>~0U#<-Gz*;DiRIH1#yRDx3faZJ{2qD9Z>$E!ajs*QeFcpB8cS>LFmC)$ z#kl%ojH3uW64=fC(N)w*B^umZ7bU&92DnUEG#L&Yczc{>Q@1B`9cXshPWCHa{L@p- zgCB11!OqhCVOYy6NMf3?qwlesMSqxR%#j7x4JrVIoLS~`mB2#kKAa7goX#!t^JEJo zyi?roMfbv%!LKdrKbM63)_x0&`+IzBG@Hvr+F_j84U($a!o9WEcSx=`X209SNRV<{ z9g*ZWPRxbL(Rl2rdmJ_F4@f4rbIXS3>U0g+!Is&jy-5Gk#?@!`5CY?}Mss0FH3n1= z;|_MnS5{^#>ybDmq1U9)dWeB>7q-J0BaEw$^5?1OdAD#F*G!N=&ww9?!7(35yFE6- zIL`8hq3ZxYVqAE}IN2r)uG`m1y862Qf_O!uZB3+kGIaLWG z{i38m8hL});4v5R^U$Q^QrYt57heG5E~Vi7VYT*xHG#0dsB!Iit7M%&BT=Xd=WaN` z&$`0bY34^~KjVg~kqtynb67lV&d<{Zh+_(|X15Z@1^u4{<6;^~bzSG@2Lff+C(^6* z=7&dFy^r{SKKXOixlodT#g??D!I@bhVJeDJK#-7*g2lMtKy`T3FjrHJTxGZGy&Rw8 zuWL}VJ!<%q=5you(w56-NO)#8i6;p1XEtImTka9`@0Fl2QQ*p^strAe?jK%BU2Q&| zOTzo1xI;p7ts(y1?tl+RubYpTcK!St+w3y?ZnXv2VPRh3kft;8uC|}!z046v-2xeY zhwCP9J74BDe~}xt2NwH6;P4&`W8D!HIvex-VsR$8A!W6d0qPrE+YSL&G~tlwU@3#- zn(obwvTbe>Nq|#Vzjm|{0s!T1_eCu(`UnBUk#arydl~=$AOJ~3K~y(`2mW9rx)Nn` z$@yQl7j_w4sXEqm6_NuEI{yv{%bk2(>SBs#d4o-mTO*K76@cd{jbLlLy?bMuVyDH= zDm=mLP#$z|*;xyv9z*M*6I{o%anhFzMA&iYACoB_Xqsn8++b!sIPZfvK zNTkcjtsR3_A_iGZ@2kYxcm$wG?L#@SzrUN?f4Ljk>xTr_gFs|h;a=@TU6`^Wj`z_b z(P=hFjvf}4md^kXQzd%y$(4OM{|zLF|f)6&BOi9=7Wc5WfPRffurF@mMh2G>^O z04A3>lTzTZ!;#DcJl+{rH^4NKqRtWDS6}o>CJZ1_E()vYy|nG+x3w=qRn>Vy(5r~i zD}4>*4HLL_w*)76V23_o?Gv@>gBqaL{*IQdwI|3AN`M_VIP#p}lOm4yYvSzD5@3llfD+?Oz#Amu zP5>eF67RkDG6>FzQZP8PNxt9t<;*Eu@im9Q&k2T) z;uoHFLeeYJV2hx%v4$gxy9eb20L=!HT%C6@rB$6Ix(SLo-#Z`-&1Gr1#QH5kJfMB+=|* z=T-IJgK?}li{8umPww>)8yL&zXF*>P|>7#GG9NL7hp~3FDf!l0XQ9 zj0vLM<>Ka_fN{Ndj0eWufA2AFDoNvq@}RB@gD{E->~?NGcL5B%dH$uXi+kJKD5R4a}&nR4sH*A!1ZrBm-ui$kiwPHcA;t|RPz>} z-{nrtjm&MyNY|$>ocF*I#^Ed>d%$B{RTm!PnjgWq)Fl;9F)qAvi4-vIP`$@F`&*m| zACRr#94O{^qE~npz__@R`Li%?^p9a&@#7eW42K?G0q3GvjAGTDK{tzZIK-GlwtIZ< z-X}-hc}bnC-DI(dW;k(QqbWFzhe-2f0^?+&d)?oYxvB!R(7isB8ve;dmq`$RcL1E5 zA#s^3924Vsa7kL{g^Q?a7khC9&e@U*7-TCfm+=R}Od^9_qYW}`}g$btL`jO(#ihR~^C1e)*0 zduYaz7@P+$?IwO{DgH0Q!b&Roj&B{tMSCSZ6hlebjl!8TVlf@5T^=luSmS$1t5fz; zKVAnt0YfL0;8IM7ag0$pLmW*So6Vg?Ov72}0=Ug_09k0X&LlT<*-P+b9!E7DJTubI zpIT*h97T<9bar%6Ex)74Q|ns914%zYOgQx>v|doC8$Oy9a-MCeFm6i0 zkSekbXX5DHiR?VoT;~5A7#GW@C-z32o%;n;&yo2Q4kfngp0>Ci+gWyYsg)ope!kct zvz$3;<$Q(*T~*?pa-fZ`#p2EKfFqMc@%uco8Nhf9M4WbR zkv-sk9m&_G${9Txa&{^rRSs{FM7+TQAFgLMo^bw!9SeL7o1>u4s(8DJc-A8%9+H{u z8Xb}it4Nf?Y#3;!;!yKmOMM54#+3JFK2__V)Ts>;KTdiM!OE)s4_L78u^w|7+^I6#ioeSslu9||*Um4T8j{-a;;cJmme9K@k0-gRz6_lCzu|d? zIRdg-r7CDyCsJgYEjpVo2b(RON!npgT3sZQMpAA#wC$uz-JFS3^3=&pt-=9)1o&qC zH%KynY4hZnRh-kAeXwKp!K&;5U=Z4_`P}+sVHtwHVvl>ZDQ$;!ylSTQ9-#bcgTHV0 z_+48`{<334kBvmtYJkEP$-^Di>~4l&uD9*zy^ZkaP4WxNqot^2oBqz$ICwie`}{b! znANqOdj`o_u*cC_Xamy-lYcfybPCcqgSS|RuWZkX*8UPntE&|CNQ}Zcu49o}cL6Zj z9T2p)>L3k=qYee~p}S$EnWIdqS&i@Rx(XcS+f~6IoJnTP$>1up^oU?Co?6~brH(^! zjuv~W&p1?G$gGxeL)>w{V2`)C&-YQ4y=Xl0vg!NtVfq;Jo_uZ`Kb{7z&j23F$;DZaLDVRs#} zjoq{iyDH$?D4o=eC{YSGwuJhJEnWuSrem_APPi^q}O%62r;gi?$Xa3+d zmY%#=f}kQ9N+i7ptcA*!*f&!ah!_-;R;T$&6Qxc84?S<}sP*hNPFN zmx{*uNhLETv>5OIt1X!`WNVGw70m7tVWaNXm4;H+fnjF_%)`BS!p5FowV;Qr&^SI^yyQjTw#cFw+Fh3CTB9p#*vT*;5jr289wzp4`BRj{F zZa+2dY@ob%e(7eEXxQ2T=h~wS;Mn14y(%3Q%zGz_=}cKOH%ml}JMNtDLVDp$U^x#& zSUvc;qrj<1i#bBkh$QjXaN7R#E8-k(GXuu`%$DIdHj8iUh$N(saIdmE;M~?o&=2tp z0?xo;{Z^dKTq7hxaI2w2Anpgr)D zUB@vnHIEij^j+JXZPWLNof^xknZ;!;#YfVu+YtB!j8nHcjCJ>DFLpt{`|ubxc0 zdq=Bn@i6D}K!pa;N^6SY1ZqMACoexge{`~z2>e0AS7Mw)QHp0*SC1GMxFWoHzat8- zB%0IqZW;xp-&4_hWq|BG4W*z-HBc%ub7rhNT09PfaY^nlu0)1@D6yaGPV<4|8L5Y< z&hdZl7#A}L;ti2Ybfz=^VoBu`zb|J$FbF z$z^VMPucO{pkd;w3ymaiLd|4EQsQb=jnu)R3BXWtrY!mk{E_g@t}`S%nG~B!1SECY zd1{=mG<%syE^_j7^KmGDqUkcw3|kz#;I);7yJx*orZ%+ZES0<(NMD5;~Mup8(TEb5c@Z_ z8offo@&DL1`HdCr0pELtL+1;NW|@76Ufb^1mU%a}Q9rRvbOW~f_s;)Blr~E6w$h)C=vpZ0W~cUb*4-q2X6zn?IA3A~uDmuX zAaZD)33lHN9~+vUDnx@*I^-D^QLTvUhr{B%t1R-h)X9~v4uEz#XyBeeR+kBqBUVMR zo*Q4W3WM_pe}-NfuJeS%2thl&lG1FTc6cIy>iOD_vov--lbyeud(B}8KAE+7ltGQ+Nq+_t7pHRpFi46n&>?2m6U|z!P913r;=5CB}f;<1SAy)cOOFyzK4!NN}&N+ zKn&_+F*x}l#sxo)aoJB`TsXGfy0C9w|K2vhxB=%{S?+8;8QH)3#V_qIzWxil&mQdX zZe_1`NRW;WlW8FO(754y(xaGrFbU$nQ(>G_KO^OeVn#F(<@QA03XF4s_zpq(yIZ^t zX<6((^{x{lm9)Vn$*x-50h=B%PAnYGGzjA|k8$QPj$PWh$GF)?829#!aVw8;Kf}63 zFdj^iND<=#k8vwt-2EpQSABwUvc&#Lj1!;VX*R2S(?%_V!@+q;ZT;L)XFvSUQ|U;v zV>fO(cPe(rMBcC}2&%(GnpNVY)cI>FZyGBl%s}IKYC5nx$wX;9cLE#cMH!eNQOlxd za&&x@{7zf}-w7Ah6kIX|*m;e0KSJ<28(EFub~Abdocn8F-0vL59dpD*FD#xVb{D;~ zKipTqI9@Y5T?Zs;rId?#@e+YZJzbXTBN*F!{LHcmF|M}z^4<=~0m&Z{l=Knf8erT5 zvaS`dinP%PN!P%{3RqAh;i!U*ynmblE1sohW-DP__yprdn~4l)iAB*R5~-U=7&ivS z#Vg#uZK(Uwa2EUESWAI0ZuSYr*%OTO%DAM$4ym}P?LHLMu|}{HWJv5sIM3%h8}b95 zQ|T1&0>mJFZqsfAj04V6JrnQ4P8i3cP6UjLTa5&8bcBa2>6$Um|HySuc#TIqY<7<( z^F&2rhjC=&42rpQ{zYCr^~wAVlP$6nSd4RIk5FDo4&xk4O9LSE3T0)Gi8O`?$FUnT#6W~T}&BA&g9JIksU7+ zNlbc&C&}ot+n zNk&jXqbehZ1CPT>*)E6QCh3)3E@yT%&TMo4+CDt|4u|Buj0vmbLCM9<^lMwhFAcGt zeg5^=w)y^B+kN;BYo)g}Zqgcy^CF1kJ2V+1c)Xwh0YDrFI)w}>+z-l}hEb;goK>k& zGDtX~*bnyZU1bkz1osmhx>Dac>Bt8%RBW5rnE>KxtyUlG7KvLhxV9=^gVl9@Xg;eC zW&B64Al{$ZG!u>ESjN^=k-dNao&E0HzXIreu$P}dw=ci^U+^A3v$xf)9qJ8$qq9kN zjeBze@OWbn+gqnTC8XQom#Pecsgjj1ZpJie;^lRwv%goZzFo! zESVzho7%plAt5UoO!6bGzddExH+-y4=llmL|F zh=Eptfd6~DP5u)O@!#4Oo4?v#0RW!c`1u^K@gN1A4PK+ffmj2XC>z=$nMn|+WRpnJ zmpTxre!~Id(GtLOV^_1!?P77TX8g)N?BB_`kB8U;hqP-_#ai3-J3B_D<;|6GVeba-I}BSqU)=LbQb#-v-TYd=5%;+>&O&6C7BkDrspUwLvTcS7GoW z%S~j(s+UB+D#?MT1B6b|if590jo!I(XPjYdBw1YSE34Sj2xHAYMP7Y}ad_XKY@tpE zdVgx1oxLLzo_RS^ckuU*1h9UvN3EpCd4|x>Zk+^%4q z{1f!hH4WZF!rg}xb+NP&o+X7DVo9p{;4bpXg{S+(o?a&j+Q|8VsKOW}&JLz=i7~6L zDI&{B%EC~JEmYY_l#p+R*P;6zJNiwCHPz(^=|PwlU)XGh=1I=jt7;@Mu8Kz zs3`Q%`0jq_=s2Wn@i`)HvUl&z?s0}5CyMyK?^##*s4F zeS~rQPcSZgf^pviBv;3tnt`NrIe8_=u_D{jM`lm52av0YXjrIXj zBhkBA_~25YumVLoK1zePW(Y@%ljrN5zpM~aaN_qTHLLi^fwLHXSlcun6r+M48^bP zZuFmR75xtP>IjSjW&}3~e&=|N2Z=gy=8Q9Bv_LtOwdler)!W9A3Kve&JJ30urE_51 zH8Ad_Fs>cH1IDd{aZxa`RlU-gC`tc*Z#6J&RA1Ooq-Tt)5{eq_?SNpM7^h&G=MoDT zSoe`I4oU72Nzh?x>2{2G1n0yGNfIzFA;!%e#;wOYtj|{6x{oogdxCM@dG16E17Tcv z#yED0dmJKli2D;^odAQX36i|Y1{imgy#NcjG1gUXOZ-U*`V{+SrC7zH+7)YpTyux~ zUebrz?&JJnz1v$uL8REZb|0IJGNc7~t`rZOid8unhry z98?Xtm)-%l!NIsMN?UJMR^a#2W9I^3z`<;qT+-+d~~Re{U^u8Y|f z4$lh>H{Sj6!G1IOueP^4yw!0`R+(!PI#?3?#04^%Co zOfa7yTgJQHQSXaB7|fpAva|K=PJlsEyYVz~DoA}}W1e~p)~cfp{3+h&j9U2koe!IL zc7OlI-hKGi4%Nn{(}m3@Uju-i16UF{FCPx1N$yll;DTk4us!T0*_l$xk;SsU5l2&l zb_A4|t!;W6Il5!W0X=S-mVPrwTivb1@g2=$o8P3OlU2J$N>5DsLaz(S&6&tJ(+$51 zWU+SGqLn8AhYu@Xl>!1dL4aO#r6@56`au zagvub3&n;d?I6NN4SQ!yD`)9!5ND*vdOjXPB*FlWTPiRj;KuGgjt_R9{nonlwH>+- zxJU1_+56RVOUr9FpwEL52RJDpn$g3d znM^{v`eJU??Z(#I!gdH`;{H~%YOGowlf6vf!g_|^p8yy*8#G`YZLNyeb_^<2ad{7W zzBJZBH@F!>(nphOVR<#PNrwZkp4w=ishVb2fh{JNc6D`a_p3FM$WrZm9R%dncbzB) zEH1F(9xLg0JZUO!b$&XMDNo#DowGC7IG1n&A3>y?9K_?MTsd{J`1b_sdpf$Xa0&1Y zNb|#i$`UlskCLO{E{T+kZFrKF^;hxKcA~elFvf`@ zJDh|wg5c~rKe4rq@jE5}dUj11JiDZ^moP&T`F|_$=smc(*pl5>Dwqu(wL%7=z3Vbb zh6eA8v`zl3)DHvm62hUX$)cXcxdk&OXM5WMBko@z07GJW9M!V_9(7K2iJbWy=QAbU z*Xu0;!A!uNAqh)08x#rSimH@S<4jLd0rQ8E! zG(0Bik4#F(&KQ+l7}mhPe{J^NTi|=>zBc#-iOZKWGy5HtR8Iw2;2+-O=60*1UnY!m z74Lrv#@*e&1;%}c=d(lXFcZcl;R_{C421tNj2k7n*4z&LR1ipF6TPO2YZ@S4Cb8zkjz)?T0lsF|kQta4` ziM$xbvuSKUzgc35jP3h&i#TB`ADSAkLE7e?b4QhT%pY0)VTIwl9rsf55MGI|_EquT zj+`NEoR8tiD*-Y_Wp_0MmL|ZrteDyuKc5#9OE$o`4bImqAoEj<+m?9!#?9z-KZS9z zIvsrN&Yyvts$_x`QexcytSDwk3YtkF^VaalDnh1W7>#fz}B!_PZ-xG zifL)e&gXdG943`z3wIAG{zY}pe1;oLztH7D1!bNUg#We-a3&%?pC>r;Qi%W!-nsT< z%-;EqOeinMlYf}UIGL|rD!NVvvp{~r(IVp8gY(r3=9 zc4wlWC~@JU>NTjOE>j@Iib{_Dhr|E?AOJ~3K~zdY0+1;DxUbyDPI`088I)cbB!>wp zSsEve&8~W<;f^1hT_m=;t)x&VSKhFaq7ScuT?ta{=sloez7MTb-U<%=4WB6pnoWCK z;-LKe@`cTia!>Iw8!rVUsxn3+1wz|;BcocH)5XceKJ2OTRoFf}*dN}1Yb{&F2-xCD zYA^rt&usc)WNH1umTy1UfBeI11hJi^SClx#qHF;;uL~^R(v}Nc8`AK641i*#gqt4= zf(g$Z4yC{OeSw3$x5ZWBDvq7B7v%pz(p5lCEah)UsTK+|^@lrbXiC5`n&KpSoZCK5Fcw$*xNA8vnVtLm;7p zuU`DpzP|a_0Eq0U5)QSVSOiX*%qoF6op+JziyH`iY8P27urm28JPY|7fsk(P`^RB4sM5;(| zux^CCoR&CHMl3FwM%KwI3n;5P253$#!y(^K_sAEgN)!gtg@#DMD~EX5NnYYNd>uZ+ zYh?iF8w8tImSS%f(_6b;{FN2?D^`(S|7C>kk6+1cy!k=yJ*B$T_Q3s_=NA7y5D zRkWGcv+jBF&{aCQ6Vb z4&p150$&*hcNRuZ$Xvmbp;Mm2kuP)gp;xK!cK5;Xkr#vlmCkh}LeE2YCao?hku) z-3(&r!HShiz9B7ro)=7rc;3*Qn7E6GGWJzNC+dKYG}1hpWWDo=1@q1pc;BDbk-feQ z?fds7g8r?B?Fo{?xWFk4(w~awl&YMFT9_y?0Tk5uD4 zw(gnF@gRxOcdog?;nQzxxr4yZZ@@ zYh4V{bfWAK03`STYq>}NN>I%C`c3ER4?l(;rN zXqKsY>=UlU%`UMP$JgU~BF61EPQ*cLe~N_p=E0hqt;e_+iN&StEQal+6m^^MjSba< zB{;X1(O*~>Oo4HKZ6WZ9!Yah*vuQ1hO^9_8nxX*Xjt{Bb;rptKS9b9d829W;OUIY? zcmMEP+pTG0Uf}&s&KMWhxrO^wEQTJ*`jB;2jqiX_d&$E`r;c;t?x&kC9U(5CA(;ct zRTImAZ)uAMf&0{K@GQ5r4ao`PX130;r%H!$ESS;g_fQ<%oSrbwv3=q&IjiaNnelz) zHj%=j92ZFyj|*I5Ep@#|j2mGuld{b-1c~AV2^%nOn3hhQf-O~HT>J#%8e3p@d`>YD z?A=*(ZA*N9G)t|V-`oA-Z-8;%pD~WP2c^B)^-8E0khreQ<9Ll{d6?U?#2(Jbxdzkl zWFFV4U^)RD?`6y+yG~VzOk!84KZy_7c~;2DrZWLo_jv5guxVD@9#dzi?D8FrS~)s^ z3ClZIfj@V0oJ@GF&J@3q=W#m9ytPd1lNH|;`yT}3V*Z^*oFTQ_DIRO!ng@}p*29ko_2Dj2MTGPvQt2p18R8+_EH7+!d0|z*k-q=@sZ$dsmNA?KqqT~E}82=rRp_N5I61gaqpLF}SMIC5STtk$)q?W?^4 zVV(@{-oLWnzWr-ku5H;w$GmZrG5G0S8BsD0pya}_mwDF1r}vULp@w$+ci#&htII*JWC-SFBb;ezFp%? zzy?1UXQ$v!nSH3BV1J-k0L_6jn_P@V$t?CrwmMhY<=mQvT~FLoDi}q*=YTroVD+M} zde{0T6^&IHc41OSD{+#{PF0K@49+AxUtHVE%dZh6d@lK9^7!-GxgXL#phQFF?QCDXCYWhp^RMVlju+8Tixz01bgm1Y4r zZpw2tflpTo4ZSN2!7!*e~D14~{{jkU<)N7tHn#_rGj z<8z@Xbh6CZG?H(Xw$xLpDbIIKGnYuq*8+P5+tG>@0=#lK%PMM^H0)iMEDSsi5bqPu zB0?}r_xd=aFhC|HOsQD)PXg?~M@2z*mXLNyobPpo?(o<3s~Z+M|FE-u@Z*1{N}12D z&ZV%^z-|ycbp-zbo4{R8|AZ>1ZRvzPPWL7_Rn*L$xXAY(`2}%6n=fB64;Jxmgd8&CS)#$N6>4G8(kg!wPy0sJGUL~Rh~03_z_M#os(Uz&a^ID7^e#JjhW!Y}Q4}WZ z5WpW=CB}51=lOcU^YAjWl4_)MAej%E8%YsxMw8I#Xw&P5vu-?_kW_Y}AUUre3OPhA z*7dftZHKeD2$1+;|KodvaoD^3J)BdZ!DHv2{kyloxHo?TjN2jMTL9w_>~&lDt`OtK z`@}vI#$i9_sa;}KmV&M58^;X2VnptY*rZapozrwR^?Ee1VcSi%6U+xYE%@a9{8-5bwT3g|BukoA? z@{5{HFM)Btwl7}%nTGd2#yG0B9@TZ|fN_m5&MD@#Ju&TsaiqCdKZ$V??_nU`I1_h1 z{|@IEsdA*nmOJ;SlB2{Yyr=ErYZ-m;L}{yaM^fmIrV~w(^IV}n7WnoR%=Yf{FBT*F z{PH<4?lXsRY3S&_oFi)7QNS6$apGvJt(PcnPTovzoLh+*<5O1sIRk~41jY^O@ZjPhz&PxO7<;N41LOLgwcEW_4?E3(I*gm!c(T$=Onbt(rqdjHjqlG! z6JXq>n|B-BJSvq_g>gub#=tn9A6RL)H#jfigALaF%`KfR?P~TM`|%Q+tg|=aU)v%2jTIi_$ku4F*@iZ9#Y&FA zMA4aEccO}s=H3OQ%?{rAFMoxFIu}2Z98n%@q#A5@ zIP{JTrx8T4mDlvDMwRzCXjglCh_<$Ry|P#T@Oyi9v#@6`E^L8?*5Ueh#XMl7Bz8eDoam?^-7zg$%|N2S6g* z$-%u8wPU}pv}pnk_EQ9zUlVtBq=Sd=hZ}HU&z}Q)#$myuHko`w%#o)#Kzj%{kcWhE zmPsy|G_1q6v_sJ;Q00tIqyWZq_`T9d|3tpgTNR(H@M;tX(ODXm|A*2iBbx<3C!vxD&OdEJ6VCD?2nBJ0O|}x~YvvQyj=S zz%;haJq`vW;6vjq$y==5Bc*UTUsqIiSdVRsWTJ@~1RR_Y3Qr$WuQ&wUPAsTW%@N3Z z2nTkVAaTi77SZFYpJT5&^AgQ@&}+S^Bn?i_upHNrPH;cRxQ@}@3M4NN~eaA;AIK$`e2(~q&@6rje1pYtCrp&a~xhXQ4zRGXacKF2&LJ>+@|3ifJr}+(n=(S z13=Ak1e)0U@nItMtZvq8fHe&0bH+q$D>>l4zE|Khj+YivS&`2#E+yldv`8Mq8_V*q zZI(W>C6mdUu^q>BQ3o&~Ax&{_d(B=^T%*H_DNP#3)wn^qKvKptIAz#;HHNes;0kbkf4RFqK?yj3uerei$2iB;u6 z37mrN-XGvy;5)Q~pF=nu^r5eg1^(}$0xbn>=RB@|!oz-)JawmTr=(;gx>%$ng7aif z;3s%g{~3mJh<^rT3Dmr6@4CK2=jO!_+-N>5a{Az57Pz1$bj1@YAqG-{3RUHv(jb%4 z!%9(7Nq?U)4iO`TQzo-q9cJ?JdB~JSse8@)$HS-Ew+aGSP~Zjr0ONv_wS}VyvsgSu zg7dQ%pV`m9cma$nY+JsUT5I_E6c~4jGkWSUuJIU$wYILU`xN6kVVr%0ak0m^D`6aqr8JU`pJH6_6yqp*5POX4&KSoz z3}!PYj0+G@{uIWs$VyQJs&VnjGfCun#&))L=V@)3tEiuaw}LZc=P^d~_p-by5X78~p*3KvCIHgAA)Tf|^Hi~2DzZf5gE zhNNI?n{I6_lI}Ccks1z+V{w|kk;QsqyKFDfg=RQv4ktWgTqiYC6#$8Gf%BEB(hcxx zE6QO)f1uiRGg5V%d(9{^5y<$ySmapXoSa}kjS4G~ylkrX)*MQEMvR+X1CNoU0pqs& zos{5CRJ1}E2mBcyaj&MjF7~J!8lBrC#!YOBIC!k2?1;r(=Xf9Zh)FBl=Xfpb<0(5k ztv(vWO+&NQJk4-?kQmT7z7WP$12FQ8adVpn*GS~PuxWB*%j<>BpG~ZuZ0vo}0OJtH zbYo|`L3C$_rb}GoAc{Q`p?^I2agZ{$7$V%8nOg@>eS^*z7l-l)?Y)62JDO<^yofW! zOXg{l5{1Biq~-vHYX+~-q$1;tvz07jPgFc6#xYiJeIY>W&eJ|mrm~FLJ9)mfXXUt4 zhvq32F8FjaS$~$`K4IKo?!XyBk7a%EC&##$Qk&T(3J zjDZtj`9`}Pf~^O;UK$dY*mg*8UcI_SKvx6ALMdHUI4ED?B%$zC^ zywRXh|j&kGu!Ao%KAawso504IuiVVWivTd_cD^~xhA8~8%8?WNLFj9*ff4g zMVrW;Kc5Pe?p|SMe;C_k`wTCEbyMKpbsO8~Z>_z2Yw7%;R{FMFSyep%oNEndj^axd z4kSX(0Jz4zttaYWDTu0R%t|6Y63-3ICL`Mv0HxVRGNehKDzOU!s=g&yD@aU=kq#B^ zO%Ah`$*pw&4-S(DO{{sV*i(-X*2qt#;k86p7EO9puo@g@0}jM(|6q6N8*zcV{!)S1 zBnLbO<@MnIy3Hg#%4*&iLCqwXNKLDurxy~Vcu8-n z!SZU3k86M^eiy-o@0lacEd@O`0+qPlVbvl?9bF(Pxv~wey-iC|Y14tfZI1Ub*Xz^2 zgS5Tf@ZJu?J%aHi?p0=s@Msvq=TzKBPcs=8zo6xpAy_q3ncV2LW5t|gZD3SRlCVF!M>bXj0my7&mPL7 zC_a7T4sD&WjFvciGGbmuemjXB;<=|aqmR$)7#4CxRAVS}Jj~vn~TuDCe zI(0f&O9@Du;_4#>^(n@+jfSOZ+{{PGDkt~a9?3<|3M>a6DQ{c1qS(4}dLpC_ot^KlA{J0cMq z>_b7p2$wwa%XW0WN=8~2&Zj$MOE{8kUov@Q0^jIdVJG3Z$63M-KwMiij?UB`MAz7x zd*BB#Zeq`WfN}j#V%+Yq#rwtik>wuaGLLao7?g2`Ad z_g+J5_Z}Uk#(zW~cahFVPk(kMI165$3L3pnY{Ju$59|rXAu&Rn;4p5B`^WCsN^REJ zRCDp>M=_*$M*@RFW!Io{N0d4jP8lz!SL4F$+4Ds68TYU7v~DMM(cWM!W>z3B*dq}w zCLe%t_ZH9GfZVoRBe;E#aWUs;g>g}$Ge=q$O)8ud)sxcn^wjD~C#AO~!zi#7Fs_4W@_G^^aOGvP5#_x7mgR|Ahz`e03#!qavZ z*by|rdA16E-x=e2tpSddge~c+CyYaaG)&ad zq&izVI$FJKB!ZD0flt+ybrF+rV%*Wu@Tjy`^bX^YD9!O|#JDWK2F4*iO18qd1Q?eF zGwiRK_5kC)9vH{j!2{2OGseBQJv*r-?pqruQJ0oO=uJ<(A~0#WN5pW^%oWKPZv zgfqPk;}WUV(gRW$S99(t(flU6IK&b8FC88It!bRHExSHC(o==FHpacqsZ$V6kU;fT z(0{P%HH&;o%AM}I7v>6_A7w2W^&hr(PGS&DetX3`;UhaCa7ob#*h^&}&I4(ns#iOlX0j1(OpO~zDQ>o?$XO&f294_^4L&;2ix190 zdcQ>=RA8YmcJ^lbd%IXaL-xF|-~QoS3uikG;2m!N&U$W`j-muEBc@Wx6q)LufA*z) z`TWAlD;MCteS^gtCmQH1%iJE2kZjw%z~T45T?1h55U4Ehx(MRt6PwKDs#2^rD~r=q zob9Th%W*43ptjxF0fE~lqVeg$ro*KjI7Ap0@^ZTQ?3w+1_15ac2fR+B>WAy}45GiN zf=u~JCSb!{G{1FK+It{I!Jw07fvuBDE)Q798w9}|w8YmNZ5FJa#U0Y zb#O*VDoDZLbvk1*=f*6`9RY-&?c6Zrc>~t14zgoW;d$<)h)0E{36cx8VE0G}k5%uh z;lbH7^J&jDJb&Kv*v-vaDBw_K$Ifo!8c6q?~sTf5u}<|kSft9C6QG$&hd~_ z%!4;HJmV2Tqp*VaVup1!LEzV|twun>LDI4WAjUK8=f(8GrU1r0X?B%&oo2U)iCySK zHuygWn!_d%urWa!0VNXM^RZ?V()q@c1-o`rTU5_&-hBqZ1NimdVK1#!!4g#|?3Bob z5#7^A2z2N8ZDYBWyH*D! zO7=M`gt|z4}2N9^MPiACW>3k6h;>j2-pZ z{2Wc74cj@2=Aw4yn)wpzVWBz2rrKk_9A#oVbf@_!SMg%^a_HO))FZFqWccUq`D1B% z_<`@kc@HVzcLUQLhMiqbZFW7g!)|YD+%u_XUyDkA@N- zeQ)>##8hw?)I<|FvOv)4Ne-GLqIVI`%HX6>)cM)=!HH>@|JiQvkRP~t94DPSXgvfB zu5tTwcK0|`jeAN-`#>{|t(2mSlDssMJRmVA|4X+zMj}EAXKFvdI0V5-hE#lxM5f6k zmcz5MD4Z_$WIPs!{%}Bma_A(`!Xn&b2JQ+ijNV8w<2)z#+NmqNUt=xjcyocnI0l+H&&jU%)r*(*#q*^Vm(E}7-J2d5mmGg=qDh-yGXm z$zFDj+9Wj7^)5-f>=si103ZNKL_t&%#yQ`cPcg2hYL|*5gXl!^pYOahOKDJbp%rvm)R;TjM{D{^;WM zFp=Oauk;QOPR%E-+cd>{SWZ(U(W!0jO6%^hzJeY020n+ZZxg?=!{{9n{G$S4{(N)v z9X+b1MGV*{b{uf-Rx9U?Q_`DnEJg}3u0eoKj7x!W;{yW!dThtIK;p7i;b3u*Tg*9g zCMHMD#bSR6<4i@621#*~ZZyv$Rbx_A&luOK>(NLK9}&K9AViV;rT>Mqe#C)DpbYZ6VQxks=t^AX$wU5LPSOjB3 zA;m>;Jm;L%pXl#TxNt1Y%0N2`pTv$IV;n!I^2_4XM4fED*G}i@pBm%h(_cKXQbi$`NdLm3v6%ES@`O5sw%|&`jyORX=eNG z^(%m7f%k=le4UG{&i7Ppky#_zS=?}jffXiJyhq9|CzAw+4_@c))=~iL5g<}ia+YJ5}JdK@f~!lferUEs78fNaPKs$AwSImh!yaHiQj%H=w+^eK}wX&p{xUyd7ka#S|i z#QCqCxu*%1WP;$iNAglBfayC&fr{j(Lw){WCse zbhBr6i(9zI!85_3muNtp!9ZI!QqmjQ#Kzr)sA;n$4vwE;?W9PmqQE|T{xx=ZY!7b{ zpuC-0SdE;r5PiY0HtNwm4&w(YYRR*K&o#;=_Zf4zwR4^w6bcBj#|9)UO@h0J#Gu7B z(BFbHf5*PEUAe}+!abV3L~?jx^Vz~yYpgYLg#+hDL(1Q1Z0l>8CNlIk9NP!_M2KUDaRMB7ANKAo?Entfcy#W^K$7=M8~mR%y-g{2+yc6J8;L zBPpC=pL0&>c)Vr96g!!Qns-)A-&&qsT3%lOC^vf6BkaLvSz(`l*-K^U{idHs7mo*jY)0>Y89?@W%QTGpR~>fw|iofPV;5s(dI}Oh_V?kF>f5K4wWt4P$9P~N zC~)*a&Py~>P8!tF5eN>ar07%}4A0buQ$#7Bw7}gj-ho!tb?l*tDwbaIAAp#6P-H=& zrDQH?J(YVt6_N;cQ)sN%V%Jsl+fkSLCopal2*f#WT2cUq!Z~d#dI^I8CLzUUhqJHK zES|)=JP-%wW=A=I&j601rajj25eqlz6T4ee1g4g0?ESmaR&Q44$4y~}YtDpBv4=+$ zUbB><)?%L75qQ}G{Ap}nk(x^$8}F+>dy1L!dY8wof=zNJGDE`JFti&Ivj9{pQGXG0g271k;bqD9ojR-(F^N@acfbm zA2IF-jH}KV$6}ERd>-T2sqT>|5j!)SPc&S9FaJwGd^P62|u6E>OPudd;FXi#T4*%NbJeX>FP!S^eL_# zy#HU8hqeI5Wn~A9YeoIzJS`KsBi9MTuz4)u2fhGR@0z*<#?f+whM+sFwQp@3t*nms zR-|vSZg+Idvqg7fllZxnSd$;x?~(i$Qta(S^4s7R)=m+kjh%P`)jBJu+L{65vUXt; z`cW-LmVb>TBc)|U1dRJa1@P5dJezk@QOMawBMr1g+*6P6EJu5-!@hIW+Bh0}j5|6@ zgx1f|0OM@2L||=hjF7b z#wEhI5oH$~#!>k&&FwhGIe*bc{84tom+-8?y}2p0wg;+~P~#83#L zA7r}Ql1NO2UMBKb3-r3AAXVtc8c4OK0-qD)>XiVuhd}tmq*5u|8Ml2ZtTv+X!cxm@^IL4b^E&&P~`uRBJGCG}) z$B8O$+x@+5Rv+-S!gd^7U3L0y&)i}(@OPemISSUy59URj*GO+;nt0CA$ZfJQjc0;=rK2PaV zA`u7c`^Z(M$5Y&kN#!cA*ti+1BH6^IlS};U1p>a>cKbUdhATT9A7rjbzAR}Lr0Piu zH_jBG$FUoTqtU8N@){b-jddMd?5^ulONfIlRDB+S_`v%~k^&I3MSGBysxk^bWIOH~Kg>&mtWn%}Y)xAKt00-$(E9^;RDv9HxCg!@-T`J#hcj z3f%KP18`i}hyn@#m3q9h(Xz$?K0;zVvg^wm8>d%D!VY$OUr91sv?F$0A_PG32KmoH zl%cM3q;q*8NGXudk8-Ivka`;6Apuw%0XTt6NW9cFDS*6voG}WAtvX*E_@2)$u$HjK zx%WDEkOdHqwAF=tK6ZKZBg9=pVhuIeQs z3kG0&0L6N}QuWmur^=MioClATb)rOv_u1P@MW9B490T5eoU=2{s4>_6b3wLG+)uo2 z4-_X+1vh8p10#D>+fhf$)9Kug^k;fr;CVQXndYc@Y3#ZPv-wnO`TgrV+uk32U^P6x z&eNd>``A6)%?br)O3+F1=*KE=pLUPJYi^$b4Lo`MKKJ| zJDotOK$}L4<1v|Z@$FN%5 zK2|M%4C7)_?pP?I+LF50q0RwzDkR>JXJRO9AA0TIA?%;fNR56&eXHG?)vrZ{6Rw5Qfs=d1NSFfOp$cW)iWVci74xQyy~ zG_DoK;kxE-7KWWX(yjO$N5CU0^>HSzu0k2RCu2OPjia74IJQd# z45fdhjF`O?Fy~|PDFW4TEA`qCSxJ7zxC@VQjmNk(Fm5GUdvCGFxW;4LNIx5srXIzT z3@0W~aL8d?;AS8^&P5+#-0>rfOGmhm(_SnFHlnE(=h@+>8i!XCd6FCrPr|wl5h z8<)Viy|wHFs{p9BlI6m=rgDOD2#LV2aX*ZND-9rBiRfpTC|R$=M+Q(74j%V zL(JmXP7u29msegCdL_K480R(<3yyVLD>mkNPf-YV`-GKU|0l<|_>;n#T#u}R+A%bOI3VJFX*A#?`?tDw94J(8S*6*yhV=VyhdS6jW4zYoWM1kSyqBuReU zPLvO49?9+nWfB=2N+OZEBnXao_gkAza~lwNy?yi6cI1K56cnqhLIA|B%`dJ}`|}si z?f%`~{$}-nYr#|nW@%iV^?8EmQ$ggaeWHxz@qv5WT zAse;h(^({$M0UaSaZ!jrn@&T^maXOUR&v40H+shbp5&JRjwSB@Ox+Y#-YH8=0f)}d zhH+7`bHoE9ji-3;DV|-yNh47&0uHuPURloAtkQN$_NV~Iz=Rzg@>H`p6|E)W{D{=< zI#mEeR&twAN^M=_C|NS|44>G4hr?MV6HsYGr#f;ZhdnFo+2Wa9UA?sRiXsTFtbbdoYu6&^*gn*@ZjW+@ zX0X9SQl2?D(E5aGY^ilqJm0ieJNzR3+7iIomFXpJ&mfYbxw}rrUxy+zFw-bqnnj82uMXel$qt=sEph{Oh^I*M0v`2 zrc0Z#!ZuwYfpGHfq;asD!(rf|CzUo9Cp^hRb>SG0h=ShnY(N5<-&-->;xck1NHd#+ zQw1LdRc`2)K~q>J3JRdGz7lNMQ6n|QLw#>Y&PpT%rdFzmROi~^I=8q#F}pd@4$t#} zVyG7G5HxnT7F^xgS2sr_NDKSL=W|gM8~TLcq`JeN{^A+dHP+&7L+>bdI5^w2w+KlU zeU2D$l=N<>KRDVY*3A8CBV*y<$U?-@#^Xx>6wb8N(W+cm^ki^?a0<_y&z;rJn2{ls zoI)q{PHuD*OmH9Q<5R2K&91GZEy{2tW=X^}9rejfynkyaRZ&|9Dg9?S^TdPGj9~xcbcCl>wNF1s zfv6bQ9Fx)-2AV%Gc5os!9o?LT->ZWk=2aqPPLxJ;3@=+NKaIgjBAjk_DyB#10!4Wz z4UP&TpECsR)kqzQ+iI}y5HS7$LCjn1w_OwI-uA=9{wWxju}g?&(js_^1@MD94opTV z121f0XMskEr1&v;7~Jfh{M%XOMyGR0()-!P8iqQ z?x9ptbU3JvD36@pFM;uhGe*kF^lVs?YlrrXaXd05_m6)RI2-n5r(lWa3NdaA{G3gk zztEdE?`)gyZGRyBvQP(&XXiK9DfZF@Fm7vqyCRhj*DjT|!TWEy=Z#zg7-zOtCqA>q z6_p+l+>${siEMfm+WxL}b_<=Or*T}YqNM`;ah5omym>0kXz8~!8hd$nEELjHr}>q~ zxT!D>C@mJo(PJFX<8C+#lk5i=*FR!h^oVic6O7}z6`e6I@fg>8wYyexq?|?MBci9z zX|^Xgb&X=x1V5fT3Z7^VJ;{?!1d5p<+9Cc%46sbE}qjO#qcHNwoQD@3E*Rh$Px>=EJlWh)uA z8e-n6yTb;&w=b?sBuF_h?uA`k&a5uiSS$3rENw+8dMu6)_*G@(I`rK4)0q=f;4NZe zHZ*rC*0llf0r9Ikp*5aY0*sqnSU#R$FSr?Z$MT7kxJbQ`G)z9r&|zHQF)r{J$CziF zQ{b@Hye4OeWb;|Oq=}eG{A3|lbXLw1ao&$-7ITDX5apip;{0C5VJZm@jq}h9LRm3T zky_S31IKwHNwV{tRuLg`v~B%;_|srq{DT(M*=5#5^A}~76l?xp*53R{j`T_nd~rvfbr+7ln`D#H%$Uq1)2?a%_&t7DNw$*Nnl8># zoNlrY01cpyydxtrj&=9#h+$`*LK2wK)iCH0hiH^a^>p<5zWJkI%oJ6o-Of+(iq=uxFfx-usJI7P`jfq^Bv2(w7NnM)F9oz&=9w*|w zCy!P4ll3Def;91swg1zGDQxsm-4Dkd3O)m21nX|f{^x4R$lu51Sow2&&&dyirccLF zZJ_lH;a)q1tH5Wjl+>$Ba&R6lX&MJEW;ghZEJSLT8Y)NJGf1WM5@(GLsuEokK6!U; z)dmGlM`fRbJ)itWov$~$|AeA=g`XW$6<9LIiU6FRHieB)xMYX1c-EVKYww14D8TP6 zLZH3IedSW+o?W=zo$adL>a>$=Y0vHwi(M256$+$1-fu$xl{D3)iu8t#hOttK8!JJl zk`VXEWLQeYAkq|Ru9@e7I0Ck$MK-gO*{N-*s)yh;rV1L0n<3rfIs~55T@{@_3Kfgxd zb7JiZ3EFvT|K?xJ>=IdAjc4Tl{N~Pn_j-#0H$wt=ZO@;d+N5J}Bb3ab7Cg!F~W(4I9Lg9N=`W?mn*-qYD+fcpVE; znns+=R$8Pr6^fa5IyIHca!pJ)x??As6M61Hv;a?b&5r&KeE!*;qn{9Eec7yF2bQze zluqTi*4r(2D#vzpeIi97_poa31mFslF(cE!>-u)5eI?3OvVS zH%wOZFHIgW&i6?i!{TA7`kyK$+EvU{G*NCv>O6VmT`H4zIWS7cP&?RO;3%6~>?tc~Zily9dG z4=qp1sY_TBxR(8elkVs!UQUb zA1s6(CPoj|VEuzeiT6dK$FBH8vKJfzl+VyRDkFu9MafPD93eD1*uxZtdPV#kOg$tY zN`=#ryiKj(b101Kr6f2`PJwZ!cwSgo5#t)Wo_qz2YwUIP4bIcOL?No)jbb?^k>Cn2 zu59K~rDH7L;k~@ae{19*aW%1Lz&JKKDq-BcZE3>Gz1aydu632xWM?ebk@M@BDRI7v zypV5V7uPCqX|~=EBbj$Q#>M{wjKj}J7Xjm@j&b9ScF;!LsW00Hj7x-Z$OF!B0fljF z)m65nu`TfY9+=Z)$akul_S*{X-cEpVW%Ph?q70+3rpjFsFpjaVW&w7@I8Dc&U|j2s zmSl?JtHftQF4(S)7`L=vy&Qyb7cX8Q&YxMg%4~LiZ~yx5_rSOW_&eCY`?|B=zcxF? zrTF!W+@3$1+H1tW|MK0&-k?a{5aWO=WOg|%xR3;6hGf1Rp>RAowX)0t#vSAQ5#yG) z<{No-Cc~MgdXE^F;yMD$rcW@A+5}Xw1^9n}aj|0@n;H!3C2h`>^la|4Ri=U{;XQ&Dx^~D?Od_5~8Dq{{Igcm;R}6xK~{I0aQl< zIGkM}8M!lmh4Ct87O#9q6^N$V1TVdHBhXb_$79phDz|CGRR(yfKkOYH z$C$@4B|ED$<&=YZJ3L4g4^O>nhR0$ldH{MiNQ>pL>{F+s3-b`9yDdmM9>=ThPvc$a z8t;*!97}xN+^ysd!X$@4IG^D;J{zM@U)b%tN{60CgYsi3Ci*ulz{uI=A(P3klewxwE^&om6kO z`&3JZr{hyRLnB+Sw{~-LkNb&)7X>(r_QM`QC%v~O-)fv5ce&_(CCTwIJKsBXj#DHR z|`m7Sj6*{3gR`|=7gX*$ShohfJb zWVxIG03ZNKL_t)9qUQ4Yxt)#Aq|9}@U)gVPEly`UJICk$`(ORWKKsqTwtEVd{Ja0d z{?~u|J6mk`qAZn@8SXbgqM{07iFhzYfi#!Y`Di+FABP8Ryxy9g3BbLmWSKp;2%ozj zwo-khj|Q~`N11ox6t{5x``#s6Nikr7TjH8C>2sNXR~ll0cpwe8-m927Ch&~K8R^SP z<_{9EST!pttBq*hjh}m%#7dSZ9KwIt2UQ~XJo5snZ5oN}kcwC1i|SIOB1wid7-jlG zZ=~NJ|8qRwqF)|`4*JJ4Oyw;W!L0SDRFxf-w8YlPoHWa8F?eI64>8d7q>mHjFr{O1 zFaMd|lfE>Pj5iCePO-(EG2J6$@OV#|`lblve-YziPC7d! z!DY?{#Bpyab?+sduOr4$1x?fOVFQazPDw?T}@IBU4d_Y zo@%nZZ@I(L+1EH%YDg@Trm2IA2T;|VS z_|Q)=j)^tT60t|Bc9L-K9N)MzCya}Kf^i4Y4e94ZGa5~6(DEmfZ~D}cWXl^7Fnw9@FB+&$G8L- zm+wpYcA-kL8h^fQ7PdGnbuPAbBaAx%&J4o14KR*7WjI$Ch+7mFq6k5XWI1azB}=+U zd+m;Koa{C_57|)2W733iJg=jGaod1#Y~l`2Fm4NsTLR-&0plk4eJM4&A|}Q~4;bfr z@437zI|MIIM4Ds`tbb#h0(sSVtp-@KL6MF^u)x19MydAOMC&tZy zAM}bEX}9Yk7Zb+a0OJ<8AIO313g0uuwb})Yi)H;mj5B@qUa_u|U5H~G_ll^roJmPC zcn8`M2=CJ3KhP)7+0;JJM_B*DM@RX;Ml#${u*~&Oh{1+l3LDE?4B8n4ZgM zxM zFPrgKE}jh!+~6p1_^Hl*ooYRl(Hrk=<4=_fDo zbNBY$xBq0fZ*jm6E}Q=!hoFL(Zu%)xTnLQ&W`Q~iQ!Zdv59sXIzuvk zO({oTEaeo1lE373(;tbRJdw2GJA40jBVOmQk8Cu|ZEEK-{A@K{OT>|95U8nq*VdZi zP)%(|UWRo_?0G*aeXX(($+XmLlH8>^+aqYk8d1vMh9gdE1f+SI=@62;erWc#p&?*b zN@`US)->p?U9R!ifo_8ga2+qf$Q%ohpwhakpA3A2khpzO;9SpTM;vn7-Jd=W~ zZX6`ReTU&VzKtGKTAVtN>QLsH7YFO=&Tf|!tib)P8$Ab;Eu;6YWrwHu0#qCcz~8J}_9S5DUQM&c>*!!TDQON!JxSZq1dSE44Ty>%Wnikpc03C&EN8PoaB zK6+W%=g%U$oH9h?-|aVezcdXT+q3IW&E`~M!hOgx`En;z+4=b&EkUMte*UpdXU_oM0O;MFx@9BMKmex2$O{>Em*v&LR`y6s!2} z8ZGg*4}vR4fH(rjV~5Qi7y^8@q?}IbpdwK(7D1o5*h-9Rz&XwkO#S%#qZd*VzVz|w zb#nAIdg2x1I%6(9JcRv5k#&3DNs_-xTI+S%{a{PH|0RV2#O>o=0r%z}*W({Cjytvf znMAFks_8h@^wTje3K-WvV4TxLNP7;`O@7*#7}sjySve64{Z%i917*agcn;Py(B@RF zFrClY$))}3#S6!{cenPt!zyN8BkuJ{;HIz38zU7%LeV?t`V

    k!UZJia_Mm#766h6~jn$ zTGH`^yL`^#F-7nu&8DeiC4jMgXGG2@5ijH8!4mqhn(_&&L#mqV+_;eoTy59bG)ys7g&3WCnR_ zDDCc@zCh2DN-vHq8z;$M0|J6bG+Shix_;wI(;4>n$=# zjk$Q4NJs;4r|D8B5W)jjE$}%vav+z7%it<&{NjP2j}w*dt#7knFIVMBq^uaE1fT(L1gi>1SNt)j;zgDqA^8 zs+$%>~i(-dpzrR0HWCLDGNN@ zN|`1jtt>mS^NTAxpUt^~X;qFOHpkzc;I+>ysn`tt)_Oc+q}xIwl99Po9|I10KBpx7cYNQ%;n+2*Psp;8T{(DT&HC zKj8CS;@+JqPL1*s!58-z&%m>bPwjO6k-bB~b2A40%tUgfU zv}M9>7^U_pR-hsy6;d#k8KNi$R23mG+=7fb5ug{<$PyB0j41Ry~j(^nA^6)>br$peIJ zV(A&D;XM22<8Bov?wX1vK@2Q)e=5;~Vqg00LlW8_cNb%OFdNmrHt{FQwIIznH)v!v zwiYqyzFymcR23Dcxi18#wS9nb2^(Z?NGrcL#EcxVHJ{{ehJ9$X6DQ9c3rowHzdsU8 zd7lQvIVznA<2W-UzO|h4#-f3c;xs9y5-e$Prt0A!_P_%70T z*oa!kb2b}0Ek%j)UyX5(QqgSea#+H6e~7$cB(uoO|DH??s=`tgj0H=qrKR2`Nbu$b zaF6>!TmPC(EEu;ZKE*~7IUgZr6qFU-TZ5Z)O3FDgq4F_99DGnXS(#4VmxV=igJSLa zoa(e=8?`fFTxrXDF8lZ%%p=B`K9?|#Ne`Y`7KML;aq&}(8&voRxFT(c27C) zrRWO(+sBP$)*msB`^+0n^t$fJlqd)#L`m2^vJVvab#2ukNRCV5kE(WmA_Hz8?kGLc zEPDL0{R2ck3OaUy0KvIdtv7^!EOC3yfRY)ntaGml%iq@&V(JI~6zf?)zR+(Fg--oR5IxoDNbq zua|_M?|nu^CyYxUFm4+#Zu+wrNAu^^dI^jh0poK0n&vABy0qO>jEiKVS`z0Dxu%!G zxXD^Om7KU_8$7eysT42MBgRq8fu_TJI5^o#Hh4~e_Y{Wd+|t7LdB)xZR_yD2eSp4u zBRu!h*5m3nGor=Sv%P)tabuTPY#8A4lO9KPXEw~sGhkfd%q$f6+#xzY`y4+Pxy#~P z-1iHd@iWCV(g^2MyjNh&^CuX0JL)wUD2PAE4dlaQKgGEBC=B1>wBTptpW{s7ejj!L zL5 zv_Fe+gXq%2xGi#<)s2`!6$|C%TGkC?c73wsZ^F2gRiQi3bMFKPYkp!^mzSvgPf)c3 z^m1fRVJthHYDsp40CbYOSx>t!ZMVilR&-kO z;~<#9y4MnRE@iNn*NwejF146`Iy<%I=3v`?E#Tk;iQuP#BJBW(nSJ%uFYT+({tl1A z#5PNS=(q0>T;5BeXnaUCwaHpHN9@(@-O89uYCZddI<|Z`htzqQ^kdV_;eBdK)hQ9g)qA3w-=6CAj&q{1~2 z<3;03Bf98&efq?EWaegpLvRddz+&>GacQ9L#X*1k$S>6{5)}($H{4_w zVP7XoG$uu1W8CYiq>@Y|1(fkDR^hi;-v|(C511fm#@w%Brois~q4IqPQp!k!+W~Ai z*(mR0g+?c{lB$sK-9%`rErb?2g?L)Yj z5T;Jl5TQ&wJ3s*J>cmQNv%Av0BzWIBp+#~^BRY-N@m|?wr`jIM46SebKzO_Rd0O#$58zZjLhl(V8X7HDX~rM-`XiYAi?%ntYV z6`r+?osK`ZS^2qbtEH%zoE}cfbBRgNONMgPsl-b%J+Gu4aDR~Jk)5p3Xsj+NyXI-? z%c)v0HK(D84iFX^*zvkwytb;lv+2CB=hy!nh23W|&U68WSTT=uT{adtVJD4_elnaE zl6umpxkLewN|##3e1}&1PEFi|E?=S|?nr%jN|#mh!XAC@Vr7J$?$MB01Tcy7n2NiW zlNAY1@MzXv+ypsRc7a1^aMjbyCpyQ;QR{x`!RR!03G37g6h50QS}5zE#NIq&_jrh> zwrzH{-XpP7QCeu?kSV$B>?y`+-;oB9R5Qc5b&Rto7)Od%rE8GI-eq?06ucKzMF+)h zG6f<|O8G^Bhd5jt3KaF8Fr=yb2ql4{MWfiacWe6(&40Hy@9(te{%*6;1fWELa7vX> z((iiv>oHE#xjszNUFMfmD)tW;_WR>Bqa}mmV6R@i)sB&Nb66}+5i3V5wUL;xBho1p zO7@#Y&JYTfqYDE?5l&{AeRK`HUb%VZ$#i7RZErgiklZ8b5B8wK#-7=H9NSmFdTzh| z{7byf^a0~;iE-^uF>ZLkIQqOub(PG8#8v7n>{Bo)<_BgH#t_&9O>A|7DbJs}cbg`g zR5@&jak+XlM>RmlIPU!s_-UdGzD8x<`uj!*l}?gPfr7L9P&6))!#pgRj|<9Z1%vocQ#b9ZSIa3Cv8rfo=k223{@JQ8;S=YI^qn>Wn&Ui z(avf;*U?c%o{GU`sWZ3R-fGwA5#zSPIPLSW1jyMEa9w!@%-Z5^mc%%L7=`07v{WBCu zpE|Q?aEv3>cMwfDax4?ZRRQCAVI1@2oa!)4)oFGcFs?!@AvLsvQb*he_k+YLBh0JZ0tYX{8krQfT?Z*Uz6P-U)1f7hnqa*^f$1Qc1PXQh4g;?h2Q@c=DB z(!NV1!xQ^v^V(MR8@oqhyWi~eATX*WXIFUtg}U)AlGJjH1G>s>r)BrnZ*K3!mx4*= z2C9<67WcnX$2p2hIS{+UU+=0wNcv+@G4MU?4n!{5+cX=gp1pX6;1JUZekEh-Uf)AQQjI`W>34z0 z>VMB?^+6PZ$zRh;I_jDl!uJZ8h1mYe2>5zTRADzp<{;9l4diup>wC>0RxS++`}&w0O4T?!+aU zX;_(fr?{e#v}g$^@XE0rrp!CG`uyn@g&|(&?7X(~Yn-hU%7s%UFvx;4xc6Ii47vEZ zs}>eZwbEdp~(nRLmO| zQrY7kTb>2lBa%u^v~^_a(sp?5=r~>I`v)%g5I9}hjrxh>`C|_}ahlshlRZ&PK58%Y zVdhGJB0An%WRm# zi(4dMRZS^uN;!?R*P3xZCJ7z+fN|O{BG3+z9XB6|agi{N=ESakS|gA)Q6u@^nB$+w zC+v?H=VLC>3$sj39bue^^tdWTA0ENpuNGcvK8nK>f(MQ@(o6;YU7#DVFm`AeNB;P3D zRZhjKjx?qN&h89npt0MnOYGy9XZHEaU;PB*fNxu} zFf?`p#$6)bmX8?6sdQG_mQ!@TF-{q~W5b4%*;0k5Oee(yDKVv-`vsr2D)!rt! z*yCiP^WG;FE^!m~yavZO=9>~@Aja(#^9p?L5#zc)!MH(YvYX9Xw74V2wLif)j|II% zJ&qXHJz!j>;%Ky`gn22k9Dc4Oh>|5dmz*jCTSQ;q(+lrJ2|Ou^)A%XIMG{ns%Ly=! z6Re#uF4;`12pD$}FfJ*0e;Q$2L`xauV8oO|eUGznkL!J6>Eu!vHvr>O9Qq^1F;eC@ zKRIIlwhM7YhTUW@oJe(&M&%!1oLC4uVB9yrxL3fJGsLRTaOQ|{izgU&rIi4lGrpfF zV4Ml#@<)st{cRYxTM*;k0pmvY@iSuFFaI*e^$V%&eTZ>1A$En&1D<8aILE0})7M-% zifDa*1IDGKIAnzf6Uy~*neL8CA2bu~serQ&60Nary!Ju}d%e2`Q?e!!bj0dvsua=$ zAyOBIs!j=wEXn-?lI=Gr8m@6M=aEfLxkNkDn_?%at5YRY>*dOJxXJPu!G|wUxOBKx z&3dmup{4&WEbR{uTDXti14G~u#zDj(*l5r&b_lyP?B+?rl-2Phw)s_Rv(pJG*U#{| zPw?=*5?I{btnKo0Vq=aMdw1iesoide!+D6s;U5h&eQho3~rr03e@V zOc7LY5GuSjJ#!FH&aN^Qk9p~ah~&iX@%dM)gRRyLepU-0T}VxZqrx14;$r@#^&ByC z0U!6OWk=#@%4P27kOn#r9{|!(Sm240K{?@iX%P~9sx;9gRm7?~R^_RrvL&H9Hcjfp z(QY5dm~JjNNCA%lL+@>^3fjaK5t$TqzLON$aTS2lk*VmP>=bM^TU#zSZm`$& zO1{}ekO3{FDoKB$Y&D)`b~Vxg-?OD@+)i@r1X&)g%ac<(olTTP-QC{U_g~-IdV5eO zCeFAAv_#^xkx?$emc5+5A@4X>g2Zlo13>C0cwWb?#^dBV%N;rn9d=Ry+4)w|kjM~u zIvv~j2@22K!ZzRTZF9S@_pkoR_8o%wWN#$hOc+H88{x%NeUt6xEv`%D3Ygrv>73B%>8*Eo-M^uhkuSajF_4bwzZIaJOnz-;dhSyg zWTB*=OsI4Tz#8Xs09ET*kNI-Fo@>h1riGj0m9FkXVH8f3c>N_49a&JW>qIN&$ zewJRlT1?{izyU7!ld>Zk8{;`UjiC@>_mUFFCMw85hNihXrMa3r`eKuWCbCpeqLLk+ zt@?;@GsMi37#Nr7IXDpGh;?|4YSDV}HuglDK2AM%Q2Fc*p=tD2V4Q{ca+H~;f@IQ# zqA)n2N^F4>m=RS|NA~REbIZF8-pgxi>&|X(cXoa`QWG%cFdg@ZHNv*?y&=-DN4%HC zAUlpJg^fBCR@`O$5je4`?CJu~!UXSRI*1L!f{I4)aTfAJ3Vij$`xQ+HNiE}zrxEKlF zMBO8rHGwg>RwDfS&g4ek=S6Ij7#kva|*Lu?%i~@a}{5TVn_**2E6+klq#%sTO{WapLW868a zh-QX7=r9$=MU;&OZd2UGcQ*(3woJTYq{;EFs$JC(F}2>)P`Po8>z`sA_q&O4JK=wF z#5nC39x<+Pdl>HYJ;6AMupsv+fN_)E+(ykrils8DO``DSJCM%)XDljI{P+8b)#(an zAeE@Va7e{^%En$mJjJ*K-;?gg!nlj8ot>N`9~l>-*vFKrca3x@rVfbl`;|}kCg)=p z9f_Qt$|`nf7sye*7sYzBxfSkrt?%W0fN{+8k1G&Ij3dhfh0(72N8Pv6$yX?Zeh%X< zgmLy0jI)4oydUyt{1c2Tg>iiCE~v9I77F9m#JKOpruy>b-`UIOM~oW+#@Wwc+^c|b z7r3V5pT{^EL)W6yDQ{GP*8j~Im*x{BYG;MIC%aXvU7QVq{5eP8J-bV>5)X~}DGG`t zg=1D02Ajj)ny_<3(Sj_egExXaZt@6+k=@q{!EmVe)>SJ!giC-vM`UMuP^Xgu>E6iCS`bYBSt$vh3(L z!Rh{LLp2gg9=g}lp^7BEsK|II@fxX?&3bY~r}TM1L@iq@%g)ZuV!OQ3nz^|8byM5> z`#W3RZnc}T-tCaQv>MIs@%tT;da8!ZHt1Ah4&W1QlYqOqjT*3a`~3uhVQ%AaM~l<00DNI#+gkhxdSsU*rDF0QeWr zN*w51-0rupk)YiAHRnWx2Dh_$FK2j7+NxOHIEq5#TtJ?rk{e~P->e5+Pc219KIwA` zkRN=Gq#qs06H#2a7lJ3pa&`ha!ITuJE2kxik5QRW#pEnA_#a|%=Q-72XZL`DpF#Je zz|V*ZJ0RJVf)n|vG>t@XN|LoNTJl>GCddmUJzS)&^|`p8(2y|NdjPC(2#aWMrWu~N+12T_4cjYVA>OO4 z^u;Ni=&cgEV4%*`@j7%nQ5HwzQx!WE3S8drK2W!mVDt{iq-PTFcB7r9NO?@^Tk70m zF13!PcupD#S1{=E-gD?m>Ku#1te)8v1<#0`I2vV2PB-}15d6DD0hwkv38@Fo6rU@n zpDMMJ)aj){pc0NzqJk{R@hiYL+T)rmreb$A0|;$*QvIHmbF>nk=}Cv=nUo3 z+We3Bj2k-{{nDo83%rE_&jJd)Xp5w=unCHz>GWLYi=t}|b@2CMp_VI|qf!!8=ftC? z6Fq)LAxTu6hZ)T)ML-s}dV%x3+TPi6{iCR2pT77P_VKe{i90?-Px`b{^^B0nZtTa~ z|8957SDJ>M%|Atgb*V-U_hz^sBMELcEX)~t#;N2e z^F)&8hf0m@Q5k~8cSE(M9;YF*Z{F4Rc1h>=saOX59;#a%hE~R{RBxk#6<;9d7&Zx> zZ&E<;MWkkHCgmJycxlcTPA0_GjBF5RHy+WLNAu5Vn z>xGpjpgfm~J1j`{qPSgOUfAvXd;9+Dw|2%edN~8eWme)f>E+f6<48aE+s$H

    +
    +

    $projectname

    + + diff --git a/doc/karbon/Makefile.am b/doc/karbon/Makefile.am new file mode 100644 index 000000000..085981d9b --- /dev/null +++ b/doc/karbon/Makefile.am @@ -0,0 +1,4 @@ + +KDE_LANG = en +KDE_DOCS = AUTO + diff --git a/doc/karbon/index.docbook b/doc/karbon/index.docbook new file mode 100644 index 000000000..670d3acce --- /dev/null +++ b/doc/karbon/index.docbook @@ -0,0 +1,67 @@ + + + + + +]> + + + + +The &karbon14; Handbook + + + + + + + +
    +
    +
    + +
    + +&FDLNotice; + + + +2005-09-04 +0.1.0 + + + + + +&karbon14; is a Scalable Graphics editer for &kde;. + + + + + +KDE +Karbon14 + + +
    + + Introduction +The documentation for &kappname; was not finished when &kde; was installed on +this computer. If you need help, please check The &kde; Website for updates, or by +submitting your question to The +&kde; User Mailing list. The &kde; +Team + +&underFDL; + + + +&documentation.index; +
    + diff --git a/doc/kchart/Makefile.am b/doc/kchart/Makefile.am new file mode 100644 index 000000000..085981d9b --- /dev/null +++ b/doc/kchart/Makefile.am @@ -0,0 +1,4 @@ + +KDE_LANG = en +KDE_DOCS = AUTO + diff --git a/doc/kchart/cr22-action-chart_line.png b/doc/kchart/cr22-action-chart_line.png new file mode 100644 index 0000000000000000000000000000000000000000..ea1199dbb240871913a5f2dc68d076b72906d44a GIT binary patch literal 1310 zcmaKqSy0ng6viWp3I#;lB#20HX{%Py+Jdc46%;KfO(|O;A%qaJ0bvV-ov?(kFJTW` zMi8{1Af;MIYu&3e;wfALSu+MktiQoV%OXsXOTPx6vEY%nZ#9*67i{{x54#tG^7^7_2ui zG&3}^*S=7`cQwG`YM4c5f<*@(+g65YZp1Wnq01kli~BLfeb}O2i^Aty z^PXB}KeozzV9mX`E2(QwT&pd+@w0HDLx|uAE$3Je_e5}#GnI3i7VSc3xiT1MnM^mm z7>sZAqSJ9S+ILi{JB9K+ne0I#c@l}%rBZ1$8l6sOFc?fGGbAJ=G&D3UER4lsg@=bnL_|bJMn*+NMMp=o z+3c8@nAq4@4u=yL7Z)ENpOBD{n3$N9l$4yDoRX4~nwrYxa?{e%($mv3GBPqVGkH8- zR#q0D&(F@z&dJHi&CSir%gfKtFDNJ|EG#T4Dk?56E-5Jy2n402rDbJh<>loS6&010 zl~q+$)z#HPp|GZ=rna`WuCA`WzP_QMK_n72HlI7+*4WZ{{^Bpqt-rQhx_hCi`*LaT z^^BprG2(8E?q%r?jm%oBu+l2GX;s^FYQ3y<$aWoK zqeXUUkuRjkscFP}1fjh|IL{FN@9L^Ms*5+2H?AuFydrzuE|qjhRh`n6F4@X8Ik=?& z_m$v@67(v;pb`u#!MFlUDZs28EXcv449KKFDFvz}s9uE2i%=thx&;W{N&>+m1WOP| zA&^6$fItO-8iHjAv=HbZ0-$UKF08;A9h}s`v1K@{f

    8D1!q_uwMcP=i#eaI5Gpp zQ*iP%oSuZU6L3Kcm&8yp2Gyfo9u{rR*rqQrLOV>+ZcO4qIY`&4``^TP;5`3pa=oF=_u}}s#sL5;D_V_OzBD%_9(r-- za&3NMC=qx1*x`fwKHYD3@R0piUpt+4^YHb<6a0w*q(E{IC74R1GngTvVXW|o$f#&` zOe`lZJ|QtFIVF{wmY$Kx%i?F}{G8`^L4d zj^_G`;#^)li$d_ixtu(H^su3(4ABp(admd`vUtG~-1WG3(45bnGQGzl75s2U^wGYG zag(QgeJxpLoQO2HsMdCStew!R(0kud>Z6E5Tn?o2T$-#+KDiL>La5p_7v_lVx7CX0 z|2iUF^lWrk_dwF?BS)vaL3zbWIplDB{YLi#^&{PC`_94v3rCL+H~F@7e?Ba{V%=F0 zJ3uwFaYk8Zl{Sga|J*KSjuUMpXvg54ngDwLl5k|~gfI6ZtBVX}NX6($RBZtZi!I%Ejc~wd-Du2Hj-$otYQ-~q<9N9%;o=TC~x9Y#6XhVAZHUAgNioOAn$z>I$ZuPwT9 literal 0 HcmV?d00001 diff --git a/doc/kchart/cr22-action-data.png b/doc/kchart/cr22-action-data.png new file mode 100644 index 0000000000000000000000000000000000000000..a72e5438fd5d62c19028b2aff6d75b039b9f11e5 GIT binary patch literal 1328 zcmeAS@N?&q;$mQ6;Pv!y2?Ek$Ak4uGBtK`(;RI4F>5jgR3=Hc}n6q}hWME)s2=EDU zWduqP0E{5O%+AOmz`!NKz%9nWBf-EU$-pbcz$eAPFU2S*#V9Jtq#(g!Ce9Hd##187 zTPeg}$1l{xBhtVtR?8<@DIirOB$Fj9nP@FZmy)MrLLu=rLC>4qobp% ztE;D{r?0PXU|?WqXlP_)WNd6~Vq#)yYHDU?W^Qh7VPRouX=!C;Wo>P3V`F1$Yinm` zXK!!s;Nals=;-9+gwj^=I-w9;o;%w>FMR=+9#|=kM(9qD>*x1z6)ZEM=M*U(v4*IQRTsjhNbUHPoK z(z$iT3+jrN)D0Ez1)|2BtxY*wnsPQZ=WJ}v zS>Knsa9aG7`B5FqL#x*Z7VPj#Ip7m{(#!vXm)mtOyW8I84}6WD1n9mD(RdxM@g`dH zU4r(9be&Im`mZa@o;2Ct>GQliEBN^0*j?)~*X*pCeWbth;*y37Yb!2nExfQd`@-S0 z3n!8Pn{v+bYch?`^ zjemUC`|(}t$9MG~-_?G6R|S&K7cWd_U|?h@3Gxd@$_I?Ba<0MAQITOmejbh%dP>3q zJe*uSeEfnU;!<)->RQ@5x_bHshDOFFre@|AmR8m_ws!Uoj!w=lu5Rugo?hNQzJC4z zfkD9`p<&?>kx|hxv2pPUiAl*RscGpMnOWI6xq0~og+;|BrDf$6l~vU>wRQCkjZMuh zt!?cc)0b}CedNrg8xLQ+{q*(6uitEyT(|4$f%y}P22n3Djy@G z_Bn0+xMS-qPloy4+XbBD+H1FQN4BZ8EzU?eCVASwZ?Q$+;zrH$mFFf1Bud|wxE3WI z#G%P?_HJ?Al%P+C{w_K0(r@hZCQM4NQ_tX2kw(Uk4b$z9uH61qna`s>%u95ep^)IC nKT~Vhhu+?kRc!D{t>dx2`m*L~mIz}(Q2ctj`njxgN@xNADA{6o literal 0 HcmV?d00001 diff --git a/doc/kchart/cr22-action-options.png b/doc/kchart/cr22-action-options.png new file mode 100644 index 0000000000000000000000000000000000000000..f03bb6735c90525c5a095bac1f49e5ebf7b3206d GIT binary patch literal 1348 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 literal 0 HcmV?d00001 diff --git a/doc/kchart/file-toolbar2.png b/doc/kchart/file-toolbar2.png new file mode 100644 index 0000000000000000000000000000000000000000..699c44799a8798bc07c2c817aa2b4140c1a16cf7 GIT binary patch literal 2740 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 mC46skoBSv{^l + + + + + +]> + + + + +The &kchart; Handbook + + + + + +&Jonathan.Drews; &Jonathan.Drews.mail; + + +Raphael +Langerhorst +raphael.langerhorst@kdemail.net + + + + + +&FDLNotice; + +2006-01-30 +1.5.0 + + + +&kchart; is an application for visualizing numerical data. It has many +different chart types available like bar graphs, line plots, pie charts, +ring charts and more. + + +&kchart; is a &koffice; component and is very well integrated with &kspread; +to allow visualization of spreadsheet data. But it is also possible to use +&kchart; as a standalone application or integrate it in other &koffice; +components. + + + + +KDE +kdeutils +Kchart +chart +graph +plot + + + + + + +Introduction + + +&kchart; is a tool for visualizing numerical data. It can be used +as a standalone application with a simple &dataeditor;. But as a +&koffice; component it offers very flexible integration. &kspread; +uses the &kchart; component for charts and diagrams. &kspread; +can be seen as a very powerful data provider for &kchart; input. + + +But embedding is not limited to &kspread;. A &kchart; chart can +be embedded in many of the &koffice; components like &kword;, +&kpresenter; or &kivio;. + + +To start with we will look at the user interface of &kchart; +and how it can be used as a standalone application. When we +are familiar with &kchart; we will investigate the charting +capabilities it offers together with &kspread;. + + + + +The User Interface + +Main Application Interface + +We will take a look at a simple example to get to know &kchart;. +Along the way we will also discuss the user interface at length +so you will learn about many details of the component. + + +When you start &kchart; as a standalone application you get +the usual startup dialog where you can choose between different +templates or load existing chart documents. + + +&kchart; Startup Dialog + + + + + + + +You can choose between various ways to startup &kchart;. On the left, you can +see three options: Recent Documents, +Charts templates and Open Existing +Document.... The first option lets you choose between +recently opened charts, the second is for creating a +new chart from various templates and the third is for opening an existing +chart with a file dialog. + + +For now we will start with the default template. Select +Charts in the left area and then select +Bar Chart in the main template area. Normally +this template should already be selected after choosing +Charts. + + +If you decide to always start &kchart; with a selected template as default +you can also check Always use this template. + + +Click the Use This Template +button on the right, under the template preview. + + +&kchart; User Interface + + + + + + + +As you can see, there is already some example data present. &kchart; +offers the default toolbar for creating a new chart, saving, loading +and printing the chart. The second toolbar offers icons for editing +the data, configuring the chart or using a configuration wizard. +You can also switch between different chart types with the rest +of the icons. Note that some of these chart types also have subtypes. + + +The menu offers all standard entries, including shortcut and +toolbar configuration and page layout for printing. + + +Note that data editing is not available if you use &kchart; from +within &kspread; because all data is provided by the spreadsheet. +As a standalone application the &dataeditor; is an important part +of the application. + + + +Chart Wizard + +The wizard is actually a very useful part of &kchart; for quickly +setting up some basic options like chart type and chart labelling +in a few easy steps. + + +You can run the wizard at any time, it will always preserve your data +and other configuration. Also, you can change every single configuration +you do with the wizard later as well, without losing anything. In fact +the wizard is just a way to set some basic and important options +in one go. + + +To start the wizard simply click on the + + + icon in the toolbar. + + + +Step 0 - Choosing the Data source + +Wizard Step 0 - Data source + + + + + + + +The first step in the wizard is to actually choose the data source. +If the selected data area does not match the data you want, +select the data now. + +Include cells that you want to use as row and column labels, +if you want them in the chart. + +Then go to the next step with the Next > +button. You can also choose Finish at any step +if you are already comfortable with the setup done so far. + + + + +Step 1 - Choosing the Chart Type + +Wizard Step 1 - Chart Type + + + + + + + +The next step in the wizard is to actually choose the primary +type of the chart. This selection has the most important +impact on how your data will be presented. Thus it should +be chosen well. You can change the type of the chart with the +icons in the toolbar without losing any data or configuration +later on. In fact it is even considered normal to test all the +various chart types to find the best fitting. + + +In this example we choose the Lines type. Depending on the +chosen chart type different options are available in the +following steps. + + +After chosing the type you can get to the next step with +the Next > button. + + + +Step 2 - Choosing the Subtype + +Wizard Step 2 - Chart Sub Type + + + + + + + +In case the chosen chart type has various sub types you can +choose it in the second step. If the chart type has no sub types, +this step will be skipped automatically. + + +If you decide to change the sub type later, you can do this +in the appropriate configuration dialog which will be shown +later. + + +You can simply leave the default selection and go to the next +step. Of course you can chose any desired sub type if you want. + + + +Step 3 - Labels and Legend, Fonts + +Wizard Step 3 - Labels and Legend + + + + + + + +In the third step you can set the text for the chart title, +the axes and the legend. You can also configure the desired +font in detail for each of these. + + + +Step 4 - Axes + +Wizard Step 4 - Axes + + + + + + + +The last step of the wizard lets you set various options for +the axes and other options, depending on the chart type. + + +You can either choose Finish to accept +the options for your chart, go < Back and +change various things or simply dismiss all options from the +wizard by choosing Cancel. + + +If you choose Finish all your choices in the wizard will +be integrated in the chart and you can continue to enter +some data and do some fine tuning of various options. + + +Remember that the chart configuration dialog has many more +options available, we will discuss these later. + + + + +The &dataeditor; + +The &dataeditor; can be reached by selecting +EditEdit Data... + from the menu or by clicking on the + + + icon in the toolbar. + + +&dataeditor; in standalone mode + + + + + + + +The &dataeditor; can be used to set all values. You can also define +the number of rows and columns. + + Depending on the chart type rows and columns have different +representations. Each row can generally be considered to be one data +series or data set while each column represents the values of all +data sets at a certain location. + + +The name of a data set can be changed by clicking on the row header +(left of the first column with values). The name of a column can +be changed by clicking on the column header (above the first +row). + + +The number of rows and columns can be adjusted to fit the needs. +Since version 1.4 the restriction to 16 rows and 16 columns has been +eliminated. + + + +Chart Configuration + +&kchart; offers many configuration options for the chart. These are +available in standalone mode and when embedded in &kspread; + + +Depending on the chart type you have selected, the available +options are slightly different. Let's choose the line chart +type by clicking on the + + icon in the toolbar. + + +To get to the chart configuration dialog, select +Format +Chart... + from the menu or click on the + + + icon in the toolbar. +You might need to click on the right or left arrow at the top of the +dialog to get all pages if the width of the dialog is too small. + +Row and Column Swapping + +Configuration page 1 - Row/column swapping + + + + + + + +The first configuration page can be used to swap the +interpretation of rows and columns. +By default one row is considered to be a data set +and each column holds the individual values of the data +series. Here you can choose to have a each column hold +one data set. Note that the values are not really swapped +but only their interpretation. + + + +Chart Subtype + +Configuration page 2 - Chart Subtype + + + + + + + +The second page can be used to select the desired sub type of +a chart. The available sub types depend on the chart type, in +this case the line chart. Some chart types have no sub type +at all in which case this configuration page is not shown. +You also get a preview for each subtype. + + +Remember that the chart type can be chosen from the toolbar while +the subtype can be set through this configuration dialog. + + + +Header and Footer + +Configuration page 3 - Header and Footer + + + + + + + +On the third page you can set the title, the subtitle and the footer of +the chart, each with individual font settings. + + + +Legend + +Configuration page 4 - Legend + + + + + + + +The legend configuration page lets you set all aspects of the legend. +The legend contains the names for all data sets with the respective +colors, this is important to identify the data on the chart. + + +The General box holds the title of the legend, which is displayed +at the top of the legend box. +The Position box can be used to place the legend at various locations +on the chart. Use the central button to hide the legend. + + +The Font box can be used to set +different fonts for the legend title and the individual entries. +Additionally you can set different colors in the Color box. + + + +Axes + +Configuration page 5 - Axes + + + + + + + +The Axes page holds configuration for the chart axes. This +page highly depends on the chart type chosen. For the line +chart you can set linear or logarithmic scales and turn the grid +on and off. + + + +Colors + +Configuration page 6 - Colors + + + + + + + +On the Colors page you can choose the colors for the individual +data sets. You can also set colors for some general chart parts +like axes Line color and Grid color. + + + +Font + +Configuration page 7 - Font + + + + + + + +The Font page can be used to configure various fonts like +titles, axes labels and so on. Some of these fonts can +be set on other pages as well, but on the font page you +have them all in one place. + + + +Background + +Configuration page 8 - Background + + + + + + + +On the Background page you will find various options for tweaking +the background settings of the chart. You can either choose +different background colors or even a background picture. + + + +More... + +This short overview of the configuration options gave you an +introduction to the configuration possibilities of your chart, +it is by no means complete. Different chart types like Bar, +Line and Pie, have +additional specialised configuration pages and you are welcome +to look around, try different chart types and look at the +configuration possibilities. Use the tooltips and read the +What's This? help. To use the What's This? help simply +click on the question mark on the window +decoration and then click on the area of the configuration +page you want get more information on. + + + + + + +&kchart; as a standalone Application + +The previous chapter described the user interface, +various configuration options, data editing and the wizard +in detail. + + +This chapter gives real-life examples on how to use +&kchart; in various situations as a standalone application. +The purpose is to give you some understanding of the +way &kchart; works and how various parts relate to each other. + + +Presenting Sales Figures + +Warming up + +This first example which might often be encountered in real +life is presenting sales figures, or in this particular case +profit. + + +Imagine you own a company that has three main categories of +business: sales, support and training. And you would like +to present the profit of these categories over some years. Making +a graphical statistics is certainly a good idea. &kchart; can +help you here. + + + +Getting started + +Run &kchart; and select the Blank Worksheeet. + + +Starting with a blank chart + + + + + + + +Hit the button Use This Template to get started. &kchart; will present to you +a completely empty document. That's good, we just need to enter +some data and do some basic configuration to get a nice chart. + + +A blank chart + + + + + + + + +Getting the numbers in + +The first step, and probably the most important, is to get the +actual data into the chart. This can easily be done with the +&dataeditor;. As usual you can get to the data editor by +clicking on the + + icon in the toolbar. + + +You will notice that no data is present. Also note that +the number of data rows and columns is set to a minimum, +which is 1. + + +Now, just enter the data you see in the next screenshot. +Note that you can increase the number of rows and columns +with the spin boxes in the lower left corner. The names +of the rows and columns themselves can be changed by +clicking on them. + + +The Data + + + + + + + +Simply click the OK button when you are done. This will present +to you a simple bar chart. + + +Simple chart without fine tuning + + + + + + + +Read on to do some fine tuning! + + + +Fine Tuning + +We will now do some fine tuning and put a title on the chart. +And, we will add a nice 3D effect to the bars as well. + + +Start up the configuration dialog by clicking on the + + + icon in the toolbar. + + +Title + +Options - Title + + + + + + + +Let's start with labeling. Go to the Header/Footer +page and enter the text like in the above screenshot. + + + +X-Axis Font Settings + +The next step is to make the font of the x axis a bit bigger. You +can do this on the Font page. + + +Options - Fonts + + + + + + + +Choose the X-Axis item and click on the +Font... button. Choose a somewhat +larger font like in the following screenshot. + + +Options - X-Axis Font + + + + + + + +Note that the font size is set to Relative. +This means that the font is automatically scaled according +to the overall chart size. This is quite usefull and most +of the time what the average user expects. + + + +Giving it a 3D Look + +Some types of charts like Bar and Pie +have an additional configuration page. + + +Options - 3D Parameters + + + + + + + +To get a 3D effect for this type of chart, go to the Bar +page and simply activate 3D bar. + + +That's all what we need for a reasonable looking chart. Note +that much of this configuration could also have been achieved +with the wizard. It's basically a matter of taste what you +use. Experienced users will likely use the full option dialog +we used in this example. + + +Simply accept the settings by clicking on the OK +button. + + + + +Final output + +The final chart will look like the next screenshot. + + +Final Chart + + + + + + + +You might want to enlarge the application window to see the chart +in full size. Note how the fonts get larger in relation to the +chart size. + + +There are certainly aspects to improve further for your personal +taste. For example try to make the title font even bigger. +Just experiment further, this way you will get to know a lot +of the &kchart; application. + + +Finally you can save the chart from the File +menu and quit &kchart; with +File +Quit + + + + +Exporting to Graphic Formats: SVG, PNG, JPG, &krita;, &karbon14;, Gimp and +more + +For further processing, the chart can also be exported as a graphics file. +Many formats are available. Using either PNG, SVG, JPG or &krita; will likely +produce the best result. + + +To export your current chart simply choose +File +Export... +from the menu and select the desired file format from the filter box. + + + + + + + + + + + + + + +Using &kchart; in &kspread; + + +In addition to standalone operation, &kchart; is designed to be used with +&kspread;. This chapter describes how to create and manipulate charts +from within &kspread;. + + +Remember that &kchart; embedding into &kspread; is a very commonly +used and well implemented feature, the examples in this chapter should +just get you started. + + +As soon as you have created a chart in &kspread; you can take full +advantage of all the &kchart; features by double clicking on the +chart area. This is necessary to get to all advanced configuration +options. Keep in mind that the data editor is not available when +&kchart; is embedded into &kspread;. This is obvious since &kspread; +serves, from &kchart;'s point of view, as a powerful data +provider. + + +Swapping x and y is of particular interest when working with &kspread;. +You can swap interpretation of x and y axis in &kchart; in the +Data Format settings which can be accessed through the Edit menu +or the context menu when right clicking on the chart itself. As noted +above you need to be inside the &kchart; component in order to access +these settings, which can be done by double clicking the embedded +chart in your spreadsheet. + + + +Plotting with &kchart; +To plot with &kchart;, when it is embedded in &kspread;, do the following: + + +Picture of toolbars dialog + + + + + + + + + +Highlight the second row of numbers. + + + +Next click on the Chart button + to create the chart. + + +Select the options you want from the chart wizard. The +chart Wizard will pop up after you insert the chart. + + + + +The whole data could also be created using two columns instead of +two rows. If using columns you might want to switch x and y axis +in the &kchart; configuration as described above. + + +To make a bar chart for individual items, put the numbers in a +column, as shown below. + + +Picture of toolbars dialog + + + + + + + +The orientation of the numbers determines how the plot will be +made. + + + +A row of numbers defines the ordinates for a single plot. + + + +A column of numbers defines the heights for each bar, in a bar +graph. It also determines the size of the slices in a pie chart. + + + + + + + +Command Reference + + +The Main &kchart; Window + + +The <guimenu>File</guimenu> Menu + + + + + +&Ctrl;N + +File +New + +Creates a new document + + + + + +&Ctrl;O + +File +Open... + +Opens a document + + + + +File +Open Recent + +Shows a list of recently opened documents + + + + + +&Ctrl;S + +File +Save + +Saves the chart to the current file. If the chart +has not yet been saved the file dialog is shown. + + + + +File +Save As... + +Saves the document, the file dialog is used. + + + + +File +Reload + +Reloads the document. + + + + + +File +Import... + +Opens a document with any supported format. +The original document will not be modified. + + + + + +File +Export... + +Saves a document to any supported format. +The original document will not be modified. You can also choose +among many image formats like PNG, SVG, &krita;, Gimp or JPG. + + + + + +File +Mail... + +Sends the chart as an email attachment. + + + + +File +Import Data... + +Imports values from a CSV (Comma Separated Values) file, much like +the CSV import in &kspread;. Note that you can specify various +options and different separators (not just commas). + + + + + +File +Create Template From Document... + +Create a &kchart; template +based on this document. + + + + + + +&Ctrl;P + +File +Print... + +Prints the document +Make sure the proper print system is selected in the +Print system currently used: section. This option can +be seen after clicking on the Options >> button. + + + + +File +Print Preview... + +Displays a preview of what the printed +document will look like. + + + + +File +Document Information + +Opens a dialog box where you can enter +information about your chart. +This document information will be +displayed in the &konqueror; file browser as a tooltip. The tooltips +are pop-ups that show the contents of a file when you move your mouse over +the file icon. + + + + + +&Ctrl;W + +File +Close + +Closes the current chart. + + + + + +&Ctrl;Q + +File +Quit + +Quits &kchart; + + + + + + +The <guimenu>Edit</guimenu> Menu + + + + +Edit +Edit Data... + +Opens the &dataeditor;. + + + + + +The <guimenu>Format</guimenu> Menu + + + + +Format +Chart... + +Opens the &kchart; Configuration +dialog. + + + + + +The Configure Tabs + + + +Data Format... + +Swap row and colums (x/y flipping). + + + + + +Chart Sub-type... + +Changes the arrangement of bar graphs. + + + + + +Header & Footer... + +Enter the titles you want for your graph here. + + + + + +Colors... + +Select graph colors, line colors, grid colors and +axis title and axis label colors here. + + + + + +Font... + +Select font style and size here. The +series colors can be selected here also. The series refer to the +individual graphs. Each graphed set of data is a series. + + + + + +Background... + +Select a color or a wallpaper as background for your +graph. + + + + + +Legend... + +Change title, font and location of the legend box. The +color of the legend box can be changed also. + + + + + +Page Layout... + +Set the Margins of the page here. + + + + + + + + +The <guimenu>Settings</guimenu> Menu + + + + + +Settings +Toolbars + +Show/Hide various toolbars (File, +Actions and Types). + + + + +Settings +Configure Shortcuts... + +Configure key shortcuts for &kchart;. + + + + +Settings +Configure Toolbars... + +Configure the &kchart; toolbars. + + + + + + + + +The <guimenu>Help</guimenu> Menu + +&help.menu.documentation; + + + + +Configuring Shortcuts + +The +SettingsConfigure Shortcuts... +allows you to specify shortcuts. + + +Below is an example of how to configure a shortcut for opening +the chart wizard. + + +Picture of shortcut dialog + + + + + + + + + +Click on Custom. + + + +Next click on Primary shortcut:. + + + +Do &Alt;&Ctrl;W +and the dialog should disappear. The shortcut is now entered. + + + +Pressing the keys &Alt;&Ctrl;W +now opens the wizard. + + + + +Configuring Toolbars +The +SettingsConfigure Toolbars... +is used to add additional buttons to the toolbars. + + +Picture of toolbars dialog + + + + + + + + + + +To add a button to the File toolbar, + + + +Picture of toolbars dialog + + + + + + + + make sure File + <&koffice;> is displayed in the top combo box. + + + +Click on one of the items in the left hand pane. This item will now be +highlighted showing that it has been selected. + + + +Next click on the Right arrow button to place it in +the right pane. + + + +Click on Apply and then +click on OK + + + + +The new Item should be in the toolbar. + + + + + + + + + + +Credits and License + + +&kchart; + + +Program copyright 1998-2005 the &kchart; Team + + +Original Authors: + + +&Matthias.Kalle.Dalheimer; &Matthias.Kalle.Dalheimer.mail; + +Torben Weis weis@kde.org + + + +Contributors: + + +Laurent Montel lmontel@mandrakesoft.com + +Karl-Heinz Zimmer khz@kde.org + +Inge Wallin inge@lysator.liu.se + + + + +Documentation copyright 2002 &Jonathan.Drews; &Jonathan.Drews.mail; + + +Documentation copyright 2005 Raphael Langerhorst +raphael.langerhorst@kdemail.net + + + +&underFDL; +&underGPL; + + + +&documentation.index; + + + + diff --git a/doc/kchart/kchart-config1.png b/doc/kchart/kchart-config1.png new file mode 100644 index 0000000000000000000000000000000000000000..5aeb06ad6d8a84a9f41c7ff0c8564c864ed9894f GIT binary patch literal 6879 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 E0o^nNUH||9 literal 0 HcmV?d00001 diff --git a/doc/kchart/kchart-config2.png b/doc/kchart/kchart-config2.png new file mode 100644 index 0000000000000000000000000000000000000000..9fec6cfd23b79bc0ce6a5385a508baac74df3bf1 GIT binary patch literal 10779 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 literal 0 HcmV?d00001 diff --git a/doc/kchart/kchart-config3.png b/doc/kchart/kchart-config3.png new file mode 100644 index 0000000000000000000000000000000000000000..cd52c606b95a794ae3073d6431a879280ea18bc1 GIT binary patch literal 7417 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�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 literal 0 HcmV?d00001 diff --git a/doc/kchart/kchart-config5.png b/doc/kchart/kchart-config5.png new file mode 100644 index 0000000000000000000000000000000000000000..1fe1cf1f354681359b082cb7e916603f3223b992 GIT binary patch literal 9827 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 literal 0 HcmV?d00001 diff --git a/doc/kchart/kchart-config7.png b/doc/kchart/kchart-config7.png new file mode 100644 index 0000000000000000000000000000000000000000..9c9729458e648e1482f091072dc445321dc4e34b GIT binary patch literal 7291 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 DshXWD literal 0 HcmV?d00001 diff --git a/doc/kchart/kchart-config8.png b/doc/kchart/kchart-config8.png new file mode 100644 index 0000000000000000000000000000000000000000..51d43a8a3b1c67bd3a8058cab796cfd063680121 GIT binary patch literal 9545 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 literal 0 HcmV?d00001 diff --git a/doc/kchart/kchart-default.png b/doc/kchart/kchart-default.png new file mode 100644 index 0000000000000000000000000000000000000000..b8c751b8b91cd20a652725395d20f5fb2083500e GIT binary patch literal 13711 zcmcJ0XIN9))-C}7=?XyvDO-vJP?X*wg7g+Zj7n3aD7|+Cl)xsm4Fr(hOQ-_Un+g#L zO=>`zp!8lt=dQ5JIp;gyeV+U0>U@?fYtA*xDDQa3oXaqnjw&S!B@q!3jk?+ceIgDe!;@ru9(SCV$#0cjiUb%(K+7XQ)11)R=ngq-xxxV)VrQsBvf{ zP`*PW#-QP&(C`sOMQ5dlH&DA5Bt(CMqiWk5XJr)ZR{Xe*V7} zvg32Exif*`Gw#-7_TmGY^kcf;@svip6!*7CZtQ@l@I*xC{}d4D40P$3gmRmNstt6h z3J(SCsTp~dd$aID73Ye0bmV|_Y7<38r_aCxL#5c$TodFXCfq-%b0__QL{?y|ewSX+RaV$i$Y!|ZOTYfv}Wi1_N zQk$n0TBPJ(ASXX02Ack}K9X$^MF}ymCZZxD5E?|92cnB6p|d5SdPWQk|Ie~O4?&k; zB&50|mtYc?^fieL4gW_Weh8<4nXoH4vC6w~C_8efINnrqys2V;Px-lqrh&16j-#=b zkKOYKPs^A9=g2Tb%pWlcDG3?r8JU@x85uyyii*pRihrM&{vi)tS6iOc_dZ}A7yyJNia z6?Rt=RmgB|Z0?ZX;sRDhagH=l6B z3Vh>id3f;7IaEzfnH<_#8&(LLg6-6}N`oouJx-UK@$ydlY(89RP6v?^reSv^TDIO| z7Ll!br_y)(?zY@lb65TAEmOE_=6S{MlymXNy$QHMicq674i zcGlnC>6zI~2^YfY2Gm`TKhxNra^ecDF8g;jn%dQ~v2!n5Psx*v0EX91*8RiVH3tH$XCAHZ z2Vf>J0&k3V<_DMx!B54&|N_B{Ets`@}oQ9W=+RsJLYE7PCL{2T;J6-MO_xf@^W%p9Il$=S;8fq;D~|B z<47l;t2Yf(GMJ!;-pe(t5QV;}yDJYSZe=Ta8+K07O$D5vdQP8aY_#BTo?Ek+Pw>I3 zl>4H=9A{drIjcGWrO>dVNM%I!)Gq(cVOBOs`7*R~LU#?4bPNdXb&18svCWjPE@D99 z;HMjyRDoJSe%HKxXTEInd-Nd8e5TWc8KO~jD0Fi;Rf!Zvo9ECK6x*V`#>>nXigJW! zHDz1$9dDcuj$*>ClNHqNd-Jd%J_}IID6}5E#e7A!?me@@3G90b(#*x1^nY82Uq;V2 z#ji0WnQlEg62F70t;91Nn~YsdCHH|FDxhJ+(|LE~TcHy$pB$~HPd&~TdGFluosu0L z7;t%p??aViGDv2rwi368qiH{gwr+DN7D?8_9)hiE(H*==1Z~|FcqPAk#$*-|9c5fE zd^J)1`+qNz-1oR_;fzJlGFQxc;oUd8}-8jk>Y#7)rLm3-dRZri{N$k_AqLDW z(g)jSSM^oZg<`PsCqPl;U-2)@$Rlpe&%ph!&uRt!|U47&`Xyy;GE*^|8SbbML&R=W!% zmVPVosMR5N*JP+~_}q7Q!{ApIRcn{X?EC6lA3PU@1i3aqVjQjtT0cgfKC0TM<#F7A-W(_9sg4OzSyiIQp^+6ew|%&gKPWpO5gauhdNNyV6l(dZ zDW~ewWdHDQEFI3i);Uw2W0)7E&956h~jA`X$N0bzqy(W>F>`j^O#g_n>cjD zD5pQy2SNOIY}fr&U`H%*Iyq?{cJElT;3l$_)FSUcu~DxZ-{+k$$#xbkskir;cF%XW z(K+ozhxVK~Ed?I=`)?G|y*&TaaQs3ElDxqfJ=!gzRU)I(sp!l-w-+55rN>Gk_3|>$ zoN~C59qB$FzrAm^ zoqC`1vPA+dFL^UT>1u0wB;DtD54}qo`8i*u0(|xx{Tilu)&Fp1=D|F_2dd%Fp}Y2gZEzp6;RBhB=YE12rX z)z3ndH^)Ji9yR;ta(kPOzYWtWM~%p%qz@$iu$kUN+DHf|-g=Z)+9EEuwts0aq5E)f z3u_f_J;@%;n`=_J<)}7|k&swe^OTvCR=_M6Z6Et7pE)PCpTh;w0SuWErE!{0F9ya_$0jB4s4X z^_nhLokL;J*h8hjZJ$r+nv@z|QnxY>v~#)F#jXh&C-3xn4O_WwOiiNErv}M26{2w_ z^Vd=i17%)v-=sG=eXYWTRH*jS4ibK!--?e9+4jFJ?qvBaGr+hu57J821ajpg!M^=* z3G!X9{G~i<6Fb;${CR_tXw=Nfvo36+{5cHb7HCfjX~;2UhRnq0239T( zOx}OeAX6I~F`3fUI@$OE>@cYiA2gfHf;AbbGz*&5%bZAN8A;5P48t@v!2Hk{8zqXR zHP2U>e&wPl&EBTBX>K>R`0>d?ulN!LDR`q1D9sPx%*99_%d7|Ht{NZYEX#$_n>)Ui z#4iOdH*n3q$f!VpYmqAc@^Nf;hr>7#X?HUhqkJqggLC@dO>eXoyy7cwrw?Zb2cqRm*S!z@7^DCUp(md3jz~11R*;E8g@+=J=gr$qm zuld#cwHyo<=*Dq|J@}mQ_S4)>L4q7ieCHSeW1npKxt*7K8B*3cUQgND=szx2EXWS? zXf88eqDzYOk!vYg^`68ZyJk)JHi*tOCVCaMuZTQRvX)Z0$rIrd7R)ZFt$WNXrrPFf z9)|Fx*du~MpZKgFF5tz*#ci@6GPb7W!gYBOKGilt6PkA$%Xdi@ENt0Pd!2dEXCAlq zA6_=vzI!TlS&EQRc%bG8n zZl}mGZTA~md6l1`rQoEiPz%o0^=nKWIpdTw%uXbVr7q)u1t-T&OS}+Xc7GBi-16ZA3a8if z$&FZk`r&$bLcNaQX$(&9_s&ANaQ^(O&vJZcuaKadIl_k=WS4A%o|5WBK)=C+rN9A;!n;xS7*nu=5U`SE>PZi z-}mOCH+pyXpkMjiNZZrsZzTRsqji*^pOmy!Pd;&^-25A`?Oq0J5OlA|ODRk9v$EKAu3f1<0P3Y?O!MxSe(5RP* zJ$zkY-$4h*u&#}Z$$u586xbY z*)Mh#OjmW&^3}i`{Pl;v1y?-YY$TpD^<*o0p|>*WN|j#u2K*6NfW$m}->W?obO&YD zkzhVEI;*JEwsZIO=E}6+=x&yWY5;a6vPcKzT58oK1^?G>nsFX7aaiow2;W;^!wJ$_F|~>a`e?L{ z%akcBS2r~9YqScl>D&q)^@Et>yB4;4J~SMY4}sM_QSiAB3DAcL2HdS#e6^J^e=^=& z!O^Q4&sH9?K#H0^Q4vMue=&yOiI=?_mxDCq!HJ_BzKaxyiRr0kU(dzDKzgm0+`o7C z@F_IjUmZg$w8`kzJzm}E>1!l!Z%OoU?k!A&m9bxzGuGGP5)95(k*qJVc=ns)yF)Yi zj}&~*hXjtXC%Yv525$zF^~#&WecNUqKb4X_%$j{LwuANNv0R=q38=}MX!hJGB*UKh z;!j+sj?@3})n{GOrD2nzAENf@WDpS%dGTEfdE*xKHN08NL`IdQ^^j%|J-sS?R*joR zd11Kgn-?WAQA*+Bz7_%dB+l9TR~wo>QehIq5W@uZZF$J%EKKKbS9Ev%m;E2VP2XnFUB zzq_e_Ia0FhQD}A3)E7A^g-5Knj;(}gls`F128^8=O&94Tj!u#d^|HOn+%pdC~H~ z+$D!ew!ZXKg4bdv$Mg$K-cN8RzwBeI znH>1=9=@X?Bt!+^&h%0P`BLt9)3eH^+Nw+I6H|foCWlk*$3|;6y4Jybb$WsWJuNm|vv_Hy+dCeb$AVSPMSJViZO%sh^0;>5S zQ|jf=+8VP!)kHPP|165TZlnbZ?<32Ft_9OC^$pBvRxJy#k;5$F*L_H>WbAq2fr`#hp||vngYLPn z_^821667_k=d?Za2_;#a;9T_|Gn<~%{ebE~qRH!uWd$-fPf3 z9r6}&n!iF=y|k3v-KSyj(+}47_dkFTvmRuquj+hF6p$!qRV!Rq%pXc7!24{(c_s}U zci50_2CF_a`SSjp<;C~jwZ%MUSLbC+X%lK***iQ<4VoRUwtNBc=+_?b4+bX22+&r` z*OyQl967Q_e*T74C(avo6IV3)%&$>)K)`VH>~5-`fiq-AHG}-c7)Bty<#%UQ=d+CZ zk4skG`iCE+mL^ER$f_1e6JEv;&M3Xl{o@&36~n`GFS+T%%lAUezraRR*lH4jDLIGQ zR)7w}W_QybvS@_v-eWmD*-^zi2AmxZ_u+EZTM9cr`Bena>q=na8zo726Wr+gXHrhpk3Dmmxt z)Q}^IDpOh3kfaJuDs)$SU+xwnU|~(aP1mqDV6N7r$&*lDcRp`5O$q?{zZLg zXkI|C?oAYyhVE{3HIs#15}=9kX+4cV{rV_+v#4tpNhWsz+fEe7mdqqV*k6S}pBr7G zgpFR~D_hUHC)?d|#Lk|d17l?)h1i8dL6qa1Fn%&b@t6TCOe3&ztaywBuo7-mWVl<0 zIpE@%@07yIRo1)99M~=#Wn<DSpmEgW>S2p#d@BaMP)qRLz9d``V?m+f8? z6uj>Y?GKujbKX9xE{2zzu3V2UQSmQxnz)Ws9c%rbc+LkXV=C)`bnXo^Q|*EmF6N^S z_#|UruLgS$kCBXv>h&x)4S3aIwn^raQxbG(x;Fjx2^f$mz7a@$a1O@0{w|+Oa(3C= zQ(2yNp93|uBALd=1M`wA2b|UCmLqy9Mu~5h&`XsW!eVR{7UB)&Fn$@aH0=hTwT9EG z9VVZ?v3RAU;x#Ka&ZKRE+3II1b z3LW4%ol$h;XKIkKi|SitxWzWNs~zx6R7}j|$RHCo5fx}2=TlYhw7-g&aww-j{rG)y zBsn=*@Dy0DL+Gl{-h94w%~v7hSZicK%B%+^xatKM0L(_yq^Q|(VsI~@;Is_6l0iLA zWBvHqMFMED!mG#ubdW&JRm5?!VFNUzWu#^5ljSg=yo2FYuB&BMy3WuU7iBOxIP?7- z;=E*nj#bO#v{bVsr2&Ma{YU>n#NZm`OeZnl8f9eh9f)N^vK)YX6BIc1*QxbUHnKW| zH;^FIS4=p%hFVWsT^{N^L(X?ZPh9he{p z!>X}*HauQz6heS5&ySm%RZ17uK}vYB=YD^;Diccu9S`uD37*Q!beO(NZofKX6H(Xr-^YDYc-FX}+l|?wxxb*Ht1F+^03hmDw9da9B z@HQ!pM=vc~@JpuIEs(&+hTNV&qRXcEXqDxV8`(KS&z%SE?r_!MG{C&4;tFW;vVka0 z)eVIxrnlK?(NQl@4g5NNof7eZ*$cmNih}8*a$^r==*3!ci>z#bhtv#34z#v6D%$-$*JoH-upA<7n z4P&qcqBMvSR#Ym<#{0-I+%qE8Z}%!JP(KZmBway|L^EU(WMeuiE?Iyl>Divd&D-!`KK}_V4W5?0Vm^M;xHf@ia@rD zd}ywDQvvX2<>kdoO;?ch3y40dSvkL2qqfJa0SJS2XSMq=Z~_nyyubiKyEbo6w^|Zm zetz|<6iVZQ1y+(|T9liceI8z&t4`PQPhMgTB1W+hS&G1`64QE;jzkBgh)E%Pw3c!3 zD$iOT;XTU&R|}hl?`e@`?PJr}^N*O!hm%8YDUHegg|0Wp#ent$z|!`n^dfS|=ekoq zWr8P0e_}J*0kj1n)oL38_OiFp9@46W<@u1WVp*e>2x9`vzOQ$dTi^-+GJv%}B~-}d zXQ~_!fZYA}@38@N2H*&Q03JcM4CfFXsSI3%mwqXRsao@fjO)@y_t?w_5&^9_m*C(EI%BLEW0?)F^d6p~PGd38d#+}zxLInuA%e#Ut>UzEZW;Pc;U2fKVlsAc~ z4rK-;Sx2NH`%0!*c&Yi>`E1c212GYUz>3^ZvXK6n^@j>ea@MUyzrHwufdy$y9qU=G zEg0zd1OzA{TzcehkpDRY_iUN9T-?^&@I%d{$AlTg9zXgqvwKxz!+Yr|C3bJdlCXYn zrbNj^dDM9>SKLp%3xU7{Q{CNYtz6u8E|gl=5*j*eQce}%G)k5tEG1k?Q0_OqZMu2a zBvCQ8`Dg49C?6|(ujRmp^6;7Gz@mPTc6b;W=zRD31PHue1~K>hNaxiX1@8&c=2cD~ zP?K`OVusuRU7Wqzw?7`};I*$QO|$CTyw}#Y7vLN={L2YG9`orFS7@Wx&uf6#%`frn zJ^JypBb3)m;2tc{oSMhqIm}W}5CqPAr`WGvfnHMN+RwT~u&-u2E$xLSW=Yq}1YMho z=jX3H`9sd0V1{nlNy)u2YJFVoLvDF}U-RSE{GN3c3$-tVBUy+;5^{C6X)}+IN+6L05*ENPR7or!A=!~6_Gs5r-$vPJ~THPa^0@}(3YS7 z^LpNG9e$89PMx$y*@RbyM1!m?*XMDD+d9x(8chWD=N)kjKhm*b#ojV?>ekX`TAp!7 zS$ke!Qi5YRnT`z$Wx@N$rl~OuU0K(qDtwGYUG%$PkK)$$Z{S)_wvQt3nDwMrh4v`0 zNb8YFmHN3U@p7mqq|4bY{<1||^|41a*hNJR@if;ZH;ZAIWh&}&uFF*HC)QNNeP4qt z53jOiXBeMve@`g4qC?%0uDFH_W6-QsX5ba0Qf^K@MFb?;h0=MRtsjY%S(%;9x}`q+ zar>%2FXPxX_f)@A_fjRjGOK_r8TXqBpLE6vZPsVC(jHS_hQbiz+32{Zh-}lIvl4A@ zf%n@5I|4xc{A_pHz~zw$OKOdNO%9mrw>6$NQO&PFt?e?yy`J^m$Vz*48#~j@4yH zeP?BlN|(ePch2PBI+n6@X!w-hR5g68nVSoF>-NR+Pp zg*#TQxYq!D+C8In)Au+gUuTPlfdZ6QlcmRqZhA$+E$TM25dwm+x zY~;P=EKu+s2>qK*j5KscARc#pi;cso41bS(;|)YrDp(!xsm1$xI#o<*++qli+Q`9G z09s5S*x}W+N$b8enQ{9Cn|;8ducC&Gf^<`Vlzs$$FoVmi=)jq%OUgi)p@d-x2~9|7 zv5VK^@3R};(v)nLs_p>F060ddrLwdidTy)zb=#})^zqvdTh+hh9TdiXD;KDhNVtkz zs5@QsJ2IGiXTbp=92G28;xuUR_}3ZN)DI=gfx2B>rRXm+SI^E~amOFeb(ynLU-RBe zZwWqi8(&>5;ebHVq>xE-O&b5(o_7mdXRFM*2C_@EcH)|wjbW@5-go5qG|pT0xEoEO zXc~xz<@o~24le%0@~n6lhn~}4-mi|$Y|rWU;_HCeuD79ekD{b?XzpOOwBZ&m;>Feh zB7Q%Fd(Udn9e3nq?GA_B5U_SfFYlh(eyIU7>rB*ly;*^ngVA@aPr{hqR^C#lLH7~( zWzJhSu(XDuCn_*@NT~B=)vD~QwnemFJB}H`!=6(@#v8>qD9_44S8{Cyva%j9e!v;v zAPoQ*HWPBy=+(<1LKdgeoSP%qgL?&8sg>q-7wx9jke#*nM`uO&Qv z?#I^w>{>;9kJ8NQ^IrC{op8+uQ6V{PRmHZ=Rf(y^#Zwh8EhPWKb-_R;`CGuY{~!}w zj)|*yhM{ZbMVB!V9R%9hsD>Zis)*U&5_9I}ST(tELqxm1aky4Iu=5bRBANwd2d@m9iYu9fAX*l0!Mqyc*nEy5u;M z6tDW4ZI5nNyyysx)&&Rryap(52Zr+G2vN~VXMMW*MamTO!Xg!rb#_$l9Rp${Bsx6Il@eYIGc3b5~aaE(u zkEKy>2;|J&H=^=2KaFMSND8r`| zI~13nnX(@|rd6jR`1`L?`%c2YKv2xQC&or#fsVMbHozk&0V4Zn4T>M2^T~pu<{TOX zl;{rwi1k9x$0Q{}H6dR9$@EDf!_;}Hj-*q+gfu*Cq@Ujsi-s9$Yx6Ey7;%hlqnD^T zMwfvrdtFg}eizul8*;;7P+fQE30HA(j#_JX-?i5%c6pLZwTJ2o?}yoxj|^U;$jhLr zF=u~d47JuZNF!;%ZMDR{Q5oH=fr(i;76tiT9w`1d0PRl!xV`JP9#7_?6uP^n@aM0= z?}3~*ni%UE?|an7Q((Ugxea?oWUu7X!`#vy5+i|Rz%IN&$A%2KZWN@Xl&r3v!HE1T zTPP^XT$H(p!;FF18@a^e*)4G_LFOlqp3TwlTl%nBzOZS4>BculaoRJ1)d$>xz)ZNF z)iZt0XD%xBx55^g51X{Qd6p(vY$&GKLoX^*M%oIbAP zU;!$&Sp-N*gi z8{t{XTl0fQ&+uV!9W2Y=7;Pk^r;ZIZp zQ_ZBoAS1$jj3n`%tX=1j8)L@lo#T(np`pb9m9&?AXU5^E+YAx;-T-E0%e_d+q_)*1oVouV{;x76Ehd$Phnto4-)ocT}$)$RG{?@D1WSx%-ezrg+^Q(dhY0Z6gFEzII=EpeBv9DR8=07zqqBS+GNw8(_Nq5(Es zbMd~AkHGsMe?|Zo8I4bX^QbZq#PES?Z;Dd3v?iJK0(>e7KT~%ifhtGRkpKc4Cq_}W z{PBh z>yVoY9f3Ef&~*>F%^M6FwteygkZdWeNzkwoz^ESGWy-(=Pw-LkS1YAV$9dDIaoyMV_M8t z3Yett=&zG!TmZ!%`IF*zekbgKLb%>vWTXvjn9(rI-xmrtgvnj5e+LLa3`!6Li7AI6 znZ`^Y4i_J!FG;|JKyzA5cUT^*JM}Rorkeubu5`tOsyC?Gf^f5=`^}ONlTV^5s~Mk$MCoHUlr;gebv}@v^WW+OW)l+H zB_eC=hIlF_Yy6pqzJ!@w@bxKK2$1gP17<%;-~|6|3epu<*Zs{lKx|2PH$u(^L6;~htcB>j?iFjiPBEjLa>OWS(0 zPD{IE$ZhTor(6s!&&8eK0#|R?kxCZf78PfDfe~afVjEv%K!kIR2cRm z>JkG{7Z8Bu+iW1~w$qWuqezi03@cfHu>%PQneyS4Wxl~bjUD*REf??(C>jf&k4$|` zLoo3`{YXMcJbYTYyZT&-H$&sXvJG*1Ks*}xBCF>E_Px5H@vzqaKg?Fa3%zZ>~9ay z$G}8)`n^#vV*Lrqqs&Q)cDUF@2P}pt?_P2}`w_mB_ks}bIt+EQ4|xtb+q~49Is!Dp z5;VCA>{N7@10+XF8?Qy^DY8b8RF(X~f{?FN^`b9gMCLoTf8`$_WN#tdMqb+TU$FrI z$MT%q`5Xfq>i-WmtC18M%9BROZGr6@@7mLw3j73$i7+YGPX!z0XyEv26lugUsbWuI z1~Jx+O&CVshT4ZFd>DJ@;bAA|Y8uR_dW=|+_z0)K&`X1%GQG4|t&BBcCit(Vsi*FF z;986!ybUuf3TEJ)w|&@b5M$r(WH3~s*UWCcZM3gAajd^7tYIvz^FrtX)^44pq1** zH}FD&IwBLcC6Dnn|P|dq8lx4XgfI$U&Kf@sc{io#tdmQ{5_8GB^=#6zK`x zd2L>)QspUpm{)puKLo~oY9<@fSHp;5R+uDfWz*BU* zUbgV%j}(6Bv>uP0rOt53v2H{yYw$UQ7ng;E7e9eWlbGhEeg^hgW@;W=7(B#Xv`n6j zNOx%akCu86<+ST1dTVJBH5l_0b4u)dx_vlO#H%4PV@=KnUPmCh+s1HgKl0lrNdN=>{B&5l%WTPHx%m-@F6~zBrr*u=k(OAA!$p zp?tAFe$QEXskGm<>@%4#yIfiKG?;$bAuWY%<0-^Ha{r-&rF~5uf$P1j&s8d zEZ%>$CmCpd&AMuPtGk6Bw|I2gPkH9@-NL!D%3jdR_Ps{9%&E?^rqZXl)TR+G5axqI zVXNDl*K@TMr94?BdVJO9Jf5LzJw~+SDQMjr2Ce8XU-;`3C7z`E9a-u(&~sB^$YNl#Pfj zIA{{(eGvP8=QX*v{76}Ua8udY)eOO+0DBHpY`77JV@CPN>$M?!rP1$UFT@{NaRv;+>PlFWIXvqH2 z+CLvi0~!TBTm6?hFDm~2dK&ni^+wive!_>;|Fg~i+auWJKVN)EjMXd$zRcdyC!@UC tew!Z^z#aTaYL+ literal 0 HcmV?d00001 diff --git a/doc/kchart/kchart-example1-1.png b/doc/kchart/kchart-example1-1.png new file mode 100644 index 0000000000000000000000000000000000000000..9efa5708f00484ae8ed10805ae08742238d96801 GIT binary patch literal 8638 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 literal 0 HcmV?d00001 diff --git a/doc/kchart/kchart-example1-4.png b/doc/kchart/kchart-example1-4.png new file mode 100644 index 0000000000000000000000000000000000000000..6e144ee0985eddf9016e0f39cedfdf0cbd364d73 GIT binary patch literal 10943 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 ZWFNi(Ns_GJ-~SC&Rn$-@mwO)czW|VpV=@2$ literal 0 HcmV?d00001 diff --git a/doc/kchart/kchart-example1-5.png b/doc/kchart/kchart-example1-5.png new file mode 100644 index 0000000000000000000000000000000000000000..c15585b49affa78c278ca5eac319519c27cd34f4 GIT binary patch literal 8262 zcmdT}XIN89w+0bGdJ`1{lp-Qcx)7>#kkApS(xi7V1VohH5fD%z^j-y|H<1#0uPKDy zNs!*T!E?@c{O+&&_fFm?&)$1x)~vN=t(kZB4$}ZC644Ri;NXxdE6Hi$;9LXX;NVsf z;$fdWGUzbE!NJ4Pc&;Ol`KMg|Q7$eof8*jmtuia_+a_?aP#PB z2m28F^pA4Y<~I%w4-XCw4)^yDc6Ro$`1R}HH?S9fWBb=W<_ZT}JBMp~NAvr~6FbL4 zn1g}M-LZ{r_|`8pX8TGzGzN{vY;K`9Hn%o5vA@;L^_h*;(Y007%F5dE%Er?2=HeAL z7M8GBpI^jcZGK^GZeewH9*Y&!92Uznv&%@-5)!qDoLNL57vRWw7-9|vpPPowPEDgG zr)MUnXU3*bL`r-nx-yN0J4hNhu? z!`*#Dy?ujyeFK97-J?UzgFOu$9c}IHZP?P%($d`A($v`0P~T8pRb5e9R$Y_@E%EKo zHS0_>s!K30h_U$+>J}dOHYgwK;B?5ZI19|~i`1b((y8$1%03V=Y@3H6<_3IGz zYZrajChFTJ^0rODt4#>pB<5W&<5LBAQz7J0A?W%|z_t8|VHSCO0svFy5^n3NLerK0F1eHrCk?khOoS9E%y;K(d*&o22&K;B3JXrig7 zucxbLuBRDfr1Z^NyxaOoqcKOG7E6pQqrDL0OaA+6ob-}+$)8XXvoO%yxy4LM$w5F& zcaxCf<_!V@JUm=nEO2pgaGuQpMzJY@=b;7E#=y{)CFKP;IQMpyy7laap0x2Nf;%8Z{*sVinn$^9qxeb`UVC_~SQLGvAzqh2l!GE~NxL zb{?lq^BRihFit9V*N>qzk0_pnQ!j{3mD5i>U6Z%I7RFG$G{2eNThcV?@k?SOfR@`y4{Zt;5?THEjUW4l}QDF zOFZeFE_5TFliJC^-8I!rGz4S`k`x|7dCpn5a1Mb=d%NnI12-N~qW2o%CPTPjr<*?$ z(zRHP^6K4H%se99wt@x*22fGtkZYpqH0)HRSzYK9ojdN!D=V0-)u(QYp&KX4Q7?!R z5$AG~%F1GQ2UPKcX%)nhR?fSI6yvfx$Qi{ru7^`mS;l@yYP+jc8_nF{{>&`0Fdp>- zag5~c1m>Taxz4>x((zJ>6KDT9t7}KRFd%Nbx{DhF9fFOf9u`rvfA4wpK!#Q`<>Q?~ zY86PfdA`p}-W&R$X$U#ZXFw2v6)2VQRC;N0gm-X1WuHVz%el3N+;=;~pUvaoNIH&4 zuX5Ip*5It*{Pb{2D!oCB_~I7@e40fWiJ^Vlpcbcp-%jO_Df_3u_Z?56&=rfELB5h( zU5uIR2ncy3n&j^KryMP8Mu62n)N7;Q>^#G`)OW@`Qo8}N z0e-RQ>}%puf!dvUza#J98Bdy%Hc^f4XL@+c`w>`MJf+1F7?Lq%rQZJkJ~RM zF>dep{ihXhOHIjpT0sSM^2!WD=W?Ty&B#wEUgfm?UT*O*kwJdjP|=b8YeQ_Pj2nNC zMZ=y?61O}6M?l&_s^TWQcU(Me806oq)b@Q5fSLf@(Yq{)Q_zy4bEv3?-r5BV_nM*4 zS2Y?ioNUD35n_p{9%7EE`WW@J`MSfA&-LfdoYo!A^9w^)wvUdt2EYJ4BD!#+3dY}P@`X$C%0 zHA``mP3^B4PUg2BRRExOpant;lVzq%iI|rbZBU(hB3jgWyEPsn2*qV+xAOYlhLM(+ zfsO0;tqW&~tu>MQ-O}@D*%8!eCv?#dWxKa`$3I2u3U}Bjy?R64#zNf<* z@37ucXnimGp4AX|1+h0ZRdt@miN2=`UP*y2h=NYCp`*T^npbJh%aR=#BvwS(t5eX*@&tx-=HK3$= z=pT1PkaL+Bi3@J?Im&ZBg0}g0`HJo9-M8P9M^v78AwPy^0C`WYvQ5PDB!t(Lv97+Q zpulzqmQXgMblU;AvzMZx%K1_6#DpY|cTOyPc7WbFMd~v0=W)>*pcS+v${|tmLu3GQ zd83Ba`7n@Uc=yfEtJt3WQPK^UP?!N`qN^rn$v*Q|0Lq%fF)Z&{!TY)$5NcYSxP|Ko zTo-~L3^*Vh1nz92o3*nl?NoA>)}}4ZltsB)rjtO`5dc0>Q(qrlM6_gQ0Hqy zrMaVds6|br(d1MmXt&t4h4-e zl@u6Ie;)~Ap)hf#g>NdkosLLHR>z`gfCJIuugb?zgeMJCdg-cVtUN6_LoHgBfx5Tz zgWlezrlUhlQ-R(-S76@BtbTf?E9n!*k`V>|X+0M`nmFMGN*zaXj;N772eLX#7n-*Wkq#`A`W+FJ>bly9hDj5i61lX*4eS z8eHW+PDo0MrlB7wPy)C@Ez^^13>SY0(o;Ye`+3a0HRZF;%u_#IN_xfXUl8I$E8E zsKv0hKr=ujAx|{uL@`HtBL(s^`VxvYL|j4MY#G|&hqunri#|VgG^9E8ONNGKfd%h? zDy`}W`2J_C5tbT^6c~14UcRP$EmNPcHg&v-Q$Mls(tXlqll46)le=?Le@vU0cf_^1Zg{Ra%ETeO=w{NwpDnbrv!p%2*Uh_}o z=um)79i^x3>MbFwI(BDzMT4(BkJMt?VHleOdNMQC5r}9mebce{?zkY_!0b4~M0rwA zJ6RBvZV=uJhW97{%YUJ4ELWozLze~2zX-aT^`nhUR?KIJe`vC0dr$CfKpbUdWFag7K(Ucq^05zsh%`sX6ei$ z3}wCv_U-0hs%}SD5J1%RV%8HpwoZKf>1Ik32Fywb6GKU(&^mVpl>x44#?6w=9U<>u zD6~8ZNvkT!aqL-Z)aD_PDd}bM>$7cvz4xa1SKT^5kq7AUqwHs9d36ALFY1XgA-I7i zrGw8p9g+}MrHkj}SR(1-aw=(>G?HLbGEKYDw@oH=wxLZBY%6bH(m1&5JYd%BBX~r) zu~J~0D>PGG__}2+R=+Dxf%gtpb$-}N@$7Q|#58wJmJ9yXcARq!rqeJRJ?Ea-0pJuC ztk<@Enn$$N-qaLRPQ76GR=V?)QGls=m@#LyEdNkSay)k*B33(oD_m-MrnICqVn=hY z>M1twD8(LOD%S@dk3*^wuJIu>;T)I3N-w_V;RR$@xS8u23e8TuSW=fLF4~#@t#o?K zp8JQvwESWZ{53y8wV-T#i~OPPu=dhQWa`4DZ{w$_iU5b$sVwtFwu=H4piTnr0$y9&f#CaxfkVP z-Bc?Q4A`jYwh3tFCPO=hQFE>y48N=E7LTU6TmH~+7pOLsQ;=L)0$1c^<7Y+7bw1>V z^qnXOhq+kCUv*8ki)%BEXIyRUCW=dB8Mo?%h{aReq>??JjE|jD{k@abG9wsVF;4EF z>M^#E1|CCJ*X*rnH)|hS-p3MGn^)&8DOy`WG0HYb=2rLIOe%NW(~)TGcFPiRJ0bP2 z?e+${d98K@izot6Ay1_UOW+2*vHF!cBJkS==xjTWJLnCY@(9DS8kM4*ZPx%V5uHJW zm*(2t-RmaBlbWsc`W3gVCL zxUpCb_|j*N=QhM}acTL@k~Kn&SpVs!+60z%#2ywuw=Bm+dC7sP-169Zc7YEorrzV< zSEoaC%hA%i*w@B~aS7kgLt;71e}+c?F*Xk9w>E#(1(Wq=-Jdg0rwA_y`%w4BqpqJ zI)wI-Xz^OGy9(N2#)vJD>OpeW9Q#>=dCxociJ&huab=d39kJv z$OckT-3ZiR-g#%>-QZAaRxhf*MKqi#c*FCqJG5p*YgPR$b*WzZ1=*zrou6&FyM8Il zXAm>8+(6q6YF9%2ER4eBq_Ct4x863XC{*ai7kBIERQpH6)=M8RE3G_&n&0+j1I}Hb zeUOTZPY4c9A0tAxXI`S#oRvYJ)G{X(mVP}S04R%d+Q*2vN3e2S2R%o;)HX?t11v28 zuv!HsVfP;FUe4<6sPiTp1$h-_D-| z`7FQoo8+<&sO>6T62E@^geWMO<_=V$tgTE(a1<7)asZ8yP7id#e?ah;fZYc=(+L+E zrf?8&PM&!^A0^5?9s9T*U`rf?sppNv)MHd`oj0Jdx2UOE5nQOZL%6!k=Em)Vy76y_>sU<1Yk$Wq{ zAl=HhW~;DN`nK8V)ElzQJZUX$Ys8*5SxFdcsk;g25h7)E7z--WOTBV=(zF{N5aJvInNt6FSPh&oOQ0Ep2!<;DCjs-?PVM9m(dU)eur|bU5JGg z;k?D1lM4YE{j)+$x$E^;;ZF~Aq? z>gI3DK`R%HSCu-d`h^kKsy<@O?RJQhq_o(k8B$}VQ@j@MTH5|_Fz1{0C9b{7n=vSZ z^JHPJS;;FQ@nih8$0A=q`r+YcMU?_uabsg;y{;h}ECy11fQrcVTO`9sgB>J0!9qRb9BhCs{1#i1C{^%@C1ZZ@lS8f3IzdSE3Qyq!d?8PBvfav1ne%}?R0AF!e$3H)t_RHs{985xiS3} z0ImRhAI+V1ITNm;B(Bu6fH`TOqg|kqyCSNe^J+Xi^x|tq5?xZ~NtKmvdf(1&iyzCU zfUT9=8(9YLNnS*_+ZN2F=Ad8CP`HYKpi^p`w2gqeF9a;>D_o+NK_AbUPgaUK#MmQi zdSh6F{6?3$tY7j>1rV1cdq0Sg=)9g3v_$HP~f9IHA}7;*7uD z^ZT{gUlfc4z3F(2k5fK$DNVUdb`gwEbph9_1>mp}{p&y6e+e=g=c@0^&r=84(P|MB zvp`62q+9^tu7)+ry`VxpKCks0IW|0l{;m)Junj46H!aivdkG#k#big1L&9ua*w4}8 zhrAnFIrF0ZkkfZ@VpizqSN&bAJA!oz#*i<6*{n|?zJ%TY@y`zQs1<1CG*r6zuItna zP?Dl8e?SOoKF`&P`Roz{j34a0-c46-DDel-XAQ}jL>9Bs_vd>g%NM1k>>oNslJbRN zh0FoVZ$@*HR>OQvrz0Y6!W|d|?e()7c4wC#J%0=4tB7+D&gyZb>gV$v((_wr>*ss$ zaCjE@5W&GW=S^T};G?QS$em2k4@(%kiKdaC-+pntNm-TM6krp zfR#CZ>fB8?J}o_ko}RA+z0WC;Vf@@t2e(Zzd2Fuz(Np`GwO&0Yo7;+CIuQ?tb79Bf zy9z@nRoQ!=$*M+|Ob~wM8SZHB)#EHTv_JQLfcdf-xp}|V0zp|kG13!y=mB-#;~z~hox`)W{m;d5IkL7 zOMBe}i%zErEQ41AKPB@MGM+fuTxti3^i=szjF7)tirsWcmZQgHM4W%ejG3l6-&Y|# z+0pIw0n0qkY=w~2R+<%Ir`l&@{lKKk8L2Xr>z+N3Jx5)SRr=@MEzR%?qWJ<_#!~Dm ze)lY&ISzuI!Tk>b@WbQ!$B+FT)s0!MkqoP|A#VB=Cd>h6AgrAUiS z7N^{dhw&5J8bgq^@zMEap5*bsi?z=M4+&NY9(dy|;+J^DRom1^*Sr)w-o3@0jD1HS zcT>hRx_h?oL5_{~Kk`(K3klK1W&9y`h=SXg_GwpvtOl7sASCtLmgd)oLstfPkPtQa z^SRb)%97WoHh$lO8<02UsIPUt7D05U0N7&kurJaR>D)sz(uaIrj2Wf_Vr{~%f%sRW zJ*}~lX~uJ+(Lk}RE01U=Rshu3(VraDA;!PcYz>4>Q}x{NZOCXGLjg-|d?$7mwz5wf z&<$FON2NY=*ly3e0#H*p6vTg=G^HItCK9;PZjFWYc+w--&wTi=7>$~@4tjC=Lg1H7 Z%j#A4XK7*@uwO%Ql;wePrO#gZ{|^Jk*7y4(d#~BEW@gQAX00z_n(B%qbR-}U=!&wEoHhvb2N(px zt0KY&-f$Xr7=u9gAkD{5?D*si4inR30LB4Kjg6y6$1nhfM=>L#=;09nlS9Lk zsNo6J(8S=-_#kR*U~sH|aI9?zQ#Ul-HH;b`ZJiuOjC`*|^|ki(_Vo1hb@%jlb>q;9 z{MOvu+|<xLEaek>d{|#~wzG%0!IFMhpXZ7(Oh00jaQIsn8**P?TiIpk(lXMDTZs zpnd?7fxVJ}J%2(Xuty@G8yxTr?B4}I!XGK=-y!i934Z%k{0$Cben}WgM1vFL@2H3Yg$nkMmeWD3QkOlj&~FtnG_tDZr;&%0KXvWp)>(x8kSQ;=V1)!b(fcPj*e1gq-sl2^AeB5!t0nf8gQc;o*^+V95bW z;Jaz7>tH9amQIuDAP}vuvYgD5R}(+rzV^44eUb5g=_+K>Up8 zpq$Lcx|@VjRf|pFb(>YsJFfL0=A#WyY`Qm-CzQ2=Wptq_Bk&NtyLEVyzPlX|0-a-7 zlah7Bivb@_`%RzLye4~yMc17-8A+eff@*iW?ydDXfxgmr!Kd*d{KBz4`s5DH=Zy<} zips`PXGe-(h$Gc*Ygn1{tP6)P^o58k^j}g9cq)B~{Eja1UHK7*>s|0eOD}KE)0WxU zS+hO0#;Z+xH$`LJZ^^%0Zg?EsoSmJ`a#O-(&aBS6zpz28&eo)Rd)MDtD)FgmJae4q z;sBvA+y1pn&-afrckARXbIDvwc_o<`Ry4^O2VQw(jF^>MvFv27c2$y~sf zA<9sdp(t5liOVo%dTf$H6tX`s%bj!eHW;ezAgDwf9=Z|uMe}{kd`85fA=J` z7&l9;>#JAEb-OE%Dyv)$Cz0S$trGWrL;xQ@ew(&JD zab8Q(uECskG77+L(wkUMjpsQJe78@(=fvDO*%FcM>KKG^Gm=hc{n7AK@so~dQN&GZ z@o9DkdAzAG0$d)@;VXiar7{G{C45KT=Gj)atI<&&XMZfyrqArtc@ZGD?Vuem6t~%PSr>5p6eGBojI-b(~z`GiBnElerSf5@BOo`@{cvzgw zU|H(RnJq7&Ku@W1AC-3>_3(hz_d(fM$#rV4BoN=9LV}|9s)Kdwu5GSE>~TL zzDCYq-)o|e=$9dd2O*}{7|!5ptr2bEVEfhqc`{OyQX&&B?4_Vb8!Ew_13!)iOB+OE z69NG>54V5r>GtgjP9HsSqxIrEiztSw0ci>X4pkw((V-Cw+-nJ;pM1z&D{e(+KamDwsxKV@YYrLV8!@2ADpSc z8p*fXf6$XMeSDMxHSYwYHvgF@p@g3;kVnsXe zfFeRRGYBWo^wI-^UJrpQl4<#hj-OQG1u<0JF`RXv$?W| zREta}ppV!hi$E+ZS^@mQGstKE<>##7U{Sw2MZ zadDdICQ+-EU3+hbERT})0IaL?l4n$E8o2+eJ@u&5uoerjLTMtw^9Z)Ncjipgtd-Wt z7Z&~v3cbVddvnJQ;%n_gb%|i3d)I2HNz3kJ%7fW&Q7s64S|g8DO3V=&h8NET^V5Sn zhUz-JsSgVs()hBf*V7^tucG3z3Ao^e*iK4Po%0XXRO@IfmNLKHL3$^>%wv~0Wt+Ww zj`97u<1G*YO@+{-)yXA}w#k7cZ&r|!q{Ub4L$2wkS}&YKvg>r%9bd`%D;X`p^eo&Xe(_*w#-B&#W91cAJDaVq zf2wT9xS{CO97MVugyXK8RVBFRZ-cm^D%#kQGUd{_Jrt-*;E61EJ|`GNR&sfqQ9c!1 zd^lIb_;EO(to=Jn!KQit)eQ;}-3LUm;p|!^yLXF?5GbLH(55HquJ4k%>$^hNOnbVa zN_XCg<|@Qb$rn^y=Qn71v_QC;+WaHY6*bi)KO&-T^v!6q)2SvI*6y|W<6KTUP&dDF zk=8SMq&6q1QemW7Xl<@#!{F#nwye0g$%n;-AF zG;7a;CqyVTc*rcJmQP~Bsuiye=R3*o?33SPL5ln=9avkKKBl_7s~&_X2$!`m(5eDb z$LPdZOn8M@j+y*oMY3YGX!^x=EtrXlr}`+DUY~s{zvUT1x8lm`DXS} zX21Lm`n>v#Q8&~(rFw4XVK>&Jx)-cAMBSQMRtu8MjGoMfEbEMjzJT$v?;q@JnX0Vc zTH$vQT#Y0XUfI)_thQp6 zf(w-XeHdfXtua^Ar;nbL5I7>NLUO3Z@e$_3+RynZBb=lV$%29M`IW=`Jg2=;Nx*W>!$Lo<#SfM zH#T7Nb_Ad6ZEUP$*O6V7Ocd1~>|4hxhtavF+7A;V9z{|yUw!(H$|z6MpHJ8A{VEbW zl2UaHXVpd*P}K~rzEZ$(#E0VnBb;@Azas3|t0^ro|3|rZa$6Eku`6z* zzV{h?!z5`!F$X(&r|sRx`>1+S>YHXnsj&83SFtGJK!f~p9IsDZ2UrYQFcAdnRT5Gj zg;~@aE0qrmEtutq_Xd6yEjUhm2qvamGRl5=-dZxA>2vY4Gi0oW zZ?vD4uA}()YzUrE7X*$P35^n-HF{xW-mO$k|AYbmM>O?@((ci+5Epg}tQpq@XLm_! zl6L3FaoqRRi)S;}Ip7RYB}<SMM$`^bhGm%YDXmI#BI3J?uuc9NOXPUUB%1_II%x;`x?WuZOZZdXswKWYc?w;T#?OzUL62 zOC*9d44I`2c-s8~sedHfKaT0o*H~QZ)0rdp^;=U{!OVFrbJ?}$g$L=!e9xkfk0Rco ztrB|*P3?H;d%g^`q9AbZNa#O$*-@m|ou^Rp&_v}^To3AplIycDaQ@v3AwzEu(65WL ze4nLY$%tA(Keb~&ia$v|VAbuYtXo|+uxm+*c<+~C_k-V$*X_<>=9`LF&oA2bUws<{ z1)=er3BS;Tpflv3F>vyF>7?~91<+71JwERk*@8ldn)J^O~>D-IFO>?Sb*e~#&O#{hI63lYYbtn<~EjR^Z zATV0?nZJv^b*eG@G_HPol6#gM%~!8?5dWO1gWhs#b-&~wx{V%Tv8LWS1RuMb`QjR& z7je-l!>Q^$U}vQB)IdohVRKjR%~e|iIMiAaad{Wm-&E+B z)P`TD746NTQiUeGSo+& zB{TkFP8ZSpMf2C(YmZ)u?vi)jo5t@-6CvmI7Hm@$GwPk2x85f0qH*lhj!3NO>9 zaxMe?Obp~`N%@aM182evW#IgbOHDxFf@2q)^r6MfsuF}@346K<32{tu3E{mlRA13E z45Zd`ET<}gJC+B!e+TW74F0Aq0|#>z5*{&f_ci!aU`4y>-3vY}sjsccoFT&nO78@M z`(7%V+|93zuk(sIFPrP(CYlA}rjqhdn<4)h?~D|oiDt;Fs;-^9HJs=V`21qF&va=l`*_f)(tI!x^ zq#BX?mymi_ON!@GABl`oJ~sg_?yYcd9r*P8ZeP})-|(Qrycw|;SfA=}la;Lt)%tZT zOh1=D^729J%r`DalwJpT_#g3(i2!PyorBc}{N*WHtfr^^k`HTNkwS-iA#5)q zXWH_9Vxn47z#TUs;Yh@1A0?Td0>5~APSlktl%jAUs(VxR)wnQC^N$?d8M}<+_`Y6j zEIVTUCiD|o?0u*;E$!Z=l7Y1+zIS9IKJ{$81;bpB4n(t-MI9K59Np3(IdsZ6DfITd zdKHr#w3=k;^4ry2qj3 zb^<$sXrR~|tzThk*em(&QLG1oCN@k4@ha$GC=E06x|cKKJA0{tto{!{qhH|)=r2I%=+X+b~&{?`0YVbE_`AQk^M@NZe@ zKT-k5(cgOh76$s_@7({VH~$dE5&O5IzlHxVci!Lr?*{z;*8U&s|Nq80n#ILOGZ3e#QQ>`3m1ffzEb~pr!K<2+tI#zda|8AKGAVv!>c5W&;hxN@1A|G z(@D%T@p<4klr%YF?~L@w7xzoyeZr8gc5;w=;u040^)hq=3VC)q;!{AYiSe{{JwtTJ zz6byZIWKSS=BT?uPNBO<7HZ~OXs$QlTi>DL2?T?ILn+Ta%=REXv+ger zwK+N=91Fi_1fysR>=@_bfa z?wh~d(`T&V#2TGerX$!jQtehbAtJJaU~6Z+ST^mh+RByk;&p9HwoJ?OYy;y(1~^zF z8%13l;fXTrqOuYUXCG(&=r(WW(@JR`cLjUBl|G4>uk;BI!nl2LEyFFP{HZHMM_#;f z{zhYxjq)GclcvS_`JtZNJ`tov~(UFpWmb{;L9;shJmBLsMXaT z)=jE4U`O)xzC#=lkPsAj3w+Z*ib{mM#U zf$Mb3!98xSo@J^oR==>6Pq2csEy(dp=I-6^rWK2EJu#UTTaW}L<1_H7#mr$7>Cn&FqG2pn7YC0trv7~>buW?iQ6Q_u2<+Nif%ujz@bsZ z6*F`1vw>h2HEmAXmn@`!h^`J>DCCZPz57+L&LS#pYBWt&;`IbKUda zM)tSj(CVSwLGWFg`6^cQkZ+aVJ$(!FY+-nwe7t>APTQ|KbEKW!e9I{`?7hDf^CK{R zM5VRUGXlOYT*%bN83cTw^QzFZFf2vE#A&TEx*`=QpE}mbPO;xkN$ZuQ8?SvTeM&O1 z!ZCI1mVT|byzEzDTP0bKA_q>NkLz|2Q!UZAD24GE;8ZhS#$lF@Li54f>5evXsL7_Y zW(C=;;_n#&lNhdPJ2I{DG(0#^ejm?vrG`$FmpY+2HC>U+Y4=S> z5f;s0IKK2(8cZtc+tP{H9UQyL=<7%87{4-N457CwTHvx@aYg(K$v+tXrV7l_j~8=` v;|5R)XuIGVApOfV*!pv7Q1|TFIlgG!4XRf&5%s|TG9YDnb-5DRXa4^Kn!(89 literal 0 HcmV?d00001 diff --git a/doc/kchart/kchart-example1-7.png b/doc/kchart/kchart-example1-7.png new file mode 100644 index 0000000000000000000000000000000000000000..3cbbba7f3f55a7b1c19f6729d9c0c4e5a4f88e3f GIT binary patch literal 11137 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 literal 0 HcmV?d00001 diff --git a/doc/kchart/kchart-example1-8.png b/doc/kchart/kchart-example1-8.png new file mode 100644 index 0000000000000000000000000000000000000000..c2f88cfe3c731d1fc246be9d0633f83cd02ff34d GIT binary patch literal 8169 zcma)h2UJr__b&=w1O){IRE#u{CZJS9=paP|6a=J8QF=E7L{NI~RUmXi?;s>psRB}x z&=CiOeTJRs7t_CT4j9yR@;ew2mWUaeV=|Hji7K$F1OSOUsK>D~n@`i_`PC#kqx*-Bya3zO4C%uiy7n484RPE8SkotVUqPtJ@_&W=ya zjGX~HHasT^my+mwrOIadK_0djBQ1u z&`8863O<7RJT%z%wSS=R>tOHKp`O0MFTDd@UwS(`yE-~L+S}V(ezm6N=BB15L_<>@ zqP4ufv!L!vQ6;>z?5vfRl#~}1H5R9LmPGWFczwxt>Cb(IPJKQZsW9dv-V>}+7p_+r z;gS>`5*r&I8T&CP92yjq6cQX479K-HctrGXgoQ^11&0L&h6Dr#2LuKMp5a#u2=M*z z!T+6Qtj(h&6M-QP2a9*dlNl8n2=_2_>GE%bh=l*D!RkjqergzFn!1OS!OXg|KU-h-X=yu)*@%_b>4zy$s$>;a1JpcNZ)9x zYvCsev{vgENl0!bt0>4mcc0vZdfL(HHg`|8C|&~cE9c`@$5la-CS z8W2sQ`r#hUV0=dh_aa`~lOSqc=HPS3UU>w?+i#MY2k0p;|#XuYywEP}yFm_tKF7fZHl+4x4(H@IBhmV?tb z$CFGJ!{TI<{X=P}=bveH zy}#3CBwjmH(LB#x)Vf73_*8)xJMO!W}m#v;C!2d+u&vV^b$;fp5bDW zk~9EtgV8^!g^nRYd(`L#1B2!{EY(x!4{xKeXs0cuxt8Xu{-=lPHgo%Er97wm3Urg< za96G5zPE+4KN_P(DRU#UGPs@x%6#B|agxt!%orVG;{mYes!)fntMebcvsI= z%Pk1}J&O0Ag|2XL7F_n79|&>*2=s85$KmGIhQvd017o!2Ij29CUkouL`lKAFE_?Nx z3aqQ8pptaNpMK?+d`zc<7%;Xs3Y#biu;@s}_`-z@)VuOX7V7-r-tt$mmWh*;xzu?7 zx58QK?*N~n!JAwuAalqaMLfn7FMJ_^>N({pXs>pI+S6mXA}7?YYpfclYhW!4IFfsj ztDFOXG!J9oytpGOS$F1A`ebTIJuPxNCK4q55d-f$Sc>$;4FnjZHRz3ed-8gYZzKRB zj|q45<|FF@^U1Zb9-Y$XfD+nR^WSuso|7s}`|dDw)qfwU?=zfLzZ;i5puvm{ouzi{ zjua1-V6MU|LMFwbRC%Xo5;7#8eTscC>$k=-(oCSH}17VltdH9k!sbe#+wK=7J ztF%{_J!fHItmUWGyEMt>>o=H~Z!lZtIXZ@izb~@g-dtH3KVYo$kOv-)p-M`A$V7|2 z1}`iyzc;63`%Yn9D%1NEa|p~tw6CA13>4>s_aapB?*wQXzkTlX*>%*!bPr^lNr#K&axhZDDi70ltuam$Z9?XH=W`g7huxhwa^=+Km3A3{#f3C5$MpEP{4nLzaRwswp7%WYk-?{Sw+6@jCS*i*E`QDF9SLl=Q+&sbfGD`Raw-~~5 zWQ3DSBSFt^KM)r&>#ZOR_&ld7e64?eIM>BbL{WD%WXa_k|a?*}k1RBerkQP>rg& zK+Bz0h#F~$RenJwbyUr{mrh!V_2Okx`C=S>@ffqm^@jb^zTKk-mbH_tG`ePkQYeuQ?h@(cDn*X}K>c0<&Kk+-yxpD3C@)ZJ_uwV>iB1}rgcA9!OS%peR2rF&8b zamG(8Uy-&j^Fu;KY&f&;c_>J6B^`J8>!<`J>uwtKF;&-U)}|@vpharj_ZkHpUu^DC zts`pPDgkX`HZ&~de92>btZE>64=O*KnZF3D)mc6JKxRRt%bNn^aY}lrg!1=1lz6Zz zCD)q^s+4a22{}KECU$p^UYmGJ^$ZR!>yc)s>@w_Jrr5Aw(Kd+lT-3DeGS!$_gc$cF zk|w2lq-k>}R5|)&)Y!3+Z2QNaeYmI&hf>hZrt;N^9oZD}WDO(kd-p8tFWqRsRq0pqrhtY^ zBk~I@V_#{GekfRKd?X>y6ThUXRI8x(zTkTrM6N9J%KW|Yan7WhL-H70-Y3coC*x->*tL?YU}}s!>$%dOfXk>gZr?VDz(DAuMI| zjUzX;x!-3f##}b2ef_H>Ll2bd?`SRHx2#kx&V>icF5I7}aBs7z4b&M-FQ2DspJ%jX zin!G}!nw&5Rb8Ka8xjg`csXU@^`~_2qUSW88Ge%WRqk^!PE;+q)d_H%4zthA?P!RS z!j+tR)~|gSiI>8C~J;o z)=2eov3vX89H8rfV^Wcw+=?kC7M2xTbYj#EwJ{m&NDRcDr4=u7`R*#wroF|V1~IaR z%_>SBFMz!>5bVy-nC0%$0JcBXgXrm36P!z?DYS>54XSC^zZSS;JX~z3Nh;etDysxL zf~htZiq}KpzT0k^ifB6!CdAQ+k2k$Jw;!t(PKI!)-j2CaG&v1y;ilfa&6C?+^<-+Aavl4)1neqT;slp zNE%2fFP^17@3+pKvpx554twI=;3Dr&cSfmtOE9JaDM)A)>Ke`Bgzn+|<>)l8+pZ?h z3=0JkiJ|M2q0K;F`Bh4RwGAKq?RV?v!J znkt&(+^*`bhAo;dTH)=YLhB_T4At=@UR`GZZ8lW9dWKfK-Rn1MT83_uDNjm8!3DsN zOfbwkkxK&u1;HS#PKRUshWbcyhcyKY%*8LeUjNsqOLH|yd>;S2vb!1NsVQ>TS^s=+ zAtsY+X*EnBfS6v@oZ|E8&z)PFLF9jqG8qR{xWu;*ZUslWvuM{0k2mw=a%h|XeMG8{ zKpAAMK0X*8Z@HHXyKu*$h3Sp?nB|SW#2L%}RA7gb3Q{7v^`}(rx}1TT$7h+l*+$9~ z5E9HeC-PPR354YDlmDy)_}wFO)UdE7F?XCP*DRB@FI67TpK`OHqOQ|$|B~U>c>~OE~@U_dyJq+$h8YF zXXQmD8UZ6QLN3f4s=9AZzPIF!9ymLRKV@nF)do%pFT1 zB*>}z6KLL!N=nHFx9(7pF{hpka?J1q@$!c8FNf@8b?hLRZb4=vkxE{m_dRk1!$`GHOInmP|;mnZReMl(5-vko3>GT5I zb<5)DZ~#5&%-IGO+i~vx#e566j+xRB^hjUohJG2FHtZ>^Ym5MX!L$%8EG^NCHr|+! zchmi*gC7n>mmcCR>OqG$+4eXvA)lcaXDqitcQu+#i4sl`LzNas-K-P@(vrf@TKYMW z6ZC$StiNj4Uy=Mfr0Ypz=OR}<-;hA&;rzn~IRd=O@v+l4qnGg4%Pwh~SbXn>Ig#T# zoQw+Ql<>r-@dp0q`)qVS)y5 zR#@GfbeDYntZww@A_m5&*Zdl7>}%PRXYgLHInHcwXZwip1mD@PiC-OuOS zN!qJ={^!TxWkgzZhz3ASGNXrTQYp8ZapC7U=7&xcQKH7gUn-<$E`z#WvXq`S=NK{a zH01oSe+og1Fc!WUraNhlpPJ~F61hR>))|aq|7VWNbQ4h^`TNnI@Uw`g^+JyzcHS9} zf;WpF$->Tp{y%#V#^?9z$M5%$R)ElvqcN=p6~-fa!~>WW9L1z;?jhI!AwktUVAN(}Xs0XR$&VXp-a%(Q*a|1w; zllnI5_M0$ku%+IEM@N!$eH*?Ybf0SZlEK9*p}~ObU1Z#FwFZY2w#H9BFE*vAC z{h3PxYm#sG+MzY>gZi3WTIs#}C6SNU)IF75mp{Z@cFT`Zs7F9vpA;EMspf5H%)xi& zWqlCnZSOk5&iM&|(8qOkrCe2E%K}gfZvrq{4zfZMgg}Ge4>Sg@4%L7VEk#JEN0mZ>+1MqjT)TCw3BpjD|k0>y+(%-L$A){CY3U zm_84UP96?HL#a304>4Hf85IlsOafz7Vf=tawE>N)&{B;CuBHcH1IkGDaK$z9Bqk+w z!_?28h$@e4`&TWA?%B?$Y_$-E43|!f^iqKNLb(IU3wk_idY@mHesRX7fAn!Qs4R-R z4l#5nC-_lLLug~g@5RC2>n2|5@mt#CG-C}yb&T9|XeSl=YE4F$d-h1FNBP4uAyX)5& zv5V7Vcy=G;WLdQKvaI*AOa9%MpbskVvEgtYW-c&HFko?b`m6>2HkUO#k%s&W zlv~Xd2!`C(T?}u-HkyQdY(tF-o4QK&-r|8uHeX@jqF5?Q^Ju(17Q^<5`yS^FKb*P_ zD8p6B>S%>=H!_@?IQ(u16Jk%P3c}a((nG{~^Q;%#eTgg9?3awgDr$Dq={1**Xb~$+ zBN!pbYQ0b%kuOkJ2LlAA@~iVwEHMo?$TL$(n(n;GPXKA9 zw4usC)fSM~pP|b5hvOE`ipt_}p<3>H_6W2{P&#n`Oa$SEoQ#yJO3O^&rZ}V>ac>l3 zUu7A*MqGYXefj*Mp@)xK8PN)A_^m?jkW+4M(}Z@70Osh|MG}=7rq*aE%(f+Y>LKh- zaw{>=56D7!&STM;0BaPU52aJ1vs7v*UQ`C>_tM0cX4ME zn#bZ>sCcxrME5JA3;<09H`B!BL3e-~c=99RE^`@hIZ@c%m9{zLxf{`py*^bfB8ix7Xz z{FluCUBiFL@CWmM)hqwWjDJ!8|495V)Bd3#3FHqk|H-@mmudeX|Cd(3jiAf~v0=Ru zT~ZJ+0pPhp!uJ<=13@Zt{SSTqrM-+CrqKRShy*#*JS_C5&t4*p6Lmd`cYt$5U+2?Y%*X2$rp@%B{f*wL0| z!!eRx?SqOzFMhG$9Q0jl8KvKR=-$jG5LH2(qTMdo4^3NU8$ya-H&#inHY>KG=^yc` zDd_cDfEQd1vvT63z~Aes%jD}wyfC)2OQDt;R64mx7=rJ+lho*Tl?(>*L5EiKTU|25pJ&SBzTHg~=z&OY3kKpr8O#VQSQ) zWd&1KX9k^p>yR24`!%d-645vY*^6T7*{nRd_l-RBQp(skeo00&(u{>qcTeKT&s0&G zQfz?lIFU{$O!8(q{_S;Cdlx`KqsYq00DZw-Nny;jK zkF5rhc!07io_W@?Q|Hp8oShys29YpSvzCS~${K*a>U?eJ<+@$9p8n$( z+gq*1VS(ZhZv!)!y~5*^z{g(}tCn7dq*Q>h+p$i)kHW09n{yhjc-(#bxDhPy=@&=L z%;bfcQZp5M1gbb8z2TAz2 zC`wB>2m0r%@X0v5YoA*F;V&rj-V!H<49LWdBXlq3wfcf~C4$4cH^ zR7|P#yy=q~x_*8q&Ja9qGxYMa2@wi%VTewGUYlP6P3>!l!F|p4pV<*sh!4n#E0EY_ z^^Lr6b#WU7=k&|hw*fvpye31Rrn;acNWf%hm(&(sZRfsmfyzaX)*1Be}WBs{JK zO7s#X*ytsq1#3kodKW~BZX?`k1S@*e&dhkDr=vm6M2?4tcU|+LssSDz0f2{x ze|C)!Y$^ModJ7Ma5Kj+gq_(!Uwza;tv$3kBWq5&)e^nR=4rs`K3e&e6@YEUbR6bxu z-J$qMPLz$0SA>sO0)CScW;0PB#c#h<;_`usTR&1U)P*UkJ&}0ez^>}XD(}Ij?gkci zbyp5`*SnJXV&W>|64LSzF=>7tO?G-?a$-{=0uy|EBYb>A0(@B#LM~Dw1`;AlVnSj9 zd;)xYaD?Dc|9J=riOGnsT_>ZaqNF3g!AwEVc#H846Ehnp9U~tljSvZ?1PPTU$#ql0 zYmfiIXM|5+MDU0V-+&0;7#|;`VS<0{3E_1Q!fOBlK@mQF2|iH?KK|wvpLmyeB&YaX zt0Y3pqymfN5}op*Nj_pOMWSw{P|wd$uSyB8&+kl@9$X9rjHo ztV<@mTPD0m<^>uovJn`$$UgZfto+LXxtD{ok>Bq{{krpZoi_m|_j**}^@zfoQKh#( zRAPQ8#f&S(PAbJsE5%PMCCsWM&uS#iXe7^RB7d5u|FX+nK;-?hDOvZeTlTD2aQHB8 zl{s#eHf)_dU>M#HHSgim{>rD^a$9Ja@Y(?$IQoB=H9Y(hJiM!dPgqRGkbg%xmCrPh z-#kIkG8y_bSplB#&?ZLLI@Hp}!^z&!-^C%+-!aHP&?_+3CoDBID&y5FWNd6wLIN@w znUS8Jky!$K_?VrWoAV(z=VMN8L3VzAL1k`H3#z=MqPo4V@k>MV*Os=gt!?f9JYT+j zLw9%gb$=V|Yxz1{S3U7LceDaI_%ZT(vRD5*>;7ce7*b|4kMp>m?tGBycntD))O>X; zY<{*7H{Z0jgk4^o_&NV`V)EzrvALenh03w@;>q3Gx$WNNt^T#Wk?oWDgY*5A0HnbA0HkaA08eZ9PID!?d*|ZvA#;l^iT#-x$qQA%IF$v9;nJ*40e5lzr3q`moKsZ~51v#Xe&YPU(#V1F%neo)_T!y3R4@oa>Pu03FBwq5Cl zYv2Wq3Xb`PYKA}LP+9M1tzCwNta#MMbPw{l!eC>rZTai$CAo5_Q%{}UbJyuynb?Qw zIGvBx&AXdR7b9Mu9;0;|2{aN7SrB}?YRbgW*T0^>u?jgli@C9sTF2t^L-L1>svHpH z-zu7?Suvja8^`Zy{=xpBjapO1 ztes(PUzV{9*s(~!sLeT$I{HR7?R@C?Ag?!GhqQZikK!O6cpJDrp#DvkCp>X-Q#OU7Qt2=ZU$wxi1b!4&SU5 zIBde~g{C&TZ1wqVQv0mWIzw1iSj&5xrTC*;usoBqKJ5-4VXp;JTgmQS3Vz$_|E;Ck z&|t??DeXSt^?P}phqQUz;eMT|9Aj#fZnK{V+g9LMYY??h+&kp$g@hTk_=AsnOk#2x z_lxf$SFkK2%g4=|Y2_}{`@t8IJAz?#3||5uca^3T-e5OW(ju|dRiX>V*SLORf`RdY z?)UH0tHXYxgMa^uO|Yt4(*bQ{gBg|MyPU2?ol%bL^AE|v~yB zY;5pC;<2scx9vL%pFYBPZ~EG649Jg6S_b)U^wJFex*NU=*9%{YhH+rMO%j!I)8Zc> z2@S7tC1V}hhK6Q>eb!7Mc>L*NTMMoSW<}?RgUOWBuvUl7^nne@^O~%htWFWOs>rB2 z4Pm~A6an){JTZ$C-ryO5Z|zu?*ht(=x#bLLQ2AMA$muolX+K;JjV|t?itRVS&y{U(=wohwS^NJ@MPY9ok>WhP`i%x0Tf)A$~Z0xmpYgaHVuRC2ZbJ zm+$d#wTjGXFfP<;x~}zPbw|-9M5tcaSKa08)v4NfS8r1FG?h}t`LtV*_EZq=(rj=k zeJUo3yP2J4@|N|X^8l>RRLh5KsakltreL_7C5SNs@! z9T#Wmp=9K?##s1h%K7A;_4D6b=>s_0B<{mE9Y_dg$YN-h|8mE3s{0R)D@b3LaaE9V z2T)(5A!y2=D#qhgTzqWCgH#XEeiH*O7g^+#DFi? zfdlUr%gREo=TopG>^N1MiS=NTqsHX`!*o|)n)3^5OXWp($7umu zIZe%{H?RQo-Q{FX4-2-+I@wP#b<7d!we%Z}Jb>~PV32!IO+;t0|7)p7it>I(q0Tzx zm?mp0!4=F0JjWhxh~G6EP&lG*e^SbSlkrP-(3aU3vL5`{Z zjMms@sbHb7=BOlwUDmzYoN1lpr8(x6ZB^W~id^d7w(Knu*5}dWim(1|?lTL!BA4X9 z74WEea2N{q2v~C2UumG_Ues=pCT`j5`SYj;cR20xOyhlL**5RjTmE}IufE=#DqDzu z;D+|j=X%u0#o{-c55HIl>*`iG+deZRg7E>b{`$2i>k8jF4zZaApwrLS=f5SML7NW~ zxh-yy-T3<3eWpS_J0CmWO{(?aIEO)@SMe(g7C5|-YVu7h)TI25tfEZyY?7G)lb8kf z$c1U5$mzh+)?9sDrhUeuV6trtUu1*|DpN(uCYWu66?CmWI&2DuQ`Li3!S^o?HUg?` z9li7dJB%H@Pa8K9qMo z&jjrvJM7hnSu=WhSw32NK6|;^3x4rtB$t{&(4s-KJh!rv9Bauv*ot6N&p(+H7{amU#354He!ocq*NnP}m-4-Le1THl_bGrMA_?Df3)NG$N z^K^E##@oVt?^=2lm4{VO<1u~ycq$aPkt6wcs%tIJ^wO0ip0axtC*IS`&8c^>slTaz zl8?0uhDhO(D)|<6q5IBeDB=AgE{USPIlIa9rM<%V#=aDVfhs%TVB~EbAlucIVxbVC zWkPf83k`Af&E^DblNv2*9VwbUUgjaOK-O3W8-J4Y+9y|(L9<9SR$j)$FFjb+=_!!l zA~kMVH*3*d6%!vji}g-jTiETA*|d}^Tl|TYRG2SiIHEoE-+g-m zP(ciPCUeH`?n4cmCr#8KFY^+)1Cw)BaA9Szdijlsn|_UZ49O4^KN+1hZbNkatht9Z^cROYCf+_<)6gHT2F|HNbX{+CvsBB=hLje`4Rl=I=WS$05_kN z>2YMlP#+3p>*c)5o-BF>{@Q8n5t7w7-1RXz^r2(v+z( zZp=P@q$&9xlVdW?89 zU&6U?*rff7=ab~{v-_A#%@aVo!EKdje9eg65G$~!v!?isE`F>sAkeqaK+#Z9MEiC| zHMNK#YX+aUF6S;nYs|jBanI8cAhV1gNhVtA(L^cSTYJtcRWtZgef6!Kmx4%Yi7+&m z+4Q~>I{%5C55*{7_dA495=L~+ZC-Q^`MH=HwSx9^)MoGv9Ow;)O~9^!28NDe|BtQR z(u1@|v8V6d^i>J}OiMtNn?t5X1I!209*60QpIsl~hD^Rd^FhfkNS+xuE3mf~|GqgH z;qB{exZBU{x@qgJu5Vmg_{ZHjJtM=O)Z^m1Z8B9>c~xck1*$pk&s3aDR;r>K({ZDG zT-dA5@xgcE(Z9dW*ol#-_iWAnAf|Y9?)T{AJ(J%wOU*9z??1QV%L~aE)SDK^fWraMd7Cw%F%x>+pQ(fVrA7*cFOH;Mli-z(s1}U z=PBWv;&O}kOP}MA4YoJW2>me3E zplRCe-YeX*#vXpor^yj>1Ohd&{TuM~P2E4;aaq6Jrdtm3SPuEr`(!M>mP}1QS{{%_ z3yNrYbQ{+(!yFnLE?saiM96T!;UCYZ3jTU4?_pUt`pv5)Usg6|VcVr>MBOEfn%?Oh zRhVcR>|5Qgqb&eH`9&Ck1!20ZH{OAGv)&_eh~s~blJIX%^A-}-YGDzj+S7C_`sh(4cvSqdfx}?Qgvcu)B3xeKLa#Uk_=P3%~DQnIjXp% zzo#gL7uaFDCQW$!#bPSi$DJL|jLJWmQEd>hfiYFI%csWRffTHWcH5^fcH{Cm)AD@!r83gp#K-&4*u@N|cx-deJZ5q4#VF?r zzrcNdX+aTd89yB@)NRuz#Pi;=c4uRF|? zd_%N#4nI^^*Ir_T1b4xBCFzh8|`(j00Dw$egW-Z;ER%Ig3badpvaKMpBa;>?grM5QAC{10<1xDV$fBam-O0_(=~GEka=_87Y*rT0o%q48uc+Hk zI!M2p_5Uj7H%thKV0RE-^&TJKd59?;1x~P%&(SCp(`@Z78HKb$rh3wz()F#`Mx;P- zY)tDfcy`TV{GUJ@A|o#~PnWq<7Ab5obNwV`s>_m+j(A*Z?@@DVzPl&#PTt(?!PLoDK^}@d)@!=;*NFq-J~> z=_#9*vRnYSx>vEv#^TOZBQALMYQKMPz%#jgCHvrT`V`Z|2IqdFgQ;I7U1Su$ z;q)fAUF*j0JY@~`>HJV~_nqn*CGEi<2J%K+i~3C=<_zlV*F7zxQB!X`|5``!8Tz(= zurw_`JuzUx-+eDDj?dd~x7&8nk;`n+JUuFCR_1lKX}vkaWr1S}$VfcKudsta`g$p6 z_;ZTM%d5?NLvy3BefIVn>a+DiCu38|zieN?B9U(e=u~Aa9p;h_=cEnhibg!=D;m_1 zM}F~3K4Y^@vyVmM-pBQm0TwyA3xTrZF1ox((??&0l*^xG%Uly(xsx&N5O=bg{v;!P z?@@B)@y=Gl{AKo<9j@&hbqz;aCHpS5?`@nf((H*vIy+Z&P3*VXXFtX*S_2FIkiV&p z({$UjX!PB9l552MVfC$wHz8ws-$#2puXtF9_Ab^}79f$z(lnPB1K?>(Z*fJDjd;j` z%En#Rp)eplJvyd@2aanEIdqd!JPTMpZ*K`WJKCY;vwziUVKL)brbUFTj!BODA+qCX zJv!H707DBV>-YKSzfp#@cy#3+CA?YjnKL_!QXOpHe)B1M`Z_Up)3@`9%tW(1_bkU- z81aVIVNC8Zi!RDV{w6+Dis7k&w4~o0Aq1G(<6ZII+cA}C{B1|A-h;Va7-_eCeh3ma zGEyZ`*u=e+wX`QtgHN6S?*Yq#bck=1|jrW#-o;23VT zg?rh3{XBq3RPF1=-2oV0YHEKyYTyJ^B89nVpMIB@H09on^xG(T+vrI(?sVCF_Sv3{ zY&n2u`$>aI)li`kYrU^)k(~SKa+eO|^wle^814K;`mf78@qeO8*7VeNmPy9WCxZR` zk4U7%+;1Ckc)y`IW^I+^!1_qKWn&F(G|@}=SQ^VTdk z4#HknDvH;nX-r$D+THKLDP9~ce)%%Ay&XxKM@yTHhPyH}(wxA0_6Wb^2e??RbK0TF zjel&u8~!BV`Q~D3vlUS)w(9+(d^o=Hn1>-i#(ui%l|#4mau*(Nm)$P<)>(gEm4sF&5@BaZSG|4CN5f{w>V*uAC$-T!o!BLOkgnmbfX57|^?o zSz0ETZI6K6jV)^wW%zSI2UoG#aNw8t!%j;M1<0?jofnekwKgv6sWgP>sArrbCb!*n zo}^^9R5dZdRc<96J4+(p$vF6`2lD*$y6UYBy@*bj+`d2(w%EOm1kgLeh*!W_!_MA} z-j)Tr#VnhzgCpauE?#950MgPXW27M^uPNu@_T_gt*_3!yX#t$bd!hT2ZeV1p24}in zS4kdymlf_rhfJvr-Vdt!(C~wnvadVOjX((z92{(mTN$Ca8KjIdfnePGnF5B0oM}1P zFVQW@``B(e7!HGEAK`FQk@wgH`QcVSECjpquy)HsBAFUzGLU_@8NUZZX z>jY+|CSdoigBqm5vY7-D!il6qTaZAMd0pWHAy#AQmv4LV0q?}31anMWxGKc3N{ry| zODw-Vq#gg?p|_eSfO1MCdzpa^E4AglH%9`=^*}lbU9^X{&*6244;tv3+sYoRn=z^=hn zzz|=Fm*`jrW$*EY62ftUz9SgBMGD*qfgd0to!mG#U+v?p-B)N{?>2X`tK@2_sIGK_t}MW1b{k!2 zE)sg;Xg=K)Gqz#^MP~}~iiwGJSVo0f+5V-elep(;lX?^gl@`;V2y2)ytQx~EEm?kg ztP5wdU89r_iTuii*nMd3niWDt2Jb~1y-ll3a5einAm2NdLvPJ6Z(}~*fJo0Qb(D4b zK>^6i*N*HH(vLyDJCtQ8+$Vz2Vc-a1m{xENGWhPplft7VYE8ZC4(Ai2ZYJ&O!RN`f z;8>?)q$-M0Y=goN7$8j@WcYW6BmiXWe zCoVr_ESaP36^{_EW0zSgoU%FX6sJ8@39)--*WPkXx7-EtDBbiS@g{&`Z45m1^t<`-1r`(3aXlP% zcLq*HkI*$(UL1yfWk2 z=RyM9@PR*x4r=?v3RW%Q>7?r9)u!d|%pZZ~4`AoA4~|j><(dQRswP!Rm#@i^C%YUwC+r#uY{nlp3HSHEt{{g zS0e`P^%*18XB}F$)qwUGyrBOfI~tk^NYBD1+VjFS?bYgaSGzE+m;chhogT zso1m#btO%{N$l;yP>s8f%7_4Vq$EVTz$g-ysL2Hs(XrFQI}s7EcSbL;DM(jD4kJ7Q zM(%>j3F>$OdnbMyPG$AD)~R57P&n>CEjn`)InWgFO=a@a`vmQAZxbA66cAlHEJ2{+WE}{MHYvU-DC6DM1}# z@uoYPm~Fz3R{R|^U-VWF1C)P6GK#_Dn|VeIS;DceNsytC{s)Le zMhSRerp^2fefX2mwh06YFs!d9^wdBX)o8z4$i)ujCod+0C6Yl_h@ecEsCwe8HoB=V zGfGAE#4d;$IwOHJ@4=d$vFqX3KX*SlIMiIHQAaga%wv(#GXbS+aCJ%GawL*79;PD) zykFpeg2LHLy7!0_lp0uNH%x+QTleYG^FVk)>9_0ffLzXzQLay>!CNbSvlKe34*2dA ziH!V^)-7Vb{pv5hHi?WkA*2-5e3*VK4;@7ce{;P}yWA|8Osf#@7V-G}7DD9y1Z)C( zV;W}vh|_SpI=r43ogWA57$lgZXGiiv#B#{~O_~-o1&}Rp9GSo1ozoGWrq<~E@6#%v zN6I4Qt!-b!3~Ox!a)SkZp6Dv)tyL``V%u=Az2bY{d~L9H98<4gr4 z-RG`>=p^9juijw)X+$+Pg`=PDs35cre&uET!ycDczUcl=&j>#jS5cK6faoITff)Xs zVDdK)$0jBpKZe2hHE@3&ax5zzBD(K8_kX)$nF=Cbhl`1yTwQP#^Jx)kk)xBpHCT81 z-r2IWR}0b%S+#zrMFZ|#p+NhAd9Yp3M{otJN)Uo z1IUOMsB*|XE5H0VRV!<6iDN!25?Co7Z)#Vs^5mofgw>ugCdbt`JQ#d9kc06GOLR?2gB?V}i*>HP(qt9vcKgg7>2C)9q*Kklm z0x)jL!M^y8?GnpGh|E`o2CU$rDT&h9N8BMAT2RF9)9$m~?*0rZ#Jl)#EM7Pn3 zR-2(C7US;=RrYH97bP7s-gMbF6+UPN6ZHBwf%VR1?w2@v%iHm;*X7N58w?ij~%N zqe0Kyrgo<&xO}-;YeVRQ_<~s<%(ipKnogw5P(x}hJQ5jU5QjoUHhnF-CmuWk>w&yi zgKO9BxA6F0PRvIA0(633uRYTNkB6Y~(VpUzC-G=A>f&rP=>)37-G!wtTiUyj)9eNl759*%bPEtGe2|xPOgA`4uYddHL zS)HJB>>|owqc7N~S=$~kvel(I6Ry0A%{oD zz>J|A%3R3YP&R=?MpnpiGZKTD+teY6fkj`0lq#VR5JuM}(M?ltxI^iDgX2i|{=y{1 zz%Jz}Nusnd=FVNq>?Rct3Fx(YT_w*8;1Za?zODq!%*;v}lXO)4w6zWfcuKd; z*umX>=N~$QaH{UXc;EpHH#I6PmVi7gl;qzema0d(TGBptr%+_0rG{|Xp<1IJSHsGn z8#D3d2^9(fkjQC&f%83#kAP&k^-8G7eF(oUmZB6~WHN8U2c{gIAAbO_a24DWGN33y zu@VArz7>JJr;Kp!{jMQfn~bT&wR4pnIeniEmb0716e4=CRI>x+>|R=lMK`&mxIXY< zhWHjSv2@I-4nkS9)%U%x!ji-l&#~8(A!FqeRrb3$p*};+4Av&lOM?DHZX`RsF={$L zr0;D_T3Q!J@G3dDTv=`E2wPRzE_UxT#x!c26@?n4T+Y$A!6>S?>(V&q=sQQwaoEuH z%1L;zf^5F-VPt<)zY#CeoOs!vcj(tpc?2QAK0*i#6h0Kuq29S#fokD02T?n(V8hd# zL00HiAtl6KGN!&G-l%q0QAZB<=60{#s1nYI16r2xV~{~{n!6~>&2k-pNnLpW4|umw zi_wnrY!6%ems{Qt!9xzWi-r6#R>O6FO+3KdKP3FEdpSPMhAYkbt6sfDSDM$y zuzfD}H3K0@B(SJ_c3D{D00r6u^w?SXp>%#T=_x&u6(c`g7l^TZC{DoYOE44s%LK*0*LLR(VN&?r?A`O(E zs4|KI;EEQ|+(jZ6krdatUT_!^ry0h>=)f?N5qRI$yDrilI4#s_S1@UPU`C+C`_-S+ ztN7|DsUwyXLRdNWsX{c=?ri*xqDu^bQ%C+Q7+pQl8MmQO+ORh2*OR=l20L>20nY)| zH&bf!!Zqi$Xbpa0%02Fb;|C}w(IO7Rej)rzw9$3Yz=~?dK5ZJ*t0<1xYOQbN%xlAN z=(vgOg}L>PxqRiAEifcN(nE}AZ*IrH_MfV6O<35J4G)$qE-ua@C#@4Lwmp4weNO6M zj=d^JseuZr$(-OKu?QcAbpF9dtO=@&COR@|Z?d#)kL<055YLbPpxWz3=7biEweZC4ue&bL zVEM8?B*1Dxme~y{(yTC)W1T8YTlo8336y8!H7oKVJOvV!A=X{gl=cE~;d{G`gLCxh zU-DnTe$*2M^BK~n&7mo$z%H0OP1}v*7TML#<`mk}a}>7-scVVsQODDry{arb$eqY;I}&-fse^icJ6>Q4R`xV{ z7U9&$^E0o1lpLjz!H9kN(z{$@HKzS3Gt-~bhR^P$4%pqdROLBE;1uyh9}&HTJ2mnA zWCpT(hC!i0KT%MuSUAI1O3=bAYeIMbun0UV-EJU{x1nnlO1o`8{18=VPN0w+ptVNq zaF(t10le5#q39gfKr(9}s(4R2piNQW6;~`QuAZn<2a(7?Pm*(;0+fPcAC=&PSRO# z8;{E{&Uu*#8;3XpYOjkO%wf_QMRZuvX>6jPVC?#=-Nz`H`mX#7Q6%HrmoM3oBoMor z_u{4SXoL+1=$Dx=l*64WVCY<%#8?czr-eIlB8L@BD8OiE%g5VR_y_cagt~}7 z^z|0_;K)8GYbm-j!v*yV5%daW^bAB(FKg4Ea2k%AGwy{aKgaDNVTX)uT7V^r5QJJ)v`0JnR))VveMtN5;_OxX#8Jlf1r2 zjCk_BY{Rwv1Ct@c*h7a?HLaBI%82l@@D^)#sUOc2jfcwpDD(96%HVXCc}XWu@EXf4O&>YX*s*wFA%%PqrLQ`uW$#!NhL2!BO=3zI!G*{LLHIIz`H ztM^2SH}7v?j%|x%B8_3eurhDnL1168z5-!c6%%9sxVe?V7%7CYcKr0#V(l_Lh=dLf zDXyrmVX{PU|1jptI}hyp7m|}JBvkh}QCfK&(-Eg5cjkzSOZ0J(AL^JGQ!SWUg>I)> ztdjE&79_*EU8R4_5&jYm=T4pCPs!1CP098r26^PO0Wovsz|{NpeT^2E7&YmBppU#;v;Gmo@bfD%IFNFIAlWeWk^MT;ybMOo zEfB=FmE~U`-d7-nWmh0sF!kwu`jX+<*!*!PcyPY~6~uNc-6eX-O+r@bdJ*_ge8|BvLmB#hF~{IfbhndYndYfjV$8a;!5nZBx~ zGA}tfL_ZER_FsYEe%sYn3eo@A^S-J^{C5ld5i!Jkxxj(fyL$bx@)KMm*|IEyLOb%~ zsv-YfeQhRVh9^b&*Jo_^XxR-54CuZ8EYg2=Id6&|dnc8-<)sLzv$W9A-@ixq&VJh9 zPm@HM(Raqel9CcxC6r99JfLCqzHQ9R&#nqZ87P|*U#_KceaJTr_4IzH zgfd+j*+qv}rW-9sxSh{{4BwNTo)!`QPsm34>1^pzQ$Y>-Hqf3(o@ckW2Uy1&LS&%ehK~okZSR6IAV1E!9x-mp! zrFP~wY1ua5Yd2|;zGGs`Sqn4FTv13r6#MT7W(Ep(2!I#Ezc$qZTr62jtiRHtMYZSb z7-ntE$0{AOO81jz5q}p5fCCSl&h$-31CA?j{q73JGq14j_fxKmOp=k|4Y6f!5)wqb z>TukdE$7(#oq#nuhP&tn)e9`%6!xTj%9VFM$6^#yM_>|Hng3;533%K7O`_ra`gQPV$sW9# p%^LA(gsc5{gX@NB&c*a4>2cL6l70Ggf(OL{qT{)o?f2E|8?9y zz(0r@6dW8J8X9``+}ZON&PPW_U%7H6B{_uwF<94Gw{G4_PfyRv%*wu-eJ}f7&b^%6 zd%1Zzd2lWa=lmOJ{ZHh;_w(*Q$bV2+P*_q_QdU}4Ray0G^{+KgYU*n18tNOKHa=~7 z+SL54`7bScL{sHv)@ZrPY;NZ~E(8$Qh{QUg4Z{HRd7nhfpMIsUMKcBz1{x%{Kt*opp zFD)-EE-ijrT$o?@HizOHiiNoaw7KwYp?YBvTwdNJ5=kKl<~slc`6omoU||v{SqBsX zt9S$e#Q;!+0X|CuNC+U}0<$B)%MPHV3@9x6e<1#_Sc6slyUd~p<@8S;hzJn92i_M0 z#YI5Te^3r&zW`3J0OAM$hyVcf%xVBA`a4i@yjDFDLk48XfGZgw|DSLL-1Y-UL)aUCjOvVEpcP2SSJVQOZX-AZ=lEGPkCtU|hs=FsP`F zqU}dMb@9fAE|pXG4Oxm_ZSOXOL##9A+t{qfBu!~q(YxFr%5Q>7BI_N!K!-hGpU&K}t@iBubkD}e5n1=}-g7K+ z&^z5-aEqV9jxPpes-KcqbY-JvN!>iVr0!wcOf9_@ioLW3Qq&r~z~GYOiS zCnk9BmF1T-;-{b*P0i0e-U3hsE4nh*dV>SH<+CDhas%LfQAJ%Q=>qFQkCm7}V~2u$ zR%W`ro5qgq$!9Hk`hfFJ`K+L?LbsAWIb8SDCxayqLFmZ}w*5+g5yIcD2Vc`g=`IA+ zr*_@xU5OcR9yvP!>T9bF{;IeyYs^0}kdEzF^L?HosqmK#rNO3}xG?8Dx{)sErb2%d zRrYY$GCM$P`!;swP0lfW28Znm;w|dLFCKhaXzC_@5he^ zhwVK3uy?MJ(=!!D52KHrvBg&oG??HIZ@F&_mMn#md8J6?@*LC$Mxy6(hEgX-4fTQA(r(vxMX zVkxusJDw|4AD0p|l+vcg_-$Etu8`W~xIM>JK~jiM%Ek8eW&& z8e!;}{>Y{{*-oo+eZ#uLF_a$OV%1HQS$pf)<)`e|kZrZYo@=t;wUcx8(VlNi1*B;? zE>UGiaNp1P-clZaChk@58fJud#)KWaq7KAg{@K>oA5{@u;-V7;c47+H#AFE~z8LRX zAxA`Ywc*_~4X>xPD@#M=O>K8OLDUhJk|p3a(jwE6IL=tU943_EZhU(#v%<+%Mx0w^ z5@%?BmKHzx@yshDsP59&E;aMGE@A1^DbZ(|IL92^SluQEKV29X zDW66OE?nxG(z1g}Y;628pQD1y0OZ3qHfvJvBdf+VABfjiaCv|X(Qx)5rhysB?xrC2 z7!i7Q#b(cU_r%|62`Q3;jyA29nf^rlISK7|=|VY>#qeu#8%(F`D|oA3qT_e1NTKxZ zYruJu71tozzNq80`$O2WE!;hj&P|2U)YV47i}F*WOs zEI1*~4o$GJotEd`Gl;7B@~aB1(S}s``|@tr3LCZH{!#1nXhVZ zIoGheF@gn>@3p4+5}{7g&QJZNv6Ab3O1LO^52#?M0qOy%!vrqMM0cU>EHcfgrSE4oCP| zV|NQk4)HKg0JdKir1%@RViR|fJv4UIvb)!FOFQ6W&rsc=!FZB1H}d(^4d%7#5D(y<3)<^O|25g<`X99jNsNglW|c1;YuY3Y`eO;r zlOo4m73^Outm1A64Z-sfNb~Gh%i(n4tobt^!C)Pk%K8}hx;&(%(jAP}%Q#hw%q}%Y;Xske;yDwd zUO1vUKi+^LMyq*Paa;RWHYdG+^qIcVP9a}A*;L1~bB$L^iqFhk=+q>fyPj5r9~DGiR(l zGf#;~uv3cZV$^zke7W>=E;0pvr_Z#p+w5u0PWk7oFOTJcB)0v6T$nS{LrZ*b7OEtg93m6_fiA@YdtnXCaF*Q>rx*SFi zwu!aqVK=lER28OPN1OtsH^=_Cf#UAwP~hRkuOO{wyufh>mQ*1ozKY=LP!Jr^FI)|_ z`eAf5^GZofH#F%9@VMl+p0XC+0hS+-&7l$q2LbYFH0s`{qw1bq+yJkG#5SR^-?d$d z`^BvT8H;Y#pu9Fv&=q`7GFTc$CF2g`AMn04!=miazDp*(>B(XXAQ3f!{}262e>|7xdc3h(n;P9``MAixZ%$HW46qp z(F9fwx-(N-K(mrECt^4s`6z`g&;lc*^92?u3}4G6!yPzG!4F_Ny0cGVN(fjJF|r6c zv|I3KKrG%5HOam(dift-C!u6D^rY8@Uar14&^jFYS~@jbnB3I$c0(H&!-5#exYg|s zXg4GarJy6d76A9yQU(@|pBX|U;0bWLRkQ}4w&s`EwTWr>ygfzIF^97{L48tEgaqv1 zM|1?GO!X6pd^P6DP%yWk_f1!zyBWq*}1b11~ zo`5MWEO)L-8e;1?#Z|6^SYPfsC8fV&+^5NidOlN6Z*|p#v#1|6gmqsfK=WC0j@5Y5 zRU47DeqUwZ4!@<)XvGEkJpU|M%WJV>isOaKzm%7I6Nz~h!cKj%GcRDNoTMYhbiaow zC`)$##hhC$NuETV8>9XC2!3RJ!T!~>M#ZI@x|%mBTM*@l__r}O*=t~Z62BsN3rXj2 zNBCaI=H}+3kNY`4;J5V9qUm5L0M}#3c$R+f*;ViRJbLl%DS%>0#4znwP2}NH@L(;t z3u`aV`GHAZ%>?nn&9v(bbX7NbSH(7&k!`^|ul&1`AgOIFMIlAGdIu^Gm8aZK5Eu^N zAD4d@0!`@_5Z4C%27Nj>aQyM5q&Gppg~2YJEQ8=I2p>hbdc%NQA*+FsYasr!tC)NEA60<*-DI7%G_>hbW~% zD#s2ZheVU}Ve~Z#O=3Ha^L&f;-tW8L>-w(i`~LqPzghEK&+~Zh`?-JjTEBY@e8|Rp z-EZqqDAWcE2!9xbS^=X_BDQN+A|o1cH4P}#O4K2%qo%_DZ~vzVEDD7SLgBnnIQJK3 zg~DYl&MYp>EX)dKrzfWc6N0IUsj11SrR&7h|3pt$PgiGGdwY9Zds}OJYirvwkj^i(wYIdj zd}{vmvFT&uhsHnA(D>o~hY$5jXsB;!sB5UNt*@=FefRcV_1o%y;7xV)zk&Ul{r1({ zs*0-0^2&ocAE_LC%Bhtn92`Ei)^Nxs3Z+ShsSZ(<4(>_N9~W=5N!z71WPMROTrQ$ zOUT5;ndHO9Cf_MYj$_}SMA$X ztN=tmiVV>iQPK;GFkspl-Z9YZkj#te5e{Hz%pG|0!r*q3`Lp($Nz;SZEtIO<23C2dc8uRJMYAA~ zj)e9)o(fxA@b*V0h3UFbU_@&EMlHw(U~Rpm^m@{&0YR(ogbVvW>bdq`Fg(<1xMIE2H zhrhQsoO|zN{V)gc$ywwzJ#($7B$d9Yvw6f~-mi=BSR+u(nAnB^k+n|Ak>b}N6=Shd0A1^CQTR!0~&Yz!rgk6t` zz5c11w+C!9oJ-ANZ4RiQQHGj>>&VoPJDN7Qnf@r;tNB>aRfPm2kTTMNYumar=Pu<7 zW=fcB?dIdyuQYeiCE;uvcGq0-u_Mh3&j??&HOkmGMuS{pe}60psuNyJKkh$8G~#`& zogXs3bTPnnR_LVD1(xWJKAFv_X}mgha;~}f!;!DTXYUO-fzBJ|NbQWBCNRq!x65Kk zRFI*0VC5d?EesJ$1y;+Q#%NL$t9=L6tE<1vXWVUyAL!~ZGQ#0?_w{&Q;R$M}6YA!0 zzh_KGQOvh)11b%|A*mq?vzJn1J3Y|9UtDhU#xZitNq={LWn>&J4YOr!sDbkD?a?M4 z9>xQ?9Y=b0-%VW24ZCo#;%-YVR!-%6#rWgS_?i z9IV5NH8D8x4u(f29}dY-eDDT!%Jv#Qf7~lNc=4F&yN9=1%xf_%o1!#EljHjYl9%k*=Qr4KWRCX7 z&i^tLgczzr3|%fpAEmlYk$+l`y->6AJglp9CL(0XP<4IJhLl3))f4CONg+vp%-^!k zY|*-_mRU$Vdf4pL@_7nEK2j9Q3eawL)??ftv6GQs-j{7s_p@tLw{U+_OSDWHmyv(; zz`KO*Rr+wzT-_K`BAP*R?o+k>7MCmbgJiVgeHd&s9A!zdH5yBrz|Vl$x$|b$X)%K{6=wI<=2Gq0Pc|YjT(kYlfQudy; zr#!tDgt?|MqPI-TSnKS~2EQ;SwN;tov-4S!e{hMTG-mX)ety4-?Lb_u*lddB@lJKk zTJFas;+4(8`X%BiI+h2TmxxbEmd+p+-moL&${&@j9ey+zbkdr?94YDdW$^MDLb451 zEgFe|`5C314refV`~U}OMc--LCT#G*`4Bbj0{<27dpi^YOtSL_6)yE9f(%gqvU{`2 zq}7A^+##7zHb5s9!rU{J9Vh-5l>44+wwp9`kXB<&-ddbtZ?Q%@F>Q`_ZhmxL=R|$1 z#Nj$=u`!D`;~o=7Sz$ScPad6uAL{I3oRBF~xBV-l@)8aaa@E#5_dX`ydc?%$Hf)-- zus9#~#;vvGgBjhL)G9n>n#*==kUTZMU7U3zq-IRV=qww!!(^{&l_q%I287C|R9WmC zl~JDvIzaG>{c|A75=@9RmKSHSmABlbl(Er>E-rnLyA%XGNz`$|G!X*ZO4#-J6z@!GDowf1TsD@3)%quOoP?4B?S4eZeWKCeJ*wd%hAGhc*@{p6&-{c$$=Aha;X;q(qUts;&|QNSpq*KCNOp2NcCz>}hZ5AH z_S{`b(+@u2t89*=zO}j#NDUSo8mctinni3N@V?^HKZNnfJgQ z6$ff}U6H%>5uJc}7`)2q2_Scu7J~J5@pS!eJT_N4kOTu*Z5K9}Y4r)x4e!C(O)k+bhsj zgTG{sAJ@M8=o9u6w)82Zma+}uTJCSF((n|fUl@#o8c66%I4FyF!ryG! zp$8am?tL*BD#qG=#G*MHU`L(DCTKvCP7Xb0bw*VHN9^BY`Waav4b1tp_6GBT?=s(I z5>f`+%f~|N&2e#!kiH8q$}kkG0YHmuvnP{re@Xd+x&v_}PDp9h(i5y$-Kd0%(H=8Pn57 zj3q|wu>xerm4K-8)N&-}3U(v&SJ*}gZXRH%g0I7Xgf--UkoPr!FIbmJ#4|f7=`C}} zuAJ2{VqyQDmr67P8j(3xKLI1YP($C0 zuoMvc>757#w~)EN(qr%%evBNui>6QCv6u)k2HAs1nDi8B4Z+CO_FTIjSgNJx7p*+} zksXE(~)bybOVN>I?vyVAaQo&Q9F0o*SRgRaZ_mLBkEKXkN*L9?zm3z zxv`XXfybuGMGHj}5k|V71{sDKF}ZT+?DO@2kD+X{JSno14l!ycm&nmV@^0BXBx?dr z>G3422b5|0vOl!0)gE2qs%O8+4Qb&b2V2NE&<%PTrV4A z_QbHs@L4cN$4$~0dqDEeW$2_6v?~ z;B)v-**12gJu=J@7N=IcxRV$AJ+ zk&UL*E^{37xS-mi=D&=9)-v{R#z7~6YAiTZfF_15@o=81r(X3 zoiMbW4|HG>ak*@LDdl99F#Q9rNCIDLsjf(~Q~R#*ti|GPrIjHb*bv z`1h{_oI1Zw5%_B6!5Tl5WxzRb4bnG+z0r8yB@2JDYcW17_}+0~J86q53(p`cz}S0I zaAayAdL4~CI6}686ajJdQT9eOD-9qL6@lwm+jM0UuwPB{N60|4T?`(h$Ken=$9P|s(KuY%Cp_l6 z4j_)>Zm7tbAny9l2*|NDQZNlTxq=X&_U=LrD4V1RWP96R8rI}#A+GV( zK0Gy_{e>S_*T7^KxyImAtK4+4QBbkM=+ik~x||89*M-esAYUq@+vLz3UD%^u3O>x# zs;W6(DN*O<`&~e8Oj8VHnq-b&+K*?d15I2-fSVX&f;=yzqoFujnxnk91Z@k}wx6}9 z>Y6Y)55EnqX^+s7*Kqq=TfjrXm5vl-_3-w)q+f#BH00vC56=q+QYDTpT+|L_zET7d z63O1{4T@fx$VkuvU$CQ7zg048bBNdE0m;-q^%KpR9Zdhih3-Y;bt>J$<$vkJUsAz- z3wG7Ig}Y=RgczX_1=IR_UVr2La#_(JNZ*QCiDQ`~xBnerM+;G6Vij`x+aivRme+_O z-2i`yRlU=Q+Hpi+9}Q&xQ^%;DeTdFTK)2@1v^1X&E==;u>Gxtrpp~>=$nx^1$HbS$Zi+!@Hp5 zOE^U2(qMe-`|6ka^s(}EI|gLL3(xdBS0nhR*kw8iWU4t@R0GRxIwoxVwstk?y#)MT zGJ6-Vli-xneMz|;8w=UhTqm3kn$Y*{Td#R%Rgx z>baZ_kyywJs1l}R!QsL*zm}5ziDkm)9B^{d2ueR=0>?GdehDR#*=g?36maCH3|IGl zZ2(SLbc3q=e9U3X9Vh+SNu!ajP}VtFQFtR#)x_ZI>nt0D07`1~|M(EY> zFk$(HI5-06MhdCb@a}}{*~+w*L@56N%omVn5y9M#)KI#5qQJs!QYBJYwP6}X#jC>c z)W?L4T+5o}5gT=vlglF^KkZB1kh1Der3Bk@@Re?gf4)CC#4Q+h>3qk_tTGNlepEzR MnA+f<7$1-LZw7p+tpET3 literal 0 HcmV?d00001 diff --git a/doc/kchart/kchart-startupdialog.png b/doc/kchart/kchart-startupdialog.png new file mode 100644 index 0000000000000000000000000000000000000000..0e64ca9e8257df38b198a5a22ddad738371af14c GIT binary patch literal 12477 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 KDwN5+3;1uLuFygN literal 0 HcmV?d00001 diff --git a/doc/kchart/kchart-wizard0.png b/doc/kchart/kchart-wizard0.png new file mode 100644 index 0000000000000000000000000000000000000000..e53f73c76268bda54e0c4bcb42c7f0215243c876 GIT binary patch literal 6671 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 DI%wD< literal 0 HcmV?d00001 diff --git a/doc/kchart/kchart-wizard2.png b/doc/kchart/kchart-wizard2.png new file mode 100644 index 0000000000000000000000000000000000000000..4c5c711ba0331b81f4d7efa5e3397a0e97c05fba GIT binary patch literal 5494 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

    -VwG)IT@Z; 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 + + --> + + + + &kexi; Basics + + + + + &kexi; Databases + + + Many applications such as OpenOffice.org or Microsoft Excel create + files which are called documents. &kexi; + creates files too, but we refer to them as &kexi; + database files, or simple database + files here. &kexi; database files usually have the + extension .kexi. + + + + + + In addition to storing your databases in database files, &kexi; + can also use databases on database + servers, which is why we refer to them as + database files, and not simply as + databases. + + + + The term &kexi; project, or simply + project is also used to refer to a &kexi; + database, regardless of whether it is stored in a file or on a + database server. + + + + + + Creating a New Database File + + + + + + Run &kexi;, or if it is already running, use + + + &Ctrl;N + + FileNew + . + + + + + Click the OK to confirm the + creation of the project. + + + + + Enter a name for your project, and click Next. + + + + + Use the file browser to choose a folder where you would + like to save your database file. You may change the file + name in the Location: box if you dislike + the one that is suggested. + + + + + Click Create. + + + + + + + + The &kexi; Main Window + + + The Project Navigator and + Properties Editor are shown in panes on + each side of the child window. These can be resized or hidden + as required. A pane can be hidden by clicking the small cross + at the top of the pane (just below the toolbar). + + + Database objects (tables, queries, etc.) listed in the Project + Navigator can opened by clicking (or + double-clicking, depending upon your global &kde; settings) on their names. + + + + +Main application elements + + + + +Main elements of &kexi; application's window are: + + +Menubar + +contains available commands for the application. +You will find detailed description of any of the commands in the appendix. + + + + +Toolbar + +contains most frequently used commands. + + + + + +Project Navigator's pane + +contains a list of any object (tables, queries, forms, ...) created +within the currently opened database project. The navigator also contains +small toolbar with most usable commands related to the database objects. + + + + +Opened database objects area + +a central area of the application taking most of the screen space. +For IDEAl user interface mode it contains switchable tabs with +windows that are always maximized. For Childframe user interface +mode it contains floating windows. + + + + +Properties pane + +contains a list of properties of currently activated database object. +For certain objects (⪚ form's widgets) it can have several tabs. + + + + +Taskbar + +contains a list of currently opened windows with database objects. +For IDEAl user interface mode, it is available as a number of tabs. +For Childframe user interface mode, it is available as a number of +buttons, behaving just like your operating system's taskbar. + + + + + + +<guilabel>Project Navigator</guilabel> pane + +The Project Navigator pane is one of the most frequently used elements +of the &kexi; main window. The pane contains a list of all objects +created within the currently opened &kexi; database project. The objects +are split into groups: tables, queries, forms. + + +The Project Navigator pane also contains a small toolbar for most +frequently used commands (from left to right): Open +selected object, Design selected object, +Create a new object, and Delete selected +object. + + + +For each object on the list a context menu is available using the &RMB;. +For example, this is context menu for the persons table. + + + + + + +Double clicking with the &LMB; on the object's name on the list allows to +open the object in Data View. If the object's window was alread opened, +the action just activates the window without switching it's view mode. + + +Note that your operating system or window manager can be set up to handle +single clicks instead of double clicks. In this case it is enough to single +click on the object name to open its window. + + + + + + +Database object windows + + +Opening an object's window + + +Select the object in the Project Navigator +pane. + + + + + +Click the Open button on the Project Navigator pane's toolbar. + + + + + +Commands related to object windows +Closing an object window + +When the IDEAl user interface mode (the default) is used, each window has +its own tab. Place the mouse pointer on the icon on the tab. A + Close button will become +visible. Click it to close the tab. + + +In the Childframe on the right hand of each opened window there are +buttons you can use to control the window. Click the first one on the +right hand to close the window. + + +Alternatively, regardless of the user interface mode you are using, +you can select Window +Close from the Menubar. + + +Window buttons for Childframe user interface +mode + + +The other buttons (from right to left) can be used to: maximize, minimize +and undock the window. + + +There's a small icon on the left side of the title bar which can be clicked +to show a context menu with commands related to the window. + + + + + + + + +<guilabel>Property Editor</guilabel> pane + +In the Property Editor pane you can change properties of the object +displayed in the active window. Depending on the context, the pane is +consisted of one or more tabs. The first, always visible tab, Properties, +contains the list of available properties. + + + +Rules for using the Property Editor: + +Each row contains a single property. + + +You can use the mouse or the keyboard to change values of particular +properties. + + + +Most frequently used types of property values are: + +a number; you can enter the value directly +or increase or decrease its value by clicking with the &LMB; on the arrows. + + + +text +drop down list of values +Yes/No; +you can toggle the value by clicking on the button; +Yes (true) means that the button is +toggled on, >No (false) means that +the button is toggled off. + + + + + + +There is no need to confirm a changed value: changes are visible immediately +after moving to a different row of the Property Editor's list or by pressing +the Enter key. + + + +Names of the recently changed properties that not yet were stored in the +database are marked with bold text. + + + + +After changing the value of a property, a special Undo changes +button appears on the right side of the Property Editor's list. + +By clicking it you can revert the value of the property to the original value +that was loaded from the database upon opening the database object. The button +is only visible when the property is actually highlighted. + + + + + +The Property Editor pane is empty if: +no single database object's window is opened, or + + +the active database object's window does not offer properties; it is usually +the case when it is opened in Data View instead of Design View + + + + + + + + + + + + + + + Opening an existing &kexi; database file + + + + To open an existing &kexi; database file: + + + select it in the Open Existing Project + dialog; or + + + open it by clicking on the .kexi file icon. + + + + + + Opening a database file in the <guilabel>Open Existing + Project</guilabel> dialog + + + + Run &kexi;. + You should see Choose Project startup dialog. + Choose Open Existing Project tab. + You will see the following dialog: + + + + From Current location drop down box, pick a folder + containing a file you are looking for. + + + You can either pick a file or enter its name in the + Location: box. + + + Click OK. + + + + + + Notes + + + + By default the Filter: drop down list has + Kexi Database File-Based Project selected. + In case the file you are looking for has an other extension, + you can change the selection of the Filter: + drop down list to All Files to display + all available files (regardless of an extension). + + + If you have selected a file of an external type, like a MS Access .mdb + file, &kexi; will provide you with the option to import the file. + + + + If you have selected a connection data file + (with .kexic extension) or a shortcut to a project on + database server file (with .kexis extension), &kexi; + will display appropriate dialogs. + + + + + + + + Opening an existing &kexi; database file by clicking on .kexi file's icon + + + Click file's icon using your file manager or desktop. + &kexi; will open this database project automatically. + + + + + Notes + + + Note about database files accessed remotely. + You may want to open a database file that is located on a remote + source (⪚ a web or FTP server or a MS Windows network share). + K Desktop Environment allows you to open files from remote sources + directly in applications and to save changes back to the source, but + this is not the case with database files. By clicking on a database + file located on a remote source, a copy of the file will be + downloaded to a temporary directory on your computer and all your + changes will be made to this local file. The remote original of + the file will remain unchanged, so it's recommended to copy + (download) the file to your computer first, then open the file and + copy it back to the remote source if you want to make it up to date. + + + + + + + + Using built-in help + + + + The following ways to get built-in help in &kexi; are available: + + + The Handbook in form of electronic document. + + The Handbook is available by pressing F1 + key or selecting Help&kexi; + Handbook from the menubar. + + + + What's This? hints. + + Select HelpWhat's + This?from the menu bar and click on + an area of the application to get hints about it. + + + + + + diff --git a/doc/kexi/building.docbook b/doc/kexi/building.docbook new file mode 100644 index 000000000..9b900c778 --- /dev/null +++ b/doc/kexi/building.docbook @@ -0,0 +1,248 @@ + + + +Building Simple Databases + +Introduction + +To learn the basics of &kexi;, you could build a simple database +utilizing most elementary &kexi;'s features. To make things simpler, +advanced database design topics will not be covered here. + + +Start by creating a new empty Phone Book. + + + +Having a new empty database project, perform the following steps: + +Design database tables. Read . +Enter data into tables. Read . +Design database queries. Read . +Design forms. Read . +Use forms to enter data. Read . + + + + +Designing Database Tables + +First, there will be two tables added to your database: +persons and phone_numbers. +These are exactly the same tables as described in chapter Database and spreadsheet. +A layout for Persons can be found in section +Data integrity and validity +in that chapter. + + + + + +Select InsertTable + from the Menubar. You can also use the button Create +object: table on the Project +Navigator's toolbar. + + + + +The Table Designer's window will appear. Looking at the top of designer's window +you will notice that &kexi; proposed you a generic name like +template for the new table. The table design is not saved +yet so you will be able to assign more proper name later. Moreover, because of +the same reason, the table name is not yet visible in the +Project Navigator. + + + + + + +The Table Designer window + +Table Designer window consists of following columns: + +PK - Primary Key. + + +Field Caption - caption of the field +which will be displayed during data entering. + + +Data Type - a combo box containing a list of data types, +allowing to set a main rule for entered data for a given field. For example, +when an integer number data type is set for a field, a database user will not +able to enter letter characters into this field. + + +Comments - you can enter here any information useful for +understanding what the given field is provided for. This additional text will +be saved within the table design and only visible in design mode. + + + +In the Table designer window, every row corresponds to +a single table field. You can recognize you are in design +mode because the +Switch to Design View mode button is toggled on within +the main &kexi; toolbar. + + + + +Designing the <emphasis>Persons</emphasis> table + +In the first row click on the cell in the Field Caption +column and enter Name as field caption. + + +Notes about field names and captions + +Every table field must have a name and a caption, these cannot be empty. + + +Field name is a word used by the database, usually not visible for users of the database application. The name may not contain special (national) characters (like ±, ¶, Ü) +or space characters. The name must only contain roman letters, + +numbers and underscore sign "_". Use the latter instead of +spaces or dashes. + + +Field names must be started with a letter or underscore sign +"_", never with a number. + + +It does not matter whether you are using small or capital letters. +For &kexi; the database name "Persons" is the same as +"persons". + + +Field caption, on the other hand, allows you to enter any letters and special characters. It will be displayed for users of the database application. + + + + + + +In a similar way, enter the following fields into the table design: +surname +street +house_number +city + + + + +All the above fields, except house_number, are of type +text. +Change house_number field's type to integer +number. To do this, click on a cell in the Data +Type column, house_number row and then +click on drop down list's button +(you can also press F4 or +&Alt;Down. The list +of data types will appear. Select the Integer number type. + + +From now on, the house_number field only accepts numbers. + + + + +Persons table design is ready. Click +Switch to Data View button on the toolbar to finish +designing and switch to Data View for the table. This allows you entering +data into the table. + + + +As the design is not yet saved in the database, the Save Object As +dialog window appears. You need to specify the name for the new table. + + + +&kexi; offers a generic name like Table1. +To change the name, enter Persons into the +Caption field and press the +Enter key or click the OK +button. The Caption field will be used to display the +table to database end-users, ⪚ as a form. Unlike the name, the caption can +contain any characters including spaces and special characters. + + +Note that filling the Caption field automatically fills +the Name field. For your convenience the rule for using +only letters, numbers and the "_" character is kept. You +can alter the contents of the Name field if you want to. + + + + +You are asked about an agreement for automatic adding of primary key to the table. + + Click Add primary key +button to continue. + + + + +The Persons table has been created and opened in Data View. +Its name appears in the Project Navigator pane. + + + + +Create the phone_numbers table, in a similar +way as persons table. + + + +Create a person field of type Integer +number and phone of type Text. +Do not use a number type here because phone numbers can have many different +forms and prefixes. + + + +Click Switch to +Data View button on the toolbar and enter Phones +caption for the table. As for your previous table, allow &kexi; to automatically +create a primary key. + + + + + + + +&enteringdataintotables; + +&querydesigning; + +&designingforms; + +&enteringdatausingforms; + + + diff --git a/doc/kexi/comparing.docbook b/doc/kexi/comparing.docbook new file mode 100644 index 000000000..f213ac042 --- /dev/null +++ b/doc/kexi/comparing.docbook @@ -0,0 +1,98 @@ + + + + + Comparing &kexi; to other database applications + + + Although different database applications tend to provide similar + functionality, they often use different terminology. For your + convenience, this appendix shows how the terminology used in + &kexi; corresponds to that used by other database applications. + Thus, this chapter may be useful when migrating databases from + one application to another. + + + + Data types + + + The table below shows how the data types in &kexi; correspond + to data types in other database applications. + + + Some of the data types listed here are + sub-types of other types. For example, + the Long text type is a sub-type of the + Text type. To use a sub-type in + &kexi;, you should select the corresponding basic type (in + this case, Text) in the table designer, and then select the + sub-type using the Subtype setting in the + Properties Editor. + + + + Comparison of data types used in &kexi; and other database + applications + + + + + &kexi; + MS Access + dBase/FoxPro + Paradox + + + + + Text (Text) + Text + Character + Alphanumeric + + + Long text (Long text) + Memo + Memo + Memo + + + Date/Time (Date/Time) + Date, Time + Date + DateTime + + + + Integer Number (Integer Number) + Number (Integer) + Numeric + Integer + + + Big Integer Number (Big Integer Number) + Long Integer + Numeric + Long Integer + + + Floating Point Number (Floating Point Number) + Single/Double precision number + Float + Number + + + +
    +
    +
    diff --git a/doc/kexi/configuration.docbook b/doc/kexi/configuration.docbook new file mode 100644 index 000000000..f3d134f7f --- /dev/null +++ b/doc/kexi/configuration.docbook @@ -0,0 +1,230 @@ + + + + + Configuring &kexi; + + + + This chapter describes how you can configure &kexi; to suit your + own needs and preferences. + + + + + Window Layout + + + &kexi; provides a Mutiple Document + Interface (MDI). This means that you can have + several database objects (such as tables, queries, forms and + scripts) open at the same time and in the same &kexi; main + window. Each database object is shown in a child + window within the main window. + + + There is a choice of two MDI modes available, allowing a choice + of how child windows are managed and displayed. The two modes + are: + + IDEAl Mode; and + Childframe Mode. + + These modes are described in the following two sections. You + can change the MDI mode from the MDI + Mode sub-menu under the Window + menu. Note that changing the MDI mode requires &kexi; to be + restarted before the new mode takes effect. + + + + IDEAl mode + + + + IDEAl mode is the default MDI mode, and may be familiar from + other &kde; applications. In this mode, a single child window + is shown maximized within the &kexi; main window at once. + A tab bar, containing one tab for each child window, allows + other child windows to be viewed by simply clicking on the + relevant tab. + + + + + Childframe mode + + + + In Childframe mode, child windows are displayed in the + main &kexi; window, but need not be maximized within it. + In order to use Childframe mode, you need to select + + Window, + MDI Mode, + Childframe Mode + from the menu. + + + Each child window has a titlebar with buttons for maximizing, + minimizing and closing it. They can also be moved and resized + within the main window in the normal way (for example, they + can be moved by clicking and dragging the title bar). + + + The buttons behave as follows: the right-most button closes + the child window. The button on its left maximizes the child + window - note this causes the buttons to move to the top right + of the main window, above the Properties + editor if it is open. The next button to the left + toggles the child window between minimized and restored. + + + The left-most button detaches, or + undocks, the child window, allowing it + to be moved out of the main window. For more information on + docking and undocking windows, see the next section. + + + + + + + Docking and Undocking Windows + + + By default, the Project Navigator and + Properties Editor panels are displayed as + part of the main &kexi; window. It is possible to + undock each panel, so that it is + displayed in a separate window. Once undocked, it is possible + to dock the panel so it appears back in + the main window again. + + + In Childframe + mode, it is also possible to undock child windows. For + example, a child window showing a database table could be + undocked, allowing the child window showing the table to be + maximized on the screen. + + + It can be useful to undock a window when using: + + + + a small screen; + + + + + large tables, queries or forms; and/or + + + + + more than one montitor. + + + + + + + Docking and undocking side panels + + + The Project Navigator and + Properties Editor side panels may be + undocked by either: + + + + double-clicking on the 'grip' bar at the top of the + panel; or + + + + + clicking once on the arrow at the top of the panel, next + to the cross. + + + + + + + Once undocked, panel windows may be docked into the main + window again similarly to undocking: + + + + double-clicking on the 'grip' bar at the top of the window; or + + + + + clicking once on the arrow at the top of the panel, next + to the cross. + + + + + + + + + Docking and undocking child windows + + + Child windows may be docked and undocked in Childframe mode + only. + + + In Childframe mode, child windows may be undocked by: + + + + right-clicking in the tab bar, on the tab corresponding + to the window to be undocked, and selecting + Undock; or + + + + + + right-clicking on the title bar of the child window, and + selecting Undock; or + + + + + + if the child window is not + maximized, clicking the arrow in the top right corner of + the child window (next to the minimize, maximize and + close buttons for that child window); + + + + + + if the child window is maximized, clicking the arrow to + the right of the menu bar (next to the minimize, restore + and close buttons for that child window). + + + + + + + To dock a child window, right-clicking in the tab bar, on the + tab corresponding to the window to be docked, and select + Dock. + + + + + diff --git a/doc/kexi/contact-example.png b/doc/kexi/contact-example.png new file mode 100644 index 0000000000000000000000000000000000000000..9b2e5dbf4ceb7cf8c978f573268b78555e915eaa GIT binary patch literal 2392 zcmeHI_fyl^7XL;hq7?DL!a^jmP;^9!QdUEem6jC(qC|)^>Agz}(jtq9lm}822?~qO zLV!RtNbe;J2#AD0WDy8LLTI4{BFPKuyqSIPUwH4#=brn+J#+47?tDJyrdlJ-j>#Vb z06-jJZfqmi@q$$-A|%LtSqXdq5CW_%ZkzD`AOCwVz~l4w_}kn3H71`%-=F-GJ4xN6 zj&a6EIMgA|#NgK02xsEc?gWE3$>7lhH3#5L3b4eRSFvxGJ0UGRud>7ML7+OsaQ$oPSJ+PqV8cRp z&3u${mKiL{^o*zRIkf2|gt7h=0~2Kp1Wfs7d5D&r^qEs9q?II&o;-T^sL&zM-vR)E z1YS5FeIfw>z|sg~quWuF%QU{#EL9%7wy(R|%2|BB9TQYb7AJ3Xy1x_YGq*J!wmGlx zcG#vZ&og_6H$1BT1pZ+q<4lhJ{(Rs1tA(7eZy#(Ze`8k{FLLHpI{(ngg!P1CQhI#x ze}QGF;Fo+)gU@7D${M!7BK|Q(W_%_45%UdNV5GcFa~*pwE5q!o;(F2>IC}Q#ivgj+ zbcQ#juIqlpAzGePHhu2muFEYkl8sFtnp#n|dE~|Cn-TOsNZpDEWked8CUdo;)DH>{qd-5e z_ic8)QjzfbXQvNc5gA4jIr73JBksKScjEt*Sx7f{h%v6WbhUDUyvW(F#=~|Hd@I!` zf)K4OsM=!BoswCk=(MKw?IcYPnu#@#JATZc(osoYA!W{EEe%(DZNzYh=4b4h{+_)8 zr@A)Ji=Quz|1u4tJ!*{mGxH(_mkNhwT9wnT-8azFUbxir@xU1NZR@mk<;+ zSU@(5IzZSpP901NO0XUC)3m<}!9UPMd>j(<{j%G{!)(7dM|{jI@m836DkV%3X}OBB zt?t%&IlT~VoLw|#BDyE`#v=kJ+TGnqUQD4-knZliF2Yr_&GmhP=SQL8YY+57&CH6W)MFd4 zDl3x33yJBsBBeL=LsH<00sRKRmvxya!f7!2{HX-F?Ez^XkOS|_aF`&S1OeH8UsRI; zN%sa(v#cM12ykHlw%@P~c|;Ol9eGsL?;b#Og`8uZu-J7u77L-KH0;4Q7RxgoBg4bh zCG?dT}(--rT{_WNOlziNdhWhyGukU6>2(#Q(wZ&572 zsn+X@%gh8@O}Q9_i$`736Gw%a{p#$s1+j3`M!9Kk58dON{@!4V-%IZ#GSwZc$Cp5A zNp#7+6m~UnxG1v1NE;w@XfSPC*)h}<{YN)H5tVcf#feIUY#B);#-8Ip#{A@b8|w>X zIdq~?t!#mB#pq)d(!wmL%haI+bZssB^l+Abf%Eo-_A|!;FUB3`Xh(shg-t-BVY@Sh zc9$8i)L=SEzQFAXZiJm}GitSg3`}=*pp%L7p4Q^P&tL+xLog#}-cL8xCA? z`Uf;WC|Qoa-OH_u$7)wOecO3cUn3W*S?yeRFc%I+gH?ARR|RD_v>xvPqC3B74aNw* O2>@Y&G_LyDCFx(i@XL4r literal 0 HcmV?d00001 diff --git a/doc/kexi/credits.docbook b/doc/kexi/credits.docbook new file mode 100644 index 000000000..6b910547f --- /dev/null +++ b/doc/kexi/credits.docbook @@ -0,0 +1,63 @@ + + + +Credits and License + + + &kexi; Copyright 2002-2006 The &kexi; Team + + &kexi; Developers: + + Jaroslaw Staniek / OpenOffice Polska js@iidea.pl + + + Lucijan Busch lucijan@kde.org + + + Cedric Pasteur cedric.pasteur@free.fr + + + Adam Pigg adam@piggz.fsnet.co.uk + + + Martin Ellis martin.ellis@kdemail.net + + + Sebastian Sauer mail@dipe.org + + + Christian Nitschkowski segfault_ii@web.de + + + Peter Simonsson psn@linux.se + + + &Joseph.Wenninger; jowenn@kde.org + + + Seth Kurzenberg seth@cql.com + + + Laurent Montel montel@kde.org + + + Till Busch till@bux.at + + + + + + Documentation by Martin A. Ellis martin.ellis@kdemail.net, + Jaroslaw Staniek js@iidea.pl + with contributions from Anne-Marie Mahfouf, Raphael Langerhorst, Michal Kubicki and Aron Stansvik. + + + + +&underFDL; +&underLGPL; + + diff --git a/doc/kexi/database.docbook b/doc/kexi/database.docbook new file mode 100644 index 000000000..e89afa55b --- /dev/null +++ b/doc/kexi/database.docbook @@ -0,0 +1,649 @@ + + + +Introduction to Databases + + +What Is a Database? + +You can define a database as a collection of data on one topic. +It is organised in a way allowing to easily browse the information, +make changes or add new items. + + +Look at this diagram for one of the above examples: a simple phone book. + + + A diagram of a phone number database + + + + + + A diagram of a phone number database + + + + +The above picture shows a set of two contacts each of which is +presented on a separate card. It appears that such a card can +constitute a single row in a table: + + +Contacts table + + +

    + +&koshell;'s Side Pane + + + + &koshell;'s Main View + + + +&koshell; Insert Object dialog + +The Color Range dialogThe Convert Image Type dialogThe Image Properties dialogThe Image Size dialogThe Rotate Image dialogThe Separate Image dialogThe Shear Image dialogThe Substrate dialogThe Convert Layer Type dialogThe Drop Shadow dialogThe Histogram dialogThe Layer Properties dialogThe Layer Size dialogThe New Adjustment Layer dialogThe New Layer dialogThe Rotate Layer dialogThe Shear Layer dialogThe Blur dialogThe Brightness / Contrast dialogThe Bumpmap dialogThe Color Adjustment dialogThe Color to Alpha dialogThe Color Transfer dialogThe Custom Convolution dialogThe Emboss dialogThe Filters Gallery dialogThe Gaussian Noise Reduction dialogThe Lens Correction dialogThe Image Restoration dialogThe Oilpaint dialogThe Pixelize dialogThe Raindrops dialogThe Random Noise dialogThe Random Pick dialogThe Round Corners dialogThe Small Tiles dialogThe Sobel dialogThe Unsharp Mask dialogThe Wave dialogThe Wavelet Noise Reduction dialogThe Add Palette dialogThe Document Information dialogThe Overview tabThe Histogram tabThe Tool tab for BrushThe Tool tab for LineThe Tool tab for RectangleThe Tool tab for StarThe Tool tab for DuplicateThe Tool tab for Paint with FiltersThe Tool tab for TransformThe Tool tab for CropThe Tool tab for Contiguous FillThe Tool tab for GradientThe Tool tab for TextThe Tool tab for Color PickerThe Tool tab for Select toolsThe Tool tab for Select ContiguousThe Tool tab for Select MagneticThe HSV tabThe RGB tabThe Gray tabThe Palettes tabThe Watercolors tabThe Layers tabThe Script Manager tabThe File toolbarThe Edit toolbarThe Navigation toolbarThe Krita toolbarDrawing a Bezier curveModifying a Bezier curveA finished Bezier curvePainting with filtersThe Brushes and Stuff toolbarThe Brush Shapes paletteThe Brush Shapes palette with the Autobrush +tabThe Brush Shapes palette with the Custom Brush +tabThe Gradients paletteThe Patterns paletteThe Patterns palette with the Custom Pattern tab selected