Next Previous Table of Contents

### 1. Introduction

As everything on earth has it's fashions, today's computer world seems to tend more to the use of free software even for commercial purpose. The most popular free software project is Linux. It is now generally agreed that Linux, (as well as other projects such as the Apache web server, the Perl language and GNU suite of tools), proves that free software can be of as high a quality as commercial software. But despite the quality, end users must still suffer under the cryptic commands of any Unix Systems.For Linux to thrive, it needs applications, both free and commercial, and ease of use.

The KDE project tries to close this gap by providing an easy to use desktop and the companion libraries to extend the variety of available GUI-based software. But especially as free software is often made in the author's free time, the question for many programmers is how much they like the current code development environment. KDevelop wants to take another major step: making the programmer's life easier and more efficient: products created with KDevelop can reach a higher level of reliability and functionality in the same development period.

To fulfill this goal, the KDevelop Integrated Development Environment provides many features that developers need as well as it wraps the functionality of third party projects such as `make` and the GNU C++ Compilers and makes them an invisible, integrated part of the development process. KDevelop manages:

- All development tools needed for C++ programming like Compiler, Linker, automake and autoconf,
- KAppWizard, which generates complete, ready-to-go sample applications,
- Classgenerator, for creating new classes and integrating them into the current project,
- File management for sources, headers, documentation etc. to be included in the project,
- The creation of User-Handbooks written with SGML and the automatic generation of HTML-output with the KDE look and feel,
- Automatic HTML-based API-documentation for your project's classes with cross-references to the used libraries,
- Internationalization support for your application, allowing translators to easily add their target language to a project,
- creation of user interfaces by interaction with TrollTechīs Qt Designer,
- managing your project via CVS by providing an easy-to-use frontend for the most needed functions,
- Debugging your application with a debugger of your choice, either the internal KDevelop debugge, ddd or kdbg,
- Editing of project-specific pixmaps with KIconEdit,
- The inclusion of any other program you need for development by adding it to the "Tools"-menu according to your individual needs.

KDevelop makes it a joy to work with all programs in one place and saves time by automating standard development processes as well as giving you direct and transparent access to all information you need. The integrated browsing mechanisms are designed to support documentation requests that developers have in conjunction with their project.

The class viewer and error finder bring you anywhere in the project code with a mouse click without needing to search for files; File trees give direct access to the project files and the integrated help system offers superb access to online-documentation from anywhere within the IDE.

### 1.1 Changes

Version 2.0 of KDevelop comes along with the most needed facilities for C/C++ development. During the development phase of KDevelop, the project made great improvements since the 1.0 final release, followed by the release of version 1.1, and 1.2., the version line based on the KDE 1.x and Qt 1.4x libraries finished with version 1.3 in late December of 2000. The current version is a port of version 1.3 to KDE 2.1 with enhanced features.

Improvements were made in the following sections:

KDevelop 1.2:

- fast classparser and -browser with graphical class-tree view and dialog-based adding of members and classes,
- CVS support for most needed functions such as adding, removing, updating and committing files and directories,
- updated and extended documentation, now covering five handbooks shipping with KDevelop,
- bugfixed dialogeditor and errorfinder,
- updated documentation tree which lets you access the class documentation up to any method of classes directly

KDevelop 1.3:

