# &DCOP;-functies

&Sander.Koning;

# &DCOP;-functies

&DCOP; kan op diverse manieren worden aangeroepen in &kommander;. De eerste is de console-methode.

dcop kmdr-executor-@pid KommanderIf changeWidgetText myWidget nieuwe tekst

Dit neemt aan dat u zich in een &kommander;-bestand bevindt en toegang hebt tot de special @pid die het proces-ID bevat. In feite is het eenvoudiger om kmdr-executor-@pid door @dcopid te vervangen. Maar u kunt deze syntax (uiteraard zonder de specials) vanaf de opdrachtregel of een willekeurig extern script gebruiken om het &kommander;-venster te wijzigen.

Omdat &kommander; geen volledige parser bevat in de alfa-stage, is het gecompliceerder als u de veel snellere interne &DCOP; wilt gebruiken vanuit een ander toepassingsventer (console-&DCOP; is zeer langzaam) omdat u veel informatie moet meegeven, waaronder een prototype van de aanroep. De bovenstaande aanroep zou worden:

@dcop(@dcopid, KommanderIf, enableWidget(QString, bool), Widget, true)

Op het moment dat dit geschreven wordt, moet u erop letten dat het nesten van &DCOP;-aanroepen binnen scripttalen (zoals bash) betekent dat u de console-aanroepmethode moet gebruiken. Als u interne &DCOP; gebruikt worden eerst alle &kommander;-specials uitgevoerd en daarna wordt het script uitgevoerd.

Er is een nieuwe vereenvoudigde manier om &DCOP; te gebruiken binnen &kommander; door gebruik te maken van een object-syntaxis. Stel dat u de tekst in een widget genaamd @LineEdit1 wilt wijzigen. Dat ziet er als volgt uit:

@LineEdit1.changeWidgetText(New text)

Zoals u kunt zien is de nieuwe syntaxis erg eenvoudig en visueel consistent met functiegroepen. Alle &DCOP;-beschrijvingen hier gebruiken de nieuwe objectsyntaxis zoals hierboven aangegeven. Let erop dat, als u naar een widget verwijst door gebruikmaking van &DCOP; vanuit een ander venster of een andere toepassing, de eerste parameter altijd de widgetnaam is. Alle functies worden hier beschreven beginnend met de tweede parameter.

## &DCOP; voor globale variabelen

global(QString variableName)

  Retourneert de waarde van de opgegeven globale variabele. Als een script vanuit een &kommander;-venster wordt uitgevoerd, zullen alle (niet-globale) variabelen die in dat script zijn ingesteld, ophouden te bestaan en zullen daarom niet beschikbaar zijn in andere scriptprocessen of in een nieuwe instantie van het aanroepende proces. De globale scope (zichtbaarheid) betekent dat de variabele bestaat in elk proces van dat venster totdat het venster gesloten wordt. U kunt deze variabelen op elk moment wijzigen met een nieuwe aanroep naar `@setGlobal`.

setGlobal(QString variableName, QString value)

  Maakt een variabele aan die globaal is voor het vensterproces en wijst de waarde eraan toe. Deze waarde kan worden opgevraagd met global(QString variableName) of opnieuw ingesteld worden.

## &DCOP; voor alle widgets

changeWidgetText(QString text)

  Dit zou hernoemd moeten worden naar setWidgetText en deze naam zal mogelijk afgeraden worden. Dit verwijdert de tekst die in de widget wordt weergegeven en vervangt deze door de opgegeven tekst.

enableWidget(bool enable)

  Schakelt een widget in of uit.

associatedText

  Retourneert tekst die met de opgegeven widget geassocieerd is. Dit is niet hetzelfde als de weergegeven tekst. Dit zal @widgetText zijn of de tekst en/of scripting die gebruikt is om op de weergegeven waarde te komen.

setAssociatedText(QString text)

  Dit stelt de standaard tekenreeks voor de &kommander; Text in. Dit is typisch @widgetText om weer te geven wat er in het widget is ingevoerd. Het is onwaarschijnlijk dat u dit vaak nodig hebt, maar het is er voor het geval dat u het nodig hebt. Toepasbaar op alle widgets die data kunnen bevatten.

## &DCOP; voor ListBox- en ComboBox-widgets

addListItem(QString item, int index)

  Voegt een item aan een ListBox-widget toe op de opgegeven index. De lijstindex begint op nul. Om aan het einde van de lijst toe te voegen gebruikt u -1.

addListItems(QStringList items, int index)

  Dit voegt een lijst met tekenreeksen in één keer toe. De lijst moet gescheiden zijn door EOL-tekens (\n - regeleindes). Dit is handig omdat u vrij eenvoudig bash kunt gebruiken om de lijst te verkrijgen. Bijvoorbeeld, als u @exec(ls -l ~/projecten | grep kmdr) als items gebruikt krijgt u een lijst van &kommander;-bestanden in uw projectenmap. De lijstindex begint bij nul. Gebruik -1 om aan het eind van de lijst toe te voegen.

addUniqueItem(QString item)

  addUniqueItem voegt een item aan het einde van de lijst toe alleen als dit nog niet eerder voorkomt.

clearList

  Verwijdert alle items.

removeListItem(int index)

  Verwijdert het item op de opgegeven index.

item(int index)

  Retourneert de tekst van het item op de opgegeven index.

setCurrentListItem(int index)

  Stel het huidige (geselecteerde) item in op de opgegeven index. Toepasbaar op ListBox- en ComboBox-widgets.

## &DCOP; voor CheckBox- en RadioButton-widgets

setChecked(QString widgetName, bool checked)

  Schakelt CheckBox- of RadioButton-widgets in en uit.

## &DCOP; voor TabWidget-widgets

setCurrentTab(QString widgetName, int index)

  Stelt het geselecteerde tabblad in voor TabWidgets. De index begint bij 0.