void BackendGoogleMaps::saveSettingsToGroup(KConfigGroup* const group) { KGEOMAP_ASSERT(group != 0); if (!group) return; group->writeEntry("GoogleMaps Map Type", getMapType()); group->writeEntry("GoogleMaps Show Map Type Control", d->cacheShowMapTypeControl); group->writeEntry("GoogleMaps Show Navigation Control", d->cacheShowNavigationControl); group->writeEntry("GoogleMaps Show Scale Control", d->cacheShowScaleControl); }
void BackendGoogleMaps::updateActionAvailability() { if ( (!d->activeState) || (!isReady()) ) { return; } const QString currentMapType = getMapType(); const QList<QAction*> mapTypeActions = d->mapTypeActionGroup->actions(); for (int i = 0; i < mapTypeActions.size(); ++i) { mapTypeActions.at(i)->setChecked(mapTypeActions.at(i)->data().toString()==currentMapType); } s->worldMapWidget->getControlAction(QLatin1String("zoomin"))->setEnabled(true/*d->cacheZoom<d->cacheMaxZoom*/); s->worldMapWidget->getControlAction(QLatin1String("zoomout"))->setEnabled(true/*d->cacheZoom>d->cacheMinZoom*/); }
/** * Convert a map to a JavaScript Object * * @param cx the JavaScript context * @param t the map to convert * @return a new JavaScript Object */ JSObject* JSObject_FromMap(JSContext *cx,map* t){ JSObject* res=JS_NewObject(cx, NULL, NULL, NULL); map* tmpm=t; map* isArray=getMap(t,"isArray"); map* isBinary=getMap(t,"size"); map* tmap=getMapType(t); #ifdef JS_DEBUG if(tmap==NULL) fprintf(stderr,"tmap is null !\n"); else fprintf(stderr,"tmap is not null ! (%s = %s)\n",tmap->name,tmap->value); #endif while(isArray==NULL && tmpm!=NULL){ jsval jsstr; if(isBinary!=NULL && strncasecmp(tmpm->name,"value",5)==0) jsstr = STRING_TO_JSVAL(JS_NewStringCopyN(cx,tmpm->value,atoi(isBinary->value))); else jsstr = STRING_TO_JSVAL(JS_NewStringCopyN(cx,tmpm->value,strlen(tmpm->value))); JS_SetProperty(cx, res, tmpm->name,&jsstr); #ifdef JS_DEBUG fprintf(stderr,"[JS] %s => %s\n",tmpm->name,tmpm->value); #endif tmpm=tmpm->next; } if(isArray!=NULL){ map* len=getMap(t,"length"); int cnt=atoi(len->value); JSObject* values=JS_NewArrayObject( cx, cnt, NULL ); JSObject* mvalues=JS_NewArrayObject( cx, cnt, NULL ); map *tmpm1,*tmpm2,*tmpm3; int i=0; for(i=0;i<cnt;i++){ tmpm1=getMapArray(t,"value",i); tmpm2=getMapArray(t,tmap->name,i); tmpm3=getMapArray(t,"size",i); if(tmpm1!=NULL){ jsval jsstr; if(tmpm3!=NULL) jsstr = STRING_TO_JSVAL(JS_NewStringCopyN(cx,tmpm1->value,atoi(tmpm3->value))); else jsstr = STRING_TO_JSVAL(JS_NewStringCopyN(cx,tmpm1->value,strlen(tmpm1->value))); JS_SetElement( cx, values, i, &jsstr ); } if(tmpm2!=NULL){ jsval jsstr = STRING_TO_JSVAL(JS_NewStringCopyN(cx,tmpm2->value,strlen(tmpm2->value))); JS_SetElement( cx, mvalues, i, &jsstr ); } } jsval jvalues=OBJECT_TO_JSVAL(values); jsval jmvalues=OBJECT_TO_JSVAL(mvalues); JS_SetProperty(cx, res,"value",&jvalues); JS_SetProperty(cx, res,tmap->name,&jmvalues); while(tmpm!=NULL){ if(strncasecmp(tmpm->name,"value",5)!=0 && strncasecmp(tmpm->name,"size",4)!=0 && strncasecmp(tmpm->name,tmap->name,strlen(tmap->name))!=0){ jsval jsstr = STRING_TO_JSVAL(JS_NewStringCopyN(cx,tmpm->value,strlen(tmpm->value))); JS_SetProperty(cx, res, tmpm->name,&jsstr); } #ifdef JS_DEBUG fprintf(stderr,"[JS] %s => %s\n",tmpm->name,tmpm->value); #endif tmpm=tmpm->next; } } return res; }
/** * Convert a map to a Ruby Hash * * @param t the map to convert * @return a new Ruby Hash */ VALUE RubyHash_FromMap(map* t){ VALUE res=rb_hash_new( ); map* tmp=t; int hasSize=0; map* isArray=getMap(tmp,"isArray"); map* size=getMap(tmp,"size"); map* tmap=getMapType(tmp); while(tmp!=NULL){ VALUE name= rb_str_new2(tmp->name); if(strcasecmp(tmp->name,"value")==0) { if(isArray!=NULL){ map* len=getMap(tmp,"length"); int cnt=atoi(len->value); VALUE value=rb_ary_new2(cnt); VALUE mvalue=rb_ary_new2(cnt); VALUE svalue=rb_ary_new2(cnt); for(int i=0;i<cnt;i++){ map* vMap=getMapArray(tmp,"value",i); map* sMap=getMapArray(tmp,"size",i); if(vMap!=NULL){ VALUE lvalue; VALUE lsvalue; if(sMap==NULL){ lvalue=rb_str_new2(vMap->value); lsvalue=Qnil; } else{ lvalue=rb_str_new(vMap->value,atoi(sMap->value)); lsvalue=rb_str_new2(sMap->value); hasSize=1; } rb_ary_push(value,lvalue); rb_ary_push(svalue,lsvalue); } map* mMap=getMapArray(tmp,tmap->name,i); VALUE lmvalue; if(mMap!=NULL){ lmvalue=rb_str_new2(mMap->value); }else lmvalue=Qnil; rb_ary_push(mvalue,lmvalue); } rb_hash_aset(res, name, mvalue); rb_hash_aset(res, rb_str_new2(tmap->name), mvalue); if(hasSize>0){ VALUE lname=rb_str_new2("size"); rb_hash_aset(res, lname, value); } } else if(size!=NULL){ VALUE value=rb_str_new(tmp->value,atoi(size->value)); rb_hash_aset(res, name, value); } else{ VALUE value=rb_str_new2(tmp->value); rb_hash_aset(res, name, value); } } else{ VALUE value=rb_str_new2(tmp->value); rb_hash_aset(res, name, value); } tmp=tmp->next; } return res; }