# &DCOP; funktsioonid

Marek
Laane

    bald@online.ee

Tõlge eesti keelde

# &DCOP; funktsioonid

&kommander; began accessing it's widgets internally with &DCOP;, which evolved to widget functions. &DCOP; is still available and can be used to share information between dialogs. It can also be used to extend and integrate nearly every existing KDE application. &DCOP; can be called in several ways in &kommander;. First is the console method. Open a &kommander; dialog and open a console and try this.

    dcop | grep kmdr
    dcop `dcop | grep kmdr`
    dcop `dcop | grep kmdr` KommanderIf

This will show you what dialogs are running and what interfaces are available, as well as what is available to call in the &kommander; special interface to internals. In the explanation of &DCOP; here remember that &DCOP; is used internally by KDE applications (replaced with DBUS in KDE4) and it is very useful. Have a look at `kdcop` by pressing Alt-F2 and typing it in a run dialog. Here you can explore everything running. Now back to &DCOP; in &kommander;.

dcop kmdr-executor-@pid KommanderIf setText myWidget new text

See eeldab, et oled &kommander;i failis ja sul on ligipääs spetsiaalselt @pid-ile, mis sisaldab protsessi ID-d. Tegelikult on lihtsam asendada kmdr-executor-@pid @dcopid-ga. Aga igal juhul on võimalik seda süntaksit kasutada (küll ilma erideta) käsurealt või mis tahes välisest skriptist, et muuta &kommander;i akent.

&kommander; evolved the much faster internal &DCOP; function. Using it from another application window (console &DCOP; is very slow) is more complicated because you must give lots of information, including a prototype of the call. The above call would become: (Note that @dcopid is actually internal to the dialog, but you could replace it with a valid process ID)

@dcop(@dcopid, KommanderIf, enableWidget(QString, tõeväärtus), Vidin, true)

In the early &kommander; nesting &DCOP; calls inside script language structures (like bash) used console method calls. If you use internal &DCOP; all &kommander; specials will be executed first and then the script will be executed. Please read that again as it will cause you no end of grief with a bash loop using &kommander; specials.

On ka uus ja lihtsam viis kasutada &DCOP;-i &kommander;is endas, mida võimaldab objektsüntaks. Oletame, et soovid muuta teksti vidinas nimega @LineEdit1. See käib järgmiselt.

@LineEdit1.setText(New text)

Nagu näed, on uus süntaks väga lihtne ja visuaalselt funktsioonigruppidega kooskõlas. Kõik siintoodud &DCOP; viited kasutavad sellist objektisüntaksit. Palun arvesta, et kui viitad &DCOP;-i muust aknast või rakendusest kasutades vidinale, peab esimene parameeter olema alati vidina nimi. Kõik siin toodud funktsioonid algavad teise parameetriga.

## &DCOP; globaalsete muutujatele

global(QString muutujaNimi)

  Returns the value of the specified global variable. When a script is run from within a &kommander; window any (non-global) variables set in that script will cease to exist after the script completes and therfore will not be available to other script processes or in a new instance of the calling process. The global scope means the variable will exist for any process of the window until that window is closed. You may change these variables at any time with a new call to `@setGlobal`.

setGlobal(QString muugujaNimi, QString väärtus)

  Loob muutuja, mis on akna protsessile globaalne ja omistab sellele väärtuse, Väärtuse saab hankida global(QString muutujaNimi) abil võika uuesti määrata.

## &DCOP; kõigile vidinatele

The following list is old and left here for reference purposes only. For a complete and current reference to all widget functions please look at the Function Browser which is available from any &kommander; text editor window by pressing the lower left button. These are now widget functions, not &DCOP; functions but the &DCOP; functions are published in the KommanderIf &DCOP; interface as described above. Dialogs for listing and constructing calls for this functionality are available at our web site.

setText(QString text)

  This removes the text displayed in the widget and replaces it with the text supplied.

enableWidget(tõeväärtus enable)

  Lubab või keelab elemendi.

associatedText

  Tagastab määratud vidinaga seostatud teksti. See ei ole mitte sama, mis näidatav tekst. See võib olla @widgetText või tekst ja/või skript, mida kasutatakse näidatava väärtuseni jõudmiseks.

setAssociatedText(QString tekst)

  See määrab &kommander;i vaiketekstistringi. Tavaliselt määratakse selleks @widgetText, et näidata vidinasse sisestatut. Vaevalt sul seda eriti vaja läheb, aga igatahes on see olemas. Saab kasutada kõigi andmeid sisaldavate vidinate korral.

## &DCOP; loendikasti ja liitkasti vidinale

addListItem(QString element, int index)

  Lisab elemendi loendikasti vidinasse määratud indeksiga. Loendi indeks algab nullist. Loendi lõppu lisamiseks anna -1.

addListItems(QStringList elemendid, int index)

  Lisab korraga terve stringide loendi. Loendis tuleb kasutada eraldajana EOL-i (\n - reavahetused). See on hea juhul, kui soovid Bashi muretult loendi tuletamiseks kasutada. Näiteks elementide korral @exec(ls -l ~/projects | grep kmdr) kasutades saad oma projektikataloogi &kommander;i failide nimekirja. Loendi indeks algab nulliga. Loendi lõppu lisamiseks anna -1.

addUniqueItem(QString element)

  addUniqueItem lisab elemendi loendi lõppu ainult siis, kui see on unikaalne.

clearList

  Eemaldab kõik elemendid.

removeListItem(int index)

  Eemaldab antud indeksiga elemendi.

item(int index)

  Tagastab antud indeksiga elemendi teksti.

setCurrentListItem(int index)

  Määrab aktiivse (või valitud) elemendi määratud indeksile. Saab kasutada loendikasti ja liitkasti vidina korral.

## &DCOP; märkekasti ja raadionupu vidinale

setChecked(QString elemendiNimi, tõeväärtus checked)

  Märgib või eemaldab märke märkekasti või raadionupu elemendilt.

## &DCOP; kaardividinale

setCurrentTab(QString elemendiNimi, int index)

  Valib kaardi indeksi järgi kaardividinalde. Indeks algab nulliga.