Bernd
Pol
Marek
Laane

    bald@starman.ee

Tõlge eesti keelde

# &kdevelop;i algõpe — tutvustav ülevaade

Nüüd, kus &kdevelop;i IDE on paigaldatud, kerkib küsimus, midas sellega õieti peale hakata? Et tegemist on keeruka rakendusega, kulub selle tundmaõppimiseks omajagu aega, eriti kui sa pole varem sedalaadi integreeritud arenduskeskkonnaga kokku puutunud.

Me üritame sinu õpiprotsessi lihtsustada, näidates samm-sammult, kuidas luua KDE lhtne C++-keeles rakendus. Selleks vaatleme järgmisi asju:

- Esimene kokkupuude — &kdevelop;i &IDE; kasutajaliidese elemendid.
- Esialgne seadistamine.
- Uue projekti loomine.
- Mõned näpunäited dokumentide käsitlemiseks.
- Rakenduse kompileerimise projektis.
- Klasside ja muude asjade lisamine projekti.
- Rakenduse silumine.
- Mõned põhivahendid rakenduse või kasutaja dokumentatsiooni ehitamiseks.
- Ja lõpuks - kiirklahvid

Enne alustamist tuleb selgitada üht olulist asja.

## Mida ees oodata?

Nagu öeldud, on &kdevelop; integreeritud arenduskeskkond. See tähendab, et põhimõtteliselt ei ole &kdevelop; mitte arendustööriist, vaid ennekõige graafiline kasutajaliides väga erinevate arendustööriistade lihtsaks kasutamiseks, millest paljud nõuavad muidu käsureal arvukate keeruliste klaviatuurikäskude tundmist.

Kuigi &kdevelop; üldjuhul lihtsustab nende kasutamist, ei tähenda see, et nende keerukusastmes oleks järeleandmisi tehtud, mis omakorda tähendab, et &kdevelop;i &IDE; täielikuks mõistmiseks tuleb ikkagi aru saada selle taustal tegutsevatest tööriistadest.

Seetõttu ei hakka me õpetama, kuidas tarkvara ehitada, vaid tutvustame hoopis seda, kuidas &kdevelop; aitab seda teha. Kui soovid rohkem teada, milleks on integreeritud arenduskeskkond mõeldud, tasuks tutvuda ajaloolise ülevaatega &UNIX; arendustegevus, eriti aga peatükiga Kontseptsioonide ja tööriistade lõimimine.

Järgnevas tutvustuses kasutame vaikimisi seadistusi, mille korral &kdevelop; käivitub lihtsustatud IDEAl aknarežiimis. Kui soovid kasutada mõnda muud kasutajaliidese režiimi, ei pruugi kõik elemendid asuda täpselt samas kohas ega päris samamoodi käituda. Kui sa ei ole kindel, millist kasutajaliidese režiimi &kdevelop; parajasti kasutab, kontrolli seda dialoogis Seadistused KDevelopi seadistamine...Kasutajaliides.

## Kõige esimene pilk &kdevelop;ile

Siin tuleb juttu sellest, mida näeb &kdevelop;i kõige esimesel käivitamisel. Täpsemalt räägitakse järgmistest asjadest:

- Mida üldse näha saab?
- Kuidas abi saada?
- Mis peitub menüüdes?
- Milleks on head tööriistavaated?

### Väljanägemine

&kdevelop;i esmakordsel käivitamisel avaneb umbes selline vaatepilt:

&kdevelop;i esialgne välimus

(Tegelikult on &kdevelop;i esialgne aken suurem, aga elemendid on samad.)

#### Töötsoon ja tööriistavaate kaardid

Siinsel esialgsel kujul kasutab &kdevelop; niinimetatud IDEAl kasutajaliidese režiimi. Maksimaalse suurusega töötsooni ümbritsevad vasakul, all ja paremal nuppude read, mis toimivad samamoodi nagu kaardid kaartidega vaate korral. Mõnel neist kaartidest klõpsates avatakse niinimetatud tööriistavaate aken, kus saad tegutseda mõne konkreetse ülesande kallal.

#### Menüü ja tööriistaribad

Ülal asub, nagu ikka, menüüriba, selle all mitu rida tööriistaribasid, millest osa on algul tühjad. Need täidetakse siis, kui avad projekti ja asud selle kallal tööle.

#### Olekuriba

Päris akna allservas on olekuriba, mis näitab mitmesuguste ülesannete kohta lühiinfot.

### Abi

Lisaks menüüst Abi avatavatele võimalustele, mis pakuvad vastuseid konkreetsematele küsimustele, näeb teatud lühiinfot olekuribal ja kaht tüüpi kohtspikritena.

#### Mida see menüükirje teeb?

Kui viid hiirekursori mõne menüükirje peale, näed enamasti olekuribal teatud lühiinfot. Tavaliselt see lihtsalt kordab kirje nime, kuid mõnikord annab ka mõnevõrra rohkem infot käsu kohta.

#### Mis on selle elemendi nimi?

Paljude elementide korral ilmub lühiinfoga kohtspikker, kui jätad hiirekursori hetkeks selle kohale seisma. See on kasuks kiiremaks orienteerumiseks tööriistaribadel ja tööriistavaadete kaartidel IDEAl-režiimis, kui &IDE; on seadistatud näitama nuppudel ainult ikoone.

#### Mida see element teeb?

Paljude &IDE; elementide kohta on ka saadaval veidi laiendatumad kohtspikrid. Vali menüükäsk Abi Mis see on? või vajuta kiirklahvi &Shift;F1, mille järel hiirekursor võtab küsimärgi kuju. Sellega mõnele elemendile klõpsates näedki pikemat kohtspikrit. Samuti võid avada mõne menüü ja klõpsata menüükirjele (nii aktiivsele kui ka mitteaktiivsele, mis on hallikas), et sellist infot näha.

### Mis peitub menüüdes?

Menüüribal paikneb kümme menüüd. Enamik neist täitub märkimisväärsel määral alles pärast seda, kui oled avanud projekti, millega soovid töötada, mõni aga vajab täitumiseks vähemalt ühe dokumendi lahtiolekut. Lühidalt võimaldavad menüüd ette võtta allpool loetletud asju.

Siin on toodud ainult ülevaade. Täpsemalt tutvustab menüüsid ja nende sisu osa Käskude seletused.

Fail

  #### Tavalised toimingud

  Need on päris tavalised: failide loomine, avamine, salvestamine, trükkimine ja sulgemine ning mõistagi ka &kdevelop;ist väljumine.

  #### Taasta kõik

  See võimaldab tühistada kõik hiljutised, aga veel salvestamata muudatused, laadides faili kettalt uuesti. See käsk toimib mitte ainult projektifailide, vaid igasuguste failide redigeerimise puhul.

Redigeerimine

  See menüü saab kasutada siis, kui dokument on avatud.

  #### Tavalised toimingud

  Siit leiab tavalised tagasivõtmise ja uuestitegemise ning lõikamise, kopeerimise ja asetamise toimingud. Samuti saab siin mitmel moel tekstiplokke valida.

  #### Otsimine ja asendamine

  Menüüst leiab kaks väga võimsat otsingutööriista: Redigeerimine Otsi failidest... ja Redigeerimine Otsi-vali-asenda...Lisaks tavalistele otsimis- ja asendustoimingutele parajasti aktiivses dokumendis võimaldavad need sooritada ka globaalset otsimist ja asendamist. Nii saab kõik oma projekti failid korraga ette võtta.

  #### Täiustatud tekstiredigeerimine

  Lisaks on mitmeid võimalusi aktiivne dokument ümber vormindada ja lasta automaatselt lõpetada osaliselt kirja pandud tekst.

Vaade

  Nagu menüüd Redigeerimine, saab sedagi menüüd õieti ainult siis tarvitada, kui on avatud projekt. Sellisel juhul on seal muu hulgas järgmised toimingud:

  #### Liikumise ajalugu

  Võimaldab liikuda edasi ja tagasi kasutatud dokumentides &etc;

  #### Vigade jälgimine

  Võimaldab liikuda lähtekoodi reale, kus esines viimase kompileerimise/ehitamise käigus vigu.

  #### Redaktoriga seotud toimingud

  Mõned kirjed menüüs Vaade lubavad määrata kasutatava redaktori omadusi. Kui selleks on &kate; komponent (põimitud võimas tekstiredaktor), siis saab kasutada järgmisi võimalusi:

  - Reamurdmise kontroll dokumendiaknas.

  - Mitme dokumendiakna serval paikneva elemendi näitamine või peitmine: reanumbrid, ikoonid, samuti järjehoidjamärgid kerimisribal.

  - Lähtekoodi kokkuvolditud (ajutiselt peidetud) sektsioonide näitamise kontroll.

Projekt

  Kogu tegevus &kdevelop;is on koondunud projektide ümber, mis koondavad endasse lähtekoodifaile, ehitamise haldamisega seotud faile ja muud informatsiooni. Selles menüüs saab määrata, millist projekti kasutada, millised on selle omaduse ja veel üht-teist. Märkimist väärivad järgmised võimalused:

  #### Ava projekt

  Võimaldab luua uusi projekte, avada olemasolevaid ja importida projekte teistest keskkondadest.

  #### Projekti valikud

  Võimalus määrata terve hulk projektide omadusi.

  #### Klasside haldamine

  Võimalus lisada projekti uusi klasse ja uurida klasside päriluspuud.

  #### Projekti levitamine

  Võimalus ehitada projekti levitamispaketid (distributsioon).

Ehitamine

  Selle menüü sisuks on projekti kompileerimine ja dokumenteerimine. Sellel on ennekõike mõtet avatud projekti korral. Sellisel juhul on siin järgmised võimalused:

  #### Kompileerimine, linkimine, käivitamine

  Võimalus kompileerida ja linkida terve projekt või selle osad ning käivitada rakendus &IDE; seest.

  #### Ehitamise ettevalmistamise toimingud

  See sõltub oluliselt ehitamissüsteemist, mida sa projektis kasutad. Automake'i projektide korral saab tööle panna `Makefile.cvs` ja `configure`. Samuti saab tõlgitud failid projektist eemaldada.

  #### Rakenduse paigaldamine

  Võimaldab paigaldada rakenduse nii kohalikesse kataloogidesse kui ka süsteemsetesse kataloogidesse, mida saab kasutada ainult administraator (root).

  #### API dokumentatsioon

  Võimaldab ehitada või eemaldada projekti Doxygeni-põhise API dokumentatsiooni vastavalt projekti valikutele.

Silumine

  Kuigi see menüü täidetakse kirjetega kohe, kui projekt on aktiivne, on sellest mõistagi ennekõike kasu siis, kui projekt on juba kompileeritud koos silumisinfoga (selle saab kindlaks määrata menüükäsuga Projekt Projekti valikud...). Sellisel juhul on seal järgmised võimalused:

  #### Tavalised siluri toimingud

  Menüü Silumine esimesed kirjed avavad &GNU; siluri GDB graafilise kasutajaliidese. See lubab käivitada ja peatada oma rakenduse siluris ning seda mitmel moel läbida.

  #### Katkestuspunktid

  &kdevelop; pakub mitmeid võimalusi määrata oma rakenduse lähtekoodi katkestuspunkte. Üks võimalus on kasutada menüükäsku Muuda katkestuspunkti.

  #### Põhjalikum silumine

  Muud menüü Silumine kirjed võimaldavad veelgi üksikasjalikumat programmi analüüsi. Nende kohta info nägemiseks kasuta kiirklahvi &Shift;F1.

Skriptid

  Selle menüü abil saab välja kutsuda mitmesuguseid skripte, mis lihtsustavad tülikamaid toiminguid parajasti valitud rekdatoriaknas oleva tekstiga. Võimalikud toimingud sõltuvad mõistagi valitud skriptist.

Aken

  Selle sisu on üsna tavapärane. Sa saad valida mis tahes avatud dokumendiakna või neid sulgeda. Samuti võid valida mitme dokumendiakna sulgemise korraga.

  Sõltuvalt redaktoripluginast võib menüüelemente rohkemgi olla. Näiteks vaikimisi kasutatav Kate redaktori plugin võimaldab lisaks redaktoriakna poolitada nii rõhtsalt kui ka püstiselt.

