summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOLFDB <olf@eisenzelt.de>2021-09-20 06:56:53 +0200
committerGitHub <noreply@github.com>2021-09-20 06:56:53 +0200
commitda80ff703d7a6319f3e8b94bd35d8daced649100 (patch)
tree9e4e5db7bc0b7ac984d0583ec8902ac735328ab5
parent91280a376216fe560ad2c0d95342b7ff068576e3 (diff)
downloadnavit-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.h1
-rw-r--r--navit/gui/internal/gui_internal.c8
-rw-r--r--navit/gui/internal/gui_internal_priv.h1
-rw-r--r--navit/gui/internal/gui_internal_search.c9
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"))