Gsettings

From ICO wiki
Revision as of 01:31, 3 December 2012 by Mlepla (talk | contribs) (→‎Kirjeldus)
Jump to navigationJump to search

GSettings - on kõrgetasemeline rakendusliides, rakenduste jaoks.

Kirjeldus

GSettings on rakendusliides, mis võimaldab mugavalt salvestada ja väljavõtta rakendus seadeid.

Loeb ja kirjutab, ning võib pidada mitte-blokeeruvaks. Lugemine GSettings-us on väga kiire: on ligikaudu samas suurusjärgus (kuid aeglasem) kui GHashTable otsing. Kirjutamine on ka väga kiire juhtudel kui on vaja tagasi tuua eelnevalt salvestatud rakendusi, kuid võib olla ka väga kallis. Paljud taustaprogrammid (sh dconf) on laisk lähtestamine, mis tähendab, et kui kasutaja kasutab oma arvuti muutmata mingeid seadeid siis palju tööd saab vältida. Sest dconf, D-Busi teenust ei pea isegi alustama sel juhul. Sel põhjusel, peaks ainult GSettings ära muutma võtmed väljundi, mis selgitab kasutaja tegevust. Erilist tähelepanu tuleb pöörata, muudatustele, mis tehtud käivitamise ajal - näiteks algväärtuste määramisel. Sisseehitatud g_settings_bind () funktsiooni puhul peab olema ettevaatlik, et ta ei kirjutaks seadet, mis vastab signaalidele mis edasi teevad muudatusi, ja loovad vidinaid.

Kui loote GSettings skeemi, siis peate ära määrama võtmed seadetes , nende tüübid ja vaikeväärtused, samuti ka mõned muud andmed.

Tavaliselt skeem on fikseeritud tee, mis määrab ära kuhu seaded salvestatakse. Kuid skeeme saab ka "ümbersuunata", st ei pea ole fikseeritud tee. See on kasulik näiteks kui skeem kirjeldab "konto", ja sa tahad salvestada suvalise arvu kontosid.

Erinevalt teistest konfiguratsiooni süsteemidest (nagu GConf), GSettings ei piira võtmed põhitüüpe nagu stringid ja numbrid. GSettings salvestab väärtused nagu GVariant, ja võimaldab igale GVariantType võtmeid. Key nimed on piiratud väiketähede, numbrite ja "-". Lisaks nimed peavad algama väiketähega, ei tohi lõppeda '-', ja ei tohi sisaldada järjestikku kriipsusid.

Sarnaselt GConf, vaikeväärtusi GSettings skeemides saab lokaliseerida, kuid lokaliseeritud väärtused salvestatakse gettext kataloogidesse ja vaadata saa neid kui domeene, mis on kirjas gettext-domeeni atribuutides <schemalist> või <schema> elemendid ja kategooria, mis on täpsustatud l10n atribuut <key> elemendis.

GSettings kasutab skeeme kompaktses kahendvormis, mis on loodud glib-compile-skeemi utiliidis. Skeemi sisend on XML-vormingus, mida kirjeldab järgmine DTD:

<!ELEMENT schemalist (schema|enum)* > <!ATTLIST schemalist gettext-domain #IMPLIED >

<!ELEMENT schema (key|child|override)* > <!ATTLIST schema id CDATA #REQUIRED

                path           CDATA #IMPLIED
                gettext-domain CDATA #IMPLIED
                extends        CDATA #IMPLIED
                list-of        CDATA #IMPLIED >

<!ELEMENT enum (value*) > <!ATTLIST enum id CDATA #REQUIRED >

<!ELEMENT flags (value*) > <!ATTLIST flags id CDATA #REQUIRED >

<!ELEMENT value EMPTY > <!ELEMENT value nick #REQUIRED

               value #REQUIRED >

<!ELEMENT key (default|summary?|description?|range?|choices?|aliases?) > <!ATTLIST key name CDATA #REQUIRED

             type  CDATA #IMPLIED
             enum  CDATA #IMPLIED
             flags CDATA #IMPLIED >

<!ELEMENT default (#PCDATA) > <!ATTLIST default l10n (messages|time) #IMPLIED

                 context CDATA           #IMPLIED >

<!ELEMENT summary (#PCDATA) > <!ELEMENT description (#PCDATA) >

<!ELEMENT range EMPTY > <!ATTLIST range min CDATA #REQUIRED

               max CDATA #REQUIRED >

<!ELEMENT choices (choice+) > <!ELEMENT choice EMPTY > <!ATTLIST choice value CDATA #REQUIRED >

<!ELEMENT aliases (alias+) > <!ELEMENT alias EMPTY > <!ATTLIST alias value CDATA #REQUIRED >

<!ELEMENT child EMPTY > <!ATTLIST child name CDATA #REQUIRED

               schema CDATA #REQUIRED >

<!ELEMENT override (#PCDATA) > <!ATTLIST override name CDATA #REQUIRED

                  l10n    CDATA #IMPLIED
                  context CDATA #IMPLIED >











Marek Lepla A32