- rewritten templates for Qt 2.x, now based on Qt-2.2.1 only as they make use of the QAction class and the configure script searches for the uic which processes Qt Designer files
- rewritten templates for KDE 2.0 which make use of the new API now fully and who are also using the uic for desinger files
- support for the new Qt Designer in KDE 2.0/Qt-2.2.x projects.
- the new Qt Linguist and its tools coming with it to create internationalization files for Qt applications is fully supported. The handling of internationalization is done the same way as for KDE project with KDevelop, just that you have to use tr() instead of i18(). Create an example Qt application to see the details. Also mind that all Qt utilities have to be in your $PATH variable, usually this is $QTDIR/bin.
- all KDE 2.0 and Qt 2.2.x templates make use of KDEīs autoconf/automake system, this enables developers to convert their automatic configuration system to KDE easily if they decide to use KDE features for their application.
- KDevelop ships with three additional scripts to make your life easier; these are installed in $prefix/bin (usually $KDEDIR/bin):
  - extractrc: this is a script that is originally located in the KDE CVS module kdesdk (KDE Software Development Kit). It is called automatically for creating the pot-file of your application and extracts the strings from your XML resource file that is used to build the GUI in KDE 2.0 applications
  - kimport: kimport is a perl script that enables you to create a *.kdevprj (KDevelp Project File) from almost any automake/autoconf compatible already existing project. Usage: go to your project directory and call kimport > <yourprojectname>.kdevprj. This will redirect the output to a projectfile that you can load into KDevelop.
  - kdevdlg2ui: converts an existing *.kdevdlg file that has been created with KDevelopīs Dialogeditor into a *.ui file that can be edited with Qtīs Designer.
- several bugfixes regarding bugs in the kwrite code and KDevelop itself

KDevelop 1.4:

- porting over to KDE 2.1. KDevelop is now a true KDE 2.x application and ships with KDE 2.1
- removal of KDE 1.x templates and the internal dialogeditor. Graphical user interface design is now based on using Qt Designer only.
- improved functionality in regards to the classbrowser such as providing the "grep" function over the class-tree and autocompletion in the browser toolbar that allows easy selection of classes, methods and member attributes as well as global functions, attributes and structs.
- overall GUI enhancements like geometry-managed dialogs; usage of KDE 2īs new dialog classes and dockwidgets.

KDevelop 2.0:

- New configuration file *.kdevses, which holds user specific session information. Makes it a lot easier to work in teams on the same source code.
- added manpage display
- new User Interface modes (Toplevel Mode, ChildFrame Mode)
- CTags support. Source Code can now be parsed so navigation is a lot easier now. You can easily switch between declaration and definition of Symbols as well as change between the corresponding Source / Header files by pressing F12 or via the right mouse button menu.
- Output from Tools can now be displayed in messages window.
- The Grep Dialog remembers the last search items and search paths.
- KDevelop now send system notifications when a build has succeeded or failed. They do not trigger an action by default, but you can assign a sound or a messagebox in the preferences menu.
- Many more usability improvements.

KDevelop 2.1:

- compiles under KDE 2.2 and KDE 3.0
- added support for crosscompiling environments to configure crosscompilers in the KDevelop setup dialog
- added support for using the crosscompilers in extending the session managment to enable the user to customize different compile environments, each having different options such as compiler flags and using --host, --build and --target configure options to crosscompile
- the configuration dialog allows to specify configure options individually and interprets the most common ones like --enable-debug, plus holds input fields to configure the Qt path, prefix and X includes, header files
- new combobox in the toolbar to allow the user to switch between these configurations
- Qt/Embedded support in the template by configure options, also covers QPE support (qpe.sourceforge.net)

Any comments about the IDE, its documentation or feature requests are welcome.

### 1.2 About this Handbook

This user manual gives the user a complete overview of the KDevelop IDE and describes the basic development process in brief. For more information about specific programming issues, we suggest reading the KDevelop Programming Handbook included with KDevelop, which covers themes such as understanding generated application frameworks and how to create full-featured KDE applications using example projects. See also the included Tutorial Handbook as well as the KDE 2.0 Development book available at local bookstores in printed form or online at http://www.andamooka.org.

The design of this handbook is therefore separated into the following parts:

