[gnome-control-center] printers: Filter the printer-location in the search
- From: Felipe Borges <felipeborges src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-control-center] printers: Filter the printer-location in the search
- Date: Wed, 10 May 2017 09:05:53 +0000 (UTC)
commit 870b4e71907dd8c54142901edf69312479df93a8
Author: Felipe Borges <felipeborges gnome org>
Date: Tue Mar 14 12:35:04 2017 +0100
printers: Filter the printer-location in the search
Show printer search results where the searched string matches
the printer-location.
https://bugzilla.gnome.org/show_bug.cgi?id=779656
panels/printers/cc-printers-panel.c | 14 +++++++++++++-
panels/printers/pp-printer-entry.c | 18 +++++++++++++++++-
2 files changed, 30 insertions(+), 2 deletions(-)
---
diff --git a/panels/printers/cc-printers-panel.c b/panels/printers/cc-printers-panel.c
index 7cb001a..4306829 100644
--- a/panels/printers/cc-printers-panel.c
+++ b/panels/printers/cc-printers-panel.c
@@ -948,7 +948,9 @@ filter_function (GtkListBoxRow *row,
gboolean retval;
gchar *search;
gchar *name;
+ gchar *location;
gchar *printer_name;
+ gchar *printer_location;
priv = PRINTERS_PANEL_PRIVATE (self);
@@ -958,17 +960,27 @@ filter_function (GtkListBoxRow *row,
if (gtk_entry_get_text_length (GTK_ENTRY (search_entry)) == 0)
return TRUE;
- g_object_get (G_OBJECT (row), "printer-name", &printer_name, NULL);
+ g_object_get (G_OBJECT (row),
+ "printer-name", &printer_name,
+ "printer-location", &printer_location,
+ NULL);
+
name = cc_util_normalize_casefold_and_unaccent (printer_name);
+ location = cc_util_normalize_casefold_and_unaccent (printer_location);
g_free (printer_name);
+ g_free (printer_location);
search = cc_util_normalize_casefold_and_unaccent (gtk_entry_get_text (GTK_ENTRY (search_entry)));
+
retval = strstr (name, search) != NULL;
+ if (location != NULL)
+ retval = retval || (strstr (location, search) != NULL);
g_free (search);
g_free (name);
+ g_free (location);
return retval;
}
diff --git a/panels/printers/pp-printer-entry.c b/panels/printers/pp-printer-entry.c
index 86542b3..88384c4 100644
--- a/panels/printers/pp-printer-entry.c
+++ b/panels/printers/pp-printer-entry.c
@@ -88,6 +88,7 @@ G_DEFINE_TYPE (PpPrinterEntry, pp_printer_entry, GTK_TYPE_LIST_BOX_ROW)
enum {
PROP_0,
PROP_PRINTER_NAME,
+ PROP_PRINTER_LOCATION,
};
enum {
@@ -110,6 +111,9 @@ pp_printer_entry_get_property (GObject *object,
case PROP_PRINTER_NAME:
g_value_set_string (value, self->printer_name);
break;
+ case PROP_PRINTER_LOCATION:
+ g_value_set_string (value, self->printer_location);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
}
@@ -128,6 +132,9 @@ pp_printer_entry_set_property (GObject *object,
case PROP_PRINTER_NAME:
self->printer_name = g_value_dup_string (value);
break;
+ case PROP_PRINTER_LOCATION:
+ self->printer_location = g_value_dup_string (value);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -865,8 +872,9 @@ pp_printer_entry_new (cups_dest_t printer,
else
printer_icon_name = g_strdup ("printer-network");
+ g_object_set (self, "printer-location", location, NULL);
+
self->is_accepting_jobs = is_accepting_jobs;
- self->printer_location = g_strdup (location);
self->is_authorized = is_authorized;
self->printer_hostname = printer_get_hostname (printer_type, self->printer_uri, printer_uri);
@@ -1003,6 +1011,14 @@ pp_printer_entry_class_init (PpPrinterEntryClass *klass)
NULL,
G_PARAM_READWRITE));
+ g_object_class_install_property (object_class,
+ PROP_PRINTER_LOCATION,
+ g_param_spec_string ("printer-location",
+ "Printer Location",
+ "Printer location string",
+ NULL,
+ G_PARAM_READWRITE));
+
signals[IS_DEFAULT_PRINTER] =
g_signal_new ("printer-changed",
G_TYPE_FROM_CLASS (klass),
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]