From f7e7a923aca8be643f9ae6f7252f9fb27b3d2c3b Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Sat, 3 Dec 2011 11:05:10 -0600 Subject: Second part of prior commit --- tde-i18n-sv/docs/tdevelop/Makefile.am | 4 + tde-i18n-sv/docs/tdevelop/Makefile.in | 613 +++ .../docs/tdevelop/kde_app_devel/Makefile.am | 4 + .../docs/tdevelop/kde_app_devel/Makefile.in | 635 +++ .../docs/tdevelop/kde_app_devel/appwizard.png | Bin 0 -> 35163 bytes .../docs/tdevelop/kde_app_devel/index.cache.bz2 | Bin 0 -> 22461 bytes .../docs/tdevelop/kde_app_devel/index.docbook | 1870 +++++++++ .../docs/tdevelop/kde_app_devel/kscribblefiles.png | Bin 0 -> 12785 bytes tde-i18n-sv/docs/tdevelop/kdearch/Makefile.am | 4 + tde-i18n-sv/docs/tdevelop/kdearch/Makefile.in | 635 +++ tde-i18n-sv/docs/tdevelop/kdearch/index.cache.bz2 | Bin 0 -> 29613 bytes tde-i18n-sv/docs/tdevelop/kdearch/index.docbook | 3680 ++++++++++++++++++ tde-i18n-sv/docs/tdevelop/kdearch/whatsthis.png | Bin 0 -> 5671 bytes tde-i18n-sv/docs/tdevelop/tdevelop/Makefile.am | 4 + tde-i18n-sv/docs/tdevelop/tdevelop/Makefile.in | 635 +++ tde-i18n-sv/docs/tdevelop/tdevelop/SF-general.png | Bin 0 -> 7758 bytes tde-i18n-sv/docs/tdevelop/tdevelop/SF-indent.png | Bin 0 -> 8687 bytes tde-i18n-sv/docs/tdevelop/tdevelop/SF-other.png | Bin 0 -> 7115 bytes .../tdevelop/tdevelop/adv-build-management.docbook | 172 + .../docs/tdevelop/tdevelop/app-changelog.docbook | 89 + .../docs/tdevelop/tdevelop/app-files.docbook | 1684 ++++++++ .../docs/tdevelop/tdevelop/app-menu.docbook | 72 + .../docs/tdevelop/tdevelop/app-misc-info.docbook | 28 + .../tdevelop/tdevelop/app-uimodes-examples.docbook | 174 + .../tdevelop/tdevelop/applicationwizard.docbook | 1382 +++++++ .../docs/tdevelop/tdevelop/automake-file-popup.png | Bin 0 -> 9592 bytes .../docs/tdevelop/tdevelop/automake-manager.png | Bin 0 -> 9499 bytes .../tdevelop/automake-subproject-popup.png | Bin 0 -> 7735 bytes .../tdevelop/tdevelop/automake-target-popup.png | Bin 0 -> 10434 bytes .../docs/tdevelop/tdevelop/automakemanager.png | Bin 0 -> 11921 bytes .../docs/tdevelop/tdevelop/build-commands.png | Bin 0 -> 2958 bytes .../tdevelop/tdevelop/build-configurations.png | Bin 0 -> 10084 bytes .../docs/tdevelop/tdevelop/build-menu-automake.png | Bin 0 -> 3935 bytes tde-i18n-sv/docs/tdevelop/tdevelop/build-menu.png | Bin 0 -> 7801 bytes .../docs/tdevelop/tdevelop/class-browsers.docbook | 89 + tde-i18n-sv/docs/tdevelop/tdevelop/classview.png | Bin 0 -> 5994 bytes .../docs/tdevelop/tdevelop/commands.docbook | 2999 ++++++++++++++ .../tdevelop/configure-adddialog-baselibs.png | Bin 0 -> 7220 bytes .../tdevelop/tdevelop/configure-adddialog-qt.png | Bin 0 -> 13810 bytes .../docs/tdevelop/tdevelop/configure-adddialog.png | Bin 0 -> 11408 bytes .../tdevelop/configure-doctree-DevHelp.png | Bin 0 -> 40485 bytes .../tdevelop/tdevelop/configure-doctree-TOC.png | Bin 0 -> 42439 bytes .../tdevelop/configure-doctree-bookmark.png | Bin 0 -> 30628 bytes .../tdevelop/configure-doctree-general.png | Bin 0 -> 48312 bytes .../tdevelop/configure-doctree-textsearch.png | Bin 0 -> 7275 bytes .../docs/tdevelop/tdevelop/configure-docu-chm.png | Bin 0 -> 5716 bytes .../tdevelop/tdevelop/configure-docu-custom.png | Bin 0 -> 5536 bytes .../tdevelop/tdevelop/configure-docu-devhelp.png | Bin 0 -> 5747 bytes .../docs/tdevelop/tdevelop/configure-docu-dox.png | Bin 0 -> 5762 bytes .../docs/tdevelop/tdevelop/configure-docu-edit.png | Bin 0 -> 5745 bytes .../tdevelop/tdevelop/configure-docu-general.png | Bin 0 -> 14200 bytes .../docs/tdevelop/tdevelop/configure-docu-toc.png | Bin 0 -> 5902 bytes .../docs/tdevelop/tdevelop/configure-editor.png | Bin 0 -> 4565 bytes .../tdevelop/tdevelop/configure-file-selector.png | Bin 0 -> 11852 bytes .../tdevelop/tdevelop/configure-file-templates.png | Bin 0 -> 20069 bytes .../docs/tdevelop/tdevelop/configure-general.png | Bin 0 -> 15346 bytes .../tdevelop/configure-project-buildconfig.png | Bin 0 -> 3141 bytes .../tdevelop/configure-project-configure.png | Bin 0 -> 14552 bytes .../tdevelop/tdevelop/configure-project-cpp.png | Bin 0 -> 18212 bytes .../tdevelop/configure-project-cppoptions.png | Bin 0 -> 9456 bytes .../tdevelop/tdevelop/configure-project-doc.png | Bin 0 -> 20327 bytes .../tdevelop/tdevelop/configure-project-make.png | Bin 0 -> 10488 bytes .../tdevelop/tdevelop/configure-project-run.png | Bin 0 -> 12127 bytes .../docs/tdevelop/tdevelop/configure-select.png | Bin 0 -> 7098 bytes .../docs/tdevelop/tdevelop/configure-snippets.png | Bin 0 -> 7973 bytes .../tdevelop/tdevelop/create-new-project-cvs.png | Bin 0 -> 11413 bytes .../docs/tdevelop/tdevelop/create-new-project.png | Bin 0 -> 13357 bytes .../docs/tdevelop/tdevelop/createnewproject.png | Bin 0 -> 21902 bytes .../tdevelop/tdevelop/createnewprojectoptions.png | Bin 0 -> 9183 bytes tde-i18n-sv/docs/tdevelop/tdevelop/credits.docbook | 40 + tde-i18n-sv/docs/tdevelop/tdevelop/cvs.docbook | 133 + .../docs/tdevelop/tdevelop/debugger.docbook | 337 ++ .../tdevelop/tdevelop/doctree-add-bookmark.png | Bin 0 -> 15525 bytes .../docs/tdevelop/tdevelop/doctree-reduced.png | Bin 0 -> 10323 bytes tde-i18n-sv/docs/tdevelop/tdevelop/doctree.png | Bin 0 -> 9234 bytes tde-i18n-sv/docs/tdevelop/tdevelop/doctreeview.png | Bin 0 -> 5814 bytes .../docs/tdevelop/tdevelop/documentation.docbook | 73 + .../docs/tdevelop/tdevelop/documents-contents.png | Bin 0 -> 9417 bytes .../docs/tdevelop/tdevelop/documents-search.png | Bin 0 -> 6089 bytes .../tdevelop/tdevelop/edit-doctree-TOC-entry.png | Bin 0 -> 15771 bytes tde-i18n-sv/docs/tdevelop/tdevelop/editing.docbook | 612 +++ .../docs/tdevelop/tdevelop/editor-ctags-lookup.png | Bin 0 -> 11210 bytes .../docs/tdevelop/tdevelop/editor-ctags-menu.png | Bin 0 -> 3118 bytes .../tdevelop/tdevelop/editor-ctags-regenerate.png | Bin 0 -> 4250 bytes .../docs/tdevelop/tdevelop/editor-find-menu.png | Bin 0 -> 2938 bytes .../docs/tdevelop/tdevelop/editor-search-doc.png | Bin 0 -> 13168 bytes .../tdevelop/tdevelop/editor-switch-header.png | Bin 0 -> 9707 bytes tde-i18n-sv/docs/tdevelop/tdevelop/empty-ide.png | Bin 0 -> 12107 bytes .../docs/tdevelop/tdevelop/file-browsers.docbook | 67 + .../tdevelop/tdevelop/file-list-close-selected.png | Bin 0 -> 10426 bytes .../tdevelop/tdevelop/file-list-session-create.png | Bin 0 -> 12019 bytes .../tdevelop/file-list-session-default.png | Bin 0 -> 2731 bytes .../docs/tdevelop/tdevelop/file-selector.png | Bin 0 -> 9104 bytes tde-i18n-sv/docs/tdevelop/tdevelop/filetree.png | Bin 0 -> 6924 bytes .../docs/tdevelop/tdevelop/find-in-files.png | Bin 0 -> 10522 bytes tde-i18n-sv/docs/tdevelop/tdevelop/folded-tabs.png | Bin 0 -> 4567 bytes .../docs/tdevelop/tdevelop/getting-started.docbook | 4098 ++++++++++++++++++++ .../docs/tdevelop/tdevelop/importdirectory.png | Bin 0 -> 15355 bytes tde-i18n-sv/docs/tdevelop/tdevelop/index.cache.bz2 | Bin 0 -> 102496 bytes tde-i18n-sv/docs/tdevelop/tdevelop/index.docbook | 694 ++++ .../docs/tdevelop/tdevelop/kdcop_browsing.png | Bin 0 -> 19027 bytes .../docs/tdevelop/tdevelop/nutshell.docbook | 376 ++ .../docs/tdevelop/tdevelop/open-recent-project.png | Bin 0 -> 20250 bytes .../docs/tdevelop/tdevelop/plugin-tools.docbook | 731 ++++ .../tdevelop/tdevelop/problem-report-all-todos.png | Bin 0 -> 6788 bytes .../tdevelop/tdevelop/problem-report-marks.png | Bin 0 -> 6309 bytes .../docs/tdevelop/tdevelop/problem-report-todo.png | Bin 0 -> 9655 bytes .../tdevelop/tdevelop/project-advanced.docbook | 111 + .../tdevelop/tdevelop/project-management.docbook | 1297 +++++++ .../docs/tdevelop/tdevelop/raw-project-warning.png | Bin 0 -> 6619 bytes tde-i18n-sv/docs/tdevelop/tdevelop/run-button.png | Bin 0 -> 2889 bytes .../docs/tdevelop/tdevelop/script_location.png | Bin 0 -> 13761 bytes .../tdevelop/tdevelop/select-user-interface-0.png | Bin 0 -> 13270 bytes .../tdevelop/tdevelop/select-user-interface.png | Bin 0 -> 22812 bytes tde-i18n-sv/docs/tdevelop/tdevelop/setup.docbook | 3011 ++++++++++++++ .../tdevelop/split-source-header-navigate.png | Bin 0 -> 14283 bytes .../docs/tdevelop/tdevelop/split-source-header.png | Bin 0 -> 6293 bytes .../docs/tdevelop/tdevelop/split-windows.png | Bin 0 -> 5657 bytes .../docs/tdevelop/tdevelop/split-workspace.png | Bin 0 -> 4144 bytes .../docs/tdevelop/tdevelop/survey-manual.docbook | 329 ++ .../tdevelop/tdevelop/tdevelop-ideal-mode-0.png | Bin 0 -> 23800 bytes .../docs/tdevelop/tdevelop/tdevelop-ideal-mode.png | Bin 0 -> 34432 bytes .../tdevelop/tdevelop/tdevelop-install.docbook | 1290 ++++++ .../docs/tdevelop/tdevelop/tdevelop-mdi-mode.png | Bin 0 -> 36649 bytes .../tdevelop/tdevelop/tdevelop-scripting.docbook | 74 + .../docs/tdevelop/tdevelop/tdevelop-survey.docbook | 776 ++++ .../tdevelop/tdevelop/tdevelop-tabbed-mode.png | Bin 0 -> 36870 bytes .../tdevelop/tdevelop/tdevelop-toplevel-mode.png | Bin 0 -> 31662 bytes .../docs/tdevelop/tdevelop/tutorial-hello-new.png | Bin 0 -> 42151 bytes .../tdevelop/tdevelop/tutorial-hello-options.png | Bin 0 -> 3586 bytes .../tdevelop/tdevelop/tutorial-new-project.png | Bin 0 -> 20112 bytes tde-i18n-sv/docs/tdevelop/tdevelop/unixdev.docbook | 641 +++ tde-i18n-sv/docs/tdevelop/tip.database | 30 + 133 files changed, 29493 insertions(+) create mode 100644 tde-i18n-sv/docs/tdevelop/Makefile.am create mode 100644 tde-i18n-sv/docs/tdevelop/Makefile.in create mode 100644 tde-i18n-sv/docs/tdevelop/kde_app_devel/Makefile.am create mode 100644 tde-i18n-sv/docs/tdevelop/kde_app_devel/Makefile.in create mode 100644 tde-i18n-sv/docs/tdevelop/kde_app_devel/appwizard.png create mode 100644 tde-i18n-sv/docs/tdevelop/kde_app_devel/index.cache.bz2 create mode 100644 tde-i18n-sv/docs/tdevelop/kde_app_devel/index.docbook create mode 100644 tde-i18n-sv/docs/tdevelop/kde_app_devel/kscribblefiles.png create mode 100644 tde-i18n-sv/docs/tdevelop/kdearch/Makefile.am create mode 100644 tde-i18n-sv/docs/tdevelop/kdearch/Makefile.in create mode 100644 tde-i18n-sv/docs/tdevelop/kdearch/index.cache.bz2 create mode 100644 tde-i18n-sv/docs/tdevelop/kdearch/index.docbook create mode 100644 tde-i18n-sv/docs/tdevelop/kdearch/whatsthis.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/Makefile.am create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/Makefile.in create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/SF-general.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/SF-indent.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/SF-other.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/adv-build-management.docbook create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/app-changelog.docbook create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/app-files.docbook create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/app-menu.docbook create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/app-misc-info.docbook create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/app-uimodes-examples.docbook create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/applicationwizard.docbook create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/automake-file-popup.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/automake-manager.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/automake-subproject-popup.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/automake-target-popup.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/automakemanager.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/build-commands.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/build-configurations.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/build-menu-automake.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/build-menu.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/class-browsers.docbook create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/classview.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/commands.docbook create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/configure-adddialog-baselibs.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/configure-adddialog-qt.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/configure-adddialog.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/configure-doctree-DevHelp.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/configure-doctree-TOC.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/configure-doctree-bookmark.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/configure-doctree-general.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/configure-doctree-textsearch.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-chm.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-custom.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-devhelp.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-dox.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-edit.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-general.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-toc.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/configure-editor.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/configure-file-selector.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/configure-file-templates.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/configure-general.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-buildconfig.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-configure.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-cpp.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-cppoptions.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-doc.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-make.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-run.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/configure-select.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/configure-snippets.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/create-new-project-cvs.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/create-new-project.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/createnewproject.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/createnewprojectoptions.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/credits.docbook create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/cvs.docbook create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/debugger.docbook create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/doctree-add-bookmark.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/doctree-reduced.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/doctree.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/doctreeview.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/documentation.docbook create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/documents-contents.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/documents-search.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/edit-doctree-TOC-entry.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/editing.docbook create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/editor-ctags-lookup.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/editor-ctags-menu.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/editor-ctags-regenerate.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/editor-find-menu.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/editor-search-doc.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/editor-switch-header.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/empty-ide.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/file-browsers.docbook create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/file-list-close-selected.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/file-list-session-create.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/file-list-session-default.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/file-selector.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/filetree.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/find-in-files.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/folded-tabs.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/getting-started.docbook create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/importdirectory.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/index.cache.bz2 create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/index.docbook create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/kdcop_browsing.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/nutshell.docbook create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/open-recent-project.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/plugin-tools.docbook create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/problem-report-all-todos.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/problem-report-marks.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/problem-report-todo.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/project-advanced.docbook create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/project-management.docbook create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/raw-project-warning.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/run-button.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/script_location.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/select-user-interface-0.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/select-user-interface.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/setup.docbook create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/split-source-header-navigate.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/split-source-header.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/split-windows.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/split-workspace.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/survey-manual.docbook create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-ideal-mode-0.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-ideal-mode.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-install.docbook create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-mdi-mode.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-scripting.docbook create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-survey.docbook create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-tabbed-mode.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-toplevel-mode.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/tutorial-hello-new.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/tutorial-hello-options.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/tutorial-new-project.png create mode 100644 tde-i18n-sv/docs/tdevelop/tdevelop/unixdev.docbook create mode 100644 tde-i18n-sv/docs/tdevelop/tip.database (limited to 'tde-i18n-sv/docs/tdevelop') diff --git a/tde-i18n-sv/docs/tdevelop/Makefile.am b/tde-i18n-sv/docs/tdevelop/Makefile.am new file mode 100644 index 00000000000..9e41d9df652 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/Makefile.am @@ -0,0 +1,4 @@ +KDE_LANG = sv +SUBDIRS = $(AUTODIRS) +KDE_DOCS = AUTO +KDE_MANS = AUTO diff --git a/tde-i18n-sv/docs/tdevelop/Makefile.in b/tde-i18n-sv/docs/tdevelop/Makefile.in new file mode 100644 index 00000000000..3365ae4c76a --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/Makefile.in @@ -0,0 +1,613 @@ +# Makefile.in generated by automake 1.10.1 from Makefile.am. +# KDE tags expanded automatically by am_edit - $Revision: 483858 $ +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This Makefile.in 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. + +@SET_MAKE@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +subdir = docs/tdevelop +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +#>- RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ +#>- html-recursive info-recursive install-data-recursive \ +#>- install-dvi-recursive install-exec-recursive \ +#>- install-html-recursive install-info-recursive \ +#>- install-pdf-recursive install-ps-recursive install-recursive \ +#>- installcheck-recursive installdirs-recursive pdf-recursive \ +#>- ps-recursive uninstall-recursive +#>+ 7 +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive nmcheck-recursive bcheck-recursive +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +#>+ 1 +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +ARTSCCONFIG = @ARTSCCONFIG@ +AUTOCONF = @AUTOCONF@ +AUTODIRS = @AUTODIRS@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CONF_FILES = @CONF_FILES@ +CYGPATH_W = @CYGPATH_W@ +DCOPIDL = @DCOPIDL@ +DCOPIDL2CPP = @DCOPIDL2CPP@ +DCOPIDLNG = @DCOPIDLNG@ +DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@ +DEFS = @DEFS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +GMSGFMT = @GMSGFMT@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@ +KCONFIG_COMPILER = @KCONFIG_COMPILER@ +KDECONFIG = @KDECONFIG@ +KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@ +KDE_RPATH = @KDE_RPATH@ +KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MAKEKDEWIDGETS = @MAKEKDEWIDGETS@ +MCOPIDL = @MCOPIDL@ +MEINPROC = @MEINPROC@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TOPSUBDIRS = @TOPSUBDIRS@ +VERSION = @VERSION@ +XGETTEXT = @XGETTEXT@ +XMLLINT = @XMLLINT@ +X_RPATH = @X_RPATH@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +am__leading_dot = @am__leading_dot@ +am__tar = @am__tar@ +am__untar = @am__untar@ +#>- bindir = @bindir@ +#>+ 2 +DEPDIR = .deps +bindir = @bindir@ +build_alias = @build_alias@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host_alias = @host_alias@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +kde_appsdir = @kde_appsdir@ +kde_bindir = @kde_bindir@ +kde_confdir = @kde_confdir@ +kde_datadir = @kde_datadir@ +kde_htmldir = @kde_htmldir@ +kde_icondir = @kde_icondir@ +kde_kcfgdir = @kde_kcfgdir@ +kde_libs_htmldir = @kde_libs_htmldir@ +kde_libs_prefix = @kde_libs_prefix@ +kde_locale = @kde_locale@ +kde_mimedir = @kde_mimedir@ +kde_moduledir = @kde_moduledir@ +kde_servicesdir = @kde_servicesdir@ +kde_servicetypesdir = @kde_servicetypesdir@ +kde_sounddir = @kde_sounddir@ +kde_styledir = @kde_styledir@ +kde_templatesdir = @kde_templatesdir@ +kde_wallpaperdir = @kde_wallpaperdir@ +kde_widgetdir = @kde_widgetdir@ +tdeinitdir = @tdeinitdir@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +xdg_appsdir = @xdg_appsdir@ +xdg_directorydir = @xdg_directorydir@ +xdg_menudir = @xdg_menudir@ +KDE_LANG = sv +#>- SUBDIRS = $(AUTODIRS) +#>+ 1 +SUBDIRS =. kde_app_devel tdevelop kdearch +KDE_DOCS = AUTO +KDE_MANS = AUTO +#>- all: all-recursive +#>+ 1 +all: docs-am all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) +#>- @for dep in $?; do \ +#>- case '$(am__configure_deps)' in \ +#>- *$$dep*) \ +#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ +#>- && exit 0; \ +#>- exit 1;; \ +#>- esac; \ +#>- done; \ +#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdevelop/Makefile'; \ +#>- cd $(top_srcdir) && \ +#>- $(AUTOMAKE) --gnu docs/tdevelop/Makefile +#>+ 12 + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdevelop/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/tdevelop/Makefile + cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdevelop/Makefile.in +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +#>- distdir: $(DISTFILES) +#>+ 1 +distdir: distdir-nls $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done + list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + distdir=`$(am__cd) $(distdir) && pwd`; \ + top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ + (cd $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$top_distdir" \ + distdir="$$distdir/$$subdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +#>- uninstall: uninstall-recursive +#>+ 1 +uninstall: uninstall-nls uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +#>- clean: clean-recursive +#>+ 1 +clean: kde-rpo-clean clean-recursive + +#>- clean-am: clean-generic mostlyclean-am +#>+ 1 +clean-am: clean-bcheck clean-generic mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +info: info-recursive + +info-am: + +#>- install-data-am: +#>+ 1 +install-data-am: install-nls + +install-dvi: install-dvi-recursive + +install-exec-am: + +install-html: install-html-recursive + +install-info: install-info-recursive + +install-man: + +install-pdf: install-pdf-recursive + +install-ps: install-ps-recursive + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ + install-strip + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am check check-am clean clean-generic ctags \ + ctags-recursive distclean distclean-generic distclean-tags \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \ + tags-recursive uninstall uninstall-am + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: + +#>+ 2 +KDE_DIST=Makefile.in tip.database Makefile.am + +#>+ 2 +docs-am: tip.database + +#>+ 13 +install-nls: + $(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdevelop + @for base in tip.database ; do \ + echo $(INSTALL_DATA) $$base $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdevelop/$$base ;\ + $(INSTALL_DATA) $(srcdir)/$$base $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdevelop/$$base ;\ + done + +uninstall-nls: + for base in tip.database ; do \ + rm -f $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdevelop/$$base ;\ + done + + +#>+ 5 +distdir-nls: + for file in tip.database ; do \ + cp $(srcdir)/$$file $(distdir); \ + done + +#>+ 15 +force-reedit: + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdevelop/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/tdevelop/Makefile + cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdevelop/Makefile.in + + +#>+ 21 +clean-bcheck: + rm -f *.bchecktest.cc *.bchecktest.cc.class a.out + +bcheck: bcheck-recursive + +bcheck-am: + @for i in ; do \ + if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \ + echo "int main() {return 0;}" > $$i.bchecktest.cc ; \ + echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \ + echo "$$i"; \ + if ! $(CXX) $(DEFS) -I. -I$(srcdir) -I$(top_builddir) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) --dump-class-hierarchy -c $$i.bchecktest.cc; then \ + rm -f $$i.bchecktest.cc; exit 1; \ + fi ; \ + echo "" >> $$i.bchecktest.cc.class; \ + perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \ + rm -f a.out; \ + fi ; \ + done + + +#>+ 3 +final: + $(MAKE) all-am + +#>+ 3 +final-install: + $(MAKE) install-am + +#>+ 3 +no-final: + $(MAKE) all-am + +#>+ 3 +no-final-install: + $(MAKE) install-am + +#>+ 3 +kde-rpo-clean: + -rm -f *.rpo + +#>+ 3 +nmcheck: +nmcheck-am: nmcheck diff --git a/tde-i18n-sv/docs/tdevelop/kde_app_devel/Makefile.am b/tde-i18n-sv/docs/tdevelop/kde_app_devel/Makefile.am new file mode 100644 index 00000000000..9e41d9df652 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/kde_app_devel/Makefile.am @@ -0,0 +1,4 @@ +KDE_LANG = sv +SUBDIRS = $(AUTODIRS) +KDE_DOCS = AUTO +KDE_MANS = AUTO diff --git a/tde-i18n-sv/docs/tdevelop/kde_app_devel/Makefile.in b/tde-i18n-sv/docs/tdevelop/kde_app_devel/Makefile.in new file mode 100644 index 00000000000..07326b37dd2 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/kde_app_devel/Makefile.in @@ -0,0 +1,635 @@ +# Makefile.in generated by automake 1.10.1 from Makefile.am. +# KDE tags expanded automatically by am_edit - $Revision: 483858 $ +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This Makefile.in 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. + +@SET_MAKE@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +subdir = docs/tdevelop/kde_app_devel +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +#>- RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ +#>- html-recursive info-recursive install-data-recursive \ +#>- install-dvi-recursive install-exec-recursive \ +#>- install-html-recursive install-info-recursive \ +#>- install-pdf-recursive install-ps-recursive install-recursive \ +#>- installcheck-recursive installdirs-recursive pdf-recursive \ +#>- ps-recursive uninstall-recursive +#>+ 7 +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive nmcheck-recursive bcheck-recursive +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +#>+ 1 +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +ARTSCCONFIG = @ARTSCCONFIG@ +AUTOCONF = @AUTOCONF@ +AUTODIRS = @AUTODIRS@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CONF_FILES = @CONF_FILES@ +CYGPATH_W = @CYGPATH_W@ +DCOPIDL = @DCOPIDL@ +DCOPIDL2CPP = @DCOPIDL2CPP@ +DCOPIDLNG = @DCOPIDLNG@ +DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@ +DEFS = @DEFS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +GMSGFMT = @GMSGFMT@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@ +KCONFIG_COMPILER = @KCONFIG_COMPILER@ +KDECONFIG = @KDECONFIG@ +KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@ +KDE_RPATH = @KDE_RPATH@ +KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MAKEKDEWIDGETS = @MAKEKDEWIDGETS@ +MCOPIDL = @MCOPIDL@ +MEINPROC = @MEINPROC@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TOPSUBDIRS = @TOPSUBDIRS@ +VERSION = @VERSION@ +XGETTEXT = @XGETTEXT@ +XMLLINT = @XMLLINT@ +X_RPATH = @X_RPATH@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +am__leading_dot = @am__leading_dot@ +am__tar = @am__tar@ +am__untar = @am__untar@ +#>- bindir = @bindir@ +#>+ 2 +DEPDIR = .deps +bindir = @bindir@ +build_alias = @build_alias@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host_alias = @host_alias@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +kde_appsdir = @kde_appsdir@ +kde_bindir = @kde_bindir@ +kde_confdir = @kde_confdir@ +kde_datadir = @kde_datadir@ +kde_htmldir = @kde_htmldir@ +kde_icondir = @kde_icondir@ +kde_kcfgdir = @kde_kcfgdir@ +kde_libs_htmldir = @kde_libs_htmldir@ +kde_libs_prefix = @kde_libs_prefix@ +kde_locale = @kde_locale@ +kde_mimedir = @kde_mimedir@ +kde_moduledir = @kde_moduledir@ +kde_servicesdir = @kde_servicesdir@ +kde_servicetypesdir = @kde_servicetypesdir@ +kde_sounddir = @kde_sounddir@ +kde_styledir = @kde_styledir@ +kde_templatesdir = @kde_templatesdir@ +kde_wallpaperdir = @kde_wallpaperdir@ +kde_widgetdir = @kde_widgetdir@ +tdeinitdir = @tdeinitdir@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +xdg_appsdir = @xdg_appsdir@ +xdg_directorydir = @xdg_directorydir@ +xdg_menudir = @xdg_menudir@ +KDE_LANG = sv +#>- SUBDIRS = $(AUTODIRS) +#>+ 1 +SUBDIRS =. +KDE_DOCS = AUTO +KDE_MANS = AUTO +#>- all: all-recursive +#>+ 1 +all: docs-am all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) +#>- @for dep in $?; do \ +#>- case '$(am__configure_deps)' in \ +#>- *$$dep*) \ +#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ +#>- && exit 0; \ +#>- exit 1;; \ +#>- esac; \ +#>- done; \ +#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdevelop/kde_app_devel/Makefile'; \ +#>- cd $(top_srcdir) && \ +#>- $(AUTOMAKE) --gnu docs/tdevelop/kde_app_devel/Makefile +#>+ 12 + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdevelop/kde_app_devel/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/tdevelop/kde_app_devel/Makefile + cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdevelop/kde_app_devel/Makefile.in +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +#>- distdir: $(DISTFILES) +#>+ 1 +distdir: distdir-nls $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done + list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + distdir=`$(am__cd) $(distdir) && pwd`; \ + top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ + (cd $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$top_distdir" \ + distdir="$$distdir/$$subdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +#>- uninstall: uninstall-recursive +#>+ 1 +uninstall: uninstall-docs uninstall-nls uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +#>- clean: clean-recursive +#>+ 1 +clean: kde-rpo-clean clean-recursive + +#>- clean-am: clean-generic mostlyclean-am +#>+ 1 +clean-am: clean-docs clean-bcheck clean-generic mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +info: info-recursive + +info-am: + +#>- install-data-am: +#>+ 1 +install-data-am: install-docs install-nls + +install-dvi: install-dvi-recursive + +install-exec-am: + +install-html: install-html-recursive + +install-info: install-info-recursive + +install-man: + +install-pdf: install-pdf-recursive + +install-ps: install-ps-recursive + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ + install-strip + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am check check-am clean clean-generic ctags \ + ctags-recursive distclean distclean-generic distclean-tags \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \ + tags-recursive uninstall uninstall-am + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: + +#>+ 2 +KDE_DIST=appwizard.png index.docbook index.cache.bz2 kscribblefiles.png Makefile.in Makefile.am + +#>+ 24 +index.cache.bz2: $(srcdir)/index.docbook $(KDE_XSL_STYLESHEET) appwizard.png index.docbook kscribblefiles.png + @if test -n "$(MEINPROC)"; then echo $(MEINPROC) --check --cache index.cache.bz2 $(srcdir)/index.docbook; $(MEINPROC) --check --cache index.cache.bz2 $(srcdir)/index.docbook; fi + +docs-am: index.cache.bz2 + +install-docs: docs-am install-nls + $(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kde_app_devel + @if test -f index.cache.bz2; then \ + echo $(INSTALL_DATA) index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kde_app_devel/; \ + $(INSTALL_DATA) index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kde_app_devel/; \ + elif test -f $(srcdir)/index.cache.bz2; then \ + echo $(INSTALL_DATA) $(srcdir)/index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kde_app_devel/; \ + $(INSTALL_DATA) $(srcdir)/index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kde_app_devel/; \ + fi + -rm -f $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kde_app_devel/common + $(LN_S) $(kde_libs_htmldir)/$(KDE_LANG)/common $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kde_app_devel/common + +uninstall-docs: + -rm -rf $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kde_app_devel + +clean-docs: + -rm -f index.cache.bz2 + + +#>+ 13 +install-nls: + $(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kde_app_devel + @for base in appwizard.png index.docbook kscribblefiles.png ; do \ + echo $(INSTALL_DATA) $$base $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kde_app_devel/$$base ;\ + $(INSTALL_DATA) $(srcdir)/$$base $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kde_app_devel/$$base ;\ + done + +uninstall-nls: + for base in appwizard.png index.docbook kscribblefiles.png ; do \ + rm -f $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kde_app_devel/$$base ;\ + done + + +#>+ 5 +distdir-nls: + for file in appwizard.png index.docbook kscribblefiles.png ; do \ + cp $(srcdir)/$$file $(distdir); \ + done + +#>+ 15 +force-reedit: + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdevelop/kde_app_devel/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/tdevelop/kde_app_devel/Makefile + cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdevelop/kde_app_devel/Makefile.in + + +#>+ 21 +clean-bcheck: + rm -f *.bchecktest.cc *.bchecktest.cc.class a.out + +bcheck: bcheck-recursive + +bcheck-am: + @for i in ; do \ + if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \ + echo "int main() {return 0;}" > $$i.bchecktest.cc ; \ + echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \ + echo "$$i"; \ + if ! $(CXX) $(DEFS) -I. -I$(srcdir) -I$(top_builddir) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) --dump-class-hierarchy -c $$i.bchecktest.cc; then \ + rm -f $$i.bchecktest.cc; exit 1; \ + fi ; \ + echo "" >> $$i.bchecktest.cc.class; \ + perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \ + rm -f a.out; \ + fi ; \ + done + + +#>+ 3 +final: + $(MAKE) all-am + +#>+ 3 +final-install: + $(MAKE) install-am + +#>+ 3 +no-final: + $(MAKE) all-am + +#>+ 3 +no-final-install: + $(MAKE) install-am + +#>+ 3 +kde-rpo-clean: + -rm -f *.rpo + +#>+ 3 +nmcheck: +nmcheck-am: nmcheck diff --git a/tde-i18n-sv/docs/tdevelop/kde_app_devel/appwizard.png b/tde-i18n-sv/docs/tdevelop/kde_app_devel/appwizard.png new file mode 100644 index 00000000000..a66c28512b1 Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/kde_app_devel/appwizard.png differ diff --git a/tde-i18n-sv/docs/tdevelop/kde_app_devel/index.cache.bz2 b/tde-i18n-sv/docs/tdevelop/kde_app_devel/index.cache.bz2 new file mode 100644 index 00000000000..8fe8eb3ef08 Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/kde_app_devel/index.cache.bz2 differ diff --git a/tde-i18n-sv/docs/tdevelop/kde_app_devel/index.docbook b/tde-i18n-sv/docs/tdevelop/kde_app_devel/index.docbook new file mode 100644 index 00000000000..8968c49a7cc --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/kde_app_devel/index.docbook @@ -0,0 +1,1870 @@ + +KDevelop"> + + + +]> + + + + +Programmeringshandbok &tdevelop; + +2002-12-05 +2.0 + + +Ralf Nolden
Ralf.Nolden@post.rwth-aachen.de
+
+Caleb Tennis
caleb@aei-tech.com
+
+
+ + +1999 +Ralf Nolden + + +2002 +Caleb Tennis + + + + +&FDLNotice; + + +Användarguide till C++ programutveckling för K-skrivbordsmiljön (KDE) med den integrerade utvecklingsmiljön &tdevelop; + + + +KDE +KDevelop +IDE +utveckling +programmering + + +
+ + +Inledning +Medan Unix-system blir mer och mer populära även för nybörjare som arbetar med datorer, på grund av sina fördelar i form av stabilitet och funktionalitet, blir de flesta på något sätt besvikna, eftersom program inte har likadana utseenden och vart och ett beter sig annorlunda. Med KDE har utvecklare ett nästan perfekt sätt att skapa förstklassiga program för Unix-skrivbordssystem, för att få en bredare användargrupp enbart på grund av kvaliteten som programmen erbjuder. Därför blir KDE mer och mer populärt som en bas för programkonstruktion, och utvecklare vill dra fördel av möjligheterna som systemet erbjuder. + + +Vad du redan bör veta +För att använda den här programmeringshandboken på bästa sätt, antar vi att du redan känner till programspråket C++. Om du inte gör det, bör du göra dig bekant med det först. Information om C++ är tillgänglig via olika källor, antingen på skriftlig form i den lokala bokhandeln eller med handledningar på Internet. Kunskap om konstruktion av grafiska användargränssnitt krävs inte, eftersom handboken försöker täcka konstruktion av KDE-program, som också omfattar en introduktion till QT-verktygslådan samt KDE-biblioteken och konstruktion av användargränssnitt. Dessutom bör du ha bekantat dig med &tdevelop;, genom att läsa användarmanualen till &tdevelop;, som innehåller en beskrivande genomgång av funktionerna som den integrerade utvecklingsmiljön tillhandahåller. + + + +Om den här handboken +Den här handboken är skriven för att ge utvecklare en introduktion till utveckling av KDE-program genom att använda den integrerade utvecklingsmiljön KDevelop. +Följande kapitel ger därför en introduktion till hur projekt skapas, förklarar källkoden som redan skapats och visar hur den givna källkoden kan utökas med olika funktioner som verktygsrader, menyrader och vyområden. +Därefter beskrivs dialogeditorn i detalj, där det förklaras hur grafiska komponenter skapas och hur inställningar av komponentegenskaper görs i detalj för alla komponenter som tillhandahålls. +Till sist får du information om flera ämnen som utökar din kunskap om projektkonstruktion och hjälper dig lösa ytterligare problem förutom kodning, som att lägga till dokumentation om programgränssnittet och utöka handböcker. + +I nästa kapitel +Vi kommer att ta en titt på QT- och KDE-biblioteken, visa grundläggande koncept och varför saker och ting ser ut som de gör. Dessutom beskriver vi hur exempelprogrammen som tillhandahålls med QT-verktygslådan skapas genom att använda KDevelop, så att nybörjare redan kan se de första resultaten efter ett fåtal steg, och därigenom lär sig hur några av de bästa funktionerna i &tdevelop; används. + + + +I följande kapitel +Du får lära dig att: +Skapa ett program med programguiden +Vad projektskelettet redan tillhandahåller +Vad koden som redan skapats betyder +Hur man skapar egna vyer +Hur programmets funktion kan utökas med dialogrutor, menyrader och verktygsrader +Hur programmet kan göras användarvänligt genom att tillhandahålla hjälpfunktioner +Hur man skriver direktdokumentation + + + + + + + +Ytterligare information +Ytterligare information om QT- och KDE-programmering är tillgänglig från olika källor: +Programming with Qt av Matthias Kalle Dalheimer +Handbok KDevelop, som tillhandahålls med den integrerade utvecklingsmiljön KDevelop +Direktreferensen till QT-biblioteket +KDE:s webbplats för utvecklare + + +Dessutom bör du söka hjälp genom att prenumerera på de olika e-postlistorna, vars adresser är tillgängliga på nämda webbsidor, och på diskussionsgrupper i Usenet som ägnas åt användning av KDE och Unix-system samt programspråken C och C++. +För att skaffa hjälp med den integrerade utvecklingsmiljön KDevelop, kan du skicka frågor till vår e-postlista på tdevelop@tdevelop.org. Kom ihåg att KDevelop-gruppen är engagerad i att erbjuda möjligheter för dig att skapa program, och därför inte är avsett som en teknisk stödgrupp ifall program du utvecklar inte fungerar på grund av implementeringsfel eller felaktig inställning av operativsystemet. Med detta ber vi alla användare att dra fördel av e-postlistan i de fall då problem med användning av själva den integrerade utvecklingsmiljön uppstår, samt för felrapporter och förbättringsförslag av funktionerna i utvecklingsmiljön. + + + + + +KDE- och QT-biblioteken +Det norska företaget TrollTech (http://www.trolltech.com) tillhandahåller en så kallad GUI-verktygslåda, som kallas QT. GUI betyder "grafiskt användargränssnitt", och därför visas QT-baserade program med knappar, fönster etc., vilket möjliggör användarinmatning genom att synliggöra funktionerna som ett program tillhandahåller. En sådan verktygslåda behövs för att utveckla grafiska program som använder gränssnittet X-windows på Unix-system, eftersom X inte själv innehåller ett fördefinierat användargränssnitt. Även om andra verktygslådor också finns tillgängliga för att skapa användargränssnitt, erbjuder QT några tekniska fördelar som gör programkonstruktion mycket enkel. Dessutom är QT-verktygslådan också tillgänglig på Microsoft Windows-system, vilket gör det möjligt för utvecklare att tillhandahålla sina program på båda plattformarna. +KDE-gruppen (http://www.kde.org) bildades med målet att göra det mer användarvänligt att bruka Unix-system, och bestämde att QT-verktygslådan skulle användas för utveckling av en fönsterhanterare för X-windows, samt en mängd verktyg som ingår i KDE-paketen. K-skrivbordsmiljön innehåller därför huvudkomponenterna fönsterhanteraren kwm, filhanteraren kfm och startpanelen kpanel samt en mängd förstklassiga verktyg och program. Efter KDE gavs ut, tittademånga utvecklare till den nya miljön och vad den hade att erbjuda. KDE-biblioteken tillhandahåller väsentliga metoder och klasser som gör att alla program som konstrueras med dem liknar varandra och beter sig likadant, så att användaren har den stora fördelen att bara behöva vänja sig vid användning av ett specifikt program, inte vid hantering av dialogrutor och knappar. Dessutom integreras KDE-program med skrivbordet, kan fungera tillsammans med filhanteraren via drag och släpp, erbjuder sessionshantering, och mycket mer om alla funktioner som erbjuds av KDE-biblioteken används. Både QT-verktygslådan och KDE-biblioteken är implementerade med programspråket C++. Därför är de flesta program som använder sig av biblioteken också skrivna i C++. I följande kapitel tar vi en kort tur genom biblioteken för att se vad som redan tillhandahålls, och hur QT- och KDE-program i allmänhet skapas. +Både QT-verktygslådan och KDE-biblioteken är implementerade med programspråket C++. Därför skrivs också program som använder dessa bibliotek oftast i C++. I följande kapitel tar vi en snabbtur genom biblioteken för att se vad som redan tillhandahålls, och hur QT- och KDE-program skapas i allmänhet. + + +QT-verktygslådan för grafiska användargränssnitt +Som sagt, är QT-biblioteket en verktygslåda som erbjuder grafiska element som används för att skapa program med grafiska gränssnitt och behövs för programmering av X-windows. Dessutom erbjuder verktygslådan: +En komplett uppsättning klasser och metoder klara att använda till och med för programmering som inte rör grafik +En bra lösning för användarkommunikation med virtuella metoder och mekanismen med signaler och slots +En uppsättning fördefinierade grafiska gränssnittselement, som kallas "grafiska komponenter" och kan användas för att skapa synliga element +Dessutom fullständiga fördefinierade dialogrutor som ofta används i program som förlopps- och fildialogrutor + + +Därför är det mycket väsentligt att känna till QT-klasserna, även om du bara vill programmera KDE-program. För att få en inblick i grundkoncepten för att skapa och kompilera ett program med grafiskt gränssnitt, tar vi först en titt på ett exempelprogram som bara använder QT. Därefter utökar vi det till ett KDE-program. + + +Det första QT-programmet +Som vanligt måste program i C++ innehålla funktionen main(), som är programkörningens startpunkt. Eftersom vi vill att programmet ska vara synligt som grafik i fönster och erbjuda kommunikation med användaren, måste vi först veta hur de kan visas för användaren. Som ett exempel, tar vi en titt på det första exemplet som ingår i QT:s direktreferensdokumentation, och förklarar de grundläggande stegen i körningen, inklusive varför och hur programmets fönster visas: #include <qapplication.h> +#include <qpushbutton.h> + +int main( int argc, char **argv ) +{ +QApplication a( argc, argv ); + +QPushButton hello( "Hello world!", 0 ); +hello.resize( 100, 30 ); + +a.setMainWidget( &hello ); +hello.show(); +return a.exec(); +} + + +Det här programmet ritar bara upp ett fönster som innehåller en knapp med "Hello world" som text. Som för alla QT-baserade program, måste du först skapa en instans av klassen QApplication, som representeras av variabeln a. +Därefter skapar programmet en instans av klassen QPushButton som heter hello. Det här blir knappen. Konstruktorn av hello tar en sträng som parameter, som är innehållet i komponenten som blir synligt som knappens text. +Därefter anropas metoden resize() för knappen hello. Det ändrar komponentens normalstorlek (som i det här fallet är QPushButton) som den hade när den skapades, till längden 100 bildpunkter och höjden 80 bildpunkter. Till sist anropas metoden setMainWidget() och metoden show() för hello. Slutligen körs vår QApplication med a.exec(), går in i huvudhändelsesnurran och väntar till den ska returnera ett heltalsvärde till det omgivande operativsystemet för att signalera att programmet har avslutats. + + + +Referensdokumentation för Qt +Låt oss nu ta en snabb titt på referensdokumentationen för QT-biblioteket. För att göra det, starta &tdevelop; och välj "Qt" i dokumentationsflikens träd. Dokumentationsbläddraren öppnas och visar startsidan i QT-referensdokumentationen. Det här är det första stället där du kan hämta information om QT, dess klasser och tillgängliga funktioner som de tillhandahåller. Dessutom är ovanstående program det första som finns med i handledningsavsnittet. För att komma till klasserna vi vill titta på, QApplication och QPushButton, välj "Alphabetical Class List" och leta efter motsvarande namn. Följ något av dem för att ta en titt på klassdokumentationen. +Som ett alternativ kan du använda direktdokumentationen från TrollTechs QT-dokumentation. +Du kommer att se konstruktorn och alla andra metoder som klassen QApplication tillhandahåller. Om du följer en länk, får du mer information om användningen och betydelsen hos metoderna, vilket är mycket användbart om du ibland inte kan inse riktig användning eller vill ha ett exempel. Det här gäller också dokumentationen av KDE-biblioteken, som använder en liknande sorts dokumentation, därför är detta nästan allt du behöver veta om att använda klassreferenser med dokumentationsbläddraren. + +Tolkning av exemplet +Med början från QApplication, hittar du alla metoder som används i vårt första exempel: +konstruktorn QApplication() +metoden setMainWidget() +metoden exec() + + +Tolkningen av varför vi använder metoderna är mycket enkel: +Skapa en instans av klassen QApplication med konstruktorn, så att vi kan använda elementen för det grafiska gränssnittet som tillhandahålls av QT +Skapa en grafisk komponent som blir innehållet i vårt programfönster +Ange komponenten som huvudkomponent för a +Kör en instans av QApplication + + +Det andra objektet i vårt program är tryckknappen, en instans av klassen QPushButton. Av de två konstruktorer som finns för att skapa klassen, använder vi den andra. Den tar en text, som är textinnehållet i knappen. Här är det strängen "Hello world!". Därefter anropar vi metoden resize() för att ändra storlek på knappen i enlighet med dess innehåll. Knappen måste bli större för att göra strängen fullständigt synlig. +Men vad gäller för metoden show()? Nu märker du, att som de flesta andra grafiska komponenter, är QPushButton baserad på enkelt arv. Dokumentationen säger, ärver QButton. Följ länken till klassen QButton. Det visar många andra komponenter som ärvs av QPushButton, som vi senare använder för att förklara signal/slot-mekanismen. Hur som helst finns inte metoden show() listad, och därför måste den vara en metod som också tillhandahålls via arv. Klassen som QButton ärver är QWidget. Följ bara länken igen, så ser du en hel mängd metoder som klassen QWidget tillhandahåller, inklusive metoden show(). Nu förstår vi vad som gjordes i exemplet med knappen: +Skapa en instans av QPushButton, och använd den andra konstruktorn för att ange knappens text +Ändra storlek på komponenten till dess innehåll +Ange komponenten som huvudkomponent i instansen av QApplication +Tala om för den grafiska komponenten att den ska visas på skärmen genom att anropa show(), en metod som ärvts från QWidget + + +Efter att ha anropat metoden exec(), är programmet synligt för användaren, och visar ett fönster med knappen "Hello world!". Observera att program med grafiska gränssnitt beter sig något annorlunda jämfört med procedurbaserade program. Den viktigaste saken här är att programmet går in i en så kallad "huvudhändelsesnurra". Det betyder att programmet måste vänta på användarens åtgärder och därefter reagera på dem. Det betyder också, för ett QT-program, att programmet måste vara i huvudhändelsesnurran för att starta händelsehanteringen. Nästa avsnitt beskriver kortfattat vad det betyder förprogrammeraren och vad QT erbjuder för att hantera händelser. +För användare som redan är avancerade: Knappen har ingen överliggande komponent deklarerad i konstruktorn. Därför är den en toppnivåkomponent och kör med en lokal händelsesnurra som inte behöver vänta på huvudhändelsesnurran. Se dokumentationen för klassen QWidget och KDE:s biblioteksreferensguide. + + + + + + +Användarkommandon +Efter att ha läst föregående avsnitt, bör du redan känna till: +Vad QT-biblioteket tillhandahåller för program med grafiska gränssnitt, +Hur ett program som använder QT skapas, och +Var och hur du hittar information om klasser som du vill använda med dokumentationsbläddraren. + + +Nu fortsätter vi med att ge programmet "liv" genom att behandla användarhändelser. I allmänhet har användaren två sätt att kommunicera med ett program: musen och tangentbordet. Ett grafiskt användargränssnitt måste tillhandahålla metoder för båda sätten, som detekterar åtgärder och gör något som reaktion på åtgärderna. +Fönstersystemet skickar därför alla kommunikationshändelser till motsvarande program. QApplication skickar dem därefter till det aktiva fönstret som ett QEvent, och komponenterna själva måste bestämma vad som ska göras med dem. En komponent tar emot händelsen och behandlar QWidget::event(QEvent*), som avgör vilken händelse som har skett och hur reaktionen ska ske. Metoden event() gör därför den huvudsakliga händelsehanteringen. Därefter skickar metoden event() händelsen till så kallade händelsefilter som avgör vad som sker och vad som ska göras med händelsen. Om inget filter signalerar att det är ansvarigt för händelsen, anropas speciell händelsehantering. Därigenom kan vi skilja mellan: +Tangentbordshändelser: Tangenterna Tabulator och Skift+Tabulator: + +virtual void focusInEvent(QFocusEvent *) +virtual void focusOutEvent(QFocusEvent *) + + + +All övrig tangentbordsinmatning: + +virtual void keyPressEvent(QKeyEvent *) +virtual void keyReleaseEvent(QKeyEvent *) + + + +Musförflyttning: + +virtual void mouseMoveEvent(QMouseEvent *) +virtual void enterEvent(QEvent *) +virtual void leaveEvent(QEvent *) + + + +Åtgärder med musknapparna + +virtual void mousePressEvent(QMouseEvent *) +virtual void mouseReleaseEvent(QMouseEvent *) +virtual void mouseDoubleClickEvent(QMouseEvent *) + + + +Fönsterhändelser som innehåller den grafiska komponenten + +virtual void moveEvent(QMoveEvent *) +virtual void resizeEvent(QResizeEvent *) +virtual void closeEvent(QCloseEvent *) + + + + + +Observera att alla händelsefunktioner är virtuella och protected. Därför kan du implementera om händelser som du behöver i egna komponenter och ange hur din komponent ska reagera. QWidget innehåller också några andra virtuella metoder som kan vara användbara i dina program. Hur som helst, är det nödvändigt att känna till QWidget väl. + + +Interaktion mellan objekt med signaler och slots +Nu kommer vi till den mest uppenbara fördelen med QT-verktygslådan: signal/slot-mekanismen. Den erbjuder en mycket bekväm och användbar lösning för kommunikation mellan objekt, som oftast löses med återanropsfunktioner i X-windows verktygslådor. Eftersom kommunikationen kräver strikt programmering och ibland gör det mycket svårt att skapa användargränssnitt (som beskrivs i QT-dokumentationen och förklaras i Programming with Qt av K. Dalheimer), uppfann TrollTech ett nytt system där objekt kan skicka signaler som kan anslutas till metoder som deklareras som slots. Som programmerare av C++, behöver man bara veta några saker om mekanismen: +klassdeklarationen av en klass som använder signaler och slots måste innehålla makrot Q_OBJECT i början (utan ett semikolon), och måste härledas från klassen QObject +en signal kan skickas med nyckelordet emit, t.ex. emit signal(parametrar);, inne i vilken medlemsfunktion som helst i en klass som tillåter användning av signaler och slots + +alla signaler som används av klasser som inte ärvs måste läggas till i klassdeklarationen i en signalsektion +alla metoder som kan anslutas med en signal deklareras i sektioner med det ytterligare nyckelordet slot, t.ex. public slots: inne i klassdeklarationen +metaobjektkompilatorn moc har körts för deklarationsfilen för att expandera makron och skapa implementeringen (som man inte behöverkänna till). Utdatafilerna från moc kompileras också av C++ kompilatorn. + + +Ett annat sätt att använda signaler utan att härleda från QObject är att använda klassen QSignal. Se referensdokumentationen för mer information och exempel på användning. Vi antar att du härleder från QObject i det följande. +På detta sätt kan din klass skicka signaler vart som helst och tillhandahålla slots som signaler kan anslutas till. Genom att använda en signal, behöver du inte bry dig om vem som tar emot den. Du behöver bara skicka signalen, och vilken slot du än ansluter till den kan reagera när den skickas. Dessutom kan en slot användas som en vanlig metod i implementeringen. +För att nu ansluta en signal till en slot, måste du använda metoderna connect() som tillhandahålls av QObject eller, om tillgängliga, speciella metoder som objekt tillhandahåller för att ange anslutningen för en viss signal. + + +Exempel på användning +För att förklara hur objektinteraktion hanteras, tar vi vårt första exempel igen och utökar det med en enkel anslutning: #include <qapplication.h> +#include <qpushbutton.h> + +int main( int argc, char **argv ) +{ +QApplication a( argc, argv ); + +QPushButton hello( "Hello world!" , 0); +hello.resize( 100, 30 ); + +a.setMainWidget( &hello ); + +QObject::connect(&hello, SIGNAL( clicked() ), &a, SLOT( quit() )); + +hello.show(); +return a.exec(); +} + + +Du märker att allt du måste lägga till för att ge knappen mer kommunikation är metoden connect(): connect (&hello, SIGNAL( clicked() ), &a, SLOT( quit() ));. Vad är betydelsen nu? Klassdeklarationen av QObject säger följande om metoden connect(): +bool connect ( const QObject * avsändare, const char * signal, const QObject * mottagare, const char * medlem ) +Detta betyder att du måste ange en QObject-instanspekare som är signalens avsändare, vilket betyder att den kan skicka signalen, som första parameter. Därefter måste du ange signalen som du vill ansluta till. De två sista parametrarna är mottagarobjektet som tillhandahåller en slot, följt av medlemsfunktionen som är en verklig slot som kommer att köras när signalen skickas. +Genom att använda signaler och slots, kan programmets objekt enkelt kommunicera med varandra utan att uttryckligen bero på typen hos mottagarobjektet. Du får lära dig mer om hur den här mekanismen används produktivt senare i handboken. Mer information om signal/slot-mekanismen finns också i KDE:s biblioteksreferensguide och QT:s direktreferens. + + + + + +Vad KDE tillhandahåller + +KDE 3.x biblioteken +KDE:s huvudbibliotek som används för att skapa KDE-program är: +biblioteket tdecore, som innehåller alla klasser som är osynliga element för att tillhandahålla programfunktioner +biblioteket tdeui, som innehåller element i användargränssnittet som menyrader, verktygsrader, etc. +biblioteket kfile, som innehåller filvalsdialogrutor + + +Dessutom erbjuder KDE följande bibliotek för speciallösningar: +biblioteket tdefx, som innehåller pixmaps, bildeffekter och KStyle-utökningen till QStyle +biblioteket khtml, som innehåller KDE:s HTML-komponent +biblioteket kjs, som innehåller KDE:s stöd för Javaskript +biblioteket kio, som innehåller åtkomst av nätverksfiler på låg nivå +biblioteket kparts, med stöd för återanvändbara, inbäddningsbara och utökningsbara program + + +Därefter tar vi en titt på vad som behövs för att förvandla vårt första QT-program till ett KDE-program. + + +Exempel på ett KDE-program +Du ser att det inte är mycket svårare att skriva ett KDE-program än ett QT-program i det följande. Du måste bara använda några andra klasser för att komma åt KDE:s funktioner, så är du nästan klar. Vi diskuterar en ändrad version av QT-koden ovan, som ett exempel: #include <kapplication.h> +#include <qpushbutton.h> + +int main( int argc, char **argv ) +{ +KApplication a( argc, argv ); + +QPushButton hello( "Hello world!", 0 ); +hello.resize( 100, 30 ); + +a.setTopWidget( &hello ); + +QObject::connect(&hello, SIGNAL( clicked() ), &a, SLOT( quit() )); + +hello.show(); +return a.exec(); +} + + +Du märker att vi först har ändrat från QApplication till KApplication. Dessutom var vi tvungna att ändra den tidigare använda metoden setMainWidget() till setTopWidget som KApplication använder för att ange huvudkomponenten. Det är allt! Ditt första KDE-program är klart. Du behöver bara tala om för kompilatorn vilken deklarationssökväg KDE har, och för länkaren att den ska länka med tdecore-biblioteket med -ltdecore. +Eftersom du nu åtminstone vet vad funktionen main() i allmänhet tillhandahåller, och hur ett program blir synligt och tillåter kommunikation mellan användare och objekt, fortsätter vi med nästa kapitel, där vårt första program med &tdevelop; skapas. Där kan du också prova allting som tidigare nämnts, och se effekterna. +Vad du ytterligare bör ha tittat på hittills är QT-referensdokumentationen, särskilt klasserna QApplication, QWidget och QObject och tdecore-biblioteksdokumentationen för klassen KApplication. KDE:s biblioteksreferensguide har också en fullständig beskrivning av hur konstruktorerna i QApplication och KApplication anropas, inklusive behandling av kommandoradsväljare. + + + + + + +Skapa nya program + + +Programguiden +Programguiden i &tdevelop; är avsedd att låta dig börja arbeta med ett nytt projekt i &tdevelop;. Därför skapas alla projekt först av guiden, och därefter kan du börja bygga dem och utöka vad som redan tillhandahålls av källkodsskelettet. Du kan välja bland flera projekttyper enligt målet med ditt projekt: +KDE Application Framework: Innehåller källkod för en fullständig ramstruktur till ett vanligt KDE-program +QMake project: Skapar ett programramverk baserat på TrollTechs qmake konfigurationssystem +Simple Hello world program: Skapar ett C++ terminalbaserat program utan stöd för grafiskt gränssnitt +En mängd andra programskelett + + +I det här kapitlet ser vi hur Programguiden kan startas, och vad som måste göras för att skapa ett KDE-programmeringsprojekt. Det här är också det första steget i uppföljningen där vi skapar den ursprungliga versionen av vårt exempelprojekt. Stegen är oftast likadana för alla andra projekttyper, men det kanske inte finns så många tillgängliga alternativ. + + + +Starta programguiden och skapa projekt + +Starta programguiden och första sidan +Öppna &tdevelop; för att börja med ditt KDE-program. Välj Nytt projekt i projektmenyn. Programguiden startar, och du ser urvalsträdet på första sidan som innehåller tillgängliga projekttyper som kan skapas. Välj delträdet C++, därefter KDE, och Application framework. +Vi kommer att skapa programmet KScribble som exempelprojekt. Skriv in det som programmets namn, och ändra eventuellt annan information som behövs längst ner på skärmen. Välj därefter Nästa. + +Programguiden + + + + +Versionskontrollinformation +På den här skärmen har du möjlighet att bestämma om projektet ska använda ett versionskontrollsystem som CVS. För vårt exempelprojekt använder vi inte versionskontroll, så försäkra dig om att rutan lyder Inget, och välj Nästa. + + +Deklarations- och källkodsmallar +Följande två sidor visar exempel på sidhuvuden som hamnar överst i deklarations- och källkodsfilerna som du skapar med &tdevelop;. Lämna dem bara som de är för närvarande, och välj Nästa och därefter Slutför. Om knappen Slutför inte är aktiverad, har du inte ställt in alla alternativ riktigt. Använd knappen Tillbaka för att återgå till tidigare sidor och rätta eventuella misstag. + + +Avslutning +När den är färdig, ska Programguiden stängas och meddelandefönstret ska dyka upp och visa information om aktiviteterna som &tdevelop; för närvarande utför. I slutet av alla aktiviteter ska du se **** Lyckades ****. Det betyder att programmets ramverk har skapats med lyckat resultat. + + + + +Bygg första gången +Efter projektet har skapats, tar vi först en tur genom källkoden för att få en allmän förståelse för hur programmets ramverk ser ut. Det hjälper oss inte bara att komma igång, utan vi vet också var ändringar ska göras i senare steg. +Det här kapitlet gör antagandet att du förstår den grundläggande hanteringen av &tdevelop;. Titta i KDevelops handbok för att hitta informationen om du behöver. +Hantering av automake visar projektfilerna enligt följande: + +Filer i vårt projekt + + +Innan vi dyker ner i källkoden, ska vi låta &tdevelop; bygga och köra vårt nya program. För att göra det, välj Bygg projekt i menyn Bygg, eller tryck på F8. Utmatningsfönstret öppnas och visar utskrivna meddelanden under kompileringsfasen. 1 cd /home/caleb/kscribble && WANT_AUTOCONF_2_5=1 WANT_AUTOMAKE_1_6=1 gmake k +2 gmake all-recursive +3 gmake[1]: Entering directory `/home/caleb/kscribble' +4 Making all in doc +5 gmake[2]: Entering directory `/home/caleb/kscribble/doc' +6 Making all in . +7 gmake[3]: Entering directory `/home/caleb/kscribble/doc' +8 gmake[3]: Nothing to be done for `all-am'. +9 gmake[3]: Leaving directory `/home/caleb/kscribble/doc' +10 Making all in en +11 gmake[3]: Entering directory `/home/caleb/kscribble/doc/en' +12 /usr/local/kde3/bin/meinproc --check --cache index.cache.bz2 /home/caleb/kscribble/doc/en/index.docbook +13 gmake[3]: Leaving directory `/home/caleb/kscribble/doc/en' +14 gmake[2]: Leaving directory `/home/caleb/kscribble/doc' +15 Making all in po +16 gmake[2]: Entering directory `/home/caleb/kscribble/po' +17 gmake[2]: Nothing to be done for `all'. +18 gmake[2]: Leaving directory `/home/caleb/kscribble/po' +19 Making all in src +20 gmake[2]: Entering directory `/home/caleb/kscribble/src' +21 source='main.cpp' object='main.o' libtool=no \ +22 depfile='.deps/main.Po' tmpdepfile='.deps/main.TPo' \ +23 depmode=gcc3 /bin/sh /home/caleb/kscribble/admin/depcomp \ +24 g++ -DHAVE_CONFIG_H -I. -I/home/caleb/kscribble/src -I.. -I/usr/local/kde3/include + -I/usr/lib/qt/include -I/usr/X11R6/include -DQT_THREAD_SUPPORT -D_REENTRANT -Wnon-virtual-dtor + -Wno-long-long -Wundef -Wall -pedantic -W -Wpointer-arith -Wmissing-prototypes -Wwrite-strings + -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -O2 -fno-exceptions -fno-check-new + -c -o main.o `test -f 'main.cpp' || echo '/home/caleb/kscribble/src/'`main.cpp +25 /usr/lib/qt/bin/moc /home/caleb/kscribble/src/kscribble.h -o kscribble.moc +26 source='kscribble.cpp' object='kscribble.o' libtool=no \ +27 depfile='.deps/kscribble.Po' tmpdepfile='.deps/kscribble.TPo' \ +28 depmode=gcc3 /bin/sh /home/caleb/kscribble/admin/depcomp \ +29 g++ -DHAVE_CONFIG_H -I. -I/home/caleb/kscribble/src -I.. -I/usr/local/kde3/include + -I/usr/lib/qt/include -I/usr/X11R6/include -DQT_THREAD_SUPPORT -D_REENTRANT -Wnon-virtual-dtor + -Wno-long-long -Wundef -Wall -pedantic -W -Wpointer-arith -Wmissing-prototypes -Wwrite-strings + -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -O2 -fno-exceptions -fno-check-new + -c -o kscribble.o `test -f 'kscribble.cpp' || echo '/home/caleb/kscribble/src/'`kscribble.cpp +30 kscribble.cpp: In member function `void KScribble::setupActions()' +31 kscribble.cpp:107: warning: unused variable `KAction*custom' +32 /usr/lib/qt/bin/moc /home/caleb/kscribble/src/kscribbleview.h -o kscribbleview.moc +33 source='kscribbleview.cpp' object='kscribbleview.o' libtool=no \ +34 depfile='.deps/kscribbleview.Po' tmpdepfile='.deps/kscribbleview.TPo' \ +35 depmode=gcc3 /bin/sh /home/caleb/kscribble/admin/depcomp \ +36 g++ -DHAVE_CONFIG_H -I. -I/home/caleb/kscribble/src -I.. -I/usr/local/kde3/include + -I/usr/lib/qt/include -I/usr/X11R6/include -DQT_THREAD_SUPPORT -D_REENTRANT -Wnon-virtual-dtor + -Wno-long-long -Wundef -Wall -pedantic -W -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -ansi + -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -O2 -fno-exceptions -fno-check-new -c + -o kscribbleview.o `test -f 'kscribbleview.cpp' || echo '/home/caleb/kscribble/src/'`kscribbleview.cpp +37 kscribbleview.cpp: In member function `void KScribbleView::print(QPainter*, +38 int, int)': +39 kscribbleview.cpp:79: warning: unused parameter `QPainter*p' +40 kscribbleview.cpp:79: warning: unused parameter `int height' +41 kscribbleview.cpp:79: warning: unused parameter `int width' +42 /usr/lib/qt/bin/moc /home/caleb/kscribble/src/pref.h -o pref.moc +43 source='pref.cpp' object='pref.o' libtool=no \ +44 depfile='.deps/pref.Po' tmpdepfile='.deps/pref.TPo' \ +45 depmode=gcc3 /bin/sh /home/caleb/kscribble/admin/depcomp \ +46 g++ -DHAVE_CONFIG_H -I. -I/home/caleb/kscribble/src -I.. -I/usr/local/kde3/include + -I/usr/lib/qt/include -I/usr/X11R6/include -DQT_THREAD_SUPPORT -D_REENTRANT -Wnon-virtual-dtor + -Wno-long-long -Wundef -Wall -pedantic -W -Wpointer-arith -Wmissing-prototypes -Wwrite-strings + -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -O2 -fno-exceptions -fno-check-new + -c -o pref.o `test -f 'pref.cpp' || echo '/home/caleb/kscribble/src/'`pref.cpp +47 /usr/local/kde3/bin/dcopidl /home/caleb/kscribble/src/kscribbleiface.h +> kscribbleiface.kidl || + ( rm -f kscribbleiface.kidl ; /bin/false ) +48 /usr/local/kde3/bin/dcopidl2cpp --c++-suffix cpp --no-signals --no-stub kscribbleiface.kidl +49 source='kscribbleiface_skel.cpp' object='kscribbleiface_skel.o' libtool=no \ +50 depfile='.deps/kscribbleiface_skel.Po' tmpdepfile='.deps/kscribbleiface_skel.TPo' \ +51 depmode=gcc3 /bin/sh /home/caleb/kscribble/admin/depcomp \ +52 g++ -DHAVE_CONFIG_H -I. -I/home/caleb/kscribble/src -I.. -I/usr/local/kde3/include + -I/usr/lib/qt/include -I/usr/X11R6/include -DQT_THREAD_SUPPORT -D_REENTRANT -Wnon-virtual-dtor + -Wno-long-long -Wundef -Wall -pedantic -W -Wpointer-arith -Wmissing-prototypes -Wwrite-strings + -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -O2 -fno-exceptions -fno-check-new + -c -o kscribbleiface_skel.o `test -f 'kscribbleiface_skel.cpp' || + echo '/home/caleb/kscribble/src/'`kscribbleiface_skel.cpp +53 /bin/sh ../libtool --silent --mode=link --tag=CXX g++ -Wnon-virtual-dtor -Wno-long-long -Wundef -Wall + -pedantic -W -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -ansi -D_XOPEN_SOURCE=500 + -D_BSD_SOURCE -Wcast-align -Wconversion -O2 -fno-exceptions -fno-check-new -o kscribble -R + /usr/local/kde3/lib -R /usr/lib/qt/lib -R /usr/X11R6/lib -L/usr/X11R6/lib -L/usr/lib/qt/lib + -L/usr/local/kde3/lib main.o kscribble.o kscribbleview.o pref.o kscribbleiface_skel.o -lkio +54 source='kscribble_client.cpp' object='kscribble_client.o' libtool=no \ +55 depfile='.deps/kscribble_client.Po' tmpdepfile='.deps/kscribble_client.TPo' \ +56 depmode=gcc3 /bin/sh /home/caleb/kscribble/admin/depcomp \ +57 g++ -DHAVE_CONFIG_H -I. -I/home/caleb/kscribble/src -I.. -I/usr/local/kde3/include + -I/usr/lib/qt/include -I/usr/X11R6/include -DQT_THREAD_SUPPORT -D_REENTRANT -Wnon-virtual-dtor + -Wno-long-long -Wundef -Wall -pedantic -W -Wpointer-arith -Wmissing-prototypes -Wwrite-strings + -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -O2 -fno-exceptions -fno-check-new + -c -o kscribble_client.o `test -f 'kscribble_client.cpp' || echo + '/home/caleb/kscribble/src/'`kscribble_client.cpp +58 /bin/sh ../libtool --silent --mode=link --tag=CXX g++ -Wnon-virtual-dtor -Wno-long-long -Wundef + -Wall -pedantic -W -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -ansi -D_XOPEN_SOURCE=500 + -D_BSD_SOURCE -Wcast-align -Wconversion -O2 -fno-exceptions -fno-check-new -o kscribble_client -R + /usr/local/kde3/lib -R /usr/lib/qt/lib -R /usr/X11R6/lib -L/usr/X11R6/lib -L/usr/lib/qt/lib + -L/usr/local/kde3/lib kscribble_client.o -ltdecore +59 gmake[2]: Leaving directory `/home/caleb/kscribble/src' +60 gmake[2]: Entering directory `/home/caleb/kscribble' +61 gmake[2]: Nothing to be done for `all-am'. +62 gmake[2]: Leaving directory `/home/caleb/kscribble' +63 gmake[1]: Leaving directory `/home/caleb/kscribble' +64 *** Lyckades *** + + +Som du kan se, har vi lagt till radnummer framför varje rad som inte visas i utmatningen, men som gör det enklare att beskriva vad som sker under byggningen. För det första fungerar byggprogrammet rekursivt. Det betyder att det börjar i katalogen där det startas, först går ner i underkataloger, en i taget, och därefter återgår till katalogen där det startades, behandlar det, och sedan avslutas. +Den första intressanta raden är 24. Observera att g++, som är vår C++ kompilator, anropas av make på den här raden för att kompilera den första källkodsfilen i vårt projekt - i det här fallet main.cpp. Många ytterligare kommandoradsväljare används också med g++ kompilatorn.Vissa är förvalda, medan andra kan anpassas via &tdevelop;. +Innan nästa fil (kscribble.cpp, rad 29) kompileras, körs först moc (metaobjektkompilatorn) för kscribble.h (rad 25). Det sker därför att KScribble-klasser använder signaler och slots, så att makrot Q_OBJECT måste expanderas, och moc gör det åt oss. Resultatfilen, kscribble.moc, används av kscribble.cpp via satsen #include i filen. + + + +Källkodsskelettet +För att klargöra hur ett KDE-program fungerar, måste vi först granska källkodsskelettet som redan tillhandahålls av programguiden mycket noggrant. Som vi redan sett, har vi en uppsättning källkods- och deklarationsfiler som bygger upp den ursprungliga programkoden och gör den klar att köra. Därför är det enklaste sättet att förklara koden att följa implementeringen rad för rad som den behandlas under körning av programmet till det går in i huvudhändelsesnurran och är klart att acceptera användarinmatning. Därefter tar vi en titt på funktionerna som möjliggör kommunikation med användaren, och hur vissa saker fungerar. Det här är troligen det bästa sättet att förklara ramverket, och eftersom det är liknande för nästan alla KDE-program, gör det att du kan läsa källkod också från andra projekt. Dessutom lär du dig var olika delar av koden ska ändras för att få ditt program att bete sig som det är avsett att göra. + + +Funktionen main() +Eftersom programmet börjar köra genom att gå in i funktionen main(), är det där vi börjar titta på koden. Funktionen main() i KScribble är implementerad i filen main.cpp, och kan också hittas genom att använda klassbläddraren och välja mappen "Globala funktioner". 1 int main(int argc, char **argv) +2 { +3 KAboutData about("kscribble", I18N_NOOP("KScribble"), version, description, +4 KAboutData::License_GPL, "(C) 2002 Ditt Namn", 0, 0, "du@du.se"); +5 about.addAuthor( "Ditt Namn", 0, "du@du.se" ); +6 KCmdLineArgs::init(argc, argv, &about); +7 KCmdLineArgs::addCmdLineOptions(options); +8 KApplication app; +9 +10 // registrera oss som en DCOP-klient +11 app.dcopClient()->registerAs(app.name(), false); +12 +13 // se om vi startar med sessionshantering +14 if (app.isRestored()) +15 RESTORE(KScribble) +16 else +17 { +18 // ingen session.. starta bara som vanligt +19 KCmdLineArgs *args = KCmdLineArgs::parsedArgs(); +20 if (args->count() == 0) +21 { +22 KScribble *widget = new KScribble; +23 widget->show(); +24 } +25 else +26 { +27 int i = 0; +28 for (; i < args->count(); i++) +29 { +30 KScribble *widget = new KScribble; +31 widget->show(); +32 widget->load(args->url(i)); +33 } +34 } +35 args->clear(); +36 } +37 +38 return app.exec(); +39 } + + +Vad som först händer nu, är att objektet KApplication skapas som vanligt, men vi har lagt till några KDE-metoder som anger information om program och upphovsman för programmet. + + +Start av användarprogrammet + +... (ännu inte skrivet) + + + +Konstruktorn +Låt oss ta en titt på konstruktorn och se hur instansen anropas 1 KScribble::KScribble() +2 : KMainWindow( 0, "KScribble" ), +3 m_view(new KScribbleView(this)), +4 m_printer(0) +5 { +6 // acceptera drag och släpp +7 setAcceptDrops(true); +8 +9 // tala om för KMainWindow att det verkligen är huvudkomponenten +10 setCentralWidget(m_view); +11 +12 // ställ därefter in våra åtgärder +13 setupActions(); +14 +15 // och en statusrad +16 statusBar()->show(); +17 +18 // tillåt vyn att ändra statusraden och rubriken +19 connect(m_view, SIGNAL(signalChangeStatusbar(const QString&)), +20 this, SLOT(changeStatusbar(const QString&))); +21 connect(m_view, SIGNAL(signalChangeCaption(const QString&)), +22 this, SLOT(changeCaption(const QString&))); +23 +24 } + + +Observera att KScribble ärver klassen KMainWindow, en ofta använd basklass för KDE-program. Vi initierar en klass som heter KScribbleView som central grafikkomponent, skapar en KStatusBar via metoden statusBar() (på rad 16), och kopplar ihop några signaler och slots. + + + + + + +Konstruktion av programvyn + +Inledning +När ett program med ett grafiskt gränssnitt utvecklas, sker det huvudsakliga arbetet genom att tillhandahålla en så kallad "vy" för programmet. En vy är i allmänhet en grafisk komponent som visar data i ett dokument och tillhandahåller metoder för att manipulera dokumentets innehåll. Detta kan göras av användaren via de händelser som skapas via tangentbordet och musen. Komplexare åtgärder behandlas ofta av verktygsrader och menyrader som kommunicerar med vyn och dokumentet. Statusraden tillhandahåller sedan information om dokumentet, vyn eller programmets status. Som exempel, tittar vi på hur en editor är konstruerad, och var varje del kan hittas. +En editor antas i allmänhet tillhandahålla ett gränssnitt för att visa och/eller ändra innehåll i ett textdokument för användaren. Om du startar Kate, ser du följande i det visuella gränssnittet: +Menyraden: tillhandahåller komplexa åtgärder samt öppna, spara och stänga filer eller avsluta programmet. +Verktygsraden: erbjuder ikoner som ger snabbare åtkomst till de oftast använda funktionerna, +Statusraden visar status för markörpositionen med aktuell rad och kolumn, +Vyn i fönstrets mitt, som visar ett dokument och erbjuder en markör kopplad till tangentbordet och musen för att hantera data. + + +Nu är det enkelt att förstå att en vy är programmets mest unika del, och att konstruktionen av vyn bestämmer hur användbart och lätt att acceptera programmet är. Det betyder att ett av de första stegen i utvecklingen är att avgöra syftet med programmet och vilken sorts konstruktion av vyn som passar bäst för att låta vilken användare som helst arbeta med programmet, med en minimal ansträngning för att lära sig hur användargränssnittet ska hanteras. +Vyer tillhandahålls av QT- och KDE-biblioteken för vissa syften, som textredigering och visning av HTML-filer. Vi beskriver vissa aspekter av de här högnivåkomponenterna i nästa avsnitt. Men för de flesta program måste nya komponenter konstrueras och implementeras. Det är detta som gör att programmeraren också blir en formgivare, och där skapelseförmågan sätts på prov. Trots detta bör du först försöka uppnå något intuitivt. Kom ihåg att många användare accepterar inte ett program som inte: +har bra grafiskt utseende +erbjuder många funktioner +är enkelt att hantera +går snabbt att lära sig använda + + +Det behöver inte sägas att stabilitet är ett av huvudmålen med konstruktionen. Ingen kan förhindra fel, men ett minimum kan åtminstone uppnås med smarta konstruktionsmål och utbredd användning av objektorienterad konstruktion. C++ gör det till ett nöje att programmera om du vet hur man utnyttjar dess möjligheter - arv, att dölja information och återanvändning av befintlig kod. +När ett KDE- eller QT-projekt skapas, måste du alltid ha en vy som ärver en QWidget, antingen med direkt arv eller eftersom en bibliotekskomponent som du vill använda ärver QWidget. Därför harProgramguiden redan skapat en vy som är en instans av klassen programnamnView, som redan ärver QWidget. +Det här kapitlet beskriver därför hur bibliotekskomponenter används för att skapa vyer för KDE- och QT-program som skapas med &tdevelop;. Därefter tar vi en titt på biblioteken och vilka sorters vyer de redan erbjuder. + + +Använda biblioteksvyer +När programmets konstruktion har fastställts, bör du först leta efter befintlig kod som kan göra livet mycket enklare. En del av detta är att leta efter en grafisk komponent som kan användas för vyn, eller åtminstone för en del av den, antingen direkt eller med arv. KDE- och QT-biblioteken innehåller redan en uppsättning grafiska komponenter som kan användas för ändamålet. Det finns två möjligheter att använda dem: +Ta bort den nya vyklassen och skapa en instans av en bibliotekskomponent, och därefter ange den som vyn, +Ändra arv för tillhandahållen vyklass till klassen för bibliotekskomponenten som ska användas. + + +Hur som helst är det viktigt att veta att om programramverket för närvarande inte länkas med biblioteket som innehåller den grafiska komponenten, kommer länkningen att misslyckas. Efter du bestämt dig för att använda en viss grafisk komponent, titta efter biblioteket som ska länkas in. Öppna därefter "Projekt"->"Projektinställningar" i menyraden för &tdevelop;. Byt till sidan "Länkinställningar" och leta efter kryssrutorna som anger de bibliotek som för närvarande används. Om biblioteket för din komponent redan är markerat, kan du lämna projektinställningarna oförändrade och börja göra nödvändiga ändringar baserat på ditt val. Om inte, och länkinställningarna erbjuder att lägga till biblioteket med en kryssruta, markera den och tryck på "Ok" för att stänga dialogrutan igen. I alla andra fall, lägg till biblioteket i redigeringsraden under med väljaren -l. För bibliotek som ditt program ska söka efter innan byggfiler skapas av configure-skriptet, lägg till motsvarande sökmakro i filen configure.in som finns i projektets rotkatalog, och lägg till makrot på redigeringsraden. Tänk på att du måste köra "Bygg"->"Autoconf och automake" och "Bygg"->"Configure" innan byggfilerna innehåller rätt expansion av biblioteksmakrot. +Dessutom, om deklarationsfilerna för biblioteket som ska läggas till inte finns med i nuvarande deklarationssökväg (som syns i väljaren -I till "make" i utmatningsfönstret), måste du lägga till sökvägen i dialogrutan Projektinställningar på sidan "Kompilatorinställningar" med väljaren -I eller i motsvarande automake-makro på redigeringsraden för "Ytterligare inställningar". + +Vyer i Qt +När du tittar på första sidan av QT:s direktdokumentation, hittar du en länk till "Widget Screenshots", där du kan titta på hur de grafiska komponenterna som QT innehåller ser ut. De är färdiga att använda, och kan kombineras för att ge komplexa komponenter som kan skapa programvyer eller dialogrutor. I följande stycken beskriver vi några av dessa, som är mycket användbara för att skapa programvyer, men kom ihåg att KDE-biblioteken ibland innehåller andra komponenter med samma syfte. Dessa granskas i nästa avsnitt. +Här är några tips om vilken Qt-komponent som kan användas för vilket ändamål: +Om vyområdet inte är stort nog för att visa all data, måste användaren kunna panorera i dokumentet med lister till vänster och längst ner i vyn. QT tillhandahåller klassen QScrollView för detta, som erbjuder ett underliggande område med panoreringsmöjlighet. Som tidigare förklarats, kan du låta din egen grafiska komponent ärva QScrollView, eller använda en instans för att hantera ditt dokuments vykomponent. +För att skapa en egen ScrollView, låt komponenten View ärva från QWidget och lägg till vertikala och horisontella rullningslister med QScrollBars. (Detta görs av KDE:s komponent KHTMLView.) +För textbehandling, använd QTextEdit. Den här klassen tillhandahåller en fullständig grafisk texteditorkomponent, som redan kan klippa ut, kopiera och klistra text och hanteras av en vy med rullningslister. +Använd QTable för att visa data som är arrangerat i en tabell. Eftersom QTable också hanteras av rullningslister, erbjuder den en bra lösning för program med tabellberäkningar. +För att visa två olika grafiska komponenter eller två instanser av samma komponent samtidigt, använd QSplitter. Den tillåter att vyer läggs sida vid sida med horisontella eller vertikala avdelare. Kmail är ett bra exempel på hur det ser ut. Huvudfönstret är delat vertikalt av en avdelare, och det högra fönstret är återigen avdelat horisontellt. +QListView visar information i en lista och ett träd. Det är användbart för att skapa filträd eller vilken annan hierarkisk information som helst som du vill hantera. + + +Du märker att enbart QT erbjuder en hel uppsättning med grafiska komponenter som är klara för användning, så att du inte behöver uppfinna nya lösningar om de passar dina behov. Sidoeffekten när standardkomponenter används är att användare redan vet hur de hanteras, och behöver bara koncentrera sig på data som visas. + + +Vyer i KDE +KDE-biblioteken uppfanns för att göra det enklare att skapa program för K-skrivbordsmiljön och göra det möjligt för dem att ha mer funktioner än enbart vad QT erbjuder. Biblioteket tdeui erbjuder: +KListView: en mer kraftfull version av QListView +KIconView: en grafisk visare av ikonfiler + + +Biblioteket khtml tillhandahåller å andra sidan en fullständig HTML-tolkningskomponent, som är klar att använda. Den har redan rullningslister, så du behöver inte ens hantera det. En möjlig användning kan vara att integrera den som en förhandsgranskningskomponent för en HTML-editor. Den används av program som Konqueror för att visa HTML-filer. + + + +Skapa egna vyer +Ännu inte skrivet + + + + +Anpassa menyrader och verktygsrader + +Inledning +Menyrader och verktygsrader är några av de viktigaste delarna av ett program för att tillhandahålla sätt att arbeta med en dokumentstruktur. Du bör göra alla funktioner tillgängliga via menyraden, som en allmän regel. De alternativ som inte är tillgängliga vid ett visst ögonblick i användningen av programmet bör vara inaktiverade. +Dessutom kan ett program bara innehålla en menyrad, men flera verktygsrader. Verktygsrader, å andra sidan, bör bara innehålla de oftast använda kommandona med ikoner eller tillhandahålla metoder för snabb åtkomst som kombinationsrutor för att välja värden. + + +Hur fungerar det? +Vårt program ärver klassen KMainWindow som automatiskt hanterar att skapa en menyrad och verktygsrader åt oss. I metoden KScribble::setupActions() finns ett anrop till KMainWindow::createGUI(). Den metoden laddar en resursfil, i det här fallet kscribbleui.rc, för att initiera menyerna vid start. Observera att kscribbleui.rc listas som en av projektfilerna i Hantering av automake. Öppnas filen syns detta: 1 <!DOCTYPE kpartgui SYSTEM "kpartgui.dtd"> +2 <kpartgui name="kscribble" version="1"> +3 <MenuBar> +4 <Menu name="custom" +><text +>C&ustom</text> +5 <Action name="custom_action" /> +6 </Menu> +7 </MenuBar> +8 </kpartgui +> + + +Förklaring ... +Ett annat sätt att ändra innehållet i menyn och verktygsraderna är att direkt manipulera dem via metoderna som tillhandahålls i deras klasser. Metoden menuBar() returnerar till exempel komponenten KMenuBar som är menyraden i vårt program. Tittar du i dokumentationen för KMenuBar och klassen den ärver QMenuBar, hittar du ett stort antal metoder kallade insertItem(), som låter dig lägga till alternativ i menyraden. +KMainWindows metoder statusBar() och toolBar() ger dig också lämpliga grafiska komponenter. + + +Inställning av snabbtangenter +Något mycket professionellt som du alltid bör lägga till i programmet är snabbtangenter. De används oftast av erfarna användare som vill arbeta snabbt med sina program och är villiga att lära sig genvägar. KDE-biblioteken erbjuder klassen KAction för detta, som tillhandahåller snabbtangenter och åtkomst av globalt inställda standardgenvägar. +Normalt använder bara ramprogram skapade av &tdevelop; vanliga snabbtangenter som F1 för att komma åt direkthjälp, Ctrl+N för Ny fil, etc. +Om programmet innehåller många snabbtangenter bör du göra dem anpassningsbara via en inställningsmeny. Antingen kan det kombineras med annan programinställning i en QWidget eller vara ensamt. KDE-biblioteket tillhandahåller redan en KKeyChooser för att använda i flikdialogrutor, medan KKeyDialog tillhandahåller en inställningsdialogruta för snabbtangenter som är färdig att använda. + + + + + + +Hjälpfunktioner + +Inledning +En mycket viktig del av utvecklingsprocessen är att tillhandahålla hjälpfunktioner för användaren om möjligt. De flesta utvecklare tenderar att fördröja detta, men du bör komma ihåg att en normal användare inte nödvändigtvis är en Unix-expert. Han kanske kommer från den mörka sidan av programvaruanvändning som erbjuder alla godsaker som en användare kan behöva för att arbeta sig in i användningen av ett program utan att någonsin röra en handbok. Därför tillhandahåller KDE- och QT-biblioteken alla möjligheter som oftast anses göra ett program professionellt i den vanliga användarens ögon, men hjälpfunktioner som är klara att använda. Inne i programmet är de: + +Verktygstips +Hjälp i statusraden +Vad är det här...? knappar + +Dessutom bör programmet tillhandahålla en möjlighet att komma åt en HTML-baserad handbok direkt med den vanliga hjälptangenten F1. Det här sammanhangsberoende hjälpsystemet tillhandahålls automatiskt via klassen KMainWindow, även om du som upphovsman måste tillhandahålla innehållet. +Eftersom &tdevelop; också erbjuder alla sorters hjälp, samt att KDE-ramverket som skapas av programguiden redan innehåller stöd för detta, hjälper det här kapitlet dig att lära dig var och hur du kan lägga till hjälpfunktioner. +Under utvecklingen av programmet bör du försöka att vara konsekvent i vad du än gör. Därför bör du utföra nödvändiga steg direkt när du utökar koden. Det förhindrar att du behöver dyka ner i koden igen för att lista ut vad programmet gör eller vad du avsåg med vissa delar av koden. + + + +Verktygstips +Ett mycket enkelt sätt att tillhandahålla hjälp är verktygstips. De är små hjälpmeddelanden som dyker upp när användaren flyttar musen över en komponent som tillhandahåller ett verktygstips, och försvinner när musen flyttas. Den populäraste användningen av verktygstips är i verktygsrader där verktygstipsen bör vara så små som möjligt, eftersom verktygsrader kan ställas in att visa innehållet på olika sätt: antingen visas knappen, knappen med text till höger, knappen med text nedanför, eller bara text. Denna inställning bör kunna anpassas av användaren, men det är inte helt nödvändigt. Texten visas ändå som ett verktygstips, och en verktygsrad består oftast av knappar och andra grafiska komponenter som redigeringsfält och kombinationsrutor. För en fullständig beskrivning, se klassreferensen för KToolBar, som finns i tdeui-biblioteket. +Som ett exempel tittar vi på knappen "Ny fil" i ett generellt program: +Där tillhandahåller delen i18n("New File") meddelandet för verktygstipset. Det omges av makrot i18n(), som tillhandahålls av kapp.h, för att översätta verktygstipset till språket som för närvarande är valt. +Verktygstips kan också läggas till i vilken egen grafisk komponent som helst genom att använda QToolTip som tillhandahålls av QT. Ett exempel på det skulle kunna vara: + + +Utöka statusraden +Eftersom program som ärver KMainWindow också innehåller en statusrad, erbjuder den också en uppsättning färdiga statusradmeddelanden för alla meny- och verktygsradsobjekt. Ett hjälpmeddelande i statusraden är ett kort meddelande som utökar betydelsen av ett verktygstips, eller kan ses som en ersättning av ett verktygstips för ett alternativ i menyraden, och visas (som namnet anger) i statusraden när användaren aktiverar en meny och markerar ett menyalternativ. + + +Knappen <guibutton +>Vad är det här?</guibutton +> +Knappen Vad är det här...? tillhandahåller hjälpfönster med syftet att ge användaren hjälp med en viss komponent i vyn som används eller ett objekt i en verktygsrad. Den finns i verktygsraden och aktiveras när användaren trycker på knappen. Markören ändras till en pilmarkör med ett frågetecken, precis som knappen själv ser ut. Därefter kan användaren klicka på en synlig komponent och får då ett hjälpfönster. Som en övning kan du prova beteendet med knappen Vad är det här...? inne i &tdevelop;. +För att lägga till "Vad är det här...?" hjälp i en av dina grafiska komponenter, använd den statiska metoden QWhatsThis::add(QWidget *widget, const QString &text) + + + + +Dokumentation + +Inledning +På grund av att projekt ofta saknar en fullständig uppsättning användardokumentation, innehåller alla projekt i &tdevelop; en handbok skapad i förväg. På så sätt uppfylls ett annat av KDE:s mål: Att tillhandahålla tillräckligt med direkthjälp för att stödja användare som inte är bekanta med programmet. Det här kapitlet introducerar därför hur dokumentationsmallen som tillhandahålls kan utökas, och vad du måste göra för att användaren ska få tillgång till den. + + +Användardokumentation +Projektdokumentationen finns under projektkatalog/doc/en, eller kanske en annan katalog om engelska inte är ditt modersmål. Där finns en fil, index.docbook, där dokumentationen lagras. Formatet för att redigera filen förklaras på KDE:s webbsida för dokumentation. + + +Programdokumentation +En annan viktig del av dokumentationen är att inkludera en beskrivande hjälp för klassgränssnitten. Det låter dig och andra programmerare använda dina klasser genom att läsa klassdokumentationen i HTML, som kan skapas med KDoc. &tdevelop; stöder fullständigt användning av KDoc för att skapa KDE-biblioteksdokumentation, ramverket för ditt program är också redan dokumenterat. För att arbeta sig in i koden som tillhandahålls, är det en god start att läsa inkluderad direktdokumentation. Det följande beskriver vad som ska göras för att få fram dokumentation av programmeringsgränssnittet, hur &tdevelop; hjälper dig lägga till det, och vilka särskilda taggar som KDoc tillhandahåller. + + + + +Språk + +Inledning +Internationalisering med i18n är ett system som används för att erbjuda internationella versioner av ett program eller projekt. Svårigheten med att skriva program är att de bara stöder språket som de ursprungligen skapas med. Detta synliggörs med texter, menyalternativ och liknande. Målet med internationaliseringen är att tillhandahålla program och biblioteksfunktioner i användarens språk, och på så sätt göra det möjligt för användare som inte har originalspråket som modersmål att använda funktionerna som erbjuds och känna sig mer nöjd och belåten. + + + + + +Tack till + +(ännu inte skrivet ...) + + + + + + +Bibliografi + + + +<ulink url="info://make/Top" +>GNU Make Manual</ulink +> + +Richard M.Stallman +RolandMcGrath + + + + +<ulink url="info://automake/Top" +>GNU Automake</ulink +> + +DavidMacKenzie +TomTromey + + + + +<ulink url="info://autoconf/Top" +>GNU Autoconf</ulink +> + +DavidMacKenzie +BenElliston + + + + +<ulink url="info://gcc/Top" +>Using the GNU Compiler Collection</ulink +> +Richard M.Stallman + + + +<ulink url="info://libtool/Top" +>GNU Libtool</ulink +> + +GordonMatzigkeit +AlexandreOliva +ThomasTanner +Gary V.Vaughan + + + + +GNU Autoconf, Automake, and Libtool +1st edition +October 2000 + +Gary V.Vaughan +BenElliston +TomTromey +Ian LanceTaylor + +New Riders Publishing +ISBN 1578701902 + + + + +Advanced Programming in the UNIX(R) Environment +1st edition +June 1992 +W. RichardStevens +Addison-Wesley Pub Co +ISBN 0201563177 + + + +Thinking in C++, Volume 1: Introduction to Standard C++ +2nd Edition +April 15, 2000 +BruceEckel +Prentice Hall +ISBN 0139798099 + + + +Open Source Development with CVS +2nd Edition +October 12, 2001 + +KarlFogel +MosheBar + +The Coriolis Group +ISBN 158880173X + + + +Programming PHP +1st edition +March 2002 + +RasmusLerdorf +KevinTatroe + +O'Reilly & Associates +ISBN 1565926102 + + + +Programming Python +2nd Edition +March 2001 +MarkLutz +O'Reilly & Associates +ISBN 0596000855 + + + +Gui Programming With Python : Using the Qt Toolkit +Bk&Cd-r edition +January 2002 +BoudewijnRempt +Opendocs Llc +ISBN 0970033044 + + + +Programming Perl +Kamelboken +3rd Edition +July 2000 + +LarryWall +TomChristiansen +JonOrwant + +O'Reilly & Associates +ISBN 0596000278 + + + +Learning Perl +Lamaboken +3rd Edition +July 15, 2001 + +Randal L.Schwartz +TomPhoenix + +O'Reilly & Associates +ISBN 0596001320 + + + + +&underFDL; + + + + +
diff --git a/tde-i18n-sv/docs/tdevelop/kde_app_devel/kscribblefiles.png b/tde-i18n-sv/docs/tdevelop/kde_app_devel/kscribblefiles.png new file mode 100644 index 00000000000..b3c37cb7a89 Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/kde_app_devel/kscribblefiles.png differ diff --git a/tde-i18n-sv/docs/tdevelop/kdearch/Makefile.am b/tde-i18n-sv/docs/tdevelop/kdearch/Makefile.am new file mode 100644 index 00000000000..9e41d9df652 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/kdearch/Makefile.am @@ -0,0 +1,4 @@ +KDE_LANG = sv +SUBDIRS = $(AUTODIRS) +KDE_DOCS = AUTO +KDE_MANS = AUTO diff --git a/tde-i18n-sv/docs/tdevelop/kdearch/Makefile.in b/tde-i18n-sv/docs/tdevelop/kdearch/Makefile.in new file mode 100644 index 00000000000..34fba4e9aa2 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/kdearch/Makefile.in @@ -0,0 +1,635 @@ +# Makefile.in generated by automake 1.10.1 from Makefile.am. +# KDE tags expanded automatically by am_edit - $Revision: 483858 $ +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This Makefile.in 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. + +@SET_MAKE@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +subdir = docs/tdevelop/kdearch +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +#>- RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ +#>- html-recursive info-recursive install-data-recursive \ +#>- install-dvi-recursive install-exec-recursive \ +#>- install-html-recursive install-info-recursive \ +#>- install-pdf-recursive install-ps-recursive install-recursive \ +#>- installcheck-recursive installdirs-recursive pdf-recursive \ +#>- ps-recursive uninstall-recursive +#>+ 7 +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive nmcheck-recursive bcheck-recursive +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +#>+ 1 +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +ARTSCCONFIG = @ARTSCCONFIG@ +AUTOCONF = @AUTOCONF@ +AUTODIRS = @AUTODIRS@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CONF_FILES = @CONF_FILES@ +CYGPATH_W = @CYGPATH_W@ +DCOPIDL = @DCOPIDL@ +DCOPIDL2CPP = @DCOPIDL2CPP@ +DCOPIDLNG = @DCOPIDLNG@ +DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@ +DEFS = @DEFS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +GMSGFMT = @GMSGFMT@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@ +KCONFIG_COMPILER = @KCONFIG_COMPILER@ +KDECONFIG = @KDECONFIG@ +KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@ +KDE_RPATH = @KDE_RPATH@ +KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MAKEKDEWIDGETS = @MAKEKDEWIDGETS@ +MCOPIDL = @MCOPIDL@ +MEINPROC = @MEINPROC@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TOPSUBDIRS = @TOPSUBDIRS@ +VERSION = @VERSION@ +XGETTEXT = @XGETTEXT@ +XMLLINT = @XMLLINT@ +X_RPATH = @X_RPATH@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +am__leading_dot = @am__leading_dot@ +am__tar = @am__tar@ +am__untar = @am__untar@ +#>- bindir = @bindir@ +#>+ 2 +DEPDIR = .deps +bindir = @bindir@ +build_alias = @build_alias@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host_alias = @host_alias@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +kde_appsdir = @kde_appsdir@ +kde_bindir = @kde_bindir@ +kde_confdir = @kde_confdir@ +kde_datadir = @kde_datadir@ +kde_htmldir = @kde_htmldir@ +kde_icondir = @kde_icondir@ +kde_kcfgdir = @kde_kcfgdir@ +kde_libs_htmldir = @kde_libs_htmldir@ +kde_libs_prefix = @kde_libs_prefix@ +kde_locale = @kde_locale@ +kde_mimedir = @kde_mimedir@ +kde_moduledir = @kde_moduledir@ +kde_servicesdir = @kde_servicesdir@ +kde_servicetypesdir = @kde_servicetypesdir@ +kde_sounddir = @kde_sounddir@ +kde_styledir = @kde_styledir@ +kde_templatesdir = @kde_templatesdir@ +kde_wallpaperdir = @kde_wallpaperdir@ +kde_widgetdir = @kde_widgetdir@ +tdeinitdir = @tdeinitdir@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +xdg_appsdir = @xdg_appsdir@ +xdg_directorydir = @xdg_directorydir@ +xdg_menudir = @xdg_menudir@ +KDE_LANG = sv +#>- SUBDIRS = $(AUTODIRS) +#>+ 1 +SUBDIRS =. +KDE_DOCS = AUTO +KDE_MANS = AUTO +#>- all: all-recursive +#>+ 1 +all: docs-am all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) +#>- @for dep in $?; do \ +#>- case '$(am__configure_deps)' in \ +#>- *$$dep*) \ +#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ +#>- && exit 0; \ +#>- exit 1;; \ +#>- esac; \ +#>- done; \ +#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdevelop/kdearch/Makefile'; \ +#>- cd $(top_srcdir) && \ +#>- $(AUTOMAKE) --gnu docs/tdevelop/kdearch/Makefile +#>+ 12 + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdevelop/kdearch/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/tdevelop/kdearch/Makefile + cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdevelop/kdearch/Makefile.in +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +#>- distdir: $(DISTFILES) +#>+ 1 +distdir: distdir-nls $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done + list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + distdir=`$(am__cd) $(distdir) && pwd`; \ + top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ + (cd $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$top_distdir" \ + distdir="$$distdir/$$subdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +#>- uninstall: uninstall-recursive +#>+ 1 +uninstall: uninstall-docs uninstall-nls uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +#>- clean: clean-recursive +#>+ 1 +clean: kde-rpo-clean clean-recursive + +#>- clean-am: clean-generic mostlyclean-am +#>+ 1 +clean-am: clean-docs clean-bcheck clean-generic mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +info: info-recursive + +info-am: + +#>- install-data-am: +#>+ 1 +install-data-am: install-docs install-nls + +install-dvi: install-dvi-recursive + +install-exec-am: + +install-html: install-html-recursive + +install-info: install-info-recursive + +install-man: + +install-pdf: install-pdf-recursive + +install-ps: install-ps-recursive + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ + install-strip + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am check check-am clean clean-generic ctags \ + ctags-recursive distclean distclean-generic distclean-tags \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \ + tags-recursive uninstall uninstall-am + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: + +#>+ 2 +KDE_DIST=index.docbook index.cache.bz2 whatsthis.png Makefile.in Makefile.am + +#>+ 24 +index.cache.bz2: $(srcdir)/index.docbook $(KDE_XSL_STYLESHEET) index.docbook whatsthis.png + @if test -n "$(MEINPROC)"; then echo $(MEINPROC) --check --cache index.cache.bz2 $(srcdir)/index.docbook; $(MEINPROC) --check --cache index.cache.bz2 $(srcdir)/index.docbook; fi + +docs-am: index.cache.bz2 + +install-docs: docs-am install-nls + $(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kdearch + @if test -f index.cache.bz2; then \ + echo $(INSTALL_DATA) index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kdearch/; \ + $(INSTALL_DATA) index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kdearch/; \ + elif test -f $(srcdir)/index.cache.bz2; then \ + echo $(INSTALL_DATA) $(srcdir)/index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kdearch/; \ + $(INSTALL_DATA) $(srcdir)/index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kdearch/; \ + fi + -rm -f $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kdearch/common + $(LN_S) $(kde_libs_htmldir)/$(KDE_LANG)/common $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kdearch/common + +uninstall-docs: + -rm -rf $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kdearch + +clean-docs: + -rm -f index.cache.bz2 + + +#>+ 13 +install-nls: + $(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kdearch + @for base in index.docbook whatsthis.png ; do \ + echo $(INSTALL_DATA) $$base $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kdearch/$$base ;\ + $(INSTALL_DATA) $(srcdir)/$$base $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kdearch/$$base ;\ + done + +uninstall-nls: + for base in index.docbook whatsthis.png ; do \ + rm -f $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kdearch/$$base ;\ + done + + +#>+ 5 +distdir-nls: + for file in index.docbook whatsthis.png ; do \ + cp $(srcdir)/$$file $(distdir); \ + done + +#>+ 15 +force-reedit: + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdevelop/kdearch/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/tdevelop/kdearch/Makefile + cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdevelop/kdearch/Makefile.in + + +#>+ 21 +clean-bcheck: + rm -f *.bchecktest.cc *.bchecktest.cc.class a.out + +bcheck: bcheck-recursive + +bcheck-am: + @for i in ; do \ + if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \ + echo "int main() {return 0;}" > $$i.bchecktest.cc ; \ + echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \ + echo "$$i"; \ + if ! $(CXX) $(DEFS) -I. -I$(srcdir) -I$(top_builddir) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) --dump-class-hierarchy -c $$i.bchecktest.cc; then \ + rm -f $$i.bchecktest.cc; exit 1; \ + fi ; \ + echo "" >> $$i.bchecktest.cc.class; \ + perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \ + rm -f a.out; \ + fi ; \ + done + + +#>+ 3 +final: + $(MAKE) all-am + +#>+ 3 +final-install: + $(MAKE) install-am + +#>+ 3 +no-final: + $(MAKE) all-am + +#>+ 3 +no-final-install: + $(MAKE) install-am + +#>+ 3 +kde-rpo-clean: + -rm -f *.rpo + +#>+ 3 +nmcheck: +nmcheck-am: nmcheck diff --git a/tde-i18n-sv/docs/tdevelop/kdearch/index.cache.bz2 b/tde-i18n-sv/docs/tdevelop/kdearch/index.cache.bz2 new file mode 100644 index 00000000000..8c0de175f33 Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/kdearch/index.cache.bz2 differ diff --git a/tde-i18n-sv/docs/tdevelop/kdearch/index.docbook b/tde-i18n-sv/docs/tdevelop/kdearch/index.docbook new file mode 100644 index 00000000000..86ecbccfda3 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/kdearch/index.docbook @@ -0,0 +1,3680 @@ + + + +]> + + + + +Översikt över KDE:s arkitektur + + + + + +Bernd Gehrmann
bernd@tdevelop.org
+
+
+ + +2001 +2002 +Bernd Gehrmann + + +&FDLNotice; + + +Den här dokumentationen ger en översikt över KDE-utvecklingsmiljön. + + + +KDE +arkitektur +utveckling +programmering + + +
+ + +Biblioteksstruktur + + +Bibliotek ordnade efter namn + + + + +tdecore +Biblioteket tdecore är det grundläggande programramverket för alla KDE-baserade program. Det ger tillgång till konfigurationssystemet, hantering av kommandoraden, laddning och hantering av ikoner, vissa särskilda sorters interprocesskommunikation, filhantering och diverse andra verktyg. + + + +tdeui +Biblioteket tdeui tillhandahåller många grafiska komponenter och standarddialogrutor som Qt inte har eller som har fler funktioner än motsvarande i Qt. Det innehåller också flera grafiska komponenter som är delklasser av de i Qt, men är bättre integrerade med KDE-skrivbordet genom att de respekterar användarinställningar. + + + +kio +Biblioteket kio innehåller funktioner för asynkron, nätverkstransparent I/O och åtkomst till hantering av Mime-typer. Det tillhandahåller också KDE:s fildialogruta och dess hjälpklasser. + + + +kjs +Biblioteket kjs tillhandahåller en implementering av Javaskript. + + + +khtml +Biblioteket khtml innehåller KHTML-delen, en HTML-bläddringskomponent, DOM-gränssnitt och tolk, inklusive gränssnitt till Java och Javaskript. + + + + + + + + +Grupperade klasser + +Centralt programskelett: klasser som behövs av nästan alla program. + + + + +<ulink url="kdeapi:tdecore/KApplication" +>KApplication</ulink +> +Initierar och styr ett KDE-program. + + + +<ulink url="kdeapi:tdecore/KUniqueApplication" +>KUniqueApplication</ulink +> +Försäkrar att bara en instans av ett program kan köra samtidigt. + + +<ulink url="kdeapi:tdecore/KAboutData" +>KAboutData</ulink +> +Innehåller information för dialogrutan Om. + + +<ulink url="kdeapi:tdecore/KCmdLineArgs" +>KCmdLineArgs</ulink +> +Behandling av kommandoradsväljare. + + + + +Konfigurationsinställningar: åtkomst till KDE:s hierarkiska konfigurationsdatabas, globala inställningar och programresurser. + + + +<ulink url="kdeapi:tdecore/KConfig" +>KConfig</ulink +> +Ger tillgång till KDE:s konfigurationsdatabas. + + +<ulink url="kdeapi:tdecore/KSimpleConfig" +>KSimpleConfig</ulink +> +Åtkomst av enkla, icke-hierarkiska konfigurationsfiler. + + +<ulink url="kdeapi:tdecore/KDesktopFile" +>KDesktopFile</ulink +> +Åtkomst till .desktop-filer. + + +<ulink url="kdeapi:tdecore/KGlobalSettings" +>KGlobalSettings</ulink +> +Bekväm åtkomst till inställningar som inte är programspecifika. + + + + +Fil- och webbadresshantering: avkodning av webbadresser, tillfälliga filer, etc. + + + +<ulink url="kdeapi:tdecore/KURL" +>KURL</ulink +> +Representerar och tolkar webbadresser. + + +<ulink url="kdeapi:tdecore/KTempFile" +>KTempFile</ulink +> +Skapar unika filer för tillfällig data. + + +<ulink url="kdeapi:tdecore/KSaveFile" +>KSaveFile</ulink +> +Tillåter att filer sparas odelbart. + + + + +Interprocesskommunikation: DCOP-hjälpklasser och start av underprocesser. + + + +<ulink url="kdeapi:tdecore/KProcess" +>KProcess</ulink +> +Startar och styr underprocesser. + + +<ulink url="kdeapi:tdecore/KShellProcess" +>KShellProcess</ulink +> +Startar underprocesser via ett skal. + + +<ulink url="kdeapi:tdesu/PtyProcess" +>PtyProcess</ulink +> +Kommunikation med underprocesser via en pseudoterminal. + + +<ulink url="kdeapi:tdecore/KIPC" +>KIPC</ulink +> +Enkel IPC-mekanism som använder X11-klientmeddelanden. + + +<ulink url="kdeapi:dcop/DCOPClient" +>DCOPClient</ulink +> +DCOP-meddelanden. + + +<ulink url="kdeapi:tdecore/KDCOPPropertyProxy" +>KDCOPPropertyProxy</ulink +> +En proxyklass som offentliggör Qt-egenskaper via DCOP. + + +<ulink url="kdeapi:tdeui/KDCOPActionProxy" +>KDCOPActionProxy</ulink +> +En proxyklass som offentliggör ett DCOP-gränssnitt för åtgärder. + + + + +Verktygsklasser: minneshantering, reguljära uttryck, stränghantering, slumptal. + + + +<ulink url="kdeapi:tdecore/KRegExp" +>KRegExp</ulink +> +Matchning av POSIX reguljära uttryck. + + +<ulink url="kdeapi:tdecore/KStringHandler" +>KStringHandler</ulink +> +Ett överdådigt gränssnitt för stränghantering. + + +<ulink url="kdeapi:tdecore/KZoneAllocator" +>KZoneAllocator</ulink +> +Effektiv minnestilldelning för stora grupper av små objekt. + + +<ulink url="kdeapi:tdecore/KRandomSequence" +>KRandomSequence</ulink +> +Skapa pseudoslumptal. + + + + +Snabbtangenter: klasser som hjälper till att skapa överensstämmande tangentbindningar över hela skrivbordet. + + + +<ulink url="kdeapi:tdecore/KAccel" +>KAccel</ulink +> +Samling av snabbtangenter. + + +<ulink url="kdeapi:tdecore/KStdAccel" +>KStdAccel</ulink +> +Lätt åtkomst till de vanliga snabbtangenterna. + + +<ulink url="kdeapi:tdecore/KGlobalAccel" +></ulink +> +Samling av snabbtangenter som gäller för hela systemet. + + + + +Bildbehandling: ikonladdning och -hantering. + + + +<ulink url="kdeapi:tdecore/KIconLoader" +>KIconLoader</ulink +> +Laddar ikoner som överensstämmer med teman. + + +<ulink url="kdeapi:tdecore/KIconTheme" +>KIconTheme</ulink +> +Hjälpklasser för KIconLoader. + + +<ulink url="kdeapi:tdecore/KPixmap" +>KPixmap</ulink +> +En pixmapp-klass med utökade gittermöjligheter. + + +<ulink url="kdeapi:tdeui/KPixmapEffect" +>KPixmapEffect</ulink +> +Pixmappeffekter som toning och mönster. + + +<ulink url="kdeapi:tdeui/KPixmapIO" +>KPixmapIO</ulink +> +Snabb konvertering mellan QImage och QPixmap. + + + + +Drag och släpp: dra objekt för färger och webbadresser. + + + +<ulink url="kdeapi:tdecore/KURLDrag" +>KURLDrag</ulink +> +Dragobjekt för webbadresser. + + +<ulink url="kdeapi:tdeui/KColorDrag" +>KColorDrag</ulink +> +Dragobjekt för färger. + + +<ulink url="kdeapi:tdecore/KMultipleDrag" +>KMultipleDrag</ulink +> +Tillåter att dragobjekt skapas från flera andra. + + + + +Automatisk komplettering + + + +<ulink url="kdeapi:tdecore/KCompletion" +>KCompletion</ulink +> +Generell automatisk komplettering av strängar. + + +<ulink url="kdeapi:kio/KURLCompletion" +>KURLCompletion</ulink +> +Automatisk komplettering av webbadresser. + + +<ulink url="kdeapi:kio/KShellCompletion" +>KShellCompletion</ulink +> +Automatisk komplettering för körbara program. + + + + +Grafiska komponenter: klasser för listvyer, linjaler, färgval, etc. + + + +<ulink url="kdeapi:tdeui/KListView" +>KListView</ulink +> +En version av QListView som följer KDE:s systeminställningar. + + +<ulink url="kdeapi:tdeui/KListView" +>KListBox</ulink +> +En version av QListBox som följer KDE:s systeminställningar. + + +<ulink url="kdeapi:tdeui/KListView" +>KIconView</ulink +> +En version av QIconView som följer KDE:s systeminställningar. + + +<ulink url="kdeapi:tdeui/KListView" +>KLineEdit</ulink +> +En version av QLineEdit med stöd för komplettering. + + +<ulink url="kdeapi:tdeui/KComboBox" +>KComboBox</ulink +> +En version av QComboBox med stöd för komplettering. + + +<ulink url="kdeapi:tdeui/KFontCombo" +>KFontCombo</ulink +> +En kombinationsruta för att välja teckensnitt. + + +<ulink url="kdeapi:tdeui/KColorCombo" +>KColorCombo</ulink +> +En kombinationsruta för att välja färger. + + +<ulink url="kdeapi:tdeui/KColorButton" +>KColorButton</ulink +> +En knapp för att välja färger. + + +<ulink url="kdeapi:tdeui/KURLCombo" +>KURLCombo</ulink +> +En kombinationsruta för att välja filnamn och webbadresser. + + +<ulink url="kdeapi:kfile/KURLRequester" +>KURLRequester</ulink +> +En radeditor för att välja filnamn och webbadresser. + + +<ulink url="kdeapi:tdeui/KRuler" +>KRuler</ulink +> +En linjalkomponent. + + +<ulink +url="kdeapi:tdeui/KAnimWidget" +>KAnimWidget</ulink +> +Animeringar. + + +<ulink url="kdeapi:tdeui/KNumInput" +>KNumInput</ulink +> +En komponent för att mata in tal. + + +<ulink url="kdeapi:tdeui/KPasswordEdit" +>KPasswordEdit</ulink +> +En komponent för att mata in lösenord. + + + + +Dialogrutor: dialogrutor med fullständig funktion för val av filer, färger och teckensnitt. + + + +<ulink url="kdeapi:kfile/KFileDialog" +>KFileDialog</ulink +> +En dialogruta för val av filer. + + +<ulink url="kdeapi:tdeui/KColorDialog" +>KColorDialog</ulink +> +En dialogruta för val av färger. + + +<ulink url="kdeapi:tdeui/KFontDialog" +>KFontDialog</ulink +> +En dialogruta för val av teckensnitt. + + +<ulink url="kdeapi:kfile/KIconDialog" +>KIconDialog</ulink +> +En dialogruta för val av ikoner. + + +<ulink url="kdeapi:tdeui/KKeyDialog" +>KKeyDialog</ulink +> +En dialogruta för att redigera tangentbordsbindningar. + + +<ulink url="kdeapi:tdeui/KEditToolBar" +>KEditToolBar</ulink +> +En dialogruta för att redigera verktygsrader. + + +<ulink url="kdeapi:tdeui/KTipDialog" +>KTipDialog</ulink +> +En dialogruta med dagens tips. + + +<ulink url="kdeapi:tdeui/KAboutDialog" +>KAboutDialog</ulink +> +En dialogruta om ett program. + + +<ulink url="kdeapi:tdeui/KLineEditDlg" +>KLineEditDlg</ulink +> +En enkel dialogruta för att mata in text. + + +<ulink url="kdeapi:kfile/KURLRequesterDlg" +>KURLRequesterDlg</ulink +> +En enkel dialogruta för att mata in webbadresser. + + +<ulink url="kdeapi:tdeui/KMessageBox" +>KMessageBox</ulink +> +En dialogruta för att meddela fel och varningar. + + +<ulink url="kdeapi:tdeui/KPasswordDialog" +>KPasswordDialog</ulink +> +En dialogruta för att mata in lösenord. + + + + +Åtgärder och grafiskt XML-gränssnitt + + + +<ulink url="kdeapi:tdeui/KAction" +>KAction</ulink +> +En abstraktion av en åtgärd som kan anslutas till menyrader och verktygsrader. + + +<ulink url="kdeapi:tdeui/KActionCollection" +>KActionCollection</ulink +> +En samling åtgärder. + + +<ulink url="kdeapi:tdeui/KXMLGUIClient" +>KXMLGUIClient</ulink +> +Ett fragment av ett grafiskt gränssnitt som består av en åtgärd och ett DOM-träd som motsvarar dess plats i det grafiska gränssnittet. + + +<ulink url="kdeapi:kparts/KPartManager" +>KPartManager</ulink +> +Hanterar aktivering av klienter till det grafiska XML-gränssnittet. + + + + +Insticksprogram och komponenter + + + +<ulink url="kdeapi:tdecore/KLibrary" +>KLibrary</ulink +> +Representerar ett dynamiskt laddat bibliotek. + + +<ulink url="kdeapi:tdecore/KLibrary" +>KLibLoader</ulink +> +Laddning av delade bibliotek. + + +<ulink url="kdeapi:tdecore/KLibFactory" +>KLibFactory</ulink +> +Tillverkning av objekt för Insticksprogram. + + +<ulink url="kdeapi:kio/KServiceType" +>KServiceType</ulink +> +Representerar en tjänsttyp. + + +<ulink url="kdeapi:kio/KService" +>KService</ulink +> +Representerar en tjänst. + + +<ulink url="kdeapi:kio/KMimeType" +>KMimeType</ulink +> +Representerar en Mime-typ. + + +<ulink url="kdeapi:kio/KServiceTypeProfile" +>KServiceTypeProfile</ulink +> +Användarinställningar för tilldelningar av Mime-typer. + + +<ulink url="kdeapi:kio/KServiceTypeProfile" +>KTrader</ulink +> +Förfrågningar om tjänster. + + + + + + + + + + + +Grafik + + +Lågnivågrafik med QPainter. + + +Uppritning med QPainter + +Qt:s lågnivåritmodell är baserad på de möjligheter som erbjuds av X11 och andra fönstersystem där en version av Qt finns. Men den utökar också dem genom att implementera ytterligare funktioner som godtyckliga affina omvandlingar för text och pixmappar. + +Den centrala grafiska klassen för att rita tvådimensionellt med Qt är QPainter. Den kan rita på en QPaintDevice. Det finns tre möjliga ritenheter implementerade: En är QWidget, som representerar en grafisk komponent på skärmen. Den andra är QPrinter, som representerar en skrivare, och producerar Postskript-utmatning. Den tredje är klassen QPicture, som spelar in ritkommandon och kan spara dem till disk, och sedan spela upp dem. Ett möjligt lagringsformat för ritkommandon är W3C-standarden SVG. + +Alltså är det möjligt att återanvända uppritningskoden som du använder för att visa en grafisk komponent för utskrift, med stöd för samma funktioner. Naturligtvis används koden i praktiken i ett något annorlunda sammanhang. Rita på en grafisk komponent görs nästan enbart i metoden paintEvent() i en komponentklass. + +void MinKomponent::paintEvent() +{ + QPainter p(this); + // Ställ in + // Använd +} + + +Vid ritning på en skrivare, måste du försäkra dig om att använda QPrinter::newPage() för att avsluta en sida, och börja på en ny: något som inte är relevant för att rita grafiska komponenter. Vid utskrift vill du kanske också använda enhetsmått för att beräkna koordinater. + + + + + +Omvandlingar + +Normalt när QPainter används, ritar den i det naturliga koordinatsystemet som används av enheten. Det betyder att om du ritar en linje med längden 10 enheter, ritas den som en horisontell linje på skärmen med längden 10 bildpunkter. Dock kan QPainter använda godtyckliga affina omvandlingar innan former och kurvor verkligen ritas upp. En affin omvandling överför x- och y-koordinater linjärt till x' och y' enligt: + + + + + +QPainter::setWorldMatrix() kan användas för att ange den här 3x3 matrisen i ekvationen, som har typen QWMatrix. Normalt är detta identitetsmatrisen, dvs. m11 och m22 är ett, och övriga värden är noll. Det finns i grunden tre olika grupper av omvandlingar: + + + + +Förflyttningar +Dessa flyttar ett objekts alla punkter med ett fast värde i någon riktning. En förflyttningsmatris kan erhållas genom att anropa metoden m.translate(dx, dy) med en QWMatrix. Det motsvarar matrisen: + + + + + + + + + +Skalning +Dessa förstorar eller förminskar ett objekts koordinater, och gör det större eller mindre utan att förvränga det. En skalningsomvandling kan göras för en QWMatrix genom att anropa m.scale(sx, sy). Det motsvarar matrisen: + + + + + + +Genom att ge en av parametrarna ett negativt värde, kan man åstadkomma spegling av koordinatsystemet. + + + + +Skjuvning +En förvrängning av koordinatsystemet med två parametrar. En skjuvningsomvandling kan göras genom att anropa m.shear(sh, sv), vilket motsvarar matrisen: + + + + + + + + + +Rotation +Detta roterar ett objekt. En rotationsomvandling kan göras genom att anropa m.rotate(alfa). Observera att vinkeln måste anges i grader, inte som en matematisk vinkel! Motsvarande matris är: + + + + + + +Observera att rotation är ekvivalent med en kombination av skalning och skjuvning. + + + + + +Här är några bilder som visar effekten av de grundläggande omvandlingarna för vår maskot: + + + + + + + + + + + + + + + + + + + +a) Normal +b) Roterad 30 grader +c) Skjuvad med 0,4 +d) Speglad + + + + + +Omvandlingar kan kombineras genom att multiplicera grundläggande matriser. Observera att matrisoperationer inte i allmänhet är kommutativa, och därför beror den kombinerade effekten av en sammansättning på ordningen som matriserna multipliceras med. + + + + + +Ange streckegenskaper + +Uppritning av linjer, kurvor och polygonkanter kan ändras genom att ange en särskild penna med QPainter::setPen(). Argumentet till den här funktionen är ett QPen-objekt. Egenskaperna som lagras i det är en stil, en färg, en sammanfogningsstil och en ändstil. + +Pennstilen är en medlem av uppräkningstypen Qt::PenStyle. och kan ha något av följande värden: + + + + + +Sammanfogningsstilen är en medlem av uppräkningstypen Qt::PenJoinStyle. Den anger hur förbindelsen mellan flera linjer som sätts samman ritas. Den kan ha något av följande värden: + + + + + + + + + + + + + + + + +a) MiterJoin +c) BevelJoin +b) RoundJoin + + + + + +Ändstilen är en medlem av uppräkningstypen Qt::PenCapStyle och anger hur linjernas ändpunkter ritas. Den antar något värde från följande tabell: + + + + + + + + + + + + + + + + +a) FlatCap +b) SquareCap +c) RoundCap + + + + + + + + + +Ange fyllnadsegenskaper + +Fyllnadsstilen för polygoner, cirklar eller rektanglar kan ändras genom att ange en särskild borste med QPainter::setBrush(). Den här funktionens argument är ett QBrush-objekt. Borstar kan skapas på fyra olika sätt: + + + +QBrush::QBrush(): detta skapar en borste som inte fyller i former. + + +QBrush::QBrush(BrushStyle): detta skapar en svart borste, med ett av de fördefinierade mönstren som visas nedan. + + +QBrush::QBrush(const QColor &, BrushStyle): detta skapar en färgad borste, med ett av de fördefinierade mönstren som visas nedan. + + +QBrush::QBrush(const QColor &, const QPixmap): detta skapar en färgad borste, med det egna mönstret som anges som andra parameter. + + + +En standardborststil från uppräkningstypen Qt::BrushStyle. Här är en bild av alla fördefinierade mönster: + + + + + +Ytterligare ett sätt att anpassa en borstes beteende är att använda funktionen QPainter::setBrushOrigin(). + + + + + +Färg + +Färger har betydelse både när kurvor ritas, och när former fylls i. Färger representeras av klassen QColor i Qt. Qt stöder inte avancerade grafikfunktioner som ICC-färgprofiler och färgkorrektion. Färger skapas oftast genom att ange deras röda, gröna och bläa komponenter, eftersom RGB-modellen är sättet som bildpunkter sätts samman på en bildskärm. + +Det är också möjligt att använda färgton, färgmättnad och värde. Den här HSV-representationen är den som används i GTK:s färgdialogruta, t.ex. i GIMP. Där motsvarar färgtonen en vinkel i färghjulet, medan färgmättnaden motsvarar avståndet från cirkelns mitt. Värdet väljs med ett särskilt skjutreglage. + + + + + +Övriga inställningar + +Normalt när du ritar på en ritenhet, så ersätter bildpunkterna de som tidigare fanns där. Det betyder om du fyller ett visst område med röd färg, och sedan fyller samma område med blå färg, så är bara den blåa färgen synlig. Qt:s bildmodell tillåter inte genomskinlighet, dvs. ett sätt att blanda förgrunden som ritas med bakgrunden. Det finns dock ett enkelt sätt att kombinera bakgrund och förgrund med Booleska operationer. Metoden QPainter::setRasterOp() anger operationen som används, som kommer från uppräkningstypen RasterOp. + +Standardvärdet är CopyROP, som ignorerar bakgrunden. Ett annat populärt val är XorROP. Om du ritar en svart linje med den operationen på en färgad bild, så inverteras området som täcks. Den här effekten används till exempel för att skapa gummibandsmarkeringar i bildbehandlingsprogram, som är kända under namnet "vandrande myror". + + + + + +Rita grafiska primitiver + +I det följande listar vi de grundläggande grafiska elementen som stöds av QPainter. De flesta av dem finns i flera överlastade versioner som har olika antal argument. Metoder som hanterar rektanglar, har till exempel oftast en QRect som argument, eller en uppsättning med fyra heltal. + + + +Rita en ensam punkt: drawPoint(). + + +Rita linjer: drawLine(), drawLineSegments() och drawPolyLine(). + + +Rita och fylla i rektanglar: drawRect(), drawRoundRect(), fillRect() och eraseRect(). + + +Rita och fylla i cirklar, ellipser och delar av dem: drawEllipse(), drawArc(), drawPie och drawChord(). + + +Rita och fylla i generella polygoner: drawPolygon(). + + +Rita Bezierkurvor: drawQuadBezier() [drawCubicBezier i Qt 3.0]. + + + + + + + +Rita pixmappar och bilder + +Qt tillhandahåller två mycket olika klasser för att representera bilder. + +QPixmap motsvarar direkt pixmappsobjekt i X11. En pixmapp är ett objekt på serversidan och kan, med ett modernt grafikkort, till och med lagras direkt i kortets minne. Det gör det mycket effektivt att överföra en pixmapp till skärmen. En pixmapp fungerar också som en motsvarighet till grafiska komponenter utanför skärmen. QPixmap-klassen är en delklass till QPaintDevice, så det går att rita på den med en QPainter. Elementära ritoperationer accelereras ofta av modern grafik. Därför är ett vanligt användningsmönster att använda en pixmapp för dubbelbuffring. Detta betyder att istället för att rita direkt på en grafisk komponent, ritar man på ett tillfälligt pixmappsobjekt och använder funktionen bitBlt för att överföra det till komponenten. För komplexa omritningar, hjälper detta till att undvika flimmer. + +I motsats till detta, finns QImage-objekt på klientsidan. Deras huvuduppgift är att ge direkt åtkomst till bildpunkterna i bilden. Det gör dem användbara för bildhantering, och saker som att ladda och spara till disk (Metoden load() för QPixmap använder QImage som ett mellansteg). Å andra sidan, så blir uppritning av en bild på en grafisk komponent en ganska krävande åtgärd, eftersom det innebär en överföring till X-servern, vilket kan ta en viss tid, särskilt för stora bilder och fjärrservrar. Beroende på färgdjupet, kan konvertering från QImage till QPixmap också kräva användning av gitter. + + + + + +Rita text + +Text kan ritas med en av de överlastade varianterna av metoden QPainter::drawText(). De ritar en QString, antingen vid en given punkt eller inne i en given rektangel, med teckensnittet som ställts in med QPainter::setFont(). Det finns också en parameter som tar en ELLER-kombination av vissa flaggor från uppräkningstyperna Qt::AlignmentFlags och Qt::TextFlags. + +Med början i version 3.0, hanterar Qt fullständig textlayout också för språk som skrivs från höger till vänster. + +Ett mer avancerat sätt att visa text med taggar, är klassen QSimpleRichText. Objekt från klassen kan skapas med ett textstycke som använder en delmängd av HTML-taggarna, som är ganska omfattande och till och med erbjuder tabeller. Textstilen kan anpassas genom att använda QStyleSheet (taggarnas dokumentation finns också här). Så fort textobjektet har skapats, kan det ritas upp på en grafisk komponent eller en annan ritenhet med metoden QSimpleRichText::draw(). + + + + + + + +Strukturerad grafik med QCanvas + +QPainter erbjuder en kraftfull ritmodell för att rita på grafikska komponenter och pixmappar. Dock kan den vara omständlig att använda. Varje gång komponenten tar emot en rithändelse, måste den analysera QPaintEvent::region() eller QPaintEvent::rect() för det som måste ritas om. Därefter måste den ställa in en QPainter, och rita alla objekt som överlappar det området. Tänk dig till exempel ett vektorritprogram som tillåter att objekt som polygoner, cirklar och grupper av dem att dras omkring. Varje gång objekten flyttas lite grand, aktiverar komponentens mushändelsehantering en rithändelse för hela området som täcks av objektens gamla plats och deras nya plats. Att räkna ut nödvändiga omritningar, och att göra dem på ett effektivt sätt, kan vara svårt, och kan också vara i konflikt med programkodens objektorienterade struktur. + +Som alternativ innehåller Qt klassen QCanvas, där man lägger till grafiska objekt, som polygoner, text eller pixmappar. Man kan också skapa ytterligare objekt genom att skapa en delklass av QCanvasItem eller någon av dess mer specialiserade delklasser. En duk kan visas på skärmen genom en eller flera komponenter från klassen QCanvasView, som man måste skapa en delklass av för att hantera interaktion med användaren. Qt tar hand om all omritning av objekt i vyn, vare sig de orsakas av att komponenten visas, nya objekt skapas eller ändras, eller andra orsaker. Genom att använda dubbelbuffring, kan detta göras på ett effektivt och flimmerfritt sätt. + +Objekt på duken kan överlappa varandra. I detta fall, så beror vilken som syns på z-ordningen, som kan tilldelas med QCanvasItem::setZ(). Objekt kan också göras synliga eller osynliga. Man kan också tillhandahålla en bakgrund som ska ritas "bakom" alla objekt, och en förgrund. För att associera mushändelser med objekt på duken, finns metoden QCanvas::collisions(), som returnerar en lista med objekt som överlappar med en given punkt. Här visar vi en skärmbild av en dukvy i arbete: + + + + + +Här ritas rutmönstret upp i bakgrunden. Dessutom finns ett QCanvasText-objekt och en violett QCanvasPolygon. Fjärilen är en QCanvasPixmap. Den har genomskinliga områden, så du kan se underliggande objekt genom den. + +En handledning om hur QCanvas används för att skriva spel baserade på småfigurer finns här. + + + + + +3D-grafik med OpenGL + + +Lågnivågränssnitt + +De-facto standarden för att rita upp 3D-grafik nu för tiden är OpenGL. Implementeringar av standarden levereras med Microsoft Windows, Mac OS X och XFree86, och de stöder ofta funktioner för hårdvaruacceleration som erbjuds av moderna grafikkort. OpenGL själv hanterar bara uppritning på ett angivet område i rambuffern genom ett GL-sammanhang, och har ingen interaktion med verktygslådan eller miljön. + +Qt erbjuder den grafiska komponenten QGLWidget, som kapslar in ett fönster med tillhörande GL-sammanhang. I grunden används det genom att skapa en delklass av det och implementera om några metoder. + + + +Istället för att implementera om paintEvent(), och använda QPainter för att rita komponentens innehåll, överskrider man paintGL() och använder GL-kommandon för att rita upp en scen. QGLWidget tar hand om att göra sitt GL-sammanhang det aktuella innan paintGL() anropas, och tömmer det efteråt. + +Den virtuella metoden initializeGL() anropas en gång innan den första gången innan resizeGL() eller paintGL() anropas. Det kan användas för att skapa visningslistor för objekt, och göra alla initieringar. + +Istället för att implementera om resizeEvent(), överskrider man resizeGL(). Detta kan användas för att ställa in vyområdet på ett lämpligt sätt. + +Istället för att anropa update() när scenens tillstånd har ändrats, till exempel om du animerar det med ett tidur, ska man anropa updateGL(). Då aktiveras en omritning. + + + +I allmänhet beter sig QGLWidget som vilken annan grafisk komponent som helst, dvs. man kan till exempel hantera mushändelser som vanligt, ändra storlek på komponenten och kombinera den med andra i en layout. + + + + + +Qt innehåller några exempel på användning av QGLWidget i demo-exemplen. En samling handledningar finns här, och mer information samt en OpenGL-referens finns på OpenGL:s hemsida. + + + + + +Högnivågränssnitt + +OpenGL är ett gränssnitt på ganska låg nivå för att rita 3D-grafik. På samma sätt som QCanvas ger programmeraren ett gränssnitt på högre nivå som hanterar objekt och deras egenskaper, finns det också gränssnitt på högre nivå för 3D-grafik. Ett av de mest populära är Open Inventor. Ursprungligen var det en teknologi som utvecklades av SGI, men idag finns också en implementering med öppen källkod, Coin, som åtföljs av en verktygsanpassning till Qt, som heter SoQt. + +Det grundläggande konceptet i Open Inventor är en scen. En scen kan laddas från disk, och sparas med ett särskilt format, nära besläktat med VRML. En scen består av en samling objekt som kallas noder. Inventor tillhandahåller redan en omfattande samling med återanvändbara noder, som kuber, cylindrar och rutnät. Dessutom finns ljuskällor, material, kameror, etc. Noder representeras av C++ klasser, och kan kombineras och delklasser kan skapas. + +En introduktion till Inventor finns här (i allmänhet kan du ersätta alla SoXt som omnämns i artikeln med SoQt). + + + + + + + + + + +Användargränssnitt + + +Åtgärdsmönstret + + + + + + + +Definiera menyer och verktygsrader i XML + + +Inledning + +Medan åtgärdsmönster tillåter att åtgärder som aktiveras av användaren kapslas in i ett objekt, som kan "anslutas" någonstans i menyraderna eller verktygsraderna, löser det inte ensamt problemet med att skapa själva menyerna. I synnerhet måste du bygga alla sammanhangsberoende menyer i C++ kod, och uttryckligen infoga åtgärderna i en viss ordning, med hänsyn taget till stilguiden för standardåtgärder. Det gör det rätt svårt att låta användaren anpassa menyerna eller ändra snabbtangenter så att de passar hans behov, utan att ändra källkoden. + +Det här problemet löses med en samling klasser som kallas grafiskt XML-gränssnitt. I grunden skiljer de åtgärderna (kodade i C++) från deras utseende i menyrader och verktygsrader (kodade i XML). Utan att ändra någon källkod, kan menyer enkelt anpassas genom att justera en XML-fil. Dessutom hjälper det till att försäkra att standardåtgärder (som Arkiv Öppna eller Hjälp Om) visas på platserna som föreslås av stilguiden. Grafiska XML-gränssnitt är särskilt viktiga för modulära program, där alternativen i menyraderna kan komma från många olika insticksprogram eller delar. + +KDE:s klass för toppnivåfönster, KMainWindow, ärver KXMLGUIClient, och stöder därför grafiska XML-gränssnitt från början. Alla åtgärder som skapas inne i det måste ha klientens actionCollection() som förälder. Ett anrop till createGUI() bygger sedan hela uppsättningen menyer och verktygsrader som definieras av programmets XML-fil (vanligtvis med ändelsen ui.rc). + + + + + +Ett exempel: Menyn i Kview + +I det följande använder vi KDE:s bildvisare Kview som exempel. Den har en ui.rc-fil som heter kviewui.rc, som installeras med ett fragment från Makefile.am + +rcdir = $(kde_datadir)/kview +rc_DATA = kviewui.rc + + +Här är ett utdrag ur filen kviewui.rc. För enkelhetens skull, visar vi bara definitionen för menyn View. + +<!DOCTYPE kpartgui> +<kpartgui name="kview"> + <MenuBar> + <Menu name="view" > + <Action name="zoom50" /> + <Action name="zoom100" /> + <Action name="zoom200" /> + <Action name="zoomMaxpect" /> + <Separator/> + <Action name="fullscreen" /> + </Menu> + </MenuBar> +</kpartgui> + + +Motsvarande del av att skapa detta i C++ är: + +KStdAction::zoomIn ( this, SLOT(slotZoomIn()), actionCollection() ); + KStdAction::zoomOut ( this, SLOT(slotZoomOut()), actionCollection() ); + KStdAction::zoom ( this, SLOT(slotZoom()), actionCollection() ); + new KAction ( i18n("&Half size"), ALT+Key_0, + this, SLOT(slotHalfSize()), + actionCollection(), "zoom50" ); + new KAction ( i18n("&Normal size"), ALT+Key_1, + this, SLOT(slotDoubleSize()), + actionCollection(), "zoom100" ); + new KAction ( i18n("&Double size"), ALT+Key_2, + this, SLOT(slotDoubleSize()), + actionCollection(), "zoom200" ); + new KAction ( i18n("&Fill Screen"), ALT+Key_3, + this, SLOT(slotFillScreen()), + actionCollection(), "zoomMaxpect" ); + new KAction ( i18n("Fullscreen &Mode"), CTRL+SHIFT+Key_F, + this, SLOT(slotFullScreen()), + actionCollection(), "fullscreen" ); + + +Menyn View som skapas av den här definitionen av det grafiska gränssnittet ser ut som visas av den här skärmbilden: + + + + + +XML-filen börjar med en dokumenttypdeklaration. DTD:n för kpartgui finns i tdelibs-källkoden i tdeui/kpartgui.dtd. Det yttersta elementet i filen innehåller programmets instansnamn som en egenskap. Det kan också innehålla ett versionsnummer på formen "version=2". Det är användbart när du ger ut nya versioner av ett program med ändrad menystruktur, t.ex. med flera funktioner. Om du räknar upp versionsnumret i filen ui.rc, ser KDE till att alla anpassade versioner av filen slängs och att den nya filen används istället. + +Nästa rad, <MenuBar>, innehåller en deklaration av en menyrad. Du kan också infoga hur många <ToolBar>-deklarationer som helst, för att skapa några verktygsrader. Menyn innehåller en undermeny, med namnet "view". Det namnet är redan fördefinierat, och därför skulle den översatta versionen av ordet "View" kunna visas. Om du deklarerar undermenyer, måste du uttryckligen lägga till rubriken. Kview har till exempel en undermeny med rubriken "Image", som deklareras enligt följande: + +<Menu name="image" > + <text>&amp;Image</text> + ... +</Menu> + + +I KDE:s automatiska byggramverk, plockas sådana rubriker automatiskt ut och placeras i programmets .po-fil, så att det hanteras av översättare. Observera att du måste skriva markeringen av snabbtangenten "&" på en form som följer XML-syntaxen "&amp;". + +Låt oss återvända till exemplet. Kviews meny Visa innehåller ett antal egna åtgärder zoom50, zoom100, zoom200, zoomMaxpect och fullscreen, deklarerade med elementet <Action>. Skiljelinjen i skärmbilderna motsvarar elementet <Separator>. + +Du märker att vissa menyalternativ inte har ett motsvarande element i XML-filen. De är standardåtgärder. Standardåtgärder skapas av klassen KStdAction. När du skapar sådana åtgärder i ditt program (som i C++ exemplet ovan), infogas de automatiskt på en föreskriven plats, och möjligen med en ikon och en snabbtangent. Du kan slå upp de här platserna i filen tdeui/ui_standards.rc i tdelibs-källkoden. + + + + + +Ett exempel: Verktygsrader i Konqueror + +För beskrivningen av verktygsrader, byter vi till Konquerors definition av grafiskt gränssnitt. Det här utdraget definierar platsraden, som innehåller inmatningsfältet för webbadresser. + +<ToolBar name="locationToolBar" fullWidth="true" newline="true" > + <text>Location Toolbar</text> + <Action name="clear_location" /> + <Action name="location_label" /> + <Action name="toolbar_url_combo" /> + <Action name="go_url" /> +</ToolBar> + + +Det första vi märker är att det finns många fler egenskaper än för menyrader. De omfattar: + + + +fullWidth: Talar om för det grafiska XML-gränssnittet att verktygsraden har samma bredd som toppnivåfönstret. Om detta är "false", upptar verktygsraden bara så mycket plats som nödvändigt, och ytterligare verktygsrader placeras på samma rad. + +newline: Det här hör ihop med ovanstående alternativ. Om newline är "true", så placeras verktygsraden på en ny rad. Annars kan den placeras i en rad tillsammans med den föregående verktygsraden. + +noEdit: Normalt kan verktygsrader anpassas av användaren, t.ex. med Inställningar Anpassa verktygsrader i Konqueror. Sätts alternativet till "true", markeras verktygsraden så att den inte går att redigera. Det är viktigt för verktygsrader som fylls med objekt när programmet kör, t.ex. Konquerors bokmärkesverktygsrad. + +iconText: Talar om för det grafiska XML-gränssnittet att visa åtgärdens text intill ikonen. Normalt visas texten bara som ett verktygstips när musmarkören hålls över ikonen en stund. Möjliga värden för egenskapen är "icononly" (visar bara ikonen), "textonly" (visar bara texten), "icontextright" (visar texten till höger om ikonen) och "icontextbottom" (visar texten under ikonen). + + +hidden: Om det här är "true", så visas inte verktygsraden från början, och måste aktiveras av något menyalternativ. + + +position: Standardvärdet för den här egenskapen är "top", vilket betyder att verktygsraden placeras under menyraden. För program med många verktyg, som grafikprogram, kan det vara intressant att ersätta det här med "left" (vänster), "right" (höger) eller "bottom" (under). + + + + + + + +Dynamiska menyer + +XML kan naturligtvis bara innehålla en statisk beskrivning av ett användargränssnitt. Ofta finns det menyer som ändras under körning. Konquerors meny Plats innehåller till exempel en uppsättning alternativ Öppna med ..., med program som kan ladda en fil med en given Mime-typ. Varje gång dokumentet som visas ändras, uppdateras listan med menyalternativ. Det grafiska XML-gränssnittet är förberett för att hantera sådana fall med begreppet åtgärdslistor. En åtgärdslista deklareras som ett objekt i XML-filen, men består av flera åtgärder som ansluts till menyn när programmet kör. Ovanstående exempel implementeras med följande deklaration i Konquerors XML-fil: + +<Menu name="file"> + <text>&amp;Location</text> + ... + <ActionList name="openwith"> + ... +</Menu> + + +Funktionen KXMLGUIClient::plugActionList() används sedan för att lägga till åtgärder som ska visas, medan funktionen KXMLGuiClient::unplugActionList() tar bort alla anslutna åtgärder. Rutinen som är ansvarig för att göra uppdateringarna ser ut på följande sätt: + +void MainWindow::updateOpenWithActions() +{ + unplugActionList("openwith"); + openWithActions.clear(); + for ( /* Snurra för relevanta tjänster */ ) { + KAction *action = new KAction( ...); + openWithActions.append(action); + } + plugActionList("openwith", openWithActions); +} + + +Observera att i motsats till statiska åtgärder, så skapas inte de här med åtgärdssamlingen som förälder, och du ansvarar själv att de tas bort. Det enklaste sättet att åstadkomma det är genom att använda openWithActions.setAutoDelete(true) i exemplet ovan. + + + + + +Sammanhangsberoende menyer + +Exemplen ovan innehåller bara klasser där ett huvudfönsters menyrad och verktygsrader skapas. I de fallen är processen som skapar behållarna helt dold för dig inne i anropet av funktionen createGUI() (utom om du har egna behållare). Det finns dock fall då du vill skapa andra behållare och befolka dem med grafiska gränssnittsdefinitioner från XML-filen. Ett sådant exempel är sammanhangsberoende menyer. För att få en pekare till en sammanhangsberoende meny, måste du fråga klientens tillverkare efter den: + +void MainWindow::popupRequested() +{ + QWidget *w = factory()->container("context_popup", this); + QPopupMenu *popup = static_cast<QPopupMenu *>(w); + popup->exec(QCursor::pos()); +} + + +Metoden KXMLGUIFactory::container() som används ovan, ser efter om den hittar en behållare i XML-filen med det angivna namnet. Alltså kan en möjlig definition se ut på följande sätt: + +... +<Menu name="context_popup"> + <Action name="file_add"/> + <Action name="file_remove"/> +</Menu> +... + + + + + + + + +Tillhandahålla inbyggd hjälp + +Att göra ett program lätt och intuitivt att använda omfattar en stor mängd funktioner, som ofta kallas inbyggd hjälp. Inbyggd hjälp har flera, delvis motstridiga, mål: å ena sidan ska den ge användaren svar på frågan "Hur kan jag utföra en viss uppgift?", å andra sidan ska den hjälpa användaren utforska programmet och hitta funktioner som han inte ännu känner till. Det är viktigt att inse att det här bara kan åstadkommas genom att erbjuda flera hjälpnivåer: + + + +Verktygstips är små etiketter som dyker upp över gränssnittselement när musen blir kvar där en längre stund. De är särskilt viktiga för verktygsrader, där ikonerna inte alltid räcker till för att förklara syftet med en knapp. + +"Vad är det här?" hjälp är ofta en längre och mer utförlig förklaring av en komponent eller menyalternativ. Den är också knepigare att använda. I dialogrutor kan den visas på två olika sätt: antingen genom att trycka på Skift F1, eller genom att klicka på frågetecknet i namnlisten (stöd för det här beror på fönsterhanteraren). Muspekaren ändras då till en pil med ett frågetecken, och ett hjälpfönster visas när ett element i användargränssnittet klickas. "Vad är det här?" hjälp för menyer aktiveras oftast med en knapp i verktygsraden som innehåller en pil och ett frågetecken. + +Problemet med den här ansatsen är att användaren inte kan se om en grafisk komponent tillhandahåller hjälp eller inte. När användaren aktiverar knappen med frågetecken och inte får något hjälpfönster vid klick på ett element i användargränssnittet, blir han mycket snart frustrerad. + +Fördelen med "Vad är det här?" hjälpfönster som de erbjuds av Qt och KDE, är att de kan innehålla formaterad text, dvs. de kan innehålla olika teckensnitt, text med fetstil och kursiv stil, och till och med bilder och tabeller. + +Ett exempel på "Vad är det här?" hjälp: + + + + + + + +Till sist, ska alla program ha en handbok. En handbok visas normalt i Hjälpcentralen genom att använda menyn Hjälp. Det betyder att ett helt nytt program dyker upp och avleder användaren från arbetet. Följaktligen ska det bara vara nödvändigt att rådfråga handboken om andra funktioner, som verktygstips och vad är det här hjälp, inte räcker till. Naturligvis har en handbok fördelen att den inte förklarar enskilda isolerade aspekter av användargränssnittet. Den kan istället förklara vissa av programmets aspekter i ett större sammanhang. Handböcker för KDE skrivs med användning av DocBook-taggspråket. + + + +Från programmerarens synvinkel, erbjuder Qt ett enkelt gränssnitt för inbyggd hjälp. För att tilldela ett verktygstips till en grafisk komponent, använd klassen QToolTip. + +QToolTip::add(w, i18n("This widget does something.")) + + +Om menyraderna och verktygsraderna skapas som åtgärdsmönster, hämtas strängen som används som verktygstips från det första argumentet i konstruktorn KAction. + +action = new KAction(i18n("&Delete"), "editdelete", + SHIFT+Key_Delete, actionCollection(), "del") + + +Här är det också möjligt att tilldela en text som visas i statusraden när motsvarande menyalternativ markeras: + +action->setStatusText(i18n("Deletes the marked file")) + + +Programmeringsgränssnittet för "Vad är det här?" är mycket likt. Använd följande kod i dialogrutor: + +QWhatsThis::add(w, i18n("<qt>This demonstrates <b>Qt</b>'s" + " rich text engine.<ul>" + "<li>Foo</li>" + "<li>Bar</li>" + "</ul></qt>")) + + +För menyalternativ, använd + +action->setWhatsThis(i18n("Deletes the marked file")) + + +Start av Hjälpcentralen är inkapslat i klassen KApplication. För att visa handboken för programmet, använd bara + +kapp->invokeHelp() + + +Det här visar första sidan med innehållsförteckningen. När du bara vill visa ett visst avsnitt av handboken, kan du ge ytterligare ett argument till invokeHelp(), som avgör ankaret som bläddraren hoppar till. + + + + + + + + +Komponenter och tjänster + + +KDE-tjänster + + +Vad är KDE-tjänster? + +Begreppet tjänst är ett central idé i KDE:s modulära arkitektur. Det finns ingen strikt teknisk implementering kopplat till benämningen: tjänster kan vara insticksprogram i form av delade bibliotek, eller program som styrs via DCOP. Genom att göra anspråk på att vara av en viss tjänsttyp, lovar en tjänst att implementera vissa programmeringsgränssnitt eller funktioner. Med C++ språkbruk, kan man föreställa sig en tjänsttyp som en abstrakt klass, och en tjänst som en implementering av gränssnittet. + +Fördelen med den här uppdelningen är uppenbar: Ett program som utnyttjar en tjänsttyp behöver inte känna till möjliga implementeringar av den. Det använder bara programmeringsgränssnittet som hör ihop med tjänsttypen. På detta sätt kan tjänsten som används ändras utan att påverka programmet. Dessutom kan användaren anpassa vilka tjänster som han föredrar för vissa funktioner. + +Några exempel: + + + +HTML-uppritningskomponenten som används i Konqueror är en inbäddad komponent som implementerar tjänsttypen KParts/ReadOnlyPart och Browser/View. +I senaste versionen av KDevelop, är största delen av funktionerna paketerade i insticksprogram med tjänsttypen KDevelop/Part. Vid start, laddas alla tjänster av den här typen, så att du kan utöka den integrerade utvecklingsmiljön på ett mycket smidigt sätt. +Konqueror kan visa miniatyrbilder av bilder, HTML-sidor, PDF- och textfiler, om det aktiveras. Den här förmågan kan utökas. Om du vill visa förhandsgranskningsbilder av egna datafiler med en viss Mime-typ, kan du implementera en tjänst med tjänsttypen ThumbCreator. + + + +Naturligtvis karaktäriseras en tjänst inte bara av tjänsttypen som den implementerar, utan också av några egenskaper. Till exempel så gör inte en ThumbCreator bara anspråk på att implementera C++ klassen med typen ThumbCreator, den har också en lista med Mime-typer som den är ansvarig för. På samma sätt har KDevelop-delar programspråket de stöder som en egenskap. När ett program begär en tjänsttyp, kan den också ange begränsningar för tjänstens egenskaper. I exemplet ovan, när KDevelop laddar insticksprogram för ett Java-projekt, frågar det bara efter insticksprogram som har egenskapen Java som programspråk. KDE innehåller en fullständig CORBA-liknande handlare, med ett komplext frågespråk, för detta syfte. + + + + + +Definiera tjänsttyper + +Nya tjänsttyper läggs till genom att installera en beskrivning av dem i katalogen KDEDIR/share/servicetypes. I det automatiska byggramverket, kan det göras med detta fragment från Makefile.am: + +kde_servicetypesdir_DATA = tdeveloppart.desktop +EXTRA_DIST = $(kde_servicetypesdir_DATA) + + +Definitionen tdeveloppart.desktop för en del till KDevelop ser ut som följer: + +[Desktop Entry] +Type=ServiceType +X-KDE-ServiceType=KDevelop/Part +Name=KDevelop Part + +[PropertyDef::X-KDevelop-Scope] +Type=QString + +[PropertyDef::X-KDevelop-ProgrammingLanguages] +Type=QStringList + +[PropertyDef::X-KDevelop-Args] +Type=QString + + +Förutom de vanliga posterna, förevisar det här exemplet hur man anger att en tjänst har vissa egenskaper. Varje definition av en egenskap motsvarar en grupp [PropertyDef::name] i konfigurationsfilen. I gruppen, anger posten Type egenskapens typ. Möjliga typer är allt som kan lagras i en QVariant. + + + + + +Definiera delade bibliotekstjänster + +Tjänstdefinitioner lagras i katalogen KDEDIR/share/services: + +kde_servicesdir_DATA = kdevdoxygen.desktop +EXTRA_DIST = $(kde_servicesdir_DATA) + + +Innehållet i följande exempelfil, kdevdoxygen.desktop, anger insticksprogrammet KDevDoxygen med tjänsttypen KDevelop/Part: + +[Desktop Entry] +Type=Service +Comment=Doxygen +Name=KDevDoxygen +ServiceTypes=KDevelop/Part +X-KDE-Library=libkdevdoxygen +X-KDevelop-ProgrammingLanguages=C,C++,Java +X-KDevelop-Scope=Project + + +Förutom de vanliga deklarationerna, är en viktig post X-KDE-Library. Den innehåller namnet på libtool-biblioteket (utan filändelsen .la). Det fastlägger också namnet på den exporterade symbolen i biblioteket som returnerar objekttillverkaren (med det inledande prefixet init_). I ovanstående exempel, måste biblioteket innehålla följande funktion: + +extern "C" { + void *init_libkdevdoxygen() + { + return new DoxygenFactory; + } +}; + + +Typen för tillverkningsklassen DoxygenFactory beror på den specifika tjänsttyp som tjänsten implementerar. I vårt exempel med ett KDevelop-insticksprogram, måste tillverkaren vara en KDevFactory (som ärver KLibFactory). Vanligare exempel är KParts::Factory som antas skapa objekten KParts::ReadOnlyPart eller i de flesta fall det generella KLibFactory. + + + + + +Använda delade bibliotekstjänster + +För att kunna använda en delad bibliotekstjänst i ett program, måste du skaffa ett KService-objekt som representerar den. Det här beskrivs i avsnittet om Mime-typer (och i ett avsnitt om handlaren som återstår att skriva :-) + +Med objektet KService tillgängligt, kan du mycket lätt ladda biblioteket och få en pekare till dess tillverkningsobjekt. + +KService *service = ... +QString libName = QFile::encodeName(service->library()); +KLibFactory *factory = KLibLoader::self()->factory(libName); +if (!factory) { + QString name = service->name(); + QString errorMessage = KLibLoader::self()->lastErrorMessage(); + KMessageBox::error(0, i18n("There was an error loading service %1.\n" + "The diagnostics from libtool is:\n%2") + .arg(name).arg(errorMessage); +} + + +Från det ögonblicket, beror fortsättningen återigen på tjänsttypen. För generella insticksprogram, skapar man objekt med metoden KLibFactory::create(). Med KParts, måste tillverkningspekaren konverteras till det mer specifika KParts::Factory, och dess metod create() måste användas: + +if (factory->inherits("KParts::Factory")) { + KParts::Factory *partFactory = static_cast<KParts::Factory*>(factory); + QObject *obj = partFactory->createPart(parentWidget, widgetName, + parent, name, "KParts::ReadOnlyPart"); + ... +} else { + cout << "Tjänsten implementerar inte rätt tillverkare" << endl; +} + + + + + + +Definiera DCOP-tjänster + +En DCOP-tjänst implementeras oftast som ett program som startas när det behövs. Det går därefter in i en snurra och lyssnar efter DCOP-anslutningar. Programmet kan vara interaktivt, men det kan också köra som en demon i bakgrunden under hela eller delar av sin livstid, utan att användaren märker det. Ett exempel på en sådan demon är kio_uiserver, som implementerar växelverkan med användaren som förloppsdialogrutor för KIO-biblioteket. Fördelen med en sådan central demon är att t.ex. nerladdningsförloppet för flera olika filer kan visas i ett fönster, även om nerladdningarna startades från olika program. + +En DCOP-tjänst definieras på annat sätt än en tjänst i ett delat bibliotek. Naturligtvis anger den inte ett bibliotek, utan istället ett körbart program. Dessutom anger inte en DCOP-tjänst raden med tjänsttyp, eftersom den startas med namn. Den innehåller ytterligare två rader som ytterligare egenskaper: + +X-DCOP-ServiceType anger hur tjänsten startas. Värdet Unique (unik) anger att tjänsten inte får startas mer än en gång. Det betyder att om du försöker starta tjänsten (t.ex. via KApplication::startServiceByName(), kontrollerar KDE om den redan har registrerats i DCOP, och använder tjänsten som kör. Om den inte redan är registrerad, startar KDE den och väntar till den har registrerats. Därför kan du omedelbart skicka DCOP-anrop till tjänsten. I detta fall, ska tjänsten implementeras som KUniqueApplication. + +Värdet Multi för X-DCOP-ServiceType anger att flera instanser av tjänsten kan existera samtidigt, så varje försök att starta tjänsten skapar en ny process. Som en sista möjlighet kan värdet None (ingen) användas. I detta fall, väntar inte start av tjänsten på att den har registrerats i DCOP. + +X-KDE-StartupNotify ska normalt anges som "false". Annars visar aktivitetsfältet en startbekräftelse, eller, beroende på användarinställningarna, så ändras markören. + +Här är definitionen av kio_uiserver: + +[Desktop Entry] +Type=Service +Name=kio_uiserver +Exec=kio_uiserver +X-DCOP-ServiceType=Unique +X-KDE-StartupNotify=false + + + + + + +Använda DCOP-tjänster + +En DCOP-tjänst startas med en av flera metoder i klassen KApplication: + +DCOPClient *client = kapp->dcopClient(); +client->attach(); +if (!client->isApplicationRegistered("kio_uiserver")) { + QString error; + if (KApplication::startServiceByName("kio_uiserver", QStringList(), &error)) + cout << "Start av KIO-server misslyckades med meddelandet " << error << endl; +} +... +QByteArray data, replyData; +QCString replyType; +QDataStream arg(data, IO_WriteOnly); +arg << true; +if (!client->call("kio_uiserver", "UIServer", "setListMode(bool)", + data, replyType, replyData)) + cout << "Anrop till kio_uiserver misslyckades" << endl; +... + + +Observera att exemplet med ett DCOP-anrop som ges här använder uttrycklig sammansättning av argument. Ofta vill man istället använda en prototyp som skapas av dcopidl2cpp, eftersom det är mycket enklare, och mindre felbenäget. + +I exemplet som ges här, startas tjänsten "med namn", dvs. första argumentet till KApplication::startServiceByName() är namnet, som det anges på raden Name i desktop-filen. Ett alternativ är att använda KApplication::startServiceByDesktopName(), som använder namnet på desktop-filen som argument, dvs. i det här fallet "kio_uiserver.desktop". + +Alla dessa anrop har en lista med webbadresser som andra argument, vilket ges till tjänsten på kommandoraden. Det tredje argumentet är en pekare till en QString. Om starten av tjänsten misslyckas, tilldelas det här argumentet det översatta felmeddelandet. + + + + + + + +Mime-typer + + +Vad är Mime-typer? + +Mime-typer används för att beskriva typ av innehåll för filer eller datafragment. Ursprungligen infördes de för att tillåta att bilder eller ljudfiler, etc. kunde skickas med e-post (Mime betyder "Multipurpose Internet Mail Extensions"). Senare användes systemet också av webbläsare för att avgöra hur data som skickades av en webbserver skulle visas för användaren. En HTML-sida har till exempel Mime-typen "text/html", och en Postskript-fil "application/postscript". I KDE används den här idén på många skilda platser: + + + +I Konquerors ikonvy, representeras filer av ikoner. Varje Mime-typ har en viss ikon som den hör ihop med, som visas här. + +När man klickar på en filikon eller ett filnamn i Konqueror, så visas antingen filen i en inbäddad vy, eller så startas ett program som hör ihop med filtypen. + +När du drar och släpper någon data från ett program till ett annat (eller inom samma program), kan målet välja att bara acceptera vissa datatyper. Dessutom hanteras bilddata på annat sätt än textdata. + +Data på klippbordet har en Mime-typ. Traditionellt hanterade X-program bara pixmappar eller text, men med Qt finns det ingen begränsning av datatypen. + + + +Det är klart från ovanstående exempel, att Mime-hantering är en komplex sak. Först måste en tilldelning av filnamn till Mime-typer göras. KDE går ytterligare ett steg, och låter till och med filinnehåll tilldelas till Mime-typer, i de fall då filnamnet inte är tillgängligt. Därefter måste Mime-typer tilldelas till program eller bibliotek som kan visa eller redigera en fil av en viss typ, eller skapa en miniatyrbild av den. + +Det finns en mängd olika programmeringsgränssnitt för att räkna ut Mime-typen för data eller filer. I allmänhet måste man göra en avvägning mellan hastighet och tillförlitlighet. Man kan hitta en filtyp genom att bara titta på filnamnet (i de flesta fallen filändelsen). Filen foo.jpg är till exempel normalt "image/jpeg". I de fall där filändelsen har tagits bort är det här inte säkert, och man måste verkligen titta i filens innehåll. Det är förstås långsammare, särskilt för filer som först måste laddas ner via HTTP. Den innehållsbaserade metoden använder filen KDEDIR/share/mimelnk/magic, och är därför svår att utöka. Men i allmänhet kan information om Mime-typer lätt göras tillgängligt för systemet, genom att installera en .desktop-fil, och den blir effektivt och bekvämt tillgänglig via KDE-biblioteken. + + + + + +Definiera Mime-typer + +Låt oss definiera typen "application/x-foo", för vårt nya program foobar. För att göra det, måste filen foo.desktop skrivas, och installeras i KDEDIR/share/mimelnk/application. (Det är den vanliga platsen, som kan variera mellan distributioner). Det här kan göras genom att lägga till följande till Makefile.am: + +mimedir = $(kde_mimedir)/application +mime_DATA = foo.desktop +EXTRA_DIST = $(mime_DATA) + + +Filen foo.desktop ska se ut som följer: + +[Desktop Entry] +Type=MimeType +MimeType=application/x-foo +Icon=fooicon +Patterns=*.foo; +DefaultApp=foobar +Comment=Foo Data File +Comment[sv]=Foo-datafil + + +Posten "Comment" är avsedd att översättas. Eftersom .desktop-filen anger en ikon, bör du också installera en ikon fooicon.png, som representerar filen, t.ex. i Konqueror. + +I KDE-biblioteken motsvarar en sådan typdefinition en instans av klassen KMimeType. Använd det som i följande exempel: + +KMimeType::Ptr type = KMimeType::mimeType("application/x-foo"); +cout << "Typ: " << type->name() < endl; +cout << "Ikon: " << type->icon() < endl; +cout << "Kommentar: " << type->icon() < endl; +QStringList patterns = type->patterns(); +QStringList::ConstIterator it; +for (it = patterns.begin(); it != patterns.end(); ++it) + cout << "Mönster: " << (*it) << endl; + + + + + + +Avgöra Mime-typ för data + +Det snabba sättet att avgöra filtypen är KMimeType::findByURL(). Det tittar efter webbadressen och avgör i de flesta fall typen från filändelsen. Med vissa protokoll (t.ex. http, man, info), används inte den mekanismen. CGI-skript på webbservrar som skrivs i Perl, har till exempel ofta ändelsen .pl, som skulle ange typen "text/x-perl". Dock är filen som levereras av servern utmatning från skriptet, som normalt är HTML. I sådana fall, returnerar KMimeType::findByURL() Mime-typen "application/octet-stream" (tillgänglig via KMimeType::defaultMimeType()), som anger att den misslyckades med att ta reda på typen. + +KMimeType::Ptr type = KMimeType::findByURL("/home/bernd/foobar.jpg"); +if (type->name() == KMimeType::defaultMimeType()) + cout << "Kunde inte avgöra typen" << endl; +else + cout << "Typ: " << type->name() << endl; + + +(den här metoden har några fler argument, men dessa är inte dokumenterade, så glöm helt enkelt bort dem.) + +Man kan vilja ta reda på en Mime-typ från filens innehåll i stället för filnamnet. Det är tillförlitligare, men också långsammare, eftersom det kräver att en del av filen läses. Det görs med klassen KMimeMagic, som har annorlunda felhantering: + +KMimeMagicResult *result = KMimeMagic::self()->findFileType("/home/bernd/foobar.jpg"); +if (!result || !result->isValid()) + cout << "Kunde inte avgöra typen" << endl; +else + cout << "Typ: " << result->mimeType() << endl; + + +Med en variant av den här funktionen, kan du också avgöra typen för ett minnesblock. Det används till exempel av Kate för att räkna ut färgläggningsläget: + +QByteArray array; +... +KMimeMagicResult *result = KMimeMagic::self()->findBufferType(array); +if (!result || !result->isValid()) + cout << "Kunde inte avgöra typen" << endl; +else + cout << "Typ: " << result->mimeType() << endl; + + +Till och med KMimeMagic kan förstås bara avgöra filtypen från innehållet i en lokal fil. För fjärrfiler, finns ytterligare en möjlighet: + +KURL url("http://developer.kde.org/favicon.ico"); +QString type = KIO::NetAccess::mimetype(url); +if (type == KMimeType::defaultMimeType()) + cout << "Kunde inte avgöra typen" << endl; +else + cout << "Typ: " << type << endl; + + +Det här startar ett KIO-jobb för att ladda ner en del av filen, och kontrollera detta. Observera att den här funktionen kanske är riktigt långsam och blockerar programmet. Normalt vill man bara använda det om KMimeType::findByURL() returnerade "application/octet-stream". + +Å andra sidan, om du inte vill blockera programmet, kan du också uttryckligen starta KIO-jobbet och ansluta till några av dess signaler: + +void FooClass::findType() +{ + KURL url("http://developer.kde.org/favicon.ico"); + KIO::MimetypeJob *job = KIO::mimetype(url); + connect( job, SIGNAL(result(KIO::Job*)), + this, SLOT(mimeResult(KIO::Job*)) ); +} + +void FooClass::mimeResult(KIO::Job *job) +{ + if (job->error()) + job->showErrorDialog(); + else + cout << "Mime type: " << ((KIO::MimetypeJob *)job)->mimetype() << endl; +} + + + + + + +Tilldela en Mime-typ till ett program eller tjänst + +När ett program installeras, installerar det en .desktop-fil, som innehåller en lista med MIME-typer som programmet kan ladda. På samma sätt gör komponenter, som en KPart, den här informationen tillgänglig med sina .desktop-tjänstfiler. Alltså finns i allmänhet flera program och komponenter som kan behandla en given MIME-typ. Du kan skaffa en sådan lista från klassen KServiceTypeProfile: + +KService::OfferList offers = KServiceTypeProfile::offers("text/html", "Application"); +KService::OfferList::ConstIterator it; +for (it = offers.begin(); it != offers.end(); ++it) { + KService::Ptr service = (*it); + cout << "Namn: " << service->name() << endl; +} + + +Returvärdet från funktionen är en lista med tjänsterbjudanden. Ett KServiceOffer-objekt paketerar en KService::Ptr, tillsammans med ett rangordningsnummer. Listan som returneras av KServiceTypeProfile::offers() är ordnad enligt vad användaren föredrar. Användaren kan ändra detta genom att anropa "keditfiletype text/html" eller välja Redigera filtyp i Konquerors sammanhangsberoende meny för en HTML-fil. + +I exemplet ovan, begärdes en lista med erbjudanden för programmen som stöder text/html. Det omfattar, bland annat, HTML-editorer som Quanta Plus. Du kan också ersätta det andra argumentet "Application" med "KParts::ReadOnlyPart". I det fallet, får du en lista med inbäddbara komponenter för att presentera HTML-innehåll, till exempel KHTML. + +I de flesta fall är du inte intresserad av listan med alla erbjudanden om tjänster för en kombination av Mime-typ och tjänsttyp. Det finns en bekvämlighetsfunktion som bara ger dig tjänsterbjudandet som föredras högst: + +KService::Ptr offer = KServiceTypeProfile::preferredService("text/html", "Application"); +if (offer) + cout << "Namn: " << service->name() << endl; +else + cout << "Ingen lämplig tjänst hittades" << endl; + + +För ännu mer komplicerade förfrågningar, finns det en fullständig CORBA-liknande handlare. + +För att köra en programtjänst med några webbadresser, använd KRun: + +KURL::List urlList; +urlList << "http://www.ietf.org/rfc/rfc1341.txt?number=1341"; +urlList << "http://www.ietf.org/rfc/rfc2046.txt?number=2046"; +KRun::run(offer.service(), urlList); + + + + + + +Diverse + +I det här avsnittet listar vi några av de programmeringsgränssnitt som på något sätt hör ihop med den föregående beskrivningen. + +Hämta en ikon för en webbadress. Det här tittar efter webbadressens typ, och returnerar motsvarande ikon. + +KURL url("ftp://ftp.kde.org/pub/incoming/wibble.c"); +QString icon = KMimeType::iconForURL(url); + + +Kör en webbadress. Det här tittar efter webbadressens typ, och startar tillhörande program till typen som användaren föredrar. + +KURL url("http://dot.kde.org"); +new KRun(url); + + + + + + + + +Nätverkstransparens + + +Inledning + +Under Internetåldern är det ytterst viktigt att skrivbordsprogram kan komma åt resurser via Internet: De ska kunna ladda ner filer från en webbserver, skriva filer till en FTP-server eller läsa e-post från en e-postserver. Ofta kallas möjligheten att komma åt filer oberoende av plats för nätverkstransparens. + +I det förflutna implementerades olika ansatser för att nå målet. Det gamla NFS-filsystemet är ett försök att implementera nätverkstransparens på POSIX-gränssnittsnivå. Medan denna ansats fungerar riktigt bra i lokala, tätt kopplade nätverk, skalas det inte för resurser med otillförlitlig och möjligen långsam åtkomst. Här är asynkronism viktig. Medan du väntar på att webbläsaren ska ladda ner en sida, ska inte användargränssnittet blockeras. Dessutom ska inte siduppritningen börja när hela sidan är tillgänglig, utan den ska uppdateras regelbundet medan data anländer. + +I KDE-biblioteken implementeras nätverkstransparens med KIO-programmeringsgränssnittet. Det centrala begreppet i arkitekturen är ett I/O-jobb. Ett jobb kan kopiera filer, ta bort filer och liknande saker. Så fort ett jobb har startats, fungerar det i bakgrunden och blockerar inte programmet. All kommunikation från jobbet tillbaka till programmet, som att leverera data eller förloppsinformation, görs integrerat i Qt:s händelsesnurra. + +Bakgrundsoperationer åstadkoms genom att starta I/O-slavar för att utföra vissa uppgifter. I/O-slavar startas som separata processer, och kommunikation sker via Unix domänuttag. På detta sätt behövs inget flertrådssystem, och instabila slavar kan inte krascha programmet som använder dem. + +Filplatser uttrycks med webbadresser som har en omfattande användning. Men i KDE, utökar webbadresser inte bara området med tillgängliga filer utanför det lokala filsystemet. De går också i motsatt riktning, t.ex. kan man bläddra i tar-arkiv. Det åstadkoms genom att nästla webbadresser. En fil i ett tar-arkiv på en HTTP-server skulle kunna ha webbadressen: + +http://www-com.physik.hu-berlin.de/~bernd/article.tgz#tar:/paper.tex + + + + + + +Använda KIO + +I de flesta fall skapas jobb genom att anropa funktioner i KIO-namnrymden. Dessa funktioner har en eller två webbadresser som argument, och möjligen också andra nödvändiga parametrar. När jobbet är avslutat, skickar det signalen result(KIO::Job*). Efter signalen har skickats, tar jobbet bort sig självt. Därför ser ett typiskt användarfall ut så här: + +void FooClass::makeDirectory() +{ + SimpleJob *job = KIO::mkdir(KURL("file:/home/bernd/kiodir")); + connect( job, SIGNAL(result(KIO::Job*)), + this, SLOT(mkdirResult(KIO::Job*)) ); +} + +void FooClass::mkdirResult(KIO::Job *job) +{ + if (job->error()) + job->showErrorDialog(); + else + cout << "mkdir gick bra" << endl; +} + + +Beroende på jobbtypen, kan du också ansluta till andra signaler. + +Här är en översikt av de möjliga funktionerna: + + + +KIO::mkdir(const KURL &url, int permission) +Skapar en katalog, valfritt med vissa rättigheter. + + +KIO::rmdir(const KURL &url) +Tar bort en katalog. + + +KIO::chmod(const KURL &url, int permissions) +Ändrar rättigheter för en fil. + + +KIO::rename(const KURL &src, const KURL &dest, bool overwrite) +Byter namn på en fil. + + +KIO::symlink(const QString &target, const KURL &dest, bool overwrite, bool showProgressInfo) +Skapar en symbolisk länk. + + +KIO::stat(const KURL &url, bool showProgressInfo) +Hittar viss information om filen, som storlek, ändringstid och rättigheter. Informationen kan hämtas från KIO::StatJob::statResult() efter jobbet har avslutats. + + +KIO::get(const KURL &url, bool reload, bool showProgressInfo) +Överför data från en webbadress. + + +KIO::put(const KURL &url, int permissions, bool overwrite, bool resume, bool showProgressInfo) +Överför data till en webbadress. + + +KIO::http_post(const KURL &url, const QByteArray &data, bool showProgressInfo) +Sänder data. Särskild för HTTP. + + +KIO::mimetype(const KURL &url, bool showProgressInfo) +Försöker hitta webbadressens Mime-typ. Typen kan hämtas från KIO::MimetypeJob::mimetype() efter jobbet har avslutats. + + +KIO::file_copy(const KURL &src, const KURL &dest, int permissions, bool overwrite, bool resume, bool showProgressInfo) +Kopierar en ensam fil. + + +KIO::file_move(const KURL &src, const KURL &dest, int permissions, bool overwrite, bool resume, bool showProgressInfo) +Byter namn på eller flyttar en ensam fil. + + +KIO::file_delete(const KURL &url, bool showProgressInfo) +Tar bort en ensam fil + + +KIO::listDir(const KURL &url, bool showProgressInfo) +Listar innehållet i en katalog. Varje gång några nya poster blir kända, skickas signalen KIO::ListJob::entries(). + + +KIO::listRecursive(const KURL &url, bool showProgressInfo) +Liknar funktionen listDir(), men den här är rekursiv. + + +KIO::copy(const KURL &src, const KURL &dest, bool showProgressInfo) +Kopierar en fil eller katalog. Kataloger kopieras rekursivt. + + +KIO::move(const KURL &src, const KURL &dest, bool showProgressInfo) +Flyttar eller byter namn på en fil eller katalog. + + +KIO::del(const KURL &src, bool shred, bool showProgressInfo) +Tar bort en fil eller katalog. + + + + + + + + +Katalogposter + +Båda jobben KIO::stat() och KIO::listDir() returnerar sina resultat med typerna UDSEntry och UDSEntryList. Den senare är definierad som QValueList<UDSEntry>. Akronymen UDS betyder "Universal directory service" (Allmän katalogtjänst). Principen bakom detta är att katalogposten bara innehåller information som en I/O-slav kan tillhandahålla, inte mer. Till exempel tillhandahåller inte HTTP-slaven någon information om åtkomsträttigheter eller ägare av filer. Istället är en UDSEntry en lista med UDSAtoms. Varje objekt tillhandahåller viss information. Den består av en typ som lagras i m_uds, och antingen ett heltalsvärde i m_long, eller ett strängvärde i m_str, beroende på typen. + +Följande typer är för närvarande definierade: + + + +UDS_SIZE (heltal) - Filens storlek. + +UDS_USER (sträng) - Användaren som äger filen. + +UDS_GROUP (sträng): Grupp som äger filen. + +UDS_NAME (sträng): Filnamnet. + +UDS_ACCESS (heltal) - Filens rättigheter, som t.ex. lagras av C-biblioteksfunktionen stat() i fältet st_mode. + +UDS_FILE_TYPE (heltal): Filtypen, som t.ex. lagras av stat() i fältet st_mode. Därför kan du använda vanliga makron från C-biblioteket, som S_ISDIR, för att kontrollera värdet. Observera att data som tillhandahålls av I/O-slavar motsvarar stat(), inte lstat(), dvs. i fallet med symboliska länkar, så är filtypen här typen på filen som länken pekar ut, inte själva länken. + +UDS_LINK_DEST (sträng): I fallet med en symbolisk länk, namnet på filen som pekas ut. + +UDS_MODIFICATION_TIME (heltal) - Tiden (med typen time_t) då filen sist ändrades, som t.ex. lagras av stat() i fältet st_mtime. + +UDS_ACCESS_TIME (heltal) - Tiden då filen sist användes, som t.ex. lagras av stat() i fältet st_atime. + +UDS_CREATION_TIME (heltal) - Tiden då filen skapades, som t.ex. lagras av stat() i fältet st_ctime. + +UDS_URL (sträng) - Tillhandahåller en fils webbadress, om den inte helt enkelt är sammanslagningen av katalogwebbadressen och filnamnet. + +UDS_MIME_TYPE (sträng): Filens Mime-typ + +UDS_GUESSED_MIME_TYPE (sträng): Mime-typ för filen som gissats av slaven. Skillnaden mot föregående typ är att den som tillhandahålls här inte ska betraktas som tillförlitlig (eftersom att avgöra den på ett tillförlitligt sätt skulle vara för dyrt). Klassen KRun kontrollerar till exempel uttryckligen Mime-typen, om den inte har tillförlitlig information. + + + +Även om sättet att lagra information om filer i en UDSEntry är flexibelt och praktiskt ur en I/O-slavs synvinkel, är det rörigt att använda för den somskriver programmet. För att till exempel ta reda på Mime-typen för filen, måste du snurra igenom hela innehållet och kontrollera om m_uds är UDS_MIME_TYPE. Som tur är, finns ett programmeringsgränssnitt som är mycket enklare att använda: klassen KFileItem. + + + + + +Synkron användning + +Ofta är det KIO:s asynkrona programmeringsgränssnitt för komplext att använda, och därför är inte implementering av fullständig asynkronism prioriterat. I ett program som till exempel bara kan hantera en dokumentfil åt gången, finns det ändå inte mycket som kan göras medan programmet laddar ner en fil. I dessa enkla fall, finns ett mycket enklare programmeringsgränssnitt, i form av ett antal statiska funktioner i KIO::NetAccess. För att till exempel kopiera en fil, använd: + +KURL source, target; +source = ...; +target = ... +KIO::NetAccess::copy(source, target); + + +Funktionen returnerar efter hela kopieringsprocessen har avslutats. Ändå så tillhandahåller den här metoden en förloppsdialogruta, och den försäkrar att programmet behandlar omritningshändelser. + +En särskilt intressant kombination av funktioner är download() tillsammans med removeTempFile(). Den första laddar ner en fil från en given webbadress, och lagrar den i en tillfällig fil med ett unikt namn. Namnet lagras som det andra argumentet. Om webbadressen är lokal, laddas inte filen ner, utan istället sätts det andra argumentet till det lokala filnamnet. Funktionen removeTempFile() tar bort filen som anges av argumentet, om filen skapades av den föregående nerladdningen. Om det inte är fallet, gör den ingenting. På så sätt får man ett mycket enkelt kodfragment för att ladda filer, oberoende av deras plats: + +KURL url; +url = ...; +QString tempFile; +if (KIO::NetAccess::download(url, tempFile) { + // ladda filen med namnet tempFile + KIO::NetAccess::removeTempFile(tempFile); +} + + + + + + +Metadata + +Som märks ovan, är gränssnittet för I/O-jobb ganska abstrakt och hanterar inte något utbyte av information mellan program och I/O-slav som är protokollspecifikt. Det är inte alltid lämpligt. Man kan till exempel ge vissa parametrar till HTTP-slaven för att styra dess cachebeteende eller skicka en mängd kakor tillsammans med begäran. För detta behov har ett koncept med metadata införts. När ett jobb skapas, kan man anpassa det genom att lägga till metadata till det. Varje metadataobjekt består av ett par med nyckel och värde. För att till exempel förhindra HTTP-slaven från att ladda en webbsida från cachen, kan du använda: + +void FooClass::reloadPage() +{ + KURL url("http://www.tdevelop.org/index.html"); + KIO::TransferJob *job = KIO::get(url, true, false); + job->addMetaData("cache", "reload"); + ... +} + + +Samma teknik används åt andra hållet, dvs. för kommunikation från slaven till programmet. Metoden Job::queryMetaData() frågar efter värdet på en viss nyckel som levereras av slaven. För HTTP-slaven, är ett sådant exempel nyckeln "modified" (ändrad), som innehåller datumet då webbsidan sist ändrades (i form av en sträng). Ett exempel på hur det kan användas är följande: + +void FooClass::printModifiedDate() +{ + KURL url("http://developer.kde.org/documentation/kde2arch/index.html"); + KIO::TransferJob *job = KIO::get(url, true, false); + connect( job, SIGNAL(result(KIO::Job*)), + this, SLOT(transferResult(KIO::Job*)) ); +} + +void FooClass::transferResult(KIO::Job *job) +{ + QString mimetype; + if (job->error()) + job->showErrorDialog(); + else { + KIO::TransferJob *transferJob = (KIO::TransferJob*) job; + QString modified = transferJob->queryMetaData("modified"); + cout << "Senaste ändring: " << modified << endl; +} + + + + + + +Schemaläggning + +När KIO-programmeringsgränssnittet används, behöver du oftast inte hantera detaljerna med att starta I/O-slavar och kommunicera med dem. Det normala användningsfallet är att starta ett jobb med några parametrar, och hantera signalerna som jobbet skickar. + +Bakom ridån är scenariot mycket mer komplicerat. När du skapar ett jobb, läggs det i en kö. När programmet går tillbaka till händelsesnurran, tilldelar KIO slavprocesser för jobben i kön. För det första jobbet som startas, är detta trivialt: en I/O-slav för lämpligt protokoll startas. Efter jobbet (som en nerladdning från en HTTP-server) har avslutats, tas det dock inte omedelbart bort. Istället läggs det i en grupp med lediga slavar och tas bort efter en viss tid utan aktivitet (för närvarande tre minuter). Om en ny begäran för samma värddator och protokoll anländer, återanvänds slaven. Den uppenbara fördelen är att vid en serie jobb med samma värddator, sparar man in kostnaden för att skapa nya processer, och möjligen också att genomgå en behörighetskontroll. + +Naturligtvis är återanvändning bara möjlig när den befintliga slaven redan har avslutat sitt tidigare jobb. Om en ny begäran anländer medan en befintlig slavprocess fortfarande kör, måste en ny process startas och användas. Med användningen i exemplen ovan av programmeringsgränssnittet, finns det ingen begränsning för att skapa nya slavprocesser: om man startar en serie nerladdningar av 20 olika filer i rad, skapar KIO 20 slavprocesser. Den här metoden att tilldela slavar till jobb kallas direkt. Det är inte alltid den mest lämpliga metoden, eftersom den kan behöva mycket minne och ge hög last både på klient- och serverdatorn. + +Så det finns ett annat sätt. Man kan schemalägga jobb. Om man gör det, skapas bara ett begränsat antal (för närvarande tre) slavprocesser för ett protokoll. Om du skapar fler jobb än så, läggs de i en kö och processas när en slavprocess blir ledig. Det görs på följande sätt: + +KURL url("http://developer.kde.org/documentation/kde2arch/index.html"); +KIO::TransferJob *job = KIO::get(url, true, false); +KIO::Scheduler::scheduleJob(job); + + +En tredje möjlighet är anslutningsorienterat. Till exempel för IMAP-slaven, är det inte vettigt att starta flera processer för samma server. Bara en IMAP-anslutning åt gången får upprätthållas. I detta fall måste programmet uttryckligen hantera slavbegreppet. Det måste tilldela en slav för en viss anslutning och sedan tilldela alla jobb som ska gå genom samma anslutning till samma slav. Det kan återigen enkelt åstadkommas genom att använda KIO::Scheduler: + +KURL baseUrl("imap://bernd@albert.physik.hu-berlin.de"); +KIO::Slave *slave = KIO::Scheduler::getConnectedSlave(baseUrl); + +KIO::TransferJob *job1 = KIO::get(KURL(baseUrl, "/INBOX;UID=79374")); +KIO::Scheduler::assignJobToSlave(slave, job1); + +KIO::TransferJob *job2 = KIO::get(KURL(baseUrl, "/INBOX;UID=86793")); +KIO::Scheduler::assignJobToSlave(slave, job2); + +... + +KIO::Scheduler::disconnectSlave(slave); + + +Du kan bara koppla ner slaven efter alla jobb som tilldelats den garanterat har avslutats. + + + + + +Definiera en I/O-slav + +I det följande beskriver vi hur du kan lägga till en ny I/O-slav i systemet. På liknande sätt som tjänster, annonseras I/O-slavar för systemet genom att installera en liten konfigurationsfil. Följande fragment av Makefile.am installerar FTP-protokollet: + +protocoldir = $(kde_servicesdir) +protocol_DATA = ftp.protocol +EXTRA_DIST = $(mime_DATA) + + +Innehållet i filen ftp.protocol är följande: + +[Protocol] +exec=kio_ftp +protocol=ftp +input=none +output=filesystem +listing=Name,Type,Size,Date,Access,Owner,Group,Link, +reading=true +writing=true +makedir=true +deleting=true +Icon=ftp + + +Posten "protocol" anger vilket protokoll som slaven ansvarar för. "exec" är (i motsats mot vad man naivt kan förvänta sig) namnet på biblioteket som implementerar slaven. När det är meningen att slaven ska starta, startas programmet "tdeinit", som i sin tur laddar biblioteket i sitt adressrum. I praktiken kan du betrakta slaven som kör som en separat process, även om den är implementerad som ett bibliotek. Fördelen med den här mekanismen är att den sparar mycket minne, och reducerar tiden som behövs för länkning under körning. + +Raderna "input" och "output" används inte för närvarande. + +Återstående rader i filen .protocol anger vilka förmågor slaven har. I allmänhet är de funktioner som slaven måste implementera mycket enklare än de funktioner som KIO-programmeringsgränssnittet tillhandahåller programmet. Orsaken till detta är att komplexa jobb schemaläggs som en följd av deljobb. För att till exempel lista en katalog rekursivt, startas ett jobb för toppnivåkatalogen. För varje underkatalog som rapporteras tillbaka, startas nya underjobb. Schemaläggning i KIO försäkrar att inte för många jobb är aktiva samtidigt. På liknande sätt, för att kopiera en fil med ett protokoll som inte stöder kopiering direkt (som FTP-protokollet), kan KIO läsa källfilen och sedan skriva data till destinationsfilen. För att detta ska fungera, måste .protocol annonsera åtgärderna som slaven stöder. + +Eftersom slavar laddas som delade bibliotek, men utgör fullständiga program, ser deras kodramverk något annorlunda ut jämfört med normala delade biblioteksinsticksprogram. Funktionen som anropas för att starta slaven kallas kdemain(). Den här funktionen gör en del initieringar, och hoppar sedan till en händelsesnurra och väntar på begäran från programmet som använder den. Det här ser ut som följer: + +extern "C" { int kdemain(int argc, char **argv); } + +int kdemain(int argc, char **argv) +{ + KLocale::setMainCatalogue("tdelibs"); + KInstance instance("kio_ftp"); + (void) KGlobal::locale(); + + if (argc != 4) { + fprintf(stderr, "Usage: kio_ftp protocol " + "domain-socket1 domain-socket2\n"); + exit(-1); + } + + FtpSlave slave(argv[2], argv[3]); + slave.dispatchLoop(); + return 0; +} + + + + + + +Implementera en I/O-slav + +Slavar implementeras som delklasser till KIO::SlaveBase (FtpSlave i exemplet ovan). På så sätt motsvarar åtgärderna i .protocol vissa virtuella funktioner i KIO::SlaveBase som implementeringen av slaven måste implementera om. Här är en lista med möjliga åtgärder och motsvarande virtuella funktioner: + + + +läsa: Läser data från en webbadress +void get(const KURL &url) + +skriva: Skriver data till en webbadress och skapar filen om den inte ännu finns. +void put(const KURL &url, int permissions, bool overwrite, bool resume) + +flytta: Byter namn på en fil. +void rename(const KURL &src, const KURL &dest, bool overwrite) + +ta bort: Tar bort en fil eller katalog. +void del(const KURL &url, bool isFile) + +lista: Listar innehållet i en katalog. +void listDir(const KURL &url) + +skapa katalog: Skapar en katalog. +void mkdir(const KURL &url, int permissions) + + + +Dessutom finns det funktioner som kan implementeras om, och inte listas i filen .protocol. För dessa åtgärder, avgör KIO automatiskt om de stöds eller inte (dvs. standardimplementationen returnerar ett fel). + + + +Levererar information om en fil, liknar C-funktionen stat(). +void stat(const KURL &url) + +Ändrar åtkomsträttigheter för en fil. +void chmod(const KURL &url, int permissions) + +Avgör Mime-typ för en fil. +void mimetype(const KURL &url) + +Kopierar en fil. +copy(const KURL &url, const KURL &dest, int permissions, bool overwrite) + +Skapar en symbolisk länk. +void symlink(const QString &target, const KURL &dest, bool overwrite) + + + +Alla dessa implementationer ska sluta med ett av två anrop: Om åtgärden lyckades, ska de anropa finished(). Om ett fel uppstod, ska de anropa error() med en felkod som första argument och en sträng som andra. Möjliga felkoder listats som uppräkningstypen KIO::Error. Det andra argumentet är oftast webbadressen i fråga. Den används t.ex. i KIO::Job::showErrorDialog() för att parametrisera felmeddelandet som är läsbart av användaren. + +För slavar som motsvarar nätverksprotokoll, kan det vara intressant att implementera om metoden SlaveBase::setHost(). Den anropas för att tala om för slavprocessen om värddator och port, och användarnamn och lösenord att använda för inloggning. I allmänhet kan metadata som anges av programmet hämtas med SlaveBase::metaData(). Du kan kontrollera om metadata med en viss nyckel finns med SlaveBase::hasMetaData(). + + + + + +Kommunicera tillbaka till programmet + +Diverse åtgärder som implementeras i en slav, behöver något sätt att skicka tillbaka data till programmet som använder slavprocessen. + + + +get() skickar datablock. Det görs med data(), som använder argumentet QByteArray. Du behöver förstås inte skicka all data på en gång. Om du skickar en stor fil, anropa data() med mindre datablock, så att programmet kan behandla dem. Anropa finished() när överföringen är klar. + +listDir() rapporterar information om posterna i en katalog. Anropa listEntries() med en KIO::UDSEntryList som argument, för detta syfte. På motsvarande sätt som data(), kan du anropa den flera gånger. När du är klar, anropa listEntry() med andra argumentet satt till true. Du kan också anropa totalSize() för att rapportera totalt antal katalogposter, om det är känt. + +stat() rapporterar information om en fil, som storlek, Mime-typ, etc. Sådan information paketeras i en KIO::UDSEntry, som beskrivs nedan. Använd statEntry() för att skicka ett sådant objekt till programmet. + +mimetype() anropar mimeType() med ett strängargument. + +get() och copy() kan vilja tillhandahålla förloppsinformation. Det görs med metoderna totalSize(), processedSize() och speed(). Den totala storleken och behandlade storleken rapporteras som byte, och hastigheten som byte per sekund. + +Du kan skicka godtyckliga nyckel/värdepar av metadata med setMetaData(). + + + + + + + +Kommunikation med användaren + +Ibland måste en slav kommunicera med användaren. Exempel kan vara informativa meddelanden, dialogrutor för behörighetskontroll och bekräftelsedialogrutor när en fil håller på att skrivas över. + + + +infoMessage(): Det här är för informativ återmatning, som meddelandet "Hämtar data från <värddator>" från HTTP-slaven, som ofta visas i programmets statusrad. På programsidan, motsvarar metoden signalen KIO::Job::infoMessage(). + +warning(): Visar en varning i en meddelanderuta med KMessageBox::information(). Om en meddelanderuta fortfarande visas från ett tidigare anrop av warning() från samma underprocess, händer ingenting. + +messageBox(): Den här är utförligare än den tidigare metoden. Den tillåter att en meddelanderuta med text och rubrik och några knappar visas. Se uppräkningstypen SlaveBase::MessageBoxType som referens. + +openPassDlg(): Visar en dialogruta för att mata in användarnamn och lösenord. + + + + + + + + + + + + +Licenser + +&underFDL; +&underGPL; + + + +
diff --git a/tde-i18n-sv/docs/tdevelop/kdearch/whatsthis.png b/tde-i18n-sv/docs/tdevelop/kdearch/whatsthis.png new file mode 100644 index 00000000000..63acf27ba41 Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/kdearch/whatsthis.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/Makefile.am b/tde-i18n-sv/docs/tdevelop/tdevelop/Makefile.am new file mode 100644 index 00000000000..9e41d9df652 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/Makefile.am @@ -0,0 +1,4 @@ +KDE_LANG = sv +SUBDIRS = $(AUTODIRS) +KDE_DOCS = AUTO +KDE_MANS = AUTO diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/Makefile.in b/tde-i18n-sv/docs/tdevelop/tdevelop/Makefile.in new file mode 100644 index 00000000000..797c30d933e --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/Makefile.in @@ -0,0 +1,635 @@ +# Makefile.in generated by automake 1.10.1 from Makefile.am. +# KDE tags expanded automatically by am_edit - $Revision: 483858 $ +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This Makefile.in 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. + +@SET_MAKE@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +subdir = docs/tdevelop/tdevelop +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +#>- RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ +#>- html-recursive info-recursive install-data-recursive \ +#>- install-dvi-recursive install-exec-recursive \ +#>- install-html-recursive install-info-recursive \ +#>- install-pdf-recursive install-ps-recursive install-recursive \ +#>- installcheck-recursive installdirs-recursive pdf-recursive \ +#>- ps-recursive uninstall-recursive +#>+ 7 +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive nmcheck-recursive bcheck-recursive +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +#>+ 1 +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +ARTSCCONFIG = @ARTSCCONFIG@ +AUTOCONF = @AUTOCONF@ +AUTODIRS = @AUTODIRS@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CONF_FILES = @CONF_FILES@ +CYGPATH_W = @CYGPATH_W@ +DCOPIDL = @DCOPIDL@ +DCOPIDL2CPP = @DCOPIDL2CPP@ +DCOPIDLNG = @DCOPIDLNG@ +DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@ +DEFS = @DEFS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +GMSGFMT = @GMSGFMT@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@ +KCONFIG_COMPILER = @KCONFIG_COMPILER@ +KDECONFIG = @KDECONFIG@ +KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@ +KDE_RPATH = @KDE_RPATH@ +KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MAKEKDEWIDGETS = @MAKEKDEWIDGETS@ +MCOPIDL = @MCOPIDL@ +MEINPROC = @MEINPROC@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TOPSUBDIRS = @TOPSUBDIRS@ +VERSION = @VERSION@ +XGETTEXT = @XGETTEXT@ +XMLLINT = @XMLLINT@ +X_RPATH = @X_RPATH@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +am__leading_dot = @am__leading_dot@ +am__tar = @am__tar@ +am__untar = @am__untar@ +#>- bindir = @bindir@ +#>+ 2 +DEPDIR = .deps +bindir = @bindir@ +build_alias = @build_alias@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host_alias = @host_alias@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +kde_appsdir = @kde_appsdir@ +kde_bindir = @kde_bindir@ +kde_confdir = @kde_confdir@ +kde_datadir = @kde_datadir@ +kde_htmldir = @kde_htmldir@ +kde_icondir = @kde_icondir@ +kde_kcfgdir = @kde_kcfgdir@ +kde_libs_htmldir = @kde_libs_htmldir@ +kde_libs_prefix = @kde_libs_prefix@ +kde_locale = @kde_locale@ +kde_mimedir = @kde_mimedir@ +kde_moduledir = @kde_moduledir@ +kde_servicesdir = @kde_servicesdir@ +kde_servicetypesdir = @kde_servicetypesdir@ +kde_sounddir = @kde_sounddir@ +kde_styledir = @kde_styledir@ +kde_templatesdir = @kde_templatesdir@ +kde_wallpaperdir = @kde_wallpaperdir@ +kde_widgetdir = @kde_widgetdir@ +tdeinitdir = @tdeinitdir@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +xdg_appsdir = @xdg_appsdir@ +xdg_directorydir = @xdg_directorydir@ +xdg_menudir = @xdg_menudir@ +KDE_LANG = sv +#>- SUBDIRS = $(AUTODIRS) +#>+ 1 +SUBDIRS =. +KDE_DOCS = AUTO +KDE_MANS = AUTO +#>- all: all-recursive +#>+ 1 +all: docs-am all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) +#>- @for dep in $?; do \ +#>- case '$(am__configure_deps)' in \ +#>- *$$dep*) \ +#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ +#>- && exit 0; \ +#>- exit 1;; \ +#>- esac; \ +#>- done; \ +#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdevelop/tdevelop/Makefile'; \ +#>- cd $(top_srcdir) && \ +#>- $(AUTOMAKE) --gnu docs/tdevelop/tdevelop/Makefile +#>+ 12 + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdevelop/tdevelop/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/tdevelop/tdevelop/Makefile + cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdevelop/tdevelop/Makefile.in +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +#>- distdir: $(DISTFILES) +#>+ 1 +distdir: distdir-nls $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done + list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + distdir=`$(am__cd) $(distdir) && pwd`; \ + top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ + (cd $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$top_distdir" \ + distdir="$$distdir/$$subdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +#>- uninstall: uninstall-recursive +#>+ 1 +uninstall: uninstall-docs uninstall-nls uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +#>- clean: clean-recursive +#>+ 1 +clean: kde-rpo-clean clean-recursive + +#>- clean-am: clean-generic mostlyclean-am +#>+ 1 +clean-am: clean-docs clean-bcheck clean-generic mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +info: info-recursive + +info-am: + +#>- install-data-am: +#>+ 1 +install-data-am: install-docs install-nls + +install-dvi: install-dvi-recursive + +install-exec-am: + +install-html: install-html-recursive + +install-info: install-info-recursive + +install-man: + +install-pdf: install-pdf-recursive + +install-ps: install-ps-recursive + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ + install-strip + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am check check-am clean clean-generic ctags \ + ctags-recursive distclean distclean-generic distclean-tags \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \ + tags-recursive uninstall uninstall-am + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: + +#>+ 2 +KDE_DIST=configure-docu-general.png SF-other.png file-list-session-default.png configure-adddialog.png split-workspace.png build-configurations.png unixdev.docbook tdevelop-install.docbook raw-project-warning.png problem-report-all-todos.png app-files.docbook tdevelop-ideal-mode-0.png file-browsers.docbook create-new-project-cvs.png configure-select.png configure-doctree-general.png createnewproject.png index.docbook tdevelop-mdi-mode.png run-button.png tutorial-hello-options.png build-menu-automake.png configure-doctree-TOC.png applicationwizard.docbook configure-doctree-bookmark.png getting-started.docbook plugin-tools.docbook empty-ide.png file-list-close-selected.png project-management.docbook create-new-project.png configure-project-cppoptions.png configure-general.png tdevelop-toplevel-mode.png documents-contents.png tdevelop-scripting.docbook cvs.docbook editor-ctags-menu.png setup.docbook configure-project-configure.png tutorial-new-project.png doctree-reduced.png credits.docbook configure-docu-toc.png automake-manager.png tdevelop-ideal-mode.png documentation.docbook automakemanager.png commands.docbook split-windows.png configure-docu-edit.png problem-report-marks.png build-commands.png app-uimodes-examples.docbook editor-find-menu.png configure-editor.png index.cache.bz2 configure-project-run.png folded-tabs.png configure-docu-dox.png configure-docu-devhelp.png tdevelop-tabbed-mode.png editor-search-doc.png configure-doctree-textsearch.png app-menu.docbook SF-indent.png select-user-interface.png file-list-session-create.png doctree-add-bookmark.png configure-snippets.png kdcop_browsing.png configure-docu-chm.png editor-ctags-regenerate.png survey-manual.docbook editing.docbook app-misc-info.docbook doctreeview.png importdirectory.png split-source-header-navigate.png app-changelog.docbook nutshell.docbook SF-general.png find-in-files.png project-advanced.docbook edit-doctree-TOC-entry.png adv-build-management.docbook build-menu.png automake-target-popup.png tutorial-hello-new.png problem-report-todo.png configure-project-doc.png configure-project-buildconfig.png configure-file-selector.png filetree.png automake-file-popup.png script_location.png configure-doctree-DevHelp.png configure-file-templates.png Makefile.in class-browsers.docbook classview.png configure-docu-custom.png configure-project-cpp.png doctree.png configure-adddialog-qt.png configure-project-make.png file-selector.png select-user-interface-0.png automake-subproject-popup.png tdevelop-survey.docbook debugger.docbook documents-search.png createnewprojectoptions.png editor-switch-header.png editor-ctags-lookup.png open-recent-project.png Makefile.am split-source-header.png configure-adddialog-baselibs.png + +#>+ 24 +index.cache.bz2: $(srcdir)/index.docbook $(KDE_XSL_STYLESHEET) documents-search.png configure-general.png problem-report-marks.png app-uimodes-examples.docbook createnewprojectoptions.png editing.docbook SF-indent.png split-source-header.png automake-target-popup.png configure-select.png edit-doctree-TOC-entry.png automake-file-popup.png build-menu-automake.png doctree-reduced.png configure-project-make.png commands.docbook documentation.docbook tutorial-hello-options.png file-list-close-selected.png tdevelop-mdi-mode.png open-recent-project.png create-new-project-cvs.png configure-docu-toc.png editor-find-menu.png configure-file-templates.png file-browsers.docbook tdevelop-tabbed-mode.png script_location.png configure-adddialog-qt.png tdevelop-install.docbook file-list-session-default.png build-menu.png folded-tabs.png debugger.docbook select-user-interface-0.png editor-ctags-lookup.png filetree.png create-new-project.png split-windows.png configure-docu-edit.png raw-project-warning.png tutorial-hello-new.png configure-project-run.png run-button.png select-user-interface.png applicationwizard.docbook configure-project-cppoptions.png editor-ctags-regenerate.png index.docbook doctree-add-bookmark.png configure-doctree-textsearch.png tutorial-new-project.png tdevelop-ideal-mode-0.png editor-switch-header.png app-files.docbook editor-ctags-menu.png kdcop_browsing.png configure-doctree-TOC.png createnewproject.png configure-editor.png configure-doctree-DevHelp.png editor-search-doc.png app-menu.docbook project-management.docbook SF-other.png cvs.docbook adv-build-management.docbook credits.docbook configure-doctree-general.png tdevelop-survey.docbook empty-ide.png find-in-files.png tdevelop-ideal-mode.png configure-snippets.png problem-report-todo.png configure-adddialog-baselibs.png configure-docu-custom.png tdevelop-scripting.docbook configure-project-doc.png configure-docu-chm.png unixdev.docbook configure-docu-devhelp.png configure-docu-general.png survey-manual.docbook configure-adddialog.png SF-general.png configure-file-selector.png classview.png nutshell.docbook build-commands.png project-advanced.docbook configure-project-configure.png file-list-session-create.png plugin-tools.docbook build-configurations.png doctree.png class-browsers.docbook app-changelog.docbook importdirectory.png getting-started.docbook tdevelop-toplevel-mode.png automake-manager.png app-misc-info.docbook problem-report-all-todos.png configure-doctree-bookmark.png setup.docbook split-source-header-navigate.png file-selector.png automakemanager.png configure-project-buildconfig.png configure-docu-dox.png documents-contents.png automake-subproject-popup.png doctreeview.png configure-project-cpp.png split-workspace.png + @if test -n "$(MEINPROC)"; then echo $(MEINPROC) --check --cache index.cache.bz2 $(srcdir)/index.docbook; $(MEINPROC) --check --cache index.cache.bz2 $(srcdir)/index.docbook; fi + +docs-am: index.cache.bz2 + +install-docs: docs-am install-nls + $(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdevelop + @if test -f index.cache.bz2; then \ + echo $(INSTALL_DATA) index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdevelop/; \ + $(INSTALL_DATA) index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdevelop/; \ + elif test -f $(srcdir)/index.cache.bz2; then \ + echo $(INSTALL_DATA) $(srcdir)/index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdevelop/; \ + $(INSTALL_DATA) $(srcdir)/index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdevelop/; \ + fi + -rm -f $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdevelop/common + $(LN_S) $(kde_libs_htmldir)/$(KDE_LANG)/common $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdevelop/common + +uninstall-docs: + -rm -rf $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdevelop + +clean-docs: + -rm -f index.cache.bz2 + + +#>+ 13 +install-nls: + $(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdevelop + @for base in documents-search.png configure-general.png problem-report-marks.png app-uimodes-examples.docbook createnewprojectoptions.png editing.docbook SF-indent.png split-source-header.png automake-target-popup.png configure-select.png edit-doctree-TOC-entry.png automake-file-popup.png build-menu-automake.png doctree-reduced.png configure-project-make.png commands.docbook documentation.docbook tutorial-hello-options.png file-list-close-selected.png tdevelop-mdi-mode.png open-recent-project.png create-new-project-cvs.png configure-docu-toc.png editor-find-menu.png configure-file-templates.png file-browsers.docbook tdevelop-tabbed-mode.png script_location.png configure-adddialog-qt.png tdevelop-install.docbook file-list-session-default.png build-menu.png folded-tabs.png debugger.docbook select-user-interface-0.png editor-ctags-lookup.png filetree.png create-new-project.png split-windows.png configure-docu-edit.png raw-project-warning.png tutorial-hello-new.png configure-project-run.png run-button.png select-user-interface.png applicationwizard.docbook configure-project-cppoptions.png editor-ctags-regenerate.png index.docbook doctree-add-bookmark.png configure-doctree-textsearch.png tutorial-new-project.png tdevelop-ideal-mode-0.png editor-switch-header.png app-files.docbook editor-ctags-menu.png kdcop_browsing.png configure-doctree-TOC.png createnewproject.png configure-editor.png configure-doctree-DevHelp.png editor-search-doc.png app-menu.docbook project-management.docbook SF-other.png cvs.docbook adv-build-management.docbook credits.docbook configure-doctree-general.png tdevelop-survey.docbook empty-ide.png find-in-files.png tdevelop-ideal-mode.png configure-snippets.png problem-report-todo.png configure-adddialog-baselibs.png configure-docu-custom.png tdevelop-scripting.docbook configure-project-doc.png configure-docu-chm.png unixdev.docbook configure-docu-devhelp.png configure-docu-general.png survey-manual.docbook configure-adddialog.png SF-general.png configure-file-selector.png classview.png nutshell.docbook build-commands.png project-advanced.docbook configure-project-configure.png file-list-session-create.png plugin-tools.docbook build-configurations.png doctree.png class-browsers.docbook app-changelog.docbook importdirectory.png getting-started.docbook tdevelop-toplevel-mode.png automake-manager.png app-misc-info.docbook problem-report-all-todos.png configure-doctree-bookmark.png setup.docbook split-source-header-navigate.png file-selector.png automakemanager.png configure-project-buildconfig.png configure-docu-dox.png documents-contents.png automake-subproject-popup.png doctreeview.png configure-project-cpp.png split-workspace.png ; do \ + echo $(INSTALL_DATA) $$base $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdevelop/$$base ;\ + $(INSTALL_DATA) $(srcdir)/$$base $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdevelop/$$base ;\ + done + +uninstall-nls: + for base in documents-search.png configure-general.png problem-report-marks.png app-uimodes-examples.docbook createnewprojectoptions.png editing.docbook SF-indent.png split-source-header.png automake-target-popup.png configure-select.png edit-doctree-TOC-entry.png automake-file-popup.png build-menu-automake.png doctree-reduced.png configure-project-make.png commands.docbook documentation.docbook tutorial-hello-options.png file-list-close-selected.png tdevelop-mdi-mode.png open-recent-project.png create-new-project-cvs.png configure-docu-toc.png editor-find-menu.png configure-file-templates.png file-browsers.docbook tdevelop-tabbed-mode.png script_location.png configure-adddialog-qt.png tdevelop-install.docbook file-list-session-default.png build-menu.png folded-tabs.png debugger.docbook select-user-interface-0.png editor-ctags-lookup.png filetree.png create-new-project.png split-windows.png configure-docu-edit.png raw-project-warning.png tutorial-hello-new.png configure-project-run.png run-button.png select-user-interface.png applicationwizard.docbook configure-project-cppoptions.png editor-ctags-regenerate.png index.docbook doctree-add-bookmark.png configure-doctree-textsearch.png tutorial-new-project.png tdevelop-ideal-mode-0.png editor-switch-header.png app-files.docbook editor-ctags-menu.png kdcop_browsing.png configure-doctree-TOC.png createnewproject.png configure-editor.png configure-doctree-DevHelp.png editor-search-doc.png app-menu.docbook project-management.docbook SF-other.png cvs.docbook adv-build-management.docbook credits.docbook configure-doctree-general.png tdevelop-survey.docbook empty-ide.png find-in-files.png tdevelop-ideal-mode.png configure-snippets.png problem-report-todo.png configure-adddialog-baselibs.png configure-docu-custom.png tdevelop-scripting.docbook configure-project-doc.png configure-docu-chm.png unixdev.docbook configure-docu-devhelp.png configure-docu-general.png survey-manual.docbook configure-adddialog.png SF-general.png configure-file-selector.png classview.png nutshell.docbook build-commands.png project-advanced.docbook configure-project-configure.png file-list-session-create.png plugin-tools.docbook build-configurations.png doctree.png class-browsers.docbook app-changelog.docbook importdirectory.png getting-started.docbook tdevelop-toplevel-mode.png automake-manager.png app-misc-info.docbook problem-report-all-todos.png configure-doctree-bookmark.png setup.docbook split-source-header-navigate.png file-selector.png automakemanager.png configure-project-buildconfig.png configure-docu-dox.png documents-contents.png automake-subproject-popup.png doctreeview.png configure-project-cpp.png split-workspace.png ; do \ + rm -f $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdevelop/$$base ;\ + done + + +#>+ 5 +distdir-nls: + for file in documents-search.png configure-general.png problem-report-marks.png app-uimodes-examples.docbook createnewprojectoptions.png editing.docbook SF-indent.png split-source-header.png automake-target-popup.png configure-select.png edit-doctree-TOC-entry.png automake-file-popup.png build-menu-automake.png doctree-reduced.png configure-project-make.png commands.docbook documentation.docbook tutorial-hello-options.png file-list-close-selected.png tdevelop-mdi-mode.png open-recent-project.png create-new-project-cvs.png configure-docu-toc.png editor-find-menu.png configure-file-templates.png file-browsers.docbook tdevelop-tabbed-mode.png script_location.png configure-adddialog-qt.png tdevelop-install.docbook file-list-session-default.png build-menu.png folded-tabs.png debugger.docbook select-user-interface-0.png editor-ctags-lookup.png filetree.png create-new-project.png split-windows.png configure-docu-edit.png raw-project-warning.png tutorial-hello-new.png configure-project-run.png run-button.png select-user-interface.png applicationwizard.docbook configure-project-cppoptions.png editor-ctags-regenerate.png index.docbook doctree-add-bookmark.png configure-doctree-textsearch.png tutorial-new-project.png tdevelop-ideal-mode-0.png editor-switch-header.png app-files.docbook editor-ctags-menu.png kdcop_browsing.png configure-doctree-TOC.png createnewproject.png configure-editor.png configure-doctree-DevHelp.png editor-search-doc.png app-menu.docbook project-management.docbook SF-other.png cvs.docbook adv-build-management.docbook credits.docbook configure-doctree-general.png tdevelop-survey.docbook empty-ide.png find-in-files.png tdevelop-ideal-mode.png configure-snippets.png problem-report-todo.png configure-adddialog-baselibs.png configure-docu-custom.png tdevelop-scripting.docbook configure-project-doc.png configure-docu-chm.png unixdev.docbook configure-docu-devhelp.png configure-docu-general.png survey-manual.docbook configure-adddialog.png SF-general.png configure-file-selector.png classview.png nutshell.docbook build-commands.png project-advanced.docbook configure-project-configure.png file-list-session-create.png plugin-tools.docbook build-configurations.png doctree.png class-browsers.docbook app-changelog.docbook importdirectory.png getting-started.docbook tdevelop-toplevel-mode.png automake-manager.png app-misc-info.docbook problem-report-all-todos.png configure-doctree-bookmark.png setup.docbook split-source-header-navigate.png file-selector.png automakemanager.png configure-project-buildconfig.png configure-docu-dox.png documents-contents.png automake-subproject-popup.png doctreeview.png configure-project-cpp.png split-workspace.png ; do \ + cp $(srcdir)/$$file $(distdir); \ + done + +#>+ 15 +force-reedit: + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdevelop/tdevelop/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/tdevelop/tdevelop/Makefile + cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdevelop/tdevelop/Makefile.in + + +#>+ 21 +clean-bcheck: + rm -f *.bchecktest.cc *.bchecktest.cc.class a.out + +bcheck: bcheck-recursive + +bcheck-am: + @for i in ; do \ + if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \ + echo "int main() {return 0;}" > $$i.bchecktest.cc ; \ + echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \ + echo "$$i"; \ + if ! $(CXX) $(DEFS) -I. -I$(srcdir) -I$(top_builddir) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) --dump-class-hierarchy -c $$i.bchecktest.cc; then \ + rm -f $$i.bchecktest.cc; exit 1; \ + fi ; \ + echo "" >> $$i.bchecktest.cc.class; \ + perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \ + rm -f a.out; \ + fi ; \ + done + + +#>+ 3 +final: + $(MAKE) all-am + +#>+ 3 +final-install: + $(MAKE) install-am + +#>+ 3 +no-final: + $(MAKE) all-am + +#>+ 3 +no-final-install: + $(MAKE) install-am + +#>+ 3 +kde-rpo-clean: + -rm -f *.rpo + +#>+ 3 +nmcheck: +nmcheck-am: nmcheck diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/SF-general.png b/tde-i18n-sv/docs/tdevelop/tdevelop/SF-general.png new file mode 100644 index 00000000000..f4a133b00ef Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/SF-general.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/SF-indent.png b/tde-i18n-sv/docs/tdevelop/tdevelop/SF-indent.png new file mode 100644 index 00000000000..dfa3aff2032 Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/SF-indent.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/SF-other.png b/tde-i18n-sv/docs/tdevelop/tdevelop/SF-other.png new file mode 100644 index 00000000000..d330427aaeb Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/SF-other.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/adv-build-management.docbook b/tde-i18n-sv/docs/tdevelop/tdevelop/adv-build-management.docbook new file mode 100644 index 00000000000..eb9016aef31 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/adv-build-management.docbook @@ -0,0 +1,172 @@ + +Avancerad bygghantering +&automake; + + +Flera bygginställningar +bygginställningarflera + +(...ännu inte skrivet...) + + + + + + +Korskompilering +korskompilera +kompilerakors + + +Om du har lämpliga korskompilatorer tillgängliga, kan du kompilera dina program för processorer och operativsystem som skiljer sig frÃ¥n systemet där &tdevelop; och kompilatorn kör. &GNU;-kompilatorn, &gcc;, kan konfigureras och kompileras som en korskompilator om du kompilerar den själv. RÃ¥dfrÃ¥ga GCC infosidorna för mer information. Vissa Linux-distributioner tillhandahÃ¥ller ocksÃ¥ binärpaket. + +Ett automake-baserat paket kan lätt korskompileras genom att ange väljaren till configure-skriptet och ställa in miljövariablerna CC och CXX till motsvarande korskompilatorer. Ofta vill du byta mellan en korskompilerad version av programmet, och en som kompilerats för utvecklingssystemet. För att göra det, är det en fördel att använda möjligheten i &tdevelop; att skapa flera byggkonfigurationer, som förklaras under . När du har skapat en ny byggkonfiguration för korskompilering i dialogrutan Projekt Projektalternativ..., lägg till väljaren + +plattform + +till configure-väljarna. Värdet plattform är en kombination av formen + +cpu-tillverkare-operativsystem +eller +cpu-tillverkare-kärna-operativsystem + +För mÃ¥nga kombinationer kan du använda en kortform, till exempel i386-linux eller arm-elf. + + + + + + +Qt/Embedded +inbäddadQt +Qt/Embedded +Qtopia +rambuffer + +&qte; är en version av &Qt;-biblioteket som inte använder X-window systemet, utan ritar direkt i rambuffern pÃ¥ Linuxsystem. Den är därför intressant för inbäddade system som har hÃ¥rda begränsningar för minnesanvändningen i hela systemet. Dess programmeringsgränssnitt överensstämmer fullständigt med X11-versionen. + +Att utveckla ett program för &qte; med &tdevelop; skiljer sig inte mycket frÃ¥n att utveckla ett program för X11-versionen av &Qt;. I själva verket kan du använda samma grundkod för bÃ¥da versionerna. Om du använder projekthantering med autoprojekt, kan du byta till den inbäddade versionen genom att skicka väljaren till configure-skriptet. Du kan ställa in det i dialogrutan Projekt Projektinställningar... under Inställning av configure. Med väljaren , kan du ställa in katalogen där &qte; är installerad. + +Efter att ha konfigurerat och kompilerat programmet med dessa väljare, länkas det med biblioteket libqpe.so. Den här versionen av programmet kör inte normalt när du använder X11. För att prova den, kör den med hjälp av programmet qvfb (Qt:s virtuella rambuffer). Det görs genom att starta qvfb och därefter starta programmet med + + +program + + +När du har en version av programmet som fungerar, vill du naturligtvis använda den pÃ¥ mÃ¥lprocessorn. Det kan troligen vara bekvämt att kunna skapa flera byggkonfigurationer, som förklaras ovan, sÃ¥ att du snabbt kan byta mellan versionen som kör pÃ¥ utvecklingssystemet och versionen som kör pÃ¥ mÃ¥lsystemet. + +Program för &qte; kör normalt som enkla program pÃ¥ enheten de är konstruerade för. Trolltech stöder ocksÃ¥ Qtopia, som är en samling program för personlig information, webbläsning och diverse andra omrÃ¥den som fungerar tillsammans pÃ¥ ett konsekvent sätt. Det är till exempel standardomgivningen pÃ¥ Sharp Zaurus. Du kan skriva program som passar in i denna omgivning genom att använda Qtopias utvecklingsmiljö (SDK). Det medför att ditt program mÃ¥ste vara en delklass till QPEApplication och det mÃ¥ste länkas med biblioteket libqpe.so. Om du utvecklar programmet med projekthanteringen autoprojekt, mÃ¥ste du lägga till till konfigurationsväljarna. + + + + diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/app-changelog.docbook b/tde-i18n-sv/docs/tdevelop/tdevelop/app-changelog.docbook new file mode 100644 index 00000000000..75eaac393cc --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/app-changelog.docbook @@ -0,0 +1,89 @@ + +Ändringar + +Ändringar i dokumentet + + + + 2003-01-03 Bernd Gehrmann, Caleb Tennis + + ursprunglig layout av handbok + + + disposition för innehÃ¥llet i mÃ¥nga kapitel + + + + + + + + 2004-08-01 Bernd Pol, Ian Wadham + + handboken nÃ¥got omorganiserad + + + nÃ¥gra saknade kapitel skrivna + + + + + + + 2005-05-02 Volker Paul — MÃ¥nga ändringar, inklusive: + + delad i en fil per kapitel och appendix + + + tillägg av kommandoreferens sorterad enligt meny (beskrivningar ännu inte fullständiga) + + + handledning för programguiden i getting-started.docbook + + + omorganisering av kapitel, inspirerad av Konquerors handbok + + + flyttade Installation, Utveckling pÃ¥ Unix, I korthet till appendix + + + skrev om appendix om insticksprogram, inklusive generering av insticksprogramlista med listplugins.sh + + + + Fortfarande lÃ¥ngt ifrÃ¥n komplett, men ett litet steg framÃ¥t. + + + + 2006-05-20 Bernd Pol — Fyllde i nÃ¥gra flera hÃ¥l med ännu inte skrivet: + + + + + + + + diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/app-files.docbook b/tde-i18n-sv/docs/tdevelop/tdevelop/app-files.docbook new file mode 100644 index 00000000000..90555765bda --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/app-files.docbook @@ -0,0 +1,1684 @@ + + + + + + + + BerndPol + + + + +Inställningsfiler som används av &tdevelop; + +&tdevelop; använder en uppsättning inställningsfiler som är fördelade bland flera kataloger. Det finns tvÃ¥ huvudgrupper med inställningsfiler att skilja pÃ¥: + + &tdevelop; standardinställningar: Filer som ställdes in när &tdevelop; installerades. + Användarorienterade inställningar: Filer som innehÃ¥ller användarändringar av standardvärden samt inställningar som gjorts av själva &tdevelop;-programmet och dess insticksprogram. + + + +&tdevelop; standardinställningar + +Vid installation skriver &tdevelop; nÃ¥gra standardinformationsfiler i inställnings- och konfigurationssyfte till underkataloger i installationskatalogen $KDEDIR (oftast nÃ¥got som liknar /opt/kde, /usr/local/kde eller en annan användardefinierad installationskatalog, se Installera &tdevelop;). + + +Standard &tdevelop;-inställningar + +Det finns bara en &tdevelop;-specifik standardinställningsfil i katalogen $KDEDIR/share/config: + + + tdeveloprc + Filen innehÃ¥ller de grundläggande inställningarna som &tdevelop; behöver för att starta. Den kopieras till användarens katalog $KDEHOME/share/config när &tdevelop; inte hittar filen tdeveloprc där vid start. + + + + + + +Programspecifika standardvärden + +De flesta &tdevelop; funktioner tillhandahÃ¥lls av delprogram. De är egentligen program som är särskilt konstruerade att köra i &tdevelop;s ramverk (se översikten i appendix Insticksverktyg). Varje delprogram har sin egen uppsättning med inställningsfiler vars standardvärden lagras i flera underkataloger i installationskatalogen $KDEDIR/share/apps/. + +Det finns en hel mängd underkataloger för standardinställningar i $KDEDIR/share/apps/ med namn som börjar med bokstavsföljden kdev. De flesta av dem är bara till för &tdevelop;s interna användning. De kan vara avsiktligt grupperade för läsbarhet som: + FristÃ¥ende program + Aktivitetsspecifika delprogram + Delprogram för att skapa projekt + SprÃ¥kspecifika delprogram + + + + + + FristÃ¥ende program + + tdevelop/: InnehÃ¥ller filer för att anpassa &tdevelop;s integrerade utvecklingsmiljö. + + licenses/: InnehÃ¥ller diverse licenstexter. + pics/: InnehÃ¥ller bildfilerna som används av startskärmarna i &tdevelop;, &tdevelop; assistent och &tdevelop; designer. + profiles/: InnehÃ¥ller standardprofilinställningar för insticksprogram. (För närvarande finns det bara en profil tiny, som definierar en minimal uppsättning aktiva insticksprogram i &tdevelop;.) + eventsrc: InnehÃ¥ller en mängd lokaliseringssträngar för Processen lyckades. + tdevelopui.rc: TillhandahÃ¥ller de grundläggande menyalternativen och verktygsradsikonerna som &tdevelop; använder. + kdevhtml_partui.rc: TillhandahÃ¥ller alternativet Skriv ut... i menyn Arkiv, alternativet Kopiera i menyn Redigera, och pilarna Tillbaka och FramÃ¥t i verktygsraden Bläddra vid bläddring i en HTML-fil frÃ¥n insticksprogrammet Dokumentation. + + + kdevassistant/: TillhandahÃ¥ller menyer och verktygsrader för den fristÃ¥ende dokumentationsbläddraren, &tdevelop; assistent. + kdevdesigner/ och kdevdesignerpart/: TillhandahÃ¥ller menyer och verktygsrader i det fristÃ¥ende programmet för konstruktion av användargränssnitt, &tdevelop; designer. + + + + Aktivitetsspecifika delprogram + + kdevabbrev/: InnehÃ¥ller filer som används av insticksprogrammet Expansion av förkortningar: + + sources/: InnehÃ¥ller definitionsfiler av nyckelord som används av kommandot Expandera text. + templates/: InnehÃ¥ller definitionsfiler för mallar som används av kommandot Expandera förkortningar. + kdevabbrev.rc: TillhandahÃ¥ller alternativen Expandera text och Expandera förkortning i menyn Redigera. + + + + kdevappwizard/: InnehÃ¥ller filer som används av delprogrammet Programguide: + + importfiles/: InnehÃ¥ller .tdevelop-projektfiler som styr initieringen av ett nytt projekt. + imports/: InnehÃ¥ller mallar för att skapa projektspecifika .desktop-filer. + template-common/: InnehÃ¥ller diverse filer som ofta ingÃ¥r i projektets källkataloger. + templates/: InnehÃ¥ller inställningsfiler som beskriver informationen som ska ingÃ¥ i ett givet projekts källkatalog. + *.png: Förhandsgranskningsbilder av projekt som används av programguiden. + *.tar.gz: komprimerade arkiv som innehÃ¥ller källkodsfiler som ska ingÃ¥ i en nyskapad projektkatalog. + + + kdevastyle/: TillhandahÃ¥ller alternativet Formatera om källkod i menyn Redigera. + kdevautoproject/: TillhandahÃ¥ller de flesta alternativen för menyn Bygg och verktygsraden Bygg (&tdevelop;). + + kdevclassview/: InnehÃ¥ller filer som används av projektinsticksprogrammet Klassvisning: + + pics/: InnehÃ¥ller ikonerna som används i klassvisningsträdet Klasser. + kdevclassview.tc: TillhandahÃ¥ller alternativet Arvdiagram för klasser i menyn Projekt samt kombinationsrutan för klassnavigering i Bläddringsverktygsraden. + + + kdevcloser/: TillhandahÃ¥ller stängningsalternativen i menyn Fönster. + kdevctags/: TillhandahÃ¥ller alternativet Ctags i menyn Verktyg för projektinsticksprogrammet Ctags-gränssnitt. + kdevcvsservice/: TillhandahÃ¥ller ikonen som används av fliken CVS-tjänst och ett kort skalskript för att lägga till en ny post i &cvs;-arkivet, som bÃ¥da används av projektinsticksprogrammet Integrering av CVS. + kdevdebugger/: TillhandahÃ¥ller menyalternativen under Avlusa för projektinsticksprogrammet Gränssnitt för avlusare. + kdevdiff/: TillhandahÃ¥ller alternativet Visning av skillnader i menyn Verktyg. + kdevdistpart/: TillhandahÃ¥ller alternativet Distribution och publicering i menyn Projekt för projektinsticksprogrammet Stöd för slutpaketering. + + kdevdocumentation/: InnehÃ¥ller filer som används av insticksprogrammet Dokumentation: + + en/ och pics/: InnehÃ¥ller filer som används av sökverktyget htdig. + tocs/: InnehÃ¥ller innehÃ¥llsbeskrivningsfiler för &tdevelop;s standarddokumentation (se beskrivningen i Grundstruktur för &tdevelop; innehÃ¥llsförteckningsfiler). + kdevpart_documentation.rc: TillhandahÃ¥ller sökrelaterade alternativ i menyn Hjälp. + + + kdevdoxygen/: TillhandahÃ¥ller menyalternativ för projektinsticksprogrammet Doxygen-stöd. + + kdevfilecreate/: InnehÃ¥ller filer som används av Guide för ny fil: + file-templates/: TillhandahÃ¥ller det ursprungliga textinnehÃ¥llet som ska infogas i en ny källkodsfil av en given typ. + kdevpart_filecreate.rc: TillhandahÃ¥ller alternativet Ny i menyn Arkiv. + template-info.xml: InnehÃ¥ller beskrivningar av de tillgängliga filtyperna som ska visas i verktygsvyn Ny fil. + + + kdevfilter/: TillhandahÃ¥ller alternativen Kör kommando... och Filtrera markering genom kommando... i menyn Verktyg som används av insticksprogrammet Skalfiltrering och infogning. + kdevfullscreen/: TillhandahÃ¥ller alternativet Fullskärmsläge i menyn Visa och motsvarande ikon i verktygsraden. + kdevgrepview/: TillhandahÃ¥ller alternativet Sök i filer i menyn Redigera som används av insticksprogrammet Gränssnitt till grep. + kdevhistory/: TillhandahÃ¥ller alternativen Tillbaka och FramÃ¥t i menyn Visa. + kdevjavadebugger/: TillhandahÃ¥ller menyn Avlusa Java för att avlusa ett &Java;-program. + kdevoutputviews/: TillhandahÃ¥ller alternativen Nästa fel och FöregÃ¥ende fel i menyn Visa. + kdevpartexplorer/: TillhandahÃ¥ller alternativet Delutforskare i menyn Verktyg som används av insticksprogrammet Delutforskningsverktyg. + kdevquickopen/: TillhandahÃ¥ller alternativet Snabböppna fil... i menyn Arkiv samt alternativen Snabböppna klass... och Snabböppna metod i menyn Verktyg som används av projektinsticksprogrammet Snabböppna. + kdevregexptest/: TillhandahÃ¥ller alternativet Avlusa reguljärt uttryck... i menyn Verktyg som används av insticksprogrammet Test av reguljära uttryck. + kdevreplace/: TillhandahÃ¥ller alternativet Sök-välj-ersätt... i menyn Redigera som används av insticksprogrammet Ersättning. + kdevtipofday/: TillhandahÃ¥ller alternativet Dagens tips i menyn Hjälp samt HTML-filen som innehÃ¥ller tillgängliga tips. + kdevtools/: Styr de olika menyalternativen som skapas av inställningarna Menyn Verktyg och Externa verktyg som tillhandahÃ¥lls av insticksprogrammet Tillägg i verktygsmenyn. + kdevvalgrind/: TillhandahÃ¥ller alternativen Valgrind kontroll av minnesläckor och Profilera med Kcachegrind i menyn Avlusa som används av insticksprogrammet Valgrind-gränssnitt. + + + + Delprogram för att skapa projekt + kdevadaproject/: TillhandahÃ¥ller alternativ för menyn Bygg och motsvarande ikoner i verktygsraden för att bygga ett Ada-program. + kdevantproject/: TillhandahÃ¥ller alternativ för menyn Bygg när skapa projekt med Ant används. + kdevautoproject/: TillhandahÃ¥ller alternativ för menyn Bygg och motsvarande ikoner i verktygsraden vid arbete med &automake; projektgenerering baserat pÃ¥ &GNU;-verktygen. TillhandahÃ¥ller dessutom alternativen Lägg till översättning... och Bygginställning i menyn Projekt. + kdevcustomproject/: TillhandahÃ¥ller alternativ för menyn Bygg och motsvarande ikoner i verktygsraden när projektet är baserat pÃ¥ en egen Makefile. + kdevgenericproject/: InnehÃ¥ller menydefinitioner för en experimentell generell projektgenerering. För närvarande (version 3.1.0) oanvänd. + kdevhaskellproject/ TillhandahÃ¥ller alternativ för menyn Bygg och motsvarande ikoner i verktygsraden för att bygga ett Haskell-program. + kdevpascalproject/ TillhandahÃ¥ller alternativ för menyn Bygg och motsvarande ikoner i verktygsraden för att bygga ett Pascal-program. + kdevtrollproject/ TillhandahÃ¥ller alternativ för menyn Bygg och motsvarande ikoner i verktygsraden för att bygga ett projekt med användning av &Qt; QMake projekthanteraren. + + + + SprÃ¥kspecifika delprogram + kdevadasupport/: TillhandahÃ¥ller alternativ i menyn Verktyg och motsvarande ikoner i verktygsraden som behövs för att utveckla Ada-program. + kdevbashsupport/: TillhandahÃ¥ller alternativ i menyn Bygg och motsvarande ikoner i verktygsraden som behövs för att utveckla Bash-skript. + + kdevcppsupport/: InnehÃ¥ller filer som används av programguiden för att bygga C++ program: + + newclass/: InnehÃ¥ller deklarations- och källkodsmallar som programguiden bygger motsvarande källkodsfiler. + subclassing/: InnehÃ¥ller mallar som programguiden använder för att skapa ursprungliga klassdeklarationer och klassdefinitioner i källkodsfilerna. + templates: InnehÃ¥ller mallar som programguiden använder för att skapa standardhuvud och mallfiler för källkod som används av &nfwizard;. + configuration: Mall för att lägga till makron. + kdevcppsupport.rc: TillhandahÃ¥ller alternativen Komplettera text och Skapa medlem i menyn Redigera, alternativet Byt till deklaration/implementering för menyn Visa, och alternativet Ny klass för menyn Projekt samt ikonen Ny klass för Bläddringsverktygsraden. + + + kdevfortransupport/: TillhandahÃ¥ller alternativ i menyn Bygg som behövs för att utveckla Fortran-program. + kdevhaskellsupport/: TillhandahÃ¥ller alternativ i menyn Bygg och motsvarande ikoner i verktygsraden som behövs för att utveckla Haskell-program. + kdevjavasupport/: InnehÃ¥ller gränssnittsdefinitionerna som behövs för att utveckla &Java;-program. + kdevpascalsupport/: InnehÃ¥ller gränssnittsdefinitionerna som behövs för att utveckla Pascal-program. + kdevperlsupport/: TillhandahÃ¥ller alternativ i menyerna Bygg och Hjälp som behövs för att utveckla Perl-skript. + kdevphpsupport/: InnehÃ¥ller gränssnittsdefinitioner och PHP-definitioner som behövs för att utveckla PHP-skript. + kdevpythonsupport/: TillhandahÃ¥ller alternativ i menyerna Bygg och Hjälp samt motsvarande ikoner i verktygsraden som behövs för att utveckla Python-skript. + kdevrubysupport/: TillhandahÃ¥ller alternativ i menyn Bygg och motsvarande ikoner i verktygsraden som behövs för att utveckla Ruby-skript. + kdevscriptproject/: TillhandahÃ¥ller gränssnittsdefinitionerna som behövs för att utveckla egna projekt. För närvarande (version 3.1.0) oanvänd. + kdevsqlsupport/: TillhandahÃ¥ller gränssnittsdefinitionerna som behövs för att utveckla SQL-projekt. För närvarande (version 3.1.0) oanvänd. + + + + + + + + + + + +Användarorienterade inställningar + +All information om användardefinierade inställningar finns i tvÃ¥ underkataloger i $KDEHOME, nämligen: + Programspecifika inställningar i katalogen $KDEHOME/share/apps/, och + Resursinställningsfiler i katalogen $KDEHOME/share/config/. + + + + +Programspecifika inställningar + +Alla användarens ändringar av standardinställningar i &tdevelop; samt användarspecifika inställningar som inte lagras i nÃ¥gon av resursinställningsfilerna finns i underkatalogerna kdev... i katalogen $KDEHOME/share/apps/. +De flesta av dessa inställningsfiler används dock av diverse insticksprogram i &tdevelop; för att tillhandahÃ¥lla nÃ¥gon specifik meny och/eller verktygsradsikon. Därför är de bara intressanta om nÃ¥got verkligen har gÃ¥tt fel i användargränssnittet. +I det fallet du innehÃ¥llet i katalogerna speglar det i de standardinställningarna, har &tdevelop; kopierat dem frÃ¥n $KDEDIR/apps/ till katalogen $KDEHOME/apps/ vid den första starten. Alla följande ändringar görs bara i kopiorna. Standardinställningarna förblir hur som helst orörda. + + + + kdevabbrev/: InnehÃ¥ller filer som används av insticksprogrammet Expansion av förkortningar: + + sources/: För närvarande tom. &tdevelop; använder standarddefinitionsfiler för nyckelord till kommandot Expandera text. + templates/: InnehÃ¥ller definitionsfiler ändrade av användaren för mallar som används av kommandot Expandera förkortningar. + kdevabbrev.rc: TillhandahÃ¥ller alternativen Expandera text och Expandera förkortning i menyn Redigera. + + + + kdevappwizard/: TillhandahÃ¥ller alternativen Nytt projekt... och Importera befintligt projekt... i menyn Projekt. Programguiden använder standardinställningar för den verkliga funktionen. + + + kdevastyle/: TillhandahÃ¥ller det verkliga alternativet Formatera om källkod i menyn Redigera. + + + kdevautoproject/: TillhandahÃ¥ller de verkliga alternativen i menyn Bygg och verktygsraden Bygg (KDevelop). + + + kdevclassview/: TillhandahÃ¥ller alternativet Arvdiagram för klasser i menyn Projekt samt kombinationsrutan för klassnavigering i Bläddringsverktygsraden frÃ¥n projektinsticksprogrammet Klassvisning. + + + kdevcloser/: TillhandahÃ¥ller alternativet Stäng markerade fönster... i menyn Fönster. + + + kdevcppsupport/: InnehÃ¥ller de verkliga inställningarna som används av programguiden för att skapa C++ program. Programguiden använder den största delen av sina inställningar direkt frÃ¥n katalogen med standardinställningar. Titta där för mer detaljinformation. + + + newclass/: InnehÃ¥ller de verkliga deklarations- och källkodsmallar som programguiden använder för att bygga motsvarande källkodsfiler. + + + pcs/: InnehÃ¥ller databasfiler som &tdevelop; använder för att bygga den verkliga filen för bestÃ¥ende kodlagring (.pcs) för ett &kde; C++ projekt. + + + kdevcppsupport.rc: TillhandahÃ¥ller alternativen Komplettera text och Skapa medlem i menyn Redigera, alternativet Byt till deklaration/implementering för menyn Visa, och alternativet Ny klass för menyn Projekt samt ikonen Ny klass för Bläddringsverktygsraden. + + + + + kdevctags/: TillhandahÃ¥ller alternativet Ctags i menyn Verktyg för projektinsticksprogrammet Ctags-gränssnitt. + + + kdevdebugger/: TillhandahÃ¥ller menyalternativen under Avlusa för projektinsticksprogrammet Gränssnitt för avlusare. + + + kdevdiff/: TillhandahÃ¥ller alternativet Visning av skillnader i menyn Verktyg. + + + kdevdocumentation/: InnehÃ¥ller de verkliga filerna som används av insticksprogrammet Dokumentation förutom de standardinställningsfilerna. Titta där för mer detaljinformation. + Katalogerna under kdevdocumentation/ innehÃ¥ller i huvudsak bokhÃ¥llningsinformation. De verkliga inställda dokumentationsfilerna finns i filerna doc...pluginrc i katalogen $KDEHOME/share/config/. + + + bookmarks/: UnderhÃ¥ller posterna under fliken Bokmärken som används av insticksprogrammet Dokumentation i &tdevelop;. + + + index/: InnehÃ¥ller diverse cachefiler som &tdevelop; använder för att snabba upp indexerade sökningar i dokumentationen under fliken Index med insticksprogrammet Dokumentation. + + + search/: InnehÃ¥ller filer som används av sökverktyget htdig som hanterar sökanrop frÃ¥n fliken Sök i insticksprogrammet Dokumentation. + + + kdevpart_documentation.rc: TillhandahÃ¥ller sökrelaterade alternativ i menyn Hjälp. + + + + + kdevdoxygen/: TillhandahÃ¥ller menyalternativ för projektinsticksprogrammet Doxygen-stöd. + + + tdevelop/: InnehÃ¥ller nÃ¥gra verkliga alternativ som &tdevelop; använder som grundläggande inställning: + + profiles/: TillhandahÃ¥ller de verkliga profilinställningarna för insticksprogram (frÃ¥n början finns det bara en profil FullIDE som definierar en fullständig uppsättning med aktiva insticksprogram i &tdevelop;.) + tdevelopui.rc: TillhandahÃ¥ller de grundläggande menyalternativen och verktygsradsikonerna som &tdevelop; använder. + + + + kdevfilecreate/: InnehÃ¥ller filer som används av Guide för ny fil: + + file-templates/: TillhandahÃ¥ller det verkliga textinnehÃ¥llet som ska infogas i en ny källkodsfil av en given typ. Fler filmallar finns i katalogen med standardinställningsfiler. + kdevpart_filecreate.rc: TillhandahÃ¥ller alternativet Ny i menyn Arkiv. + template-info.xml: InnehÃ¥ller beskrivningar av de tillgängliga filtyperna som ska visas i verktygsvyn Ny fil. + + + + kdevfilter/: TillhandahÃ¥ller alternativen Kör kommando... och Filtrera markering genom kommando... i menyn Verktyg som används av insticksprogrammet Skalfiltrering och infogning. + + + kdevfullscreen/: TillhandahÃ¥ller alternativet Fullskärmsläge i menyn Visa och motsvarande ikon i verktygsraden. + + + kdevgrepview/: TillhandahÃ¥ller alternativet Sök i filer i menyn Redigera som används av insticksprogrammet Gränssnitt till grep. + + + kdevoutputviews/: TillhandahÃ¥ller alternativen Nästa fel och FöregÃ¥ende fel i menyn Visa. + + + kdevpartexplorer/: TillhandahÃ¥ller alternativet Delutforskare i menyn Verktyg som används av insticksprogrammet Delutforskningsverktyg. + + + kdevquickopen/: TillhandahÃ¥ller alternativet Snabböppna fil... i menyn Arkiv samt alternativen Snabböppna klass... och Snabböppna metod i menyn Verktyg som används av projektinsticksprogrammet Snabböppna. + + + kdevregexptest/: TillhandahÃ¥ller alternativet Avlusa reguljärt uttryck... i menyn Verktyg som används av insticksprogrammet Test av reguljära uttryck. + + + kdevreplace/: TillhandahÃ¥ller alternativet Sök-välj-ersätt... i menyn Redigera som används av insticksprogrammet Ersättning. + + + kdevtipofday/: TillhandahÃ¥ller alternativet Dagens tips i menyn Hjälp. HTML-filen som innehÃ¥ller tillgängliga tips tillhandahÃ¥lls bara som en standardinställningsfil. + + + kdevtools/: Styr de olika menyalternativen som skapas av inställningarna Menyn Verktyg och Externa verktyg som tillhandahÃ¥lls av insticksprogrammet Tillägg i verktygsmenyn. + + + kdevvalgrind/: TillhandahÃ¥ller alternativen Valgrind kontroll av minnesläckor och Profilera med Kcachegrind i menyn Avlusa som används av insticksprogrammet Valgrind-gränssnitt. + + + + + + +Resursinställningsfiler + +Det finns tvÃ¥ grupper av &tdevelop; inställningsfiler i katalogen $KDEHOME/share/config/, som Ã¥tskiljs av omgivande bokstavssekvenser: + doc...pluginrc anger filer som används av insticksprogrammet för dokumentations + kdev...rc anger inställningsfiler som används av &tdevelop; själv och tillgängliga insticksprogram. + + + + +Inställningsfiler som används av &tdevelop; + + kdevabbrevrc: InnehÃ¥ller nuvarande tillstÃ¥nd för inställningen Förkortningar som tillhandahÃ¥lls av insticksprogrammet Expansion av förkortningar. + Det här lagrar om förkortningarna kommer att användas eller inte. De verkliga definitionerna av nya förkortningar hamnar i filen $KDEHOME/share/apps/kdevabbrev/templates/templates. + + + kdevassistantrc: InnehÃ¥ller vissa specifika inställningstillstÃ¥nd för den fristÃ¥ende dokumentationsbläddraren &tdevelop; assistent. + De flesta vanliga inställningar delas med filen för &tdevelop;s integrerade utvecklingsmiljö tdeveloprc. + + kdevassistantuimode4rc: InnehÃ¥ller nuvarande inställningstillstÃ¥nd för flerfönsterläge (dockningspositioner, etc.) för den fristÃ¥ende dokumentationsbläddraren &tdevelop; assistent. + + kdevclassviewrc: InnehÃ¥ller inställningarna för Visningsläge för klassbläddrarfliken Klasser som tillhandahÃ¥lls av projektinsticksprogrammet Klassvisning. + Det här är en global inställning, även om insticksprogrammet Klassvisning kan vara inaktiverad för varje projekt. Alla ändringar av inställningen uppdateras globalt sÃ¥ fort det aktuella projektet stängs, och pÃ¥verkar därför alla följande projekt som laddas. + + kdevcppsupportrc: InnehÃ¥ller vissa inställningar som används för att skapa CPP-källkodsfiler. I synnerhet hittar du inställningarna som gjorts i inställningsdialogrutan Skapa ny klass i C++. + kdevdocumentationrc: InnehÃ¥ller verkliga inställningar som insticksprogrammet Dokumentation använder. + tdeveloprc: InnehÃ¥ller globala inställningar som den integrerade utvecklingsmiljön &tdevelop; och den fristÃ¥ende dokumentationsbläddraren &tdevelop; assistent använder. + tdevelopuimode4rc: InnehÃ¥ller nuvarande inställningstillstÃ¥nd för flerfönsterläge (dockningspositioner, etc.) för den integrerade utvecklingsmiljön &tdevelop;. + kdevfileselectorrc: InnehÃ¥ller verkliga inställningar som insticksprogrammet Filväljare använder. + kdevfileviewrc: InnehÃ¥ller verkliga inställningar av filnamnsfärger som projektinsticksprogrammet Integrering av CVS (Cervisia) använder för visning. + kdevfilterrc: InnehÃ¥ller verkliga inställningar som insticksprogrammet Skalfiltrering och infogning använder. + kdevgrepviewrc: InnehÃ¥ller verkliga inställningar som insticksprogrammet Gränssnitt till grep använder. + kdevsnippetrc: InnehÃ¥ller verkliga inställningar som insticksprogrammet Kodsnuttar använder. + kdevtoolsrc: InnehÃ¥ller verkliga inställningar som insticksprogrammet Tillägg i verktygsmenyn använder. + + + +Inställningsfiler som används av insticksprogrammet för dokumentation + docchmpluginrc: InnehÃ¥ller information om de verkliga &Microsoft; CHM-hjälpfilerna som de definieras pÃ¥ inställningssidan CHM-dokumentationssamling. + doccustompluginrc: InnehÃ¥ller information om alla egna dokumentationsfiler som de definieras pÃ¥ inställningssidan Egen dokumentationssamling. + docdevhelppluginrc: InnehÃ¥ller information om de verkliga GNOME 2 DevHelp-dokumentationsfiler som de definieras pÃ¥ inställningssidan DevHelp-dokumentationssamling. + docdoxygenpluginrc: InnehÃ¥ller information om de verkliga dokumentationen av programmeringsgränssnittet skapade av Doxygen som de definieras pÃ¥ inställningssidan Doxygen-dokumentationssamling. + dockdevtocpluginrc: InnehÃ¥ller information om de verkliga strukturerade KDevelop innehÃ¥llsdokumentationsfilerna som de definieras pÃ¥ inställningssidan KDevelop innehÃ¥llsdokumentationssamling. + docqtpluginrc: InnehÃ¥ller information om de Qt-dokumentationsfilerna som verkligen ingÃ¥r pÃ¥ inställningssidan Qt-dokumentationssamling. + + + + + + + + + +Projektberoende inställningar + +De flesta projektberoende inställningarna bevaras i &tdevelop;s projektinställningsfiler <projektnamn>.tdevelop och <projektnamn>.kdevses istället för i separata filer som andra, mer globala, konfigurationsinställningar. I korthet är de här filerna avsedda för: + + <projektnamn>.tdevelop: Global projektinställningsinformation. + <projektnamn>.kdevses: Inställningsinformation som behövs för att Ã¥terställa det specifika beteendet hos sessionen som kör. + +BÃ¥da filerna är kodade med &XML;. De kan visas och ändras (med försiktighet) i vilken texteditor som helst. + + +BestÃ¥ende kodlagringsfiler + +Det finns en tredje projektberoende inställningsfil, filen för lagringen av bestÃ¥ende kod <projektnamn>.tdevelop.pcs. Det är en binärkodad fil som innehÃ¥ller en tolkningscache i huvudsak för att snabba upp laddningssekvensen för projektet. Dessutom innehÃ¥ller den här bestÃ¥ende kodlagringen information som används av funktionen för kodkomplettering i &tdevelop;. + +Ytterligare filer för bestÃ¥ende kodlagring kan ställas in under fliken Kodkomplettering pÃ¥ den C++ specifika projektinställningssidan. Information om dessa ytterligare .pcs-filer lagras globalt i katalogen $KDEHOME/share/apps/kdevcppsupport/pcs/. + + + + + diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/app-menu.docbook b/tde-i18n-sv/docs/tdevelop/tdevelop/app-menu.docbook new file mode 100644 index 00000000000..aabccc06794 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/app-menu.docbook @@ -0,0 +1,72 @@ + + + + + BerndPol + + + + +Översikt över menyer och verktygsrader + +(... ännu inte skrivet ...) + + +Menyer + +(... ännu inte skrivet ...) + + +Vanligt tillgängliga menyer + +(... ännu inte skrivet ...) + + + + +Projektspecifika menyer + +(... ännu inte skrivet ...) + + + + +Menyer specifika för insticksverktyg + +(... ännu inte skrivet ...) + + + + + + +Verktygsrader + +(... ännu inte skrivet ...) + + + + diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/app-misc-info.docbook b/tde-i18n-sv/docs/tdevelop/tdevelop/app-misc-info.docbook new file mode 100644 index 00000000000..e7e476cefb6 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/app-misc-info.docbook @@ -0,0 +1,28 @@ + +Ytterligare information + +Hämta information +(...ännu inte skrivet...) + + + +Rapportera fel +(...ännu inte skrivet...) + + + +Licenser +&underFDL; &underGPL; + + + diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/app-uimodes-examples.docbook b/tde-i18n-sv/docs/tdevelop/tdevelop/app-uimodes-examples.docbook new file mode 100644 index 00000000000..9f0863a6257 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/app-uimodes-examples.docbook @@ -0,0 +1,174 @@ + +Exempel pÃ¥ lägen i användargränssnittet för &tdevelop; + + +IDEA-fönsterläge + +Klicka här för att Ã¥tergÃ¥ till översikten över lägen. + + + + + + + Skärmbild + &tdevelop; IDEA-fönsterläge + + + +Klicka här för att Ã¥tergÃ¥ till översikten över lägen. + + + + + + + Skärmbild + &tdevelop; IDEA-fönsterläge, stängda flikar + + + +Det här skärmbildsexemplet visar en av de huvudsakliga fördelarna med IDEA-läge, att det finns en maximal arbetsyta tillgänglig. ÄndÃ¥ är alla verktygsvyer lätt tillgängliga genom att klicka pÃ¥ motsvarande flik. +Du behöver troligen en viss tid innan du har vant dig vid ikonerna i flikraden. Om du är vilse, placera bara musen över en flik och vänta nÃ¥gra sekunder. En beskrivning i form av ett kort verktygstips dyker dÃ¥ upp. PÃ¥ skärmbilden visas verktygstipset Hantering av automake som exempel. Det beskriver den nedre fliken i högra flikraden. + +Klicka här för att Ã¥tergÃ¥ till översikten över lägen. + + + + + + +Underramsläge + +Klicka här för att Ã¥tergÃ¥ till översikten över lägen. + + + + + + + Skärmbild + &tdevelop; underramsläge + + + +Klicka här för att Ã¥tergÃ¥ till översikten över lägen. + + + + + + +Fliksidläge + +Klicka här för att Ã¥tergÃ¥ till översikten över lägen. + + + + + + + Skärmbild + &tdevelop; fliksidläge + + + +Klicka här för att Ã¥tergÃ¥ till översikten över lägen. + + + + + + +ToppnivÃ¥läge + +Klicka här för att Ã¥tergÃ¥ till översikten över lägen. + + + + + + + Skärmbild + &tdevelop; toppnivÃ¥läge + + + +Klicka här för att Ã¥tergÃ¥ till översikten över lägen. + + + + + + diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/applicationwizard.docbook b/tde-i18n-sv/docs/tdevelop/tdevelop/applicationwizard.docbook new file mode 100644 index 00000000000..779dacfdf7b --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/applicationwizard.docbook @@ -0,0 +1,1382 @@ + + + + + BerndPol + + + + +Komma igÃ¥ng: Programguiden + + + + + + Programguiden + +Arbete med att utveckla programvara i &tdevelop; organiseras i projekt. Ett sÃ¥dant projekt hÃ¥ller samman allt som hör till en fullständig programmeringsuppgift: källkodsfiler, ytterligare datafiler, alla hanteringsfunktioner som behövs som byggsystemet samt Ã¥tkomst till alla komponenter och ytterligare verktyg som behövs för att fÃ¥ programmet klart att köras. +Att organisera utvecklingsarbetet i projekt lÃ¥ter dig enkelt byta mellan befintliga övergripande uppgifter. Det här riktigt bekvämt om du till exempel arbetar med flera program samtidigt, vilket ofta är fallet. Tala om för &tdevelop; att öppna projektet du vill arbeta med, och du kan fortsätta i miljön precis där du tidigare lämnade den. + + +Nya projekt + + + + + + projekt + nytt + +SÃ¥ fort du vill starta ett nytt programmeringsprojekt, behöver en hel del formella inställningsprocedurer göras. En startstruktur för kataloger mÃ¥ste skapas, nya deklarationsfiler och källkodsfiler mÃ¥ste skapas, byggsystemet mÃ¥ste initieras, etc. +&tdevelop; tillhandahÃ¥ller ett enkelt sätt att starta ett nytt programmeringsprojekt: programguiden. Du hittar programguiden via menyalternativet Projekt Nytt projekt. +Det behövs bara ett fÃ¥tal steg för att skapa ett nytt programmeringsprojekt med programguiden: + + Välj programsprÃ¥k du vill använda, och typ av program som du vill skapa frÃ¥n en uppsättning fördefinierade mallar. + TillhandahÃ¥ll en del allmän information som programnamn, katalog där programmet ska byggas, etc. + Bestäm om du vill använda ett versionskontrollsystem, som t.ex. CVS, och tillhandahÃ¥ll nödvändig information som behövs. + Ställ in nÃ¥gra mallar för ursprunglig deklarationsfil och källkodsfil (om nödvändigt). + Tala till sist om för programguiden att skapa alla nya saker, katalogstruktur, startmallar för deklarationsfiler och källkodsfiler, och hanteringsverktyg som ett startskelett för att bygga programmet, etc. + +Voilà, det är allt. Programguiden har nu gett dig en första fungerade uppsättning programfiler, där du enkelt kan börja arbeta. +LÃ¥t oss nu ta en mer detaljerad titt pÃ¥ allt detta... + + +Inledande steg + + + dialogruta + skapa nytt projekt + + projekt + skapa nytt projekt + dialogruta + + projekt + mallar + + mallar + projekt + +För att skapa ett nytt projekt i &tdevelop;, välj Nytt projekt i menyn Projekt. Du ska dÃ¥ se guiden för att skapa nytt projekt, som visas nedan: + + + + + + + Inledande dialogruta för att skapa ett nytt projekt + + + +Som du kan se, är dialogrutan uppdelad i en övre och undre del. I den övre delen kan du bestämma dig för programsprÃ¥k och programtyp. Den under delen innehÃ¥ller en del allmän information. + + +Välj programsprÃ¥k och programtyp + + + projekt + programtyp + + projekt + programsprÃ¥k + + projekt + sprÃ¥k + + sprÃ¥k + + programsprÃ¥k + + program + typ + +Du gör dina val pÃ¥ vänstersidan längst upp i dialogrutan. När den visas finns en lista med kataloger, var och en med namnet pÃ¥ ett programsprÃ¥k, som till exempel: + + + Ada + Ada + nytt projekt + + C + C + nytt projekt + + C++ + C++ + nytt projekt + + Databas (SQL-projekt) + SQL + nytt projekt + + Databas + nytt projekt + + Fortran + Fortran + nytt projekt + + Haskell + Haskell + nytt projekt + + Java + Java + nytt projekt + + PHP + PHP + nytt projekt + + Pascal + Pascal + nytt projekt + + Perl + Perl + nytt projekt + + Python + Python + nytt projekt + + Ruby + Ruby + nytt projekt + + Skal (Skript för skalet Bash) + Bash + nytt projekt + + skal + nytt projekt + + + +För att precisera, innehÃ¥ller katalogerna i själva verket inte riktiga programmeringsverktyg. De leder till fördefinierade mallar som du kan använda som utgÃ¥ngspunkt för utveckling i ett sprÃ¥k. För att fÃ¥ en idé om vad som erbjuds, öppna bara en katalog i taget. Det finns en följd underkataloger i vissa, men bara en eller flera enkla beteckningar i andra. Underkatalogerna du ser organiserar de tillgängliga mallarna enligt vissa uppgifter, de enkla beteckningarna namnger mallar som du kan välja. +Här kan vi inte i detalj gÃ¥ in pÃ¥ vilka uppgifter varje mall tillhandahÃ¥ller, men det är enkelt att ta reda pÃ¥. SÃ¥ fort du markerar en mallbeteckning, visas viss information i fälten till höger. I det nedre fältet ser du en kort beskrivning om vad mallen är avsedd att göra. I fältet ovanför visas en bild, om tillgänglig, med hur programmet som mallen producerar ser ut om du kompilerar och kör det utan ändring. Oftast är det en skärmbild av huvudfönstret som programmet visar. +Välj mallen som bäst passar mÃ¥len för ditt program som startpunkt. Skriv därefter in information om allmänna egenskaper i de nedre fälten, som visas i nästa kapitel. + + +Välja ett projekthanteringssystem +Varje mall är kopplad till ett särskilt projekthanteringssystem. För närvarande finns det inget direkt sätt att helt fritt välja ett sÃ¥dant projekthanteringssystem. Du mÃ¥ste hitta en mall som passar dina behov, eller ändra projektet pÃ¥ motsvarande sätt efter det har skapats. + + + + + +Ange allmän information + + + projekt + egenskaper + + egenskaper + + program + namn + + namn + program + + projekt + katalog + + katalog + projekt + + sökväg + nytt projekt + + projekt + upphovsman + + projekt + e-post + + upphovsman + + e-post + + projekt + main.cpp + + main.cpp + + projekt + licens + + iicens + +Den undre delen av sidan Allmänt i dialogrutan Skapa nytt projekt är ett inramat fält som heter Egenskaper. Du mÃ¥ste tillhandahÃ¥lla en del allmän information om projektet här, sÃ¥ att programguiden vet hur den ursprungliga strukturen ska byggas. + +Programnamn +Ditt program behöver förstÃ¥s ett namn. Skriv in det i det övre fältet under Egenskaper, som heter Programnamn. Vi använder Mitt_program som exempel. + +När du gör det, märker du att programguiden vägrar att acceptera specialtecken av nÃ¥got slag. De enda tecken som accepteras är: + smÃ¥ och stora bokstäver + siffror + tecknet understreck + + +En framträdande orsak till begränsningen är att programguiden kommer att använda programnamnet som bas för vissa klassnamn som den skapar när den bygger upp projektet frÃ¥n början. AlltsÃ¥ mÃ¥ste projektets namn följa reglerna för programsprÃ¥ket som används. + +Projektkatalogen +Den andra utmärkande orsaken för begränsningen ser du pÃ¥ nedersta raden i omrÃ¥det Egenskaper. Den heter Slutgiltig plats, och visar katalogen där programguiden skapar programmet. + +När du skriver in programmets namn märker du att programguiden repeterar det du skriver in längst ner pÃ¥ raden Slutgiltig plats, men bara med smÃ¥ bokstäver. +AlltsÃ¥ mÃ¥ste du välja namn pÃ¥ det nya programmet med försiktighet. Om du slutar med en katalog som redan används, lÃ¥ter inte programguiden dig fortsätta till nästa steg, genom att behÃ¥lla knappen Nästa > inaktiv (grÃ¥). Den varnar dig ocksÃ¥ genom att lägga till (fil eller katalog finns redan) sist pÃ¥ raden Slutgiltig plats. + + +Startsökväg +Det finns tvÃ¥ sätt att välja en annan sökväg till det nya programmet. En är att använda ett annat namn. Det är dock inte alltid möjligt (t.ex. skapar du kanske en ny version av ett befintligt program). Som ett alternativ kan du välja en annan sökväg till programkatalogen. + +Det görs i den andra radens inmatningsfält under Egenskaper, som heter Plats. Det du skriver in här är överliggande sökväg för det nya programmets utvecklingskatalog. Programguiden lägger till programnamnet sist i sökvägen när det nya projektet skapas. Resultatet visas pÃ¥ raden Slutgiltig plats för att bättre visa vad som händer. +Programguiden kopierar ett startvärde till fältet Plats frÃ¥n början. Det hämtas frÃ¥n det du har valt under fältet Standardprojektkatalog under den allmänna inställningen. I vÃ¥rt fall har vi ställt in &tdevelop; att använda /home/utveckling/projekt/ som ursprunglig sökväg för nya projekt. +Ändra innehÃ¥llet i fältet Plats, sÃ¥ att utvecklingskatalogen för programmet som visas pÃ¥ raden Slutgiltig plats är unik. + +Försäkra dig om att sökvägen du skriver in i fältet Plats redan finns. Annars kommer du inte att kunna fortsätta till nästa steg. Programguiden varnar dig om sökvägar som inte finns, genom att lägga till (ogiltig) sist pÃ¥ raden Slutgiltig plats. + + + + + + + Ställa in ett nytt projekt för CVS + + + + +Personlig information +Fälten som följer är inte sÃ¥ kritiska. Ange bara ditt namn (dvs. namnet pÃ¥ personen som är ansvarig för programmet) i fältet Upphovsman, och en giltig e-postadress i fältet E-post, sÃ¥ att användare kan ge dig Ã¥termatning om programmet. + + + + + Programguiden fyller i fälten med vissa förvalda värden, som tas frÃ¥n e-postinställningarna i KDE:s inställningscentral. Om de förvalda värdena i fälten Upphovsman och E-post under Skapa nytt projekt inte passar, bör du kontrollera e-postinställningarna i KDE:s inställningscentral. + Programguiden sammanställer informationen till startprogrammallar om de finns. För &kde; C++ program, hittar du den till exempel i början av källkodsfilen main.cpp. + Fältet E-post är det valfria bland fälten, vilket beror pÃ¥ att alla utvecklare kanske inte har tillgÃ¥ng till Internet. Du kan lämna fältet tomt om du vill, och ändÃ¥ fortsätta. + + + + +Versions- och licensinformation +Skriv till sist in startversion för det nya programmet i fältet Version, och välj licensen du vill ska gälla för ditt program i kombinationsrutan Licens. + + +Om du väljer en programtyp där programguiden tillhandahÃ¥ller gemensamma källkodstextmallar (t.ex. C/C++), bör du titta pÃ¥ licensinformationstexten pÃ¥ tredje sidan i dialogrutan Skapa nytt projekt (se kapitlet Ange mallar för deklarationer och källkod nedan). +Om du valde Egen i kombinationsrutan Licens mÃ¥ste du själv tillhandahÃ¥lla en licenstext. + +BÃ¥de version och licensinformation kommer ocksÃ¥ att infogas i startmallarna pÃ¥ ett lämpligt format som tillhandahÃ¥lls av programtypen du väljer. + +När du har skrivit in all den här informationen pÃ¥ ett riktigt sätt, tryck pÃ¥ knappen Nästa > för att fortsätta, som visas i följande kapitel. + + + + + +Ange information om versionssystem + + + CVS + nytt projekt + + projekt + CVS + + databas + CVS + + version + databas + + version + CVS + +I det andra steget, leder programguiden dig till sidan Versionskontrollsystem, där du kan bestämma vilket versionskontrollsystem du vill använda. + +Den här beskrivningen koncentreras endast pÃ¥ behoven för att skapa projekt. För mer information om &CVS;, se kapitlet Använda &CVS; nedan. + + +Inget versionskontrollsystem önskas +FrÃ¥n början är Inget valt i kombinationsrutan Versionskontrollsystem, och sidan är för övrigt tom. Om du inte vill använda ett versionskontrollsystem, klicka bara pÃ¥ knappen Nästa > för att fortsätta. + + + +Använda &CVS; +Annars mÃ¥ste du välja versionskontrollsystemet som du vill använda i kombinationsrutan Versionskontrollsystem. Vi använder &cvs; i vÃ¥rt exempel. Om du väljer det, visar programguiden sidan igen, men nu innehÃ¥ller den ett antal fält som du mÃ¥ste fylla i. + + + + + + + + Ställa in ett nytt projekt för CVS + + + +Ett versionskontrollsystem som &CVS; (vilket betyder Concurrent Versions System) lagrar kopior av valda projektfiler i nÃ¥gon sorts databas. Om du använder &CVS;, kan du bland annat ladda upp (arkivera) filerna eller ladda ner dem till din projektkatalog (checka ut, eller uppdatera). Det särskilda med detta är att filerna i versionsdatabasen lagras pÃ¥ ett strukturerat sätt, vilket gör att du alltid kan Ã¥tergÃ¥ till ett tidigare utvecklingssteg om du behöver. &CVS; tillÃ¥ter ocksÃ¥ flera utvecklare att ganska enkelt samarbeta i ett stort projekt (som &tdevelop;), utan att störa varandras arbete. + + + CVS + rot + + rot + CVS + + CVS + lokal + + CVS + fjärr + + lokal CVS + + :local: + + CVS + :local: + + +&CVS;-rot +&CVS; mÃ¥ste hantera versionsdatabasen som det har med dina projektfiler. För att Ã¥stadkomma det har det en del speciell databasinformation i en egen katalog, som kallas &CVS;-roten. Det första steget för att ställa in &CVS; för det nya projektet, är alltsÃ¥ att tala om för &tdevelop; var roten finns. + + +Lokal &CVS;-rot. Det finns tvÃ¥ grundläggande möjligheter. Antingen vill du använda en lokal &CVS;-databas, eller använder du en databas som finns pÃ¥ en fjärrserver. Om du utvecklar pÃ¥ egen hand, kan du vilja använda &CVS;-databasen som ett sorts säkerhetskopieringssystem pÃ¥ din egen dator. Oftast skapas den i din hemkatalog och ges namnet cvsroot. Det kan se ut pÃ¥ följande sätt: +/home/utveckling/cvsroot (där devel helt enkelt anger användaren utveckling, bara som ett exempel) + +I själva verket är det här en förkortad form. Mer fullständigt ska den lokala &CVS;-roten adresseras med prefixet :local:. Den förkortade formen tillÃ¥ts bara i fallen dÃ¥ filnamnet börjar med ett snedstreck (/). Det fullständiga namnet pÃ¥ vÃ¥r lokala &CVS;-rot i exemplet skulle exakt se ut som: :local:/home/utveckling/cvsroot. + +Skriv in namnet pÃ¥ &CVS;-rotkatalogen som systemet har ställts in för i fältet CVS-rot. I princip kan du välja vilket namn som helst, och till och med använda flera &CVS;-databaser, men det är lämpligt att behÃ¥lla &CVS;-roten när den väl har ställts in. +Initiera en ny &CVS;-rot. Om det inte finns en &CVS;-root, ännu kan &tdevelop; ställa in &CVS;-systemet att skapa ett Ã¥t dig i den givna katalogen. Markera bara kryssrutan Initiera rot under fältet CVS-rot. +Som sagt, beordrar bara &tdevelop; &CVS;-systemet att initiera en ny &CVS;-rot. Det gör ingenting själv med katalogen. Som tur är, är &CVS; smart nog att kontrollera om &CVS;-rotkatalogen redan finns. Därför gör det ingen skada om du skulle ha markerat Initiera rot för en befintlig &CVS;-rotkatalog. + +Fjärr &CVS;-rot. Det finns tillfällen dÃ¥ &CVS;-databasen ska finnas pÃ¥ en fjärrserver, särskilt när flera utvecklare arbetar med samma projekt. DÃ¥ mÃ¥ste du skriva in &CVS;-rotens webbadress till servern i fältet CVS-rot. Om du till exempel vill komma Ã¥t &kde;:s &CVS;-server: +:pserver:min_inloggning@cvs.kde.org:/home/kde (där min_inloggning anger inloggningsnamnet som är inställt i ditt &kde; &CVS;-konto) + + + Fjärr-CVS + + :pserver: + + :ext: + + CVS + :local: + + CVS + :pserver: + + CVS + :ext: + + +Servertyper för fjärr-&CVS; +Det finns i huvudsak tvÃ¥ fjärrservertyper för &CVS; med bred användning: pserver som använder ett lösenordssäkrat okrypterat protokoll, och ext-servern som använder krypterad dataöverföring via rsh eller ssh. De skiljs Ã¥t av webbadressprefixet de använder: + + +:pserver: + +för den okrypterade typen lösenordsskyddad server, och + +:ext: + +för en servertyp krypterad med rsh eller ssh. Till exempel + +:ext:min_inloggning@cvs.cervisia.sourceforge.net:/cvsroot/cervisia + +kommer Ã¥t &CVS;-roten för det brett använda &CVS;-hanteringsverktyget Cervisia pÃ¥ servern SourceForge. +Om du vill använda en krypterad server via rsh eller ssh för att komma Ã¥t &CVS;, mÃ¥ste du tala om för &tdevelop; vilket krypteringsprotokoll som ska användas. Skriv bara in rsh eller ssh i fältet CVS_RSH pÃ¥ sidan Versionskontrollsystem i Skapa nytt projekt. + +Det finns ett problem om du använder en krypterad server för &CVS; inne i &tdevelop;. Se kapitlet Använda &CVS; för detaljinformation. + + + CVS + arkiv + + arkiv + CVS + + +&CVS;-arkivet +Hittills har du talat om för &tdevelop; var &CVS;-roten finns, som hanterar versionsdatabasen och hur den ska kommas Ã¥t. Nu mÃ¥ste du tala om för &tdevelop; vilket namn du vill att &CVS; ska använda för att spara dina projektfiler i databasen. Ett sÃ¥dan ställe där projektfilerna lagras i &CVS;, kallas ett arkiv. + +I princip kan du använda vilket namn som helst för projektfilernas &CVS;-arkiv, sÃ¥ länge det uppfyller specifikationerna för att namnge en fil. Oftast använder ändÃ¥ de flesta utvecklare själva programmets namn. &CVS; bygger en katalog med namnet under &CVS;-roten, därför hittas det enklare om du behÃ¥ller programnamnet för det. +Skriv bara in arkivnamnet som du vill använda i fältet CVS-arkiv pÃ¥ sidan Versionskontrollsystem under Skapa nytt projekt. I vÃ¥rt exempel är det Mitt_program. + +Försäkra dig om att inte använda ett arkiv som redan finns!. &CVS;-systemet varnar inte för duplicerade filer, utan skyfflar in allting som inte producerar en formell konflikt. Du ställer till allting! + + +Ã…terstÃ¥ende fält +Det Ã¥terstÃ¥r inte mycket arbete. Programguiden har redan ställt in Ã¥terstÃ¥ende fält Ã¥t dig. Mer detaljerat: + +Fältet Leverantörstagg används endast av kompatibilitetsskäl. Du kan behÃ¥lla standardvärdet leverantör som programguiden skrivit in här. +Fältet Meddelande gör det möjligt att skriva in en kommentar om innehÃ¥llet i &CVS; frÃ¥n början. Använd vilken text du vill, eller behÃ¥ll bara standardvärdet nytt projekt som programguiden skrivit in. +UtgÃ¥vetagg innehÃ¥ller namnet som används som tagg för det ursprungliga tillstÃ¥ndet för projektet. En sÃ¥dan tagg namnger ett visst tillstÃ¥nd i &CVS;-arkivet, som du senare kan använda för att komma Ã¥t det tillstÃ¥ndet för utvecklingen. (Se vidare i kapitlet Använda &CVS;.) +Programguiden har skrivit in standardtaggen start här, som är ett värdigt förslag. BehÃ¥ll det bara. + + +Om nÃ¥gon information om versionskontroll är fel, märker &tdevelop; det oftast inte förrän projektet skapas. Det är &CVS;-systemet som hittar felen när det försöker skapa arkivet. Därför mÃ¥ste du hÃ¥lla ett öga pÃ¥ fönstret Meddelanden i &tdevelop; när projektet skapas under det sista inställningssteget. Om det var nÃ¥got fel med &CVS;, ser du oftast ett felmeddelande som det här: + + +* cd '/home/utveckling/test' && cvs -d '/home/utveckling/min_cvsrot' \ + import -m 'nytt projekt' '' 'leverantör' 'start' &&\ + sh /opt/kde3/share/apps/kdevcvs/buildcvs.sh . '' \ + '/home/utveckling/min_cvsrot' +* cvs [import aborted]: /home/utveckling/min_cvsrot/CVSROOT: No such file or + directory +* *** Exited with status: 1 *** + + +Om det här händer, mÃ¥ste du antingen ställa in &CVS; för hand (&tdevelop; ska ha lyckats initiera dina projektfiler vid detta tillfälle) eller ta bort projektkatalogen och börja om igen med Nytt projekt i menyn Projekt. + + +Efter du har skrivit in all informationrelaterad till &CVS;, klicka pÃ¥ knappen Nästa > för att fortsätta. + +Om du vill rätta ett fel pÃ¥ föregÃ¥ende sida i Skapa nytt projekt, tryck bara pÃ¥ knappen < Tillbaka. Programguiden kommer ihÃ¥g dina inställningar pÃ¥ nuvarande sida, sÃ¥ du kan enkelt fortsätta när du kommer tillbaka. + + + + +Ange mallar för deklarationer och källkod + +Nästa steg tar dig till en serie sidor, där du kan ställa in vanlig information som du vill inkludera i dina källkods- och deklarationsfiler, om uppgiften i frÃ¥ga tillÃ¥ter. +BÃ¥de deklarationsmallar och källkodsmallar tillhandahÃ¥lls för C och C++ program, var och en pÃ¥ sin egen sida. För andra sprÃ¥k kanske det bara finns källkodsmallar. I vissa fall ser du till och med att mallsidan är tom. +Om sidan används, fyller programguiden i nÃ¥gra vanliga kommentarer i sidhuvudet, som kan se ut sÃ¥ här för ett C++ baserat program: + + +/*************************************************************************** + * Copyright (C) 2003 by Ditt namn * + * du@du.se * + * * + * 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., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ + + +Andra mallar tillhandahÃ¥ller liknande information pÃ¥ ett format enligt definitionen av programsprÃ¥ket du vill använda. +Som du kanske märkt, har programhanteringen redan fyllt i viss information som du angav pÃ¥ den fösta sidan Allmänt i dialogrutan Skapa nytt projekt, närmare bestämt innehÃ¥llet i fälten Upphovsman och E-post. Riktig licensinformation har ocksÃ¥ infogats, enligt ditt val i kombinationsrutan Licens. + + +Hur mallarna kan redigeras + + + mallar + projekt + redigera + + projekt + mallar + redigera + +Mallarna som du ställer in i dialogrutan Skapa nytt projekt behandlas varje gÃ¥ng du talar om för &tdevelop; att skapa en ny källkodsfil och/eller deklarationsfil. Informationen som du anger här, inkluderas längst upp i ett dokumentationshuvud, innan koden börjar. +Du är dock inte begränsad till ren text. &tdevelop; känner till flera variabler, som lÃ¥ter dig inkludera riktig information i filen. Programguiden använda i själva verket just nÃ¥gra sÃ¥dana variabler för att inkludera information om Upphovsman, E-post och Licens i den ursprungliga malltexten. + + + +Infoga filinformation frÃ¥n &doxygen; + +Om du till exempel vill att dokumentationen av programvarugränssnittet som &doxygen; skapar, ska visa ytterligare information om filens innehÃ¥ll i listan med filnamn, kan du lägga till följande rader i källkodsfilens mall: + +/** + * \file $MODULE$.cpp + * \brief (skriv en kort beskrivning här). + **/ + +SÃ¥ fort du skapar en ny källkodsfil, ersätter &tdevelop; variabeln $MODULE$ med namnet pÃ¥ den nyskapade filen. Om du till exempel skapar en ny C++ klass som heter EnEnkelTest, ser du följande rader i filen enenkeltest.cpp: + +/** + * \file enenkeltest.cpp + * \brief (skriv en kort beskrivning här). + **/ + +Du mÃ¥ste fortfarande tillhandahÃ¥lla den korta beskrivningen efter nyckelordet \brief, men en del av jobbet har redan gjorts automatiskt Ã¥t dig. + + + + +Textfilen med licensen + +Som ett annat exempel skulle du kunna inkludera en explicit referens till licenstexten som du vill använda i mallen. Använd variabeln $LICENSEFILE$ för detta, och lägg till exempel till följande rad: + + +// Se $LICENSEFILE$ för den fullständiga licenstexten. + +Programguiden ersätter $LICENSEFILE$ med namnet pÃ¥ filen där den fullständiga licenstexten finns, nämligen: + +// Se COPYING för den fullständiga licenstexten. + +för GPL-licensen, eller + +// Se LICENSE.BSD för den fullständiga licenstexten. + +om du bestämmer dig för att använda BSD-licens för programmet. +Det finns förstÃ¥s fler variabler som &tdevelop; känner till. Se avsnittet Redigera mallarna i kapitlet Redigeringsverktyg för att hitta vad som är möjligt. + + + + +Mallarna som du definierar här fÃ¥r ingen effekt förrän programguiden skapar det nya projektet. Du hittar informationen längst upp i filerna som du själv skapar under utvecklingsprocessen. När de ursprungliga filerna skapas, använder programguiden nÃ¥gra fördefinierade standardmallar. Du mÃ¥ste anpassa de ursprungliga filerna till dina behov för hand. + + + + + +Bygg de ursprungliga projektfilerna + + + projekt + nytt + bygg + + projekt + ursprunglig byggning + +Nu är nästan allt klart. PÃ¥ den sista sidan i mallen, har knappen Nästa > ändrats sÃ¥ att den nu lyder Slutför. +Tänk efter innan du klickar pÃ¥ den! Du har fortfarande möjlighet att granska allting genom att använda knappen < Tillbaka upprepade gÃ¥nger. Eftersom programguiden kommer ihÃ¥g all information du hittills matat in, kan det vara lämpligt att ta dig tid att titta tillbaka en gÃ¥ng till. Om du använder lokal &CVS;, glöm inte att kontrollera namnet pÃ¥ &CVS;-arkivet igen (det ska inte redan finnas nÃ¥gon underkatalog med det namnet i &CVS;-rotkatalogen. Om det gör det, försök med ett annat arkivnamn). +Om du nÃ¥gon gÃ¥ng inte vill att det nya projektet ska byggas, avbryt dialogrutan Skapa nytt projekt med knappen Avbryt. Klicka annars pÃ¥ Slutför, och se i fönstret Meddelanden hur programguiden skapar projektet. +Om du vill använda ett versionshanteringssystem (&CVS;), sker det i själva verket tvÃ¥ genomgÃ¥ngar. Programguiden bygger först projektkatalogerna och anropar sedan &CVS;-programmet som Ã¥terstartar fönstret Meddelanden med sitt eget innehÃ¥ll. Om nÃ¥got fel uppstÃ¥r i nÃ¥gon av genomgÃ¥ngarna, stannar processen och visar dig motsvarande felmeddelande i fönstret. + +I mÃ¥nga fall, när det nya projektet har skapats pÃ¥ det här sättet, laddar &tdevelop; automatiskt källkodsfilen eller filerna för en eller fler av de grundläggande viktiga modulerna, sÃ¥ att du kan enkelt börja arbeta. (Vilka källkodsmoduler som visas, om nÃ¥gra alls, beror dock pÃ¥ mallen som frÃ¥n början valdes i programguiden.) + +Glöm inte att kontrollera vad programguiden tillhandahÃ¥ller frÃ¥n början. Du kanske till exempel vill ändra ursprunglig information i filhuvuden enligt dina egna mallar. Oftast hittar du dem i underkatalogen templates i projektkatalogen. NÃ¥gra enkla kopieringsÃ¥tgärder räcker oftast. +Därefter är det lämpligt att du kompilerar det ursprungliga projektet innan du försöker ändra nÃ¥gon kod. I de flesta fall ska den här första kompileringen vara möjlig. PÃ¥ sÃ¥ sätt kan du avgöra om projektet verkligen skapades enligt dina behov. Om det inte gjorde det, ta helt enkelt bort projektkatalogen (i den lokala &CVS;-roten ocksÃ¥, om du använder en) och börja om. + + + + + förvald bygginställning + varning + + bygginställningar + varning om förvald bygginställning + + varning + förvald bygginställning + + Innan du kompilerar det nya projektet för första gÃ¥ngen, ta en titt pÃ¥ Projekt Bygginställning. Om det finns tre alternativ som visas: default, optimized och debug, med debug markerat, behÃ¥ll det för all del, eller använd optimized istället. + PÃ¥ grund av vissa begränsningar i den nuvarande inställningen av autoconf och automake, ska du under inga omständigheter bygga med inställningen default. Det förstör vissa interna kataloginställningar, och gör att configure klagar när du senare försöker använda det med bygginställningarna optimized eller debug. + (Det här gäller bara för dessa flervalsmöjligheter. Om programtypen du valde bara tillhandahÃ¥ller bygginställningen default, ska du förstÃ¥s använda den.) + + + + + + + +Konfigurera projekt + +(Ännu inte skrivet ...) + + + + diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/automake-file-popup.png b/tde-i18n-sv/docs/tdevelop/tdevelop/automake-file-popup.png new file mode 100644 index 00000000000..e6c505ba281 Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/automake-file-popup.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/automake-manager.png b/tde-i18n-sv/docs/tdevelop/tdevelop/automake-manager.png new file mode 100644 index 00000000000..a0ccbd0caf4 Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/automake-manager.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/automake-subproject-popup.png b/tde-i18n-sv/docs/tdevelop/tdevelop/automake-subproject-popup.png new file mode 100644 index 00000000000..4779dc5636e Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/automake-subproject-popup.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/automake-target-popup.png b/tde-i18n-sv/docs/tdevelop/tdevelop/automake-target-popup.png new file mode 100644 index 00000000000..82dd45a417b Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/automake-target-popup.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/automakemanager.png b/tde-i18n-sv/docs/tdevelop/tdevelop/automakemanager.png new file mode 100644 index 00000000000..c6dcfafa354 Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/automakemanager.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/build-commands.png b/tde-i18n-sv/docs/tdevelop/tdevelop/build-commands.png new file mode 100644 index 00000000000..f00a120745b Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/build-commands.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/build-configurations.png b/tde-i18n-sv/docs/tdevelop/tdevelop/build-configurations.png new file mode 100644 index 00000000000..1cc8f1c1dbb Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/build-configurations.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/build-menu-automake.png b/tde-i18n-sv/docs/tdevelop/tdevelop/build-menu-automake.png new file mode 100644 index 00000000000..6a3e0fb0667 Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/build-menu-automake.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/build-menu.png b/tde-i18n-sv/docs/tdevelop/tdevelop/build-menu.png new file mode 100644 index 00000000000..2fcb3a1ed78 Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/build-menu.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/class-browsers.docbook b/tde-i18n-sv/docs/tdevelop/tdevelop/class-browsers.docbook new file mode 100644 index 00000000000..d9521e3e78b --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/class-browsers.docbook @@ -0,0 +1,89 @@ + +Klassbläddrarna +klassbläddrare + +Vid arbete med ett projekt i ett objektorienterat sprÃ¥k, läggs inte tonvikten pÃ¥ källkodsfilerna och deras namn, utan pÃ¥ klasserna och deras samband. För att hjälpa dig navigera bland definierade klasser och symboler, innehÃ¥ller &tdevelop; diverse klassbläddrare som synliggör klasstrukturen pÃ¥ olika sätt. + + +Klassvy + +Den här vyn visas till vänster i huvudfönstret och innehÃ¥ller en linjär lista av alla klasser, variabler och funktioner i projektet. Den är konstruerad som en trädvy. Om du öppnar en klassnod genom att klicka pÃ¥ den, visas en lista med alla metoder och egenskaper som respektive klass har. + +
+En skärmbild av klassbläddraren + + + +
+ +Klassvyn arbetar i två olika lägen. Normalt grupperas alla symboler i Klasser, Struct:ar, Funktioner, Variabler och Namnrymder. I den sammanhangsberoende menyn, kan du välja Lista enligt namnrymder. Med detta läge, visas namnrymdshierarkin, och symboler grupperas i respektive namnrymd där de definieras. Det här kan vara mer användbart i projekt som använder många (hierarkiska) namnrymder. Det är mindre användbart i projekt utan namnrymder. + +Du kan också ändra sättet som klassnamn visas. Normalt visas klassernas namn, utan namnrymden där de definieras. Det betyder att du inte omedelbart kan skilja på klasser med samma namn i olika namnrymder. Om du håller musen still ett ögonblick över ett namn, visas dock det fullständiga namnet som ett verktygstips. Du kan välja att alltid visa det fullständiga klassnamnet genom att välja Fullständig räckvidd för identifierare i den sammanhangsberoende menyn. + +Genom att klicka på en klass eller metod i en klassvy kommer du till dess definition. Du kan också hoppa till en metods deklaration genom att välja Gå till deklaration i den sammanhangsberoende menyn. I den sammanhangsberoende menyn för klasser finns också alternativen Lägg till metod... och Lägg till egenskap... De öppnar dialogrutor där du kan skapa nya metoder och variabeldeklarationer för den relevanta klassen, tillsammans med en tom implementering. + +
+ + + + +Klassverktyg + +Klassverktygsdialogrutan aktiveras genom att högerklicka på en klass i klassvyn och välja Klassverktyg.... + + + + + + +Klasshierarki + +(...ännu inte skrivet...) + + + +
+ + diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/classview.png b/tde-i18n-sv/docs/tdevelop/tdevelop/classview.png new file mode 100644 index 00000000000..fc3c8eed662 Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/classview.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/commands.docbook b/tde-i18n-sv/docs/tdevelop/tdevelop/commands.docbook new file mode 100644 index 00000000000..0b7d1315c84 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/commands.docbook @@ -0,0 +1,2999 @@ + + + + + + + Volker Paul + Stefan Asserhäll
stefan.asserhall@comhem.se
Översättare
+
+ + 2005-04-03 +
+ +Kommandoreferens + +Snabbtangenterna som visas i det här kapitlet är de förvalda. De kan ändras. + + + + +Menyraden Observera att vissa menyalternativ bara visas när de passar in. I synnerhet är vissa alternativ kopplade till funktioner i insticksprogram som bara är tillgängliga när insticksprogrammet är aktiverat. + + + + + + + + + +Menyn <guimenu +>Arkiv</guimenu +> + + + + &Ctrl;N Arkiv Ny +Skapa en ny fil. Användaren blir tillfrågad om att välja katalog (förval är nuvarande projekts källkodskatalog) och skriva in ett filnamn. Filtypen kan väljas i en lista. Dessutom kan användaren välja om filen ska läggas till i projektet. Därefter frågar Hantering av automake vilket mål som den nya filen ska läggas till i. + + + + &Ctrl;O Arkiv Öppna +Öppnar en befintlig fil med en enkel dialogruta. + + + + &Ctrl;O Arkiv Öppna senaste +Visar en undermeny med filer som senast öppnades. Att välja en av dem gör att KDevelop öppnar filen. + + + + &Alt;&Ctrl;O Arkiv Snabböppna +Visar en lista med filer i det nuvarande projektets källkodskatalog. Användaren kan välja från listan eller skriva in ett filnamn. Filen öppnas därefter. + + + + + &Ctrl;S Arkiv Spara +Sparar nuvarande fil. + + + + + &Ctrl;S Arkiv Spara som... +Använder dialogrutan Spara som... för att låta dig spara en kopia med ett annat namn. + + + +Arkiv Spara alla +Sparar alla öppna filer. + + + +F5 Arkiv Återställ +Laddar om nuvarande fil för att visa ändringar gjorda av andra program. (Observera att sådana ändringar normalt detekteras automatiskt och användaren blir tillfrågad om filen ska laddas om.) + + + +Arkiv Återställ alla +Återställer alla ändringar i öppnade filer. Frågar om du vill spara ändringar så att återställningen kan avbrytas för varje ändrad fil. + + + + + &Ctrl;P Arkiv Skriv ut... +Skriv ut. + + + +Arkiv Exportera +Exportera + + + + + &Ctrl;F4 Arkiv Stäng +Stänger nuvarande fil. + + + + +Arkiv Stäng alla +Stänger alla öppna filer. + + + + +Arkiv Stäng alla andra +Stänger alla filer utom den nuvarande. Mycket användbart om du öppnade många filer och vill koncentrera dig på den nuvarande. Utan det här skulle du behöva stänga alla och därefter öppna den nuvarande igen. +Observera att det finns ett liknande kommando i menyn Fönster. + + + + + &Ctrl;Q Arkiv Avsluta +Stäng KDevelop. + + + + + + + + + + + + +Menyn <guimenu +>Redigera</guimenu +> + + + + + + + &Ctrl;Z Redigera Ångra +Ångra + + + + + &Ctrl;&Shift;Z Redigera Gör om +Gör om + + + + + &Ctrl;X Redigera Klipp ut +Klipp ut + + + + + &Ctrl;C Redigera Kopiera +Kopiera + + + + + &Ctrl;V Redigera Klistra in +Klistra in + + + + + &Ctrl;A Redigera Markera alla +Markera alla + + + + + &Ctrl;&Shift;ARedigera Avmarkera +Avmarkera + + + + + &Ctrl;&Shift;B Redigera Blockmarkeringsläge +Blockmarkeringsläge + + + + + Insert Redigera Överskrivningsläge +Överskrivningsläge + + + + + &Ctrl;F Redigera Sök +Sök + + + + + F3 Redigera Sök igen +Sök igen + + + + + &Shift;F3 Redigera Sök föregående +Sök föregående + + + + + &Ctrl;R Redigera Ersätt +Ersätt + + + + + &Ctrl;G Redigera Gå till rad +Gå till rad + + + + + &Alt;&Ctrl;F Redigera Sök i filer +Sök i filer + + + + + &Shift;R Redigera Sök-välj-ersätt +Sök-välj-ersätt + + + + +Redigera Formatera om källkod +Formatera om källkod + + + + + &Ctrl;J Redigera Expandera text +Expandera text + + + + + &Ctrl;L Redigera Expandera förkortningar +Expandera förkortningar + + + + + &Ctrl;Mellanslag Redigera Komplettera text +Komplettera text + + + + + F2 Redigera Skapa medlem +Skapa medlem + + + + + + + + + + + + + + +Menyn <guimenu +>Visa</guimenu +> + + + +Visa Tillbaka +Tillbaka + + + + +Visa Framåt +Framåt + + + + + &Ctrl;/ Visa Byt till... +Byt till... + + + + + &Alt;C Visa Höj editor +Höj editor + + + + + F4 Visa Nästa fel +Nästa fel + + + + + &Shift;F4 View Föregående fel +Föregående fel + + + + + &Shift;F Visa Fullskärmsläge +Fullskärmsläge + + + + + &Ctrl;F12 Visa Byt till deklaration/implementering +Byt till deklaration/implementering + + + + +Visa Verktygsvyer +Verktygsvyer + + + + +Visa Dockning av verktyg +Dockning av verktyg + + + + + F7 Visa Byt till kommandorad +Byt till kommandorad + + + + +Visa Schema +Schema + + + + + F10 Visa Dynamisk radbrytning +Dynamisk radbrytning + + + + +Visa Dynamiska radbrytningsmarkörer +Dynamiska radbrytningsmarkörer + + + + +Visa Visa/Dölj statisk radbrytningsmarkör +Visa/Dölj statisk radbrytningsmarkör + + + + + F6 Visa Visa/Dölj ikonkant +Visa/Dölj ikonkant + + + + + F11 Visa Visa/Dölj radnummer +Visa/Dölj radnummer + + + + +Visa Visa/Dölj rullningslistmarkeringar +Visa/Dölj rullningslistmarkeringar + + + + + F9 Visa Visa/Dölj vikmarkörer +Visa/Dölj vikmarkörer + + + + +Visa Kodvikning +Kodvikning + + + + +Visa Ange kodning +Ange kodning + + + + + + + + + + + + + + + +Menyn <guimenu +>Projekt</guimenu +> + + + + +Projekt Nytt projekt... +Nytt projekt... + + + + +Projekt Öppna projekt... +Öppna projekt... + + + + +Projekt Öppna senaste projekt +Öppna senaste projekt + + + + +Projekt Aktivt språk +Aktivt språk + + + + +Projekt Importera befintligt projekt... +Importera befintligt projekt... + + + + +Projekt Ny klass... +Ny klass... + + + + +Projekt Arvdiagram för klasser +Arvdiagram för klasser + + + + +Projekt Lägg till översättning... +Lägg till översättning... + + + + +Projekt Bygginställning +Bygginställning + + + + +Projekt Distribution och publicering +Distribution och publicering + + + + +Projekt Projektinställningar... +Projektinställningar... + + + + +Projekt Stäng projekt +Stäng projekt + + + + + + + + + + + + + + +Menyn <guimenu +>Projekt</guimenu +> + + + + + F8 Bygg Bygg projekt +Bygg projekt + + + + + F7 Bygg Bygg aktivt mål +Bygg aktivt mål + + + + +Bygg Kompilera fil +Kompilera fil + + + + +Bygg Kör configure +Kör configure + + + + +Bygg Kör automake och besläktade program +Kör automake och besläktade program + + + + +Bygg Installera +Installera + + + + +Bygg Installera (som systemadministratör) +Installera (som systemadministratör) + + + + +Bygg Rensa projekt +Rensa projekt + + + + +Bygg Dist-rensning +Dist-rensning + + + + + &Shift;F9 Bygg Bygg meddelanden och samsortera +Bygg meddelanden och samsortera + + + + +Bygg Kör program +Kör program + + + + +Bygg Bygg dokumentation av programgränssnitt +Bygg dokumentation av programgränssnitt + + + + +Bygg Rensa dokumentation av programgränssnitt +Rensa dokumentation av programgränssnitt + + + + + Escape Bygg Stoppa +Stoppa + + + + + + + + + + + + + + + +Menyn <guimenu +>Projekt</guimenu +> + + + + +Avlusa Starta +Starta + + + + +Avlusa Stoppa +Stoppa + + + + +Avlusa Avbryt +Avbryt + + + + +Avlusa Kör till markör +Kör till markör + + + + +Avlusa Stega förbi +Stega förbi + + + + +Avlusa Stega förbi instruktion +Stega förbi instruktion + + + + +Avlusa stega in i +Stega in i + + + + +Avlusa Stega in i instruktion +Stega in i instruktion + + + + +Avlusa Stega ur +Stega ur + + + + +Avlusa Växla brytpunkt +Växla brytpunkt + + + + +Avlusa Visare +Visare + + + + +Avlusa Undersök minnesdump... +Undersök minnesdump... + + + + +Avlusa Anslut till process +Anslut till process + + + + +Avlusa Valgrind kontroll av minnesläckor +Valgrind kontroll av minnesläckor + + + + +Avlusa Profilera med Kcachegrind +Profilera med Kcachegrind + + + + + + + + + + + + + + + + + + +Menyn <guimenu +>Bokmärken</guimenu +> + + + + + &Ctrl;B Bokmärken Nytt bokmärke +Lägg till nuvarande markering i dina bokmärken. + + + + +Bokmärke Rensa alla bokmärken +Rensa alla bokmärken. + + + + + + + + + + + + +Menyn <guimenu +>Fönster</guimenu +> + + + + + &Alt;W Fönster Stäng markerade fönster... +Stäng markerade fönster... + + + + &Ctrl;F4 Fönster Stäng +Stäng + + + +Fönster Stäng alla +Stäng alla + + + +Fönster Stäng alla andra +Stäng alla andra + + + + + + + + + + + + + + + + +Menyn <guimenu +>Verktyg</guimenu +> + + + +Verktyg Skrivskyddat läge +Skrivskyddat läge + + + + +Verktyg Filtyp +Filtyp + + + + +Verktyg Färgläggning +Färgläggning + + + + +Verktyg Radslut +Radslut + + + + +Verktyg Stavning +Stavning + + + + + &Ctrl;I verktyg Indentera +Indentera + + + + + &Ctrl;&Shift;I Verktyg Avindentera +Avindentera + + + + +Verktyg Rensa indentering +Rensa indentering + + + + + &Ctrl;Tab Verktyg Justera +Justera + + + + + &Ctrl;D Verktyg Kommentera +Kommentera + + + + + &Ctrl;&Shift;D Verktyg Avkommentera +Avkommentera + + + + + &Ctrl;U Verktyg Stora bokstäver +Stora bokstäver + + + + + &Ctrl;&Shift;U Verktyg Små bokstäver +Små bokstäver + + + + + &Alt;&Ctrl;U Verktyg Inledande stor bokstav +Inledande stor bokstav + + + + + &Ctrl;J Verktyg Kombinera rader +Kombinera rader + + + + +Verktyg Bryt rader mellan ord i dokumentet +Bryt rader mellan ord i dokumentet + + + + +verktyg Visning av skillnader... +Visning av skillnader... + + + + +Verktyg Kör kommando... +Kör kommando... + + + + +Verktyg Filtrera markering genom kommando... +Filtrerar markeringen genom ett externt kommando genom att använda filterinsticksprogrammet. + + + + +Verktyg Avlusa reguljärt uttryck... +Avlusa reguljärt uttryck... + + + + +Verktyg Delutforskare +Delutforskare + + + + + &Alt;&Ctrl;C Verktyg Snabböppna klass... +Snabböppna klass... + + + + + &Alt;&Ctrl;M Verktyg Snabböppna metod... +Snabböppna metod... + + + + + &Alt;&Ctrl;P Verktyg Förhandsgranska utmatning från Doxygen +Förhandsgranska utmatning från Doxygen + + + + + &Ctrl;&Shift;S Verktyg Dokumentera nuvarande funktion +Dokumentera nuvarande funktion + + + + + + + + + + + + + + + +Menyn <guimenu +>Inställningar</guimenu +> + + + + + + &Ctrl;M Inställningar Visa/Dölj menyrad +Visa/Dölj menyraden. + + + +Inställningar Verktygsrader +Öppnar en undermeny där du kan välja att visa eller dölja de olika verktygsraderna. + + + +Inställningar Visa statusrad +Visa statusraden. + + + +Inställningar Anpassa genvägar... +Anpassa genvägar... + + + + +Inställningar Anpassa verktygsrader... +Anpassa verktygsrader... + + + + +Inställningar Anpassa meddelanden... +Anpassa meddelanden... + + + + +Inställningar Anpassa editor... +Anpassa editor... + + + + +Inställningar Anpassa KDevelop... +Anpassa KDevelop... + + + + + + + + + + + + + + +Menyn <guimenu +>Hjälp</guimenu +> + + + + +Hjälp Handbok KDevelop +Visa det här dokumentet. + + + + &Shift;F1 Hjälp Vad är det här? +Ritar ett frågetecken (?) intill muspekaren. Att klicka på ett objekt i ett fönster som knappen Stoppa visar då en kortfattad förklaring. + + + + +Hjälp Dagens tips +Dagens tips + + + + + &Alt;&Ctrl;I Hjälp Titta i dokumentationsindex... +Titta i dokumentationsindex... + + + + + &Alt;&Ctrl;S Hjälp Sök i dokumentationen... +Sök i dokumentationen... + + + + +Hjälp Manualsida... +Manualsida... + + + + +Hjälp Infosida... +Infosida... + + + + +Hjälp Rapportera fel... +Rapportera fel. + + + +Hjälp Om KDevelop... +Visa en del kortfattad information om KDevelops versionsnummer, upphovsmän och licensavtal. + + + +Hjälp Om KDE... +Visa en del information om versionen av &kde; som du kör. + + + + + + + + + + + + + +
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-adddialog-baselibs.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-adddialog-baselibs.png new file mode 100644 index 00000000000..511d4107164 Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-adddialog-baselibs.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-adddialog-qt.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-adddialog-qt.png new file mode 100644 index 00000000000..07c90c66939 Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-adddialog-qt.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-adddialog.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-adddialog.png new file mode 100644 index 00000000000..7650239150d Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-adddialog.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-doctree-DevHelp.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-doctree-DevHelp.png new file mode 100644 index 00000000000..2e8ec3ceb32 Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-doctree-DevHelp.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-doctree-TOC.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-doctree-TOC.png new file mode 100644 index 00000000000..e428fc78624 Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-doctree-TOC.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-doctree-bookmark.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-doctree-bookmark.png new file mode 100644 index 00000000000..2ed9038841f Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-doctree-bookmark.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-doctree-general.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-doctree-general.png new file mode 100644 index 00000000000..950ff5e149e Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-doctree-general.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-doctree-textsearch.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-doctree-textsearch.png new file mode 100644 index 00000000000..7b812ad190f Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-doctree-textsearch.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-chm.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-chm.png new file mode 100644 index 00000000000..cdcafbab93e Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-chm.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-custom.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-custom.png new file mode 100644 index 00000000000..9a9de749c1f Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-custom.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-devhelp.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-devhelp.png new file mode 100644 index 00000000000..c2879557c9b Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-devhelp.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-dox.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-dox.png new file mode 100644 index 00000000000..9fbc1333b73 Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-dox.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-edit.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-edit.png new file mode 100644 index 00000000000..11b96d68335 Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-edit.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-general.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-general.png new file mode 100644 index 00000000000..276f4aa0ced Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-general.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-toc.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-toc.png new file mode 100644 index 00000000000..d69e3b86342 Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-toc.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-editor.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-editor.png new file mode 100644 index 00000000000..8e4dbf58fbd Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-editor.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-file-selector.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-file-selector.png new file mode 100644 index 00000000000..11bf8a13cdd Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-file-selector.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-file-templates.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-file-templates.png new file mode 100644 index 00000000000..e6995d59733 Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-file-templates.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-general.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-general.png new file mode 100644 index 00000000000..22ddc00a476 Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-general.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-buildconfig.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-buildconfig.png new file mode 100644 index 00000000000..b87fa3dc8be Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-buildconfig.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-configure.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-configure.png new file mode 100644 index 00000000000..77b00151ead Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-configure.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-cpp.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-cpp.png new file mode 100644 index 00000000000..f453567a72d Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-cpp.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-cppoptions.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-cppoptions.png new file mode 100644 index 00000000000..93ce153fba1 Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-cppoptions.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-doc.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-doc.png new file mode 100644 index 00000000000..cf7db0e5ecd Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-doc.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-make.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-make.png new file mode 100644 index 00000000000..8bc13ad7d04 Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-make.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-run.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-run.png new file mode 100644 index 00000000000..472fe4d7a90 Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-run.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-select.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-select.png new file mode 100644 index 00000000000..ca10b601476 Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-select.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-snippets.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-snippets.png new file mode 100644 index 00000000000..2b10fb218e6 Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-snippets.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/create-new-project-cvs.png b/tde-i18n-sv/docs/tdevelop/tdevelop/create-new-project-cvs.png new file mode 100644 index 00000000000..0749ebe08d0 Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/create-new-project-cvs.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/create-new-project.png b/tde-i18n-sv/docs/tdevelop/tdevelop/create-new-project.png new file mode 100644 index 00000000000..4ba1a42e814 Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/create-new-project.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/createnewproject.png b/tde-i18n-sv/docs/tdevelop/tdevelop/createnewproject.png new file mode 100644 index 00000000000..2f816121312 Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/createnewproject.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/createnewprojectoptions.png b/tde-i18n-sv/docs/tdevelop/tdevelop/createnewprojectoptions.png new file mode 100644 index 00000000000..4c03ecf91bc Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/createnewprojectoptions.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/credits.docbook b/tde-i18n-sv/docs/tdevelop/tdevelop/credits.docbook new file mode 100644 index 00000000000..c714a018a89 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/credits.docbook @@ -0,0 +1,40 @@ + +Tack till + + +Bidragsgivare + + + + Det ursprungliga innehållet i den här handboken är skrivet av Bernd Gehrmann bernd@tdevelop.org och Caleb Tennis caleb@aei-tech.com. + Kapitlen Sammanfattning av Hantering av automake och Användning av Hantering av automake är skrivna av Ian Wadham, ianw@netspace.net.au). + + + + + + + + + + diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/cvs.docbook b/tde-i18n-sv/docs/tdevelop/tdevelop/cvs.docbook new file mode 100644 index 00000000000..6b9c6e8f259 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/cvs.docbook @@ -0,0 +1,133 @@ + +Använda &CVS; +CVS +versionskontroll + + +&CVS; grunder + +&CVS; är versionshanteringssystemet som många projekt med öppen källkod, inklusive &kde;, använder. Det lagrar all källkod på en centralt plats, som kallas arkivet. Utvecklare hämtar en aktuell version av projektet eller versioner av det vid godtyckliga tidpunkter, från arkivet. I motsats till vissa andra versionshanteringssystem, är det inte nödvändigt att låsa filer som man ska arbeta med. Alltså kan utveckling ske parallellt i stor utsträckning. + +Så fort en utvecklare är klar med en uppgift, arkiverar han sin kod (tillsammans med ett loggmeddelande). &CVS; tar hand om arbetet att sammanfoga ändringar som görs av flera utvecklare. Det kan förstås hända att utvecklare arbetar med samma kodavsnitt, vilket ger upphov till ändringar med konflikter (i praktiken inträffar detta sällan, och är ofta ett tecken på bristande kommunikation). I detta fall, förkastar &CVS; arkiveringen. En fil kan bara arkiveras efter alla konflikter har lösts upp. + +Hittills har de grundläggande funktionerna i &CVS;, som man oftast måste hantera, beskrivits. Men &CVS; erbjuder mycket mer: Man kan hantera flera grenar av ett projekt (t.ex. var &kde; 1.1.2 och &kde; 2 grenar i &kde;:s utvecklingsträd), sammanfoga ändringar från en gren till en annan, fråga efter skillnader mellan versioner och filers versionshistorik, etc. + +&CVS; implementeras som ett klient-serversystem. Som användare, sker all kommunikation med arkivet via kommandoradsprogrammet &cvs;. Gränssnitt på högre nivå är tillgängligt via program som Cervisia ( ) eller TkCVS (). Bara en liten del av &cvs; funktioner, som är viktiga under det dagliga arbetet, kan användas direkt i &tdevelop;. + +Grundläggande kunskap om användning av &CVS; förutsätts. I synnerhet bör du veta hur ett givet projekt hämtas från arkivet. Vi rekommenderar boken Open Source Development With CVS av Karl Fogel, som kan spridas fritt (utom de icke-tekniska kapitlen). Se . + + + + + + +&CVS;-kommandon i &tdevelop; + +Följande alternativ är tillgängliga i filvyernas sammanhangsberoende menyer: + + + +Lägg till i arkivet + +Förbereder en fil för att läggas till i arkivet. Filen överförs till arkivet när du arkiverar den (eller katalogen som den finns i) nästa gång. + + + + +Ta bort från arkivet + +Förbereder en fil för att tas bort från arkivet. Det här tar också bort filen från det lokala filsystemet, så använd funktionen med försiktighet! + + + + +Uppdatera + +Kör kommandot cvs update för att sammanfoga eventuella ändringar från andra användare till din arbetskatalog. När du använder menyalternativet för en katalog, sker uppdateringen normalt rekursivt, utom om du har stängt av det i inställningsfilen .cvsrc. + + + + +Arkivera + +Kör cvs commit för att arkivera alla lokala ändringar i arkivet. Observera att du bör uppdatera innan du gör detta. Om en annan användare tidigare har arkiverat sina ändringar, kan &CVS; annars ge ett felmeddelande. + + + + +Alla kommandon startas som underprocesser av &tdevelop;, utan ytterligare kommandoradsväljare eller miljövariabler. Det här kan vara ett problem om anslutningen till &CVS;-servern går via en &ssh;-anslutning, och kräver att du skriver in ett lösenord varje gång du arkiverar eller uppdaterar. Det här är till exempel nödvändigt om projektets värd är sourceforge.net. Ett sätt att gå runt problemet beskrivs i vanliga frågor om CVS/SSH, som du hittar i SourceForge-dokumentationen. + + + + + + +Bakom ridån + + +Vad &CVS; sparar i arbetskatalogen + +(...ännu inte skrivet...) + + + + + diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/debugger.docbook b/tde-i18n-sv/docs/tdevelop/tdevelop/debugger.docbook new file mode 100644 index 00000000000..1bab415a692 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/debugger.docbook @@ -0,0 +1,337 @@ + +Avlusargränssnittet +avlusare + +&tdevelop; innehåller en intern avlusare för C och C++, som är direkt integrerad med editorn. Tekniskt sett är den implementerad som ett gränssnitt som använder den flyttbara &GNU;-avlusaren gdb via en rörledning. Avlusaren kan startas på flera sätt: + + + +Huvudprogrammet i projektet laddas i avlusaren med AvlusaStarta. + + + +Genom att använda Avlusa Starta (annan) Undersök minnesdump, laddar du en minnesdump till minnet, som skapats av operativsystemets kärna när programmet kraschade. (Att skapa minnesdumpar kan vara avstängt på systemet, se ulimit(1)). Det här är användbart för en post-mortem analys av ett program. + + + +Du startar avlusaren för ett program som redan kör med AvlusaStarta (annan) Anslut till process. En processlista visas där du kan välja processen som avlusaren ska överta. + + + +Observera att avlusning bara är möjlig om projektet har kompilerats med avlusningsinformation aktiverad. Den kan aktiveras i dialogrutan Kompilatorinställningar. När alternativet är aktiverat, skapar kompilatorn ytterligare information som låter avlusaren associera filnamn och radnummer med adresser i det körbara programmet. + + + +Gränssnittet till avlusaren erbjuder flera vyer in i processen: + +Om du försöker avlusa ett projekt utan avlusningsinformation, får du meddelandet Ingen källkod... i statusraden. Om du försöker sätta brytpunkter, visas de som Vilande (lägg till) i brytpunktsfönstret (se nedan). + + + +Variabler + +bevakningsvariabler +Det här fönstret visar värden för alla lokala variabler vid det nuvarande stället i programmet. Det täcker variablerna i kompilatorns anropsstack, dvs. funktionen där processen bröts, funktionen som anropade den här funktionen, och så vidare hela vägen till funktionen main(). + +En annan gren i variabelfönstret innehåller bevakningsvariabler. Du kan själv ställa in vilka variabler som syns här. Både lokala och globala variabler kan bevakas. Du kan antingen lägga till en variabel genom att klicka på knappen Lägg till eller trycka på returtangenten när posten Bevaka är markerad. Variablerna kan tas bort igen med den sammanhangsberoende menyn. + + + + +Aktiveringspoststack + +aktiveringspost-stack +(...ännu inte skrivet...) + + + + +Brytpunkter + +brytpunkter +Fönstret låter dig se och behandla brytpunkterna. Kom ihåg att &tdevelop; använder GDB, så för att förstå &tdevelop;s avlusningsfunktioner fullständigt, måste du veta lite grand om GDB. + +Om du vill titta på källkoden, definieras brytpunkter i tdevelop/languages/cpp/debugger/breakpoint.h. + +I vänsterkanten har fönstret knappar för att: + + +Lägga till en tom brytpunkt +Redigera den markerade brytpunkten + Ta bort den markerade brytpunkten +Ta bort alla brytpunkter + + +Huvuddelen av fönstret är en tabell med sju kolumner. Varje rad i tabellen är en brytpunkt. Kolumnerna är: + + +Markeringskryssruta +Typ: en av: Ogiltig, Fil:Rad, Bevakningspunkt, Adress, Funktion +Status. Värdena är: + + Aktiv + Inaktiverad: Varje brytpunkt kan aktiveras eller inaktiveras. Om den är inaktiverad har den ingen effekt på programmet till den aktiveras igen. + Vilande (lägg till): En brytpunkt är markerad så här om ingen avlusningsinformation är tillgänglig. Från GDB:s informationssida:
Om en specificerad brytpunktsplats inte kan hittas, kan det bero på det faktum att platsen är i ett delat bibliotek som ännu inte har laddats. I ett sådant fall, kan du vilja att GDB skapar en speciell brytpunkt (känd som en vilande brytpunkt) som försöker lösa upp sig själv i framtiden när ett lämpligt delat bibliotek laddas.
+
+
+Vilande (rensa) +Vilande (ändra) +Plats på formatet filnamn:radnummer +Villkor +Ignorera antal: Om det är ett tal ANTAL större än noll, stoppas inte programmets körning följande ANTAL gånger som brytpunkten nås, förutom att minska antalet att ignorera, utför gdb ingen åtgärd. +Träffar: Räknar hur många gånger en brytpunkt har träffats. +
+ + +
+
+ + +Visa assemblerkod + +visa assemblerkod +(...ännu inte skrivet...) + + + +
+ + + +Ange brytpunkter + +(...ännu inte skrivet...) + + + + + + +Alternativ + + + +Visa behandlade namn + +namnbehandling +behandlingnamn + +Funktionsnamn i det körbara programmet är behandlade för C++, dvs. funktionsnamnet innehåller information om argumentens typer. Detta är nödvändigt för att stödja överlastade funktioner. Behandlingsalgoritmen är inte standardiserad, och skiljer sig till och med mellan olika versioner av &GNU;:s C++ kompilator. + +I assemblerkodfönstret visas normalt obehandlade namn, så funktionssignaturer liknar utseendet i källkoden, och är lätt läsbara. Alternativt, kan du välja att se behandlade namn. + + + + +Försök sätta brytpunkter när bibliotek laddas + +lata brytpunkter +brytpunkterlat + +Avlusarens bakgrundsprogram gdb tillåter inte att brytpunkter sätts i kod som inte för närvarande är laddad. I ett riktigt modulärt program, där kod ofta bara laddas vid behov som insticksprogram (med användning av C-bibliotekets funktion dlopen(3)), kan detta vara besvärande. Därför hanterar &tdevelop; själv stöd för brytpunkter i delade bibliotek. Om du aktiverar det här alternativet, kan du sätta brytpunkter i bibliotek som inte laddats. Därefter, så fort gdb talar om att ett bibliotek har laddats, försöker &tdevelop; sätta de vilande brytpunkterna. + + + + +Aktivera flytande verktygsrad + +avlusningsverktygsrad +verktygsradavlusare + +(...ännu inte skrivet...) + + + + + + +
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/doctree-add-bookmark.png b/tde-i18n-sv/docs/tdevelop/tdevelop/doctree-add-bookmark.png new file mode 100644 index 00000000000..05a228c7bec Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/doctree-add-bookmark.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/doctree-reduced.png b/tde-i18n-sv/docs/tdevelop/tdevelop/doctree-reduced.png new file mode 100644 index 00000000000..6cac57f4250 Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/doctree-reduced.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/doctree.png b/tde-i18n-sv/docs/tdevelop/tdevelop/doctree.png new file mode 100644 index 00000000000..ca95dcdf26b Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/doctree.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/doctreeview.png b/tde-i18n-sv/docs/tdevelop/tdevelop/doctreeview.png new file mode 100644 index 00000000000..ed845ee2368 Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/doctreeview.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/documentation.docbook b/tde-i18n-sv/docs/tdevelop/tdevelop/documentation.docbook new file mode 100644 index 00000000000..01f9d21c4e9 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/documentation.docbook @@ -0,0 +1,73 @@ + +Dokumentation + +Dokumentation är tyvärr en av de mest förbisedda delarna av programmering. Ändå så erbjuder riktigt upprättad och underhållen intern och extern dokumentation ytterst värdefull hjälp. + +Dokumentation har flera aspekter. Det finns + intern projektdokumentation, som i huvudsak består av + kommentarer i deklarationsfiler och källkodsfiler + Intern dokumentation av programmeringsgränssnittet för projektet, som har skapats från programfilerna av särskilda verktyg, t.ex. &doxygen; + + + extern projektdokumentation, som bland annat består av + extern dokumentation av programmeringsgränssnitt, till exempel för gemensamma systembibliotek (&kde;, &Qt;, etc.) + all övrig dokumentation (manualer för programspråk, allmän systeminformation, handledningar och liknande) + + + + +All denna dokumentation ska vara enkel att underhålla och lätt tillgänglig så fort du behöver den. &tdevelop; har stöd för just detta. + + + + +Dokumentationsbläddraren + + +
+En skärmbild av dokumentationsträdet + + + +
+ +
+ +
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/documents-contents.png b/tde-i18n-sv/docs/tdevelop/tdevelop/documents-contents.png new file mode 100644 index 00000000000..23a5ad9dc00 Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/documents-contents.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/documents-search.png b/tde-i18n-sv/docs/tdevelop/tdevelop/documents-search.png new file mode 100644 index 00000000000..82294d247da Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/documents-search.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/edit-doctree-TOC-entry.png b/tde-i18n-sv/docs/tdevelop/tdevelop/edit-doctree-TOC-entry.png new file mode 100644 index 00000000000..8966de34d21 Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/edit-doctree-TOC-entry.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/editing.docbook b/tde-i18n-sv/docs/tdevelop/tdevelop/editing.docbook new file mode 100644 index 00000000000..fd82900c9a2 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/editing.docbook @@ -0,0 +1,612 @@ + +Redigeringsverktyg + + +Kodsnuttar + + + Funktioner (inledande översikt) + Delprogrammet för kodsnuttar lägger till en verktygsvy som normalt dockas till höger + Tillägg, redigering och borttagning av kodsnuttar är tillgängligt via en sammanhangsberoende meny. + Ett dubbelklick på en kodsnutt i listan infogar den i den aktiva vyn på markörens plats + Verktygstips visar innehållet i en kodsnutt + Kodsnuttar lagras i användarens hemkatalog, så varje användare kan ha sina egna kodsnuttar + Kodsnuttar kan innehålla variabler på formen $VARNAMN$. När kodsnutten används, frågas användaren efter ersättningsvärden för variablerna + + + + +Tangentanvändning +tangentbindningar + +I det följande listar vi normala tangentbindningar för standardeditorn. Du kan anpassa dem som du vill (hur då?). + + + + + +Vänster +Flyttar ett tecken åt vänster + +Höger +Flyttar ett tecken åt höger + +&Ctrl; Vänster +Flyttar ett ord åt vänster + +&Ctrl; Höger +Flyttar ett ord åt höger + +Upp +Flyttar upp en rad + +Ner +Flyttar ner en rad + +Page Up +Flyttar upp en sida + +Page Down +Flyttar ner en sida + +&Ctrl; Page Up +Går till början av filen + +&Ctrl; Page Down +Går till slutet av filen + +Home +Går till början av raden + +End +Går till slutet av raden + + + + + +För alla tangenter ovan, kan dessutom skifttangenten tryckas ner, för att markera text från markörens nuvarande position till den nya. + + + + + +Backsteg +Tar bort ett tecken åt vänster + +Delete +Tar bort tecknet under markören + +&Ctrl; C +Kopierar den markerade texten till klippbordet + +&Ctrl; V +Klistrar in den markerade texten från klippbordet + +&Ctrl; X +Tar bort den markerade texten och lägger den på klippbordet + +&Ctrl; Z +Ångra + +&Shift;&Ctrl; Z +Gör om + + + + + + + + + + +Problemrapporter + +(...ännu inte skrivet...) + + + + + +Sökning och flerfilssökning +sökning +hitta + + +Söka efter text + +CtrlF- Sök, CtrlR- Ersätt + + + + + +I-sök +i-sök +inkrementell sökning +sökinkrementell + +Den vanliga sökningen med RedigeraSök kräver att du anger hela sökbegreppet innan du startar. Oftast är det mycket snabbare att söka inkrementellt. Om du klickar på sökfältet som heter I-sök i verktygsraden, sker sökningen medan du skriver. Du kommer att märka att det önskade resultatet ofta redan hittas när du har skrivit in 3 eller 4 tecken. + + + + + +Flerfilsökning +söki filer + +Båda sökmekanismerna som beskrivs ovan är begränsade till sökning i en källkodsfil. Ett ytterligare verktyg som låter dig söka igenom ett (möjligtvis stort) antal filer är tillgängligt via alternativet Sök i filer... i menyn Redigera. Det är i grunden ett gränssnitt för programmet &grep;(1). + +I dialogrutan kan du ange vilka filer som ska sökas i. Det finns ett antal jokertecken tillgängliga i en kombinationsruta. Genom att använda dem kan du enkelt begränsa sökmekanismen till exempel för deklarationsfiler. Dessutom kan du också ange en katalog där sökningen startas. Om du markerar rutan Rekursiv, går sökningen igenom alla kataloger i hierarkin under den angivna. + +Sökbegreppet är i grunden ett reguljärt uttryck som följer POSIX-syntax. Du kan till exempel använda begreppet "\<K.*", om du vill hitta alla ord som börjar med bokstaven K. Följande tecken tolkas på ett särskilt sätt: + + + + + + + . +Matchar alla tecken + + ^ +Matchar början av en rad + + $ +Matchar slutet av en rad + + \< +Matchar början av ett ord + + \> +Matchar slutet av ett ord + + ? +Föregående objekt matchas mindre än en gång + + * +Föregående objekt matchas noll eller flera gånger + + + +Föregående objekt matchas en eller flera gånger + + {n} +Föregående objekt matchas exakt n gånger + + {n,} +Föregående objekt matchas n eller flera gånger + + {,n} +Föregående objekt matchas mindre än n gånger + + {n,m} +Föregående objekt matchas minst n gånger, men mindre än m gånger + + + + + +Bakåtreferenser till deluttryck inom parenteser är också tillgängliga med notationen \n. + +Som en särskild bonus för C++ programmerare, finns några sökmallar tillgängliga för typiska mönster. De låter dig till exempel söka efter alla anrop av medlemsfunktioner för ett visst objekt. + +När du väl har startat sökningen genom att klicka på knappen Sök, utförs den av en yttre, asynkron process. Alla objekt som hittas syns i vyn som heter Flerfilsökning. Därefter kan du hoppa till objekt som hittas genom att klicka på dem. Observera att grep söker igenom filerna som är lagrade i filsystemet. Om du har ändrade versioner av dem i editorn, kan du få felaktiga radnummer, eller vissa ogiltiga hittade objekt. Du kan undvika detta genom att spara alla filer innan. + + + + + + + + +Kodkomplettering + +(...ännu inte skrivet...) + + + + + +Skapa nya filer och klasser + +(...ännu inte skrivet...) + + +Redigera mallarna + +(...ännu inte skrivet...) + + + + + + diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/editor-ctags-lookup.png b/tde-i18n-sv/docs/tdevelop/tdevelop/editor-ctags-lookup.png new file mode 100644 index 00000000000..51d3fdd9275 Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/editor-ctags-lookup.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/editor-ctags-menu.png b/tde-i18n-sv/docs/tdevelop/tdevelop/editor-ctags-menu.png new file mode 100644 index 00000000000..db46b512e28 Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/editor-ctags-menu.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/editor-ctags-regenerate.png b/tde-i18n-sv/docs/tdevelop/tdevelop/editor-ctags-regenerate.png new file mode 100644 index 00000000000..8c0349868f0 Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/editor-ctags-regenerate.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/editor-find-menu.png b/tde-i18n-sv/docs/tdevelop/tdevelop/editor-find-menu.png new file mode 100644 index 00000000000..2bffdcf4ea9 Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/editor-find-menu.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/editor-search-doc.png b/tde-i18n-sv/docs/tdevelop/tdevelop/editor-search-doc.png new file mode 100644 index 00000000000..842d539a2b7 Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/editor-search-doc.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/editor-switch-header.png b/tde-i18n-sv/docs/tdevelop/tdevelop/editor-switch-header.png new file mode 100644 index 00000000000..6dcfe8238e1 Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/editor-switch-header.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/empty-ide.png b/tde-i18n-sv/docs/tdevelop/tdevelop/empty-ide.png new file mode 100644 index 00000000000..9ba69ae95c2 Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/empty-ide.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/file-browsers.docbook b/tde-i18n-sv/docs/tdevelop/tdevelop/file-browsers.docbook new file mode 100644 index 00000000000..4f223226be1 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/file-browsers.docbook @@ -0,0 +1,67 @@ + +Filbläddrarna + +På vänstra sidan i huvudfönstret, kan &tdevelop; visa olika sorters listor och träd för att välja filer: + + + +Filträd + +Det visar en trädvy av filhierarkin under projektkatalogen. Om du klickar på en fil, laddas den i editorn. För filer som inte innehåller text, startar KDevelop ett program som kan hantera motsvarande MIME-typ. + +Filträdet uppdateras regelbundet så fort någonting ändras i filsystemet. Om du till exempel skapar nya filer eller kataloger (till och med utanför &tdevelop;), syns det omedelbart i fillistan. På Linux använder den här funktionen FAM-biblioteket. På andra operativsystem, eller via NFS, kontrolleras katalogerna som visas med korta intervall. + +Filträdet döljer filer som oftast inte är intressanta, som objektfiler. I Projektalternativ under Filvyer, kan du anpassa vilka mönster som används för att filtrera bort ointressanta filer (som en lista med jokertecken, åtskilda med kommatecken). + +Du kan dessutom välja att begränsa filträdet så att det bara visar filer som hör till projektet som för närvarande är laddat. Det kan ändras genom att klicka med höger musknapp på trädets rot. + +
+En skärmbild av filträdet + + +En skärmbild av filträdet + +
+ +
+
+ +Filgrupper + +Det här visar filerna som tillhör projektet, grupperade enligt filändelsen. Som i filträdet, kan du redigera en fil genom att klicka på den med vänster musknapp. + +Grupperna som visas i vyn kan ställas in under Filvyer i dialogrutan Projektinställningar. För att anpassa vyn enligt dina behov, är det viktigt att förstå hur filer tilldelas till grupperna. För varje fil, går &tdevelop; igenom grupperna uppifrån och ner. I varje grupp kontrolleras om filnamnet matchar ett av mönstren. Vid en träff, visas filen i gruppen och upprepningen avbryts. Detta klargör att mer generella mönster ska placeras under mer specifika. Till exempel ska en asterisk för gruppen Övriga vara det sista mönstret. + + + +
+ +
+ + diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/file-list-close-selected.png b/tde-i18n-sv/docs/tdevelop/tdevelop/file-list-close-selected.png new file mode 100644 index 00000000000..ecc3bbb19af Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/file-list-close-selected.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/file-list-session-create.png b/tde-i18n-sv/docs/tdevelop/tdevelop/file-list-session-create.png new file mode 100644 index 00000000000..21e6e09a77e Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/file-list-session-create.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/file-list-session-default.png b/tde-i18n-sv/docs/tdevelop/tdevelop/file-list-session-default.png new file mode 100644 index 00000000000..c84d399a172 Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/file-list-session-default.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/file-selector.png b/tde-i18n-sv/docs/tdevelop/tdevelop/file-selector.png new file mode 100644 index 00000000000..61446fcbb3a Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/file-selector.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/filetree.png b/tde-i18n-sv/docs/tdevelop/tdevelop/filetree.png new file mode 100644 index 00000000000..92990d4f9a9 Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/filetree.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/find-in-files.png b/tde-i18n-sv/docs/tdevelop/tdevelop/find-in-files.png new file mode 100644 index 00000000000..fb975bce81d Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/find-in-files.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/folded-tabs.png b/tde-i18n-sv/docs/tdevelop/tdevelop/folded-tabs.png new file mode 100644 index 00000000000..98d8b3d3617 Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/folded-tabs.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/getting-started.docbook b/tde-i18n-sv/docs/tdevelop/tdevelop/getting-started.docbook new file mode 100644 index 00000000000..96049034010 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/getting-started.docbook @@ -0,0 +1,4098 @@ + + + + + + + +BerndPol + Stefan Asserhäll
stefan.asserhall@comhem.se
Översättare
+
+
+ +Komma igång med &tdevelop;: En guidad tur + +När du nu har installerat &tdevelop;s integrerade utvecklingsmiljö, hur ska du använda den på ett bra sätt? Eftersom det här är ett komplext program, kan inlärningskurvan vara något brant, särskilt om du inte redan är van vid den här sortens integrerade utvecklingsmiljö. + +Vi försöker att göra inlärningskurvan mindre brant genom att stegvis gå igenom hur ett enkelt KDE C++ program skapas. Därigenom tar vi en (översiktlig) titt på: + + +En första titt: Elementen i användargränssnittet hos den integrerade utvecklingsmiljön &tdevelop;. +Utföra vissa inledande inställningar. +Hur man skapar ett nytt projekt. + +Några tips om hur man hanterar dokument. +Hur man kompilerar programmet i projektet. +Hur man lägger till klasser och andra saker i projektet. +Vad man ska göra för att avlusa programmet. +Några grundläggande verktyg för att bygga program eller användardokumentation. +Sist men inte minst, snabbtangenter + + +Innan vi börjar, måste ett viktigt begrepp klargöras. + + +Vad kan man förvänta sig? +Som sagt är &tdevelop; en integrerad utvecklingsmiljö. Det betyder väsentligen att &tdevelop; inte själv är ett utvecklingsverktyg, utan snarare ett grafiskt gränssnitt för att enkelt komma åt ett omfattande antal utvecklingsverktyg, där många i själva verket skulle kräva komplicerade tangentbordskommandon om de kördes i en textterminal. + + +Även om &tdevelop; förenklar många av dessa programmeringsuppgifter, återstår ändå mycket av komplexiteten i denna uppsättning verktyg, vilket betyder att för en fullständig förståelse av den integrerade utvecklingsmiljön &tdevelop; måste du ändå begripa dig på verktygen som verkligen körs i bakgrunden. + +Därför kan vi inte lära dig hur man skapar programvara, utan snarare introducera några av de sätt &tdevelop; konstruerats för att förenkla denna process. Om du vill lära dig mer om vad en integrerad utvecklingsmiljö är avsedd för, kan du ta en titt på den historiska översikten Utveckling på &UNIX;, i synnerhet kapitlet Integration av koncept och verktyg. + + +Följande beskrivning gäller normalfallet, där &tdevelop; startar med Förenklat IDEA-fönsterläge. Om du redan har bytt till ett annat användargränssnitt, kanske inte vissa objekt finns enligt beskrivningen, eller beter sig något annorlunda. Om du inte är säker på vilket användargränssnitt som &tdevelop; för närvarande använder, kontrollera i dialogrutan Inställningar Anpassa KDevelop... Användargränssnitt. + + + +Den allra första titten på &tdevelop; + +Här handlar det enbart om vad du ser när du först startar &tdevelop;. Du finner preliminär information om: + + +Vad är det som syns på ytan? +Hur man får hjälp. +Vad finns i menyerna? +Vad är verktygsvyerna till för? + + + +På ytan + +När du startar &tdevelop; allra första gången ser du en skärm som liknar den här: + + + + + + + +Ursprunglig layout i &tdevelop; +(I själva verket är &tdevelop;s ursprungliga fönster större, men elementen du ser är samma.) + + + + + +Arbetsområde och verktygsflikar +I det här ursprungliga fallet använder &tdevelop; det så kallade IDEA-användargränssnittet. Ett maximalt stort arbetsområde omges till vänster, under, och till höger av en serie knappar som fungerar på liknande sätt som flikarna på en skärm med flikar. Om du klickar på en av flikarna visas ett så kallat verktygsvyfönster, som låter dig arbeta med en speciell aktivitet. + + + +Menyer och verktygsrader +Längst upp finns den vanliga menyraden, följd av flera rader med verktygsrader, där vissa är tomma från början. De förses med knappar så fort ett projekt har öppnats för verkligt arbete. + + + +Statusrad +Till sist finns en statusrad längst ner i fönstret, som visar kortfattad information om flera aktiviteter. + + + + +Hur man får hjälp + +Förutom menyn Hjälp, som erbjuder svar på specifika frågor, tillhandahåller statusraden och två olika sorters verktygstips en del snabbinformation. + + +Vad gör det här menyalternativet? +När du placerar muspekaren över ett menyalternativ, visas oftast kortfattad information i statusraden. Även om det i de flesta fall bara upprepar alternativets namn, tillhandahålls ibland ytterligare information om menyalternativets syfte. + + + +Vad är det här objektets namn? +För många objekt visas ett kort verktygstips med funktionsnamnet när du håller markören över det några sekunder. Det är användbart för snabb orientering i verktygsrader eller verktygsvyflikar i IDEA-läge, när den integrerade utvecklingsmiljön har ställts in att bara visa ikoner på dessa knappar. + + + +Vad gör det här objektet? +Mer information är tillgänglig genom utökad hjälp med verktygstips för många objekt i den integrerade utvecklingsmiljön. Välj Hjälp Vad är det här? eller tryck på &Shift;F1, välj därefter objektet som du vill veta mer om med markören i form av ett frågetecken. Du kan också visa vilken meny som helst på detta sätt, och klicka på ett visst menyalternativ (både aktiva och inaktiva) för att se om mer information finns tillgänglig. + + + + +Vad finns i menyerna? + +Det finns tio menyer som kan väljas i menyraden. De flesta förses med alla alternativ när ett projekt väl har öppnats för verkligt arbete, medan andra kräver att att minst ett dokument är öppnat. I korthet tillåter de följande sorters åtgärder. + + +Det här är bara en översikt. För en detaljerad beskrivning av menyerna, se Kommandoreferensen. + + + + +Arkiv + + +Vanliga åtgärder +Detta är ganska standardmässigt. Det tillåter att dokumentfiler skapas, öppnas, sparas, skrivs ut och stängs, samt att avsluta programmet &tdevelop; som vanligt. + + + +Återställ alla +Låter dig återställa alla senaste ändringar som ännu inte sparats, genom att ladda filen igen från disk. Det fungerar för alla filer du redigerar, inte bara de som ingår i ett projekt. + + + + + +Redigera + +Den här menyn är bara användbar om ett dokument är öppnat. + + +Vanliga åtgärder +Tillhandahåller de vanliga åtgärderna för att ångra, göra om och klippa ut, kopiera eller klistra in. Dessutom tillåter den att markera textblock på olika sätt. + + + +Sök och ersätt +Det finns två mycket kraftfull sökfunktioner tillgängliga, Redigera Sök i filer och Redigera Sök-välj-ersätt.... Förutom de vanliga sök- och ersättningsfunktionerna begränsade till det nuvarande dokumentet, kan du dessutom utföra globala sök- och ersättningsåtgärder på en gång. + + + +Avancerad textredigering +Det finns möjlighet att formatera om nuvarande dokument och att automatiskt komplettera delvis inskriven text på olika sätt. + + + + + +Visa + +Som menyn Redigera, är den här menyn bara användbar om ett projekt är öppet. I detta fall är (bland annat) följande alternativ tillgängliga: + + +Navigeringshistorik +Byt fram och tillbaka mellan dokumenten du tittat på, etc. + + + +Felspårning +Navigera till källkodsraderna för fel som stöttes på i den senaste kompilerings- eller byggprocessen. + + + +Åtgärder som hör ihop med editorn +Visa alternativ i menyn Visa styr utseendet och vyn för editorn du använder. När det gäller &kate;-programdelen (den inbäddade avancerade texteditorn) finns följande alternativ tillgängliga: + + + + +Styr radbrytningsbeteendet i dokumentfönstret. + + +Visa eller dölj olika kolumner längs dokumentfönsterkanter: radnummer, ikoner och dessutom bokmärken i rullningslisten. + + +Styr visning av ihopdragna (tillfälligt dolda) avsnitt i en källkodstext. + + + + + + +Projekt + +Allt arbete i &tdevelop; är baserat på projekt, som i grunden samlar källkodsfiler, bygghanteringsfiler och annan information i en projektkatalog. Med den här menyn bestämmer du vilket projekt som används, vilka egenskaper det har och några andra hanteringsalternativ. I synnerhet: + + +Öppna ett projekt +Tillåter att nya projekt skapas, befintliga öppnas och import av projekt från andra miljöer. + + + +Projektalternativ +Gör det möjligt att definiera en hel mängd olika projektegenskaper. + + + +Klasshantering +Lägg till nya klasser i projektet och gå igenom arvträdet för en klass. + + + +Distribuera projekt +Hjälper till att bygga paket för distribution av projektet. + + + + + +Bygg + +Den här menyn handlar helt och hållet om att kompilera och dokumentera projektet. Sålunda är den bara användbar när ett projekt verkligen är öppet. I detta fall tillhandahåller den följande alternativ: + + +Kompilera, länka och köra +Tillåter att hela projektet eller delar av det kompileras och länkas, samt kör programmet inifrån den integrerade utvecklingsmiljön. + + + +Förberedande byggåtgärder +Det här beror i själva verket på byggsystemet som du använder för projektet. I fallet med automake-projekt tillåter de att köra Makefile.cvs och configure enskilt. Det finns också möjlighet att ta bort skapade filer från projektet, på olika nivåer. + + + +Installera programmet +Tillåter att programmet installeras, både i lokala kataloger och i systemkataloger som bara är tillgängliga för systemadministratören. + + + +Dokumentation av programmeringsgränssnittet +Bygg eller ta bort dokumentation av projektets programmeringsgränssnitt baserad på doxygen, enligt definitionen i projektalternativen. + + + + + +Avlusa + +Även om menyn fylls i så fort ett projekt är aktivt, är den förstås bara användbar om själva projektet tidigare har kompilerats med avlusningsinformation (det ställs i huvudsak in under Projekt Projektinställningar...). I detta fall finns följande alternativ tillgängliga: + + +Vanliga avlusningsåtgärder +Den första delen i menyn Avlusa tillhandahåller ett grafiskt gränssnitt till GDB, &GNU;:s symboliska avlusare. Den gör det möjligt att starta och stoppa programmet i avlusaren och stega igenom det på olika sätt. + + + +Brytpunkter +&tdevelop; tillhandahåller flera möjligheter att ange brytpunkter i programmets källkod. Ett är genom användning av menyalternativet Växla brytpunkt. + + + +Avancerad avlusning +Andra alternativ i menyn Avlusa tillåter mer avancerad analys av programmet. Använd &Shift; F1 för att få mer information om deras syfte. + + + + + +Skript + +Du kan anropa diverse skript från menyn för att enklare åstadkomma långtråkiga ändringar av texten i editorfönstret som för närvarande används. Tillgängliga åtgärder beror dock på skriptet som väljes. + + + + +Fönster + +Det här är ganska standardmässigt. Du kan välja alla öppna dokumentfönster samt stänga ett eller flera dokumentfönster här. Du kan till och med välja en uppsättning dokumentfönster som ska stängas på en gång. + +Beroende på editorinsticksprogrammet du använder, kanske det också finns andra menyalternativ. Kate, det förvalda editorinsticksprogrammet, tillåter exempelvis också att editorfönstret delas horisontellt eller vertikalt. + + + + +Verktyg + +&tdevelop; är mycket anpassningsbart. Du kan välja din favoriteditor för dokument samt tillhandahålla externa och insticksverktyg för att utöka funktionerna i den grundläggande integrerade utvecklingsmiljön. Menyn Verktyg avspeglar de flesta av dessa inställningar. + + +Avancerad redigering +Den övre delen av menyalternativ i Verktyg tillhandahålls av editorinsticksprogrammet som används. Du kan välja din favoriteditor via Inställningar Anpassa KDevelop... Editor. Så fort en redigerbar dokumentfil väljes, tillhandahåller den övre delen av menyn Verktyg avancerade redigeringskommandon, specifika för editorn som används. + + + +Hantering av webbsidor +Om det aktiva dokumentfönstret innehåller en HTML-sida (som t.ex. visas från Dokumentation), visar Verktyg ytterligare menyalternativ som tillhandahåller olika sätt att hantera webbsidor. + + + +Övriga verktyg +Oftast finns det en mängd andra alternativ enligt de verktyg som för närvarande är tillgängliga. Använd &Shift;F1 för att få mer information om deras syfte. + + + + + +Inställningar + +Den här menyn låter dig visa och dölja menyraden, verktygsrader och statusraden. Dessutom kan du anpassa genvägar, verktygsrader, underrättelser, editorn och &tdevelop;s allmänna beteende. + + + + +Hjälp + +Här kan du visa KDevelops handbok, slå upp begrepp i diverse dokumentationsfiler, visa manualsidor (det traditionella Unix manualformatet) och infosidor (GNU manualformatet). Dessutom kan du rapportera fel och få viss information om den nuvarande versionen av KDevelop och dess upphovsmän. + + + + + + +Vad är verktygsvyerna till för? + +Med användargränssnittet IDEA-fönsterläge omges arbetsytan av tre rader med knappar, så kallade verktygsvyflikar. De gör att man kan komma åt verktygsvyfönster som åstadkommer viktiga uppgifter under programvaruutvecklingen. Var och en av dessa tre rader verktygsvyer tjänar olika huvudsyften. + + + + +Vänster sida +Ger möjlighet att komma åt verktyg för navigering och urval. + + + + + +Underkanten +Vyerna visar meddelanden som skapas av olika verktyg. + + + + + +Höger sida +Ger möjlighet att komma åt dokumentation och verktyg för källkodshantering. + + + + +Antal verktygsvyflikar som visas kommer att ändras när ett projekt väl har öppnats att arbeta med. Fler verktyg för att arbeta med projektet kommer då att vara tillgängliga. Det verkliga antalet verktygsvyer beror på de insticksverktyg som för närvarande är tillgängliga i &tdevelop;. Du hittar mer om detta ämne i kapitlet Anpassa KDevelop. + +För närvarande, när inget projekt är öppet, och det normala antalet insticksverktyg är laddade, finns följande verktygsvyer. Genom att klicka på en flik öppnas eller stängs verktygsvyns fönster. + + + +Navigering och urval + + +Filväljare +Tillhandahåller en ruta för att navigera i katalogträdet och välja filer att arbeta med precis som du gör i &konqueror;. Att klicka på en fil öppnar den i ett lämpligt redigeringsfönster på arbetsytan. Ett högerklick i filväljarens område gör att en meny för navigering och filhantering visas. + + + +Fillista +Listar filer som för närvarande är öppna. Att klicka på en fil väljer oftast dess redigeringsfönster på arbetsytan. Använd det för att snabbt navigera bland ett stort antal öppna filer. Dessutom ger vyn ett sätt att organisera öppna filer i olika sessioner. Det är särskilt användbart i mycket stora och komplexa projekt, för att hjälpa utvecklaren att koncentrera sig på olika uppgifter. Att högerklicka på en fil gör att en filhanteringsmeny dyker upp. + + + + + +Visning av meddelanden + + +Program +Visar utmatningen från ett program som startas inifrån &tdevelop;. + + + +Jämförelse +Används för att visa innehållet i filer med programfixar. Visar utmatningen från verktyget för visning av skillnader, som startas från menyn Verktyg Visning av skillnader.... + + + +Meddelanden +Visar meddelanden som skapas av byggverktygen som anropas inifrån &tdevelop;, oftast från menyn Bygg. + + + +Sök i filer +Visar listan med objekt som hittas av den allmänna sökfunktionen som startas från menyn Redigera Sök i filer.... Genom att klicka på en rad här, öppnar automatiskt filen på angiven position i ett redigeringsfönster. + + + +Ersätt +Listar resultat av den allmänna sök- och ersättningsfunktionen som startas från menyn Redigera Sök-välj-ersätt.... I den vyn kan du för varje hittat objekt bestämma dig för om du verkligen vill ersätta det eller inte. + + +Den allmänna sök- och ersättningsfunktionen är i själva verket bara tillgänglig efter ett projekt har laddats i &tdevelop;. Annars är verktyget i menyn Redigera Sök-välj-ersätt inte aktiverat. + + + +Konsol +Öppnar ett terminalemuleringsfönster som liknar Konsole i &kde; där du kan använda tangentbordskommandon med ett traditionellt &UNIX; kommandoradsgränssnitt. + + + + + +Dokumentation och källkodshantering + + +Dokumentation +&tdevelop; ger tillgång till en mängd dokumentation via det här verktyget. Här kan du komma åt dokumentfiler, oftast direkt från en annan dator, på ett strukturerat sätt. Det finns flera sätt att direkt komma åt värdefull information från handböcker om &kde; och &Qt;. + + +Se kapitlen Dokumentation och Anpassa dokumentationen för mer information. + + +Kodsnuttar +Verktyget låter dig lagra utvald text permanent för senare användning vid andra redigeringsomgångar. Det är ett mycket flexibelt verktyg, eftersom alla textsnuttar som lagras här kan innehålla en uppsättning variabler, som får sina verkliga värden när en sådan textsnutt infogas i någon annan text. + +Mer information om detta är tillgänglig i kapitlen Kodsnuttar och Ställa in verktyget för kodsnuttar. + + + + + + + +Några inställningar + +Innan vi påbörjar det första exempelprojektet på riktigt, bör vi anpassa &tdevelop;s beteende efter våra behov. Även om de flesta standardinställningarna redan är lämpliga, finns det några ställen som det vore bra att ändra. + + +Om du vill veta mer om inställning av &tdevelop;, ta en titt på kapitlet Anpassa KDevelop. + + + +Några allmänna inställningar + +Klicka på menyn Inställningar för att anpassa &tdevelop; och välj Anpassa KDevelop.... Dialogrutan Anpassa KDevelop dyker upp, och visar följande inställningssida, Allmänt, till höger. + + + + + + + +Den allmänna inställningsdialogrutan i &tdevelop; + + + + +De flesta standardinställningarna är ok, men två av inställningarna kanske du vill ändra. + + +Standardprojektkatalog +När &tdevelop; startas för första gången är den troligen förinställd till din hemkatalog. De flesta föredrar dock en särskild projektkatalog för programvaruutveckling. Ändra textrutan till huvudkatalogen för utveckling som du föredrar. Du kan välja det i katalogträdet om du klickar på knappen Öppna fildialog markerad med en katalogikon, till höger om textrutan. + + +I vårt exempel antar vi (i brist på bättre) en användare som kallas utvecklare. Ersätt därför alltid utvecklare med ditt användarnamn. Vår utvecklare utnyttjar huvudkatalogen /home/utvecklare/projekt för själva utvecklingen. Återigen, ersätt projekt med namnet på din utvecklingskatalog. + +&tdevelop; skapar normalt en egen underkatalog under huvudkatalogen för varje nytt projekt du skapar. Alla filer i ett projekt som till exempel heter Hello kommer i vårt fall att placeras i katalogen /home/utvecklare/projekt/hello. + +Du kan förstås tillfälligt överskrida dessa kataloginställningar om du behöver det. Se kapitlet Programguide för mer information om det. + + +Kompilatorutmatning +Så fort &tdevelop; kompilerar någon källkod, visas meddelanden från byggverktygen, som make, i fönstret Meddelanden längst ner på arbetsytan. Oftast är meddelandena överväldigande ordrika. För att få en bättre överblick av vad som händer, har &tdevelop; ett antal inbyggda sätt att förkorta meddelandena. + + +Beroende på vilken version av &tdevelop; du använder, kan inställningen Kompilatorutmatning vara förinställd till fullständig, vilket gör att allt innehåll i meddelanden visas i sin helhet. Du vill nog ändra det till den mycket mer praktiska inställningen mycket kort. Välj den helt enkelt i kombinationsrutan. + + +Var medveten om att bara den mest grundläggande informationen visas i fönstret Meddelanden med denna inställning. Om fel skulle uppstå när du bygger, behöver du troligen se mer av, om inte hela, meddelandetexten. Meddelandena är dock inte borta. Högerklicka bara i fönstret Meddelanden och välj t.ex. Fullständig kompilatorutmatning i den sammanhangsberoende menyn. + + + + +Initiera sökindex för dokumentation + +Det finns en annan, inte så uppenbar, inställning som helst ska göras innan själva utvecklingsarbetet påbörjas. Det beror på att du regelbundet kommer att vilja göra sökningar i dokumentationen under utvecklingen. &tdevelop; kräver att ett antal sökindex skapas innan en sådan sökåtgärd kan genomföras. Låt oss initiera dem innan vi utför de första stegen i det verkliga arbetet med &tdevelop;. + +Öppna verktygsvyn Dokumentation på höger sida i &tdevelop;s huvudfönster. Öppna där dialogsidan Sök. + + + + + + +Var sökindex ska skapas. + + + +Klicka nu på knappen Uppdatera inställning för att försäkra dig om att de grundläggande sökverktygen är riktigt inställda. En dialogruta ska dyka upp, som säger Configuration file updated. Klicka på Ok för att stänga den. + +När det här är gjort, är &tdevelop; klar att tolka känd dokumentation och bygga några användbara sökindex från den. Klicka på knappen Uppdatera index till höger. Nu dyker dialogrutan Skapar sökindex upp, och visar förloppet när index skapas. + + + + + + +&tdevelop; skapar sökindex för dokumentation. + + + +Det tar en viss tid beroende på dokumentationens storlek och datorns prestanda. Men till sist ändras knappen Cancel till Ok. Klicka bara på knappen för att fortsätta. + + + + +Det bör normalt fungera direkt, men i vissa fall kanske inte programmet htdig som &tdevelop; använder för att utföra fulltextsökning kanske inte är riktigt inställt. Titta i kapitlet Inställning av index för textsökning för mer hjälp i detta fall. + + +För att kunna slå upp specifik information om &kde;:s och &Qt;:s programmeringsgränssnitt, krävs att KDELibs Apidocs fanns när &tdevelop; installerades. Om du har problem med att skapa index eller utföra exemplen med uppslagning av identifierare senare i kapitlet, försäkra dig om att dokumentationen finns och att &tdevelop; kan komma åt den. Se Installera KDevelop för mer information. + + + + + + + + +Starta ett nytt projekt + +Nästan alla program består av dussintals, hundratals eller till och med tusentals filer som måste hållas strukturerade och möjliga att underhålla. För att åstadkomma det, organiserar &tdevelop; utveckling av programvara i projekt. Därför är det första praktiska steget för att utvecklar programvara i &tdevelop; oftast att skapa ett nytt projekt. + +Tursamt nog är det ganska lätt att åstadkomma det. &tdevelop; tillhandahåller verktyget Programguide för att göra det. (Se kapitlet Komma igång: Programguiden för mer information.) + +Nu skapar vi ett enkelt &kde;-programprojekt för att åskådliggöra hur enkelt det kan åstadkommas, och vilka filer och verktyg som &tdevelop; tillhandahåller. Därigenom tar vi en snabbtitt på: + + +Hur man skapar ett nytt projekt med hjälp av programguiden. +Vilka filer som programguiden skapade från början. +Vad som gäller för de ytterligare verktygsvyer som visas ihop med projektet? + + + +Hur man skapar ett nytt projekt + +Låt oss skapa ett ganska enkelt &kde;-projekt, Hello World. Utför bara följande steg: + + + +Klicka på menyalternativet Projekt Nytt projekt... för att starta programguiden. + + + +Dialogrutan Skapa nytt projekt dyker upp. I fönstret längst upp till vänster, Alla projekt, finns ett antal programspråk listade. + + + +Vi vill bygga ett vanligt &kde;-program i C++. Klicka därför på knappen + till vänster om C++ för att visa innehållet. + + + +En uppsättning möjliga programtyper visas. Vi ska bygga ett &kde;-program, och visa därför nästa undernivå via knappen + intill KDE. + + + +Nu erbjuds du ett antal möjliga projektmallar. Gå till början av listan och klicka på Enkelt KDE-program. + +En förhandsgranskning och kort beskrivning av programmet som projektmallen kommer att skapa dyker upp i de två fönstren till höger. + + + + + + + +Välja projektmallen Hello World + + + + + +Vårt program behöver ett namn. Hitta rutan Egenskaper längst ner i dialogrutan och skriv in ett lämpligt namn i inmatningsfältet Programnamn. + +Vi använder Hello i vårt exempel, men du kan använda vad du vill, under förutsättning att namnet bara består av bokstäver, siffror och understreck. Du kommer att märka att programguiden inte accepterar några andra tecken. + + + +Försäkra dig om att textrutan Plats under inmatningsfältet visar namnet på huvudkatalogen för projekt, som vi ställde in i kapitlet Några inställningar ovan. Om den inte gör det, skriv in ett lämpligt katalognamn eller välj ett i kataloglistan som tillhandahålls av knappen med katalogikonen till höger. + +Om allt gick bra, visar raden Slutgiltig plats katalogsökvägen som det nya projektet kommer att använda. Om suffixet (ogiltig) är tillagt, prova med ett annat namn på projektet och/eller försäkra dig om att huvudkatalogen för projekt i textrutan Plats verkligen finns och är skrivbar. + + + +När allting väl är riktigt, aktiveras knappen Nästa på raden längst ner i dialogrutan. Klicka på den för att fortsätta. + + + + + +Det för dig till dialogsidan Projektinställningar. Försäkra dig om att textrutorna Upphovsman och E-post är riktigt ifyllda. Oftast är de förinställda till de allmänna användarinställningarna i &kde; som anges i dialogrutan Lösenord och användarkonto i &kde;:s inställningscentral. Om de inte är det, ändra dem till värden som du föredrar för programmet. + + + + + + + +Ange ditt namn och (valfritt) e-postaddress. + + + + + +Du måste åtminstone ange namn för Upphovsman. Det krävs för inställning av programmets filer. + + +Om allt är riktigt, är knappen Nästa aktiverad. Klicka på den för att gå vidare igen. + + + +Följande dialogsidor, Versionskontrollsystem, Mall för .h-filer och Mall för .cpp-filer, är inte intressanta för tillfället. Hoppa över dem genom att klicka på knappen Nästa, och till sist knappen Slutför. + + + +Det var allt! Programguiden tar över och skapar en uppsättning ursprungliga filer i katalogen Slutgiltig plats du tillhandahöll i steg 2c ovan. + +När fasen att skapa filer är klar, öppnar &tdevelop; ett redigeringsfönster med implementeringsfilen för programmets huvudfönster (som är hello.cpp i vårt exempel), så att du enkelt kan gå vidare. + + + +Ursprungliga projektfiler + +Även om vårt exempelprojekt Hello är ganska enkelt, skapade programguiden en hel mängd källkod och projekthanteringsfiler. Det enklaste sättet att lista dem är att öppna verktygsvyn Filträd längst ner till vänster. Då visas en fillista som liknar den nedan. + + + + + + + +Ursprungliga filer i projektet Hello World + + + + +För att förevisa de huvudsakliga filerna som programguiden skapade, visar vi de flesta kataloggrenarna i verktygsvyn Filträd till vänster. Klicka bara på grenarnas namn i trädet för att se själv. + +Dessutom, enbart i demonstrationssyfte, visar vi också de flesta grenarna i verktygsvyn Hantering av automake till höger, där några av projektets källfiler också listas. + + +Anmärkningar om copyright + +Alla program som uppfyller kraven enligt &GNU; måste ha en copyright. Det finns två nivåer där copyright krävs, i enskilda källkodsfiler och vid programkörning. Programguiden har redan lagt till lämplig copyright- och licensinformation i projektfiler. + + +Copyright på källkodsnivå +Kommer du ihåg dialogsidan Projektinställningar när det nya projektet skapades? Där var du tvungen att ange ditt (utvecklarens) namn och en valfri e-postadress. Titta nu längst upp i redigeringsfönstret hello.cpp som för närvarande visas på arbetsytan. Programguiden skrev in denna text längst upp i licenshuvudet för varje källkodsfil som skapades. + + +/*************************************************************************** + * Copyright (C) 2006 by Ditt Namn * + * ditt.namn@adress.se * + * * + * This program is free software; you can redistribute it and/or modify * + + +Du hittar exakt samma texthuvuden i varje källkodsfil som skapas inne i &tdevelop; (under förutsättning att du använder lämpliga inbyggda verktyg för att skapa filer). &tdevelop; kommer ihåg inställningarna i några mallfiler som du hittar i katalogen templates. + + +Copyright när programmet körs +När väl &kde;-programmet kör, kan användaren visa data Om programmet, oftast via menyn Hjälp. Programguiden tog också hand om det. Om du tar en titt i filen main.cpp hittar du en post som liknar den nedan. + + +int main(int argc, char **argv) +{ + KAboutData about("hello", I18N_NOOP("Hello"), version, description, + KAboutData::License_GPL, "(C) 2006 Ditt Namn", 0, 0, + "ditt.namn@adress.se"); + about.addAuthor( "Ditt Namn", 0, "ditt.namn@adress.se" ); + + +Det lägger till huvudutvecklarens namn (Ditt Namn i vårt fall) och e-postadress på copyrightsidan Om när den visas, och dessutom ange namnet och adressen på sidan Upphovsmän. + + +Så snart du gör betydande ändringar i ett befintligt projekt, försäkra dig om att skriva in ditt namn och e-postadress i copyrightmeddelandet för varje fil du ändrar, och även i copyrightmeddelandet som visas när programmet körs. Var inte tveksam. Du hjälper samfundet för öppen källkod betydligt om du gör det. + + + + +Ursprungliga källkodsfiler + +Programguiden placerade källkodsfiler i underkatalogen src i projektets katalog. Du hittar filerna main.cpp, hello.h och hello.cpp där, som du kanske förväntade dig. + +Det finns ytterligare några filer som du ofta hittar i ett typiskt &kde;-program, närmare bestämt: + + + +hello.desktop innehåller en del metadata som &tdevelop; använder för att hantera och starta programmet. + + + +hi16-app-hello.png och hi32-app-hello.png innehåller några ursprungliga standardikoner, som &tdevelop; använder för att visa programmet. + + + +Till sist, innehåller helloui.rc en beskrivning av programmets användargränssnitt, för närvarande menyerna som programmet tillhandahåller. + + + + + +Ursprunglig programdokumentation + +I projektets underkatalog doc/en hittar du filen index.docbook. Det är en standardmall som kan vara utgångspunkt för att börja skriva lämplig användardokumentation. + + + +Projektfiler och andra filer + +Du har säkert märkt att filerna vi hittills har introducerat anges med fetstil i verktygsvyn Filträd, medan de flesta andra filer inte gör det. Det illustrerar den väsentligt annorlunda användning dessa filer har. Innehållet i filer som anges med fetstil påverkar programmet direkt. Källkodsfiler skapar koden som ska köras, andra filer tillhandahåller nödvändig data eller dokumentation. Filerna måste hanteras och behandlas av projektet under byggetapperna, och kallas därför projektfiler. + +Om du tar en titt på det nedre fönstret i Hantering av automake till höger på arbetsytan ser du också alla projektfiler listade. Verktyget Hantering av automake använder denna kunskap för att ta hand om bygghantering, som vi inom kort kommer att se. + +De andra filerna utan fetstil är mer av stödnatur. De tillhör flera särpräglade klasser, enligt följande: + + + + +Bygghantering av projekt +Dessa filer styr processer för kompilering, installation, skapade av dokumentation, etc. Om projektet använder &GNU; autotools, som vårt exempel, hittar du filen Makefile.am i varje projektkatalog. De är en sorts grundläggande kärnfiler för att bygga projektet, som innehåller styrkommandon, och som behandlas tillsammans med diverse configure-filer under byggetapperna. En sådan byggprocess skapar slutligen Makefile i varje katalog. Från dessa bygger verktyget make slutligen programmets binärfiler. + + +Makefile.am-filerna måste underhållas genom hela utvecklingsprocessen. Tursamt nog, befriar &tdevelop; dig från det mesta av denna börda med verkyget Hantering av automake, som i grunden är ett grafiskt gränssnitt för att underhålla innehållet i Makefile.am-filerna. + +Andra filer som styr projektets byggprocess som för närvarande listas är configure.in.in och subdirs i projektets rotkatalog. De behandlas av några av filerna i den &kde;-specifika administrationskatalogen admin för att skapa fler filer av typen configure och Makefile, och slutligen programmets binärfiler. + + + + +Administrationsfiler för &tdevelop; +&tdevelop; behöver viss egen hanterings- och administrationsdata. Den är placerad i projektets rotkatalog, i vårt exempel hello.tdevelop, hello.tdevelop.pcs, och hello.kdevses. + + +Filen xxx.tdevelop (där xxx anger projektnamnet) är särskilt viktig. Den är huvudsaklig projektfil i KDevelop 3, och behövs om du senare vill ladda projektet i den integrerade utvecklingsmiljön. + + +Försök aldrig ändra, byta namn eller ta bort någon av administrationsfilerna i &tdevelop; själv. Den integrerade utvecklingsmiljön fungerar sannolikt inte på rätt sätt för ditt projekt efteråt. + + + + + +Filer för projektbeskrivning enligt GNU +Några filer i projektets rotkatalog krävs för alla program som uppfyller kraven enligt &GNU;. De är AUTHORS, ChangeLog, INSTALL, COPYING (som innehåller GNU GENERAL PUBLIC LICENSE), INSTALL, NEWS, README och TODO. + + + + + +Andra filer +Några andra filer som ännu inte nämnts är: + + + + +Doxyfile styr hur den projektspecifika dokumentationen av det interna programmeringsgränssnittet skapas. + + + +Katalogen templates innehåller filmallar som den integrerade utvecklingsmiljön använder som grund när nya källkodsfiler skapas. Du kan redigera mallarna när som helst. Det nya innehållet syns i nästa källkodsfil av motsvarande typ som du skapar. + +Du kanske vill justera asteriskerna till höger på raderna med copyright som programguiden infogade i mallfilerna för cpp och h, så att källkodsfilerna som skapas med dem ser mindre aviga ut. + + + +Katalogen po används i översättningssyfte. Den är väsentligen en del av projektfilerna (innehåller Makefile.am), men kommer i huvudsak att användas vid behandling av översättningar. Den är dock inte så intressant för programutvecklaren. + + + +Till sist krävs katalogen admin särskilt av &kde;-baserade program. Den tillhandahåller en mängd filer som är nödvändiga för att underhålla programmets källkod och binärfiler så att de kan integreras på ett riktigt sätt i &kde;-miljön. + + + + + + + + + +Ytterligare verktygsvyer + +Som du märkte visades flera ytterligare verktygsvyer så fort programguiden var klar med det nya projektet. De är bara vettiga under utveckling av projektet, och erbjuder i korthet följande funktioner: + + +Vilka verktygsvyer som verkligen syns beror på insticksprogrammen som för närvarande är laddade i &tdevelop;. Det finns sätt att styra det. Se kapitlet Insticksverktyg för instruktioner. + + + +Navigerings- och urvalsverktyg (vänster sida) + + + + +Bokmärken +Du kan markera vilken rad som helst i en textfil för att snabbt komma tillbaka till positionen varifrån som helst. &tdevelop; kommer ihåg alla sådana bokmärken, även om du senare stänger redigeringsfönstret. Verktygsvyn Bokmärken listar alla bokmärken enligt filnamn och radnummer. Du behöver bara klicka på en sådan post för att öppna motsvarande redigeringsfönster och placera markören på angiven rad. + + + + + +Klasser +Listar klasser, metoder, etc. kända i projektet. Att klicka på en post öppnar lämplig deklarationsfil eller källkodsfil i ett redigeringsfönster och placerar markören på respektive deklaration eller definition. + + + + + +Filgrupper +Sorterar projektets filer i diverse grupper enligt användningsområde, t.ex. Sources (källkod), User Interface (användargränssnitt), Icons (ikoner), Translations (översättningar) och Others (övriga). + + + + + +Variabler +Används av avlusningsverktyget för att visa, utvärdera och bevaka variabler när avlusaren körs. + + + + + + +Meddelanden (längst ner) + + + + +Valgrind +Valgrind är ett analysverktyg för program som körs. Verktygsvyn listar resultatet av en sådan analyskörning. Det används till exempel för att hitta minnesläckor. + + + + + +Säkerhetsproblem +Det finns ett insticksverktyg i &tdevelop; för säkerhetskontroll. Det analyserar källkodsfilen som för närvarande redigeras, för att hitta flera vanliga säkerhetsproblem som kan uppstå i programmet och underrättar användaren om dem i verktygsvyns fönster. + + + + + +Brytpunkter +Verktygsvyn möjliggör att explicit sätta, ta bort och hantera brytpunkter för avlusaren i programmets källkodsfiler. Den används i samband med avlusning. + + + + + +Ctags +Gör det möjligt att skapa databaser med index av identifierare med det populära programmet Ctags. Databasen med taggar kan därefter användas från verktygsvyns fönster för att slå upp alla identifierare som behövs i projektets källkod. Genom att klicka på en rad med ett sådant funnet objekt, öppnar ett redigeringsfönster och placerar markören på motsvarande identifierar i fönstret. + + + + + +Problem +&tdevelop; håller reda på vanliga programmeringsproblem i källkodsfilen som för närvarande redigeras, och underrättar användaren om dem i verktygsvyns fönster. + + + + + + +Källkodshantering (höger sida) + + + + +Hantering av automake +Verktyget Hantering av automake är egentligen ett grafiskt gränssnitt för att hantera innehållet i Makefile.am-filer i varje projektkatalog. Verktygsvyn använder två fönster för att styra arbetet. Det övre fönstret speglar en del av projektets underkataloger, närmare bestämt de som explicit innehåller projektfiler. Varje underkatalog av denna typ måste innehålla en Makefile.am-fil, och kallas ett delprojekt i samband med Hantering av automake. + + +Genom att klicka på ett delprojekt öppnas en lämplig vy av delprojektets projektfiler i det undre fönstret. Filerna som listas här är grupperade enligt sin funktion i Makefile.am för detta delprojekt. + +Hantering av automake är ett mycket kraftfullt verktyg för att hantera projektet och dess delprojekt, samt de roller projektfiler spelar när programmet byggs. Vi tar en snabbtitt på några viktigare delar nedan. Se kapitlet Bygga och projekthantering för en utförligare beskrivning. + + + + + + + + +Några tips om hur man hanterar dokument + +I vårt exempelprojekt lämnade programguiden filen hello.cpp öppen i ett redigeringsfönster, så att du omedelbart kan börja arbeta med den. Vi förutsätter att du har god kunskap om hur man använder en editor, så vi säger inte så mycket om det här. Det finns dock ett antal praktiska funktioner i &tdevelop; för att hantera redigeringsfönster med flikar och dokumenten du arbetar med. Vi ger en kortfattad beskrivning av några, närmare bestämt: + + +Hur man enkelt byter mellan deklarationsfiler och implementeringsfiler. +Hur man snabbt kommer åt deklarationer och definitioner. +Hur man arrangerar om redigeringsfönster efter aktuellt behov. +Hur man håller ett öga på vanliga problem. + + + +Byta mellan deklarationsfiler och implementeringsfiler + +&tdevelop; tillhandahåller ett snabbt och enkelt sätt att byta från en given implementeringsfil (.cpp) till motsvarande deklarationsfil (.h) och vice versa. Högerklicka bara på redigeringsfönstret du vill byta. En meny som liknar den följande dyker upp. + + + + + + +Hur man byter mellan implementeringsfiler och deklarationsfiler. + + + +Leta rätt på alternativet Byt till deklaration/implementation och välj det. &tdevelop; slår upp motsvarande deklarationsfil eller implementeringsfil och öppnar den i ett annat redigeringsfönster. I vårt exempel, om du högerklickade i källkoden hello.cpp, visas filen hello.h och markören placeras där. + +Det finns mer än så. Om du högerklickar inne i en klassimplementeringstext, placerar &tdevelop; markören på motsvarande deklarationsrad i deklarationsfilen. Det omvända fallet, ett högerklick på en deklarationsrad, tar dig till motsvarande klassimplementering. + +Om redigeringsfönstret med filen att byta till redan finns, aktiverar &tdevelop; förstås det och placerar markören i det om det behövs. + + + +Hur man kommer åt deklarationer och definitioner + +Men ifall du arbetar med en källkodsfil och vill slå upp deklarationen eller definitionen av en identifierare du just hittade i den? Jo, det kan åstadkommas lika lätt. Det enda du egentligen måste göra är att högerklicka på identifieraren ifråga. + +Det finns dock två olika fall att ta hänsyn till, nämligen: + +Komma åt externt definierade identifierare, och +hantera projektinterna textobjekt. + + + +Externa deklarationer och definitioner + +Det vanligaste fallet är att du vill slå upp en identifierare som definierats utanför projektet. I &kde;-projekt är sådana identiferare troligen dokumenterade i olika &kde;- eller &Qt;-bibliotek. Om &kde; och &tdevelop; är riktigt installerade, kan &tdevelop; komma åt sådan så kallad dokumentation av programmeringsgränssnitt, och kunna söka efter identifierare av denna typ. + +Låt oss titta på ett exempel. Leta rätt på följande rader i redigeringsfönstret hello.cpp. + +Hello::Hello() + : KMainWindow( 0, "Hello" ) +{ + + +Högerklicka på KMainWindow. En meny dyker upp. Välj där alternativet Sök i dokumentationen: KMainWindow och släpp musknappen. Nu öppnas verktygsvyn Dokumentation, med värdet KMainWindow som sökbegrepp på sidan Sök. Därefter öppnas ett annat redigeringsfönster på arbetsytan som visar KDE:s referenssida i programmeringsgränssnittet för klassen KMainWindow. + +Allt detta ser ut som följer. (Vi öppnade med avsikt redan sidan Dokumentation Sök för att åskådliggöra resultatet av menyvalet.) + + + + + + +Hur man slår upp en externt dokumenterad identifierare. + + + +Du kan lika väl välja Sök efter dokumentation: KMainWindow. I detta fall visas sidan Sökning i verktygsvyn Dokumentation, som oftast tillhandahåller ett urval sidor som innehåller sökbegreppet. (I vårt exempel är det troligen klasserna KMainWindow och KMainWindowInterface.) Välj den du är intresserad av så visas motsvarande dokumentation i ett redigeringsfönster. + + +Om det inte fungerade, finns det förmodligen inget dokumentindex ännu. Initierade du indexet enligt ovan? Om inte, gör det först, och kom sedan tillbaka hit för ett nytt försök. + + + + +Projektinterna deklarationer och definitioner + +Sådana sökfunktioner i extern dokumentation har dock sina begränsningar. Man kan förstås inte slå upp en extern identifierare om den bara definieras och används inne i det aktuella projektet. Men det finns hjälp för det. &tdevelop; kan använda index skapade av programmet Ctags för att söka i projektets källkod. + +Innan vi kan använda det i vårt eget exempelprojekt Hello, måste vi först skapa ett lämpligt index. Det görs i verktygsvyn Ctags längst ner på arbetsytan. + +När du klickar på fliken Ctags öppnas en dialogruta där du hittar följande text i nedre högra hörnet: + + + + + + +Bygg ett Ctags-index med knappen Skapa om. + + + +Klicka på knappen Skapa om och vänta några sekunder. Då ersätts Ingen Ctags-databas hittades med dagens datum. Nu är du redo att slå upp några identifierare i projektets källkod. + + +Datumet intill knappen Skapa om finns där för att påminna dig om index som möjligtvis kan vara för gamla. Så fort du uppenbarligen inte kan slå upp en identifierare i projektet, fundera på att skapa om indexet. I stora projekt kan det ta en avsevärd tid, men du bör ta för vana att skapa om indexet regelbundet efter större ändringar i källkodsfiler. + + +Det finns flera möjligheter att slå upp en identifierare i projektets källkod. + + + + +Använd verktygsvyn Ctags +Det är enkelt. Börja bara skriva namnet på identifieraren som du är intresserad av i inmatningsfältet Uppslagning längst ner till vänster. &tdevelop; försöker komplettera ordet du har skrivit så långt, och visa alla förekomster av identifierare som inleds med teckenföljden. + + +Om du till exempel vill veta om identifieraren Hello används i vårt exempelprojekt, skriv in "H" i inmatningsfältet Uppslagning. &tdevelop; börjar omedelbart arbeta och visar ett liknande resultat: + + + + + + +Hur en identifierare slås upp i verktygsvyn Ctags. + + + +Om du klickar på en av de listade posterna, öppnar &tdevelop; ett redigeringsfönster med filen och placerar markören på lämplig plats. + + + + +Använda en sammanhangsberoende meny i en källkodsfil +Det är bekvämt om du arbetar med en viss källkodsfil. Antag att du studerar filen main.cpp i vårt exempelprojekt Hello. Där hittar du följande rad: + +Hello *mainWin = 0; + +Du undrar kanske vad Hello användes för i programmet. För att ta reda på det, högerklicka helt enkelt på identifieraren Hello. En meny dyker upp som svar på högerklicket, med följande rader nära slutet. + + + + + + +Hämta Ctags-information om en av projektets interna identifierare. + + + +Klicka på det du är intresserad av, låt oss säga Ctags - Gå till definition: Hello, så visar &tdevelop; omedelbart redigeringsfönstret hello.cpp och placerar markören precis framför klassdefinitionen: +Hello::Hello() + : KMainWindow( 0, "Hello" ) +{ + + + + + +Gör en allmän sökning +Det är särskilt användbart om du vill slå upp godtycklig text i projektets källkod. Det finns två möjligheter att starta en allmän sökning inne i &tdevelop;. + + + +Starta en allmän sökning med menyalternativet Redigera Sök i filer.... Eller + + +Direkt använda den sammanhangsberoende menyn med ett högerklick av musen i redigeringsfönstret. + + + +Vi åskådliggör den andra möjligheten i exempelprojektet Hello. Slutresultatet av menyanropet är i stort sett likadant. Låt oss anta att du studerar källkodsfilen hello.cpp och har placerat markören på den första förekomsten av Hello i den. Nu undrar du var ordet Hello användes i projektets källkod, och hur många förekomster det finns. Det är ett typiskt fall då &tdevelop;s allmänna sökfunktion bör användas. + +Medan du nu fortfarande håller pekaren någonstans över Hello i källtexten, klicka med höger musknapp. Den vid det här laget välkända sammanhangsberoende menyn dyker upp, där du ska välja alternativet Flerfilsökning: Hello. + + + + + + +Initiera en allmän sökning inifrån ett redigeringsfönster. + + + +Det gör att följande dialogruta Sök i filer dyker upp (exakt samma som om du använt menynRedigera Sök i filer...). + + + + + + +Ett flexibelt grafiskt gränssnitt för att utföra allmänna sökningar i projektet. + + + +Som du märker är det ett mycket flexibelt verktyg för att starta sökningar med find och grep i hela projektet. Vi går inte in på fler detaljer här, men du kan experimentera på egen hand. För ögonblicket, ska Hello redan vara markerat i fältet Mönster. Om det inte är det, skriv bara in det, och klicka därefter på knappen Sök längst ner till höger. + +Nu öppnas verktygsvyn Sök i filer längst ner, och visar filnamn och rader för alla förekomster av Hello i vårt exempelprojekt. Som vanligt, om du klickar på en rad, går &tdevelop; till den exakta platsen i ett redigeringsfönster på arbetsytan. + +Det finns två särskilt intressanta rader i verktygsvyns fönster. + + +Längst upp hittar du kommandosekvenserna som &tdevelop; i själva verket använde för att utföra sökningen. Det är användbart för att noggrannare styra sökningens resultat. + + + +Längst ner anges antal förekomster som hittas när en sökning utförs. I vårt exempel ska det vara *** 11 träffar hittades ***. + + + +&tdevelop; kommer ihåg sökresultatet under hela sessionen som kör. Om du startar en ny allmän sökning, visas dess resultat med ett annat flikfönster i verktygsvyn Sök i filer. + + + + + + +Arrangera redigeringsfönster + +När du arbetar med stora komplexa projekt råkar du ofta ut för att ha en hel mängd flikar med redigeringsfönster i flikraden. Det gör det nödvändigt att ha särskilda funktioner för att rensa, ordna och gruppera alla redigeringsflikarna. &tdevelop; tillhandahåller flera sätt att göra det. Vi tar en snabbtitt på några av dem. + +Hur man tar bort flikar som inte behövs. +Hur man arrangerar om flikarna. +Hur man visar flera filer samtidigt på arbetsytan. +Hur man redigerar C++ källkodsfiler och deklarationsfiler samtidigt +Hur man grupperar källkodsfiler i utvecklingssessioner. + + + +Städa upp i flikraden + +Om ett enormt antal flikar med redigeringsfönster på något sätt blir dåligt arrangerade, vill man oftast stänga alla flikar som inte längre behövs. &tdevelop; tillhandahåller flera funktioner för att göra det, det vanliga sättet att totalt stänga alla öppna redigeringsfönster, och ett mer specifikt sätt där du uttryckligen kan bestämma vilka som ska stängas och vilka som ska behållas öppna. + + +Stänga flera flikar på en gång +Det här är en sorts totalmetod för att stänga onödiga öppna flikar, som du också kan hitta i andra &kde;-program. Du kan använda menyn Fönster eller högerklicka på en flik, för att antingen + + + +stänga redigeringsfönstret som för närvarande är valt, + + +stänga alla andra öppna redigeringsfönster, eller + + +stänga alla redigeringsfönster på en gång (bara tillgängligt i menyn Fönster). + + + + +Stänga markerade uppsättningar flikar +Sättet att steg för steg stänga enskilda flikar med redigeringsfönster kan bli krånglig om det finns en stor mängd flikar och du fortfarande vill lämna flera öppna. Istället för att leta rätt på och stänga en flik åt gången, erbjuder &tdevelop; möjligheten att välja kandidater i en lista och enbart stänga dem, med ett enda musklick. + + +Låt oss illustrera det med ett enkelt exempel. Låt oss anta att det finns flera filer öppna för redigering i vårt exempelprojekt Hello: hello.cpp, hello.h, helloui.rc, hello.desktop och main.cpp. Du vill nu stänga alla utom hello.cpp och hello.h. Det enklaste sättet att göra det är med verktygsvyn Fillista. Eftersom denna lista med öppna filer är alfabetiskt ordnad, är det enklare att hitta de du vill stänga. Fortsätt enligt följande: + + + +Öppna Fillista, håll nere tangenten Ctrl, och klicka på filerna du vill stänga i listan. + + +Klicka därefter med höger musknapp, medan du håller muspekaren på ett filnamn i listan. + + +Välj Stäng markerade från den sammanhangsberoende menyn i Fillistan. + + + + + + + + +Hur markerade redigeringsfönster kan stängas på en gång. + + +Det är det hela. &tdevelop; har stängt alla redigeringsfönster som du önskade, och du är klar att fortsätta igen med en rensad flikrad. + + + +Hur redigeringsfönstrets flikar kan arrangeras om + +Även om du bara har de redigeringsfönster som verkligen behövs öppna, kanske du ändå vill arrangera flikarna på något logiskt sätt. &tdevelop; erbjuder några vanliga sätt att göra det. I korthet: + + +Grundläggande inställning: Var nya flikar ska placeras + +I normalfall, när ett nytt redigeringsfönster öppnas, infogas fliken till höger om fliken för redigeringsfönstret som för närvarande används. Det kan ändras så att den nya fliken öppnas längst till höger på flikraden. + +Du måste ändra en grundläggande inställning i &tdevelop;s användargränssnitt för att aktivera beteendet. + + +Välj Inställningar Anpassa KDevelop... + + +Klicka på ikonen Användargränssnitt i ikonraden till vänster i dialogrutan. Dialogsidan Användargränssnitt visas nu. + + +Hitta rutan som heter Bläddring med flikar. Ta bort markeringen av kryssrutan på raden Öppna ny flik efter nuvarande flik. + + +Stäng &tdevelop; och starta om det. Nu öppnas flikarna för nya redigeringsfönster längst bort till höger i nuvarande flikrad. + + + +Tyvärr kan inte inställningen ändras i farten under en utvecklingssession. Du måste bestämma dig för vilket beteende du föredrar i det långa loppet, och därefter hålla dig till det, åtminstone till nästa gång &tdevelop; startas. + + +Hur flikarna kan arrangeras om +Eftersom utvecklingsuppgifer varierar med tiden, kommer behov att arrangera om flikarna för redigeringsfönster uppstå då och då. Det kan enkelt åstadkommas i &tdevelop;. + +Klicka bara på fliken du vill flytta med musens mittenknapp och flytta musen lite grand. Markören ändras till ett mönster med korsande pilar. Nu kan du dra fliken, medan du håller nere mittenknappen, till det hoppar på plats där du vill ha det. + + + +Visa flera filer samtidigt + +Vid första påseende finns det aldrig mer än ett enda redigeringsfönster öppet för att arbeta med en källkodsfil. Även om du snabbt kan byta mellan flikar, finns det tillfällen då du vill ha flera filer öppna på en gång, t.ex. för referenssyfte eller för att få bättre kontroll av komplexa uppgifter. För att åstadkomma det, tillhandahåller &tdevelop; ett sätt att dela arbetsytan i olika delar som syns samtidigt, och var och en kan innehålla en egen följd av flikar. + +Det finns två delningskommandon som du antingen kan nå via menyn Fönster, eller genom att högerklicka i ett fönster som hör till en flik eller på själva fliken. Vi beskriver också delningsbeteendet utgående från vårt exempelprojekt Hello. + +Antag att det finns två källkodsfiler öppna i flikraden: hello.cpp and hello.h. Medan du arbetar med källkoden i hello.cpp behöver du ofta titta på deklarationerna i filen hello.h, så du vill ha båda filerna öppna samtidigt. + +För att få det gjort, högerklicka till exempel på fliken för hello.h. Följande meny dyker då upp: + + + + + + +Hur den aktuella arbetsytan kan delas i två delar. + + + +Välj alternativet Dela horisontellt. Det delar arbetsytan på mitten och flyttar redigeringsfönstret som innehåller filen hello.h till den nedre delen. + + + + + + +Arbetsytan har delats horisontellt. + + + +Observera den streckade skiljelinjen mellan de båda fönstren. Du kan ta tag i den med musen och justera redigeringsfönstrens höjd efter dina behov. + +Det finns ett antal saker att lägga märke till. + + +De delade arbetsytorna fungerar helt och hållet på egen hand. Det betyder att nya flikfönster öppnas i arbetsytan som innehåller redigeringsfönstret som för närvarande är aktivt. Du kan också dela alla delområden igen som du önskar, och på så sätt ha så många fönster öppna samtidigt som du behöver. + + + +Varje delning flyttar redigeringsfönstret som för närvarande är aktivt till den nya delarbetsytan, antingen neråt eller åt höger. Övriga flikfönster förblir alla där de var. Du kan inte direkt flytta flikfönster mellan delade områden, utan istället måste du explicit stänga fönstret på en arbetsyta och öppna det igen på en annan, för att gruppera om. + + + +Det finns heller inget direkt sätt att stänga ett delat område igen. Det stängs automatiskt, när väl det sista fönstret med en flik i det stängs. + + + + + +Redigera C++ källkod och deklarationsfiler samtidigt + +Det finns en trevlig användning av den ovannämnda funktionen med delade arbetsytor inbyggd i &tdevelop;. Den låter dig automatiskt ha en källkodsfil, .cpp, och dess tillhörande deklarationsfil, .h, öppna sida vid sida på arbetsytan. Dessutom tillåter den valfritt att arbeta synkront med filerna, på så sätt att vid markering av en deklaration i deklarationsfilen går &tdevelop; till motsvarande definition i källkodsfilen och omvänt. + +Funktionen är dock normalt inte aktiverad. Om du vill använda den i projektet måste du aktivera den. + +Välj Projekt Projektinställningar. Dialogrutan Projektinställningar dyker upp. Välj C++ stöd i ikonraden till vänster, och därefter fliken Navigering på dialogsidan som visas till höger. + + + + + + +Låta C++ källkod och deklarationsfiler visas sida vid sida. + + + +Markera nu rutan Aktivera delning av deklarationsfiler och källkodsfiler. Det aktiverar normalt Automatisk synkronisering och Vertikal. Behåll inställningarna för tillfället och klicka på Ok. + +Stäng nu båda redigeringsfönstren hello.cpp och hello.h i vårt exempelprojekt Hello, om det behövs. Välj därefter hello.cpp igen i projektets underkatalog src. Redigeringsfönstret öppnas som vanligt, men om du nu öppnar tillhörande hello.h, delar &tdevelop; automatiskt arbetsytan och öppnar deklarationsfilens redigeringsfönster precis under fönstret hello.cpp. + +Det finns ännu mer, som vi redan nämnt. Leta till exempel rätt på definitionsraden för följande konstruktor i fönstret hello.cpp +Hello::Hello() + +och placera markören där. Titta därefter i fönstret hello.h nedanför och observera hur &tdevelop; gick till motsvarande deklarationsrad för konstruktorn. + + + + + + +&tdevelop; går automatiskt till konstruktorns deklaration. + + + +Det fungerar också omvänt. Så fort du placerar markören någonstans i en konstruktor i ett redigeringsfönster, går &tdevelop; till motsvarande konstruktor i det andra. + + + +Gruppera källkodsfiler i utvecklingssessioner + +När projektet växer sig större, och utvecklingsuppgifterna blir mer och mer komplexa, tvingar det dig att ofta byta mellan olika, till och med distinkta, uppsättningar filer. Nu är det dags att organisera utvecklingsarbetet i skilda sessioner. Verktygsvyn Fillista i &tdevelop; tillåter dig att göra precis det. + +Längst upp i fönstret för verktygsvyn Fillista finns en verktygsrad där du kan skapa, spara, välja och ta bort sådana sessioner. Använd alternativt undermenyn Visa Sessioner. + +Vi beskriver också funktionen utgående från vårt exempelprojekt Hello. Antag att du alltid vill öppna filerna hello.cpp, hello.h och main.cpp med ett steg, oberoende av vilken utvecklingsuppgift du precis utförde i projektet. Du måste först skapa en ny utvecklingssession, som exempelvis kallas källkod, för att åstadkomma det. + + + + + + +Använda utvecklingssessioner för att komma ihåg filgrupper. + + + +Det är en procedur i flera steg, enligt följande: + + +Skapa en ny session + + +Klicka på ikonen Ny session längst upp till vänster i verktygsvyn Fillista. + + +En dialogruta dyker upp. Ge den nya sessionen ett namn i inmatningsfältet Skriv in sessionens namn, t.ex. källkod. + + +Stäng dialogrutan med Ok. Den nya sessionen anges nu i kombinationsrutan i verktygsraden. + + + + +Den nya sessionen är tom från början. Du måste lägga till filerna du vill ska ingå i den. + + +Öppna alla filer du vill ska grupperas i utvecklingssessionen. I vårt exempel bestämde vi oss för att behålla hello.cpp, hello.h och main.cpp som planerat. + + +När fillistan väl är fullständig, klicka på ikonen Spara session i verktygsraden. Hoppa inte över detta steg. Annars glömmer &tdevelop; bort fillistan. + + + + + +Det är allt. Så fort du väljer sessionen källkod i kombinationsrutan Öppna session, stänger &tdevelop; alla redigeringsfönster som för närvarande är öppna, och öppnar de ihågkomna istället (hello.cpp, hello.h och main.cpp i vårt exempel). + +Du kan definiera hur många sessioner som du vill i samband med projektet. Om du vill ändra sessionernas innehåll, uppdatera bara den ihågkomna fillistan med ett klick på Spara session. Och om du vill bli av med en session, välj den i kombinationsrutan, och klicka därefter på ikonen Ta bort session till höger i verktygsraden. + +Du kan göra ännu mer. Du kan tvinga &tdevelop; att öppna en given förvald session när projektet laddas. Välj bara sessionen i kombinationsrutan på inställningssidan Projekt ProjektinställningarFillista i projektinställningarna. + + + + + + +Låt &tdevelop; öppna en specifik session när projektet laddas. + + + + + + +Hålla ögonen på vanliga problem + +När ett redigeringsfönster som innehåller en källkodsfil öppnas, tolkar &tdevelop; dess innehåll. Det gör det möjligt för den inbyggda problemrapportören att söka i källkodstexten efter några vanliga fel som den känner till. Den kan också informera användaren om olika platser som har markerats för specialbehandling. + +Låt oss åskådliggöra funktionen med vårt exempelprojekt Hello. + + + +Öppna ett editorfönster med källkodsfilen main.cpp. + + + +Försäkra dig om att det fortfarande innehåller följande rad någonstans nära slutet: +/// @todo do something with the command line args here + +Det infogades av programguiden när projektet Hello skapades i kapitlet Starta ett nytt projekt ovan. + + + +Öppna nu verktygsvyn Problem i raden med flikar längst ner. Om allt har fungerat, rapporterar den för närvarande följande uppgift: + + + + + +&tdevelop; informerar om att en källkodsrad innehåller markeringen todo. + + + + + +Formatet på kommandot /// @todo är till för särskild behandling av verktyget för koddokumentation, Doxygen, som vi tar en snabb titt på i avsnittet Dokumentation nedan. Det krävs inte att du använder detta format, de vanligare kommentarerna TODO och FIXME känns också igen. + +Om du till exempel infogar följande kommentarrader med TODO och FIXME i vår exempelfil hello.cpp: +Hello::Hello() + : KMainWindow( 0, "Hello" ) +{ + // set the shell's ui resource file + // TODO check the user interface + setXMLFile("helloui.rc"); + + // FIXME change to a better suited greeting + new QLabel( "Hello World", this, "hello label" ); +} + +ser du dem också angivna i verktygsvyn Problem: + + + + + + +Problemrapporten som anger rader som kräver uppmärksamhet i nuvarande fil som redigeras. + + + +Observera övriga flikar i verktygsvyn Problem, i synnerhet Fixa och Uppgift. Om du öppnar den ser du alla rader markerade med FIXME och TODO som &tdevelop; hittills har hittat i sessionen. Informationen om TODO set för närvarande ut på följande sätt: + + + + + + +Problemrapporten har samlat information om TODO. + + + +Fliken Fel listar dock inte varje kodningsfel som du gör. Det arbetet utförs av andra verktyg under byggprocessen. Här hittar du information om några vanliga programmeringsmisstag, som troligen annars skulle förbli obemärkta och troligen med svårighet hittas via komplicerade avlusningssessioner. + +Du kommer att märka att problemrapportfunktionen i &tdevelop; är ett mycket värdefullt verktyg, så kontrollera verktygsvyn Problem regelbundet under utvecklingsprocessen. + + + + +Hur man kompilerar ett projekt + +Att kompilera ett projekt i &tdevelop; kräver flera inställningssteg och därefter att programmet byggs. Allt detta är tillgängligt via menyn Bygg. + + + + + + +Att bygga ett projekt kräver flera steg. + + + +För närvarande är vi bara intresserade av menyns övre del. Alternativen är där sorterade efter hur viktiga de är. Därför är kommandot som oftast behövs längst upp, alternativet Bygg projekt som gör att hela projektet initieras, kompileras och länkas efter behov. Andra alternativ finns för att kompilera valda delar av projektet, eller bara en enstaka fil, för att utföra flera olika initieringssekvenser, eller för att installera det färdiga programmets binärfiler. + +För tillfället koncentrerar vi oss på flera funktioner som &tdevelop; tillhandahåller för att ställa in projektet, initiera, bygga och köra programmet. I allmänhet omfattar det: + + +Ta en snabb titt på den grundläggande byggcykeln. +Titta på några enkla sätt att anpassa ett projekt. + + + +Den grundläggande byggcykeln + +När man väl har skapat ett nytt projekt, vill man oftast kontrollera om allt hittills har gått bra. Det omfattar att bygga projektet för första gången och testköra programmet, vilket vi ska göra nu. För att kompilera ett projekt för första gången finns det flera steg att utföra, som vi tar en snabb titt på: + +Hur projektet initieras för att bygga det första gången. +Hur de ursprungliga inställningarna görs. +Hur man bygger projektet. +Hur programmet körs inifrån &tdevelop;. + + + +Beskrivningen förutsätter att projektet är baserat på &GNU; autotools, vilket aktiverar Hantering av automake i &tdevelop;, liksom vårt exempelprojekt Hello. Om du skapar en annan projektttyp, t.ex. för &Qt;-baserad projekthantering med QMake, finns andra funktioner tillgängliga i menyerna, eller kanske inte några av dem. Du måste använda respektive leverantörs dokumentation om projekthantering och hur man bygger projekt i dessa fall. + + + +Initiera projektet så att det kan byggas + +När programguiden skapade vårt exempelprojekt Hello, lämnade den det i ett sorts orört utgångstillstånd. Verktygskedjan i &GNU; autotools kräver att flera initieringssteg utförs innan programmet verkligen kan kompileras och länkas. Om du försöker bygga ett projekt när det är i detta utgångstillstånd, t.ex. genom att välja Bygg Bygg projekt eller trycka på funktionstangenten F8, får du följande varning: + + + + + + +Försöker bygga ett obehandlat projekt baserat på automake. + + + +Du kan klicka på knappen Kör dem, vilket gör att &tdevelop; automatiskt försöker köra alla inställningssteg som krävs innan programmet kompileras och länkas. Men vi ska titta på de inledande stegen i följd, så avbryt dialogrutan genom att klicka på Kör inte. + +Som redan har nämnts utförs kompilering och länkning av programmet via menyn Bygg. Visa den och välj Kör automake och besläktade program. + + + + + + +Starta en grundläggande initieringskörning. + + + +&tdevelop; öppnar nu verktygsvyn Meddelanden längst ner och visa en följd av meddelanden som skapas av flera olika byggverktyg. Om allting gick bra, ska den sista raden lyda: *** Lyckades ***. + +Om du rullar tillbaka längst upp, hittar du kommandoraden som &tdevelop; utförde för att anropa verktygen i bakgrunden: + +cd '/home/devel/projects/hello' && \ +WANT_AUTOCONF_2_5="1" WANT_AUTOMAKE_1_6="1" gmake -f Makefile.cvs + + +Det säger att &tdevelop; först bytte till vårt exempelprojekts rotkatalog. Därefter skapades en särskild miljö, som talar om för byggsystemet vilka versioner av autoconf och automake som används för initieringen. Till sist instruerades byggverktyget (&GNU; gmake i detta fall) att behandla byggfilen Makefile.cvs. + +Byggfilen skapades automatiskt när projektet Hello skapades.Den innehåller alla kommandon som behövs för att initiera projektet rätt, så att programmet som skapas kan köras i &kde;. I synnerhet skapar den skripfilen configure som är nödvändig för att utföra nästa inställningssteg. + + + +Inledande konfiguration av Hello + +Att konfigurera betyder att anpassa byggprocessen till egenheter hos hårdvaran och programvaran i systemet. Det är ett grundkrav i byggprocesser baserade på &GNU; autotools, som du troligen redan vet. + +Du kan först beordra en konfigureringssekvens när den grundläggande initieringen av automake har avslutats med lyckat resultat, eftersom de nödvändiga configure-filerna inte är tillgängliga förrän efter den inledande körningen. När den är gjord, välj menyalternativet Bygg Kör configure för att påbörja konfigureringssekvensen. + +&tdevelop; öppnade verktygsvyn Meddelanden igen om det behövdes, och listade meddelanden från körningen av configure i den. Om allt gick bra, är de sista meddelandena Good - your configure finished. Start make now (som skrevs ut av configure) följt av meddelandet *** Lyckades *** från &tdevelop;. + +Längst upp i fönstret Meddelanden hittar du åter kommandoraden som &tdevelop; använde för att starta konfigurationen: + +mkdir '/home/devel/projects/hello/debug' && \ +cd '/home/devel/projects/hello/debug' && \ +CXXFLAGS="-O0 -g3" "/home/devel/projects/hello/configure" --enable-debug=full + + +Du kan se flera intressanta detaljer i kommandona. + + + + + + + + + + + + + +För det första använder &tdevelop; en särskild underkatalog i projektets katalogträd för byggprocessen. Byggkatalogen debug (som visas till vänster) speglar den grundläggande projektstrukturen och innehåller en mängd byggrelaterade filer, som flera configure-baserade filer och dessutom en Makefile i varje underkatalog. + + +I det närmast följande avsnittet Anpassa projektet ger vi en kortfattad beskrivning av motiven till att &tdevelop; använder separata byggkataloger i fall som dessa. För ögonblicket är det nog att veta att &tdevelop; skapade katalogen debug (om det behövdes) innan anropet till configure, och att skriptet configure skapade delstrukturen och alla Makefile i den. + + +Därefter, anropade &tdevelop; skriptet configure inifrån byggkatalogen debug i vårt projekts rotkatalog med en särskild miljö, där argumenten CXXFLAGS="-O0 -g3" senare talar om för &gcc;-kompilatorn att den inte ska optimera binärfilerna som skapas, och att den ska inkludera fullständig avlusningsinformation i dem. + + +Till sist anropas skriptet configure med alternativet --enable-debug=full som talar om för det att skapa varje Makefile så att efterföljande kompilering och länkning får all nödvändig avlusningsinformation inbyggd och användbar. + + + + + + +Alla inställningarna kan anpassa för varje projekt. Du kommer att lära dig mer om det i kapitlet Projekthantering. + + + +Bygga projektet + +När du väl har kommit så här långt är du klar att verkligen bygga, dvs. kompilera och länka programmet. Genom att titta i menyn Bygg, ser du att det finns tre sådana kompileringsalternativ att välja bland. + + + + + + +Kommandon i &tdevelop; för att bygga binärfiler. + + + +Nerifrån och uppåt, finns det: + + +Kompilera fil: Det kompilerar källkodsfilen i redigeringsfönstret som för närvarande är öppet. Används oftast för snabb kontroll av fel. + + +Bygg aktivt mål: Det används i huvudsak i samband med Hantering av automake, som vi tar en snabb titt på nedan. + + +Bygg projekt: Det är vad vi nu är intresserade av. Det går igenom hela projektet, kompilerar och länkar filer där det är nödvändigt. + + + +Det kan vara intressant att se vad som händer med katalogen debug som skapades under föregående körning av configure. Därför är det bäst att behålla den öppen med alla underkataloger synliga, som visas ovan. Välj därefter Bygg Bygg projekt (eller tryck på tangenten F8) för att påbörja byggsekvensen. Som tidigare öppnas verktygsvyn Meddelanden längst ner och listar resultatet av byggkörningen. Dessutom dyker några filer upp i underkatalogträdet debug. + +Det finns inte många källkodsfiler i vårt exempelprojekt Hello, alltså kommer fönstret Meddelanden bara innehålla några få rader. Leta återigen rätt på kommandoraden ovanför dem som &tdevelop; skickade till skalet i bakgrunden. + +cd '/home/devel/projects/hello/debug' && \ +WANT_AUTOCONF_2_5="1" WANT_AUTOMAKE_1_6="1" gmake -k + + +&tdevelop; bytte till debug-delträdets rot, vilket inte borde vara förvånande, för att köra filen Makefile som finns där. En särskild delmiljö skapades igen, som tidigare i initieringssteget, i vilken verktyget gmake anropades. + +Observera väljaren -k i anropet av gmake. Den tvingar byggprocessen att fortsätta till sitt slut, även om fel skulle uppstå. Det är vettigt eftersom &tdevelop; kommer att lista alla felmeddelanden i fönstret Meddelanden. Om det finns några, dra nytta av fördelarna med den integrerade utvecklingsmiljön: klicka bara på felmeddelandet i fönstret Meddelanden så går &tdevelop; till det exakta stället där felet uppstod i källkodsfilen. + +Och vad hände inne i delträdet debug? Inte så mycket. Några få filer dök upp i grenarna doc/en och src, i synnerhet filen hello i /home/devel/projects/hello/debug/src/. Den är, till sist, programmets binärfil som vi sökte. Allt som är kvar att göra i vår inledande kontroll av projektet är att köra hello. + + + +Köra programmet + +Det finns inte några extra steg inblandade för att köra det nya programmet hello. Välj antingen Bygg Kör program, tryck på Skift F9 eller använd knappen Kör program i byggverktygsraden som visas nedan. + + + + + + +Köra ett program från Byggverktygsraden. + + + + +Det är allt. &tdevelop; startar nu det nya programmet i ett särskilt terminalfönster som verktygsvyn Program längst ner. Där visas kommandot som &tdevelop; utförde för att köra programmet på raden längst upp: + +./hello + + +som visar att den integrerade utvecklingsmiljön har en uppfattning om var programmet som ska köras finns. Denna uppfattning kan ställas in på många sätt. Se mer om detta i kapitlet Projekthantering. + +Raden ./hello följs troligen av ett varningsmeddelande. Ignorera det för tillfället. Det förhindrar inte att vårt program hello kör. + + + + + + + +Vårt ursprungliga Hello-program. + + + + +Stäng programfönstret Hello som vanligt. Om inga fel uppstod rapporterar &tdevelop; det som *** Avslutade normalt *** i verktygsvyn Program. + + + + +Anpassa projektet + +Det finns åtskilliga sätt att hantera ett projekt i &tdevelop;. Beteendet kan ställas in för varje projekt, och är mest intressant för avancerade utvecklare. Det finns dock några få projektspecifika inställningar som du bör känna till ända från början. + + +Varför är bygginställningar användbara? + +Var beteendet hos skriptet configure ska definieras. + +Några överväganden om hur make ska köras. + +Var ska det körbara programmet finnas, och vad ska det heta? + + + +Bygginställningar + +När vi körde skriptet configure i avsnittet Inledande konfiguration av Hello ovan, noterade vi att &tdevelop; hade skapat den särskilda underkatalogen debug för detta syfte. I detta avsnitt behandlar vi kortfattat några konsekvenser av denna funktion. + +För det första använder &tdevelop; inte nödvändigtvis särskilda byggkataloger skilda från källkoden. Förberedelser för att automatiskt använda särskilda bygginställningar görs via de mallar som programguiden använder när ett nytt projekt skapas. + +För att ta reda på vilka bygginställningar som för närvarande är tillgängliga, ta en titt på menyn Projekt Bygginställning. + + + + + + +Det finns olika bygginställningar tillgängliga i projektet. + + + +I detta fall, som i vårt exempelprojekt Hello, finns det tre olika tillgängliga bygginställningar. I andra fall kanske det bara finns en sådan bygginställning från början, nämligen default. + +Bygginställningen som för närvarande används har en bock till vänster. Välj helt enkelt menyalternativet för att byta till en annan bygginställning. + +Låt oss nu ta en snabbtitt på vad bygginställningarna tillhandahåller. + + + +debug + +Du bör använda bygginställningen som standard under utvecklingsprocessen. Den byggs separat från källkodskatalogerna i den särskilda underkatalogen debug, dvs. alla objektfiler, extrafiler och körbara filer placeras i dess underkataloger istället för motsvarande kataloger i projektets rot. Skriptet configure får väljaren --enable-debug=full och argumentet CXXFLAGS="-O0 -g3" talar om för &gcc;-kompilatorn att inte optimera koden och att infoga omfattande avlusningsinformation i de binärfiler som skapas. + + + + +optimized + +Den här används för att bygga det slutliga C++ programmet. Den byggs separat från källkodskatalogerna i den särskilda underkatalogen optimized. Skriptet configure har inga särskilda förinställda väljare, medan CXXFLAGS="-O2 -g0" talar om för &gcc;-kompilatorn att optimera koden och inte infoga avlusningsinformation i de binärfiler som skapas. + + + + +default + +Beteckningen default anger standardinställningen när ett program byggs i en terminal med t.ex. &GNU; byggverktygen configure och make/gmake på kommandoraden. I motsats till debug eller optimized används ingen särskild byggkatalog. Programmet byggs istället normalt i källkodskatalogerna. Inga särskilda konfigurationsväljare är fördefinierade. När programmet byggs och körs används de underliggande verktygens standardinställningar (t.ex. &gcc;, etc.). + + +Tänk efter ordentligt innan du bestämmer dig för att använda bygginställningen default. + +Den kan inte användas parallellt med de särskilda inställningarna debug och optimized. Alla byggåtgärder som använder default gör att de båda andra bygginställningarna blir oanvändbara. Det beror på några egenheter hos processen som skapar Makefile med mekanismerna i automake och autoconf, som inte är enkelt att få bukt med. + + + + + +Varför vill man då använda olika bygginställningar överhuvudtaget, när de till och med inte verkar fungera tillsammans? Svaret är att det förenklar cykler med redigering, kompilering och avlusning. De extra avlusningsinstruktionerna som infogas i binärfilerna samt alla de subtila strukturändringarna som görs av programkoden under optimering påverkar beteendet när det körs för programmet som skapas. När den logiska strukturen hos en viss rutin verkar vara riktig, borde du testa om den fortfarande beter sig riktigt under mer realistiska förhållanden. + +Det är då bygginställningarna i &tdevelop; gör nytta. Eftersom byggobjekt och körbara filer i varje särskild byggkatalog, och byggkommandon, hålls åtskilda från varandra behöver bara ändringar av källkod hanteras när du byter mellan bygginställningarna. + +Istället för att rensa och kompilera om allt från början med andra inställningar, behöver du alltså bara byta från bygginställningen debug till optimize, kompilera ändringarna av källkoden och därefter starta om programmet under dessa förhållanden. Om något olämpligt visar sig, byt helt enkelt tillbaka till debug, och fortsätt omedelbart arbeta där. + +En sista anmärkning: Många bygginställningar kan anpassas. Du kan till och med definiera dina egna bygginställningar om utvecklingsprocessen kräver det. Vi tar en snabb titt på dessa möjligheter i nästa avsnitt. + + + +Konfigurationsalternativ för projektet + +Att konfigurera programmet riktigt är livsviktigt i byggkedjan baserad på &GNU; autotools. Det styrs ofta av väljare för skriptet configure och/eller särskilda argumentinställningar i miljön innan configure körs, som t.ex. CXXFLAGS i vår tidigare beskrivning. + +Du kan ställa in de flesta konfigurationsalternativen för ett givet projekt från &tdevelop;s grafiska gränssnitt. Välj Projekt Projektinställningar och därefter ikonen Inställning av configure på ikonraden till vänster i dialogrutan. Sidan Inställning av configure som innehåller flera flikfönster visas till höger. + + + + + + +De flesta inställningarna av configure kan anges här. + + + +Som du märker, finns det ett ganska stort antal alternativ som kan anges i dialogrutan. För tillfället tittar vi kortfattat på ett fåtal av dem med avseende på vårt exempelprojekt Hello. För detaljerade instruktioner, se kapitlet Konfigurera projekt. Om du vill veta mer om betydelsen hos olika argument som kan anges, slå upp info make i en terminal (eller info:make inne i &konqueror;) och titta i avsnittet Implicit Rules Implicit Variables. + +Det finns flera inställningsfönster med flikar i dialogrutan, där det första, Allmän, visar ofta använda inställningar, medan de övriga är ganska kompilatorspecifika. Under alla omständigheter, styrs dock det verkliga innehållet i dialogrutorna av angiven bygginställning. + +Du väljer bygginställningen vars inställningsalternativ ska definieras i kombinationsrutan Inställning längst upp i dialogrutan Inställning av configure. + + + + + + +Välj bygginställning vars inställningar ska definieras. + + + +Välj nu en annan bygginställning i kombinationsrutan och observera hur innehållet i t.ex. textrutorna Configure-argument och Byggkatalog ändras enligt inställningarna vi nämnde för bygginställningslistan ovan. + + +Allmänna konfigurationsinställningar + +Följande inställningsalternativ kan definieras på sidan Allmänt i dialogrutan: + + + + +Configure-argument +Detta är alternativen som &tdevelop; tilldelar till anropet av skriptet configure i byggprocessen. Se exemplet i avsnittet Inledande konfiguration av Hello ovan. + + + + + +Byggkatalog +Detta är underkatalogen i nuvarande projektrot, där &tdevelop; placerar alla filer som skapas under byggprocessen. Idealiskt borde det motsvara namnet på bygginställningen som används, men du har möjlighet att använda vilket namn du vill, under förutsättning att det är annorlunda än alla andra byggkataloger. + + + + + +Övre källkatalog +Du behöver inte den här ofta. Dess standardvärde är projektets rotkatalog, och den behöver bara definieras om om projektets källkod är placerad någon annanstans. + + + + + +C/C++ preprocessorargument(CPPFLAGS) +Skriv in särskilda instruktioner för preprocessorn här. &tdevelop; använder det för att skapa en tillfällig miljö innan själva byggverktyget anropas. Se återigen exemplet i avsnittet Inledande konfiguration av Hello ovan hur det görs. + + + + + +Länkargument (LDFLAGS) +Det här är extra information för länkarverktyget ld, om var det ska leta efter ytterligare bibliotek. Den används också för att skapa den tillfälliga byggmiljön. + + + + + +Miljövariabler +Här kan du definiera ytterligare variabler som ska ställas in i den tillfälliga byggmiljön som &tdevelop; skapar innan respektive byggverktyg anropas. Återigen, måste du definiera miljövariablerna för varje bygginställning där de ska användas. + + + + + + +Kompilatorspecifika inställningar + +Övriga flikar på dialogsidan Inställning av configure är till för kompilatorspecifika inställningar. De är strukturerade på liknande sätt, så det är tillräckligt att snabbt titta på sidan C++. + + + + + + +Välj kompilator som &tdevelop; ska använda och dess arbetsomgivning här. + + + +Här kan du ställa in följande: + + + + +C++ kompilator +Välj den C++ kompilator som &tdevelop; normalt ska använda i kombinationsrutan. Den listar dock bara de kompilatorer som &tdevelop; redan känner till. + + + + + +Kompilatorkommando (CXX) +Bara för experter. Det behövs bara om en annan C++ kompilator än standardkompilatorn används. Skriv in namnet som den anropas med här. + + + + + +Kompilatorargument (CXXFLAGS) +Här kan du skriva in eventuella extra alternativ som &tdevelop; ska skicka till kompilatorn (via Makefile). Vissa alternativvärden är förinställda enligt bygginställning som valts med kombinationsrutan Inställning. + + +Observera att många vanliga kompilatoralternativ kan väljas i en dialogruta som dyker upp när du klickar på knappen ... till höger om textrutan. + + + + + + +Använd dialogrutan för att definiera beteendet hos &GNU; C++ kompilatorn. + + + +Vi valda med avsikt fliken Optimering här. Observera att alternativet Ingen optimering är förvald (enligt det förinställda alternativet -O0 i bygginställningen debug). + +Tyvärr kan du för närvarande inte välja alla alternativ från dialogrutan Exempelvis alternativet -g3 som används av bygginställningen debug måste ändras för hand om det någonsin behövs. + + + + + + +Hur programmet ska byggas av make + +Du kan dessutom anpassa sättet som &tdevelop; anropar verktyget make när projektet byggs. Välj Projekt Projektinställningar och därefter ikonen Bygginställningar till vänster i dialogfönstret. Dialogsidan Bygginställningar visas då till höger. + + + + + + +Definiera hur &tdevelop; anropar verktyget make. + + + +Det finns inte så mycket att göra här just nu. Den enda intressanta inställningen i de flesta fall är alternativet Avbryt vid första fel. Du kommer att märka att den är inaktiverad i de flesta projekt. Den motsvarar väljaren -k i anropet till gmake som vi hittade den första gången som exempelprojektet Hello byggdes. + +Det är vettigt i en integrerad utvecklingsmiljö som &tdevelop;, där alla felmeddelanden under byggningen lagras. Efter byggprocessen kan du enkelt gå till vilket felmeddelande som helst i verkygsfönstret Meddelanden. Använd Visa Nästa fel och Visa Föregående fel eller tangenterna F4 och Skift F4 för att göra det. &tdevelop; aktiverar automatiskt redigeringsfönstret för källkodsfilen i fråga och placerar markören på den felaktiga raden. + +Om du å andra sidan hellre vill att byggningen ska stoppas så snart ett fel uppstår, markera alternativet Avbryt vid första fel i dialogrutan. &tdevelop; anropar du gmake utan väljaren -k. + + + +Hur det körbara programmet startas + +När byggningen väl är färdig, kan du enkelt köra programmet inifrån &tdevelop;. Använd antingen Bygg Kör program, snabbtangenten Skift F9 eller knappen Kör program i &tdevelop;s byggverktygsrad. + + + + + + +Kör programmet här. + + + +Men var finns det körbara programmet som ska köras? Hur får man &tdevelop; att lägga till väljare i anropet? Eller hur kan man få programmet att köras i en egen terminal för att testa interaktivt beteende i terminalen? + +Allt det kan lösas genom att ställa in några projektorienterade köralternativ i &tdevelop;. Välj Projekt Projektinställningar och därefter ikonen Körinställningar i ikonraden till vänster i dialogfönstret. Dialogsidan Körinställningar visas till höger. + + + + + + +Definiera var och hur programmet ska köras. + + + +Det finns en hel del som kan ställas in i dialogrutan. Det finns egentligen fyra grupper av inställningsalternativ. + + + + +Katalog +Talar om för &tdevelop; vad det ska förutsätta att det körbara programmet kallas. Det finns tre möjligheter att välja bland. + + +Observera dock att bara rotkataloger definieras här. &tdevelop; letar oftast efter det körbara programmet i någon underkatalog som anges i följande grupp av inställningar. + + + +Kör från katalogen där det körbara programmet senast byggdes. Det är normalvärdet. Du kan behålla det för ögonblicket. + + + +Kör från byggkatalogen enligt bygginställning som för närvarande är vald. Katalognamnet ställdes in på dialogsidan Allmän. + +Detta är rotkatalogen där &tdevelop; ska hitta det körbara programmet. Den ändras automatiskt enligt valet du gjorde i menyn Projekt Bygginställningar. Prova det. + +Förutom att alltid köra det senast byggda körbara programmet enligt inställningen ovan, låter det dig byta program att köra genom att helt enkelt välja en annan bygginställning i menyn Projekt. + + + +Kör programmet som hittas i en fast egen katalog. Återigen är det bara rotkatalogen där själva den körbara filen finns. + +Använd det om du t.ex. vill köra programmet som verkligen har installerats istället för versionen som finns i projektkatalogen. + + + + + + +Program +Detta talar om relativ plats och namn på programmet som verkligen ska anropas för &tdevelop;. Det är relativt i förhållande till rotkatalogen som definieras i inställningsgruppen ovan. Dessutom kan du definiera alla argument som &tdevelop; ska skicka till programmet när det verkligen anropas. + + + +Om textrutan Huvudprogram lämnas tom, används inställningen av aktivt mål i Hantering av automake. Även om detta är en expertinställning, är en vanlig orsak till problem att detta inmatningsfält har lämnats tomt. Kontrollera inställningen om &tdevelop; inte verkar anropa det körbara program du ville. + + + + + +Miljövariabler +&tdevelop; skapar en särskild skalmiljö att köra programmet i. Definiera eventuella extra miljövariabler i denna grupp av inställningar. + + + + + +Diverse +Ytterligare två kryssrutor finns längst ner på dialogsidan. + + + + +Kompilera automatiskt innan körning är oftast praktiskt. &tdevelop; kontrollerar om projektet har ändrats och utför nödvändiga konfigurerings- och byggsteg åt dig så snart du ger kommandot att köra programmet. + +Avmarkera det om du vill köra en programversion tidigare än den senaste ändringen. + + + +Starta i extern terminal är intressant om du vill prova in- och utmatningsbeteende för program utan grafiskt gränssnitt i ett terminalprogram. Det är normalt inte markerat, så &tdevelop; startar programmet i ett eget fönster utan in- och utmatningsmöjlighet via en terminal. + + + + + + + + + +Hur ett projekt kan utökas: Hantering av automake + +(ännu inte skrivet ...) + + +En snabbtitt på maskineriet i automake + +(ännu inte skrivet ...) + + + +Hur man placerar ikoner i en separat katalog + +(ännu inte skrivet ...) + + + +Hur man lägger till nya klasser + +(ännu inte skrivet ...) + +Var försiktig när du väljer filnamn för klasser. Det är extremt svårt att ändra dem senare. + + + +Vad finns i ett delprojekt? + +(ännu inte skrivet ...) + + +Koncentrera dig på ditt arbete: Det aktiva målet + +(ännu inte skrivet ...) + + + + +Några steg för att strukturera om ett projekt + +(ännu inte skrivet ...) + + + + + +Hur man avlusar + +(ännu inte skrivet ...) + + + + +En anmärkning om projektdokumentationen + +&kde;-projektet använder docbook för att skapa projektets handbok (dvs. användarmanualen). Hanboken är tillgänglig via programmets menyrad genom att välja Hjälp Handbok programnamn när programmets grafiska gränssnitt visas i &kde;. Efter att projektet har byggts, visas handboken i &kde;:s Hjälpcentral. Den ska förklara för användaren hur programmet fungerar, vilka huvudfunktionerna är och hur det anpassas. Den ska också förklara avancerade funktioner, om några sådana finns. +Alla &kde;-baserade mallar i &tdevelop; har underkatalogen doc, som innehåller mallen index.docbook i katalogen en, för att komma igång med att skriva användarhandboken. Du redigerar index.docbook i &tdevelop;, och börjar med att ändra personlig information som namn, e-post, etc. Titta på kommentarerna i filen och försök följa anvisningarna för att påbörja programdokumentationen. Bygg om projektet för att se ändringarna i Hjälpcentralen. +Du måste installera projektet med Bygg Installera eller Installera (som systemadministratör) i &tdevelop; för att kunna se handboken i hjälpcentralen. +Du hittar mer information om syntaxen för docbook på &kde;:s webbplats för dokumentation. + + + +Sist men inte minst, snabbtangenter + +(ännu inte skrivet ...) + + + +Hur går man vidare + +(ännu inte skrivet ...) + + +Problem som man ofta stöter på + + +Kapitlet I korthet +Sidor med vanliga frågor +Forum +E-postlistor + + + + +Arbeta med projekt + +(ännu inte skrivet ...) + + +Använda befintliga &tdevelop;-projekt + +(ännu inte skrivet ...) + + + +Importera externa projekt + +(ännu inte skrivet ...) + + + + +
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/importdirectory.png b/tde-i18n-sv/docs/tdevelop/tdevelop/importdirectory.png new file mode 100644 index 00000000000..415f66068d9 Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/importdirectory.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/index.cache.bz2 b/tde-i18n-sv/docs/tdevelop/tdevelop/index.cache.bz2 new file mode 100644 index 00000000000..94f38d34c4d Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/index.cache.bz2 differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/index.docbook b/tde-i18n-sv/docs/tdevelop/tdevelop/index.docbook new file mode 100644 index 00000000000..420b66ae0c7 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/index.docbook @@ -0,0 +1,694 @@ + +KDevelop" +> --> + + + + + Apache"> + API"> + + autoconf"> + automake"> + + ctags"> + CVS"> + + Doxygen"> + doxywizard"> + egrep"> + grep"> + HTML"> + IDE"> + libtool"> + + Python"> + Perl"> + PHP"> + + Qt/embedded"> + ssh"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +]> + + + + + + + Användarmanual &tdevelop; + + 2006-06-19 + &kdevrelease; + + + Bernd Gehrmann
bernd@tdevelop.org
+
+
+ + Caleb Tennis
caleb@aei-tech.com
+
+
+ + Bernd Pol
bernd.pol@online.de
+
+
+ + Volker Paul
volker.paul@tiscali.de
+
+
+
+ + + 2002 + Bernd Gehrmann + + + 2002 + Caleb Tennis + + + 2004 + Bernd Pol + + + 2005 + Volker Paul + + + Stefan Asserhäll
stefan.asserhall@comhem.se
Översättare
+ + &FDLNotice; + + + &tdevelop; är en integrerad utvecklingsmiljö som kan användas för ett brett spektrum av programmeringsaktiviteter. + + + + KDE + KDevelop + IDE + utveckling + programmering + + +
+ + + +&survey-manual; +&getting-started; +&tdevelop-survey; +&setup; +&applicationwizard; +&editing; +&file-browsers; +&class-browsers; +&documentation; +&project-management; +&adv-build-management; +&debugger; +&cvs-chapter; + +&credits; + + + + +&tdevelop-install; +&nutshell; +&unixdev; + +&app-files; +&plugin-tools; +&app-uimodes-examples; +&commands; +&app-misc-info; +&app-changelog; + + + + + + + + + + + + + + + + +Bibliografi + +(... ännu inte skrivet ...) + + + + +<ulink url="info://make/Top" +>GNU Make Manual</ulink +> + +Richard M.Stallman +RolandMcGrath + + + + +<ulink url="info://automake/Top" +>GNU Automake</ulink +> + +DavidMacKenzie +TomTromey + + + + +<ulink url="info://autoconf/Top" +>GNU Autoconf</ulink +> + +DavidMacKenzie +BenElliston + + + + +<ulink url="info://gcc/Top" +>Using the GNU Compiler Collection</ulink +> +Richard M.Stallman + + + +<ulink url="info://libtool/Top" +>GNU Libtool</ulink +> + +GordonMatzigkeit +AlexandreOliva +ThomasTanner +Gary V.Vaughan + + + + +GNU Autoconf, Automake, and Libtool +1st edition +October 2000 + +Gary V.Vaughan +BenElliston +TomTromey +Ian LanceTaylor + +New Riders Publishing +ISBN 1578701902 + + + + +Advanced Programming in the &UNIX; Environment +1st edition +June 1992 +W. RichardStevens +Addison-Wesley Pub Co +ISBN 0201563177 + + + +Thinking in C++, Volume 1: Introduction to Standard C++ +2nd Edition +April 15, 2000 +BruceEckel +Prentice Hall +ISBN 0139798099 + + + +Open Source Development with CVS +2nd Edition +October 12, 2001 + +KarlFogel +MosheBar + +The Coriolis Group +ISBN 158880173X + + + +Programming PHP +1st edition +March 2002 + +RasmusLerdorf +KevinTatroe + +O'Reilly & Associates +ISBN 1565926102 + + + +Programming Python +2nd Edition +March 2001 +MarkLutz +O'Reilly & Associates +ISBN 0596000855 + + + +Gui Programming With Python : Using the Qt Toolkit +Bk&Cd-r edition +January 2002 +BoudewijnRempt +Opendocs Llc +ISBN 0970033044 + + + +Programming Perl +Kamelboken +3rd Edition +July 2000 + +LarryWall +TomChristiansen +JonOrwant + +O'Reilly & Associates +ISBN 0596000278 + + + +Learning Perl +Lamaboken +3rd Edition +July 15, 2001 + +Randal L.Schwartz +TomPhoenix + +O'Reilly & Associates +ISBN 0596001320 + + + + + + + + + +&documentation.index; + +
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/kdcop_browsing.png b/tde-i18n-sv/docs/tdevelop/tdevelop/kdcop_browsing.png new file mode 100644 index 00000000000..faf4c7a0e93 Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/kdcop_browsing.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/nutshell.docbook b/tde-i18n-sv/docs/tdevelop/tdevelop/nutshell.docbook new file mode 100644 index 00000000000..051e3a72310 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/nutshell.docbook @@ -0,0 +1,376 @@ + +I korthet — Tips och trick + + + +Informationen i det här kapitlet är avsett som en snabbreferens för att genast komma igÃ¥ng om du (tillfälligt) glömt bort nÃ¥gra grundläggande koncept. Det finns ocksÃ¥ korta tips om hur nÃ¥gra vanliga problem vid arbete med &tdevelop; kan lösas. +Om du vill ha mer information om ett ämne, följ bara länken i rubriken som erbjuder det. +Information om följande ämnen är tillgänglig: + + Utseende och känsla + Projekt + Kompilering + Hantering av automake + Problem med att kompilera och bygga + Övriga ämnen + + + +Utseende och känsla + + +Tvinga mindre verktygsvyflikar i IDEA-läge + +Normalt startar &tdevelop; med flikar som har stora textbaserade verktygstips omkring arbetsytan. Du kan ändra detta utseende, för att spara utrymme, i inställningsdialogrutan för &tdevelop; (Inställningar Anpassa KDevelop... Användargränssnitt). +Om du använder en äldre version av &tdevelop; 3, kanske den här inställningsdialogrutan inte är tillgänglig. För att ändra utseendet hos verktygsvyernas flikar för hand, lägg till posten MDIStyle under rubriken [UI] i inställningsfilen $KDEHOME/share/config/tdeveloprc enligt följande: + + +MDIStyle=0: Bara ikoner +MDIStyle=1: bara text (normalvärde) + +MDIStyle=3: ikoner och text + + + + + +Underligt färgade tecken och/eller skärmstil + +Om du observerar slumpmässigt färgade bokstäver överallt (dvs. pÃ¥ flikar, verktygsrader, etc.) och &tdevelop;s fönster verkar använda en felaktig skärmstil, kan följande hjälpa: + + +Hitta raden Style=Checked i inställningsfilen $KDEHOME/share/config/tdeveloprc och ta bort den. Starta därefter om &tdevelop;. + + +(Beteendet uppstÃ¥r ibland efter du vänsterklickat pÃ¥ en .ui-fil i en av filbläddrarna och &tdevelop; laddat KUIViewer för att visa det grafiska gränssnittet som skapats frÃ¥n filen.) + + + + +Fullskärmsläge + +Välj Visa Fullskärmsläge i menyraden, eller tryck pÃ¥ Ctrl Skift F. + + + + +Visa eller dölj menyraden + +För att dölja menyraden, välj Inställningar Visa menyrad i menyraden, eller tryck pÃ¥ Ctrl M. För att visa menyraden igen, är bara Ctrl M tillgängligt. + + + + + +Projekt + +Skapa nytt projekt + +Projekt Nytt projekt... startar programguiden. + + + + +Skapa ett eget projekt + +Det finns inte nÃ¥got sätt att direkt skapa ett eget projekt (dvs. ett projekt som använder sina egna byggfiler). Använd istället Projekt Importera befintligt projekt. Kom ihÃ¥g att ange passande Projekttyp i dialogrutan, med den extra texten (Custom Makefiles). + + + + +Använd projektalternativ frÃ¥n början + +SÃ¥ fort du skapat ett nytt projekt, glöm inte att ställa in Projekt Projektinställningar.. enligt dina behov. + + + + + +Kompilering + +Detaljer i kompilatormeddelanden saknas + +Om du märker att en del värdefull information saknas i fönstret Meddelandeutmatning vid kompilering,kan du ha valt en detaljnivÃ¥ för meddelanden som är för lÃ¥g. Högerklicka pÃ¥ fönstret och välj en annan detaljnivÃ¥ i menyn som dyker upp. + + + + + +<link linkend="automake-manager" +>Hantering av automake</link +> + + +Skapa nya filer i ett projekt + +Välj delprojekt i övre delen av Hantering av automake, och högerklicka sedan i nedre delen pÃ¥ grupprubriken där du vill lägga till filerna och välj Skapa ny fil... + + + + +Lägga till befintliga filer i ett projekt + +Välj delprojekt i övre delen av Hantering av automake, och högerklicka sedan i nedre delen pÃ¥ grupprubriken där du vill lägga till filerna och välj Lägg till befintliga filer... + + + + +Ta bort en fil frÃ¥n ett projekt + +Välj delprojekt i övre delen av Hantering av automake, och högerklicka sedan i nedre delen pÃ¥ grupprubriken där du vill ta bort filerna och välj Ta bort. + + + + + +Problem med att kompilera och bygga + +Projekt byggs inte igen efter byte till eller frÃ¥n mÃ¥let default + +Det finns ett problem med &automake; och &autoconf; maskineriet. Om Projekt Bygginställningar ger möjlighet att välja bland tre byggkataloger: default, optimized och debug, hÃ¥ll dig för allt i världen antingen till mÃ¥let default eller mÃ¥len debug/optimize. + + +När du väl har ställt in projektet med default, byggs det inte längre med debug eller optimized. + + +När du väl har ställt in projektet med debug eller optimized, byggs det inte längre med default. + + + + + + +Fel version av autoconf, etc. + +Det finns flera felmeddelanden som berör för gamla versioner av autoconf, etc. som förhindrar att configure fungerar som det ska. Kör autoreconf i katalogträdet där filerna configure.in i frÃ¥ga finns. Kommandot försöker uppdatera informationen i &GNU; byggsystemfiler. Se man autoreconf för mer information. + + + + + +Övriga ämnen + +Inställningsfiler som används av &tdevelop; + +Oftast ska du inte behöva bry dig om det, men det är mycket användbart att känna till om nÃ¥got har gÃ¥tt fel med dina inställningar. + + + + + diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/open-recent-project.png b/tde-i18n-sv/docs/tdevelop/tdevelop/open-recent-project.png new file mode 100644 index 00000000000..80d3368107e Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/open-recent-project.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/plugin-tools.docbook b/tde-i18n-sv/docs/tdevelop/tdevelop/plugin-tools.docbook new file mode 100644 index 00000000000..1fa80642345 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/plugin-tools.docbook @@ -0,0 +1,731 @@ + +Insticksverktyg + + + insticksverktyg + +&tdevelop; innehÃ¥ller ett stort antal smÃ¥ verktyg, som hjälper dig att utföra vissa uppgifter. De flesta fungerar som insticksprogram. Det betyder att om du inte behöver ett insticksprogram kan du helt enkelt inaktivera det. +Det betyder ocksÃ¥ att om du letar efter funktioner som ska finnas, men inte gör det, kanske de är implementerade i ett insticksprogram och det insticksprogrammet är inaktiverat. Det finns till exempel en funktion för snabböppning i menyn Arkiv, men bara om den är aktiverad i dialogrutan Projekt - Projektinställningar. + +Tekniskt är insticksprogram baserade pÃ¥ klassen KDevPlugin definierad i lib/interfaces/kdevplugin.h. Det följande kommer frÃ¥n en kommentar där. + +KDevPlugin är basklassen för alla insticksprogram i KDevelop. Ett insticksprogram är en komponent som laddas i KDevelop-skalet vid start eller pÃ¥ begäran. Ett insticksprogram har en omfattning som antingen kan vara: +Kärna +Global +Projekt + + + +Kärninsticksprogram är globala insticksprogram som erbjuder nÃ¥gon viktig funktion för "kärnan", och sÃ¥lunda inte kan väljas av användaren pÃ¥ inställningssidorna för insticksprogram. + +Globala insticksprogram är de som bara kräver att skalet är laddad och inte använder sig av gränssnittet KDevProject och/eller använder information rörande hela projektet. Till exempel tillÃ¥ter insticksprogrammet grafiskt gränssnittsläge utvecklare att välja vilket användargränssnitt de vill använda. + +Projektinsticksprogram kräver att att projekt är laddad, och laddas eller laddas ur tillsammans med projektet. Om ett insticksprogram använder sig av projektrelaterad information är det ett projektinsticksprogram. Hantering av Automake behöver till exempel bara vara aktivt när ett projekt baserat pÃ¥ Automake för tillfället är laddat. + +Som nämnts ovan kan inte kärninsticksprogram inaktiveras. Globala insticksprogram kan aktiveras eller inaktiveras med Inställningar Anpassa KDevelop... under insticksprogram. Projektinsticksprogram kan aktiveras eller inaktiveras med Projekt Projektinställningar... under insticksprogram. Aktiva insticksprogram kan ge mÃ¥nga effekter i KDevelop. Beroende pÃ¥ deras funktion kan de lägga till extra menyer, extra menyalternativ, extra knappar i verktygsraden, etc. + +Insticksprogram som är inaktiverade skräpar inte ner menyerna och laddas inte i minnet. + + +Följande lista över insticksprogram skapas av ett litet skript (listplugins.sh) skrivet av Volker Paul. Alla insticksprogram har en .desktop-fil där information som namn och kommentarer skrivs. Om kommentarerna i det följande inte är särskilt användbara, beror det pÃ¥ att insticksprogrammets upphovsmän gjorde dem pÃ¥ detta sätt. +Insticksprogrammen är grupperade enligt omfattning (Kärna, Global, Projekt). + +Omfattning: Kärna + + +Programguide +Programguide + +Visning av skillnader +Visning av skillnader + +Skapa filer +Skapa filer + +Fullskärm +Fullskärm + +Dagens tips +Dagens tips + +Val av användargränssnitt +TillhandahÃ¥ller en dialogruta för val av användargränssnittsläge. + +Hantering av versionskontrollsystem +Hantering av versionskontrollsystem + + +Omfattning: Global + + +Expansion av förkortningar +Ger stöd för anpassningsbara förkortningar: korta ord som expanderas till vanligt använda kodstrukturer. + +Dokumentation +Dokumentationsinsticksprogrammet erbjuder bläddring och sökning i lokal dokumentation och dokumentation pÃ¥ nätet, med stöd för flera dokumentationssystem. + +Fillista +TillhandahÃ¥ller en lista av alla för närvarande öppna filer. (Praktiskt när flikraden inte är riktigt bred nog.) + +Filväljare +Kraftfullt nätverkstransparent filbläddringsverktyg. + +Skalfiltrering och infogning +Erbjuder ett sätt att behandla editortext med kommandoradsverktyg. Finns i verktygsmenyn. + +Gränssnitt till grep +Integrerar "find | grep" med KDevelop - tillÃ¥ter snabb sökning i flera filer med mönster eller reguljära uttryck. + +Inbäddad terminal +Insticksprogrammet ger KDevelop en inbyggd terminal för snabb och enkel Ã¥tkomst av kommandoraden. + +Menytillägg till "Öppna med" +Insticksprogrammet tillhandahÃ¥ller ytterligare "öppna" alternativ i diverse sammanhangsberoende menyer i KDevelop. + +Delutforskningsverktyg +Ett grafiskt verktyg för att utföra KTrader-liknande förfrÃ¥gningar om registrerade tjänster. + +Test av reguljära uttryck +Verktyg för att skapa och testa reguljära uttryck mot vanlig syntax för reguljära uttryck. + +Ersättning +Insticksprogrammet är ett interaktivt verktyg för att "söka och ersätta" i hela projektet. Sök med en sträng eller reguljärt uttryck, och välj ersättningen som ska göras frÃ¥n en förhandsgranskning innan Ã¥tgärden slutförs. När det laddats visas det i redigeringsmenyn. + +Skriptanvändning +Skriptinsticksprogrammet erbjuder KScript-baserad styrning av programmet KDevelop. + +Kodsnuttar +Det här insticksprogrammet gör det möjligt att lagra kodsnuttar och lägga till dem i din kod + +Textstruktur +TillhandahÃ¥ller en strukturöversikt och navigering för HTML- och Tex-filer + +Tillägg i verktygsmenyn +Insticksprogrammet tillhandahÃ¥ller ett enkelt sätt att lägga till yttre program i verktygsmenyn och verktygsraden. + +Valgrind-gränssnitt +Valgrind är ett verktyg som hjälper dig hitta minneshanteringsproblem i program. http://developer.kde.org/~sewardj/ + + +Omfattning: Projekt + + +Noteringsinsticksprogram +Noteringsbeskrivning + +Källkodsformatering +Ett insticksprogram för att formatera källkod enligt en given uppsättning regler. När det laddats finns det i verktygsmenyn. + +Bokmärken +Insticksprogram som tillhandahÃ¥ller navigering och översikt över aktiva källkodsbokmärken och gör dem bestÃ¥ende mellan sessioner. + +Klassvisning +Insticksprogrammet visar en grafisk bild av alla klasser i ett projekt, tillsammans med metoder och egenskaper, och ger möjlighet till direkt navigering i källkoden. + +Kopiera till +Enkelt insticksprogram för uppladdning av filer. Det utför en filkopiering med alla protokoll som stöds av KIO. + +Ctags-gränssnitt +Ctags är ett verktyg för källkodsnavigering med stöd för mÃ¥nga sprÃ¥k. När det laddats tillhandahÃ¥ller det en sammanhangsberoende meny för att hitta typdeklarationer eller definitioner, och dessutom en frÃ¥gedialogruta. http://ctags.sourceforge.net/ + +Stöd för slutpaketering +Hjälper till att bygga och publicera det färdiga projektet. Endast RPM-paketformatet stöds för närvarande. + +Doxygen-stöd +Doxygen-insticksprogrammet tillhandahÃ¥ller ett sätt att ange och styra hur dokument skapas för ett projekt, baserat pÃ¥ källkodens innehÃ¥ll. Du mÃ¥ste ha installerat Doxygen för att kunna använda det. För mer information besök http://www.doxygen.org. + +Snabböppna +Erbjuder ett effektivt sätt att hitta och öppna filer, klasser och metoder i ett stort projekt. Finns i menyn Arkiv och Verktyg när det laddats. + +Säkerhetskontroll +Kodsäkerhetskontroll + +SÃ¥ lÃ¥ngt den skapade listan över insticksprogram. + + + +Insticksprogram för projekthantering i &tdevelop; + + + antproject + ANT-projekthantering (&Java;-program) + + + autoprojekt + Automake projekthantering + + + customproject + Egen projekthantering + + + trollproject + Qmake-baserad projekthantering + + +
+Ovanstående insticksprogram är för närvarande (maj 2005) tomma. Kanske projekthanteringsstöd kommer att implementeras som insticksprogram i framtiden. + + + +Insticksprogram för språkstöd i &tdevelop; + + +cppsupportStöd för C/C++ +fortransupportStöd för Fortran +javasupportStöd för &Java; +perlsupportStöd för Perl +phpsupportStöd för PHP +pythonsupportStöd för Python + +
+ + +Vissa av insticksprogrammen beskrivs i detalj i det följande. + + + + +Insticksprogrammet <command +>Förkortningar</command +> +Förkortningar + +Det här insticksprogrammet fyller i förkortningar av ofta använda kodfragment. Det aktiveras genom att trycka på CtrlMellanslag. Om du till exempel skriver in "ife" i C++ editorn, och trycker på CtrlMellanslag, får du en if-else kodmall och sparar några tangentnertryckningar. Uppsättningen med förkortningar som stöds beror på den redigerade filens programspråk. För till exempel PHP är du naturligtvis intresserad av andra kodmallar än för &Java;. + + +Uppsättningen med kodmallar kan anpassas. Om insticksprogrammet är aktiverat, kan du se vilka som är tillgängliga med dialogrutan Inställningar Anpassa KDevelop... under Förkortningar. + + + + +Insticksprogrammet <command +>filter</command +> +filter + +Detta erbjuder två funktioner. Om du väljer VerktygKör kommando kan du skriva in ett skalkommando. Utmatningen från kommandot infogas i editorns buffer när du trycker på knappen Starta. + + +En liknande funktion är tillgänglig med Verktyg Filtrera markering genom kommando.... För att använda den måste du markera ett textområde i editorn. Om du nu skriver in ett skalkommando och klickar på knappen Starta, startas kommandot och markeringen används som standardinmatning till det. Standardutmatningen från kommandot infogas därefter i editorn, och ersätter markeringen. + +Om du till exempel skriver dokumentation, behöver du ofta hänvisa till menyalternativ. För att gör det på rätt sätt för t.ex. kopieringskommandot i menyn Redigera, måste du skriva <menuchoice><guimenu>Redigera</guimenu><guimenuitem>Kopiera</guimenuitem></menuchoice> Det är omständigt, alltså skriver du hellre bara "Redigera" - "Kopera" och låter datorn utföra taggningen. Du kan göra det så här: Du skriver ett litet skalskript som heter mef, som du till exempel placerar i underkatalogen bin i din hemkatalog: sed s/"^\(.*\) - \(.*\)\$"/"<menuchoice><guimenu>\1<\/guimenu><guimenuitem>\2<\/guimenuitem><\/menuchoice>"/ Glöm inte att göra det körbart. Det är allt. Nu skriver du "Redigera" - "Kopiera" i dokumentationens .dokbook-källkod. Du markerar texten du just skrivit in, väljer VerktygFiltrera markering genom kommando... och anropar ~/bin/mef. Omedelbart ersätts "Redigera" - "Kopiera" med <menuchoice><guimenu>Redigera</guimenu><guimenuitem>Kopiera</guimenuitem></menuchoice> + + + + + + + +Insticksprogrammet &doxygen; +&doxygen; +dokumentationsverktyg +API-dokumentation + +Detta hjälper dig att använda API-dokumentationsverktyget &doxygen; (). Du kan välja ProjektKör Doxygen för att skapa API-dokumentation för det nuvarande projektet baserat på konfigurationen som anges av filen Doxyfile i projektkatalogen. + + +Dessutom kan du anpassa &doxygen; med dialogrutan ProjektProjektinställningar.... Dialogrutan är mycket lik verktyget &doxywizard;. + + + + +Insticksprogrammet &ctags; +&ctags; + +Även om klassbläddraren ger dig utförlig överblick över symboler och klasser i projektet, kan du också vilja använda ctags-verktyget. Det stöder i synnerhet många fler språk än klassbläddraren. + + +Du aktiverar insticksprogrammet under VerktygCTags.... När du startar det för första gången, blir du tillfrågad om att först skapa en sökdatabas. När du accepterar detta, startas &ctags;-programmet och skapar en fil som heter tags i projektkatalogen. Detta är en textfil som innehåller alla symboler i källkodsfilerna. + +Du kan söka på två sätt i symboldatabasen: när rutan Matcha med reguljärt uttryck är markerad, tolkas texten som du skriver in som ett reguljärt uttryck (POSIX-varianten) och matchas med befintliga symboler. Texten .*Widget söker till exempel efter alla symboler som slutar med Widget. Om rutan inte är markerad, är sökningen verbatim. + +Under sökningen visas en lista med matchade symboler, tillsammans med radnummer där de definieras. Du hoppar till respektive ställe genom att klicka i listan. + +För vissa språk skiljer &ctags; mellan olika typer av symboler. Python har till exempel klasser och funktioner. Du kan söka enbart efter klasser genom att kryssa in motsvarande typ i dialogrutan. + +Symboldatabasen uppdateras normalt inte när källkoden ändras. På grund av detta kommer inte radnumren vara riktiga längre efter ett tag, och nytillagda klasser och funktioner kommer att saknas. Därför bör du uppdatera filen tags med regelbundna intervall, genom att trycka på knappen Skapa om. + + + + +Insticksprogrammet <command +>A-stil</command +> +a-stil +Artistisk stil +indrag + +A-stil är ett insticksprogram för att formatera källkoden enligt en specificerad uppsättning regler. + + + + + +Insticksprogrammet <command +>regexptest</command +> +regexptest +avlusningreguljära uttryck +reguljära uttryckavlusning + +Att konstruera reguljära uttryck kan vara ett hårt arbete. Ofta matchar det första försöket med ett uttryck för många strängar. I synnerhet vid arbete med ett kompilerat språk kan cykeltiden vid avlusning av ett reguljärt uttryck vara besvärlig. Insticksprogrammet regexptest låter dig direkt utforska ändringar i ett reguljärt uttryck. Det aktiveras genom att välja Verktyg Avlusa reguljärt uttryck.... + + +I variantkombinationsrutan kan du välja vilken variant av reguljära uttryck som ska användas. För närvarande stöds varianten som definieras av POSIX-standarden, som används av programmet &grep;, och den utökade POSIX-syntaxen som används av programmet &egrep;. + +När du skriver in ett uttryck, får du omedelbart återmatning om eventuella syntaxfel i det. Genom att skriva in en text under Teststräng, kan du se om uttrycket matchar strängen. I synnerhet om det reguljära uttrycket innehåller grupper, som "([a-z])", visas innehållet av de matchade delgrupperna i en listruta. + + + + + + +
+ + diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/problem-report-all-todos.png b/tde-i18n-sv/docs/tdevelop/tdevelop/problem-report-all-todos.png new file mode 100644 index 00000000000..26f89a50e42 Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/problem-report-all-todos.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/problem-report-marks.png b/tde-i18n-sv/docs/tdevelop/tdevelop/problem-report-marks.png new file mode 100644 index 00000000000..0757b989fa6 Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/problem-report-marks.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/problem-report-todo.png b/tde-i18n-sv/docs/tdevelop/tdevelop/problem-report-todo.png new file mode 100644 index 00000000000..45babdc5f3d Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/problem-report-todo.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/project-advanced.docbook b/tde-i18n-sv/docs/tdevelop/tdevelop/project-advanced.docbook new file mode 100644 index 00000000000..0ed7266d1f4 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/project-advanced.docbook @@ -0,0 +1,111 @@ + + + + + BerndPol + + + + +Avancerad projekthantering + + +Ladda projekt + + +Ladda ett av de senast använda projekten + +(... ännu inte skrivet ...) + + + + + + + Hur man öppnar ett av de senast använda projekten + + + + + + + +Ladda ett befintligt projekt + +(... ännu inte skrivet ...) + + + +Konvertera gamla KDevelop projektfiler + +&tdevelop; tillåter att du öppnar gamla KDevelop 2.x projektfiler och konverterar dem till &tdevelop;-filer. För att göra det, gå till Öppna projekt... och välj KDevelop 2 projektfiler under Filter:. Välj därefter projektfilen som du vill öppna. Projektet konverteras till &tdevelop; och sparas som en &tdevelop; projektfil. + + + + +Importera ett befintligt projekt + +För att importera en befintlig katalog till &tdevelop;, välj Importera befintligt projekt i menyn Projekt. Du ska då se guiden för att importera ett projekt, som visas nedan: + +
+Dialogrutan för importera projekt + + + +
+ +
+ +
+ + + + +Skräddarsy Projekt — Projektinställningar + +(... ännu inte skrivet ...) + + + +
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/project-management.docbook b/tde-i18n-sv/docs/tdevelop/tdevelop/project-management.docbook new file mode 100644 index 00000000000..2af94494255 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/project-management.docbook @@ -0,0 +1,1297 @@ + + + + + BerndPol + IanWadham + + + + +Bygga och projekthantering + +Det här kapitlet behandlar bara kompilerade projekt, som projekt med C++, &Java; eller Fortran. Projekt för skriptspråk som Python och PHP, fungerar mycket annorlunda. + +Här hittar du information om följande ämnen: + + Sammanfattning av Hantering av automake innehåller en översikt över Hantering av automake, + Användning av Hantering av automake beskriver grunderna i hur man arbetar med Hantering av automake. + + + +Sammanfattning av Hantering av automake + +I kapitlet Byggsystem har vi gett en grov översikt av de byggsystem som vanligen används på Unix-system. I följande avsnitt tittar vi på detta i mer detalj. +Det finns en viss förvirring angående hur sådana ting ska namnges. &GNU; kallar dem byggsystem när Automake, Autoconf och Libtool beskrivs. Qmake kallas ett verktyg att skriva Makefiles för olika kompilatorer och plattformar. I KDE används ofta uttrycket projekthanteringssystem. Vi använder det uttrycket i en vidare bemärkelse för att beskriva de inbyggda miljöer i &tdevelop; som används för att organisera och bygga projekt. I det här avsnittets sammanhang, talar vi dock i huvudsak om automatiserade byggsystem. + + +Behovet av ett automatiserat byggsystem + +Om du har ett enkelt program som skriver ut Hej allihop, skrivet i C, kan du kompilera och länka det med &gcc; -o hej hej.c och köra det med ./hej, så du behöver inte ens en Makefile. +Om du har ett C-program med flera moduler och deklarationsfiler och du bara ska köra det på din dator (dvs. det är ett lokalt program), behöver du bara en vanlig Makefile, som är ganska enkel att skriva för hand (använd info make för att lära dig mer). +Komplikationerna börjar när: + + Din källkod, dokumentation, grafik, ljud, översättningar, datafiler etc. finns i mer än en katalog, + Du har en hierarki av kataloger och underkataloger, + Du använder bibliotek som inte är en del av den traditionella uppsättningen på &UNIX;, som &Qt;-objektbiblioteket eller &kde;-skrivbordsbibliotek, + Du använder en preprocessor för att skapa en del av din källkod, som Qt:s MOC prekompilator, + Du siktar på att distribuera programmet i hela världen, till personer som inte har samma &UNIX;- eller &Linux;-system, programvara och hårdvara som du, + Du kräver en automatisk funktion för installation och avinstallation, + Du siktar på att göra ditt program en del av &kde;:s uppsättning med skrivbordsprogram. + + +Om du befinner dig i några eller alla av ovanstående situationer, behöver du troligen ett byggsystem. I exemplet ovan använde vi &gcc; för att kompilera och bygga programmet Hej, men alla C-kompilatorer heter inte &gcc;. Så om du distribuerar programmet till någon som använder en annan C-kompilator, måste din Makefile på något sätt använda namnet på den personens kompilator, annars misslyckas kompileringen av programmet. Detta är bara ett av många exempel på vad som kan gå fel. +Ett byggsystem jämnar ut skillnaderna åt dig. + + Det kontrollerar att biblioteken som behövs finns på varje dator som tar emot programmet, + avsöker automatiskt alla programkataloger efter filer att förbehandla, kompilera eller installera och + installerar komponenterna som programmet består av i rätt kataloger, och försäkrar att + katalogerna på datorn som tar emot programmet skapas efter behov. + + +I korthet erbjuder ett byggsystem säkra metoder för att kompilera och installera programmet på alla datorer som tar emot programmet. Som vi har visat tidigare i översikten Projekthanteringssystem, erbjuder &tdevelop; tre automatiserade byggsystem och möjlighet att skapa din egen Makefile. I korthet (klicka på projektnamnen för mer information): + + Automake-projekt som använder de vanliga utvecklingsverktygen för &GNU;. + Qmake-projekt som använder Trolltechs Qmake-projekthantering. + ANT-projekt som använder Apaches ANT-projekthantering för &Java;-utveckling. + Eget projekt som kräver att du underhåller din egen Makefile. + + + +Ett av de fyra alternativen måste väljas när du skapar ett projekt, och valet är svårt att senare ändra, så du bör tänka efter innan du börjar. + + + + + +Handledningar om Autoconf, Automake och Libtool +Det finns flera handledningar tillgängliga om &GNU;:s byggsystem (Autoconf, Automake och Libtool) som Hantering av automake använder sig av. + + En kort handledning om autoconf, skriven av Christopher W. Curtis finns tillgänglig på &tdevelop;s hemsida. Den koncentrerar sig på några grundläggande steg för att ändra en Makefile. + En mer detaljerad handledning finns som en del av en större uppsättning handledningar under Utveckla programvara med GNU. + Den berömda getboken, som heter Autoconf, Automake, and Libtool, finns också. Den är en lättläst, men ändå kortfattad, introduktion till alla viktiga aspekter av &GNU;:s autoverktyg. + + + + + +Vad gör Hantering av automake? + +Programguiden har skapat några ursprungliga Makefile.am filer när du skapade ett nytt projekt av en typ som använder &GNU;:s byggsystem, som C++ KDE Application framework. Under utvecklingen skapar Hantering av automake alla ytterligare Makefile.am filer för projekt som använder &GNU;:s byggsystem, och underhåller alla, både de som skapats med programguiden och Hantering av automake. +Det finns en Makefile.am i varje projektkatalog som innehåller filer som ska kompileras eller installeras. Den innehåller dina specifikationer för att kompilera, bygga och installera filer och en referens till alla underkataloger som också har en Makefile.am och möjligen några filer att kompilera, bygga och installera. + +Projektets kataloger och källkodsfiler kan struktureras till vilket djup som helst, eller du kanske föredrar en platt projektstruktur med alla underkataloger på toppnivå. + +Målet med &GNU;:s byggsystem är att skapa filstrukturer för källkod som kan kompileras, byggas och installeras på vilket &UNIX;- eller &Linux;-system som helst med de enkla kommandona: + +./configure +make +make install # Oftast som systemadministratör. + + +och kan avinstalleras med kommandot make uninstall (oftast som systemadministratör). + +Hur fungerar det? Ja, configure är ett skript som: + arbetar fram detaljinformation om systemet som det körs på, som vilken kompilator och vilka bibliotek som ska användas, var de finns, och därefter + rekursivt skapar filerna Makefile genom att fylla i det som ska ersättas i motsvarande Makefile.in. + + +Filen Makefile.am är indata, en mall som ger grundläggande information för den Makefile som ska skapas, genom att fylla i viss systemberoende information. Den skapas av verktyget Automake från filen Makefile.am. +Processen att komma från en Makefile.am (där .am anger mallfiler för Automake) till Makefile hanteras automatiskt av &tdevelop;s Hantering av automake med verktyget Autoconf, M4-makron och andra mysterier vi inte behöver gå in på här. +Så när make kör, hämtar det automatiskt rätt information från den nuvarande miljön, som kompilatorer och bibliotek. På samma sätt, placerar make install delarna av programmet, som körbara filer, dokumentation och datafiler på rätt plats i den miljön. + +Om du distribuerar programmet som ett tar-arkiv (en enda komprimerad fil som &tdevelop; kan skapa åt dig), innehåller den filerna Makefile.in och skriptfilen configure, så att mottagaren kan kompilera, bygga och installera programmet utan att ha Automake, Autoconf eller KDevelop på sin dator. Filerna Makefile.am ingår också, ifall mottagaren måste göra några ändringar i källkoden. +Reglerna är väsentligt annorlunda om du distribuerar via ett webbaserat källkodsarkiv som &kde;:s &cvs;. + + + + +Sammanfattning av vad Hantering av automake gör + + + Skapar filerna Makefile.am i underkatalogerna som det känner till som delprojekt. + Uppdaterar filerna Makefile.am när projektstrukturen ändras. + Uppdaterar filerna Makefile.am när filer läggs till i eller tas bort från projekt. + Accepterar definitioner om hur de olika filerna ska byggas eller installeras, och ändrar Makefile.am enligt dem. + Accepterar parametrar som används vid byggning eller installation (t.ex. biblioteksnamn), och försäkrar att de används i de nödvändiga kompilerings- och byggstegen. + + + + + +Innehåll i automake-filer + +Filen Makefile.am har rader som innehåller variabelnamn följda av ett likhetstecken och en lista med filer eller parametervärden. Variabler har tvådelade namn, som bin_PROGRAMS, mittpgm_SOURCES eller kdelnk_DATA. Den andra delen kallas den primära och representerar något som ska byggas eller installeras. Den första delen kallas prefix och representerar: + + En katalog där installationen ska göras (t.ex. bin), + En kvalifikation för den primära delen (t.ex. mittpgm för SOURCES, som anger att källkodsfiler som listas efter mittpgm_SOURCES ingår i att bygga mittpgm. + Ett särskilt prefix noinst (kort för ingen installation), som oftast används för att lista programmets deklarationsfiler (.h), + Eller det speciella prefixet EXTRA, för konfigurationsberoende saker. + + +För mer information om Automake och filerna Makefile.am, slå upp den med info Automake. +I huvudsak skapar och uppdaterar Hantering av automake variabelnamn och fillistor eller parametrar. Se följande exempel på en Makefile.am för ett typiskt program, som kallas mittpgm. + +## Makefile.am för mittpgm + +# det här är programmet som installeras. dess namn används för alla +# andra Makefile.am variablerna +bin_PROGRAMS = mittpgm + +# ställ in sökvägen för deklarationsfiler till X, Qt och KDE +INCLUDES = $(all_includes) + +# bibliotekssökvägen. +mittpgm_LDFLAGS = $(KDE_RPATH) $(all_libraries) + +# biblioteken att länka med. +mittpgm_LDADD = $(LIB_KFILE) $(LIB_TDEPRINT) + +# vilka källkodsfiler ska kompileras för mittpgm +mittpgm_SOURCES = main.cpp mittpgm.cpp mittpgmvy.cpp + +# det här är deklarationsfilerna för projektet +noinst_HEADERS = mittpgm.h mittpgmvy.h + +# låt automoc hantera alla metakällfiler (moc) +METASOURCES = AUTO + +KDE_ICON = mittpgm + +# det är här kdelnk-filen hamnar +kdelnkdir = $(kde_appsdir)/Utilities +kdelnk_DATA = mittpgm.desktop + +# det är här XML-GUI resursfilen hamnar +rcdir = $(kde_datadir)/mittpgm +rc_DATA = mittpgm_ui.rc + +AM_CXXFLAGS = -DMITT_C++_PREPROCESSOR_ALTERNATIV + + +Som du kan se är många av objekten på högersidan symboler på formen $(xxxx). De är miljövariabler som definieras i själva &kde;-miljön och ersätts med riktiga värden när ./configure skapar de slutliga filerna Makefile på datorn som tar emot programmet. + +Det är också en god idé att köra kommandot ./configure --help någon gång efter du har börjat med &tdevelop;, som visar dig de olika saker du kan ändra vid bygg- och installationstid, såsom en testmiljö. I synnerhet kommandot: +./configure --prefix=/var/du/vill + flyttar hela installationen till en katalogstruktur som du väljer, genom att ändra den interna variabeln $(prefix) till värdet /var/du/vill. + + + + + + + + +Användning av Hantering av automake + +I det här kapitlet hittar du en grundläggande beskrivning av elementen i Hantering av automake, och hur de används. Det täcker: + Fönstret Hantering av automake beskriver den grundläggande strukturen hos huvudfönstret i Hantering av automake. + Översiktsfönstret beskriver elementen i det övre delfönstret. + Detaljfönstret beskriver elementen i det undre delfönstret. + Navigera i Hantering av automake listar några grundläggande åtgärder du kan utföra i Hantering av automake. + Sammanhangsberoende menyer i Hantering av automake beskriver menyerna som dyker upp när du väljer en åtgärd i Hantering av automake. + + + + +Fönstret Hantering av automake + + + + + + + + + + Hantering av automake använder ett delat fönster. Den övre delen kallas Översiktsfönstret och den undre delen kallas Detaljfönstret. Mellan dem finns en smal rad som kan dras med musen för att justera fönsterstorlekarna. I IDEA-fönsterläge kan du också dra sidokanten på det delade fönstret för att ändra bredden. + Ovanför varje fönster finns en verktygsrad, där knapparna blir aktiva när ett element i fönstret markeras. Det här erbjuder ett sätt som du kan komma åt åtgärderna som tillhandahålls för det elementet. Det andra sättet är sammanhangsberoende menyer, som dyker upp vid klick med höger musknapp som beskrivs nedan. + I IDEA-fönsterläge finns det ytterligare två små knappar till vänster i namnlisten på fönstret Hantering av automake: en triangelformat högerpil, och en knapp med en punkt. Pilknappen används för att stänga fönstret. Å andra sidan, behåller punktknappen fönstret öppet även om ett annat fönster väljs i &tdevelop;. (Annars stängs fönstret Hantering av automake automatiskt så fort ett annat fönster får inmatningsfokus.) + + + + + + + +Översiktsfönstret + +Översiktsfönstret innehåller en trädlista med alla kataloger i projektet som innehåller programfiler, dokumentation eller data. Varje sådan katalog innehåller en fil Makefile.am och är känd som ett delprojekt i Hantering av automake. Det finns tre typiska delprojekt i ett &kde;-baserat projekt, som visas på bilden ovan: + + + src: källkodsfiler för programmet, + doc: användarmanualen eller handboken, + po: utdrag av strängar i dina källkodsfiler som kräver översättning till andra mänskliga språk (t.ex. fönsterrubriker, menynamn, namn på knappar, text i dialogrutor och meddelanden av olika slag). + + +Observera att delprojektet doc alltid har ett delprojekt som heter en, som du kan se om du klickar på symbolen + intill ordet doc. Det beror på att grundspråket för all dokumentation i KDE är engelska (en). Om programmet blir en del av KDE, kan KDE:s översättningsgrupper översätta din dokumentation från engelska till andra språk, och översättningarna hamnar då i andra delprojekt, som sv (svenska), de (tyska) eller fr (franska). Strängarna i delprojektet po kan också översättas och lagras i andra filer under po, för att på så sätt låta programmet hanteras av personer som inte kan engelska. + +Delprojekten doc och po tjänar olika syften. doc innehåller dokumentation, som en användarhandbok, medan po innehåller textsträngar som kan översättas från användargränssnittet som ingår i programmets källkod. + +Översiktsfönstret fungerar bland annat som ett navigeringsverktyg. Om du väljer ett delprojekt i översiktsfönstret, visas motsvarande detaljinformation i detaljfönstret. + + + + +Detaljfönstret + +Detaljfönstret innehåller en lista med alla filer i delprojektet som för närvarande är markerat i översiktsfönstret, samt kompilerings-, bygg- och installationsreglerna för delprojektet. På så sätt kan fönstren tillsammans ge dig möjlighet att komma åt alla komponenter i programmet, och all information om hur det ska kompileras, byggas och installeras. + + +Mål + +Trädlistan i detaljfönstret har två nivåer. Den översta nivån består av så kallade mål i Hantering av automake, och nästa nivå innehåller listor med filer som används för att skapa varje mål. + +Det här konceptet med ett mål i Hantering av automake, skiljer sig något från vad ett mål i en Makefile oftast är. I korthet: + + Definitionen av hur ett antal filer ska kompileras, byggas eller installeras är känt som ett mål i Hantering av automake, men som en variabel i själva Automake. + Ett mål i make är ofta något helt annat, eftersom det kan vara en väljare till kommandot make (t.ex. make install, make clean). + Vissa av variablerna i Makefile.am representerar dock ett underliggande delmål för make. + + + + + + +Navigera i Hantering av automake + +Både i översiktsfönstret och detaljfönstret kan du vänsterklicka på + eller - intill ett delprojekt eller målnamn för att expandera eller dra ihop trädvyn. Om du gör det med ett delprojekt i översiktsfönstret, visas eller döljs delprojektets nästa underliggande nivå (om det finns någon). Om du gör det med ett mål i detaljfönstret, visas eller döljs listan med filer som ingår i målet. + + + +Öppna en fil för redigering + +Om du vänsterklickar på ett filnamn i detaljfönstret, öppnas motsvarande fil i &tdevelop;s redigeringsfönster. + + + + +Aktivera verktygsradsknapparna i Hantering av automake + +Om du vänsterklickar på ett delprojektnamn i översiktsfönstret eller ett mål i detaljfönstret, markeras namnet och vissa knappar i verktygsraden blir aktiva längst upp i fönstret. + + + Du rekommenderas använda höger musknapp och sammanhangsberoende menyer, istället för knapparna i verktygsraden, eftersom det är då mycket enklare att se och förstå vad du gör. + Åtgärder för delprojekt och mål har långtgående effekter för struktur, kompilering, byggning och installation av programmet. + + + + + +Välja åtgärder och sammanhangsberoende menyer + +Om du högerklickar på ett delprojektnamn, mål eller fil, dyker en meny upp och du kan därefter välja åtgärder att utföra för delprojektet, målet eller filen, som att lägga till ett mål i delprojektet, lägga till en fil i målet eller logiskt ta bort den markerade filen från sitt mål. + + + + + + + +Sammanhangsberoende menyer i Hantering av automake + +Följande avsnitt förklarar kortfattat vilka åtgärder som menyerna gör tillgängliga, som dyker upp vid klick med höger musknapp i fönstret Hantering av automake. Avsnitten är bara avsedda som en översikt. Du hittar detaljerade beskrivningar av de flesta åtgärderna i ett senare kapitel. + + + +Sammanhangsberoende menyn för en fil + +När du högerklickar på ett filnamn i detaljfönstret, dyker följande meny upp som låter dig välja en av flera åtgärder att utföra med filen. I bilden nedan, markerades ikonfilen hi-16app-mittpgm.png i målet Ikondata i kde_icon från delprojektet mittpgm/src. + + + + + + + + + + Det huvudsakliga alternativet i den sammanhangsberoende menyn är att Ta bort filen från målet (dvs. den kommer inte längre att användas för att kompilera, bygga eller installera det målet). + Alternativet CVS erbjuder en hel del olika CVS-åtgärder för filen. + Alternativet Öppna med låter dig öppna filen med ett antal editorer eller med vilket program som helst (t.ex. kan du öppna ikonfilen i vårt exempel med Kicon). + Alternativet Perforce används för liknande åtgärder som i CVS, men med det kommersiella versionshanteringssystemet Perforce. + + + + + + + +Sammanhangsberoende menyn för ett mål + +När du högerklickar på ett mål i detaljfönstret, dyker följande meny upp som låter dig välja en av flera åtgärder att utföra med det. I bilden nedan, markerades målet mittpgm (Program i bin) i delprojektet mittpgm/src. + + + + + + + + + + Alternativet Inställningar för ett mål gäller bara källkodsfiler. I motsvarande dialogruta kan du ange länkargument och sökvägar där bibliotek kan hittas, och du kan ange en lista med verkliga bibliotek som ska länkas med i programmet. + Alternativet Skapa ny fil visar en dialogruta där du kan ange filnamnet och filtypen som ska skapas (i en kombinationsruta). + Alternativet Lägg till befintliga filer visar en dialogruta där du kan lägga till en befintlig fil till målet. + Alternativet Ta bort för ett mål låter dig logiskt ta bort målet och alla dess filer från projektstrukturen. + Alternativet Gör mål aktivt gäller bara för mål som innehåller källkodsfiler. Nya filer läggs alltid till i ett sådant aktivt mål. + Alternativet Bygg mål anropar alla nödvändiga kompilerings- och byggåtgärder för att bygga koden enbart för detta mål. + + + + + + + +Sammanhangsberoende menyn för ett delprojekt + +När du högerklickar på ett delprojekt i översiktsfönstret, dyker följande meny upp som låter dig göra större ändringar i projektets struktur och sättet det kompileras, byggs och installeras. Du kan använda den för att utöka eller ändra den grundläggande projektstrukturen som programguiden har skapat. + + + + + + + + + + + Alternativet Inställningar för ett delprojekt styr sättet som delprojektet kompileras, byggs och installeras. Dialogrutan som dyker upp har flikar för Kompilator, Deklarationsfiler, Prefix och Byggordning. + Alternativet Lägg till delprojekt skapar en ny katalog och Makefile.am skelettfil. + Alternativet Lägg till mål visar en dialogruta, där du kan ställa in regler för kompilering, byggning eller installation för en filgrupp inne i delprojektet. + Lägg till tjänst (... ännu inte skrivet ...) + Lägg till program (... ännu inte skrivet ...) + Lägg till befintliga delprojekt (... ännu inte skrivet ...) + Alternativet Ta bort delprojekt i den sammanhangsberoende menyn för ett delprojekt är det riktiga sättet att ta bort ett delprojekt. Det justerar filerna Makefile.am på motsvarande sätt. Du erbjuds också möjlighet att ta bort alla filer (eller länkar) i motsvarande underkatalog. Uppenbarligen ska funktionen användas med försiktighet. + Alternativet Bygg anropar alla nödvändiga kompilerings- och byggåtgärder för att bygga koden för enbart detta delprojekt. + Tvinga omredigering (... ännu inte skrivet ...) + Rensa (... ännu inte skrivet ...) + Installera (... ännu inte skrivet ...) + Installera (som systemadministratör) (... ännu inte skrivet ...) + + + + + + + + + + + + + +Automake-projekt +autoproject +&automake; +&autoconf; +&libtool; + +(... ännu inte skrivet ...) + + + +Autoconf +configure-skriptet +config.status-skriptet +Makefile.in +config.h.in + +Makefile.in till Makefile + +prefix = @prefix@ +INSTALL = @INSTALL@ +build_triplet = @build@ +CXX = @CXX@ + + +prefix = /home/bernd/kde3 +INSTALL = /usr/bin/ginstall -c -p +build_triplet = i686-pc-linux-gnu +CXX = g++ + + +config.h.in till config.h + +/* Define if you have libz */ +#undef HAVE_LIBZ +/* The size of a `int', as computed by sizeof. */ +#undef SIZEOF_INT + + +/* Define if you have libz */ +#define HAVE_LIBZ 1 +/* The size of a `int', as computed by sizeof. */ +#define SIZEOF_INT 4 + + + + + + +Automake + +(... ännu inte skrivet ...) + + + + + +&tdevelop;s Hantering av automake + +
+En skärmbild av Hantering av automake + + + +
+ +
+ + + +Bygga och installera bibliotek + + + +-rpath +PIC +static +insticksprogram: no-undefined + + + + + +
+ + + + +Egna byggfiler och byggskript +Makefile +build.xml + +(... ännu inte skrivet ...) + + + + + + +Kompilatorinställningar + +(... ännu inte skrivet ...) + + + + + + +Byggalternativ + +(... ännu inte skrivet ...) + + + +
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/raw-project-warning.png b/tde-i18n-sv/docs/tdevelop/tdevelop/raw-project-warning.png new file mode 100644 index 00000000000..3b1c0d88f3b Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/raw-project-warning.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/run-button.png b/tde-i18n-sv/docs/tdevelop/tdevelop/run-button.png new file mode 100644 index 00000000000..cb7f6acbe3c Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/run-button.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/script_location.png b/tde-i18n-sv/docs/tdevelop/tdevelop/script_location.png new file mode 100644 index 00000000000..79ef0721ac6 Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/script_location.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/select-user-interface-0.png b/tde-i18n-sv/docs/tdevelop/tdevelop/select-user-interface-0.png new file mode 100644 index 00000000000..9ac0e52ae67 Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/select-user-interface-0.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/select-user-interface.png b/tde-i18n-sv/docs/tdevelop/tdevelop/select-user-interface.png new file mode 100644 index 00000000000..c844d46b829 Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/select-user-interface.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/setup.docbook b/tde-i18n-sv/docs/tdevelop/tdevelop/setup.docbook new file mode 100644 index 00000000000..d045aca5c59 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/setup.docbook @@ -0,0 +1,3011 @@ + + + + + BerndPol + + + + +Anpassa &tdevelop; + +&tdevelop; är en mycket kraftfull och flexibel integrerad utvecklingsmiljö, som erbjuder mÃ¥nga möjligheter för anpassning enligt dina behov. För att göra inställningar, välj Inställningar Anpassa &tdevelop;.... Det gör att inställningsdialogrutan dyker upp, som bestÃ¥r av ett fönster för att välja inställningar till vänster och inställningsdialogrutan till höger, vars innehÃ¥ll varierar beroende pÃ¥ gruppen av inställningar du valt. + + + + + + + +Välj en grupp av inställningar + + Välj en grupp av inställningar + + + +Vi beskriver inställningarna i en annan ordning, uppdelat i huvudämnena Allmänna inställningar, Anpassa dokumentationen och Avancerade inställningar, vilket leder till en intuitivare läsupplevelse. +Om du vill slÃ¥ upp en viss grupp av inställningar direkt, använd en av följande länkar. + + + Allmänt + Användargränssnitt + Filmallar +Editor + Förkortningar + Skript + Menyn Verktyg + Externa verktyg + Dokumentation + Kodsnuttar + Fillista + Filväljare + Skapa ny klass i C++ + Formatering + Tolkning av C++ + + + +Allmänna inställningar + +Allmänna inställningar rör de vanligare aktiviteterna för att anpassa &tdevelop;, där det finns: + + + Allmän inställning + + + Välja användargränssnitt + + + +Aktiviteter för källkodsredigering + + Välja en editor + + + Välja stil för källkodsformatering + + + Ställa in verktyget för kodsnuttar + + + + + Anpassa filväljaren + + + + +Allmän inställning + +Inställningsdialogrutan Allmänt lÃ¥ter dig definiera grundläggande beteende hos &tdevelop; som sällan ändras under dagligt arbete. Det rör: + + + +Allmänna projektinställningar som + + + definiera en standardprojektkatalog som &tdevelop; ska använda för nya projekt. + bestämma om du vill att &tdevelop; automatiskt ska ladda projektet du senast arbetade med. + + + + + +Välja ett teckensnitt för de oftast använda utmatningsfönstren, nämligen: + + + + +Meddelandeutmatningen som &tdevelop; använder för att visa t.ex. kompileringsprocesser, och + + +Programutmatningen, som visar fel- och tillstÃ¥ndsinformation som rör ett program som kör. + + + + + + + +En del vanliga beteenden som rör rader som visas i fönstret Meddelandeutmatning, nämligen: + + + +om lÃ¥nga rader radbryts, och + + +om meddelanden om katalogbyte som ges av make visas. + + + +DetaljnivÃ¥n för meddelanden om kompileringsprocessen som visas i fönstret Meddelandeutmatning. + + + + + + + + + + Dialogrutan för allmänna inställningar + + + + + +Ladda senaste projekt vid start + +Markera den här kryssrutan om du vill fortsätta att arbeta med det senaste projektet du arbetade med. Det gör att &tdevelop; automatiskt laddar projektet vid start. Det visas oftast med samma tillstÃ¥nd som du lämnade arbetet, sÃ¥ att du enkelt kan fortsätta. + + + + + +Standardprojektkatalog: + +Normalt använder &tdevelop; en gemensam överliggande katalog för alla nya projekt. Skriv in absolut sökväg till denna gemensamma katalog i rutan eller välj den i katalogstrukturen. &tdevelop; placerar alla nya projekt här som underkataloger. +Du kan förstÃ¥s ändra katalogsökvägen för ett nytt projekt när du ställer in det i Projektguiden. + + + + +Fönsterteckensnitt + +Fönstret Programutmatning används för att visa fel- och tillstÃ¥ndsinformation frÃ¥n program som körs inne i &tdevelop;. Det är information som programmen oftast skickar till konsollen när de körs fristÃ¥ende. AlltsÃ¥ behöver du inte lämna den grafiska utvecklingsmiljön när du testar programmet du för närvarande arbetar med. +För att välja ett lämpligt teckensnitt för fönstret Meddelandeutmatning, klicka pÃ¥ knappen Fönsterteckensnitt som visar teckensnittet som för närvarande är valt (det stÃ¥r Arial pÃ¥ bilden ovan). &kde;:s vanliga dialogruta Välj teckensnitt dyker upp, där du kan välja teckensnittet som ska användas. +När &tdevelop; först startar initieras teckensnittsinställningen till det standardteckensnitt som &kde;-användaren har inställt. Den här inställningen är fast, sÃ¥ om du ändrar Inställningar Utseende och teman Teckensnitt i Inställningscentralen pÃ¥verkas inte &tdevelop;s teckensnittsval. Du mÃ¥ste explicit välja ett nytt teckensnitt för fönstret Meddelandeutmatning. + + + + +Kompilatorutmatning + +&tdevelop; förbehandlar meddelanden som fönstret Meddelandeutmatning visar under byggprocessen för att filtrera onödig information. Du kan styra detaljnivÃ¥n som &tdevelop; visar med kombinationsrutan i det här fältet. + + +Mycket kort +Visa bara varningar, fel och filnamnen som kompileras. + + +Kort +Undertryck alla kompileringsflaggor, och ändra format till nÃ¥got mer läsbart. + + +Fullständig +Visa all utmatning utan förändring. + + + +Det finns ett alternativt sätt att ändra detaljnivÃ¥ för kompilatorutmatning. Högerklicka bara i fönstret Meddelandeutmatning och välj motsvarande detaljnivÃ¥ i menyn som dyker upp. + + + + +Radbrytning + +Normalt radbryter &tdevelop; lÃ¥nga rader i fönstret Meddelandeutmatning sÃ¥ att värdefull information inte lätt förbises. Ibland kan detta skräpa ner lÃ¥nga meddelandelistor. Ta bort kryssmarkeringen om du inte vill att radbrytning ska ske. +Det finns ett alternativt sätt att ändra radbrytningen. Högerklicka bara i fönstret Meddelandeutmatning och markera eller avmarkera alternativet Radbrytning i menyn som dyker upp. + + + + +Meddelanden om katalogbyte + +Verktyget make visar oftast meddelanden som Entering directory eller Leaving directory när byte av arbetskatalog sker. Eftersom det här skräpar ner listan med meddelanden i fönstret Meddelandeutmatning undertrycker &tdevelop; normalt dessa meddelanden. Markera kryssrutan om du vill observera vilka kataloger som make arbetar i. +Ändringar av inställningen pÃ¥verkar bara behandling av nya meddelanden. Gamla katalogbytesmeddelanden förblir synliga när den här funktionen stängs av. + + + + +Integrering med Designer för grafiskt gränssnitt + +Det här lÃ¥ter dig välja hur du vill att .ui-filer ska visas i &tdevelop;. &tdevelop; levereras med sin egen Designer för grafiska gränssnitt som heter KDevDesigner. Den kan antingen inbäddas eller köras som ett separat program. Qt Designer kan ocksÃ¥ användas för att redigera .ui-filer. + + Använd &tdevelop;s inbäddade Designer Använder &tdevelop;s egen Designer inbäddad i &tdevelop;. + Kör &tdevelop; Designer som ett separat program Programmet KDevDesigner körs separat i ett eget fönster. + + + + + + KDevDesigner i eget fönster + + + + Kör Qt Designer Qt-Designer frÃ¥n installationen av Qt kommer att startas externt, när du klickar pÃ¥ en .ui-fil i &tdevelop;. + + + + + +Terminalemulering + +Här väljer du vilken terminal du vill ska integreras i KDevelop. + + Använd &kde;-inställning Använder &kde;:s inställning som anges i Inställningscentralen under fliken &kde;-komponenterKomponentväljare, som anger vilket terminalprogram som används av alla &kde;-program som behöver en terminal. + Annan: Välj nÃ¥gon annan terminal som skiljer sig frÃ¥n den förvalda. + + + + + + + + + + +Välja användargränssnitt + + + användargränssnitt + byta läge + + byta gränssnittsläget + +Som redan nämnts i kapitlet Tillgängliga lägen för användargränssnitt finns det fem olika sätt som &tdevelop;s arbetsomrÃ¥de kan ställas in, nämligen: + + + Förenklat IDEA-fönsterläge + Det här är en förenklad version av IDEA-användargränssnittet. Det är konstruerat för att vara enkelt och rent. Det använder inte heller dockade verktygsvyer. + + IDEA-fönsterläge + Det här är en klon av IDEA-användargränssnittet som liknar fliksidläge, och är förvalt läge. + + Underramsläge + Alla verktygsvyer är dockade i huvudramen frÃ¥n början. Editorn och bläddringsvyer existerar som toppnivÃ¥fönster inne i huvudramens vyomrÃ¥de. Ett typiskt exempel pÃ¥ detta användargränssnitt är MS Visual Studio 6.0. + + Fliksidläge + Alla verktygsvyer är dockade i huvudramen frÃ¥n början. Editorn och bläddringsvyer läggs ovanpÃ¥ varandra i ett flikfönster. Ett typiskt exempel pÃ¥ detta användargränssnitt är KDEStudio, en annan C++ integrerad utvecklingsmiljö i KDE-världen. + + ToppnivÃ¥läge + Alla editorvyer, bläddringsvyer och verktygsvyer är toppnivÃ¥fönster (direkt pÃ¥ skrivbordet). Huvudkomponenten innehÃ¥ller bara menyn, verktygsrader och statusraden. Ett typiskt exempel pÃ¥ detta användargränssnitt är Borland Delphi 6.0. + + +För att byta användargränssnittets läge välj Inställningar Anpassa &tdevelop;... i menyraden. Dialogrutan Anpassa KDevelop dyker upp, där du ska välja Användargränssnitt i trädet till vänster. DÃ¥ visas följande inställningsdialogruta till höger: + + + + + + +Välj ett användargränssnittsläge + Välj ett användargränssnittsläge + + + +Markera alternativknappen för gränssnittsläget du vill byta till, och klicka därefter pÃ¥ Ok. + +Glöm inte att starta om &tdevelop; för att alla dessa val ska fÃ¥ effekt. + +Om du antingen valt Förenklat IDEA-fönsterläge, IDEA-fönsterläge eller Fliksidläge blir ytterligare tvÃ¥ inställningsrutor tillgängliga: Använd flikar och Använd stäng när musen hÃ¥lls stilla. De gör det möjligt att anpassa under vilka omständigheter flikar visas ovanför dokumentfönster, och om du kan stänga dokument med ett klick pÃ¥ flikens ikon. + +I Förenklat IDEA-fönsterläge och IDEA-fönsterläge finns ännu en inställningsruta tillgänglig, Fliklayout för verktygsvy som lÃ¥ter dig välja mellan olika storlekar hos flikarna för verktygsvyer som omger huvudarbetsytan i dessa lägen. + + + +Anpassa visningen av flikraden för dokumentation + +Med IDEA-fönsterläge och fliksidläge finns det normalt namngivna flikar ovanför dokumentfönstren, sÃ¥ att du enkelt kan välja olika dokument med ett vänsterklick. Om du föredrar att ge mer utrymme till dokumentfönstren pÃ¥ huvudarbetsytan i &tdevelop;, kan du byta till ett annat beteende i inställningsrutan Använd flikar. + + + + Alltid + Det här är standardvärdet: Visa en flik som bestÃ¥r av en ikon och dokumentnamnet ovanför varje dokumentfönster pÃ¥ huvudytan av skärmen i &tdevelop;. + + + Vid mer än en + Visa inte en flik när bara ett dokument är öppet. Om mer än ett dokument är öppet, visar &tdevelop; dock en flikrad som motsvarar valet Alltid ovan. Du kan vilja använda det här läget om du oftast arbetar med ett enda dokument, eftersom läget tillhandahÃ¥ller ett större vertikalt utrymme. + + + Aldrig + Visa aldrig en flikrad för att välja dokument. Du kanske föredrar det här läget om du sällan använder musen för att byta mellan dokument. Det tillhandahÃ¥ller ett större vertikalt utrymme för alla dokumentfönster. Använd menyn Fönster i &tdevelop; för att välja ett annat dokumentfönster eller stänga nÃ¥got. + + + + + + +Ställa in att stänga ett dokument genom att klicka pÃ¥ dess flik + +När du anpassar &tdevelop; att visa flikraden för dokument, antingen alltid eller när mer än ett dokument är öppet pÃ¥ huvudarbetsytan, kan du lägga till ytterligare en funktion till flikarna förutom möjligheten att välja dokument. Använd inställningsrutan Använd stäng när musen hÃ¥lls stilla för detta. + + + + Nej + Det här är standardbeteendet. Ingen extra funktion läggs till för flikarna. De kan bara användas för att välja dokumentfönster med vänsterklick. + + + Ja + När du markerar den här alternativknappen, lÃ¥ter &tdevelop; dig stänga ett dokumentfönster med ett vänsterklick. Använd musen för att peka pÃ¥ den lilla ikonen till vänster i flikraden. Den ändras till en stängningssymbol. Klicka nu med vänsterknappen pÃ¥ den ändrade symbolen, sÃ¥ stänger &tdevelop; motsvarande dokumentfönster. + + + Ja, fördröjd + När den här alternativknappen är markerad, lÃ¥ter &tdevelop; dig stänga ett dokumentfönster som beskrivits för fallet Ja ovan. Ikonen ändras dock inte omedelbart, utan det blir en kort fördröjning innan stängningsikonen dyker upp. + + + + + + +Anpassa fliklayout för verktygsvyn + +Inställningsrutan Fliklayout för verktygsvy är bara tillgänglig i IDEA-fönsterläge. Använd alternativknapparna för att ställa in utseendet för verktygsvyernas flikar som omger huvudarbetsytan i detta läge. + + + + Ikoner + + Varje flik visar bara en ikon. Om motsvarande verktygsvy visas, öppnas fliken och en beskrivande text för verktygsvyn visas. Du kan vilja använda det här läget om du arbetar med en bildskärm med begränsad upplösning. + Ikonerna är dock inte särskilt beskrivande. Om du vill ta reda pÃ¥ vilken verktygsvy som hör ihop med en given flik, peka pÃ¥ den med musen och vänta en sekund. Ett kort verktygstips dyker dÃ¥ upp med verktygsvyns namn. + + + + Text + Det här är standardläget för visning av verktygsvyernas flikar. Varje flik visar namnet pÃ¥ tillhörande verktygsvy. + + + Text och ikoner + Om du tycker att den vanliga visningen av text för verktygsvyerna verkar för trist, och du arbetar pÃ¥ en bildskärm med hög upplösning, kan du vilja markera den här alternativknappen. Den gör att namnet för motsvarande verktygsvy visas pÃ¥ varje flik med en ikon till vänster om det, vilket gör det enklare att skilja pÃ¥ flikarna. Ett exempel visas pÃ¥ illustrationen Radbrytning av verktygsvyernas flikar nedan. + + + + + + +Radbrytning av verktygsvyernas flikar + +Om du valde att lÃ¥ta IDEA-fönsterlägets flikar för verktygsvyer visa text (med eller utan tillhörande ikoner) behöver du inte oroa dig för att de döljs bakom nÃ¥got verktygsvyfönster. Om ett av de nedre verktygsvyfönstren upptar mer utrymme än vad som är tillgängligt för att visa alla (vertikala) flikar, radbryts de som illustrationen visar: + + + + + + +Verktygsvyernas flikar radbryts för att inte döljas bakom ett annat fönster som visas + Verktygsvyernas flikar radbryts för att inte döljas bakom ett annat fönster som visas + + + +Det aktiva verktygsvyfönstret mÃ¥ste visas fast (utan överlappning), och dela arbetsytan med andra fönster, för att tvinga fram en sÃ¥dan radbrytning av flikar. Klicka pÃ¥ den lilla fyrkanten i fönsterramen för att Ã¥stadkomma läget som visas i exemplet. + + + + + + + +Filmallar + + + + + + + +Anpassa filmallar + Anpassa filmallar + + + + + +Välja en editor + +&tdevelop; lÃ¥ter dig välja ditt favoritverktyg för textredigering. Markera raden Editor i trädet till vänster i fönstret Anpassa KDevelop. Följande dialogruta visas till höger: + + + + + + +Välja en editor + Välja en editor + + + +För att välja en ny editor, klicka pÃ¥ pilen i kombinationsrutan. Beroende pÃ¥ gränssnitten för redigeringsdelprogram som &kde;-versionen har kompilerats med, ser du en lista med editorer som du kan välja bland (se den viktiga anmärkningen nedan om detta). Klicka pÃ¥ editorn som du vill ha och klicka pÃ¥ Ok. För närvarande finns tvÃ¥ möjligheter: + + + + Inbyggd avancerad texteditor + Det här är &kde;:s vanliga Kate redigeringsdelprogram. + + + + Qt Designer-baserad texteditor + Det här är editorn som &Qt; tillhandahÃ¥ller i sin Designer-komponent. + + + +Dessa redigeringsgränssnitt är fullständigt integrerade med &tdevelop;s integrerade utvecklingsmiljö. I synnerhet tillhandahÃ¥lls möjligheten att hoppa till källkodsraden som orsakat ett fel genom att bara klicka pÃ¥ felmeddelandet i fönstret Meddelandeutmatning. + +Att byta editor pÃ¥verkar inte filer som redan är öppna. Det finns tvÃ¥ sätt att fortsätta. Stäng antingen alla öppna textfönster och öppna dem igen ett i taget. Eller stäng helt enkelt hela projektet och öppna det igen. Fönstren öppnas dÃ¥ automatiskt med det nya texteditorgränssnittet. + +KDevelop lÃ¥ter dig använda editorgränssnitt som har registrerats med &kde; och som tillhandahÃ¥ller ett KatePart-gränssnitt. Om du saknar en av möjligheterna som visas ovan, kontrollera i din &kde;-installation om motsvarande KPart installerats pÃ¥ ett riktigt sätt. + +Vad som ska göras om filen har ändrats externt: + + + Gör ingenting + Filen markeras som ändrad externt, och användaren blir tillfrÃ¥gad om att bekräfta alla försök att skriva över den. + + + Underrätta användaren + En dialogruta underrättar användaren att filen har ändrats, och erbjuder användaren att uppdatera filen. + + + Ladda om filen automatiskt om det är säkert, underrätta annars användaren + Alla filer som inte är ändrade i minnet, uppdateras och en varning visas vid eventuella konflikter. + + + + + +Förkortningar för ordkomplettering + +(... ännu inte skrivet ...) + + + +Skript + +(... ännu inte skrivet ...) + + + +Lägga till &kde;:s standardprogram i verktygsmenyn + +(... ännu inte skrivet ...) + + + +Lägga till externa program i menyer + +(... ännu inte skrivet ...) + + +Lägga till i verktygsmenyn + +(... ännu inte skrivet ...) + + + +Lägga till i sammanhangsberoende meny för filer + +(... ännu inte skrivet ...) + + + +Lägga till i sammanhangsberoende meny för kataloger + +(... ännu inte skrivet ...) + + + + + +Välja en formateringsstil för källkod + +&tdevelop; formaterar automatiskt källkodstext med en fördefinierad stil. Stilen är mycket anpassningsbar. + +Funktionen för att formatera om källkod är för närvarande bara tillgänglig för C, C++ och &Java;. I synnerhet kan du inte använda den för skriptsprÃ¥k som t.ex. PHP. Det beror pÃ¥ att &tdevelop; använder programmet astyle för att implementera funktionen. + +För att ställa in en specifik formateringsstil, välj Inställningar Anpassa &tdevelop;... i menyraden. Dialogrutan Anpassa KDevelop dyker upp, där du ska välja Formatering av källkod i trädet till vänster. DÃ¥ visas en serie av tre flikar med inställningar till höger, benämnda Allmän, Indentering och Annan. + +Alla stiländringar gäller bara för nyinmatad text. Om du vill ändra formateringsstil för en befintlig källkodstext mÃ¥ste du uttryckligen använda kommandot Redigera Formatera om källkod. + +Det exakta resultatet av dessa definitioner av formateringsstil beror pÃ¥ editorn du använder. För närvarande är de flesta inställningar anpassade för redigeringsdelprogrammet Kate (Inbäddningsbar avancerad texteditor). Vissa andra editorer (t.ex. Qt-editorn) kan bero pÃ¥ sina egna formateringsinställningar. I dessa fall mÃ¥ste du experimentera för att ta reda pÃ¥ exakta effekterna av stilinställningarna som tillhandahÃ¥lls här. + +Det kan finnas oförenligheter mellan inställning av stilar som tillhandahÃ¥lls här och editorn du använder, i sÃ¥dan utsträckning att det i extrema fall till och med kan förstöra dina filer. Försäkra dig om att du har en säkerhetskopia av dina källkodsfiler innan du provar inställningarna med en editor som inte är standard i &kde;. + + +Allmänna formateringsinställningar + +Fliken Allmänt i dialogrutan Formatering av källkod lÃ¥ter dig välja en av fem fördefinierade formateringsstilar för källkod. + + + + + + +Allmän inställning av formateringsstil för källkod + Allmän inställning av formateringsstil för källkod + + + +Ett exempel pÃ¥ formaterad källkod visas i fältet till höger. Om du inte tycker om nÃ¥gon av de fördefinierade stilarna kan du klicka pÃ¥ den översta alternativknappen Användardefinierad, och definiera en egen formateringsstil för källkod du föredrar under de övriga tvÃ¥ flikarna som dÃ¥ blir tillgängliga. + +För närvarande illustreras bara de fördefinierade formateringsstilarna för källkod med en exempeltext. Om du bestämmer dig för att definiera din egen stil, finns ingen visning av exempel tillgänglig. Du mÃ¥ste experimentera med verklig källkodstext för att skräddarsy inställningarna som du vill ha dem. + + + + +Inställning av indenteringsstil + +Lämplig indentering är det huvudsakliga sättet att öka läsbarhet för källkodstext. Om du väljer fliken Indentering i dialogrutan Formatering av källkod visas en serie med formateringsval för indentering grupperade i följande tre rutor: + + + + + + +Inställning av indenteringsstil för källkod + Inställning av indenteringsstil för källkod + + + + + +Förvalda inställningar + +Fördefinierade formateringsval gör att källkodstexten liknar formateringsstilen enligt ANSI: + +namespace foospace +{ + int Foo() + { + if (isBar) + { + bar(); + return 1; + } + else + return 0; + } +} + + + + + +Definiera indenteringsbredd och tecken + +Alternativknapparna grupperade under Utfyllnad anger hur indentering av källkodstexten visas. + + + + Använd flikar + + Det här gör att editorn infogar ett tabulatortecken för varje indenteringsnivÃ¥. Tabulatorbredden är fördefinierad i editorns inställningar (oftast kolumner om 8 eller 4 tecken). Använd Inställningar Anpassa editor... för att definiera om den. + Proceduren för att definiera verklig tabulatorbredd beror pÃ¥ editorn du valt under inställningssteget Välja en editor. Du mÃ¥ste slÃ¥ upp motsvarande editors hjälp för att ta reda pÃ¥ den. + + + + Använd mellanslag + Om du markerar alternativknappen, lägger editorn till det antalet mellanslag för varje indenteringsnivÃ¥. Ändra värdet frÃ¥n normalvärdet 2 till indenteringsbredden du föredrar. + + + + + + +Indentera objekt + +Det här anger vilka (av C/C++) konstruktioner som formateras med en extra indentering frÃ¥n den aktuella indenteringsnivÃ¥n. + +Normalt används bara extra indentering för namnrymder och etiketter. Du kanske vill experimentera med olika inställningar för att anpassa extra indenteringar som du vill ha dem. + + + + +Fortsättning + +Inställningarna som är grupperade här gäller de fall när källkodsformateringen automatiskt radbryter lÃ¥nga källkodsrader. De tar hänsyn till tvÃ¥ specialfall, nämligen att det ska finnas tillräckligt med utrymme för källkoden för djupa indenteringsnivÃ¥er och att villkor ska fÃ¥ extra indentering för fortsättningsrader sÃ¥ att de utmärks pÃ¥ ett riktigt sätt. + +Det här gäller bara för fall med statisk radbrytning när en fast maximal radlängd används i källkodstexten. Om du ställer in editorn för att bara dynamiskt radbryta lÃ¥nga rader vid visning (som är möjligt i redigeringsdelprogrammet &kate;) visas oftast inte effekten av de här inställningarna. + + + + Maximum i sats + + Den här inställningen begränsar maximal möjlig indentering av fortsättningsrader sÃ¥ att det finns tillräckligt med utrymme för att texten ska förbli läsbar. Inga fortsättningsrader indenteras nÃ¥gonsin förbi kolumnantalet som du väljer i det här fältet. + Standardinställningen är 40 kolumner (en halv standardsida pÃ¥ 80 kolumner). Du kan vilja öka det här värdet för att hantera bredare papper (t.ex. om du använder utskrift av källkod pÃ¥ liggande format). Eller minska värdet pÃ¥ motsvarande sätt för att ta hänsyn till större marginalinställningar för dina utskrifter. + + + + Minimum i villkor + + Villkor eller källkod som till exempel följer en tilldelningsoperator ska ofta fÃ¥ en extra indentering för fortsättningsrader för att göra texten läsbar. Värdet pÃ¥ den extra indenteringen definieras här. + Standardvärdet är TvÃ¥ gÃ¥nger nuvarande, vilket betyder att fortsatta villkor fÃ¥r en extra indenteringsnivÃ¥ jämfört med indenteringsstorleken du valt i gruppen Utfyllnad. Du kan ändra den extra indenteringen till ett annat fast värde (inklusive noll) med pilarna, eller genom att direkt skriva in värdet. + + + + + + + + + + +Annan inställning av formatering + + + + + + +Annan inställning av formateringsstil för källkod + Annan inställning av formateringsstil för källkod + + + + + +Styra positionen av hakparenteser + +Alternativknapparna i (den nÃ¥got felaktigt benämnda) gruppen Hakparenteser styr positionen av klamrar som avdelar (C/C++) källkodstext. Det finns tre möjligheter att välja bland. + + + + Bryt + + Det här infogar en radbrytning innan varje inledande klammer. BÃ¥da avdelande klamrar i alla block placeras pÃ¥ samma indenteringsnivÃ¥ som blockets huvudsats. + +namespace foospace +{ + int Foo() + { + if (isBar) + { + bar(); + return 1; + } + else + return 0; + } +} + + + + + Bifoga + + Det här behÃ¥ller inledande klammern i ett block pÃ¥ samma nivÃ¥ som blockets huvudsats. Avslutande klamrar är pÃ¥ samma indenteringsnivÃ¥ som blockets huvudsats. Det avslutande else i en if-sats hÃ¥lls pÃ¥ samma nivÃ¥ som avslutande klammer i föregÃ¥ende block. +namespace foospace { + int Foo() { + if (isBar) { + bar(); + return 1; + } else + return 0; + } +} + + + + + Linuxstil + + Det här är en kompromiss mellan stilarna som anges ovan. Avgränsande klamrar för funktionsblock placeras pÃ¥ nya rader. Klamrar som inleder ett block i en villkorssats eller snurra behÃ¥lls pÃ¥ samma rad. +namespace foospace +{ + int Foo() + { + if (isBar) { + bar(); + return 1; + } else + return 0; + } +} + + + + + + + + +Styra extra mellanslag + +Normalt minimerar &tdevelop; användning av mellanslag i källkodstext. + + +if (isBar(fooArg)==barValue) + + +Du kan öka läsbarheten om du tvingar källkodsformateringen att infoga extra mellanslag pÃ¥ särskilda platser. + + + + Lägg till mellanslag omkring parenteser + + Vad som i själva verket avses är att lägga till mellanslag omkring text som är inom parenteser. Det ökar läsbarheten för funktionsargument och villkor. +if ( isBar( fooArg )==barValue ) + + + + + Lägg till mellanslag omkring operatorer + + Det här lägger till mellanslag omkring tilldelningar och jämförelseoperatorer för att öka läsbarheten. +if (isBar(fooArg) == barValue) + + + + + + + + +Styra formatering av enradskonstruktioner + +Det finns nÃ¥gra fÃ¥ tillfällen dÃ¥ du inte vill att källkodsformateringen ska dela en lÃ¥ng rad. Detta kan styras här för C/C++ kod. + + + + BehÃ¥ll enradssatser + Det här behÃ¥ller enradssatser tillsammans i vissa situationer även om de överskrider en fast maximal radlängd. + + + BehÃ¥ll enradsblock + Det här behÃ¥ller enradsblock tillsammans i vissa situationer även om de överskrider en fast maximal radlängd. + + + + + + + + + + + + +Anpassa verktyget för kodsnuttar + +När du redigerar i &tdevelop; kan du lagra delar av kod som ofta används som kodsnuttar. För att anpassa funktionerna hos delprogrammet för kodsnuttar, välj Inställningar Anpassa &tdevelop;... i menyraden. Dialogrutan Anpassa KDevelop dyker upp, där du ska välja Kodsnuttar i trädet till vänster. DÃ¥ visas följande dialogruta till höger: + + + + + + +Anpassa verktyget för kodsnuttar + Anpassa verktyget för kodsnuttar + + + + + +Aktivera förhandsgranskning av kodsnuttar + +Markera kryssrutan Visa kodsnuttens text i verktygstips om du vill visa den lagrade texten i ett verktygstipsfönster sÃ¥ fort du hÃ¥ller musmarkören över den kodsnuttens rubrik. + + + + +Arbeta med variabler i kodsnuttar + +Verktyget Kodsnuttar tillÃ¥ter varierande text pÃ¥ fördefinierade platser när som helst när du infogar en kodsnutt i en fil. För att Ã¥stadkomma det, tillhandahÃ¥ller Kodsnuttar sin egen variabelmekanism. Du kan ställa in dess beteende i gruppen Variabler. + + + + Avskiljare + Verktyget Kodsnuttar känner igen variabler i texten genom att omge variabelnamnet med särskilda skiljetecken. För att använda ett eget skiljetecken, ändra det fördefinierade tecknet $ i fältet Avskiljare. + + + Inmatningsmetod för variabler + + En dialogruta för varje variabel i en kodsnutt visar i tur och ordning en särskild dialogruta för varje variabel som verktyget hittar när den valda kodsnutten infogas. + En dialogruta för alla variabler i en kodsnutt visar en gemensam dialogruta där användaren mÃ¥ste fylla i värden för alla variabler innan kodsnutten infogas. + + + + + + + + + + +Fillista + +(... ännu inte skrivet ...) + + + + +Anpassa filväljaren + +&tdevelop; tillhandahÃ¥ller insticksprogrammet Filväljare som när det laddas vid start, gör det möjligt att navigera till vilken fil eller katalog som helst pÃ¥ systemet. + + + + + + +Filväljaren (i IDEA-läge) + Filväljaren (IDEA-läge) + + + +Beteendet hos Filväljaren kan anpassas i stor utsträckning. Välj Inställningar Anpassa &tdevelop;... i menyraden. Dialogrutan Anpassa KDevelop dyker upp, där du ska välja Filväljare i trädet till vänster. DÃ¥ visas följande dialogruta till höger. + + + + + + + +Anpassa filväljaren + Anpassa filväljaren + + + + + +Anpassa verktygsraden + +Det finns en verktygsrad längst upp i Filväljaren som kan anpassas som vanligt i gruppen Verktygsrad. + + + Lägg till en Ã¥tgärd i verktygsraden + + Markera ett objekt till listan till höger Aktuella Ã¥tgärder, som den nya Ã¥tgärden ska infogas efter. + + + Markera Ã¥tgärden som ska infogas i listan till vänster Tillgängliga Ã¥tgärder. + + + Klicka pÃ¥ (den övre) högerpilen mellan de bÃ¥da listorna. + Ã…tgärden tas bort frÃ¥n listan Tillgängliga Ã¥tgärder och infogas i listan Aktuella Ã¥tgärder under den markerade Ã¥tgärden. + + + + + Ta bort en Ã¥tgärd frÃ¥n verktygsraden + + Markera Ã¥tgärden som ska tas bort i listan till höger Aktuella Ã¥tgärder. + + + Klicka pÃ¥ (den nedre) vänsterpilen mellan de bÃ¥da listorna. + Den markerade Ã¥tgärden tas bort frÃ¥n listan Aktuella Ã¥tgärder och läggs tillbaka i listan Tillgängliga Ã¥tgärder. + + + + + Ordna om Ã¥tgärderna pÃ¥ verktygsraden + + Markera Ã¥tgärden som ska flyttas i listan till höger Aktuella Ã¥tgärder. + + + Klicka pÃ¥ uppÃ¥t- eller nerÃ¥tpilen till höger om listan. + Den markerade Ã¥tgärden flyttas upp eller ner i listan Aktuella Ã¥tgärder. + + + + + + +Definiera när innehÃ¥llet ska ändras + +Att uppdatera innehÃ¥llet i fönstret Filväljare tar tid och resurser, särskilt vid byte till en annan katalog. Därför är Filväljaren normalt inställd pÃ¥ sÃ¥ sätt att dess innehÃ¥ll bara ändras pÃ¥ begäran, dvs. när du väljer en annan katalog eller när du uttryckligen vill uppdatera innehÃ¥llet. + +Klicka pÃ¥ knappen Uppdatera i verktygsraden för att uppdatera innehÃ¥llet i Filväljaren. Den här verktygsradsknappen är dock inte normalt tillgänglig. Du mÃ¥ste först lägga till den där. + +Du kan ställa in Filväljaren att omedelbart visa vissa ändringar i ditt arbete. Inställningarna i gruppen Automatisk synkronisering är ansvariga för detta. + + + + När ett dokument aktiveras + Om du markerar den här kryssrutan, uppdateras innehÃ¥llet i Filväljarens fönster sÃ¥ fort du gÃ¥r till ett annat dokument som redan är öppnat, t.ex. när du klickar pÃ¥ fliken för motsvarande redigeringsfönster i IDEA-läge. Om det behövs byter Filväljaren till katalogen som filen tillhör och uppdaterar skärmen för att visa det verkliga innehÃ¥llet där. + + + När ett dokument öppnas + Om du markerar den här kryssrutan, uppdateras innehÃ¥llet i Filväljarens fönster sÃ¥ fort ett dokument öppnas, t.ex. via menyn Arkiv Öppna. Om det behövs byter Filväljaren till katalogen som filen tillhör och uppdaterar skärmen för att visa det verkliga innehÃ¥llet där. + + + När filväljaren blir synlig + Om du markerar den här kryssrutan uppdateras Filväljarens fönster sÃ¥ fort det blir synligt igen. Om det behövs byter det till katalogen som aktuellt dokument tillhör och uppdatera skärmen sÃ¥ att det verkliga innehÃ¥llet där visas. + + + +Du kan kombinera inställningarna fritt för att skräddarsy verkligt beteende hos Filväljaren som du vill. + + + + +Styra historiken i kombinationsrutorna + +Det finns tvÃ¥ kombinationsrutor längst upp och längst ner i Filväljarens innehÃ¥llsfönster som styr katalogen som visas (den övre kombinationsrutan) och filter som används för visningen (den nedre kombinationsrutan). En historik av de senaste inställningarna finns i urvalsfältet i varje kombinationsruta. Du kan ställa in antalet historikposter enligt följande. + + + + Kom ihÃ¥g platser + Skriv in maximalt antal katalogval som den övre kombinationsrutan ska komma ihÃ¥g här. + + + Kom ihÃ¥g filter + Skriv in maximalt antal filterdefinitioner som den nedre kombinationsrutan ska komma ihÃ¥g här. + + + +Styra vad som ska kommas ihÃ¥g mellan sessioner + +Normalt är Filväljaren inställd sÃ¥ att den visar den senaste sessionen igen när &tdevelop; startas nästa gÃ¥ng. Du kan ändra beteendet i inställningsgruppen Session. + +Om &tdevelop; automatiskt startades om av &kde;:s sessionshantering, sÃ¥ har ändringar av dessa inställningar ingen effekt. I detta fall Ã¥terställs alltid plats- och filterinställningar frÃ¥n den senaste &kde;-sessionen. + + + + + Ã…terställ plats + + Ta bort kryssmarkeringen här om du inte vill att platser som visas ska kommas ihÃ¥g mellan sessioner. + Om du markerad en av inställningarna för automatisk uppdatering kan platserna som visas automatiskt ändras oberoende av vad som har kommits ihÃ¥g frÃ¥n den tidigare sessionen. + + + + Ã…terställ senaste filter + + Ta bort kryssmarkeringen här om du inte vill att filter som används för visningen ska kommas ihÃ¥g mellan sessioner. + + + + + + + + + + +Skapa ny klass i C++ + +(... ännu inte skrivet ...) + + + + +Formatering + +(... ännu inte skrivet ...) + + + + +Tolkning av C++ + +(... ännu inte skrivet ...) + + + + + + + + +Anpassa dokumentationen + +&tdevelop; innehÃ¥ller en mycket kraftfull dokumentationsfunktion som tillhandahÃ¥ller möjlighet att komma Ã¥t flera olika sorters omfattande dokumentation. I IDEA-läge hittar du till exempel fliken Dokumentation vid arbetsomrÃ¥dets högerkant. + + + + + + +Dokumentationsträdet i &tdevelop; (i IDEA-läge) + Dokumentationsträdet i &tdevelop; (IDEA-läge) + + + +&tdevelop; mÃ¥ste ha laddat insticksprogrammet Dokumentation för att kunna visa dokumentationsträdet. Se avsnittet Insticksverktyg för mer information. + +Du kan ställa in innehÃ¥llet i dokumentationsträdet om du väljer Inställningar Anpassa &tdevelop;... i menyraden. Dialogrutan Anpassa KDevelop dyker upp, där du ska välja Dokumentation i fönstret till vänster. + +Inställningssidan som visas pÃ¥ sÃ¥ sätt, har tre inställningsdialogsidor med flikar, närmare bestämt: + + + Dokumentationssamlingar + Fulltextsökning + Annat + + + +Ställa in dokumentationssamlingar + +Anpassningen av dokumentationsinställningarna har delats upp i en serie dokumentationssamlingar, där var och en ger Ã¥tkomst till dokumentationsfiler av nÃ¥got unikt format och nÃ¥gon typ av innehÃ¥ll. Inställningarna styr vilka dokumentationsposter som listas pÃ¥ sidan InnehÃ¥ll under funktionen Dokumentation i &tdevelop;, och hur användaren kan komma Ã¥t detaljer i dokumentationen med indexerade sökningar och fulltextsökningar. +Fliken Dokumentation tillhandahÃ¥ller en serie inställningssidor som är ordnade vertikalt som en hög med indexkort. En sida i taget visas efter ett klick pÃ¥ titeln för dess indexkort: + + &Qt;-dokumentationssamling + CHM-dokumentationssamling + Doxygen-dokumentationssamling + &tdevelop; innehÃ¥llsförteckning-dokumentationssamling + DevHelp-dokumentationssamling + Egen dokumentationssamling + + + + + + + + +Ställa in dokumentationssamlingar + Ställa in dokumentationssamlingar + + + + + +Vanlig struktur för dokumentationsinställning + +Alla inställningssidor under fliken Dokumentation använder en gemensam layout. Du hittar dokumentationsposter som för närvarande är tillgängliga, av typen som listas pÃ¥ den öppna sidan, till vänster och en uppsättning knappar till höger. + + + +Knappar för att underhÃ¥lla innehÃ¥ll i dokumentationlistan + +Det finns tre knappar tillgängliga för att underhÃ¥lla innehÃ¥llet pÃ¥ inställningssidorna för dokumentation: + + + + Lägg till + + Visar dialogrutan Egenskaper för dokumentationskatalog som visas nedan, där du kan välja källan för dokumentationsposten som ska läggas till och namnge den. + + + + Redigera + + Visar dialogrutan Egenskaper för dokumentationskatalog som visas nedan, där du kan ändra källan för dokumentationsposten tidigare markerad i listan och byta namn pÃ¥ den. + + + + Ta bort + + Tar bort markerad dokumentationspost frÃ¥n listan. + Posten tas bara bort frÃ¥n listan. De verkliga källorna till dokumentationen förblir orörda. Du mÃ¥ste ta bort dem explicit pÃ¥ annat sätt. + + + + + + + + + + Lägga till eller ändra en dokumentationspost + + + +Knappen till höger om fältet Plats visar en katalogdialogruta vars poster oftast är filtrerade enligt den valda inställningssidans filtyp. +Fältet Titel kanske inte gÃ¥r att komma Ã¥t, beroende pÃ¥ dokumentationstypen som underhÃ¥lls. + + + +Dokumentationslistans struktur + +Varje inställningssida för dokumentation visar listade dokumentationsposter i en tabell med fyra kolumner: + + + + InnehÃ¥llsförteckning + + Om kryssrutan är markerad, visas dokumentationsposten pÃ¥ sidan InnehÃ¥ll under funktionen Dokumentation i &tdevelop;. + Genom att avmarkera kryssrutan InnehÃ¥llsförteckning inaktiverar i sin tur kryssrutorna Index och Sök (se nedan). AlltsÃ¥ kan du inte ha poster i dokumentationssamlingen indexerade utan att visa deras innehÃ¥ll. + + + + Index + + Om kryssrutan är markerad byggs ett internt index för dokumentationsposten. Det ger snabb Ã¥tkomst till dokumentationen genom att använda sidan Index och (valfritt) Sökning under funktionen Dokumentation i &tdevelop;. + + Det interna indexet byggs första gÃ¥ngen användaren väljer sidan Index. Det fördröjer den första Ã¥tkomsten väsentligt, eftersom indexet läses frÃ¥n disk och lagras i en cache. + Alla efterföljande indexsökningar använder dock cachen och är därför väsentligt snabbare. + + + + + Sök + + Om kryssrutan är markerad, inkluderas innehÃ¥llet i dokumentationsposten i den sökvägen för fulltextsökning pÃ¥ sidan Sök under funktionen Dokumentation i &tdevelop;. + + &tdevelop; utnyttjar programsamlingen htdig för att utföra fulltextsökningar. Sökningen görs i ett internt index, som htdig-maskineriet mÃ¥ste bygga innan den kan användas. + Alla ändringar av kryssrutorna under Sök pÃ¥verkar alltsÃ¥ bara sökningar efter att du har byggt om indexet pÃ¥ sidan Sök under funktionen Dokumentation i &tdevelop;. + + + + + Titel + Det här är namnet pÃ¥ dokumentationsposten som den visas pÃ¥ sidan InnehÃ¥ll under funktionen Dokumentation i &tdevelop;. + + + +Tidigare versioner av &tdevelop; tillät att dokumentationsposterna visades baserat pÃ¥ varje projekt. Det är inte längre tillgängligt. + + + + + + + +&Qt;-dokumentationssamlingar + +PÃ¥ den här inställningssidan anpassas all &Qt;-dokumentation. + + + + + + +Ställa in &Qt;-dokumentationssamlingen + Ställa in &Qt;-dokumentationssamlingen + + + +Normalt fyller &tdevelop; i detta vid första start. Det tittar efter vanliga *.xml, eller *.dcf dokumentationsfiler i &Qt;-installationskatalogen. Tabellen till vänster listar filerna som &tdevelop; hittade med deras vanliga titlar. + +Om du har en installation som inte följer standard, finns det antingen ingen information listad alls, eller kanske adresserna pekar pÃ¥ felaktiga platser (t.ex. pÃ¥ en annan installation av &Qt; som är tillgänglig pÃ¥ systemet). Du kan justera posterna med knapparna till höger om listfältet. + +&tdevelop; använder titlar som redan tillhandahÃ¥lls av den installerade &Qt;-dokumentationen. Därför är inte fältet Titel i dialogrutan Egenskaper för dokumentationskatalog Ã¥tkomligt. + +Normalt visas inte all &Qt;-dokumentation pÃ¥ sidan InnehÃ¥ll under funktionen Dokumentation i &tdevelop;. Använd kryssrutan InnehÃ¥llsförteckning i inställningstabellen för att välja vilken dokumentation som ska visas. + +Om du vill att viss specifik &Qt;-dokumentation ska inkluderas i sökindex eller fulltextsökning, använd kryssrutorna Index och Sök i inställningstabellerna. + + + + +Ställa in CHM-dokumentationssamlingen + +PÃ¥ den här inställningssidan kan du samla dokumentation enligt &Microsoft; CHM-hjälpfilstandard. + + + + + + +Ställa in &Microsoft; CHM-standarddokumentationsfiler + Ställa in &Microsoft; CHM-standarddokumentationsfiler + + + +Normalt är inställningssidan tom (som visas ovan). Du kan lägga till nya poster med knapparna till höger om listan. &tdevelop; filtrerar *.chm-filer i katalogdialogrutan som hör ihop med knapparna Lägg till och Redigera. + +För mer information om formatet för &Microsoft; *.chm-filer, se t.ex. "PHP: Documentation - Extended CHM Format" pÃ¥ http://de2.php.net/docs-echm.php. + + + + +Dokumentation skapad av Doxygen + +PÃ¥ den här inställningssidan anpassas all dokumentation av programmeringsgränssnitt som skapats av &doxygen;. + + + + + + +Ställa in dokumentationen av programmeringsgränssnitt skapat av Doxygen + Ställa in dokumentationen av programmeringsgränssnitt skapat av Doxygen + + + +I kortet dokumenterar ett sÃ¥dant programmeringsgränssnitt gränssnittet för vissa biblioteksfunktioner. Dokumentationen av programmeringsgränssnittet pÃ¥ den här sidan ska skapas av det externa verktyget &doxygen;. +Dokumentation av programmeringsgränssnitt skapad av &doxygen; bestÃ¥r av en serie html-filer, som börjar med index.html. Dessutom kan det finnas tag-filer, som innehÃ¥ller information med länkar till befintlig dokumentation av programmeringsgränssnitt. AlltsÃ¥ tittar &tdevelop; efter index.html och *.tag-filer vid sökning efter dokumentation av programmeringsgränssnitt skapad av &doxygen;. +Vissa begränsningar i strukturen antas vid sökning efter dokumentation av programmeringsgränssnitt skapad av &doxygen;. Katalogen där filen index.html finns ska innehÃ¥lla underkataloger med separata dokumentationssamlingar. Var och en av underkatalogerna antas innehÃ¥lla en .tag-fil och en underkatalog vid namn html/. +Du kan ta en titt pÃ¥ $KDEDIR/share/doc/HTML/en/tdelibs-apidocs där det finns ett exempel pÃ¥ en sÃ¥dan layout för dokumentation av programmeringsgränssnitt med &doxygen;. + +&kde;:s äldre dokumentation av programmeringsgränssnitt skapat med KDoc stöds inte direkt längre. Om du fortfarande vill använda sÃ¥dan dokumentation, kan du lägga till den pÃ¥ sidan Egen dokumentationssamling. + +&tdevelop; har fyllt i en länk till aktuellt programmeringsgränssnitt för &kde;-biblioteket, under förutsättning att nÃ¥gon hittades. Det finns flera sätt för &tdevelop; att fÃ¥ reda pÃ¥ den: + + + Antingen angav du väljaren till kommandot configure när du kompilerade &tdevelop; (se kapitlet Hur man skaffar dokumentation av programmeringsgränssnittet för &tdevelop;). + Eller hittade kommandot configure automatiskt ett programmeringsgränssnitt för &kde;-biblioteken som skapats med &doxygen; pÃ¥ en av flera standardplatser som det känner till. + Eller som en sista utväg hittades $KDEDIR/share/doc/HTML/en/tdelibs-apidocs/ när &tdevelop; först startade. + + +Om &tdevelop; inte hittade ett giltigt programmeringsgränssnitt för &kde;-biblioteken som skapats med &doxygen; vid första start, är listan Dokumentation skapad av Doxygen tom. + +Du kan lägga till dina egna poster med dokumentation av programmeringsgränssnitt (t.ex. frÃ¥n dina nuvarande projekt) genom att använda knapparna till höger. Om du vill att de ska inkluderas i indexerad sökning och/eller fulltextsökning, markera kryssrutorna Index eller Sök i inställningstabellen. + +&tdevelop; använder titelinformationen frÃ¥n index.html. Därför är inte fältet Titel i dialogrutan Egenskaper för dokumentationskatalog Ã¥tkomligt. + + + &kde;-systemet tillhandahÃ¥ller mer dokumentation av programmeringsgränssnittet än bara &kde;-bibliotekens programmeringsgränssnitt. Du behöver ytterligare information om gränssnitt om du t.ex. vill inkludera &kate;-delprogrammet i dina program. För &kate;-delprogrammet ska du till exempel kompilera och installera &kde;:s programmeringsgränssnitt för basbiblioteken frÃ¥n källkoden (genom att använda kommandona make apidox och make install för källkoden i tdebase) och därefter lägga till en post i listan Dokumentation skapad av Doxygen pÃ¥ detta sätt: + + + + +Lägga till ett basprogrammeringsgränssnitt för &kde; i listan + Lägga till ett basprogrammeringsgränssnitt för &kde; i listan + + (Du ska förstÃ¥s ersätta exempelkatalogen /opt/kde-cvs/ i fältet Plats med sökvägen till din &kde;-installation.) + + +Du mÃ¥ste ocksÃ¥ lägga till programmeringsgränssnittet för ditt nuvarande projekt i Doxygen-dokumentationssamling. Tidigare versioner av &tdevelop; lade till det i dokumentationsträdet baserat pÃ¥ varje projekt. Det är inte längre tillgängligt. + + + + +Hantera strukturerad dokumentation (KDevelop innehÃ¥llsförteckningsfiler) + +Huvuddelen av &tdevelop;s dokumentationsfunktion tillhandahÃ¥ller omedelbar Ã¥tkomst av strukturerad dokumentation, bÃ¥de lokal och fjärrdokument. Du kan ställa in det pÃ¥ sidan KDevelop-innehÃ¥llsdokumentation. + + + + + + + TillhandahÃ¥lla dokumentationsÃ¥tkomst strukturerad med KDevelop innehÃ¥llsförteckning + + + +&tdevelop; levereras med en samling fördefinierade KDevelop innehÃ¥llsförteckningsfiler som automatiskt läggs till i tabellen vid installation. För att hÃ¥lla visningen hanterbar, är bara de oftast använda markerade för att visas. Om du vill se annan dokumentation, markera kryssrutan InnehÃ¥llsförteckning i inställningstabellen. + +KDevelop innehÃ¥llsförteckningsfiler kan inte indexeras för att utföra fulltextsökning eftersom de oftast pekar pÃ¥ fjärrplatser. Ã… andra sidan, kan en sÃ¥dan .toc-fil ha ett manuellt definierat index, med taggen <index>. AlltsÃ¥ aktiveras kryssrutan index bara när &tdevelop; hittar taggen <index> i .toc-filen. (För mer information, se beskrivningen nedan i avsnittet om &tdevelop; innehÃ¥llsförteckningsfiler.) +Kryssrutan Sök i inställningstabellen är alltid inaktiv. + +Du kan lägga till nya poster med knapparna till höger om listan. &tdevelop; filtrerar *.toc-filer i katalogdialogrutan som hör ihop med knapparna Lägg till och Redigera. + +I motsats till tidigare versioner av &tdevelop;, sÃ¥ ändrar inte knappen Ta bort *.toc-filerna pÃ¥ disk, sÃ¥ borttagningsÃ¥tgärden är nu säker. + + + + +&tdevelop; innehÃ¥llsförteckningsfiler + +Det finns en särskild funktion som hör ihop med detta. Som illustration, utför följande steg: Hitta en post strax under dokumentationen för &Qt; och &kde; (t.ex. KDE2 Development Book (kde.org)). Klicka pÃ¥ plustecknet intill den. Ett träd visas, där du snabbt kan navigera till efterföljande kapitel som finns pÃ¥ en hierarkisk nivÃ¥ flera nivÃ¥er djupare, allt utan att vara uppkopplad. Men om du till sist väljer ett av kapitlen, försöker &tdevelop; i mÃ¥nga fall komma Ã¥t en fjärrfil med dokumentation. + +Den logiska grunden för detta är inte bara att lokalt kunna navigera i fjärrdokumentation utan att slösa med nätverksresurser, utan ocksÃ¥ att ge utvecklare en enkel strukturerad Ã¥tkomst till dokumentation som behövs. Med verktygen som tillhandahÃ¥lls här kan man komma Ã¥t nästan vilken lokal eller fjärrdokumentation som helst pÃ¥ ett strukturerat sätt, även om originalet är utan struktur eller strukturerat pÃ¥ ett annat sätt. Allt som behövs är Ã¥tkomst till filer och/eller delar av filer som kan visas av Konqueror. + +SÃ¥dan strukturerad Ã¥tkomst blir möjlig genom användning av särskilda filer med innehÃ¥llsförteckning, som anges med filändelsen .toc. Alla sÃ¥dana &tdevelop;-innehÃ¥llsförteckningsfiler innehÃ¥ller en strukturerad &XML;-beskrivning av dokumentet som ska kommas Ã¥t. + + + +Standardkatalog för &tdevelop; innehÃ¥llsförteckningsfiler + +När &tdevelop; installerades har en serie med fördefinierade .toc-filer oftast placerats i katalogen $KDEDIR/share/apps/kdevdocumentation/tocs. De är ganska enkla, strukturerade textfiler. Du kan titta pÃ¥ dem med en texteditor eller ett annat verktyg för att visa text. + + + + + + + + + Grundstruktur för &tdevelop; innehÃ¥llsförteckningsfiler + + huvud + + + + <!DOCTYPE tdeveloptoc> + + + <tdeveloptoc> + + + (titel) + + + (basadress) + + + (innehÃ¥llsstruktur) + + + (indexstruktur) + + + </tdeveloptoc> + + + &XML;-strukturen tolkas av &tdevelop;s insticksprogram Dokumentation för att skapa dokumentationsträdets innehÃ¥ll och hjälpa användaren att navigera i dokumentationen. Den innehÃ¥ller all information som behövs för att visa titlar och komma Ã¥t dokumentationsfilernas innehÃ¥ll. + + + + titel + + + <title> (nÃ¥gon titelsträng) </title> + + Det här är titeln som &tdevelop; visar pÃ¥ grundnivÃ¥n i dokumentationsträdet. + Titeln som visas kan inte ändras av användaren. Om du vill att en annan text ska visas, mÃ¥ste du ändra posten <title> för hand i .toc-filen. + + + + basadress + + + <base href=" (basdokumentets webbadress) "/> + + Webbadressen pekar pÃ¥ platsen där alla dokumentationens filer finns. Den läggs till i början av varje avsnittswebbadress i följande innehÃ¥llsstrukturlista. Om du t.ex. laddar ner dokumentation frÃ¥n en fjärrserver, är allt du behöver göra för att visa filerna pÃ¥ den nya platsen att ändra webbadressen <base>. + + + + innehÃ¥llsstruktur + + + <tocsect1 name=" (avsnittstitel) " url=" (avsnittswebbadress) "> + ... + <tocsectn name=" (avsnittstitel) " url=" (avsnittswebbadress) "/> + ... + + </tocsect1> + + + All Ã¥terstÃ¥ende navigerings- och Ã¥tkomstinformation lagras i en serie hierarkiska <tocsecti> ... </tocsecti> par. Varje i anger följande hierarkiska nivÃ¥ ner till talet n som motsvarar dokumentationsavsnittet som visas sist. + Alla poster <tocsecti> mÃ¥ste ha motsvarande egenskap name="xxx" ("xxx" representerar den verkliga titelsträngen). Den visas som nivÃ¥ns titel i dokumentationsträdet. Den ska motsvara ett verkligt avsnitt av dokumentationen. + Det kan finnas en egenskap url="" som hör ihop med vilken hierarkisk nivÃ¥ i som helst. När användaren klickar pÃ¥ en avsnittstitel i dokumentationsträdet försöker &tdevelop; komma Ã¥t filen pÃ¥ platsen som pekas pÃ¥ den kombinerade bas- och avsnittswebbadressen. + Posten <tocsectn/> mÃ¥ste hur som helst ha egenskapen url="". Detta sista hierarkiska <tocsectn/> ingÃ¥r inte i ett par, utan avslutas omedelbart av / innan tecknet >. + Vilken adress som helst som kombinerar bas- och avsnittswebbadress mÃ¥ste peka pÃ¥ en textfil som gÃ¥r att visa. Oftast är det en HTML strukturerad fil. Det är möjligt att länka till ankarmärken inne i en sÃ¥dan HTML-fil genom att använda den vanliga #-beteckningen med formatet /baswebbadress/sektionswebbadress#ankarmärke. + + + + indexstruktur + + + + <index> + + <entry name=" (indexposttitel) " url=" (webbadress till indexavsnitt) "/> + + </index> + + + Index är en enkel lista med indexposter, par med titel och webbadress. Ett index krävs inte. + + + + + + + + +DevHelp-dokumentation + +DevHelp-dokumentation är ett annat sätt att komma Ã¥t strukturerad dokumentation. Den använder en strukturerad innehÃ¥llsförteckning som anges av filändelsen .devhelp pÃ¥ liknande sätt som &tdevelop;-innehÃ¥llsfiler för att komma Ã¥t dokumentation för GNOME 2- skrivbordet. +Du kan styra vilka DevHelp-filer som ska vara tillgängliga pÃ¥ inställningssidan DevHelp-dokumentationssamling. + + + + + + + TillhandahÃ¥lla DevHelp-dokumentation + + + +DevHelp-filer kunde ursprungligen kommas Ã¥t pÃ¥ webbplatsen LIDN, men det verkar som om den inte underhÃ¥lls sedan en tid tillbaka. Senare DevHelp-dokumentation är tillgänglig pÃ¥ webbsidan DevHelp Books Download. + +När &tdevelop; installeras, försöker det hitta alla .devhelp-filer pÃ¥ vissa standardplatser i systemet, t.ex. underkatalogerna i /opt/gnome/share/. FrÃ¥n början markeras inte filerna för visning. Om du vill se annan dokumentation, markera kryssrutan InnehÃ¥llsförteckning i inställningstabellen. + +Du kan lägga till nya poster med knapparna till höger om listan. &tdevelop; filtrerar *.toc-filer i katalogdialogrutan som hör ihop med knapparna Lägg till och Redigera. + + + + +Ställa in egna dokumentationssamlingar + +Det här är till för dina egna syften. Du kan lägga till nästan vilka dokumentationsfiler som helst här, under förutsättning att de kan visas av insticksprogram i &konqueror;. + + + + + + + TillhandahÃ¥lla egen dokumentation + + + +Oftast är den här samlingen tom när &tdevelop; först startas. Vi har avsiktligt fyllt i den med ett objekt för att visa poststrukturen. +Här är hanteringen är rättfram. Använd knapparna till höger om listan för att lägga till, redigera eller ta bort dokumentationsposter. &tdevelop; filtrerar inte nÃ¥gonting i katalogdialogrutan som hör ihop med knapparna Lägg till och Redigera. + +Du mÃ¥ste explicit välja posterna för att visa dem i &tdevelop;s dokumentationsfunktion. Markera kryssrutan InnehÃ¥llsförteckning för posten i inställningstabellen. + +Egen dokumentation kan inte indexeras eller sökas. Därför har inte kryssrutorna Index och Sök nÃ¥gon effekt här, som visas ovan. + + + + + + +Inställning av index för textsökning + +(... ännu inte skrivet ...) + + + + + + + Inställning av index för textsökning + + + + + + +Andra inställningar av dokumentationssamlingen + +(... ännu inte skrivet ...) + + + + + + + + +Avancerade inställningar + +(... ännu inte skrivet ...) + + +Insticksverktyg + +(... ännu inte skrivet ...) + + + + + diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/split-source-header-navigate.png b/tde-i18n-sv/docs/tdevelop/tdevelop/split-source-header-navigate.png new file mode 100644 index 00000000000..f9fc0cf20bc Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/split-source-header-navigate.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/split-source-header.png b/tde-i18n-sv/docs/tdevelop/tdevelop/split-source-header.png new file mode 100644 index 00000000000..dc6b3517db6 Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/split-source-header.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/split-windows.png b/tde-i18n-sv/docs/tdevelop/tdevelop/split-windows.png new file mode 100644 index 00000000000..d843d713b59 Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/split-windows.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/split-workspace.png b/tde-i18n-sv/docs/tdevelop/tdevelop/split-workspace.png new file mode 100644 index 00000000000..9a41c696eef Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/split-workspace.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/survey-manual.docbook b/tde-i18n-sv/docs/tdevelop/tdevelop/survey-manual.docbook new file mode 100644 index 00000000000..b48567645da --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/survey-manual.docbook @@ -0,0 +1,329 @@ + +Vad handboken innehÃ¥ller + +Den här användarmanualen är avsedd att beskriva innehÃ¥llet och användningen av den integrerade utvecklingsmiljön (IDE) &tdevelop; &kdevrelease; frÃ¥n användarens perspektiv. Det är inte en programmeringsmanual, och inte heller beskriver den utvecklingsprocessen i detalj. Det enda mÃ¥let är att hjälpa dig med hanteringen av den integrerade utvecklingsmiljön. +Här hittar du information om följande ämnen: + + +Komma igÃ¥ng med &tdevelop;: En guidad tur + +Ger dig en snabb genomgÃ¥ng av hur det grafiska gränssnittet används, med en introduktion av de grundläggande stegen för att arbeta med ett projekt. + + + +Översikt av funktioner i &tdevelop; + +Fördjupar den guidade turen i föregÃ¥ende kapitel, ger en översikt av vad som är inbyggt i &tdevelop; och gör dig bekant med utseendet och känslan i den integrerade utvecklingsmiljön. + + + + +Anpassa &tdevelop; + +Visar hur du kan skräddarsy den integrerade utvecklingsmiljön för att passa dina behov. + + + + +Komma igÃ¥ng: Programguiden + +Beskriver grunderna i hur ett nytt projekt ställs in i &tdevelop; med den inbyggda programguiden. + + + + +Redigeringsverktyg + +Allt du behöver för att skriva källkoden. FrÃ¥n hur editorn används, hur textsökning bÃ¥de lokalt och i hela projektet görs, till hur nya filer och klasser integreras i projektet. + + + + +Filbläddrarna + +Demonstrerar diverse verktyg för att titta pÃ¥ projektets struktur och hur du kommer Ã¥t filerna du vill arbeta med. + + + + +Klassbläddrarna + +Beskriver ett av de mest kraftfulla verktygen i &tdevelop;, som lÃ¥ter dig navigera i klassberoenden och lÃ¥ter dig enkelt skapa och komma Ã¥t de klasser och metoder du behöver. + + + + +Dokumentation + +Visar hur man kommer Ã¥t den omfattande inbyggda dokumentationen som &tdevelop; tillhandahÃ¥ller, och talar om hur du skapar dokumentation av projektet, en koncis och kraftfull dokumentation av programmeringsgränssnittet, som ger dig en översikt över all källkod i projektet samt en docbook-baserad användardokumentation. + + + + +Bygga och projekthantering + +Handlar om att skapa och hantera projekt, beskriver grunderna i användning av autoconf och automake, samt hur egna byggfiler skapas och hur kompilator- och bygginställningar används för att skräddarsy programmet för att passa dina behov. + + + + +Avancerad bygghantering + +Tittar pÃ¥ sätt att hÃ¥lla flera bygginställningar, för att korskompilera till olika plattformar, eller skapa inbyggda system med biblioteket Qt/embedded. + + + + +Avlusargränssnittet + +Beskriver hur det integrerade avlusargränssnittet till avlusaren gdb används, sÃ¥ att du kan jaga fel utan att lämna &tdevelop;. + + + + + + +Använda CVS + +Talar om för dig hur du kan underhÃ¥lla projektet med CVS-versionshanteringssystem, en nödvändighet särskilt om mÃ¥nga utvecklare arbetar med samma projekt. + + + + + +En del ofta använd information har placerats i appendix. Bland annat bestÃ¥r den av: + + + +Installera &tdevelop; + +Talar om var man skaffar &tdevelop;, och hur man fÃ¥r det att köra. + + + + + + +I korthet — Tips och trick + +En snabbreferens till de oftast använda kommandona och Ã¥tgärderna, och en kort guide för att lösa vanliga problem vid arbete med &tdevelop;. + + + + +Utveckling pÃ¥ &UNIX; + +En historisk översikt över programutveckling pÃ¥ &UNIX;, de viktigaste verktygen som behövs och varför man behöver en integrerad utvecklingsmiljö. + + + + + + +Inställningsfiler som används av &tdevelop; +Listar filerna som &tdevelop; använder för att spara sin interna information. Detta är särskilt användbart om nÃ¥got har blivit fel i dina inställningar. + + + + +Insticksverktyg +Listar insticksverktygen du kan använda för att skräddarsy &tdevelop;s möjligheter för dina behov. + + + +Exempel pÃ¥ lägen i användargränssnittet för &tdevelop; +Visar lägen för användargränssnittet. + + +Ytterligare information Hämta information, rapportera fel, etc. + + +Ändringslogg +Visar dokumentets historik. + + +Bibliografi +Bibliografi + + + + + + diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-ideal-mode-0.png b/tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-ideal-mode-0.png new file mode 100644 index 00000000000..37fda2413e5 Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-ideal-mode-0.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-ideal-mode.png b/tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-ideal-mode.png new file mode 100644 index 00000000000..5231b2e7fc0 Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-ideal-mode.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-install.docbook b/tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-install.docbook new file mode 100644 index 00000000000..12bf6f39ba2 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-install.docbook @@ -0,0 +1,1290 @@ + + + + + BerndPol + Anne-MarieMahfouf + + + + +Installera &tdevelop; + + + Installation + +I det här kapitlet beskriver vi alla steg som behövs för att kompilera och installera den integrerade utvecklingsmiljön &tdevelop;: + Hur man skaffar &tdevelop; koncentrerar sig pÃ¥ hur man laddar ner den senaste källkoden för &tdevelop; frÃ¥n SVN. + Krav för &tdevelop; listar programmen och biblioteken som du mÃ¥ste ha installerade för att kompilera den integrerade utvecklingsmiljön med lyckat resultat. + Kompilering och installation av &tdevelop; leder dig igenom alla steg för kompilering och installation av programmet. + Hur man skaffar dokumentation av programmeringsgränssnittet för &tdevelop; talar om vad ett programmeringsgränssnitt är och hur du skaffar ett sÃ¥ användbart verktyg för navigering i källkoden för &tdevelop;. + + + + +Hur man skaffar &tdevelop; + + + skaffa &tdevelop; + + &tdevelop; + skaffa + +&tdevelop; är tillgänglig i binärform frÃ¥n mÃ¥nga olika &Linux;-distributioner som SuSE, RedHat med flera. Binärfilerna är paketerade pÃ¥ nÃ¥got bekvämt sätt, oftast RPM, för att enkelt kunna installeras. Följ standardinstruktionerna som ges i distributionen för att installera. +Du kan mycket väl skaffa källkoden för &tdevelop;, kompilera och installera den själv. Källkoden hittas via projektets hemsida pÃ¥ http://www.tdevelop.org eller via &kde;:s FTP-plats. + + +Hämta dagsfärska versioner av &tdevelop; frÃ¥n SVN + + + SVN + +Om du vill ta del av aktuell utveckling, är versioner frÃ¥n det anonyma SVN-arkivet tillgängliga. +Modulnamnet är tdevelop med svn co svn://anonsvn.kde.org/home/kde/branches/KDE/3.5/tdevelop. + + +Ursprunglig utcheckning frÃ¥n SVN + + + utcheckning + + &tdevelop; + SVN + utcheckning + +För att skaffa en ursprunglig version av &tdevelop; mÃ¥ste du ladda ner den frÃ¥n anonym SVN. Följ bara stegen nedan för den här sÃ¥ kallade utcheckningsÃ¥tgärden. + +Vi antar att du vill placera din kopia av &tdevelop; i underkatalogen kde3src i din hemkatalog (~). + + + # Skapa mÃ¥lkatalogen, om det behövs: + ~> mkdir kde3src + ~> cd kde3src + ~/kde3src> svn co svn://anonsvn.kde.org/home/kde/branches/KDE/3.5/tdevelop + ~/kde3src> cd tdevelop + + +När du väl har lyckats checka ut din version av &tdevelop;, kan du hänga med i ändringarna genom att använda uppdateringsproceduren som visas i nästa avsnitt. + +HÃ¥ll serverns last nere. Var vänlig att inte checka ut varje gÃ¥ng du vill fÃ¥ en aktuell version av &tdevelop;! Använd SVN update för detta syfte. + +Nu kan du kompilera din version av &tdevelop; som visas i avsnittet Kompilering och installation av &tdevelop;. + + + + +HÃ¥lla din kopia av SVN aktuell + + + uppdatera + + &tdevelop; + SVN + uppdatera + +Efter du checkat ut &tdevelop; frÃ¥n SVN som visas ovan (och kompilerat med lyckat resultat), vill du hÃ¥lla den aktuell för att fÃ¥ med alla programfixar. Följ dÃ¥ stegen nedan. (Ã…terigen antar vi att du har placerat din kopia av &tdevelop; i katalogen kde3src.) +Observera kommandot up (= update) istället för co (vilket betyder checkout). + + + ~> cd kde3src + ~/kde3src> cd tdevelop + ~/kde3src> svn up + + +HÃ¥ll ett öga pÃ¥ meddelanden som SVN visar under uppdateringssekvensen. De exakta stegen i kompileringssekvensen beror pÃ¥ dem. + +Nu kan du kompilera en ny version av &tdevelop; som visas i kapitlet Särskilda hänsyn vid kompilering frÃ¥n SVN. + + + + + + + + + +Krav för &tdevelop; + + + krav + + &tdevelop; + krav + + GNU + krav + +För att kompilera och använda &tdevelop; med lyckat resultat, behöver du följande program och bibliotek. De är tillgängliga pÃ¥ de flesta plattformar som distributionspaket, och kan därigenom lätt installeras. + + +Krävs + + gcc/g++ 2.95.3 eller senare (eller motsvarande) + gcc + krav + + g++ + krav + + Tillgänglig frÃ¥n gcc.gnu.org + + + &GNU; make (eller motsvarande) + make + krav + + Tillgänglig frÃ¥n www.gnu.org/software/make + + + &perl; 5.004 (eller senare) + Perl + krav + + Tillgänglig frÃ¥n www.perl.com + + + autoconf ≥ 2.52 (eller senare) + autoconf + krav + + Tillgänglig frÃ¥n www.gnu.org/software/autoconf + + + automake ≥ 1.6 (eller senare) + automake + krav + + Tillgänglig frÃ¥n www.gnu.org/software/automake + + + flex 2.5.4 (eller senare) + flex + krav + + Tillgänglig frÃ¥n www.gnu.org/software/flex + + + &Qt; ≥ 3.3.0 (eller senare) + Qt + krav + + Tillgänglig frÃ¥n www.trolltech.com/products/qt + + + KDE ≥ 3.4.0 (eller senare) + KDE + krav + + Tillgänglig frÃ¥n www.kde.org + + + + +Valfritt: + Verktyget ctags för källkodsnavigering, frÃ¥n http://ctags.sourceforge.net, som ger dig snabb Ã¥tkomst till deklarationer och definitioner med nÃ¥gra fÃ¥ enkla klick pÃ¥ ett namn i editorn. ctags + + Kompilatorn dot för grafiksprÃ¥k, frÃ¥n http:/www.graphviz.org. Verktyget behövs tillsammans med &doxygen; nedan, om du vill visa klassförhÃ¥llanden grafiskt (vilket starkt rekommenderas). dot + + Dokumentationsverktyget &doxygen;, frÃ¥n http://www.doxygen.org, om du vill skapa koncis och kraftfull dokumentation av programmeringsgränssnittet för dina projekt. doxygen + + Valgrind frÃ¥n http://developer.kde.org/~sewardj/ hjälper dig att hitta minneshanteringsproblem i dina program. valgrind + + SVN frÃ¥n http://subversion.tigris.org/, om du vill använda versionshanteringssystemet SVN. + SVN + krav + + Eventuellt andra kompilatorer och/eller verktyg om du vill utveckla för ett annat sprÃ¥k eller plattform än C++/&kde;, eller använda nÃ¥gon annan specialfunktion. + + + + + + Du kan i viss utsträckning kringgÃ¥ behovet av &autoconf; ≥ 2.52 och &automake; ≥ 1.6. Ta bara bort katalogen admin i installationskatalogen för &tdevelop;, och skriv: + autoconf + kringgÃ¥ versionsbehov + + automake + kringgÃ¥ versionsbehov + + versionsbehov + kringgÃ¥ för autoconf och automake + + + (din tdevelop-katalog)> ln -s $KDEDIR/share/apps/tdelibs/admin admin + + i terminalen. Det gör att &tdevelop; använder standardinställningarna i &kde;:s admin-katalog istället. + + + Var försiktig sÃ¥ att du inte blandar olika versioner av &Qt;. Länka alltid &tdevelop; med samma version av &Qt; som &kde;-biblioteket kompilerades med. Annars rÃ¥kar du troligen ut för mycket konstigt beteende. + + + + + + + + + +Kompilering och installation av &tdevelop; + + + &tdevelop; + kompilering + + &tdevelop; + installation + +När alla krav väl är uppfyllda är du redo att kompilera och installera &tdevelop;. Det här appendixet beskriver nödvändiga steg för att göra det. + + Förberedande steg berättar hur du ställer in en riktig miljö. + Kompilera &tdevelop; handlar om hur källkoden för &tdevelop; skaffas frÃ¥n SVN, hur den förbereds för installationsprocessen, och visar till sist stegen som är nödvändiga för att kompilera och installera &tdevelop;. + NÃ¥gra anmärkningar om väljare till configure talar om hur man kör &tdevelop; om det har installerats pÃ¥ en annan plats än i &kde;-katalogen. + + + +Förberedande steg + + + preliminärt + Installation av &tdevelop; + + KDEDIR + + QTDIR + + LD_LIBRARY_PATH + + LIBRARY_PATH + + PATH + +Innan du pÃ¥börjar kompileringssekvensen, mÃ¥ste du försäkra dig om att alla bibliotek och verktyg är tillgängliga för byggsystemet. För att uppnÃ¥ detta, mÃ¥ste vissa miljövariabler ställas in riktigt. Stegen som ska utföras beror pÃ¥ vilket skal du använder i terminalen. + +För att undvika att skriva in alla satserna som ställer in nödvändiga miljövariabler varje gÃ¥ng du vill kompilera, kan du placera dem i filen .bashrc eller .cshrc. PÃ¥ sÃ¥ sätt ställs miljövariablerna in riktigt varje gÃ¥ng du startar skalet. + + +Ställa in miljön för bash-skalet + +Om du använder bash-skalet, lägg till följande rader: + + + export KDEDIR=(sökväg till KDE-installationen) + export QTDIR=(sökväg till Qt-biblioteket) + export LD_LIBRARY_PATH=$QTDIR/lib:$KDEDIR/lib:$LD_LIBRARY_PATH + export LIBRARY_PATH=$QTDIR/lib:$KDEDIR/lib:$LIBRARY_PATH + export PATH=$QTDIR/bin:$KDEDIR/bin:$PATH + + + + + + +Ställa in miljön för tcsh-skalet + +Om du använder tcsh-skalet, lägg till följande rader: + + + setenv KDEDIR (sökväg till KDE-installationen) + setenv QTDIR (sökväg till Qt-biblioteket) + setenv LD_LIBRARY_PATH=$QTDIR/lib:$KDEDIR/lib:$LD_LIBRARY_PATH + setenv LIBRARY_PATH $QTDIR/lib:$KDEDIR/lib:$LIBRARY_PATH + setenv PATH $QTDIR/bin:$KDEDIR/bin:$PATH + + + + + + + + +Kompilera &tdevelop; + + + make + Installation av &tdevelop; + + kompilera + &tdevelop; + +I följande beskrivning antar vi att du har placerat källkoden för &tdevelop; i katalogen ~/kde3src/tdevelop. + + +Särskilda hänsyn vid kompilering frÃ¥n SVN + +Om du använder en aktuell version av &tdevelop; frÃ¥n SVN, beror de första kompileringsstegen pÃ¥ om du just gjort en fullständig utcheckning, eller bara uppdaterat källkoden. + + + +Efter en utcheckning frÃ¥n SVN + +Du mÃ¥ste initiera byggsystemet efter en ny utcheckning. Samma sak gäller varje gÃ¥ng du mÃ¥ste starta om frÃ¥n början. Skriv: + +~/kde3src/tdevelop> make -f admin/Makefile.common svn-clean +och därefter alla följande steg. +Du kan behöva komma Ã¥t SVN-arkivet för att rensa det om nÃ¥gra skadade eller saknade filer mÃ¥ste Ã¥terskapas. +Kommandot svn-clean tar bort alla filer som inte finns i SVN frÃ¥n katalogen. Försäkra dig om att säkerhetskopiera viktig information innan du använder det här rensningskommandot. + + + + +Efter en uppdatering frÃ¥n SVN + +Nästa steg beror pÃ¥ utmatningen frÃ¥n SVN-uppdateringssekvensen. Om du fick nÃ¥got som liknar följande (markeringarna U eller P kan finnas i kolumnen längst till vänster, bÃ¥da anger att filen har ändrats): + +U /nÃ¥gon_sökväg/Makefile.am + +eller om du precis gjort en fullständig utcheckning, mÃ¥ste du skriva: +~/kde3src/tdevelop> make -f Makefile.svn +innan du fortsätter med alla följande steg. + + + + + + +Grundläggande kommandosekvens med <command +>make</command +> + +När det grundläggande byggsystemet har ställts in, mÃ¥ste du bestämma dig för vilken typ av &tdevelop;-system du vill använda. Det görs med följande konfigureringssteg, som bygger de verkliga filerna med namn Makefile, som kommandot make kommer att använda. + +Du kan utelämna väljaren i följande kommandorader med configure, om du vill att &tdevelop; ska installeras i &kde;:s standardkatalog. Se kapitlet NÃ¥gra anmärkningar om väljare till configure om detta. + + + +En version kompilerad för avlusning + +Om du vill hÃ¥lla ordning pÃ¥ vad programmet &tdevelop; gör när det kör, kan du bygga en version kompilerad med avlusning. Tala bara om för configure att göra det: + +~/kde3src/tdevelop> ./configure --enable-debug=full --prefix=(där din kde3 finns) + + + + +En version kompilerad för distribution + +Om du bara vill använda &tdevelop; som det är (mindre och snabbare), räcker det med en version kompilerad för distribution. Det är förvalt i configure. + +~/kde3src/tdevelop> ./configure --prefix=(där din kde3 finns) + + +Om du vill skapa din egen dokumentation av programmeringsgränssnittet för &tdevelop;, mÃ¥ste du ta med ytterligare en väljare i kommandot configure: + + ~/kde3src/tdevelop> ./configure --(väljare enlikt ovan) \ --with-tdelibsdoxy-dir=$KDEDIR/share/doc/HTML/en/tdelibs-apidocs + + + + + + +Bygga och installera &tdevelop; + +Kommandot configure kontrollerar systemet och skapar nÃ¥gra filer vid namn Makefile enligt vad det hittar. Kommandot make använder normalt den huvudsakliga filen Makefile. AlltsÃ¥ är + +~/kde3src/tdevelop> make +tillräckligt. Om nödvändigt, skaffa rättigheter som systemadministratör genom att använda kommandot +~/kde3src/tdevelop> su +och ange systemadministratörens lösenord. Installera sedan programmet: +~/kde3src/tdevelop> make install +Det är allt. Om du installerade &tdevelop; i &kde;:s standardkatalog, kan du nu köra den integrerade utvecklingsmiljön. Annars är nÃ¥gra ytterligare steg nödvändiga, som visas i avsnittet Annan installationskatalog än standard nedan. + + + I själva verket har tre &tdevelop;-baserade program installerats: + + Den integrerade utvecklingsmiljön &tdevelop;: Det här är platsen där du oftast arbetar. + Den fristÃ¥ende dokumentationsbläddraren &tdevelop; assistent: Isolerar alla kraftfulla dokumentationsfunktioner i utvecklingsmiljön &tdevelop; i ett separat verktyg. Det här är praktiskt när du vill slÃ¥ upp nÃ¥gon programmeringsdokumentation, men inte vill starta den fullständiga utvecklingsmiljön. + &tdevelop; Designer: Utökar &Qt; Designer för grafiska gränssnitt med element specifika för &kde; och integreras pÃ¥ ett bra sätt i utvecklingsmiljön &tdevelop;. + + + + + + + + + + + + +NÃ¥gra anmärkningar om väljare till <command +>configure</command +> + + +Annan installationskatalog än standard + + + &tdevelop; + installation + inte standardkatalog + + inte standardkatalog + + KDEDIRS + + kbuildsycoca + +Normalt förbereder configure för att installera den grafiska utvecklingsmiljön i &kde;:s standardkatalog. Det behövs, eftersom &tdevelop; antar att det gÃ¥r att direkt komma Ã¥t vissa verktyg och delprogram som finns där. Om du vill använda din egen installationskatalog, mÃ¥ste du tala om det för configure med väljaren : +~/kde3src/tdevelop> ./configure --prefix=(där din kde3 finns) +Det finns ett problem om du gör det. Du mÃ¥ste ge möjlighet för &tdevelop; att komma Ã¥t nödvändiga verktyg och delprogram i &kde;:s katalog när det kör. (Du kan fortfarande använda den integrerade utvecklingsmiljön utan att göra det, men med mycket begränsade funktioner.) +Starta ett skal och se till att köra följande kommandon innan du startar &tdevelop; frÃ¥n skalet. + +Försäkra dig om att använda pluralis: Det är KDEDIRS, inte bara KDEDIR. + + + ~> export KDEDIRS=/usr/local/kde:/opt/kde3 + ~> kbuildsycoca + (Starta nu &tdevelop;:) + ~> tdevelop + + + + Miljövariabeln KDEDIRS mÃ¥ste vara inställt till listan med aktiva &kde;-bibliotek i systemet. Vi använder + /usr/local/kde:/opt/kde3 + bara som ett exempel. + Katalogen /usr/local/kde kan till exempel innehÃ¥lla en ofullständig &kde;-version som du kompilerat i avlusningssyfte, och katalogen /opt/kde3 innehÃ¥ller dessutom den vanliga &kde;-versionen frÃ¥n distributionen som används för dagligt arbete. + + +I ett tcsh-skal mÃ¥ste du ställa in miljövariablerna genom att använda: +~> setenv KDEDIRS /usr/local/kde:/opt/kde3 +Kommandot kbuildsycoca (bygg systemkontrollcache) söker efter bibliotek och lagrar deras plats och version i en cache, sÃ¥ att &tdevelop; kan hitta dem. Problemet är att det tar märkbart med tid, och mÃ¥ste köras varje gÃ¥ng du använder skalet för att starta &tdevelop; med en annan installationskatalog än standardkatalogen. Du skulle kunna skriva in ovanstÃ¥ende kommandon i ett skalskript för att reducera ansträngningen att skriva in det. +(Du skulle ocksÃ¥ kunna skriva in raderna i filen .bashrc eller .cshrc, men det är inte önskvärt eftersom dÃ¥ körs kbuildsycoca varje gÃ¥ng du använder skalet.) + +Kommandot kbuildsycoca kör inte för systemadministratören. Du mÃ¥ste anropa det som en annan användare. (Men det är inte en särskild god idé att utveckla programvara som systemadministratör!) + + + + + + + + + +Hur man skaffar dokumentation av programmeringsgränssnittet för &tdevelop; + + + programmeringsgränssnitt + &tdevelop; + + &tdevelop; + programmeringsgränssnitt + + kompilera + &tdevelop; + programmeringsgränssnitt + + anpassa + Programmeringsgränssnitt i &tdevelop; + +Programmeringsgränssnittet, Application Program Interface pÃ¥ engelska, ofta förkortat API, innehÃ¥ller i själva verket en följd av beskrivningar (dvs. anropsmodeller) som ett program kan använda för att komma Ã¥t operativsystem och andra tjänster. I vÃ¥rt fall har dock en mer omfattande definition använts. Programmeringsgränssnittet för ett &kde;- eller &Qt;-program är en sammanfattning av klasser och metodgränssnitt, en översikt som kan användas som uppslagsbok för navigation i källkoden. +Det finns en version av det senaste programmeringsgränssnittet pÃ¥ KDevelops hemsida. Den uppdateras automatiskt varje dygn sÃ¥ att du kan hänga med. +Tyvärr används den här versionen bäst för att bara läsa via Internet. Om du inte alltid är uppkopplad, kan du lika väl bygga din egen dokumentation av programmeringsgränssnittet frÃ¥n källkoden för &tdevelop;. För att göra det, mÃ¥ste du tala om det för automake-systemet var KDELIBS programmeringsgränssnitt finns pÃ¥ din dator. Det kan Ã¥stadkommas med den särskilda väljaren i kommandot configure när du förbereder kompilering av källkoden för &tdevelop;. + + + ~/kde3src/tdevelop> ./configure --(vanliga väljare) \ + + --with-tdelibsdoxy-dir=$KDEDIR/share/doc/HTML/en/tdelibs-apidocs + + + +(make ersätter den globala variabeln $KDEDIR med den verkliga inställningen av &kde;-katalogen som finns där). Utför sedan kommandot make som vanligt. Efter att den integrerade utvecklingsmiljön &tdevelop; har byggts, har du möjlighet att ocksÃ¥ bygga programmeringsgränssnittet. För att göra det mÃ¥ste du skriva: +~/kde3src/tdevelop> make apidocs + +Detta bygger en Doxyfile i baskatalogen för &tdevelop;, som i sin tur behandlas av programmet Doxygen för att skapa en hel del .html-filer för programmeringsgränssnittet. När den ganska lÃ¥nga byggprocessen (den kan ta mer än en timme pÃ¥ en lÃ¥ngsam dator) av programmeringsgränssnittet till sist är klar, mÃ¥ste du installera programmeringsgränssnittet precis som du mÃ¥ste installera själva den integrerade utvecklingsmiljön &tdevelop;. Skaffa rättigheter som systemadministratör om det behövs med: + +~/kde3src/tdevelop> su + +och ange systemadministratörens lösenord. Installera sedan dokumentationsfilerna: + +~/kde3src/tdevelop> make install-apidox + +När det här väl är gjort, informerar make dig om katalogen där du till sist kan titta pÃ¥ innehÃ¥llet i dokumentationen av programmeringsgränssnittet. Observera adressen, eftersom du kan använda den frÃ¥n &konqueror; samt inne i &tdevelop;, om du har ställt in den egna källkoden för &tdevelop; som projektet att arbeta med. + +Du ser troligen en mängd varningar och/eller felmeddelanden under tiden programmeringsgränssnittet byggs av Doxygen. Det är bäst att ignorera dem. De är bara av intresse för utvecklare av &tdevelop;. Om programmeringsgränssnittet väl skapats med lyckat resultat, blir dess .html-filer användbara. + + + + diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-mdi-mode.png b/tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-mdi-mode.png new file mode 100644 index 00000000000..e5c96acd7f4 Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-mdi-mode.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-scripting.docbook b/tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-scripting.docbook new file mode 100644 index 00000000000..440fcd758ac --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-scripting.docbook @@ -0,0 +1,74 @@ + + + + + IanGeiser + + + + +Använda skript med KDevelop + + +Köra skript +För att komma Ã¥t ett skript som är tillgängligt i &tdevelop;, använd menyn Verktyg Skript. Om det inte finns nÃ¥gon sÃ¥dant menyalternativ finns inga tillgängliga skript installerade i KDevelop. + + + +Lägga till skript +När du väl har lagt till Kskript-stöd i ditt värdprogram är det lika lätt att lägga till skript. Skripten bestÃ¥r av tvÃ¥ delar, en skrivbordsfil som innehÃ¥ller metadata om skriptet och själva skriptet. Den här infallsvinkeln användes av säkerhets- och enkelhetsskäl. Skrivbordsfilen tillhandahÃ¥ller metainformation för menyer och skripttypen. Det förhindrar att värdprogrammet mÃ¥ste inspektera varje skript vid laddning. Ett exempel pÃ¥ filen visas nedan: +OvanstÃ¥ende exempel demonstrerar huvuddelarna som Kskript tittar efter. Den första posten, "Name", är namnet som visas för användaren i värdprogrammet och "Comment" visas oftast som verktygstips. Den viktigaste posten är "Type". Den används för att välja riktigt skriptgränssnitt för att köra skriptet. För närvarande är "ShellScript/bash" och "JavaScript/kjs" tillgängliga i KDE. Nästa steg är att skapa själva skriptet. För exemplet ovan är skripttypen som används "ShellScript/bash". Skalskriptgränssnittet tillhandahÃ¥ller nÃ¥gra saker Ã¥t utvecklaren. Det första elementet är värdprogrammets DCOP-identifikation. Den skickas som första argumentet till skriptet. Det betyder att var som helst i skriptet returnerar värdet "$1" värdprogrammets DCOP-identifikation. Ett exempel pÃ¥ ett skalskript visas nedan: + +Skriptet är mycket enkelt och kör bara ett kommando och sätter texten i det första dokumentet till utmatningen frÃ¥n "ls -l". + +Ett av de mest användbara verktygen när skript för program utvecklas, är programmet KDCOP. +
+ KDCOP DCOP-bläddringsgränssnitt i &tdevelop; + + + +
+ +KDCOP-verktyget låter skriptutvecklare bläddra och avlusa värdprogrammets nuvarande gränssnitt. KDCOP tillhandahåller också en trevlig funktion som låter användare markera en metod och dra nuvarande kod till en texteditor. Det förenklar användning för de som inte hajar DCOP-metoderna i värdspråket. För närvarande stöder KDCOP metoderna KJSEmbed, Python och Unix-skal för att komma åt DCOP. + +När skriptet väl är färdigt, är det klart att installeras. Programutvecklare bör dokumentera platsen som avsöks efter skript. I ovanstående exempel för Kate, är skripten placerade i "$KDEDIRS/share/apps/kate/scripts". + +
+ &tdevelop;-skript i filsystemet + + + +
+ +Skriptets skrivbordsfil, och tillhörande skript ska vara i samma katalog. För skriptutvecklare rekommenderas också att alla andra skriptresurser som UI-filer eller datafiler också finns i skriptkatalogen. I ovanstående exempel visas skriptet i menyn Verktyg -> KDE-skript. En viktig sak att notera för skriptutvecklare, är att de inte ska utföra åtgärder som kan blockera körning under en lång tid, eller starta en händelsesnurra. Det beror på att den nuvarande versionen av skriptgränssnittet är anpassat för automatiserade uppgifter som kör till de är färdiga. Detta hanteras och utökas för KDE 4. + +
+ + +
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-survey.docbook b/tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-survey.docbook new file mode 100644 index 00000000000..deab4fb87f9 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-survey.docbook @@ -0,0 +1,776 @@ + + + + + BerndPol + + + + +Översikt över funktioner i &tdevelop; + + + &tdevelop; + översikt + + Översikt + + översikt + +&tdevelop; integrerar mÃ¥nga verktyg, skript och mallar med ett gemensamt användargränssnitt. De grundläggande delarna är + flera lägen för användargränssnittet som du kan använda för att välja arbetsomrÃ¥dets utseende och känsla, + en programguide, som hjälper dig ställa in ett nytt projekt, + flera system för projekthantering, som hjälper till att bygga och hantera projektet, + nÃ¥gra redigeringsverktyg för att enkelt kunna arbeta med programtexten, + diverse filbläddrare, som ger dig olika vyer av filsystemet, + diverse klassbläddrare för att hjälpa dig underhÃ¥lla klasser och deras förhÃ¥llanden i ett objektorienterat programmeringsprojekt, + ett avlusningsgränssnitt för att hitta och ta bort programfel inifrÃ¥n &tdevelop;, och + flera insticksverktyg, utökningsbara moduler, eller delprogram, som laddas när programmet kör och vid behov. Det gör det möjligt för dig att bara aktivera de funktioner som du verkligen behöver. + en uppsättning andra diagnos-, dokumentations- och optimeringsverktyg. + + + + + Det finns i själva verket tre &tdevelop;-baserade program: + + Den integrerade utvecklingsmiljön &tdevelop;: Det här är platsen där du oftast arbetar. + Den fristÃ¥ende dokumentationsbläddraren &tdevelop; assistent: Isolerar alla kraftfulla dokumentationsfunktioner i utvecklingsmiljön &tdevelop; i ett separat verktyg. Det här är praktiskt när du vill slÃ¥ upp nÃ¥gon programmeringsdokumentation, men inte vill starta den fullständiga utvecklingsmiljön. + &tdevelop; Designer: Utökar &Qt; Designer för grafiska gränssnitt med element specifika för &kde; och integreras pÃ¥ ett bra sätt i utvecklingsmiljön &tdevelop;. + + + + + +Tillgängliga lägen för användargränssnitt + + + &tdevelop; + lägen för användargränssnitt + + användargränssnitt + Lägen i &tdevelop; + + Gränssnittslägen + + Underramsfönster + + Fliksidor + + ToppnivÃ¥fönster + + IDEA-fönster + +&tdevelop; erbjuder fyra olika gränssnittslägen (klicka pÃ¥ lägesnamnet för att se ett exempel): + IDEA-fönster + Det här är ett nytt sorts användargränssnitt som bÃ¥de optimerar arbetsutrymmet och ger en intuitiv användning av verktygen. + + Alla verktygsfönster är dockade som en flikrad omkring huvudramens omrÃ¥de. De är grupperade till vänster, längst ner och till höger enligt de tjänster de erbjuder. + Editor- och bläddrarfönster överlagras i ett stort fönster med flikar mitt i huvudramens omrÃ¥de. + + + + + Underramsfönster + + Alla verktygsvyer är frÃ¥n början dockade i huvudramen. + Editor- och bläddrarfönster existerar som toppnivÃ¥fönster inne i ett vyomrÃ¥de i huvudramen. + + + + + Fliksidor + + Alla verktygsvyer är frÃ¥n början dockade i huvudramen. + Editor- och bläddrarfönster överlagras i ett fönster med flikar. + + + + + ToppnivÃ¥fönster + + Alla editor-, bläddrar- och verktygsfönster är toppnivÃ¥fönster direkt pÃ¥ skrivbordet. + Huvudkomponenten innehÃ¥ller bara menyraden, verktygsrader och statusraden. + + + + + + + +Hur man byter läge för användargränssnitt + + + användargränssnitt + byta läge + + byta gränssnittsläget + +För att byta läge för användargränssnittet, välj Inställningar Anpassa KDevelop... i menyraden. Dialogrutan Anpassa KDevelop dyker upp, där du mÃ¥ste välja Användargränssnitt i trädet till vänster. DÃ¥ öppnas inställningssidan som visas nedan: + + + + + + + Välj ett användargränssnittsläge + + + +(Äldre versioner av &tdevelop; erbjuder bara valet ToppnivÃ¥läge.) + +i rutan Huvudsakligt användargränssnitt välj alternativknappen för användargränssnittsläget du vill arbeta med. +Beroende pÃ¥ användargränssnittsläget du valde, blir andra inställningsrutor tillgängliga där du kan skräddarsy ytterligare detaljer för utseende och känsla i dina inställningar. Se kapitlet Välja användargränssnitt för mer information. + +Glöm inte att starta om &tdevelop; för att dina val ska fÃ¥ effekt. + + + + +Hur man maximerar arbetsomrÃ¥det + + + &tdevelop; + arbetsomrÃ¥de + + &tdevelop; + maximera arbetsomrÃ¥de + + användargränssnitt + arbetsomrÃ¥de + + användargränssnitt + menyrad + + användargränssnitt + fullskärmsläge + + fullskärmsläge + + menyrad + dölj/visa + + dölj menyrad + + visa menyrad + +Det finns ett fullskärmsläge tillgängligt för att maximera utrymmet, som expanderar huvudramens omrÃ¥de till skärmkanterna. Ytterligare utrymme kan Ã¥tertas genom att dölja menyraden. Du kan förstÃ¥s ocksÃ¥ dölja alla verktygsrader, som vanligt i KDE-program. + + + +Fullskärmsläge + +För att byta till eller frÃ¥n fullskärmsläge, välj Visa Fullskärmsläge i menyraden, eller tryck pÃ¥ &Ctrl;&Shift;F. Det finns ocksÃ¥ en ikon för Fullskärmsläge tillgänglig i Bläddringsverktygsraden.. + + + + +Visa eller dölj menyraden + +För att dölja menyraden, välj Inställningar Visa menyrad i menyraden, eller tryck pÃ¥ &Ctrl; M. Du kan ocksÃ¥ lägga till ikonen Visa menyrad pÃ¥ en lämplig verktygsrad, t.ex. Bläddringsverktygsraden för ändamÃ¥let. För att visa menyraden igen, mÃ¥ste du trycka pÃ¥ &Ctrl; M, eller använda ikonen Visa menyrad, om den är tillgänglig. + + + + + + + + + + + +Element i användargränssnittet + +(... ännu inte skrivet ...) + + +ArbetsomrÃ¥det + +(... ännu inte skrivet ...) + + + +Namnlisten i &tdevelop; + +(... ännu inte skrivet ...) + + + +Statusraden i &tdevelop; + +(... ännu inte skrivet ...) + + + +Menyraden + +(... ännu inte skrivet ...) + + + +Verktygsraderna + +(... ännu inte skrivet ...) + + + +Trädverktygsvyerna + +(... ännu inte skrivet ...) + + + +Utmatningsverktygsvyerna + +(... ännu inte skrivet ...) + + + + + + + +Projekthanteringssystem + + + projekthantering + +Totalt sett beror ett projekt pÃ¥ nÃ¥gon form av projekthanteringssystem. &tdevelop; erbjuder fyra projekthanteringssystem som programmeraren kan välja bland när ett nytt projekt skapas. + Automake-projekt använder de vanliga utvecklingsverktygen för &GNU;. + Qmake-projekt använder Trolltechs Qmake-projekthantering. + ANT-projekt använder Apaches ANT-projekthantering för Java-utveckling. + Eget projekt kräver att du underhÃ¥ller din egen Makefile. + + + + +Automake-projekt + + + projekt + automake + + automake + projekt + +Projekt som skapats med Hantering av automake i &tdevelop; gör det mycket lätt för utvecklare att använda de vanliga &GNU; utvecklingsverktygen. De tillhandahÃ¥ller + ett bättre sätt att skapa en Makefile och + ett bra och säkert sätt för snabb anpassning till olika system med configure-skript skapade av autoconf. + + + + + +Qmake-projekt + + + projekt + qmake + + qmake + projekt + +För utvecklare som glädjer sig Ã¥t flexibiliteten och känslan i &Qt;:s qmake-system, erbjuder &tdevelop; möjlighet att hantera qmake-baserade projekt (.pro-filer) inne i det grafiska gränssnittet. +För mer information om Qmake-projekthantering se Qmake User Guide, som ska finnas med i distributionen, eller ta en titt pÃ¥ hemsidan Trolltech Documentation där du hittar Qmake-dokumentationen under Qt C++ GUI Application Development Toolkit. + + + +CMake-projekt + + + projekt + cmake + + cmake + projekt + +CMake kommer att vara &kde;:s byggsystem för &kde; 4 och &tdevelop; tillhandahÃ¥ller redan nÃ¥gra mallar baserade pÃ¥ CMake för C och C++. Du behöver bara programmet cmake i $PATH för att bygga dem. +För att ställa in ett nytt C eller C++ projekt i &tdevelop; välj Projekt Nytt projekt... C eller C++ CMake-baserade projekt En mall för delat bibliotek eller Hello world program . + + + +ANT-projekthantering (&Java;-projekt) + + + projekt + ant + + ant + projekt + + projekt + Java + + Java + projekt + + utveckling + Java + +&Java;-utvecklare kan vilja använda Apaches ANT-projekthantering för sina projekt. För att skapa ett nytt ANT-projekt i &tdevelop;, välj Projekt Nytt projekt... Java Ant project Application. +För mer information se Ant-projektets hemsida. + + + +Eget projekt + + + projekt + eget + + eget projekt + + Makefile + eget projekt + +Om du föredrar att underhÃ¥lla din egen Makefile för projektet, kan du använda alternativet med ett eget projekt i &tdevelop;. Det kan vara passande i projekt med ovanlig struktur, eller om du vill behÃ¥lla fullständig kontroll över byggprocessen. +Om du ändÃ¥ inte verkligen behöver den egna projekthanteringens extra flexibilitet och kontroll, bör du fundera pÃ¥ Hantering av automake eller nÃ¥gon annan projekthantering, eftersom de förenklar bygg- och distributionsprocessen för program väsentligt. + + + +Hur du kan distribuera ditt program + + + distribution + + program + distribution + + binärpaket + +Distributionen av ditt program kräver inte att slutanvändaren har installerat nÃ¥got ytterligare än + en lämplig kompilator, + en länkare, och + de lämpliga utvecklingsbiblioteken, + + +vilket Ã¥tminstone för C++ program oftast är fallet. Men du kan lika väl distribuera binärpaket av programmet. Hur som helst, behöver inte slutanvändaren av produkten installera &tdevelop;. +Om du ger bort din källkod, rÃ¥der vi dig att ocksÃ¥ ta med projektfilen för &tdevelop;. Det gör det mycket enkelt för andra utvecklare, om de använder &tdevelop;, att arbeta med källkoden. +För projekt där flera utvecklare, som kanske arbetar pÃ¥ olika ställen, är inblandade, bör detta vara fallet ändÃ¥. Du kan försäkra dig om överensstämmelse för alla Makefile, för att inte rÃ¥ka ut för bekymmer. +Särskilt för program med flera sprÃ¥k, arbetar inte översättare direkt med källkoden, utom i fall som kräver rättning för att göra det möjligt med översättningsstöd. + + + + + + diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-tabbed-mode.png b/tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-tabbed-mode.png new file mode 100644 index 00000000000..3bddfeeb645 Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-tabbed-mode.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-toplevel-mode.png b/tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-toplevel-mode.png new file mode 100644 index 00000000000..5f18608af0d Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-toplevel-mode.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/tutorial-hello-new.png b/tde-i18n-sv/docs/tdevelop/tdevelop/tutorial-hello-new.png new file mode 100644 index 00000000000..ba95f0e8585 Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/tutorial-hello-new.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/tutorial-hello-options.png b/tde-i18n-sv/docs/tdevelop/tdevelop/tutorial-hello-options.png new file mode 100644 index 00000000000..4a6d75bd5ea Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/tutorial-hello-options.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/tutorial-new-project.png b/tde-i18n-sv/docs/tdevelop/tdevelop/tutorial-new-project.png new file mode 100644 index 00000000000..fbe64295eab Binary files /dev/null and b/tde-i18n-sv/docs/tdevelop/tdevelop/tutorial-new-project.png differ diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/unixdev.docbook b/tde-i18n-sv/docs/tdevelop/tdevelop/unixdev.docbook new file mode 100644 index 00000000000..be8d66dbc9b --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/unixdev.docbook @@ -0,0 +1,641 @@ + + + + + BerndPol + + + + +Utveckling pÃ¥ &UNIX; + +utveckling + + &UNIX; + utveckling + + +NÃ¥gra historiska anmärkningar + +historia +skriptsprÃ¥k + + &UNIX; + historia + + &UNIX; + rörledning + + &UNIX; + skal + + skal + &UNIX; + +FrÃ¥n början har &UNIX; upprätthÃ¥llit tvÃ¥ mycket olika utvecklingsmodeller. Den ena är sfären av programsprÃ¥k för system och tillämpningar, där en källkod översätts till maskinkod med en kompilator eller tolk. ProgramsprÃ¥ket C är ett exempel pÃ¥ detta. Unix var den första operativsystemkärnan som skrevs i ett högnivÃ¥sprÃ¥k istället för maskinnära assembler, som var vanligt innan dess. (I själva verket uppfanns till och med sprÃ¥ket C för att skriva Unix-kärnan, och tillhörande program, pÃ¥ en DEC PDP-11 dator.) +Den andra modellen är sfären med skriptsprÃ¥k, som startade med uppfinningen av &UNIX;-skalet, som samtidigt var operativsystemets användargränssnitt, och ett programsprÃ¥k pÃ¥ mycket hög nivÃ¥. Ett skalskript byggs upp av en mängd smÃ¥ verktyg som t.ex. grep, sed eller find. Varje sÃ¥dant verktyg är konstruerat för en väl avgränsad uppgift. Tricket är att alla sÃ¥dana verktyg kan kopplas ihop med varandra via en enkel överföringsmekanism, kallat rörledning, som skickar utmatningen frÃ¥n föregÃ¥ende verktyg till inmatningen för nästa. Det ger grunden till en mycket kraftfull och flexibel programmeringsmetod. +Med tiden har bÃ¥da sfärerna utvecklats. Medan C fortfarande i huvudsak används som ett systemprogramsprÃ¥k, har C++, som en variant av C berikad med objektorienterade och generiska utökningar, funnit sin plats vid utveckling av komplexa program under 1990-talet. Det finns mÃ¥nga andra programsprÃ¥k, till och med äldre behÃ¥ller sin plats. FORTRAN77 och Ada har t.ex. fortfarande sina fästen i numeriska tillämpningar. + + + + + +Moderna skriptsprÃ¥k +I skriptomrÃ¥det har det skett ett skifte bort frÃ¥n skalet, som lider av flyttbarhetsproblem, till sprÃ¥k som samlar alla vanliga funktioner i standardbibliotek, medan de fortfarande kan ha gränssnitt mot omvärlden via rörledningar när det behövs. +Alla skriptsprÃ¥k har gemensamt att de ofta är flyttbara mellan mÃ¥nga &UNIX;-varianter, &Microsoft; &Windows;, &MacOS; eller till och med VMS. Dessutom har de alla implementeringar som kan distribueras fritt. + + +&perl; + +Perl + + skriptsprÃ¥k + Perl + +&perl; har blivit populärt som textbehandlings- och systemadministrationssprÃ¥k. FrÃ¥n starten av webben användes CGI-skript skrivna i &perl; som ett utbrett sätt att skapa dynamiska webbsidor frÃ¥n databaser. Idag har den metoden ofta ersatts med insticksprogrammet mod_perl för webbservern &apache;. Bland &perl;s styrkor är dess inbyggda stöd för avancerade reguljära uttryck, och rika arkiv med fritt distribuerade moduler. +För mer information se webbplatsen Comprehensive Perl Archive Network (CPAN). + + + +Python + +Python + + skriptsprÃ¥k + Python + +&python; glänser med elegansen i sitt klassystem och enkelheten och flexibiliteten som yttre bibliotek kan förpackas, pÃ¥ sÃ¥ sätt att de förefaller vara standardklasser och -funktioner i &python;. I motsats till &perl;, har &python; ett klart och koncist inbäddningsgränssnitt, som gör det till bästa val för att möjliggöra skript för C och C++ program. + + + +PHP + +PHP + + skriptsprÃ¥k + PHP + +&php; uppfanns som ett sprÃ¥k för direkt inbäddning pÃ¥ HTML-sidor, och har av den orsaken huvudanvändningen att leverera dynamisk innehÃ¥ll för webben. + + + + + +HögnivÃ¥skript + +HögnivÃ¥program i &UNIX; saknar ofta snabbheten och flexibiliteten hos de traditionella teckenbaserade skalskriptmekanismerna. Det är särskilt sant i de grafiska gränssnittens värld, som t.ex. &kde;. +Försök har gjorts att tillhandahÃ¥lla liknande mekanismer som fungerar pÃ¥ en högre programnivÃ¥, bland de mest nämnvärda är CORBA, och i &kde;-miljön, &DCOP;. + + +CORBA-protokollet + +CORBA + + skriptsprÃ¥k + CORBA + + kommunikation + CORBA + +CORBA (Common Object Request Broker Architecture) är ett försök att lÃ¥ta datorprogram arbeta tillsammans via nätverk. Det togs fram av den privata, leverantörsoberoende kommittén OMG (Object Management Group). +CORBA-baserade program använder IIOP-standardprotokollet för att kommunicera. Implementeringar baserade pÃ¥ IIOP är tillgängliga för ett stort antal operativsystem, programsprÃ¥k och nätverk, och är därför mycket flyttbara. +Den huvudsakliga nackdelen med CORBA är dess ganska lÃ¥ngsamma hastighet. Även om det kan tolereras i nätverk, är det ett verkligt hinder för kommunikation mellan program i en miljö utan nätverk, sÃ¥som &kde; när det kör pÃ¥ en enda dator. + + + + +&DCOP;-gränssnittet + +DCOP + + skriptsprÃ¥k + DCOP + + kommunikation + DCOP + +En annan evolution av &UNIX;-liknande skript är DCOP-protokollet, som uppfanns för kommunikation mellan &kde;-program för att bemästra CORBA:s begränsningar. +&DCOP; betyder Desktop COmmunikation Protocol (protokollet för skrivbordskommunikation), och är implementerat som en enkel IPC/RPC-mekanism byggd för att fungera via uttag. Sluteffekten är att erbjuda funktioner som liknar den traditionella rörledningsmekanismen i &UNIX;. +Traditionella skalskript är baserade pÃ¥ ganska smÃ¥ programverktyg, som konstruerades för att enbart fungera baserade pÃ¥ ren text. &DCOP; tillÃ¥ter att avancerade grafiska program kommunicerar med varandra pÃ¥ ett motsvarande sätt. Det gör det till exempel möjligt för ett &kde;-program att skicka meddelanden till ett annat &kde;-program, eller ta emot data frÃ¥n det för sitt eget syfte. +Det finns dock nackdelar. För att använda &DCOP;, mÃ¥ste programmet vara konstruerat med ett speciellt &DCOP;-gränssnitt. Dessutom gÃ¥r &DCOP;-kommunikationsprocessen nÃ¥got lÃ¥ngsamt (även om den är mycket snabbare än CORBA). ÄndÃ¥ sÃ¥ Ã¥terger det mycket av styrkan och flexibiliteten i &UNIX;-skript till högnivÃ¥program som är baserade pÃ¥ ett grafiskt användargränssnitt. +För ytterligare information, se artikeln DCOP: Desktop COmmunications Protocol eller The DCOP Desktop Communication Protocol library, dokumentation av användargränssnittet för &kde;:s DCOP-bibliotek. + + + + + + + +Byggsystem + +Utom i mycket enkla fall, kommer ett programmeringsprojekt att bestÃ¥ av mÃ¥nga byggblock med källkod, vart och ett placerat i en enskild fil för enklare underhÃ¥ll. För att fÃ¥ allt att köra, mÃ¥ste man effektivt kunna översätta allt detta till nÃ¥gra fÃ¥ maskinkodsenheter med lämpligt format, som gör att operativsystemet kan ladda och köra programmet. +För att Ã¥stadkomma detta, är de grundläggande verktyg som behövs: + en texteditor för att skriva källkodsfilerna, + ett översättningsprogram, oftast en kompilator för att omvandla källkoden till objektfiler, + ett biblioteksprogram som samlar objektfiler i bibliotek, som enkelt kan Ã¥teranvändas utan att behöva kompileras om, + en länkare, som binder ihop flera objektfiler och bibliotek till ett körbart program, + ett byggsystem, som erbjuder nÃ¥got sätt att hantera allt detta, och inte att förglömma, + en avlusare för att (förhoppningsvis) hitta alla fel i programmet, och möjligen ytterligare diagnosverktyg för att fÃ¥ allt att köra smidigt. + + + +När man har ett stort projekt, som kan bestÃ¥ av upp till hundratals källkodsfiler, kan kompileringsprocessen bli riktigt arbetsintensiv. Man vill inte kompilera om alla filer varje gÃ¥ng nÃ¥gra av dem har ändrats. Istället vill man bara kompilera om de filer som pÃ¥verkas av ändringen. I allmänhet är det inte alltid helt uppenbart vilka av filerna som mÃ¥ste kompileras om. +När t.ex. en funktionsprototyp i en deklarationsfil ändras, mÃ¥ste alla filer som beror pÃ¥ deklarationsfilen kompileras om. Om projektet innehÃ¥ller mÃ¥nga sÃ¥dana filer kan man enkelt missa en eller tvÃ¥ av dem om arbetet mÃ¥ste göras för hand. Därför behövs nÃ¥gon form av automatisering. + + +Byggprocessen + + + bygg + + Makefile + + regel + + omkompileringar + + mÃ¥l + + beroenden + + kommandon + +Ett verktyg som tar hand om omkompileringar är make. Det hÃ¥ller reda pÃ¥ allt arbete med en uppsättning regler, som beskriver vad som ska göras i händelse nÃ¥gon viss information (oftast en källkods- eller objektkodsfil) ändrades. Alla regler som hör till ett visst projekt lagras i en sÃ¥ kallad Makefile, som behandlas av make sÃ¥ fort du vill uppdatera arbetet. +Varje regel bestÃ¥r av flera byggblock, närmare bestämt + ett mÃ¥l, dvs filen som ska byggas + en uppsättning beroenden, i grunden namnen pÃ¥ de filer som mÃ¥let beror pÃ¥ (t.ex. namnet pÃ¥ en källkodsfil, när mÃ¥let är namnet pÃ¥ objektfilen som ska byggas) och + de kommandon som ska köras för att bygga mÃ¥let (dvs. för att kompilera det eller länka ihop andra objektfiler för att skapa en körbar programfil). + + +Enkelt uttryckt, läser kommandot make reglerna en i taget, kontrollerar varje fil i beroendelistan för ett givet mÃ¥l, och bygger mÃ¥let igen om nÃ¥gon av filerna har ändrats, med de kommandon som listas i regeln. +Det finns flera ytterligare möjligheter att styra en sÃ¥dan byggprocess, och en Makefile kan pÃ¥ sÃ¥ sätt växa sig mycket komplex. Vi kan inte gÃ¥ in pÃ¥ detaljer här. Hur som helst, rekommenderar vi att du gör dig bekant med syntaxen för make. Även om du inte normalt använder det direkt, kan en förstÃ¥else för grunderna i byggsystemet vara användbar. Se GNU make manualen för mer information. +För mer detaljinformation specifik för &tdevelop;, se Bygga och projekthantering i den här handboken. +Det finns flera handledningar tillgängliga, se referenserna i kapitlet Bygga och projekthantering. + + + + + + + +Utveckling av grafiska gränssnitt + + + GUI + + grafiskt användargränssnitt + + användargränssnitt + GUI + +Programutvecklare blir ännu mer belastade genom att de inte bara mÃ¥ste skapa programbibliotek och logiken, men ocksÃ¥ tillhandahÃ¥lla lättanvända egenbyggda användargränssnitt som bÃ¥de är enkla att förstÃ¥ och funktionella. De flesta programmerare fÃ¥r liten eller ingen utbildning i utveckling av grafiska gränssnitt, och som ett resultat är användargränssnitt ofta dÃ¥ligt konstruerade. +Under mÃ¥nga Ã¥r har nÃ¥gra gemensamma designprinciper utvecklats. Du rekommenderas starkt att hÃ¥lla dig till dem. PÃ¥ sÃ¥ sätt behÃ¥ller ditt användargränssnitt ett gemensamt utseende och känsla, som användare av programmet tacksamt uppskattar. +För utveckling av grafiska gränssnitt för &kde; finns en stilguide tillgänglig. Den finns som &kde;:s guide för användargränssnitt pÃ¥ sidan &kde;:s utvecklingshörna. +En kort introduktion till gemensamma principer för konstruktion av grafiska gränssnitt finns här. + + + + + + +Integration av koncept och verktyg: den integrerade utvecklingsmiljön + + + IDE + + integrerad utvecklingsmiljö + + utveckling + IDE + + miljö + IDE + +Det finns separata verktyg tillgängliga för nästan varje steg i programmeringsprocessen: planering, redigering, processen för att hantera filer och kompilering, avlusning, dokumentation med mera. Men när projekten växer, blir programmeringsprocesserna troligtvis ganska omständliga. +Mycket repetitivt arbete mÃ¥ste göras vid konstruktion, kompilering och avlusning av ett program. En hel del sÃ¥dant arbete kan sparas genom att använda mallar och skript. Ytterligare arbete kan sparas genom att ha verktygen lätt tillgängliga, och med möjlighet att kommunicera med varandra i ett gemensamt grafiskt gränssnitt. +Vore det till exempel inte bekvämt om en avlusare kunde öppna källkoden i frÃ¥ga i en editor, och placera markören direkt pÃ¥ platsen för felet som just hittats? +För att enklare uppnÃ¥ ett sÃ¥dant fall, togs integrerade utvecklingsmiljöer (IDE:er) fram. En sÃ¥dan miljö integrerar alla mallar, verktyg och skript som ofta behövs i utvecklingsprocessen i en enda omgivning. +&tdevelop; är en sÃ¥dan integrerad utvecklingsmiljö för &kde;-plattformen. Den erbjuder ett brett spektrum av verktyg som underlättar programutveckling och underhÃ¥ll, till och med för olika programsprÃ¥k och olika plattformar. + + +Grundläggande funktioner i &tdevelop; &kdevrelease; + + + &tdevelop; + funktioner + + funktioner + + + + + + Hanterar alla utvecklingsverktyg som behövs för C++ programmering, som kompilator, länkare, avlusare och byggsystem. + + + TillhandahÃ¥ller en programguide som skapar fullständiga, körklara exempelprogram. + + + LÃ¥ter användaren välja en integrerad editor baserad pÃ¥ &kde;:s programmeringseditor &kwrite;, TrollTechs Qeditor eller andra. + + + En klassgenerator för att skapa nya klasser och integrera dem i det nuvarande projektet. + + + Filhantering för källkod, deklarationer, dokumentation, etc. som ska ingÃ¥ i projektet. + + + Hjälp med att skapa en användarhandbok för programmet skriven med &kde;-verktyg. + + + Automatisk HTML-baserad dokumentation av programmeringsgränssnittet för projektets klasser med korsreferens till använda bibliotek. + + + Översättningsstöd som gör det möjligt för översättare att enkelt lägga till sitt modersmÃ¥l i projektet, inklusive stöd för &kbabel;. + + + Stöd för att hantera ett projekt via ett av flera versionshanteringssystem (t.ex. &CVS;), genom att tillhandahÃ¥lla ett lättanvänt gränssnitt till funktionerna som oftast behövs. + + + Ett integrerat gränssnitt för avlusning. + + + En integrerad emulator av en skalkonsol. + + + Syntaxfärgläggning i källkodstext. + + + En funktion för automatisk kodkomplettering för klassvariabler, klassmetoder, funktionsargument med mera. + + + Mallar för att skapa diverse projekt (moduler i inställningscentralen, miniprogram i panelen &kicker;, I/O-slavar, insticksprogram till &konqueror; och skrivbordsstilar). + + + Fyra trädvyer för att enkelt byta mellan källkodsfiler, deklarationsfiler, klasser och dokumentation, vilket gör det onödigt med en extern filhanterare. + + + Stöd för korskompilering, med möjlighet att ange olika kompilatorer, kompilatorflaggor, mÃ¥larkitektur etc. + + + Stöd för projekt med Qt/Embedded (som Zaurus och IPAQ). + + + Möjlighet att inkludera vilket annat program som helst som du behöver för utveckling genom att lägga till det i menyn Verktyg, enligt dina individuella behov. + + + + + + + + + diff --git a/tde-i18n-sv/docs/tdevelop/tip.database b/tde-i18n-sv/docs/tdevelop/tip.database new file mode 100644 index 00000000000..79db5ea50f5 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tip.database @@ -0,0 +1,30 @@ +...att KDevelop ger en Snabbhjälp med höger musknapp? +...att du kan välja autosparningstid i inställningsdialogen? +Om du vill lägga till ytterligare kommandorads villkor till ditt 'make' program kan du lägga till dem i inställningsdialogen. +Om du vill använda funktioner i bibliotek som ej länkas med programmet, kan du lägga till dem i projektets alternativdialog. +Om du vil ändra versionsnummret på din applikation, kan du ändra den i projektets alternativdialog eller låta KDevelop automatiskt uppdatera ditt projekt. +Om du vill skapa ett nytt projekt, välj "Projekt"->"Applikation Wizard" från menyn. +Om du inte har dokumentationen till KDE-biblioteket, skapa en genom att välj "Uppdatera" från dokumentationsdelen i KDevelops inställningsdialog. +Om du ändrade dina applikations klasser bör du uppdater din API dokumentation genom att välja "Skapa API-Doc" från projektmenyn. +Du kan spara tid om du väljer att "Kompilera fil" från projektmenyn eller verktygsfältet enbart skall kompilera din aktuella implementationsfil. +Om du söker efter information om klasser eller klassmedlemmar, välj "Sök hjälp om..." från hjäpmenyn. +Om du vill ha information om något i KDevelops fönster, välj "Vad är detta ?" knappen i verktygsfältet och tryck på den sak du inte vet något om. +Tips: Du kan söka i dokumentationen efter ett nyckelord genom att markera ordet och välja "slå upp" i popupmenyn som du får genom att trycka höger musknapp. +KDevelopteamet önskar dig en trevlig dag ! +Om du hittar ett fel i KDevelop, var då snäll och låt oss veta det. Kontaktadresser finns i KDevelops användarhandbok. +Om du vill att lägga till ditt egen dokumentation till dokumentationsträdet, tryck höger musknapp eller välj "Andra"-tillägg i trädet. Konfigurera sedan sökvägen och tillägsnamnet. +...att du kan skapa en ny klass med "ny klass" från projektmenyn ? +att du kan skriva ut dina filer med antingen a2ps eller enscript inifrån KDevelop ? +För att öppna ett projekt, välj "Öppna" från projektmenyn. +Om du kompilerat ditt projekt och fick ett felmeddelande, kan du trycka på felmeddelandet och hoppa till den fil och dess rad där felet uppstod. +...att du kan använda tangentbordets snabbkommandon för att stänga av / på utdata och trädfönstret ? +...att du kan felsöka ditt program inifrån KDevelop genom att markera "Felsök" i Projektmenyn eller genom att välja Felsökningsikonen ? +...att du kan byta mellan klasser genom att välja bland klasslistan i verktygsfältet ? +...att du kan redigera xmp:er med kiconedit genom att välja dem i filvisarens träd ? +...att du kan välja bland kompilatorvarningar i projektets alternativdialog ? +...att du även kan söka efter markerad text inifrån dokumentationsläsaren i popupmenyn som du får genom att trycka höger musknapp ? +...att du kan kopiera text från dokumentationläsaren till utklippshanteraren med popupmenyn som du får genom att trycka höger musknapp och klistra in dem i din källkod ? +...att du bör hålla dokumentationen till ditt bibliotek uppdaterad efter att du installerat ett nytt bibliotek? +...att du kan konfigurera redigerarens syntaxfärgläggningen ? +...att du kan ångra och göra om dina redigeringskommandon och välja antalet steg i redigerarens dialogruta ? + -- cgit v1.2.3