- Chapter Installation, covers the system requirements, installation and setting up of the KDevelop IDE.
- Chapter Programs, tells you how programs are created with standard GNU development tools and how they are built.
- Chapter Development with KDevelop, takes you on a short tour describing the main functionality of the environment.
- Chapter Overview, explains the menus and dialogs as well as keyboard shortcuts.
- Chapter The Help System, shows how to use the built-in documentation browser and additional help functions.
- Chapter Working with the Editor, explains the features of file management and editing.
- Chapter Projects, describes the creation and maintaining of software projects.
- Chapter Build Settings, contains a reference on how to set Compiler and liker flags as well as project options.
- Chapter The Class Browser, tells you how to make use of KDevelop's powerful Class Browser.
- Chapter Using Qt Designer in your Project, features how to use Qt Designer while working on your project and how KDevelop seamlessly cooperates with Designer.
- Chapter The Internal Debugger,gives an overview over debugging setup and use of the internal debugger
- Chapter CVS Integration, tells you how to use the revision control system CVS and RCS with your KDevelop project.
- Chapter General Configuration shows how you can set overall preferences for using KDevelop.
- Chapter Questions and Answers, covers questions that regard to the usage of KDevelop under different flavors of Unix systems and problem solutions in general.

For programming beginners and new users of this product we recommend to read yourself into this manual before starting to actually work with the IDE as it covers the usage in depth. The understanding of how things are done the quickest way will save you a lot of time searching for functions and features as it will enable you to make use of first-class development tools even more simple.

### 1.3 About the KDevelop Project

The KDevelop project was started in summer of 1998 after KDE 1.0 was available on Linux/Unix to make the attempt of creating an easy to use C/C++ IDE for programmers, especially targeting on the KDE desktop. Since then the project has found a lot of helpers and supporters as well as sponsors who want to help the team continue their work on this now widely recognized programming environment. Within one and a half year, the IDE developed to a full-featured KDE application with the most possible functionality and stability as the creators started to develop the IDE with the IDE itself at the time enough usability was given. Therefore bugs were mostly found by the authors and could be fixed very quickly as well as needed extensions for programming KDE applications.

The first official stable release was made with version 1.0 on December 6, 1999. Thereafter, the KDevelop Team introduced more features and stability into the IDE by new code or code that was unstable before, which lead to the second release as version 1.1 on February 28, 2000.

Since then, the project continud to integrate more functionality and simplifying the current codebase along with many translators who transfer KDevelop to as most languages as possible to provide the international developer community the IDE in their own language, including the handbooks that ship with it. Many users contributed their experience and knowledge to the project as one of the most promising products for Linux/Unix developers to make it even more stable and portable to other Unices.

After the 1.2 release on May 4th, we continued fixing several bugs while working on a 2.0 version using the KDE 2.0 API and the latest technologies KDE 2.0 offers. Since the release of Qt-2.2.0 brought Qtīs Designer for constructing user interfaces which also supports KDE widgets, the Designer is about to replace KDevelopīs own dialog editor as it offers dynamic layout management and directly connecting widgets. To support using the Designer within KDevelop, the templates and KDevelop have been updated to make easy use of it while working on a KDE 2.0 or Qt 2.2.x project.

The 1.3 release marked another milestone. It was the last version that needed KDE 1.x libraries to run and was much anticipated through the offers it made towards development for the new KDE 2.0 platform when it was released on December 11th, 2000.

Since then John Birch and I decided that we really would like to have a KDE 2.x version of our "baby", KDevelop. We took the time and made it- by the end of 2000, we roughly had the functionality to say we were almost ready. While KDE 2.1 was short to come out early 2001, we decided to ship KDevelop with the base KDE distribution as this version will make many new KDE developers happy to start working on a great API on a free system to develop software for.

### 1.4 Printed Versions

A printed version of the complete KDevelop Documentation is available as the book titled Developing Applications for Linux: KDE Edition, which can be ordered either online from the KDevelop website at http://www.kdevelop.org or at http://www.opendocs.org. A share of the Gross Profits from the sales of this book goes back to the KDevelop project to support continuing the further development of KDevelop.

Printable versions of the KDevelop Documentation can also be obtained from the KDevelop website at http://www.kdevelop.org in DVI, PostScript and PDF format both in A4 and Letter size.

Next Previous Table of Contents