~ubuntu-branches/debian/sid/kdevelop/sid

« back to all changes in this revision

Viewing changes to doc/kdevelop/kdevelop-survey.docbook

  • Committer: Bazaar Package Importer
  • Author(s): Jeremy Lainé
  • Date: 2010-05-05 07:21:55 UTC
  • mfrom: (1.2.3 upstream) (5.1.2 squeeze)
  • Revision ID: james.westby@ubuntu.com-20100505072155-h78lx19pu04sbhtn
Tags: 4:4.0.0-2
* Upload to unstable (Closes: #579947, #481832).
* Acknowledge obsolete NMU fixes (Closes: #562410, #546961).

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
<chapter id="kdevelop-survey">
2
 
 
3
 
<chapterinfo>
4
 
  <authorgroup>
5
 
    <author><firstname>Bernd</firstname><surname>Pol</surname></author>
6
 
    <!-- ROLES_OF_TRANSLATORS -->
7
 
  </authorgroup>
8
 
</chapterinfo>
9
 
 
10
 
<title>Overview of &kdevelop; Features</title>
11
 
 
12
 
<indexterm zone="kdevelop-survey">
13
 
  <primary>&kdevelop;</primary>
14
 
  <secondary>survey</secondary></indexterm>
15
 
<indexterm zone="kdevelop-survey">
16
 
  <primary>overall view</primary></indexterm>
17
 
<indexterm zone="kdevelop-survey">
18
 
  <primary>survey</primary></indexterm>
19
 
 
20
 
<para>
21
 
&kdevelop; integrates a lot of tools, scripts, and templates in a common user interface. Basically it consists of
22
 
 
23
 
<itemizedlist>
24
 
  <listitem><para>
25
 
  several <link  linkend="uimodes-survey">user interface modes</link> from which you can select the look and feel of the workspace,
26
 
  </para></listitem>
27
 
  <listitem><para>
28
 
  an <link linkend="applicationwizard">&appwizard;</link> which aids you in setting up a new project,
29
 
  </para></listitem>
30
 
  <listitem><para>
31
 
  several <link linkend="makesystems">project management systems</link> which aid in building and managing your project,
32
 
  </para></listitem>
33
 
  <listitem><para>
34
 
  some <link linkend="editing">editing tools</link> to easily work on your program texts
35
 
  </para></listitem>
36
 
  <listitem><para>
37
 
  various <link linkend="file-browsers">file browsers</link> providing you different views on your file system,
38
 
  </para></listitem>
39
 
  <listitem><para>
40
 
  various <link linkend="class-browsers">class browsers</link> to aid you in maintaining the classes and their relationships of your object-oriented programming project,
41
 
  </para></listitem>
42
 
  <listitem><para>
43
 
  a <link linkend="debugger">debugger interface</link> to find and remove program errors from within &kdevelop;, and
44
 
  </para></listitem>
45
 
  <listitem><para>
46
 
  several <link linkend="plugin-tools">plugin tools</link>, extensible modules which can be loaded at runtime and on demand.  This allows you to only turn on those features you really need.
47
 
  </para></listitem>
48
 
  <listitem><para>
49
 
  a set of other diagnosis, documentation, and optimization helper tools.
50
 
  </para></listitem>
51
 
</itemizedlist>
52
 
</para>
53
 
 
54
 
<note>
55
 
  <para>
56
 
  In fact there are three &kdevelop;-based applications:
57
 
  </para>
58
 
  <itemizedlist>
59
 
    <listitem><para>The &kdevelop; IDE &mdash; this is the place where you will usually work.</para></listitem>
60
 
    <listitem><para>The stand-alone &kdevelop; Assistant documentation browser &mdash; isolates all the powerful documentation facilities of the &kdevelop; IDE in a separate tool. This comes in handy when you want to look up some programming documentation but do not want to start the full IDE.</para></listitem>
61
 
    <listitem><para>The &kdevelop; Designer &mdash; enhances the &Qt; User Interface Designer by &kde; specific elements and integrates nicely in the &kdevelop; IDE.</para></listitem>
62
 
  </itemizedlist>
63
 
</note>
64
 
 
65
 
 
66
 
<sect1 id="uimodes-survey">
67
 
<title>Available User Interface Modes</title>
68
 
 
69
 
<indexterm zone="uimodes-survey">
70
 
  <primary>&kdevelop;</primary>
71
 
  <secondary>user interface modes</secondary></indexterm>
72
 
<indexterm zone="uimodes-survey">
73
 
  <primary>user interface</primary>
74
 
  <secondary>&kdevelop; modes</secondary></indexterm>
75
 
<indexterm zone="uimodes-survey">
76
 
  <primary>UI modes</primary></indexterm>
77
 
<indexterm zone="uimodes-survey">
78
 
  <primary>Child Frame Windows</primary></indexterm>
79
 
<indexterm zone="uimodes-survey">
80
 
  <primary>Tabbed Pages</primary></indexterm>
81
 
<indexterm zone="uimodes-survey">
82
 
  <primary>Toplevel Windows</primary></indexterm>
83
 
<indexterm zone="uimodes-survey">
84
 
  <primary>IDEAl</primary></indexterm>
85
 
 
86
 
<para>
87
 
&kdevelop; offers developers four separate user interface modes (click on the mode name to view an example):
88
 
<itemizedlist>
89
 
  <listitem><para><link linkend="ideal-desc">IDEAl</link></para>
90
 
  <para>
91
 
  This is a novel user interface approach optimizing both work space and intuitive handling of the tools.
92
 
  </para>
93
 
  <itemizedlist>
94
 
    <listitem><para>
95
 
    All tool views are docked in a tabbar fashion around the mainframe area. They are grouped left, bottom, and right according to the services provided.
96
 
    </para></listitem>
97
 
    <listitem><para>
98
 
    Editor and browser views will be stacked in a big sized tabbed window inmidst the mainframe area.
99
 
    </para></listitem>
100
 
  </itemizedlist>
101
 
  </listitem>
102
 
 
103
 
  <listitem>
104
 
  <para><link linkend="mdi-desc">Child Frame Windows</link></para>
105
 
  <itemizedlist>
106
 
    <listitem><para>All tool views are initially docked to the mainframe.</para></listitem>
107
 
    <listitem><para>Editor and browser views will live like toplevel windows within a view area of the mainframe.</para></listitem>
108
 
  </itemizedlist>
109
 
  </listitem>
110
 
 
111
 
  <listitem>
112
 
  <para><link linkend="tabbed-desc">Tabbed Pages</link></para>
113
 
  <itemizedlist>
114
 
    <listitem><para>
115
 
    All tool views are initially docked to the mainframe.
116
 
    </para></listitem>
117
 
    <listitem><para>
118
 
    Editor and browser views will be stacked in a tabbed window.
119
 
    </para></listitem>
120
 
  </itemizedlist>
121
 
  </listitem>
122
 
 
123
 
  <listitem>
124
 
  <para><link linkend="toplevel-desc">Toplevel Windows</link></para>
125
 
  <itemizedlist>
126
 
    <listitem><para>
127
 
    All editor, browser, and tool views will be toplevel windows directly on the desktop.
128
 
    </para></listitem>
129
 
    <listitem><para>
130
 
    The main widget only contains the menu, toolbars, and statusbar.
131
 
    </para></listitem>
132
 
  </itemizedlist>
133
 
  </listitem>
134
 
 
135
 
</itemizedlist>
136
 
</para>
137
 
 
138
 
<sect2 id="uimodes-switch">
139
 
<title>How to Switch User Interface Modes</title>
140
 
 
141
 
<indexterm zone="uimodes-switch">
142
 
  <primary>user interface</primary>
143
 
  <secondary>switch modes</secondary></indexterm>
144
 
<indexterm zone="uimodes-switch">
145
 
  <primary>switch UI modes</primary></indexterm>
146
 
 
147
 
<para>
148
 
To switch the user interface mode select <menuchoice> <guimenu>Settings</guimenu> <guimenuitem>Configure KDevelop...</guimenuitem> </menuchoice> from the menus. The <guilabel>Customize KDevelop</guilabel> dialog will pop up, where you have to select <guilabel>User Interface</guilabel> in the left hand tree. This will display the settings page shown below.
149
 
</para>
150
 
 
151
 
<screenshot>
152
 
  <mediaobject>
153
 
    <imageobject>
154
 
      <imagedata fileref="select-user-interface.png" format="PNG"/>
155
 
    </imageobject>
156
 
    <caption><para>
157
 
    Select a user interface mode
158
 
    </para></caption>
159
 
  </mediaobject>
160
 
</screenshot>
161
 
 
162
 
<para>
163
 
(Older &kdevelop; versions provide the top mode selection section only.)
164
 
</para>
165
 
 
166
 
<para>
167
 
In the <guilabel>Major User-Interface Mode</guilabel> section select the radio button of the user interface mode you want to work in.
168
 
</para>
169
 
<para>
170
 
Dependent on the user interface mode you selected, other configuration sections will become available where you can taylor more details of the look and feel to your preferences. See the <link linkend="setup-ui">Selecting the User Interface</link> chapter for more detail.
171
 
</para>
172
 
 
173
 
<note><para>
174
 
Do not forget to restart &kdevelop; in order to let your selections take effect.
175
 
</para></note>
176
 
 
177
 
</sect2> <!-- uimodes-switch -->
178
 
 
179
 
<sect2 id="maximize-workspace">
180
 
<title>How to Maximize the Work Space Area</title>
181
 
 
182
 
<indexterm zone="maximize-workspace">
183
 
  <primary>&kdevelop;</primary>
184
 
  <secondary>work space</secondary></indexterm>
185
 
<indexterm zone="maximize-workspace">
186
 
  <primary>&kdevelop;</primary>
187
 
  <secondary>maximize work space</secondary></indexterm>
188
 
<indexterm zone="maximize-workspace">
189
 
  <primary>user interface</primary>
190
 
  <secondary>work space</secondary></indexterm>
191
 
<indexterm zone="maximize-workspace">
192
 
  <primary>user interface</primary>
193
 
  <secondary>menubar</secondary></indexterm>
194
 
<indexterm zone="maximize-workspace">
195
 
  <primary>user interface</primary>
196
 
  <secondary>full screen mode</secondary></indexterm>
197
 
<indexterm zone="maximize-workspace">
198
 
  <primary>full screen mode</primary></indexterm>
199
 
<indexterm zone="maximize-workspace">
200
 
  <primary>menubar</primary>
201
 
  <secondary>hide/unhide</secondary></indexterm>
202
 
<indexterm zone="maximize-workspace">
203
 
  <primary>hide menubar</primary></indexterm>
204
 
<indexterm zone="maximize-workspace">
205
 
  <primary>unhide menubar</primary></indexterm>
206
 
 
207
 
<para>
208
 
To maximize space, there is a full-screen window mode available which expands the mainframe area to the screen borders. Additional space can be reclaimed by hiding the menubar. And you can of course hide any toolbar as usual in <application>KDE</application> applications.
209
 
</para>
210
 
 
211
 
<variablelist>
212
 
<varlistentry>
213
 
<term>Full Screen Mode</term>
214
 
<listitem>
215
 
<para>
216
 
To switch to or from full screen mode select <menuchoice>
217
 
<guimenu>View</guimenu> <guimenuitem>Full-Screen Mode</guimenuitem>
218
 
</menuchoice> from the menus or press
219
 
<keycombo>&Ctrl;&Shift;<keycap>F</keycap> </keycombo>. There is also a
220
 
<guiicon>Full-Screen Mode</guiicon> icon in the <guilabel>Browse
221
 
Toolbar</guilabel> available.</para>
222
 
</listitem>
223
 
</varlistentry>
224
 
 
225
 
<varlistentry>
226
 
<term>Hide/Unhide the Menubar</term>
227
 
<listitem>
228
 
<para>
229
 
To <emphasis>hide</emphasis> the menubar select <menuchoice> <guimenu>Settings</guimenu> <guimenuitem>Show Menubar</guimenuitem> </menuchoice> from the menus or press <keycombo>&Ctrl;<keycap>M</keycap> </keycombo>. You may also include a <guiicon>Show Menubar</guiicon> icon in a suiting toolbar, &eg; the <guilabel>Browse Toolbar</guilabel> for that purpose. To <emphasis>unhide</emphasis> the menubar you must press <keycombo> &Ctrl;<keycap>M</keycap> </keycombo> or use the <guiicon>Show Menubar</guiicon> icon if available.
230
 
</para>
231
 
</listitem>
232
 
</varlistentry>
233
 
</variablelist>
234
 
 
235
 
</sect2> <!-- maximize-workspace -->
236
 
 
237
 
</sect1> <!-- uimodes-survey -->
238
 
 
239
 
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
240
 
 
241
 
<sect1 id="ui-elements">
242
 
<title>Elements of the User Interface</title>
243
 
 
244
 
<para>
245
 
(... to be written ...)
246
 
</para>
247
 
 
248
 
<sect2 id="ui-elements-workarea">
249
 
<title>The Workarea</title>
250
 
 
251
 
<para>
252
 
(... to be written ...)
253
 
</para>
254
 
</sect2> <!-- ui-elements-workarea -->
255
 
 
256
 
<sect2 id="ui-elements-titlebar">
257
 
<title>The &kdevelop; Titlebar</title>
258
 
 
259
 
<para>
260
 
(... to be written ...)
261
 
</para>
262
 
</sect2> <!-- ui-elements-titlebar -->
263
 
 
264
 
<sect2 id="ui-elements-statusbar">
265
 
<title>The &kdevelop; Statusbar</title>
266
 
 
267
 
<para>
268
 
(... to be written ...)
269
 
</para>
270
 
</sect2> <!-- ui-elements-statusbar -->
271
 
 
272
 
<sect2 id="ui-elements-menubar">
273
 
<title>The menubar</title>
274
 
 
275
 
<para>
276
 
(... to be written ...)
277
 
</para>
278
 
</sect2> <!-- ui-elements-menubar -->
279
 
 
280
 
<sect2 id="ui-elements-toolbars">
281
 
<title>The Toolbars</title>
282
 
 
283
 
<para>
284
 
(... to be written ...)
285
 
</para>
286
 
</sect2> <!-- ui-elements-toolbars -->
287
 
 
288
 
<sect2 id="ui-elements-treetoolviews">
289
 
<title>The Tree Tool Views</title>
290
 
 
291
 
<para>
292
 
(... to be written ...)
293
 
</para>
294
 
</sect2> <!-- ui-elements-treetoolviews -->
295
 
 
296
 
<sect2 id="ui-elements-outputtoolviews">
297
 
<title>The Output Tool Views</title>
298
 
 
299
 
<para>
300
 
(... to be written ...)
301
 
</para>
302
 
</sect2> <!-- ui-elements-outputtoolviews -->
303
 
 
304
 
</sect1> <!-- ui-elements -->
305
 
 
306
 
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
307
 
 
308
 
<sect1 id="makesystems">
309
 
<title>Project Management Systems</title>
310
 
 
311
 
<indexterm zone="makesystems">
312
 
  <primary>project management</primary></indexterm>
313
 
 
314
 
<para>
315
 
Globally, a project will rely on some form of project management system.  &kdevelop; offers four <emphasis>project management systems</emphasis> the programmer can select from when creating a new project.
316
 
 
317
 
<itemizedlist>
318
 
  <listitem><para>
319
 
  <link linkend="automake-project">Automake projects</link> use the &GNU; standard development tools.
320
 
  </para></listitem>
321
 
  <listitem><para>
322
 
  <link linkend="qmake-project">QMake projects</link> use the trolltech QMake project manager.
323
 
  </para></listitem>
324
 
  <listitem><para>
325
 
  <link linkend="ant-project">ANT projects</link> use the Apache ANT project manager for &Java; development.
326
 
  </para></listitem>
327
 
  <listitem><para>
328
 
  <link linkend="custom-project">Custom projects</link> require you to maintain your own <filename>Makefiles</filename>.
329
 
  </para></listitem>
330
 
</itemizedlist>
331
 
</para>
332
 
 
333
 
<sect2 id="automake-project">
334
 
<title>Automake Projects</title>
335
 
 
336
 
<indexterm zone="automake-project">
337
 
  <primary>projects</primary>
338
 
  <secondary>automake</secondary></indexterm>
339
 
<indexterm zone="automake-project">
340
 
  <primary>automake</primary>
341
 
  <secondary>projects</secondary></indexterm>
342
 
 
343
 
<para>
344
 
Projects created with &kdevelop;'s &automanag; make it very easy for developers to use the &GNU; standard development tools. They provide
345
 
<itemizedlist>
346
 
  <listitem><para>
347
 
  a better way of <filename>Makefile</filename> generation and
348
 
  </para></listitem>
349
 
  <listitem><para>
350
 
  a good and safe way for fast adaption towards different systems by autoconf-generated <filename>configure</filename> scripts.
351
 
  </para></listitem>
352
 
</itemizedlist>
353
 
</para>
354
 
</sect2> <!-- automake-project -->
355
 
 
356
 
<sect2 id="qmake-project">
357
 
<title>QMake Projects</title>
358
 
 
359
 
<indexterm zone="qmake-project">
360
 
  <primary>projects</primary>
361
 
  <secondary>qmake</secondary></indexterm>
362
 
<indexterm zone="qmake-project">
363
 
  <primary>qmake</primary>
364
 
  <secondary>projects</secondary></indexterm>
365
 
 
366
 
<para>
367
 
For developers who enjoy the flexibility and feel of &Qt;'s qmake system, &kdevelop; offers the ability to handle qmake based projects (.pro files) within the &GUI;.
368
 
</para>
369
 
<para>
370
 
For more information on the QMake project manager see the <quote>qmake User Guide</quote> which should be included in your distribution or have a look at the <ulink url="http://doc.trolltech.com/">TROLLTECH Documentation</ulink> home page where you may find the QMake documentation of your <quote>Qt C++ GUI Application Development Toolkit</quote> version.
371
 
</para>
372
 
</sect2> <!-- qmake-project -->
373
 
 
374
 
<sect2 id="cmake-project">
375
 
<title>CMake Projects</title>
376
 
 
377
 
<indexterm zone="cmake-project">
378
 
  <primary>projects</primary>
379
 
  <secondary>cmake</secondary></indexterm>
380
 
<indexterm zone="cmake-project">
381
 
  <primary>cmake</primary>
382
 
  <secondary>projects</secondary></indexterm>
383
 
 
384
 
<para>
385
 
CMake will be the &kde; build system for &kde; 4 and &kdevelop; already
386
 
provides you some CMake based templates in C and C++. You only need the cmake
387
 
program in your $<envar>PATH</envar> to build them.
388
 
</para>
389
 
<para>
390
 
To set up a new C or C++ project in &kdevelop; select
391
 
<menuchoice><guimenu>Project</guimenu>
392
 
<guimenuitem>New Project...</guimenuitem>
393
 
<guimenuitem>C or C++</guimenuitem> 
394
 
<guimenuitem>CMake based projects</guimenuitem>
395
 
<guimenuitem>A shared library template or Hello world program</guimenuitem> 
396
 
</menuchoice>.
397
 
</para>
398
 
</sect2> <!-- cmake-project -->
399
 
 
400
 
<sect2 id="ant-project">
401
 
<title>ANT Projects (&Java; Projects)</title>
402
 
 
403
 
<indexterm zone="ant-project">
404
 
  <primary>projects</primary>
405
 
  <secondary>ant</secondary></indexterm>
406
 
<indexterm zone="ant-project">
407
 
  <primary>ant</primary>
408
 
  <secondary>projects</secondary></indexterm>
409
 
<indexterm zone="ant-project">
410
 
  <primary>projects</primary>
411
 
  <secondary>Java</secondary></indexterm>
412
 
<indexterm zone="ant-project">
413
 
  <primary>Java</primary>
414
 
  <secondary>projects</secondary></indexterm>
415
 
<indexterm zone="ant-project">
416
 
  <primary>development</primary>
417
 
  <secondary>Java</secondary></indexterm>
418
 
 
419
 
<para>
420
 
&Java; developers may want to use the Apache ANT project manager for their projects. To set up a new Ant project in &kdevelop; select <menuchoice><guimenu>Project</guimenu>
421
 
<guimenuitem>New Project...</guimenuitem>
422
 
<guimenuitem>Java</guimenuitem>
423
 
<guimenuitem>Ant Project</guimenuitem>
424
 
<guimenuitem>Application</guimenuitem></menuchoice>.
425
 
</para>
426
 
<para>
427
 
For more information see <ulink url="http://ant.apache.org/">The Apache Ant Project</ulink> home page.
428
 
</para>
429
 
</sect2> <!-- ant-project -->
430
 
 
431
 
<sect2 id="custom-project">
432
 
<title>Custom Projects</title>
433
 
 
434
 
<indexterm zone="custom-project">
435
 
  <primary>projects</primary>
436
 
  <secondary>custom</secondary></indexterm>
437
 
<indexterm zone="custom-project">
438
 
  <primary>custom projects</primary></indexterm>
439
 
<indexterm zone="custom-project">
440
 
  <primary>Makefile</primary>
441
 
  <secondary>custom projects</secondary></indexterm>
442
 
 
443
 
<para>
444
 
If you prefer to maintain your own <filename>Makefiles</filename> for your project you may use the custom project option of &kdevelop;. This may be feasible in unusually structured projects or if you want to retain full control over the <command>make</command> process.
445
 
</para>
446
 
<para>
447
 
Yet, if you do not <emphasis>really need</emphasis> the extra flexibility and control of the custom project manager you should consider &automanag; or one of the other project managers, because they considerably ease the program building and distribution processes.
448
 
</para>
449
 
</sect2> <!-- custom-project -->
450
 
 
451
 
<sect2 id="makesystems-distribution">
452
 
<title>How to Distribute Your Application</title>
453
 
 
454
 
<indexterm zone="makesystems-distribution">
455
 
  <primary>distribution</primary></indexterm>
456
 
<indexterm zone="makesystems-distribution">
457
 
  <primary>application</primary>
458
 
  <secondary>distribution</secondary></indexterm>
459
 
<indexterm zone="makesystems-distribution">
460
 
  <primary>binary packages</primary></indexterm>
461
 
 
462
 
<para>
463
 
The distribution of your applications does not require the end-user to have anything different installed other than
464
 
<itemizedlist>
465
 
  <listitem><para>an appropriate compiler,</para></listitem>
466
 
  <listitem><para>a linker, and</para></listitem>
467
 
  <listitem><para>the appropriate development libraries,</para></listitem>
468
 
</itemizedlist>
469
 
</para>
470
 
<para>
471
 
which at least for C++ applications is most often the case. But you can as well distribute <emphasis>binary packages</emphasis> of your application.
472
 
<!-- ### more detail on binary construction needed somewhere -->
473
 
In either way, the end-user of your product does not need &kdevelop; installed.
474
 
</para>
475
 
<para>
476
 
For giving away your sources, we advise to include the <emphasis>project file</emphasis> of &kdevelop; as well. This makes it very easy for other developers&mdash;if they use &kdevelop;&mdash;to work with your sources.
477
 
</para>
478
 
<para>
479
 
For projects where <emphasis>several developers</emphasis>, maybe working on different places, are involved, this should be the case anyway. So you can ensure consistency of the <filename>Makefiles</filename> to not run into trouble.
480
 
</para>
481
 
<para>
482
 
Especially on multi language applications, <emphasis>translators</emphasis> won't actually work with the source code, except in cases that require correction for enabling translation support.
483
 
</para>
484
 
 
485
 
</sect2> <!-- makesystems-distribution -->
486
 
 
487
 
</sect1> <!-- makesystems -->
488
 
 
489
 
</chapter> <!-- kdevelop-survey -->