# Getting Started with &kdevelop; — a Guided Tour

Now that you have installed your &kdevelop; IDE, how are you going to make good use of it? As this is a complex application, the learning curve may be somewhat steep, especially if you are not already used to this type of an Integrated Development Environment.

We will try to soften this learning curve a bit by stepping through the makings of a simple KDE C++ application. Thereby we will have a (cursory) look at:

- What is there seen on the surface of the &kdevelop; IDE.
- Some initial configuration steps.
- How to create a new project.
- How to work with documents.
- How to compile the application in this project.
- How to add classes and other detail to your project.
- What to do to debug the application.
- Some basic tools to build program or user documentation.

## A Very First Look at &kdevelop;

### On the Surface

When you start &kdevelop; for the first time you will get a display similar to this one:

The &kdevelop; initial layout

### Workspace Area and Tool View Tabs

In this intitial case &kdevelop; uses the so-called IDEAl user interface mode. A workspace area of maximum possible size is surrounded left, bottom, and right by a series of buttons which act similar to tabs on a tabbed display. If you click on one of those tabs, a so-called tool view window will open which allows you to work on a specific task.

### Menu and Toolbars

On top there is the usual menubar, followed by several rows of toolbars, some being initially empty. They will get populated once there is a project opened for actual work.

### Status Bar

Finally there is a status bar on the bottom of the window displaying short informations on several tasks.

### How to Get Some Help

Besides the Help which offers answers to specific questions, the status bar and two kinds of tooltips provide some quick information.

### What Does This Menu Entry Do?

When you place the mouse cursor on a menu entry, there will usually some short information be displayed in the status bar. While in most cases this repeats just the name of the selection, in some cases it will provide additional information about the purpose of the menu command.

### What Is the Name of This Item?

On many items a short function name tooltip will pop up when you place the cursor on it for a few seconds. This is useful for quick orientation on toolbar or tool view tabs in IDEAl mode when the IDE has been set up to display icons only on these buttons.

### What Does This Item Do?

More information is available through expanded tooltip help for many items on the IDE. Select Help What's This? or press &Shift;F1, then with the question mark cursor select the item you want to know more of. You can as well open any menu this way and click on a specific menu entry (active as well as greyed disabled ones) to see if more information is available.

### What is in the menus

There are ten menus selectable on the menubar. Most of them get fully populated once a project is opened for actual work while others need a document opened at least. In short, they will allow the following action types.

File

- ### Usual Actions

  This is pretty standard. It allows to create, open, save, print, and close document files as well as quitting the &kdevelop; application as usual.

  ### Revert Changes

  Additionally it allows to revert changes by reloading file contents in an orderly way.

Edit

- This menu is useful only if a document is opened.

  ### Usual Actions

  It provides the usual undo/redo and cut/copy/paste actions. Furthermore it allows to select text blocks in various ways.

  ### Search and Replace

  There is a very powerful search facilitiy available on the Edit menu. In addition to the usual search and replace actions limited to the the current document you may as well conduct global search and replace actions. This allows to work on all files of the project in a single turn.

  ### Advanced Text Edit

  There are provisions to reformat the current document and to automatically complete partially typed texts in various ways.

View

- Like the Edit menu, this menu is useful only if there is a project currently open. I this case there will be the following actions available (amongst others):

  ### Navigation History

  Switch back and forth through the documents &etc; you visited.

  ### Error Tracking

  Navigate to the source lines of the errors encountered in the most recent compilation/build process.

  ### Manage Tool View

  Select or hide tool view windows or tool view docks.

  ### Editor Related Acions

  Some entries in the View menu control the look and view of the editor you use. In case of the &kate; Part (Embedded Advanced Text Editor) there will be the following controls available:

  - Control the word wrap behaviour in the document window.

  - Show or hide several border displays in the document windows: line numbers, icons, and, additionally, bookmark marks in the scroll bar.

  - Control the display of folded (temporarily hidden) sections in a source text.

Project

- All work of &kdevelop; is based on projects which basically collect source files, build management files, and other information in one project directory. In this menu you control which project to use, which properties it has, and some other managing actions. In particular:

  ### Open a Project

  Allows to create new projects, open existing ones, and import projects from other environments.

  ### Project Options

  Allows to define a whole bunch of different project properties.

  ### Classes Management

  Add new classes to the project and traverse the inheritance tree of a class.

  ### Distribute Project

  Helps to build distribution packages of the project.

Build

- This menu is all about compiling and documenting the project. Thus it is of use only when a project is actually open. In this case it provides the following actions:

  ### Compile, Link, Execute

  Allows to compile and link the whole project or parts of it as well as run the application from within the IDE.

  ### Prepare Build Operations

  This actually depends on the make system you use for this project. In the case of automake projects it allows to run `Makefile.cvs` and `configure` on their own. There are also provisions to remove translated files from the project in various stages of intensity.

  ### Install the Application

  Allows to install the application both in local directories as well as in system directories only accessible to the root user.

  ### API Documentation

  Build or remove a doxygen-based API documentation of the project as defined in the project options.

Debug

- Although this menu will be filled once a project is active, it of course is useful only if the actual project has been previously compiled with debugging information (this is basically set up in Project Project Options..). There are the following actions available in this case:

  ### Usual Debugger Actions

  The first section in the Debug provides a graphical interface to the GDB &GNU; symbolic debugger. It allows to start and stop your application in the debugger and step through it in various ways.

  ### Breakpoints

  &kdevelop; provides several means to set breakpoints in your application sources. One is through the use of the Toggle Breakpoint menu entry.

  ### Advanced Debugging

  Other Debug menu entries allow more sophisticated program analysis. Use &Shift;F1 to get more information about their purpose.

Window

- This is fairly standard. You may select any open document window as well as close one or more documents windows in here. You may even select a set of document windows to be closed in one single turn.

Tools

- &kdevelop; is highly customizable. You may select a favorite editor for your documents as well as provide external and plugged-in tools to extend the basic IDE capabilities. The Tools menu reflects most of this setup.

  ### Advanced Editing

  The upper set of Tools menu entries will be provided by the editor plugin which is in use. You may select your favorite editor via Settings Configure KDevelop... Editor. Once an editable document file is selected, the upper part of the Tools menu will provide advanced editing commands specific to the editor part in use.

  ### Web Side Handling

  In case the active document window contains a HTML page (⪚ displayed from a Documentation selection), the Tools will show additional menu entries which provide various means to handle Web pages.

  ### Other Tools

  Usually there will be a bunch of other entries according to the currently available tools. Use &Shift;F1 to get more information about their purposes.

Settings

Help

## A Bit of Configuration

(--- to be written ---)

## How to Start a New Project — the &appwizard;

(--- to be written ---)

## Working With Documents

(--- to be written ---)

### How to Automate Some Typing Tasks

(--- to be written ---)

## How to Compile a Project

(--- to be written ---)

### What the Messages Tell

(--- to be written ---)

## How to Extend a Project — the &automanag;

(--- to be written ---)

### A Short Look at the Automake Machinery

(--- to be written ---)

### How to Place Icons in a Separate Directory

(--- to be written ---)

### How to Add New Classes

(--- to be written ---)

Be careful when you select your class file names. It is extremely difficult to change them later.

### What is in a Subproject?

(--- to be written ---)

#### Concentrate on Your Work — the Active Target

(--- to be written ---)

### Some Steps to Restructure a Project

(--- to be written ---)

## How to Debug

(--- to be written ---)

## A Note on Documentation

(--- to be written ---)