diff options
author | OLFDB <olf@eisenzelt.de> | 2021-09-20 06:56:53 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-09-20 06:56:53 +0200 |
commit | da80ff703d7a6319f3e8b94bd35d8daced649100 (patch) | |
tree | 9e4e5db7bc0b7ac984d0583ec8902ac735328ab5 | |
parent | 91280a376216fe560ad2c0d95342b7ff068576e3 (diff) | |
download | navit-da80ff703d7a6319f3e8b94bd35d8daced649100.tar.gz |
Add:gui/internal: New attribute for gui tag town_use_postal (#1156)
If set to 0 navit will use the old town search method which will speed up the search on low performance hardware. Available only with gui_internal.
<gui type="internal" enabled="yes" town_use_postal="0">
-rw-r--r-- | navit/attr_def.h | 1 | ||||
-rw-r--r-- | navit/gui/internal/gui_internal.c | 8 | ||||
-rw-r--r-- | navit/gui/internal/gui_internal_priv.h | 1 | ||||
-rw-r--r-- | navit/gui/internal/gui_internal_search.c | 9 |
4 files changed, 17 insertions, 2 deletions
diff --git a/navit/attr_def.h b/navit/attr_def.h index e5f3033ff..951b57060 100644 --- a/navit/attr_def.h +++ b/navit/attr_def.h @@ -267,6 +267,7 @@ ATTR(has_menu_button) ATTR(oneway) ATTR(tunnel_nightlayout) ATTR(layout_daynightauto) +ATTR(town_use_postal) ATTR2(0x0002ffff,type_int_end) ATTR2(0x00030000,type_string_begin) ATTR(type) diff --git a/navit/gui/internal/gui_internal.c b/navit/gui/internal/gui_internal.c index e8759f3d3..bb28c2e84 100644 --- a/navit/gui/internal/gui_internal.c +++ b/navit/gui/internal/gui_internal.c @@ -2294,6 +2294,9 @@ static int gui_internal_set_attr(struct gui_priv *this, struct attr *attr) { case attr_menu_on_map_click: this->menu_on_map_click=attr->u.num; return 1; + case attr_town_use_postal: + this->town_use_postal=attr->u.num; + return 1; case attr_on_map_click: g_free(this->on_map_click); this->on_map_click=g_strdup(attr->u.str); @@ -3282,6 +3285,11 @@ static struct gui_priv * gui_internal_new(struct navit *nav, struct gui_methods else this->hide_keys = 0; + if((attr=attr_search(attrs, attr_town_use_postal))) + this->town_use_postal = attr->u.num; + else + this->town_use_postal = 1; + this->data.priv=this; this->data.gui=&gui_internal_methods_ext; this->data.widget=&gui_internal_widget_methods; diff --git a/navit/gui/internal/gui_internal_priv.h b/navit/gui/internal/gui_internal_priv.h index d28cac649..ceb5db986 100644 --- a/navit/gui/internal/gui_internal_priv.h +++ b/navit/gui/internal/gui_internal_priv.h @@ -146,6 +146,7 @@ struct gui_priv { int hide_keys; //Flag to set the keyboard mode 1: hide impossible keys on search; 0: highlight them. int results_map_population; + int town_use_postal; }; struct menu_data { diff --git a/navit/gui/internal/gui_internal_search.c b/navit/gui/internal/gui_internal_search.c index 66524e407..12a941afb 100644 --- a/navit/gui/internal/gui_internal_search.c +++ b/navit/gui/internal/gui_internal_search.c @@ -428,8 +428,13 @@ static void gui_internal_search_changed(struct gui_priv *this, struct widget *wm dbg(lvl_debug,"process"); if (! strcmp(wm->name,"Country")) search_attr.type=attr_country_all; - if (! strcmp(wm->name,"Town")) - search_attr.type=attr_town_postal; /*attr_town_or_district_name to exclude zip code*/ + if (! strcmp(wm->name,"Town")) { + if(this->town_use_postal) { + search_attr.type=attr_town_postal; /*attr_town_or_district_name to exclude zip code*/ + } else { + search_attr.type=attr_town_or_district_name; + } + } if (! strcmp(wm->name,"Street")) search_attr.type=attr_street_name; if (! strcmp(wm->name,"House number")) |