Tööriistad

  &kdevelop; on igati kohandatav. Sa võid valida oma dokumentidele meelepärase redaktori, lisaks saab kasutada väliseid ja pluginatest tööriistu, mis laiendavad tublisti &IDE; võimalusi. Enamik neist tööriistadest ongi kasutatavad menüü Tööriistad vahendusel.

  #### Põhjalikum redigeerimine

  Menüü Tööriistad ülemine osa on pärit kasutatavast redaktoripluginast. Lemmikredaktori saad valida menüükäsuga Seadistused KDevelopi seadistamine... Redaktor. Kui oled avanud redigeeritava dokumendi, võimaldab menüü Tööriistad ülemine osa kasutada mitmeid täiustatud redigeerimise käske.

  #### Veebisaidi haldamine

  Kui aktiivne dokumendiaken sisaldab HTML-lehekülge (&eg; sellist, mida näitab sektsioon Dokumentatsioon), on menüüs Tööriistad teatud kirjed, mis lubavad hallata veebilehekülgi.

  #### Muud tööriistad

  Tavaliselt on menüüs veel terve rida tööriistu vastavalt sellele, mida parajasti teed. Nende kohta info nägemiseks kasuta kiirklahvi &Shift;F1.

Seadistused

  See menüü lubab näidata või peita menüüriba, tööriistaribad ja olekuriba. Samuti saad seadistada kiirklahve, tööriistaribasid, märguandeid, redaktorit ja &kdevelop;i üldist käitumist.

Abi

  Siin saab avada KDevelopi käsiraamatu, lugeda Qt dokumentatsiooni, avada manuaalilehekülgi (tavapärane UNIX-i man-lehekülgede vormindus) ja infolehekülgi (GNU manuaalide vormindus), anda teada vigadest ning näha infot KDevelopi versiooni ja autorite kohta.

### Milleks on mõeldud tööriistavaated?

IDEAli kasutajaliidese režiimi korral ümbritseb töötsooni kolm nuppudeala ehk tööriistavaadete kaardid. Need võimaldavad kasutada tööriistavaadete aknaid, mille abil sooritataksegi peamised tarkvaraarenduse ülesanded. Kõigil kolmel tööriistavaate alal on oma ülesanne.

- #### Vasak pool

  Need vaated pakuvad liikumis- ja valikutööriistu

- #### All

  Need vaated näitavad erinevate tööriistade teateid.

- #### Parem pool

  Need vaated pakuvad dokumentatsiooni ja lähtekoodi haldamise tööriistu.

Näidatavate tööriistavaadete kaartide arv muutub niipea, kui avatakse projekt. Seejärel saab kasutada arvukaid tööriistu, mis võimaldavad projektiga töötada. Tööriistavaadete tegelik arv sõltub pluginatööriistadest, mida &kdevelop; parajasti kasutada saab. Sellest räägib pikemalt KDevelopi seadistamisest kõnelev peatükk.

Hetkel, kui avatud ei ole ühtegi projekti ning laaditud on vaid vaikimisi pluginatööriistad, võib näha järgmisi tööriistavaateid. Kaardil klõpsates avatakse tööriist oma tööriistavaate aknas.

Liikumine ja valik

  #### Failivalija

  Pakub paneeli, mis lubab kataloogipuus liikuda ja valida tööks vajalikud failid samamoodi nagu &konqueror;is. Failil klõpsates avatakse see vajaliku redaktoriga töötsoonis. Failivalijas hiire parema nupuga klõpsates avatakse liikumise ja failikäsitlemise võimalusi pakkuv kontekstimenüü.

  #### Failinimekiri

  Loetleb avatud failid. Klõps failil avab üldjuhul selle töötsoonis redaktoriaknas. Seda saab kasutada kiireks liikumiseks, kui avatud on palju faile. Lisaks võimaldab see vaade korraldada avatud failid erinevateks seanssideks. See on eriti kasulik väga suurte ja keeruliste projektide puhul, lubades arendajal keskenduda erinevatele ülesannetele. Hiire parema nupuga klõpsates avaneb failikäsitlemise võimalusi pakkuv kontekstimenüü.

Teadete näitamine

  #### Rakendus

  Näitab &kdevelop;is käivitatud rakenduse väljundit.

  #### Erinevused

  Kasutatakse paigafaili sisu esitamisel. Näitab erinevuste näitaja väljundit, mis on käivitatud menüükäsuga Tööriistad Erinevuste näitaja...

  #### Teated

  Näitab &kdevelop;is (tavaliselt menüüst Ehitamine) käivitatud ehitamistööriistade teateid.

  #### Failides otsimine

  Näitab tulemusi, mis leiti otsinguoperatsiooniga, mis käivitati menüükäsuga Redigeerimine Otsi failidest... Klõpsuga reale avatakse redaktoriaknas otsekohe vajalik fail vajaliku asukohaga.

  #### Asendamine

  Näitab tulemusi, mis leiti otsingu-asendamisoperatsiooniga, mis käivitati menüükäsuga Redigeerimine Otsi-vali-asenda... Siin saab iga leitud tulemuse puhul otsustada, kas see asendada või mitte.

  Otsingu-asendamisvõimalus avaneb alles pärast seda, kui projekt on &kdevelop;is avatud. Vastasel juhul ei saa menüükäsku Redigeerimine Otsi-vali-asenda kasutada.

  #### Konsool

  Avab &kde; Konsooli ehk terminaliemulaatori, kus saab kasutada klaviatuurikäske nagu tavapärases &UNIX; käsurealiideses.

Dokumentatsiooni ja lähtekoodi käsitlemine

  #### Dokumentatsioon

  &kdevelop; võimaldab selle tööriista abil kasutada väga mitmesugust dokumentatsiooni. Siin näeb enamasti kuskil võrgus paiknevaid dokumendifaile struktureeritult. Samuti pääseb mitmel moel ligi väärtuslikule teabele &kde; või &Qt; käsiraamatutes.

  Täpsemalt räägivad sellest peatükid Dokumentatsioon ja Dokumentatsiooni seadistamine.

  #### Koodijupid

  See tööriist võimaldab valitud teksti salvestada hilisemaks kasutamiseks. See on väga paindlik tööriist, sest koodijupid võivad sisaldada ka terve rea muutujaid, mis saavad tegeliku väärtuse siis, kui lisad koodijupu kuhugi teksti.

  Täpsemalt räägivad sellest peatükid Koodijupid ja Koodijuppide tööriista seadistamine.

## Veidi seadistamisest

Enne seda, kui oma näidisporjektiga alustada, tuleks &kdevelop; oma vajadustele kohandada. Ehkki enamik vaikeseadistusi on igati mõistlikud, on siiski mõned asjad, mida võib olla mõistlik üle vaadata ja oma käe järgi seada.

&kdevelop;i seadistamisest kõneleb pikemalt peatükk KDevelopi seadistamine.

### Mõned üldised seadistused

&kdevelop;i seadistamiseks klõpsa menüül Seadistused ja vali KDevelopi seadistamine.... Ilmub dialoog KDevelopi seadistused, mis näitab paremal pool kaarti Üldine.

&kdevelop;i üldiste seadistuste dialoog

Enamik vaikeväärtusi on arvatavasti mõistlikud, kuid võib juhtuda, et soovid kaht asja siiski muuta.

#### Projektide vaikimisi kataloog

&kdevelop;i esmakäivitusel on selleks arvatavasti sinu kodukataloog. Enamik inimesi eelistab siiski tarkvaraarenduseks kasutada mõnda konkreetsemat projektikataloogi. Kirjuta tekstikasti kataloogi nimi, mida soovid kasutada. Selle võib ka valida kataloogipuust, kui klõpsad kastist parem pool asuvale ikoonile Ava failidialoog.

Me eeldame oma näites, et tegemist on kasutajaga `devel`. Sestap asenda ise katsetades devel enda kasutajanimega. Meie kasutaja devel pruugib arendustegevuseks kataloogi `/home/devel/projektid`. Ka siin tuleb ise katsetades asendada `projektid` oma tegeliku arendusprojektide kataloogi nimega.

&kdevelop; loob vaikimisi selles kataloogis igale projektile oma alamkataloogi. See tähendab, et &eg; projekt Hello asub kataloogis `/home/devel/projektid/hello`.

Mainitud kataloogiseadistust võib mõistagi vajaduse korral ka ajutiselt tühistada. Sellest räägib lähemalt peatükk Rakenduse nõustaja.

#### Kompilaatori väljund

Kui &kdevelop; lähtekoodi kompileerib, näitab ta ka make'i' ja teiste ehitamistööriistade teateid töötsooni allosas asuvas aknas Teated. Tavaliselt on need väga teaberohked. Parema ülevaate saamiseks toimuvast võib &kdevelop; neid teateid kärpida.

Sõltuvalt &kdevelop;i versioonist on kompilaatori väljund arvatavasti vaikimisi pikk, mis tähendab, et näidatakse täeilikult kõigi teadete sisu. Selle asemel võib valida märksa mugavama variandi väga lühike. Vali see lihtsalt rippmenüüst.

Pane siiski tähele, et sel juhul näidatakse teadete aknas ainult kõige põhilisemat teavet. Vigade korral &eg; ehitamise ajal soovid arvatavasti näha märksa rohkem või isegi päris kõiki teateid. Need ei lähe siiski kaotsi. Klõpsa lihtsalt hiire parema nupuga aknas Teated ja vali kontekstimenüüst &eg; Täielik kompilaatori väljund.

### Dokumentatsiooniotsingu indeksite initsialiseerimine

On veel üks, vahest mitte nii silmatorkav asi, mida võiks enne tegeliku arendustegevuse alustamist ette võtta. Arvatavasti läheb arenduse käigus sageli vaja dokumendiotsingut. &kdevelop; vajab enne seda mõningate otsinguindeksite loomist. Teeme siis seda, enne kui alustame esimesi samme &kdevelop;i tegelikul kasutamisel.

Ava &kdevelop;i peaakna paremas servas tööriistavaade Dokumentatsioon. Seejärel ava seal dialoog Otsing.

Otsinguindeksite genereerimine.

Nüüd klõpsa nupule Värskenda seadistust, mis tagab, et põhilised otsingutööriistad on korrektselt häälestatud. Ilmub dialoog teatega Konfiguratsioonifail värskendatud. Klõpsa OK ja dialoog kaob.

Seejärel on &kdevelop; valmis parsima teadaolevat dokumentatsiooni ja looma selle põhjal otsinguindeksid. Klõpsa paremal pool asuvale nupule Värskenda indeksit. Nüüd ilmub dialoog Otsinguindeksi genereerimine, mis näitab indeksi loomise toimingute edenemist.

&kdevelop; genereerib dokumentatsiooniotsingu indeksid.

See võtab sõltuvalt dokumentatsiooni mahust ja sinu masina kiirusest omajagu aega. Kuid lõpuks asendub nupp Loobu nupuga OK. Klõpsa sellele.

- Üldjuhul peaks asi toimima kiiresti ja edukalt. Mõnel juhul ei pruugi programm htdig, mida &kdevelop; tarvitab täistekstiotsingu sooritamiseks, olla korrektselt seadistatud. Sel juhul otsi täpsemat abi peatükist Tekstiotsingu indeksite seadistamine.

- &kde; ja &Qt; spetsiifilises API dokumentatsioonis otsimiseks on vaja, et &kdevelop;i paigaldamise ajal oleks olemas KDELibs Apidocs. Kui sul tekib probleeme indeksite ehitamisega või identifikaatorite otsinguga, millest tuleb juttu veidi hiljem, kontrolli, kas dokumentatsioon on ikka olemas ja &kdevelop; pääseb sellele ligi. Täpsemalt räägib sellest osa KDevelopi paigaldamine.

## Uue projekti alustamine

Peaaegu kõik rakendused koosnevad kümnetest, sadadest või isegi tuhandetest failidest, mis peavad olema kindlalt struktureeritud ja hästi hallatavad. Selleks on tarkvaraarendus &kdevelop;is korraldatud projektidena. Seepärast on esimene samm tarkvara arendamisel &kdevelop;iga tavaliselt uue projekti loomine.

