aboutsummaryrefslogtreecommitdiffstats
path: root/src/ephy-completion-model.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ephy-completion-model.c')
-rw-r--r--src/ephy-completion-model.c63
1 files changed, 16 insertions, 47 deletions
diff --git a/src/ephy-completion-model.c b/src/ephy-completion-model.c
index aae28ab98..d0dbda345 100644
--- a/src/ephy-completion-model.c
+++ b/src/ephy-completion-model.c
@@ -279,23 +279,12 @@ init_text_col (GValue *value, EphyNode *node, int group)
}
static void
-init_action_col (GValue *value, EphyNode *node, int group)
+init_action_col (GValue *value, EphyNode *node)
{
const char *text;
- switch (group)
- {
- case BOOKMARKS_GROUP:
- text = ephy_node_get_property_string
- (node, EPHY_NODE_BMK_PROP_LOCATION);
- break;
- case HISTORY_GROUP:
- text = ephy_node_get_property_string
- (node, EPHY_NODE_PAGE_PROP_LOCATION);
- break;
- default:
- text = "";
- }
+ text = ephy_node_get_property_string
+ (node, EPHY_NODE_BMK_PROP_LOCATION);
g_value_set_string (value, text);
}
@@ -353,27 +342,19 @@ init_favicon_col (EphyCompletionModel *model, GValue *value,
g_value_take_object (value, pixbuf);
}
+const GRegex *base_address_regex = NULL;
+
static gboolean
is_base_address (const char *address)
{
- int slashes = 0;
-
- if (address == NULL) return FALSE;
-
- while (*address != '\0')
- {
- if (*address == '/') slashes++;
-
- address++;
-
- /* Base uris has 3 slashes like http://www.gnome.org/ */
- if (slashes == 3)
- {
- return (*address == '\0');
- }
+ if (base_address_regex == NULL) {
+ base_address_regex = g_regex_new ("//.*/$",
+ G_REGEX_OPTIMIZE,
+ G_REGEX_MATCH_NOTEMPTY,
+ NULL);
}
- return FALSE;
+ return g_regex_match (base_address_regex, address, G_REGEX_MATCH_NOTEMPTY, NULL);
}
static void
@@ -414,24 +395,12 @@ init_relevance_col (GValue *value, EphyNode *node, int group)
}
static void
-init_url_col (GValue *value, EphyNode *node, int group)
+init_url_col (GValue *value, EphyNode *node)
{
const char *url = NULL;
- if (group == BOOKMARKS_GROUP)
- {
- url = ephy_node_get_property_string
- (node, EPHY_NODE_BMK_PROP_LOCATION);
- }
- else if (group == HISTORY_GROUP)
- {
- url = ephy_node_get_property_string
- (node, EPHY_NODE_PAGE_PROP_LOCATION);
- }
- else
- {
- url = "";
- }
+ url = ephy_node_get_property_string
+ (node, EPHY_NODE_PAGE_PROP_LOCATION);
g_value_set_string (value, url);
}
@@ -470,7 +439,7 @@ ephy_completion_model_get_value (GtkTreeModel *tree_model,
break;
case EPHY_COMPLETION_ACTION_COL:
g_value_init (value, G_TYPE_STRING);
- init_action_col (value, node, group);
+ init_action_col (value, node);
break;
case EPHY_COMPLETION_KEYWORDS_COL:
g_value_init (value, G_TYPE_STRING);
@@ -482,7 +451,7 @@ ephy_completion_model_get_value (GtkTreeModel *tree_model,
break;
case EPHY_COMPLETION_URL_COL:
g_value_init (value, G_TYPE_STRING);
- init_url_col (value, node, group);
+ init_url_col (value, node);
break;
}
}