Õnneks on see väga lihtne. &kdevelop; pakub selleks spetsiaalse tööriista Rakenduse nõustaja (täpsemalt räägib sellest peatükk Alustamine — Rakenduse nõustaja).

Me alustame praegu lihtsa &kde; rakenduse projektiga, et demonstreerida, kui lihtne see on ning milliseid faile ja tööriistu &kdevelop; selleks pakub. Seepärast vaatleme lühidalt järgmisi asju:

- Kuidas luua uus projekt rakenduse nõustaja abil?
- Millised failid rakenduse nõustaja algselt loob?
- Millised täiendavad tööriistavaated avatakse projekti puhul?

### Uue projekti loomine

Loome päris lihtsa &kde; Hello World projekti. Selleks järgi alltoodud samme.

1. Ava rakenduse nõustaja menüükäsuga Projekt Uus projekt...

2. Ilmub dialoog Uue projekti loomine. Selle olemises osas asuvas aknas Kõik projektid on ära toodud mitu programmeerimiskeelt.

   1. Me soovime luua tavapärase &kde; C++ rakenduse, sestap klõpsa kirjest C++ vasakul asuvale ikoonile +, et kirje avada.

   2. Nüüd näeb mitut võimaliku rakendusetüüpi. Me soovime ehitada &kde; rakenduse, sestap klõpsa kirje KDE ees asuvale ikoonile +.

   3. Siin näeb tervet rida projektimalle. Liigu nende seas allapoole ja klõpsa kirjel Lihtne KDE rakendus.

      Kahes parempoolses aknas näeb sellele projektimallile tugineva rakenduse eelvaatlust ja lühikirjeldust.

      Hello World projektimalli valimine

   4. Rakendus vajab ka nime. Kirjuta all paiknevas sektsioonis Omadused kasti Rakenduse nimi meelepärane nimi.

      Me kasutame oma näites nime Hello, aga mõistagi võid anda sellele mis tahes nime tingimusel, et kasutad ainult tähti, numbreid ja alakriipse. Kui kirjutad midagi muud, näed, et nõustaja ei luba sul edasi liikuda.

   5. Kontrolli, kas tekstikastis Asukoht seisab ikka sinu projektikataloogi nimi, nagu see on määratud vastavalt eeltoodud peatüki Veidi seadistamisest juhistele. Kui see pole nii, kirjuta korrektse kataloogi nimi või vali see kataloogide loendist, mille saab avada paremal asuvale kataloogiikoonile klõpsates.

      Kui kõik on korras, näitab tekstikast Lõplik asukoht kataloogi, kuhu uus projekt paigutatakse. Kui selle taga seisab (vigane), proovi anda projektile mõni nmuu nimi ja/või kontrolli, kas kataloog, mis on antud tekstikastis Asukoht, on ikka olemas ja sul on selles kirjutamisõigus.

   6. Kui kõik on õige, saab dialoogi allservas kasutada nuppu Järgmine. Klõpsa sellele.

3. Nüüd avaneb dialoog Projekti seadistused. Kontrolli, kas tekstikastid Autor ja E-post sisaldavad korrektseid andmeid. Tavaliselt kasutatakse neis sinu &kde; kasutajaseadistuste vaikeväärtusi, nagu need on kirjas &kde; juhtimiskeskuse dialoogis Parool ja kasutajanimi. Kui see nii pole, muuda neid, et need vastaksid sinu soovidele.

   Nime ja soovi korral e-posti aadressi määramine.

   Anda tuleb vähemalt autori nimi. See on rakenduse failide loomiseks kohustuslik.

   Kui kõik on korras, saab kasutada nuppu Järgmine. Klõpsa sellele.

4. Järgnevad dialoogid Versioonikontrollisüsteem, .h-failide mall ja .cpp-failide mall ei paku meile antud hetkel huvi. Klõpsa neis lihtsalt nupule Järgmine ning lõpuks nupule Lõpeta.

Ongi kõik! Rakenduse nõustaja asub nüüd tegevusse ja loob lõplikus asukohas, mille määrasid nõustaja teisel sammul, rea esialgseid faile.

Kui failid loodud, avab &kdevelop; redaktoriakna rakenduse peaakna teostusfailiga (selleks on meie näites `hello.cpp`), et võiksid kohe tegutsema asuda.

### Algsed projektifailid

Ehkki meie näidisporjekt Hello on päris lihtne, lõi rakenduse nõustaja selle jaoks terve rea lähtekoodi- ja projektihaldusfaile. Neist saab ülevaate, kui avada vasakul all tööriistavaade Failipuu. Seal on ära toodud pildil näidatud failinimekiri.

Projekti Hello World esialgsed failid

Näitamaks peamisi nõustaja tekitatud faile, avasime tööriistavaates Failipuu enamiku katalooge. Klõpsa kirjetel ise, et asja lähemalt uurida.

Lisaks sellele avasime ka enamiku kirjeid paremal paiknevas tööriistavaates Automake'i haldur, kus samuti on ära toodud mõned projekti lähtekoodifailid.

#### Autoriõiguse küsimused

Kõik &GNU; nõuetele vastavad rakendused peavad sisaldama autoriõiguse teavet. Seda läheb vaja kahel tasandil: konkreetsed lähtekoodifailid ning rakenduse käitusaeg. Nõustaja lisas juba projekti vajaliku autoriõiguse ja litsentsiteabe.

##### Lähtekoodifailide autoriõigus

Mäletad veel uue projekti loomisel esinenud dialoogi Projekti seadistused? Seal tuli anda oma (s.t. arendaja) nimi ja soovi korral ka e-posti aadress. Nüüd vaata parajasti töötsoonis redaktoriaknas avatud faili hello.cpp ülaossa. Rakenduse nõustaja lisas need iga loodud lähtekoodifaili litsentsipäise algusse.

    /***************************************************************************
     *   Copyright (C) 2006 by Joe User   *
     *   joe@user.com   *
     *                                                                         *
     *   This program is free software; you can redistribute it and/or modify  *

Täpselt sama teksti leiab kõigist lähtekoodifailidest, mis luuakse &kdevelop;is (seda muidugi tingimusel, et kasutad failide loomiseks ikka KDevelopi enda tööriistu). &kdevelop; jätab need seadistused meelde teatud mallifailides, mille leiad kataloogis `templates`.

##### Rakenduse käitusaegsed autoriõigused

Kui sinu &kde; rakendus töötab, võib kasutajal tekkida huvi uurida selle infot, mille saab tavaliselt avada menüüst Abi. Rakenduse nõustaja kannab ka selle eest hoolt. Kui vaatad faili `main.cpp`, näed seal midagi sellist.

    int main(int argc, char **argv)
    {
        KAboutData about("hello", I18N_NOOP("Hello"), version, description,
                         KAboutData::License_GPL, "(C) 2006 Joe User", 0, 0,
                         "joe@user.com");
        about.addAuthor( "Joe User", 0, "joe@user.com" );

See seab arendaja nime (meie näites Jose User) ja e-posti aadressi autoriõigusi näitavasse infodialoogi ning näitab nime ja aadressi ka sama dialoogi autorite kaardil.

Kui teed olemasolevasse projekti vähegi olulisemaid muudatusi, lisa kindlasti oma nimi ja e-posti aadress autoriõiguste osasse kõigis failides, mida muutsid, samuti käitusaja autoriõiguste osasse. Siin pole vaja midagi häbeneda: oma andmeid andes aitad sa tegelikult kaasa avatud tarkvara kogukonna arengule.

#### Algsed lähtekoodifailid

Rakenduse nõustaja paigutab lähtekoodifailid projektikataloogi alamkataloogi `src`. Oodatult leiab sealt failid `main.cpp`, `hello.h` ja `hello.cpp`.

Lisaks on seal veel mõned failid, mis tavaliselt käivad kaasas iga &kde; rakendusega, nimelt

- `hello.desktop` sisaldab mõningaid metaandmeid, mida &kdevelop; kasutab rakenduse hooldamiseks ja käivitamiseks.

- `hi16-app-hello.png` ja `hi32-app-hello.png` sisaldavad esialgseid vaikeikoone, mida &kdevelop; kasutab rakenduse kuvamisel.

- Fail `helloui.rc` sisaldab rakenduse kasutajaliidese kirjeldust, hetkel ennekõike menüüsid, mida rakendus pakub.

#### Algne rakenduse dokumentatsioon

Projekti alamkataloogis `doc/en` sisaldab faili `index.docbook`. See on vaikimis mall, mille põhjal saab hakata kirjutama tegelikku kasutaja dokumentatsiooni.

#### Projekti- ja lisafailid

Vahest märkasid, et seni tutvustatud failid on tööriistavaates Failipuu ära toodud rasvasena, paljud failid on seal aga tavalises kirjas. See tähistab seda, et viimati mainitud failid on mõeldud hoopis muudeks ülesanneteks. Rasvasena toodud failid mõjutavad otseselt rakendust. Lähtekoodifailid pakuvad koodi, mis paneb rakenduse tööle, teised failid pakuvad vajalikke andmeid või dokumentatsiooni. Neid peab haldama ja ehitamisjärgus korrektselt töötlema projekt ise, mistõttu neid nimetataksegi projektfailideks.

Kui vaadata, töötsooni parempooles alumises osas paiknevat Automake'i haldurit, võib projektifaile näha ka seal. Automake'i haldur kasutab neid ära ehitamise juhtimisel, nagu me peagi näeme.

Ülejäänud, tavalises kirjas failid on täiendavad failid. Need jagunevad mitmesse klassi:

- ##### Projekti ehitamise juhtimine

  Need failid juhivad kompileerimist, paigaldamist, dokumentatsiooni loomist ja muid protsesse. Kui projekt kasutab &GNU; autotools'i vahendeid, nagu meie näide, siis leiab igas projektikataloogis faili `Makefile.am`. Need on ehitamiseks kasutatava programmi make tuumikfailid, mis juhivad ehitamist ja mida töödeldakse ehitamise käigus mitmesuguste `configure`-failidega. Sellise ehitamise käigus luuakse igasse kataloogi lõplik `Makefile`. Omakorda nende põhjal loob programm make rakenduse binaarfailid.

  `Makefile.am`-faile tuleb hallata kogu arendustegevuse käigus. &kdevelop;pi kasutades jääb see küll peamiselt Automake'i halduri hooleks, mis põhimõtteliselt ongi `Makefile.am`-failide sisu haldamise graafiline kasutajaliides.

  Projekti juurkataloogis paiknevad veel projekti juhtfailid `configure.in.in` ja `subdirs`. Neid töötlevad mõningad failid kataloogis `admin`, &kde; spetsiifilises halduskataloogis, et luua täiendavaid faile `configure` ja `Makefile` ning lõpuks rakenduse binaarfailid.

- ##### &kdevelop;i juhtfailid

  &kdevelop; vajab ka mõningaid omaenda juht- ja haldusfaile. Need asuvad samuti projekti juurkataloogis - meie näite korral `hello.kdevelop`, `hello.kdevelop.pcs` ja `hello.kdevses`.

  Eriti oluline on kõigis projektides fail `xxx.kdevelop` (kus xxx on projekti nimi). See on peamine KDevelop 3 projektifail ning seda on igal juhul vaja, kui soovid oma projekti hiljem &IDE;-s laadida.

  Ära kunagi muuda, nimeta ümber ega kustuta ühtegi &kdevelop;i juhtfaili! Peaaegu kindlasti ei toimi &IDE; pärast seda sinu projektiga enam korrektselt.

- ##### GNU projekti kirjeldusfailid

  Mõned projekti juurkataloogis asuvad failid on kohustuslikud kõigile &GNU; nõuetele vastavatele rakendustele. Need on järgmised: `AUTHORS`, `ChangeLog`, `INSTALL`, `COPYING` (see sisaldab GNU Üldist Avalikku Litsentsi ehk GPL-i), `INSTALL`, `NEWS`, `README` ja `TODO`.

- ##### Muud failid

  Veel mõned seni mainimata failid on järgmised:

  - `Doxyfile` juhib projekti spetsiifilise sisemise &API; programmeerimisdokumentatsiooni loomist.

  - Kataloog `templates` sisaldab failimalle, mida &IDE; kasutab uute lähtekoodifailide loomisel. Malle võib omatahtsi redigeerida. Uus sisu võetakse arvesse, kui soovid luua sama tüüpi uut lähtekoodifaili.

    Nii võib sul &eg; tekkida soov joondada parempoolsed tärnid, mida Rakenduse nõustaja lisab `cpp`- ja `h`-failide malli, kuidagi teisiti, et nende põhjal loodud lähtekoodifailid näeksid paremad välja.

  - Kataloogi `po` kasutatakse lokaliseerimiseks ehk rakenduse tõlkimiseks. See kuulub põhimõtteliselt projektifailide hulka (sisaldab faili `Makefile.am`), kuid kasutatakse peamiselt tõlkimiseks. Rakenduse arendajale ei ole see tavaliselt väga tähtis.

  - Kataloog `admin` on mõeldud spetsiifiliselt &kde; rakendustele. See pakub terve rea faile, mida on tarvis rakenduse lähtekoodi- ja binaarfailide haldamiseks, et need töötaksid korralikult &kde; keskkonnas.

### Täiendavad tööriistavaated

Nagu märgitud, ilmub mitu täiendavat tööriistavaadet otsekohe, kui Rakenduse nõustaja on lõpetaud uue projekti loomise. Need on kasuks ainult projekti arendamise ajal ning pakuvad järgmisi võimalusi.

Tegelikult nähtavad tööriistavaated sõltuvad parajasti &kdevelop;is laaditud pluginatest. Seda saab loomulikult muuta. Täpsemalt räägib sellest peatükk Pluginatööriistad.

#### Liikumis- ja valikutööriistad (vasakul)

- ##### Järjehoidjad

  Soovi korral võid märkida ära iga tekstifaili rea, et saaksid selle juurde vajadusel kiiresti tagasi pöörduda. &kdevelop; jätab kõik järjehoidjad meelde, isegi kui sulged hiljem redaktoriakna. Tööriistavaade Järjehoidjad toob kõik järjehoidjad ära failinime ja reanumbri järgi. Klõpsa lihtsalt kirjel ning redaktoriaknas avataksegi kohe vastav fail õigel real.

- ##### Klassid

  Loetleb projektile teadaolevad klassid, meetodid &etc; Kirjele klõpsates avatakse vastav päise- või lähtekoodifail redaktoriaknas ning kursor viiakse selles õigele deklaratsioonile või definitsioonile.

- ##### Failirühmad

  Sorteerib projektifailid teatud rühmadesse, &ie; Lähtekood, Kasutajaliides, Ikoonid, Tõlked ja Muud. Mõnel kirjel klõpsates avatakse fail redaktoriaknas.

- ##### Muutujad

  Seda kasutab silumistöörist muutujate kuvamiseks, hindamiseks ja jälgimiseks silumise ajal.

#### Teated (all)

- ##### Valgrind

  Valgrind programmi käitusaja analüsaator. See tööriistavaade näitab analüüsi tulemusi. Seda kasutatakse &eg; mälulekete tuvastamiseks.

- ##### Turvaprobleemid

  &kdevelop;is pakub pluginatööriista Turvakontroll. See analüüsib parajasti redigeeritavat lähtekoodifaili mitmesugustelevinud turvaprobleemide osas, mis võivad rakendustes ette tulla, ning annab analüüsi tulemustest teada tööriistavaate aknas.

- ##### Katkestuspunktid

  See tööriistavaade võimaldab määrata, puhastada ja hallata silumise katkestuspunkte rakenduse lähtekoodifailides. Seda kasutatakse koostöös siluriga.

- ##### CTags

  Võimaldab luua identifikaatorite indeksite andmebaasi populaarse rakenduse CTags abil. Seejärel saab loodud siltide andmebaasi kasutada samas tööriistavaate aknas mis tahes identifikaatori leidmiseks projekti lähtekoodifailides. Leitud kirjele klõpsates avatakse vastav fail redaktoriaknas ning kursor viiakse leitud identifikaatorile.

- ##### Probleemid

  &kdevelop; hoiab parajasti redigeeritavas failis silma peal levinud programmeerimisprobleemidel ning annab tööriistavaate aknas kasutajale teada.

#### Lähtekoodi haldamine (paremal)

- ##### Automake'i haldur

  Automake'i haldur on graafiline kasutajaliides kõigis projektikataloogides leiduvate failide `Makefile.am` haldamiseks. Tööriistavaates on kaks akent. Ülemine pool toob ära osa projekti alamkatalooge, nimelt need, mis otseselt sisaldavad projektifaile. Igas sellises alamkataloogis peab leiduma fail `Makefile.am` ning Automake'i haldur nimetab sellist kataloogi alamprojektiks.

  Alamprojekti nimel klõpsates näidatakse antud alamprojekti projektifaile alumises aknas. Sealsed failid on korraldatud vastavalt antud alamprojekti `Makefile.am` funktsionaalsusele.

  Automake'i haldur on väga võimas tööriist projekti ja selle alamprojektide haldamiseks, samuti määramiseks, millist rolli etendavad projektifailid rakenduse ehitamisel. Selle mõningaid üksikasju vaatleme lähemalt edaspidi. Põhjalikumalt räägib sellest peatükk Ehitamine ja projektihaldus.

## Mõned näpunäited dokumentide kasutamiseks

Meie näites avas Rakenduse nõustaja kohe redaktoriaknas faili `hello.cpp`, et sul oleks võimalus selle kallal aega viitmata tegusema asuda. Me oletame, et sa oskad redaktorit kasutada, nii et sellest pikemalt juttu ei tule. Kuid siiski tasub rääkida teatud &kdevelop;i eripäradest kaartidega redaktoriakende ja dokumentide kasutamisel. Me tutvustame siin lühidalt järgmisi küsimusi:

- Kuidas lülituda vähese vaevaga päise- ja teostusfailide vahel?
- Kuidas pääseda kiiresti ligi deklaratsioonidele ja definitsioonidele?
- Kuidas korraldada redaktoriaknaid oma soovide kohaselt?
- Kuidas hoida silma peal levinud probleemidel?

### Lülitumine päise- ja teostusfailide vahel

&kdevelop; võimaldab kiiresti ja lihtsalt lülituda mis tahes teostusfaililt (`.cpp`) vastavale päisefailile (`.h`) ja vastupidi. Selleks tee lihtsalt hiire parema nupuga klõps redaktoriaknas, kus soovid lülitumist sooritada. Ilmub järgmine kontekstimenüü.

Lülitumine päise- ja teostusfailide vahel

Vali kirje Lülita päise/teostusfail. &kdevelop; otsib vastavat päise- või teostusfaili ning avab selle uues redaktoriaknas. Meie näites sooritati klõps failis `hello.cpp` ning järelikult avatakse fail `hello.h`.

See ei ole veel kõik. Kui teed paremklõpsu klassiteostuse tekstis, viib &kdevelop; avatavas päisefailis kursori vastava deklaratsiooni reale. Sama kehtib ka vastupidi: kui klõpsad deklaratsioonireal, asetatakse kursor vastava klassi teostamise reale.

Kui lülitatava failiga redaktoriaken on juba avatud, siis &kdevelop; aktiveerib selle ja mõistagi asetab võimaluse korral kursori vajalikku kohta.

### Ligipääs deklaratsioonidele ja definitsioonidele

Oletame nüüd, et töötad parajasti lähtekoodifaili kallal ja soovid leida midagi ette juhtunud identifikaatori deklaratsiooni või definitsiooni kohta. Ka see käib väga lihtsalt. Põhimõtteliselt tuleb lihtsalt identifikaatorile hiire parema nupuga klõpsata.

Siin on siiski kaks mõnevõrra erinevat juhtumit, nimelt:

- Ligipääs väliselt defineeritud identifikaatoritele ja
- ligipääs projektisisestele tekstielementidele.

#### Väline deklaratsioonid ja definitsioonid

Enamasti tekib soov leida teavet identifikaatori kohta, mis on defineeritud väljaspool sonu projekti. &kde; projektides on sellised identifikaatorid enamasti dokumenteeritud mitmesugustes &kde; või &Qt; teekides. Kui &kde; ja &kdevelop; on korrektselt paigaldatud, suudab &kdevelop; kasutada niinimetatud API dokumentatsiooni ja otsida sealt vajalikke identifikaatoreid.

Toome näite. Otsi redaktoriaknas failis `hello.cpp` üles järgmised read.

    Hello::Hello()
        : KMainWindow( 0, "Hello" )
    {

Klõpsa hiire parema nupuga klassil `KMainWindow`. Ilmub kontekstimenüü. Vali sealt Otsi dokumentatsioonis: KMainWindow. Nüüd avaneb tööriistavaade Dokumentatsioon, kus näeb kirjetu `KMainWindow` otsingusõnana kaardil Otsing. Mõne aja pärast avaneb töötsoonis uus redaktoriaken, mis näitab KDE API dokumentatsiooni klassi `KMainWindow` kohta.

See näeb välja nii (me avasime teadlikult juba ette kaardi Dokumentatsioon-Otsing, et illustreerida menüükirje valimise tulemust).

Väliselt dokumenteeritud identifikaatori otsing

Sama hästi võib valida ka menüükirje Leia dokumentatsioonis: KMainWindow. Sel juhul avatakse tööriistavaates Dokumentatsioon kaart Otsija, mis tavaliselt pakub mitmeid otsingusõna sisaldavat lehekülge. (Meie näites on selleks tõenäoliselt klassid `KMainWindow` ja `KMainWindowInterface`. Vali see, mille vastu huvi tunned, ning vastavat dokumentatsiooni kuvatakse redaktoriaknas.

Kui nii ei lähe, ei ole arvatavasti dokumendid veel indekseeritud. Kas genereerisid ikka indeksid, nagu selgitati eespool? Kui mitte, siis loe seda uuesti, loo indeksid ja proovi taas.

#### Projekti sisemised deklaratsioonid ja definitsioonid

Välises dokumentatsioonis otsimisel on siiski omad piirangud. Loomulikult ei saa identifikaatorit kuskil väljaspool otsida, kui see on defineeritud ja kasutusel ainult projektis endas. Aga lahti pole midagi: &kdevelop; võib kasutada projekti lähtekoodis otsimiseks indekseid, mille loob rakendus CTags.

Enne kui seda meie Hello näidisprojektis kasutada, tuleb luua kasutuskõlblik indeks. Seda saab teha töötsooni allosas paiknevas tööriistavaates CTags.

Klõpsuga sakile CTags avaneb dialoog, mille alumises parempoolses nurgas näeb järgmist nuppu.

CTagsi indeksi genereerimine nupuga Genereeri uuesti

Klõpsa nupule Genereeri uuesti ja oota mõni sekund. Siis asendub kiri CTagsi andmebaasi ei leitud praeguse kuupäevaga. Nüüd võib otsida oma projekti lähtekoodifailides vajalikku identifikaatorit.

Kuupäev nupu Genereeri uuesti kõrval on mõeldud näitama indeksi vanust. Kui sa ei leia oma projektis mõnda identifikaatorit, mis sinu arvates peaks seal leiduma, tasuks indeks uuesti genereerida. Suurte projektide puhul võtab see omajagu aega, mille vältimiseks oleks mõttekas indeks regulaarselt regenereerida pärast vähegi ulatuslikumaid muudatusi lähtekoodifailides.

Identifikaatorit saab oma projektis otsida mitmel moel.

- ##### CTagsi tööriistavaate kasutamine

  See on väga lihtne. Hakka huvipakkuva identifikaatori nime kirjutama vasakul asuvasse tekstikasti Otsing. &kdevelop; püüab kirjutatud tähtede järgi sõna lõpetada ja näitab kõiki nende tähtedega algavaid identifikaatoreid.

  Kui näiteks tahad teada, kus on meie näidisprojektis kasutatud identifikaatorit Hello, kirjuta kasti Otsing "H". &kdevelop; asub kohe tegevusse ja näitab sellist tulemust:

  Identifikaatori otsimine tööriistavaates CTags.

  Klõpsuga mõnele kirjele avab &kdevelop; faili redaktoriaknas ja viib kursori vajalikku kohta.

- ##### Lähtekoodifaili kontekstimenüü kasutamine

  See on abiks, kui töötad kindla lähtekoodifailiga. Oletame, et uurid meie Hello näidisprojekti faili `main.cpp`. Selles leidub järgmine rida

      Hello *mainWin = 0;

  ja sul tekib küsimus, kus esineb Hello programmis veel. Selleks tee lihtsalt identifikaatoril Hello klõps hiire parema nupuga. Ilmub kontekstimenüü, mille allosas leiduvad järgmised kirjed.

  CTagsi teabe hankimine projekti sisemise identifikaatori kohta.

  Klõpsa huvipakkuvale kirjele, näiteks CTags - Mine definitsioonile: hello, ja &kdevelop; avab otsekohe redaktoriaknas faili `hello.cpp` ning seab kursori otse selle klassi definitsiooni ette:

      Hello::Hello()
          : KMainWindow( 0, "Hello" )
      {

- ##### Globaalne otsing

  See on abiks juhul, kui soovid otsida oma projektis mis tahes teksti. &kdevelop;is saab globaalset otsingut alustada kahel viisil.

  - Käivita globaalne otsing menüükäsuga Redigeerimine Otsi failidest... või

  - Kasuta redaktoriaknas hiire parema nupuga klõpsates avanevat kontekstimenüüd.

  Me vaatleme oma Hello näidisprojektis teist võimalust. Tulemus on mõlemal juhul põhimõtteliselt ühesugune. Oletame, et uurid faili `hello.cpp` ja kursor asub parajasti Hello esimese esinemise asukohas. Tunned huvi, kus sõna Hello veel kasutatakse ja kui palju on seda üldse kasutatud. See on tüüpiline &kdevelop;i globaalse otsingu kasutamise juhtum.

  Kui kursor asub kuskil sõnas Hello, klõpsa hiire parema nupuga. Ilmub kontekstimenüü, kust tuleb valida Grep: Hello.

  Globaalse otsingu käivitamine redaktoriaknas

  Avaneb dialoog Failides otsimine (täpselt sama dialoog avanem menüükäsuga Redigeerimine Otsi failidest...).

  Projekti globaalse otsingu tõhus graafiline kasutajaliides.

  Nagu näed, on tegemist programmide find ja grep väga tõhusa graafilise liidesega, mis võimaldab otsida kogu projektis. Siinkohal ei ole mõtet laskuda üksikasjadesse, neid võid ise lähemalt tundma õppida. Antud hetkel on väljal Muster otsingusõna Hello. Kui see pole nii, kirjuta see sinna ja klõpsa all paremal nupule Otsi.

  Nüüd avaneb all tööriistavaade Failides otsimine, mis näitab kõiki faile ja ridu, kus meie näidisprojektis esineb Hello. Nagu ikka, avab &kdevelop; mõnele kirjele klõpsamise järel töötsoonis vastava faili ja viib kursori sõna esinemise kohta.

  Tööriistavaate aknas on kaks erilist huvi pakkuvat rida.

  - Päris alguses näeb käsku, mida &kdevelop; otsingul kasutas. See võimaldab täpsemalt kontrollida otsingutulemust.

  - Lõpus on kirjas, mitu sobivust otsinguga leiti. Meie näites peaks seal olema *** Leiti 11 sobivust ***.

  &kdevelop; jätab otsingutulemused seansi tööajaks meelde. Kui sooritad uue globaalse otsingu, avatakse selle tulemused tööriistavaate Failides otsimine aknas uuel kaardil.

### Redaktoriakende korraldamine

Suurte ja keeruliste projektidega töötades juhtub sageli, et töötsoonis on avatud päris palju redaktoriakendega kaarte. Seepärast läheb vaja võimalusi, mis aitaksid kaartidel pilku peal hoida, neid korrastada ja rühmitada. &kdevelop; pakub sellks mitu võimalust. Vaatleme lühidalt mõningaid neist.

- Kuidas eemaldada tarbetud kaardid?
- Kuidas kaardid ümber korraldada?
- Kuidas näha töötsoonis korraga mitut faili?
- Kuidas redigeerida korraga C++ lähtekoodi- ja päisefaili?
- Kuidas rühmitada lähtekoodifailide arendusseansidesse?

#### Kaardirea puhastamine

Kui avatud on juba terve rida redaktoriaknaid, tekib pikapeale vajadus sulgeda kaardid, mida enam vaja ei lähe. &kdevelop; võimaldab seda teha mitmel moel: kõige lihtsam on tavaline avatud akende sulgemine, kuid selle kõrval on ka võimalusi anda käsud teatud kaardid sulgeda, teatud aga lahti jätta.

##### Mitme kaardi sulgemine korraga

See on omamoodi hulgilähenemine tarbetute avatud akende sulgemiseks, mida pakuvad ka teised &kde; rakendused. Menüüst Aken või hiire parema nupuga kaardi sakile klõpsates saab

- sulgeda aktiivse redaktorakna,

- sulgeda kõik avatud redaktoriaknad või

- või sulgeda korraga kõik redaktoriaknad (seda saab kasutada ainult menüüst Aken).

##### Valitud kaartide sulgemine

Üksikute redaktorakende sulgemine võib osutuda päris tülikaks, eriti kui on terve rida kaarte, millest soovid mõned endiselt avatuks jätta. Selle asemel et kaarte ükshaaval üle vaadata ja sulgeda, pakub &kdevelop; võimalust valida nimekirjast kaardid ja sulgeda ainult valitud kaardid üheainsa hiireklõpsuga.

Toome lihtsa näite. Oletame, et meie Hello näidisprojektis on redigeerimiseks avatud mitu faili: `hello.cpp`, `hello.h`, `helloui.rc`, `hello.desktop` ja `main.cpp`. Soovid avatuks jätta ainult failid `hello.cpp` ja `hello.h`. Kõige lihtsam on seda teha tööriistavaates Failinimekiri. Et avatud failide nimekiri on järjestatud tähestikuliselt, on vajalike kaartide ülesleidmine päris lihtne. Toimi järgnevalt:

1. Ava Failinimekiri ja klõpsa klahvi Ctrl all hoides nimekirjas failidele, mida soovid sulgeda.

2. Seejärel, hoides hiirekursorit nimekirjas leiduva faili kohal, klõpsa hiire parema nupuga.

3. Vali failinimekirja kontekstimenüüst Sulge valitud.

Valitud redaktoriakende sulgemine ühekorraga

Ja ongi kõik. &kdevelop; sulgeb kõik valitud redaktoriaknad ja kaardiriba on märksa puhtam.

#### Redigeerimisakna kaartide ümberkorraldamine

Isegi kui oled sulgenud tarbetud redaktoriaknad, võib sul olla soov korraldada avatud kaardid ümber loogilisemal viisil. &kdevelop; mõistagi lubab seda teha, nimelt järgmiselt:

##### Põhiseadistused — kuhu seada uued kaardid

Vaikimisi avatakse uue redaktorakna kaart aktiivse redaktoriakna kaardist paremal pool. Seda saab muuta, et uus kaart avataks kaardiribal kõige parempoolsena.

Selleks tuleb muuta &kdevelop;i kasutajaliidese põhiseadistusi.

1. Vali Seadistused KDevelopi seadistamine...

2. Vali dialoogi vasakus servas ikoon Kasutajaliides. Avaneb dialoog Kasutajaliides.

3. Paremal all leiab sektsiooni Kaartidega lehitsemine. Eemalda märge kastist Uus kaart avatakse aktiivse kaardi järel.

4. Sulge &kdevelop; ja käivita uuesti. Nüüd avanevad redaktoriakna kaardid kaardirea parempoolses servas.

Paraku ei saa seda muuta jooksvalt, arendusseansi käigus. Sa pead eelnevalt otsustama, millist käitumist soovid, ning seejärel seda kasutama vähemalt &kdevelop;i järgmise käivitamiseni.

##### Kaartide ümberkorraldamine

Arendusülesanded muutuvad aeg-ajalt, mistõttu võib tekkida vajadus redaktoriakende kaarte ümber korraldada. See on &kdevelop;is õige lihtne.

Klõpsa lihtsalt kaardil, mida soovid liigutada, hiire keskmise nupuga ja liiguta hiirt veidi. Kursor muutub ristikujuliseks. Nüüd saab hiire keskmist nuppu all hoides kaardi lohistada vajalikku asukohta.

#### Mitme faili vaatamine korraga

Esimesel korral on alati avatud vähemalt üks redaktoriaken, kus saab asuda tegutsema lähtekoodifailide kallal. Kuigi kaartidega aknas saab päris kiiresti ühelt kaardilt teisele lülituda, võib esineda juhtumeid, kus soovid, et korraga oleks avatud mitu faili, &eg; millegi kontrollimisel või mõne keerukama ülesande täitmisel. &kdevelop; pakub selleks võimalust poolitada töötsoon mitmeks korraga nähtavaks osaks, milles kõigis võivad olla avatud oma kaardid.

Poolitamiskäske on kaks, mõlemat saab kasutada kas menüüst Aken või hiire parema nupu klõpsuga kaardil või otse sakil. Me tutvustame poolitamist meie Hello näidisprojekti varal.

Oletame, et avatud on kaks faili: `hello.cpp` ja `hello.h`. Töötades failiga `hello.cpp`, on sul sageli vaja näha deklaratsioone päisefailis `hello.h`, nii et väga hea oleks mõlemad failid korraga silme ees hoida.

Selleks tee hiire parema nupuga klõps näiteks faili `hello.h` sakil. Ilmub kontekstimenüü.

Töötsooni jagamine kaheks

Vali Poolita horisontaalselt. Töötsoon jagatakse keskelt pooleks ning faili `hello.h` sisaldav redaktoriaken avatakse alumises osas.

Horisontaalselt poolitatud töötsoon

Pane tähele kaht akent lahutavat eraldajat. Seda hiirega lohistades võib muuta akende kõrgust endale sobivaks.

Tähelepanu tasub pöörata mõnele aspektile.

- Poolitatud töötsooni osad on mõlemad täisfunktsionaalsed. See tähendab, et uued redaktoriaknad avatakse parajasti redaktoriakna osas. Soovi korral võib iga osa täiendavalt poolitada, et hoida avatud just nii palju aknaid, kui parajasti vaja.

- Iga poolitamine viib parajasti aktiivse redaktorakna uude alamtöötsooni kas all või paremal. Teised kaardid jäävad sinna, kus nad olid. Kaarte ei saa poolitatud alade vahel vahetult liigutada, selleks tuleb kaart ühes töötsoonis sulgeda ja teises uuesti avada.

- Samuti ei saa poolitatud ala otseselt sulgeda. See sulgub automaatselt pärast seda, kui suletud on viimane selles asunud kaart.

#### C++ lähtekoodi- ja päisefailide redigeerimine korraga

Lisaks mainitud töötsooni poolitamisele on &kdevelop;il pakkuda veel üks vahva võimalus, mis lubab korraga avatud hoida `.cpp`-lähtekoodifaili ja vastava `.h`-päisefaili. Lisaks lubab see mõlemat faili sünkroonis kasutada: päisefailis näiteks deklaratsiooni valides liigub &kdevelop; vastavale definitsioonile lähtekoodifailis ja vastupidi.

See võimalus pole siiski vaikimisi sisse lülitatud, vaid tuleb käsitsi aktiveerida.

Vali Projekt Projekti seadistused. Ilmub dialoog Projekti seadistused. Vali vasakus servas ikoon C++ toetus ja paremal avanevas dialoogis kaart Liikumine.

C++ lähtekoodi- ja päisefaili avamine kõrvuti

Märgi ära kast Päise/lähtekoodi eraldamise lubamine. See lülitab automaatselt sisse valikud Automaatne sünkroniseerimine ja Vertikaalselt. Jäta need praegu kehtima ja klõpsa nupule OK.

Selle võimaluse selgitamiseks sulge meie Hello näidisprojektis failid `hello.cpp` ja `hello.h`. Seejärel vali projekti alamkataloogist `src` taas fail `hello.cpp`. Nagu ikka, avaneb redaktoriaken. Aga kui avad nüüd sellega kokkukuuluva faili `hello.h`, poolitab &kdevelop; automaatselt töötsooni ja avab päisefaili otse `hello.cpp` akna all.

Aga nagu mainitud, see pole veel kõik. Otsi &eg; failis `hello.cpp` üles järgmine konstruktori definitsiooni rida:

    Hello::Hello()

ja aseta kursor selle sisse. Seejärel vaata all faili `hello.h` ja näed, et &kdevelop; liigub vastavale konstruktori deklaratsiooni reale.

&kdevelop; liigub automaatselt konstruktori deklaratsioonile

See toimib ka vastupidi: kui viid kursori ühes aknas millegi peale, liigub &kdevelop; teises aknas samuti vastava konstruktsiooni peale.

#### Lähtekoodifailide rühmitamine arendusseanssideks

Kui projekt kasvab ning arendusülesanded muutuvad aina keerukamaks ja sunnivad üha rohkem lülituma erinevate failide või isegi failikogumite vahel, on kätte jõudnud aeg korraldada oma arendustegevus erinevateks seanssideks. Seda võimaldab teha &kdevelop;i tööriistavaade Failinimekiri.

Tööriistavaate Failinimekiri ülaosas on tööriistariba, mille abil saab seansse luua, salvestada, valida ja eemaldada. Samamoodi võib selleks kasutada menüüd Vaade Seansid.

Me tutvustame seda taas oma Hello näidisprojekti varal. Oletame, et tahad alati korraga avada failid `hello.cpp`, `hello.h` ja `main.cpp`, sõltumata sellest, millist ülesannet sa parajasti projektis täidad. Selleks tuleb kõigepealt luua uus arendusseanss näiteks nimega lähtekood.

Arendusseansside kasutamine failirühmade meelespidamiseks

Selleks tuleb astuda mitu sammu.

1. Uue seansi loomine

   1. Klõpsa ikoonile Uus seanss, mille leiad tööriistavaate Failinimekiri akna ülemisest vasakpoolsest servast.

   2. Ilmub dialoog. Anna väljal Sisesta seansi nimi oma uuele seansile nimi, &eg; lähtekood.

   3. Sulge dialoog klõpsuga nupule OK. Uus seanss on nüüd valitav rippmenüüst tööriistaribal.

2. Uus seanss on esialgu tühi, see tuleb alles täita failidega, mida soovid selles näha.

   1. Ava kõik failid, mida soovid antud arendusseanssi lisada. Meie näites otsustasime sinna lisada failid `hello.cpp`, `hello.h` ja `main.cpp`.

   2. Kui failid on valitud, klõpsa tööriistaribal ikoonle Salvesta seanss. Tee seda kindlasti, sest muidu ei pea &kdevelop; faile meeles.

Ongi kõik. Kui hiljem valid rippmenüüst Ava seanss kirje lähtekood, sulgeb &kdevelop; kõik parajasti avatud redaktoriaknad ja avab nende asemel need, mis on seanssi salvestatud (meie näites `hello.cpp`, `hello.h` ja `main.cpp`).

Projektis võib luua seansse nii palju kui vaja. Kui soovid seansi sisu muuta, vali lihtsalt vajalikud failid ja klõpsa taas ikoonile Salvesta seanss. Kui soovid aga seansi kõrvaldada, vali see rippmenüüst ja klõpsa tööriistaribal paremal asuvale ikoonile Kustuta seanss.

See ei ole veel kõik. &kdevelop; võib teatud seansi projekti laadimisel ka vaikimisi avada. Vali selleks lihtsalt vajalik seanss rippmenüüst projekti seadistuste dialoogis Projekt Projekti seadistused Failinimekiri.

&kdevelop; avab projekti laadimisel valitud seansi.

### Tavaliste probleemide jälgimine

Kui avada redaktoriaknas lähtekoodifail, parsib &kdevelop; selle sisu. See võimaldab sisseehitatud probleemide teavitajal otsida tekstist mõningaid teadaolevaid levinumaid vigu. Seejärel teavitatakse kasutajat kohtadest, mis nõuavad erilist tähelepanu.

Tutvustame seda võimalust meie Hello näidisprojekti varal.

- Ava redaktoraken lähtekoodifailiga `main.cpp`.

- Kontrolli, et selles oleks lõpupoole järgmine rida:

      /// @todo do something with the command line args here

  Selle lisas Rakenduse nõustaja, kui lõid Hello projekti, nagu kirjeldati eespool peatükis Uue projekti loomine.

- Ava nüüd all tööriistavaade Probleemid. Kui kõik on nagu kord ja kohus, antakse seal antud TODO'st teada:

  &kdevelop; hoiatab lähtekoodirea eest, kus paikneb TODO märge.

Vorming `/// @todo` on mõeldud spetsiaalselt koodi dokumenteerimise programmile Doxygen, mida me käsitleme lühidalt allpool osas Dokumentatsioon. Selle vormingu kasutamine ei ole kohustuslik, sama hästi tuntakse ära levinumad kommentaaritähised `TODO` ja `FIXME`.

Kui &eg; lisad meie näidisfaili `hello.cpp` järgmised `TODO` ja `FIXME` kommentaariread

    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" );
    }

siis näitab tööriistavaade Probleemid ka neid:

Probleemide teavitaja jälgib redigeeritavas failis tähelepanu nõudvaid ridu.

Pane tähele, et probleemide teavitaja aknas on ka teisi kaarte, eriti just kaardid Fixme ja Todo. Neid avades näed kõiki `FIXME` ja `TODO` märkega ridu, mida &kdevelop; on seni leidnud. Näiteks kaardi `TODO` hoiatused näevad praegu välja nii:

Probleemide teavitaja kogutud `TODO` hoiatused

Kaardil Vead pole aga kirjas sugugi kõik koodivead, mida oled teinud. Nende tuvastamine on teiste tööriistade, &eg; ehitamisprotsessi ülesanne. Siit leiab aga hoiatused mõningate levinumate programmeerimiseksimuste kohta, mis muidu võivad jääda märkamata ja mille tabamine nõuaks keerulist ning vaevalist silumist.

&kdevelop;i probleemide teavitaja on väga väärtuslik tööriist, mistõttu tasuks tööriistavaadet Probleemid arendustegevuse ajal regulaarselt jälgida.

## Projekti kompileerimine

Projekti kompileerimine nõuab &kdevelop;is mitut seadistavat sammu ja seejärel rakenduse ehitamist. Kõike seda saab teha menüü Ehitamine abil.

Projekti ehitamine nõuab mitut sammu

Praegu huvitab meid ainult menüü ülemine osa. Sealsed kirjed on toodud tähtsuse järjekorra. See tähendab, et kõige rohkem vaja minev käsk asub kõige üleval - Ehita projekt, mis initsialiseerib, kompileerib ja lingib projekti. Teised kirjed on mõeldud projekti valitud osade või ka üheainsa faili kompileerimiseks, mitmesugusteks initsialiseerissammudeks või rakenduse valmis binaarifailide paigaldamiseks.

Järgnevalt keskendume mitmele võimalusele, mida &kdevelop; pakub projekti seadistamiseks, initsialiseerimiseks, ehitamiseks ja käivitamiseks. Üldiselt tulevad vaatluse alla järgmised asjad:

- Põhiline ehitamistsükkel.
- Projekti konfigureerimise põhilised vahendid.

### Ehitamise põhitsükkel

Kui oled loonud uue projekti, soovid enamasti ju ka kntrollida, kas kõik on seni ikka hästi läinud. See tähendab rakenduse esimest ehitamist ja testkäivitamist, mille me nüüd ette võtamegi. Projekti esialgseks kompileerimiseks tuleb astuda mitu sammu, mida me lühidalt tutvustame.

- Projekti initsialiseerimine esimeseks ehitamiseks.
- Esialgne konfigureerimine.
- Projekti ehitamine.
- Rakenduse käivitamine &kdevelop;is.

Me eeldame siinkohal, et sinu projekti aluseks on &GNU; autotools, mis võimaldavad &kdevelop;is kasutada Automake'i haldurit, nagu seda kasutab meie Hello näidisprojekt. Kui oled loonud mõnda muud tüüpi projekti, &eg; sellise, mis kasutab &Qt; põhist QMake'i projektihaldurit, siis võivad menüüs olla mõnevõrra teistsugused kirjed. Sel juhul tuleb tutvuda vastava programmi pakkuja projektihalduse ja rakenduse ehitamise dokumentatsiooniga.

#### Projekti initsialiseerimine ehitamiseks

Kui Rakenduse nõustaja lõi meie Hello näidisprojekti, oli see omamoodi toores, neitsilik. &GNU; autotools näeb ette mitu initsialiseerimissammu, enne kui rakendust saab tegelikult kompileerida ja linkida. Kui üritad ehitada sellist toorest rakendust, valides &eg; menüükäsu Ehitamine Ehita projekt või vajutades klahvi F8, saad järgmise hoiatuse.

Toore automake'i põhise projekti ehitamise katse

Sa võid klõpsata nupule Pane tööle ning &kdevelop; üritab automaatselt läbi viia kõik sammud, mida on vaja enne rakenduse kompileerimist ja linkimist. Kuid me tahame vaadelda esimesi samme õiges järjekorras, sestap klõpsa nupule Ära käivita.

Nagu mainitud, käib rakenduse kompileerimine ja linkimine menüü Ehitamine vahendusel. Ava see ja vali Käivita automake.

Esmase initsialiseerimise käivitamine

&kdevelop; avab nüüd all tööriistavaate Teated ja näitab tervet rida teateid, mida annavad mitmesugused ehitamise tööriistad. Kui kõik läheb edukalt, seisab viimasel real `*** Õnnestus ***`.

Algusse kerides näed käsku, mille &kdevelop; tööriistadele andis:

    cd '/home/devel/projects/hello' && \
    WANT_AUTOCONF_2_5="1" WANT_AUTOMAKE_1_6="1" gmake -f Makefile.cvs

See annab teada, et &kdevelop; lülitus kõigepealt meie näidisprojekti juurkataloogi. Seejärel kehtestati vajalik keskkond, märkides ära ehitamise initsialiseerimiseks vajalikud tööriistade autoconf ja automake versioonid. Lõpuks anti ehitamistööriistale (antud juhul &GNU; gmake) käsk töödelda faili `Makefile.cvs`.

See fail loodi automaatselt Hello projekti loomisel. See sisaldab kõiki käske, mida on vaja projekti korrektseks initsialiseerimiseks, et loodav rakendus töötaks &kde; keskkonnas. Ennekõike loob see aga skriptifaili `configure`, mida on vaja järgmise sammu sooritamisel.

#### Esialgne Hello konfigureerimine

Konfigureerimine tähendab ehitamise kohandamist sinu süsteemi riist- ja tarkvaraga. See on &GNU; autotools'il põhineva ehitamise üks olulisemaid nõudeid, nagu sa arvatavasti juba tead.

Konfigureerimisega saab alustada kohe pärast seda, kui algne automake'i initsialiseerimine on edukalt lõpetatud, sest alles pärast seda saab kasutada vajalikke `configure`-faile. Vali siis nüüd menüükäsk Ehitamine Käivita 'configure', mis alustabki konfigureerimist.

&kdevelop; avab vajaduse korral taas tööriistavaate Teated ning näitab seal konfigureerimise teateid. Kui kõik läheb edukalt, on viimased teated `Good - your configure finished. Start make now` (seda teatab 'configure') ja selle järel &kdevelop;i poolt `*** Õnnestus ***`.

Kaardi Teated ülaosast leiab taas käsu, millega &kdevelop; konfigureerimise käivitas:

    mkdir '/home/devel/projects/hello/debug' && \
    cd '/home/devel/projects/hello/debug' && \
    CXXFLAGS="-O0 -g3" "/home/devel/projects/hello/configure" --enable-debug=full

Need paljastavad meile mitu huvitavat detaili.

- Kõigepealt kasutab &kdevelop; ehitamiseks projekti kataloogipuus spetsiaalset alamkataloogi. Ehitamiskataloog `debug` (seda näeb vasakul) peegeldab projekti põhistruktuuri ja sisaldab mõningaid ehitamisega seotud faile, näiteks mitu `configure`-faili ja lisaks `Makefile` igas alamkataloogis.

- Osas Projekti seadistamine tuleb veel lühidalt juttu, miks &kdevelop; kasutab sellistel juhtudel omaette ehitamiskatalooge. Praegu piisab teadmisest, et &kdevelop; loob kataloogi `debug` — kui seda on vaja — enne konfigureerimis ja et skript `configure` ehitas sinna alamstruktuuri ja kõik `Makefile`'id.

- Seejärel kutsus &kdevelop; ehitamiskataloogist `debug` meie projekti juurkataloogis välja skripti `configure`, kasutades spetsiaalset keskkonda, milles lipud `CXXFLAGS="-O0 -g3"` annavad hiljem kompilaatorile &gcc; teada, et loodavaid binaarfaile ei tule optimeerida ning neisse tuleb kaasata kogu silumisinfo.

- Lõpuks kutsutakse skript `configure` välja võtmega `--enable-debug=full`, mis annab korralduse luua kõik `Makefile`'id, et hiljem oleks kompileerimise ja linkimise ajal saada kogu vajalik silumisinfo.

Kõik need seadistused on kohandatavad projekti tasandil. Sellest kõneleb lähemalt peatükk Projekti haldamine.

#### Projekti ehitamine

Kui oled nii kaugele jõudnud, oled valmis tegelikuks ehitamiseks, &ie; rakenduse kompileerimiseks ja linkimiseks. Menüüst Ehitamine leiab kolm asjakohast kirjet.

&kdevelop;i käsud binaarfailide ehitamiseks

Need on alt üles järgmised:

- Kompileeri fail — kompileerib parajasti redaktoriaknas avatud lähtekoodifaili. Kasutatakse peamiselt kiireks vigade kontrollimiseks.

- Ehita aktiivne sihtmärk — kasutatakse peamiselt koostöös Automake'i halduriga, millest tuleb lühidalt juttu edaspidi.

- Ehita projekt — sellest olemegi me praegu huvitatud. See võtab ette kogu projekti, kompileerides ja linkides kõik failid.

Võib-olla on huvitav jälgida, mis juhtub kataloogiga `debug`, mis loodi varasema skripti `configure` töö käigus. Seepärast hoia kõik alamkataloogid avatuna, nagu eespool näidatud. Seejärel vali ehitamise alustamiseks menüükäsk Ehitamine Ehita projekt (või vajuta klahvi F8). Nagu varem, avaneb all tööriistavaade Teated ning näitab ehitamise teateid. Lisaks ilmuvad kataloogi `debug` mõningad failid.

Meie Hello näidisprojektis pole just palju faile, mistõttu kaart Teated sisaldab vaid mõne rea. Kõige ees seisab taas käsk, mille &kdevelop; edastas protsessi alustamiseks.

    cd '/home/devel/projects/hello/debug' && \
    WANT_AUTOCONF_2_5="1" WANT_AUTOMAKE_1_6="1" gmake -k

Pole ilmselt üllatav, et &kdevelop; lülitus kataloogi `debug`, et käivitada seal asuv `Makefile`. Nagu initsialiseerimise ajal, loodi taas spetsiaalne keskkond, milles kutsuti välja tööriist gmake.

Pane tähele võtit `-k` programmi gmake väljakutses. See sunnib ehitamist jätkama lõpuni ka siis, kui tekib vigu. See on üsna mõistlik, sest &kdevelop; loetleb kõik veateated kaardil Teated. Kui neid peaks esinema, saab kasutada &IDE; suuri võimalusi. Klõpsa lihtsalt veal kaardil Teated ja &kdevelop; viib sind lähtekoodifailis täpselt sellesse kohta, kus viga tekkis.

Ja mis juhtus kataloogiga `debug`? Tegelikult suurt mitte midagi. Mõned failid ilmusid alamkataloogidesse `doc/en` ja `src`, millest vahest enim tähelepanu väärib `hello` asukohas `/home/devel/projektid/hello/debug/src/`. See ongi meie rakenduse binaarfail. Nüüd on rakenduse esialgseks kontrollimiseks veel vaja seesama `hello` käivitada.

#### Rakenduse käivitamine

Uue Hello rakenduse käivitamiseks ei ole vaja mingeid erisamme. Vali lihtsalt menüükäsk Ehitamine Käivita rakendus või kasuta kiirklahvi Shift F9 või nuppu Käivita rakendus, mille leiad ehitamisribalt.

Rakenduse käivitamine ehitamisribalt

See ongi kõik. &kdevelop; käivitab nüüd uue rakenduse spetsiaalses konsooliaknas, mis avaneb all tööriistavaates Rakendus. Ülemises reas näeb käsku, mille &kdevelop; annab programmi käivitamiseks:

    ./hello

See näitab, et &IDE; teab, kus asub käivitatav fail. Seda saab mõistagi seadistada. Täpsemalt räägib sellest peatükk Projekti haldamine.

Reale `./hello` järgneb tõenäoliselt hoiatus. Seda võib praegu eirata. See ei takista rakenduse Hello tööd.

Meie esialgne Hello rakendus

Sulge Hello rakenduse aken tavapäraselt. Kui vigu ei tekkinud, näitab &kdevelop; tööriistavaates Rakendus teadet `*** Väljuti normaalselt`.

### Projekti seadistamine

&kdevelop;is saab oma projekti hallata väga paljudel viisidel. Nende käitumist saab iga projekti puhul iseseisvalt määrata, mis kindlasti pakub huvi kogenud arendajatele. Kuid on mõningad projekti spetsiifilised seadistused, mida peavad teadma kõik.

- Mis kasu on ehitamisseadistustest?
- Kus määrata kindlaks skripti `configure` käitumine?
- Kuidas peaks töötama make?
- Kus peaks asuma käivitatav fail ja mis peaks olema selle nimi?

#### Ehitamisseadistused

Kui me käivitasime skripti `configure` eespool toodud osa Esialgne Hello seadistamine juhiste kohaselt, täheldasime, et &kdevelop; lõi selleks spetsiaalse alamkataloogi `debug`. Nüüd tutvustame selle sammu mõningaid tagajärgi.

Esiteks tuleb öelda, et &kdevelop; ei pruugi tingimata kasutada spetsiaalset ehitamiskataloogi. Selle kasutamise näevad ette mallid, mida tarvitab Rakenduse nõustaja uue projekti loomisel.

Kui tahad teada, millised ehitamisseadistused on üldse kasutatavad, uuri menüüd Projekt Ehitamise seadistused.

Projekti mitu ehitamiseadistust

Antud juhul saab meie Hello näidisprojekti jaoks kasutada kolme erinevat ehitamisseadistust. Teistel juhtudel võib —vähemalt esialgu— olla kasutatav ainuilt üks ehitamisseadistus, nimelt default.

Parajasti kasutatava ehitamisseadistuses eest on linnuke, Kui soovid seda muuta, vali lihtsalt mõni muu menüükirje.

Vaatame nüüd lühidalt, mida need ehitamisseadistused pakuvad.

debug

  Seda tuleks kasutada arendamise käigus vaikimisi ehitamisseadistusena. Ehitamine käib sel juhul lähtekoodikataloogidest eraldi spetsiaalses alamkataloogis `debug`, &ie; kõik objektid, lisafailid ja käivitatavad failid paigutakse loodud alamkataloogi alamkataloogidesse, mitte aga vastavatesse asukohtasse projekti juurkataloogis. Skriptile `configure` antakse võti `--enable-debug=full` ning võti `CXXFLAGS="-O0 -g3"` annab kompilaatorile &gcc; teada, et koodi ei optimeerita ning loodud binaarfailidesse lisatakse põhjalik silumisinfo.

optimized

  See on mõeldud lõpliku C++ rakenduse ehitamiseks. Ehitamine toimub lähtekoodikataloogidest eraldi spetsiaalses alamkataloogis `optimized`. Skriptile `configure` ei anta ühtegi spetsiifilist võtit, kuid võti `CXXFLAGS="-O2 -g0"` annab kompilaatorile &gcc; teada, et kood tuleb optimeerida ning loodud binaarfailidesse ei lisata silumisinfot.

default

  Mõiste default ehk tõlkes 'vaikimisi' märgib standardseadistust, kui ehitad konsoolipõhise rakenduse, kasutades &eg;&GNU; käsureapõhiseid ehitamistööriistu configure ja make/gmake. Erinevalt variantidest debug ja optimized ei kasutata spetsiaalset ehitamiskataloogi. Rakendus ehitatakse vaikimisi lähtekoodikataloogides. Spetsiaalseid konfigureerimisvõtmeid ei anta. Ehitamisel ja rakenduse käivitamisel kasutatakse vaikimisi tööriistu (nt. &gcc; jne.).

  Mõtle hoolikalt järele, enne kui kasutad ehitamiskeskkonda default!

  Seda ei saa kasutada paralleelselt spetsiifiliste keskkondadega debug ja optimized. Kõik variandiga default ette võetud ehitamistoimingud muudavad teised ehitamiskeskkonnad kasutuskõlbmatuks. Seda põhjustavad teatud iseärasused `Makefile`'ide loomisel automake/autoconf'i abil, mida ei saa enam tagasi võtta.

Miks aga peaks üldse tahtma kasutada erinevaid ehitamisseadistusi, eriti kui nad isegi üksteisega ei ühildu? Vastus — see lihtsustab redigeerimise, kompileerimise ja silumise tsüklit. Binaarfailidesse lisatud silumisinfo. aga programmi koodi tehtud väikesed muudatused optimeerimise käigus mõjutavad loodud rakenduse käitusaegset käitumist. Seepärast on paljudel juhtudel, kui mõne rutiini loogiline struktuur tundub olevat korrektne, siiski mõttekas seda testida, et näha, kas see käitub korrektselt ka elulisemates tingimustes.

Siin tulevadki mängu &kdevelop;i ehitamisseadistused. Et ehitatud objektid ja käivitatavad failid spetsiaalsetes ehitamiskataloogides ja ehitamiskäsud on üksteisest lahus, tuleb ehitamisseadistuse vahetamisel tegelda ainult lähtekoodi muutmisega.

See tähendab, et tingimuste muutmisel ei pruugi kõike puhastada ja algusest peale kompileerima asuda, vaid lihtsalt lülituda ehitamisseadistuselt debug seadistusele optimized, kompileerida lähtekoodi muudatused ja testida kõike uuesti uutes oludes. Kui midagi on valesti, vali taas seadistus debug ja jätka kohe oma tööd.

Viimane märkus — ehitamisseadistused on mitmeti seadistatavad. Soovi korral võib luua isegi omaenda ehitamisseadistusi. Me käsitleme neid võimalusi põgusalt järgmises osas.

#### Projekti konfigureerimise seadistused

Rakenduse korralik konfigureerimine on &GNU; autotools'i ahelas hädavajalik. Tavaliselt tehakse seda skriptile `configure` antavate võtmetega ja/või keskkonnale spetsiifiliste lippudega, mis määratakse kindlaks enne skripti `configure` käivitamist (&eg; `CXXFLAGS`, mida vaatlesime eespool).

Enamikku konfigureerimisvõtmeid saab &kdevelop;is määrata graafiliselt. Vali Projekt Projekti seadistused ja ilmuvas dialoogis vasakus servas ikoon Konfigureerimise seadistused. Paremal pool näidatakse seejärel mitme kaardiga dialoogi Konfigureerimise seadistused.

Siin saab määrata enamiku konfigureerimise seadistusi

Nagu näed, on dialoogis võimalik seadistada õige paljusid asju. Praegu vaatame põgusalt neist ainult mõningaid, mis seonduvad meie Hello näidisprojektiga. Täpsemalt räägib sellest peatükk Projektide seadistamine. Kui soovid lähemalt tundma õppida erinevaid lippe, siis otsi teavet käsureal käsuga `info make` (või `info:make` &konqueror;is), kus tuleb üles leida sektsioon Implicit Rules Implicit Variables.

Dialoogis on mitu kaarti, millest esimene, Üldine, puudutab kõige üldisemaid seadistusi, teised teatud kompilaatoritele spetsiifilisi seadistusi. Kõigil juhtudel aga mõjutab dialoogide sisu parajasti valitud ehitamisseadistus.

Ehitamisseadistuse, mille seadistusi muutma asuda, saab valida dialoogi Konfigureerimise seadistused ülaosas asuvast rippmenüüst Konfiguratsioon.

Ehitamisseadistuse valik, mille seadistusi muuta

Nüüd vali samast rippmenüüst mõni teine ehitamisseadistus ja pane tähele, kuidas dialoogi sisu &eg; tekstikastides Konfigureerimise argumendid ja Ehituskataloog muutub vastavalt sellele, mida me tutvustasime eespool ehitamisseadistustest kõneldes.

##### Üldised konfigureerimise seadistused

Kaardil Üldine saab määrata järgmisi konfigureerimise valikuid:

- ###### Konfigureerimise argumendid

  Need on võtmed, mida &kdevelop; edastab ehitamiseks skriptile `configure`. Vaata eespool näidist osas Esialgne Hello seadistamine.

- ###### Ehituskataloog

  See on projekti juurkataloogi alamkataloog, kuhu &kdevelop; paigutab kõik ehitamisel loodud failid. Ideaalis peaks see kattuma kasutatava ehitamisseadistuse nimega, kuid kasutada võib mis tahes nime, peaasi et see erineks teiste ehitusseadistuste vaikimisi kataloogidest.

- ###### Lähtekoodi ülemkataloog

  Seda ei ole enamasti vaja määrata. Vaikimisi on selleks projekti juurkataloog ning muuta tuleks seda vaid siis, kui projekti lähtekood asub kuskil mujal.

- ###### C/C++ eelprotsessori lipud (CPPFLAGS)

  Siin tuleb anda eelprotsessorile mõeldud juhised. &kdevelop; kasutab neid ajutise keskkonna loomiseks enne ehitustööriista väljakutsumist. Ka siin tasuks vaadata näidist osasEsialgne Hello seadistamine.

- ###### Linkur lipud (LDFLAGS)

  Siin tuleb anda linkimistööriistale ld teada, kust otsida täiendavaid teeke. Ka seda kasutatakse ajutise ehituskeskkonna loomiseks.

- ###### Keskkonnamuutujad

  Siin saab määrata lisamuutujaid ajutisele ehituskeskkonnale, mille &kdevelop; loob enne vastava ehitustööriista väljakutsumist. Keskkonnamuutujad tuleb määrata eraldi kõigile ehitamisseadistustele.

##### Kompilaatori spetsiifilised seadistused

Dialoogi Konfigureerimise seadistused teistel kaartidel on konkreetsete kompilaatoritega seotud valikud. Need on üldiselt ühetaolised, mistõttu piirdume kaardiga C++.

&kdevelop;i kasutatava kompilaatori ja selle töökeskkonna valimine

Siin saab määrata järgmisi asju:

- ###### C++ kompilaator

  Sellest ripmenüüst saab valida C++ kompilaatori, mida &kdevelop; standardselt kasutab. Siin on näha ainult need kompilaatorid, mis on &kdevelop;ile kättesaadavad.

- ###### Kompilaatori käsk (CXX)

  Ainult asjatundjatele. Seda läheb vaja vaid siis, kui C++ kompilaator pole standardne. Kirjuta siia selle nimi.

- ###### Kompilaatori lipud (CXXFLAGS)

  Siin saab anda täiendavad võtmed, mida &kdevelop; (`Makefile`'i vahendusel) edastab kompilaatorile. Mõned võtmed on ette antud vastavalt rippmenüüst Konfiguratsioon valitud ehitamisseadistusele.

  Pane tähele, et paljusid levinumaid kompilaatori võtmeid saab valida dialoogist, mis avaneb klõpsuga tekstikastist paremal asuvale nupule ....

  Selles dialoogis saab määrata &GNU; C++ kompilaatori käitumise

  Me näitasime siin sihilikult kaarti Optimeerimine. Pane tähele, et valitud on Optimeerimiseta (vastavalt võtmele `-O0` ehitamisseadistuses `debug`).

  Paraku ei saa praegu mitte kõiki võtmeid selles dialoogis määrata. Näiteks võti `-g3`, mida kasutab ehitamisseadistus `debug`, tuleb vajaduse korral käsitsi muuta.

#### Make'i programmi ehitamise viisid

&kdevelop;pi saab panna projekti ehitamisel tööriista make väga mitmel moel välja kutsuma. Vali Projekt Projekti seadistused ja seejärel vasakus servas ikoon Ehitamise seadistused. Paremal avaneb dialoog Ehitamise seadistused.

&kdevelop;i väljakutse määramine tööriistale make

Siin ei ole üldiselt suurt midagi vaja muuta. Enamasti on ainuke huvipakkuv valik Esimese vea ilmnemisel katkestatakse töö. Enamikus projektides on see välja lülitatud. See vastab võtmele `-k` rakenduse gmake väljakutses, mis esines meie Hello näidisprojekti esimese ehitamise käsus.

See on mõttekas sellises &IDE;-s nagu &kdevelop;, mis talletab kõik ehitamise ajal tekkinud vead. Pärast ehitamist saab tööriistavaates Teated hõlpsasti kõiki vigu näha. Neid saab läbi lapata menüükäskudega Vaade Järgmine viga ja Vaade Eelmine viga või vastavate kiirklahvidega F4 ja ShiftF4. &kdevelop; aktiveerib selle peale automaatselt vajaliku lähtekoodifaili ja viib kursori reale, kus viga esines.

Kui sa aga soovid, et ehitamine peatataks kohe vea tekkimisel, märgi dialoogis ära kast Esimese vea ilmnemisel katkestatakse töö. Sel juhul kutsub &kdevelop; programmi gmake välja võtmeta `-k`.

#### Käivitatava faili käivitamine

Kui ehitamine tehtud, saab &kdevelop;is kohe rakenduse käivitada. Vali kas menüükäsk Ehitamine Käivita rakendus, kiirklahv ShiftF9 või klõpsa &kdevelop;i ehitamisribal ikoonile Käivita rakendus.

Rakenduse käivitamine tööriistaribalt

Aga kus see käivitatav fail asub? Kuidas lisada &kdevelop;i väljakutsele veel mõningaid võtmeid? Ja kuidas panna see tööle omaette terminalist, et kontrollida interaktiivset käitumist konsoolis?

Kõik see on seadistatav &kdevelop;i projekti käivitamisvalikutega. Vali Projekt Projekti seadistused ja seejärel vasakus servas ikoon Käivitamise seadistused. Paremal avaneb dialoog Käivitamise seadistused.

Rakenduse käivitamise koha ja viisi määramine

Selles dialoogis on üsna palju valikuid, mis põhimõtteliselt jagunevad nelja rühma.

- ##### Kataloog

  Siin saab &kdevelop;ile teada anda, kust tuleb käivitatav fail välja kutsuda. Valida saab kolme võimaluse seast.

  Pane tähele, et siin saab määrata ainult juurkataloogi. &kdevelop; otsib käivitatavat faili tavaliselt mõnest alamkataloogist, mille saab määrata valikute järgmises rühmas.

  - Käivitamine kataloogist, kus käivitatav fail viimati ehitati. See on vaikevalik. Selle võib julgelt kehtima jätta.

  - Käivitamine ehituskataloogist vastavalt parajasti valitud ehitamisseadistusele. Kataloogi nimi on kindlaks määratud dialoogis Üldised seadistused.

    See on juurkataloog, kust &kdevelop; käivitatavat faili otsib. See muutub automaatselt vastavalt menüüs Projekt Ehitamise seadistused langetatud valikule.

    Lisaks sellele, et nii saab alati käivitada kõige viimati ehitatud käivitatava faili, võimaldab see valik rakenduse käivitamist lülitada lihtsalt menüüst Projekt mõnda muud ehitamisseadistust valides.

  - Käivitamine kindlast valitud kataloogist. Taas on tegemist vaid juurkataloogiga, mille seest otsitakse käivitatavat faili.

    Seda on mõtet kasutada &eg; siis, kui soovid käivitada juba paigaldatud rakenduse, mitte aga projektikataloogides asuva versiooni.

- ##### Programm

  See annab &kdevelop;ile teada programmi suhtelise asukoha ja nime, mida välja kutsuda. Asukoht on suhteline eespool määratud konfiguratsioonirühma asukoha juurkataloogi suhtes. Lisaks saab anda &kdevelop;ile korralduse edastada programmile väljakutsumisel mis tahes võtmeid.

  Kui jätta tekstikast Põhirakendus tühjaks, kasutatakse Automake'i halduri aktiivse sihtmärgi seadistusi. Kuigi tegemist on kogenud kasutajatele mõeldud valikuga, tekitab selle välja juhuslik tühjaksjätmine väga sageli probleeme. See tasuks ära märkida, kui &kdevelop; ei kutsu välja vajalikku käivitatavat faili.

- ##### Keskkonnamuutujad

  &kdevelop; loob spetsiaalse keskkonna, milles rakendus tööle panna. Siin saab määrata täiendavad keskkonnamuutujad.

- ##### Muud

  Dialoogi allservas on veel kaks märkekasti.

  - Automaatne kompileerimine enne käivitamist on enamasti mõttekas valik. &kdevelop; kontrollib projektis muutusi ja sooritab vajaduse korral konfigureerimise ja ehitamise, kui annad käsu rakendus käivitada.

    Märge tasuks kastist eemaldada juihul, kui soovid käivitada rakenduse viimase muutmise eelse versiooni.

  - Käivitamine välises terminalis pakub huvi juhul, kui soovid testida mittegraafilise rakenduse sisendi ja väljundi käitumist konsoolis. Vaikimisi ei ole see sisse lülitatud, mistõttu &kdevelop; käivitab rakenduse omaenda aknas, kus puuduvad konsooliterminali sisendi/väljundi võimalused.

## Projekti laiendamine — Automake'i haldur

(- veel kirjutamata -)

### Kiirülevaade Automake'i tegevusest

(- veel kirjutamata -)

### Ikoonide asetamine eraldi kataloogi

(- veel kirjutamata -)

### Uute klasside lisamine

(- veel kirjutamata -)

Ole klassi failinimede valimisel väga hoolikas. Hiljem on neid väga keeruline muuta.

### Alamprojekti sisu

(- veel kirjutamata -)

#### Keskendumine tööle — aktiivne sihtmärk

(- veel kirjutamata -)

### Mõned sammud projekti restruktureerimiseks

(- veel kirjutamata -)

## Silumine

(- veel kirjutamata -)

## Märkus projekti dokumentatsiooni kohta

&kde; projekt kasutab oma käsiraamatu genereerimiseks docbook'i. Käsiraamatu saab avada rakenduses menüükäsuga Abi RakenduseNimi käsiraamat, kui &kde; graafiline rakendus töötab. Pärast projekti ehitamist näeb käsiraamatut &abikeskus;es. See peaks seletama kasutajale, kuidas rakendus töötab, millised on selle peamised omadused ja kuidas seda seadistada. Samuti peaks see rääkima kogenenumatele kasutajatele mõeldud võimalustest, kui neid on.

Kõigil &kdevelop;i &kde; põhistel mallidel on alamkataloog doc, mis sisaldab kataloogis en malli `index.docbook`, mille põhjal saab asuda käsiraamatut kirjutama. Faili `index.docbook` tuleks redigeerida &kdevelop;is, alustades selliste eraandmete muutmisest, nagu nimi, e-posti aadress &etc; Uuri failis leiduvaid kommentaare ja püüa nende alusel hakata oma rakenduse dokumentatsiooni kirjutama. Kui soovid näha muudatusi &abikeskus;es, ehita projekt uuesti.

Projekt tuleb paigaldada &kdevelop;is menüükäsuga Ehitamine Paigalda või Paigalda (administraatorina), kui soovid näha käsiraamatut &abikeskus;es.

Docbook'i süntaksi kohta leiab rohkem teavet &kde; dokumentatsiooni veebileheküljelt.

## Ja viimaks - kiirklahvid

(- veel kirjutamata -)

## Kuhu edasi?

(- veel kirjutamata -)

### Sageli esinevad probleemid

- Põhitõdede peatükk
- KKK-leheküljed
- Foorum
- Postiloendid

### Projektide kasutamine

(- veel kirjutamata -)

#### Olemasolevate &kdevelop;i projektide kasutamine

(- veel kirjutamata -)

#### Väliste projektide import

(- veel kirjutamata -)