[tracker/nautilus-extension] plugins/nautilus: Code clean up
- From: Martyn James Russell <mr src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [tracker/nautilus-extension] plugins/nautilus: Code clean up
- Date: Mon, 14 Dec 2009 14:01:33 +0000 (UTC)
commit 5cec1a98ff05cc03530e3b2b0c9006a3b6257bf8
Author: Martyn Russell <martyn lanedo com>
Date: Mon Dec 14 14:00:59 2009 +0000
plugins/nautilus: Code clean up
- Fixed memory leaks
- Fixed coding style
- Removed duplicate code
src/plugins/nautilus/tracker-tags-add-dialog.c | 125 +++++-----
src/plugins/nautilus/tracker-tags-add-dialog.h | 23 +-
src/plugins/nautilus/tracker-tags-extension.c | 299 +++++++++++++---------
src/plugins/nautilus/tracker-tags-utils.c | 31 ++-
src/plugins/nautilus/tracker-tags-utils.h | 16 +-
src/plugins/nautilus/tracker-tags-view.c | 331 ++++++++++++------------
src/plugins/nautilus/tracker-tags-view.h | 26 +-
7 files changed, 465 insertions(+), 386 deletions(-)
---
diff --git a/src/plugins/nautilus/tracker-tags-add-dialog.c b/src/plugins/nautilus/tracker-tags-add-dialog.c
index 8af3daa..e8fde40 100644
--- a/src/plugins/nautilus/tracker-tags-add-dialog.c
+++ b/src/plugins/nautilus/tracker-tags-add-dialog.c
@@ -21,43 +21,19 @@
#include "tracker-tags-add-dialog.h"
-struct _TrackerTagsAddDialogPrivate {
- GtkWidget *entry;
-};
-
-G_DEFINE_TYPE (TrackerTagsAddDialog, tracker_tags_add_dialog, GTK_TYPE_DIALOG)
-
#define TRACKER_TAGS_ADD_DIALOG_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE((obj), TRACKER_TYPE_TAGS_ADD_DIALOG, TrackerTagsAddDialogPrivate))
-static void
-tracker_tags_add_dialog_entry_changed_cb (GtkEditable *editable, gpointer user_data)
-{
- GtkDialog *const add_dialog = GTK_DIALOG (user_data);
- GtkEntry *const entry = GTK_ENTRY (editable);
-
- if (0 == gtk_entry_get_text_length (entry))
- gtk_dialog_set_response_sensitive (add_dialog, GTK_RESPONSE_OK, FALSE);
- else
- gtk_dialog_set_response_sensitive (add_dialog, GTK_RESPONSE_OK, TRUE);
-}
-
-void
-tracker_tags_add_dialog_register_type (GTypeModule *module)
-{
- tracker_tags_add_dialog_get_type ();
-}
+struct _TrackerTagsAddDialogPrivate {
+ GtkWidget *entry;
+};
-static void
-tracker_tags_add_dialog_finalize (GObject *object)
-{
- G_OBJECT_CLASS (tracker_tags_add_dialog_parent_class)->finalize (object);
-}
+static void dialog_finalize (GObject *object);
+static void dialog_response (GtkDialog *dialog,
+ gint response_id);
+static void dialog_entry_changed_cb (GtkEditable *editable,
+ gpointer user_data);
-static void
-tracker_tags_add_dialog_response (GtkDialog *dialog, gint response_id)
-{
- gtk_widget_destroy (GTK_WIDGET (dialog));
-}
+G_DEFINE_TYPE (TrackerTagsAddDialog, tracker_tags_add_dialog, GTK_TYPE_DIALOG)
static void
tracker_tags_add_dialog_class_init (TrackerTagsAddDialogClass *klass)
@@ -65,42 +41,40 @@ tracker_tags_add_dialog_class_init (TrackerTagsAddDialogClass *klass)
GObjectClass *const gobject_class = G_OBJECT_CLASS (klass);
GtkDialogClass *const dialog_class = GTK_DIALOG_CLASS (klass);
- gobject_class->finalize = tracker_tags_add_dialog_finalize;
- dialog_class->response = tracker_tags_add_dialog_response;
+ gobject_class->finalize = dialog_finalize;
+ dialog_class->response = dialog_response;
g_type_class_add_private (gobject_class, sizeof (TrackerTagsAddDialogPrivate));
- tracker_tags_add_dialog_parent_class = g_type_class_peek_parent (klass);
+ /* tracker_tags_add_dialog_parent_class = g_type_class_peek_parent (klass); */
}
static void
-tracker_tags_add_dialog_init (TrackerTagsAddDialog *add_dialog)
+tracker_tags_add_dialog_init (TrackerTagsAddDialog *dialog)
{
- TrackerTagsAddDialogPrivate *const priv = TRACKER_TAGS_ADD_DIALOG_GET_PRIVATE (add_dialog);
GtkWidget *action_area;
- GtkWidget *dialog;
GtkWidget *hbox;
GtkWidget *label;
GtkWidget *vbox;
- add_dialog->priv = priv;
+ dialog->private = TRACKER_TAGS_ADD_DIALOG_GET_PRIVATE (dialog);
- gtk_container_set_border_width (GTK_CONTAINER (add_dialog), 5);
- gtk_window_set_destroy_with_parent (GTK_WINDOW (add_dialog), TRUE);
- gtk_window_set_modal (GTK_WINDOW (add_dialog), TRUE);
- gtk_window_set_title (GTK_WINDOW (add_dialog), N_("Add Tag"));
- gtk_window_set_resizable (GTK_WINDOW (add_dialog), FALSE);
- gtk_dialog_set_has_separator (GTK_DIALOG (add_dialog), FALSE);
- gtk_dialog_add_button (GTK_DIALOG (add_dialog), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL);
- gtk_dialog_add_button (GTK_DIALOG (add_dialog), GTK_STOCK_OK, GTK_RESPONSE_OK);
- gtk_dialog_set_default_response (GTK_DIALOG (add_dialog), GTK_RESPONSE_OK);
- gtk_dialog_set_response_sensitive (GTK_DIALOG (add_dialog), GTK_RESPONSE_OK, FALSE);
+ gtk_container_set_border_width (GTK_CONTAINER (dialog), 5);
+ gtk_window_set_destroy_with_parent (GTK_WINDOW (dialog), TRUE);
+ gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
+ gtk_window_set_title (GTK_WINDOW (dialog), N_("Add Tag"));
+ gtk_window_set_resizable (GTK_WINDOW (dialog), FALSE);
+ gtk_dialog_set_has_separator (GTK_DIALOG (dialog), FALSE);
+ gtk_dialog_add_button (GTK_DIALOG (dialog), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL);
+ gtk_dialog_add_button (GTK_DIALOG (dialog), GTK_STOCK_OK, GTK_RESPONSE_OK);
+ gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_OK);
+ gtk_dialog_set_response_sensitive (GTK_DIALOG (dialog), GTK_RESPONSE_OK, FALSE);
- action_area = gtk_dialog_get_action_area (GTK_DIALOG (add_dialog));
+ action_area = gtk_dialog_get_action_area (GTK_DIALOG (dialog));
gtk_container_set_border_width (GTK_CONTAINER (action_area), 5);
gtk_box_set_spacing (GTK_BOX (action_area), 6);
- vbox = gtk_dialog_get_content_area (GTK_DIALOG (add_dialog));
+ vbox = gtk_dialog_get_content_area (GTK_DIALOG (dialog));
gtk_box_set_spacing (GTK_BOX (vbox), 2);
hbox = gtk_hbox_new (FALSE, 12);
@@ -110,16 +84,49 @@ tracker_tags_add_dialog_init (TrackerTagsAddDialog *add_dialog)
gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
- add_dialog->priv->entry = gtk_entry_new ();
- gtk_box_pack_start (GTK_BOX (hbox), add_dialog->priv->entry, TRUE, TRUE, 0);
- g_signal_connect (add_dialog->priv->entry,
- "changed",
- G_CALLBACK (tracker_tags_add_dialog_entry_changed_cb),
- add_dialog);
+ dialog->private->entry = gtk_entry_new ();
+ gtk_entry_set_activates_default (GTK_ENTRY (dialog->private->entry), TRUE);
+ gtk_box_pack_start (GTK_BOX (hbox), dialog->private->entry, TRUE, TRUE, 0);
+ g_signal_connect (dialog->private->entry, "changed",
+ G_CALLBACK (dialog_entry_changed_cb),
+ dialog);
gtk_widget_show_all (vbox);
}
+static void
+dialog_finalize (GObject *object)
+{
+ G_OBJECT_CLASS (tracker_tags_add_dialog_parent_class)->finalize (object);
+}
+
+static void
+dialog_response (GtkDialog *dialog,
+ gint response_id)
+{
+ gtk_widget_destroy (GTK_WIDGET (dialog));
+}
+
+static void
+dialog_entry_changed_cb (GtkEditable *editable,
+ gpointer user_data)
+{
+ GtkDialog *dialog = GTK_DIALOG (user_data);
+ GtkEntry *entry = GTK_ENTRY (editable);
+
+ if (gtk_entry_get_text_length (entry) < 1) {
+ gtk_dialog_set_response_sensitive (dialog, GTK_RESPONSE_OK, FALSE);
+ } else {
+ gtk_dialog_set_response_sensitive (dialog, GTK_RESPONSE_OK, TRUE);
+ }
+}
+
+void
+tracker_tags_add_dialog_register_type (GTypeModule *module)
+{
+ tracker_tags_add_dialog_get_type ();
+}
+
GtkWidget *
tracker_tags_add_dialog_new (void)
{
@@ -129,5 +136,5 @@ tracker_tags_add_dialog_new (void)
const gchar *
tracker_tags_add_dialog_get_text (TrackerTagsAddDialog *add_dialog)
{
- return gtk_entry_get_text (GTK_ENTRY (add_dialog->priv->entry));
+ return gtk_entry_get_text (GTK_ENTRY (add_dialog->private->entry));
}
diff --git a/src/plugins/nautilus/tracker-tags-add-dialog.h b/src/plugins/nautilus/tracker-tags-add-dialog.h
index 2743401..1d76018 100644
--- a/src/plugins/nautilus/tracker-tags-add-dialog.h
+++ b/src/plugins/nautilus/tracker-tags-add-dialog.h
@@ -17,11 +17,13 @@
*
*/
-#ifndef TRACKER_TAGS_ADD_DIALOG_H
-#define TRACKER_TAGS_ADD_DIALOG_H
+#ifndef __TRACKER_TAGS_ADD_DIALOG_H__
+#define __TRACKER_TAGS_ADD_DIALOG_H__
#include <gtk/gtk.h>
+G_BEGIN_DECLS
+
#define TRACKER_TYPE_TAGS_ADD_DIALOG (tracker_tags_add_dialog_get_type ())
#define TRACKER_TAGS_ADD_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TRACKER_TYPE_TAGS_ADD_DIALOG, TrackerTagsAddDialog))
#define TRACKER_TAGS_ADD_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TRACKER_TYPE_TAGS_ADD_DIALOG, TrackerTagsAddDialogClass))
@@ -29,23 +31,24 @@
#define TRACKER_IS_TAGS_ADD_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TRACKER_TYPE_TAGS_ADD_DIALOG))
typedef struct _TrackerTagsAddDialogPrivate TrackerTagsAddDialogPrivate;
-
typedef struct _TrackerTagsAddDialog TrackerTagsAddDialog;
typedef struct _TrackerTagsAddDialogClass TrackerTagsAddDialogClass;
struct _TrackerTagsAddDialog {
- GtkDialog parent;
- TrackerTagsAddDialogPrivate *priv;
+ GtkDialog parent;
+ TrackerTagsAddDialogPrivate *private;
};
struct _TrackerTagsAddDialogClass {
GtkDialogClass parent;
};
-GType tracker_tags_add_dialog_get_type (void);
-void tracker_tags_add_dialog_register_type (GTypeModule *module);
+GType tracker_tags_add_dialog_get_type (void);
+void tracker_tags_add_dialog_register_type (GTypeModule *module);
+
+GtkWidget *tracker_tags_add_dialog_new (void);
+const gchar *tracker_tags_add_dialog_get_text (TrackerTagsAddDialog *add_dialog);
-GtkWidget *tracker_tags_add_dialog_new (void);
-const gchar *tracker_tags_add_dialog_get_text (TrackerTagsAddDialog *add_dialog);
+G_END_DECLS
-#endif /* TRACKER_TAGS_ADD_DIALOG_H */
+#endif /* __TRACKER_TAGS_ADD_DIALOG_H__ */
diff --git a/src/plugins/nautilus/tracker-tags-extension.c b/src/plugins/nautilus/tracker-tags-extension.c
index d55eec9..6b639f9 100644
--- a/src/plugins/nautilus/tracker-tags-extension.c
+++ b/src/plugins/nautilus/tracker-tags-extension.c
@@ -1,5 +1,6 @@
/*
- * Copyright (C) 2009 Debarshi Ray <debarshir src gnome org>
+ * Copyright (C) 2009 Debarshi Ray <debarshir src gnome org>
+ * Copyright (C) 2009 Martyn Russell <martyn lanedo com>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public
@@ -17,10 +18,14 @@
*
*/
+#include "config.h"
+
#include <gtk/gtk.h>
+#include <glib/gi18n.h>
#include <libnautilus-extension/nautilus-menu-provider.h>
#include <libnautilus-extension/nautilus-property-page-provider.h>
+
#include <libtracker-client/tracker.h>
#include "tracker-tags-add-dialog.h"
@@ -30,17 +35,18 @@
#define TRACKER_TYPE_TAGS_EXTENSION (tracker_tags_extension_get_type ())
#define TRACKER_TAGS_EXTENSION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TRACKER_TYPE_TAGS_EXTENSION, TrackerTagsExtension))
#define TRACKER_TAGS_EXTENSION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TRACKER_TYPE_TAGS_EXTENSION, TrackerTagsExtensionClass))
+#define TRACKER_TAGS_EXTENSION_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE((obj), TRACKER_TYPE_TAGS_EXTENSION, TrackerTagsExtensionPrivate))
+
#define TRACKER_IS_TAGS_EXTENSION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TRACKER_TYPE_TAGS_EXTENSION))
#define TRACKER_IS_TAGS_EXTENSION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TRACKER_TYPE_TAGS_EXTENSION))
-typedef struct _TrackerTagsExtensionPrivate TrackerTagsExtensionPrivate;
-
-typedef struct _TrackerTagsExtension TrackerTagsExtension;
-typedef struct _TrackerTagsExtensionClass TrackerTagsExtensionClass;
+typedef struct _TrackerTagsExtensionPrivate TrackerTagsExtensionPrivate;
+typedef struct _TrackerTagsExtension TrackerTagsExtension;
+typedef struct _TrackerTagsExtensionClass TrackerTagsExtensionClass;
struct _TrackerTagsExtension {
- GObject parent;
- TrackerTagsExtensionPrivate *priv;
+ GObject parent;
+ TrackerTagsExtensionPrivate *private;
};
struct _TrackerTagsExtensionClass {
@@ -51,8 +57,18 @@ struct _TrackerTagsExtensionPrivate {
TrackerClient *tracker_client;
};
-static void tracker_tags_extension_menu_provider_iface_init (NautilusMenuProviderIface *iface);
-static void tracker_tags_extension_property_page_provider_iface_init (NautilusPropertyPageProviderIface *iface);
+typedef void (*MenuDataFreeFunc)(gpointer data);
+
+typedef struct {
+ gpointer data;
+ gboolean free_data;
+ GtkWidget *widget;
+} MenuData;
+
+static void tracker_tags_extension_menu_provider_iface_init (NautilusMenuProviderIface *iface);
+static void tracker_tags_extension_property_page_provider_iface_init (NautilusPropertyPageProviderIface *iface);
+static GType tracker_tags_extension_get_type (void);
+static void tracker_tags_extension_finalize (GObject *object);
G_DEFINE_DYNAMIC_TYPE_EXTENDED (TrackerTagsExtension, tracker_tags_extension, G_TYPE_OBJECT, 0,
G_IMPLEMENT_INTERFACE (NAUTILUS_TYPE_MENU_PROVIDER,
@@ -60,15 +76,45 @@ G_DEFINE_DYNAMIC_TYPE_EXTENDED (TrackerTagsExtension, tracker_tags_extension, G_
G_IMPLEMENT_INTERFACE (NAUTILUS_TYPE_PROPERTY_PAGE_PROVIDER,
tracker_tags_extension_property_page_provider_iface_init));
-#define TRACKER_TAGS_EXTENSION_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE((obj), TRACKER_TYPE_TAGS_EXTENSION, TrackerTagsExtensionPrivate))
+static MenuData *
+menu_data_new (gpointer data,
+ gboolean free_data,
+ GtkWidget *window)
+{
+ MenuData *md;
+
+ md = g_slice_new (MenuData);
+
+ md->data = data;
+ md->free_data = free_data;
+ md->widget = window;
+
+ return md;
+}
+
+static void
+menu_data_free (MenuData *md)
+{
+ if (md->free_data) {
+ g_list_free (md->data);
+ }
+
+ g_slice_free (MenuData, md);
+}
+
+static void
+menu_data_destroy (gpointer data,
+ GClosure *closure)
+{
+ menu_data_free (data);
+}
static void
-tracker_tags_extension_update_finished (GError *error, gpointer user_data)
+sparql_update_finished (GError *error,
+ gpointer user_data)
{
- if (NULL != error)
- {
- if (NULL != error->message)
- {
+ if (error != NULL) {
+ if (error->message != NULL) {
GtkWidget *error_dialog;
error_dialog = gtk_message_dialog_new (NULL,
@@ -77,36 +123,39 @@ tracker_tags_extension_update_finished (GError *error, gpointer user_data)
GTK_BUTTONS_OK,
"%s",
error->message);
- g_signal_connect (error_dialog, "response", G_CALLBACK (gtk_widget_destroy), NULL);
+ g_signal_connect (error_dialog, "response",
+ G_CALLBACK (gtk_widget_destroy),
+ NULL);
gtk_dialog_run (GTK_DIALOG (error_dialog));
}
+
g_error_free (error);
}
}
static void
-tracker_tags_extension_add_dialog_response_cb (GtkDialog *dialog, gint response_id, gpointer user_data)
+dialog_response_cb (GtkDialog *dialog,
+ gint response_id,
+ gpointer user_data)
{
- TrackerTagsExtension *const extension = TRACKER_TAGS_EXTENSION (user_data);
+ TrackerTagsExtension *extension = TRACKER_TAGS_EXTENSION (user_data);
- switch (response_id)
- {
+ switch (response_id) {
case GTK_RESPONSE_CANCEL:
case GTK_RESPONSE_DELETE_EVENT:
break;
- case GTK_RESPONSE_OK:
- {
- const gchar *query;
+ case GTK_RESPONSE_OK: {
+ gchar *query;
const gchar *tag_label;
tag_label = tracker_tags_add_dialog_get_text (TRACKER_TAGS_ADD_DIALOG (dialog));
- query = tracker_tags_utils_add_query (tag_label);
- tracker_resources_sparql_update_async (extension->priv->tracker_client,
+ query = tracker_tags_add_query (tag_label);
+ tracker_resources_sparql_update_async (extension->private->tracker_client,
query,
- tracker_tags_extension_update_finished,
+ sparql_update_finished,
NULL);
- g_free ((gpointer) query);
+ g_free (query);
break;
}
@@ -117,189 +166,199 @@ tracker_tags_extension_add_dialog_response_cb (GtkDialog *dialog, gint response_
}
static void
-tracker_tags_extension_add_activate_cb (NautilusMenuItem *menu_item, gpointer user_data)
+menu_create_tag_activate_cb (NautilusMenuItem *menu_item,
+ gpointer user_data)
{
- void **const arg = user_data;
- TrackerTagsExtension *const extension = TRACKER_TAGS_EXTENSION (arg[0]);
- GtkWindow *const window = GTK_WINDOW (arg[1]);
- GtkWidget *add_dialog;
-
- /* g_free (arg); */
-
- add_dialog = tracker_tags_add_dialog_new ();
- gtk_window_set_transient_for (GTK_WINDOW (add_dialog), window);
- g_signal_connect (add_dialog, "response", G_CALLBACK (tracker_tags_extension_add_dialog_response_cb), extension);
- gtk_widget_show_all (add_dialog);
+ MenuData *md = user_data;
+ TrackerTagsExtension *extension = TRACKER_TAGS_EXTENSION (md->data);
+ GtkWindow *window = GTK_WINDOW (md->widget);
+ GtkWidget *dialog;
+
+ dialog = tracker_tags_add_dialog_new ();
+ gtk_window_set_transient_for (GTK_WINDOW (dialog), window);
+ g_signal_connect (dialog, "response",
+ G_CALLBACK (dialog_response_cb),
+ extension);
+ gtk_widget_show_all (dialog);
}
static void
-tracker_tags_extension_manage_activate_cb (NautilusMenuItem *menu_item, gpointer user_data)
+menu_manage_tags_activate_cb (NautilusMenuItem *menu_item,
+ gpointer user_data)
{
- void **const arg = user_data;
- GList *const files = arg[0];
- GtkWindow *const window = GTK_WINDOW (arg[1]);
+ MenuData *md = user_data;
+ GList *files = md->data;
+ GtkWindow *window = GTK_WINDOW (md->widget);
GtkWidget *action_area;
- GtkWidget *manage_dialog;
+ GtkWidget *dialog;
GtkWidget *vbox;
GtkWidget *view;
- /* g_free (arg); */
-
- manage_dialog = gtk_dialog_new_with_buttons (N_("Manage Tags"),
- window,
- GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_NO_SEPARATOR,
- GTK_STOCK_CLOSE,
- NULL);
- gtk_container_set_border_width (GTK_CONTAINER (manage_dialog), 5);
- gtk_window_set_default_size (GTK_WINDOW (manage_dialog), 250, 375);
- gtk_window_set_resizable (GTK_WINDOW (manage_dialog), TRUE);
- gtk_window_set_transient_for (GTK_WINDOW (manage_dialog), window);
- g_signal_connect (manage_dialog, "response", G_CALLBACK (gtk_widget_destroy), NULL);
-
- action_area = gtk_dialog_get_action_area (GTK_DIALOG (manage_dialog));
+ dialog = gtk_dialog_new_with_buttons (N_("Manage Tags"),
+ window,
+ GTK_DIALOG_MODAL |
+ GTK_DIALOG_DESTROY_WITH_PARENT |
+ GTK_DIALOG_NO_SEPARATOR,
+ GTK_STOCK_CLOSE,
+ NULL);
+ gtk_container_set_border_width (GTK_CONTAINER (dialog), 5);
+ gtk_window_set_default_size (GTK_WINDOW (dialog), 250, 375);
+ gtk_window_set_resizable (GTK_WINDOW (dialog), TRUE);
+ gtk_window_set_transient_for (GTK_WINDOW (dialog), window);
+ g_signal_connect (dialog, "response",
+ G_CALLBACK (gtk_widget_destroy),
+ NULL);
+
+ action_area = gtk_dialog_get_action_area (GTK_DIALOG (dialog));
gtk_container_set_border_width (GTK_CONTAINER (action_area), 5);
- vbox = gtk_dialog_get_content_area (GTK_DIALOG (manage_dialog));
+ vbox = gtk_dialog_get_content_area (GTK_DIALOG (dialog));
gtk_box_set_spacing (GTK_BOX (vbox), 2);
view = tracker_tags_view_new (files);
gtk_box_pack_start (GTK_BOX (vbox), view, TRUE, TRUE, 0);
- gtk_widget_show_all (manage_dialog);
+ gtk_widget_show_all (dialog);
}
static GList *
-tracker_tags_extension_get_background_items (NautilusMenuProvider *provider,
- GtkWidget *window,
- NautilusFileInfo *current_folder)
+extension_get_background_items (NautilusMenuProvider *provider,
+ GtkWidget *window,
+ NautilusFileInfo *current_folder)
{
GList *menu_items = NULL;
NautilusMenuItem *menu_item;
- void **arg;
- if (NULL == current_folder)
+ if (current_folder == NULL) {
return NULL;
+ }
menu_item = nautilus_menu_item_new ("tracker-tags-new",
- N_("Create Tag..."),
- N_("Create a new tag for this desktop"),
+ N_("Tag..."),
+ N_("Tag one or more files"),
NULL);
menu_items = g_list_append (menu_items, menu_item);
- arg = g_new (void *, 2);
- arg[0] = provider;
- arg[1] = window;
- g_signal_connect (menu_item, "activate", G_CALLBACK (tracker_tags_extension_add_activate_cb), arg);
+
+ g_signal_connect_data (menu_item, "activate",
+ G_CALLBACK (menu_create_tag_activate_cb),
+ menu_data_new (provider, FALSE, window),
+ menu_data_destroy,
+ G_CONNECT_AFTER);
return menu_items;
}
static GList *
-tracker_tags_extension_get_file_items (NautilusMenuProvider *provider,
- GtkWidget *window,
- GList *files)
+extension_get_file_items (NautilusMenuProvider *provider,
+ GtkWidget *window,
+ GList *files)
{
GList *menu_items = NULL;
NautilusMenuItem *menu_item;
- void **arg;
- if (NULL == files)
+ if (files == NULL) {
return NULL;
+ }
menu_item = nautilus_menu_item_new ("tracker-tags-new",
- N_("Create Tag..."),
- N_("Create a new tag for this desktop"),
+ N_("Tag..."),
+ N_("Tag one or more files"),
NULL);
menu_items = g_list_append (menu_items, menu_item);
- arg = g_new (void *, 2);
- arg[0] = provider;
- arg[1] = window;
- g_signal_connect (menu_item, "activate", G_CALLBACK (tracker_tags_extension_add_activate_cb), arg);
+
+ g_signal_connect_data (menu_item, "activate",
+ G_CALLBACK (menu_create_tag_activate_cb),
+ menu_data_new (provider, FALSE, window),
+ menu_data_destroy,
+ G_CONNECT_AFTER);
menu_item = nautilus_menu_item_new ("tracker-tags-manage",
- N_("Manage Tags..."),
- N_("Change the tags attached to the selected objects"),
+ N_("Edit Tags..."),
+ N_("Manage all tags"),
NULL);
menu_items = g_list_append (menu_items, menu_item);
- arg = g_new (void *, 2);
- arg[0] = g_list_copy (files);
- arg[1] = window;
- g_signal_connect (menu_item, "activate", G_CALLBACK (tracker_tags_extension_manage_activate_cb), arg);
+
+ g_signal_connect_data (menu_item, "activate",
+ G_CALLBACK (menu_manage_tags_activate_cb),
+ menu_data_new (g_list_copy (files), TRUE, window),
+ menu_data_destroy,
+ G_CONNECT_AFTER);
return menu_items;
}
static GList *
-tracker_tags_extension_get_pages (NautilusPropertyPageProvider *provider,
- GList *files)
+extension_get_toolbar_items (NautilusMenuProvider *provider,
+ GtkWidget *window,
+ NautilusFileInfo *current_folder)
+{
+ return NULL;
+}
+
+static GList *
+extension_get_pages (NautilusPropertyPageProvider *provider,
+ GList *files)
{
GList *property_pages = NULL;
GtkWidget *label;
GtkWidget *view;
NautilusPropertyPage *property_page;
- if (NULL == files)
+ if (files == NULL) {
return NULL;
+ }
label = gtk_label_new ("Tags");
view = tracker_tags_view_new (files);
property_page = nautilus_property_page_new ("tracker-tags", label, view);
-
property_pages = g_list_prepend (property_pages, property_page);
- return property_pages;
-}
-static GList *
-tracker_tags_extension_get_toolbar_items (NautilusMenuProvider *provider,
- GtkWidget *window,
- NautilusFileInfo *current_folder)
-{
- return NULL;
+ return property_pages;
}
static void
tracker_tags_extension_menu_provider_iface_init (NautilusMenuProviderIface *iface)
{
- iface->get_file_items = tracker_tags_extension_get_file_items;
- iface->get_background_items = tracker_tags_extension_get_background_items;
- iface->get_toolbar_items = tracker_tags_extension_get_toolbar_items;
+ iface->get_file_items = extension_get_file_items;
+ iface->get_background_items = extension_get_background_items;
+ iface->get_toolbar_items = extension_get_toolbar_items;
}
static void
tracker_tags_extension_property_page_provider_iface_init (NautilusPropertyPageProviderIface *iface)
{
- iface->get_pages = tracker_tags_extension_get_pages;
+ iface->get_pages = extension_get_pages;
}
static void
-tracker_tags_extension_class_finalize (TrackerTagsExtensionClass *klass)
+tracker_tags_extension_class_init (TrackerTagsExtensionClass *klass)
{
+ GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+
+ gobject_class->finalize = tracker_tags_extension_finalize;
+ g_type_class_add_private (gobject_class, sizeof (TrackerTagsExtensionPrivate));
}
static void
-tracker_tags_extension_finalize (GObject *object)
+tracker_tags_extension_class_finalize (TrackerTagsExtensionClass *klass)
{
- TrackerTagsExtension *const extension = TRACKER_TAGS_EXTENSION (object);
-
- tracker_disconnect (extension->priv->tracker_client);
- G_OBJECT_CLASS (tracker_tags_extension_parent_class)->finalize (object);
}
static void
-tracker_tags_extension_class_init (TrackerTagsExtensionClass *klass)
+tracker_tags_extension_init (TrackerTagsExtension *self)
{
- GObjectClass *const gobject_class = G_OBJECT_CLASS (klass);
-
- gobject_class->finalize = tracker_tags_extension_finalize;
- g_type_class_add_private (gobject_class, sizeof (TrackerTagsExtensionPrivate));
+ self->private = TRACKER_TAGS_EXTENSION_GET_PRIVATE (self);
+ self->private->tracker_client = tracker_connect (TRUE, G_MAXINT);
}
static void
-tracker_tags_extension_init (TrackerTagsExtension *self)
+tracker_tags_extension_finalize (GObject *object)
{
- TrackerTagsExtensionPrivate *const priv = TRACKER_TAGS_EXTENSION_GET_PRIVATE (self);
+ TrackerTagsExtension *extension = TRACKER_TAGS_EXTENSION (object);
- self->priv = priv;
- self->priv->tracker_client = tracker_connect (TRUE, G_MAXINT);
+ tracker_disconnect (extension->private->tracker_client);
+
+ G_OBJECT_CLASS (tracker_tags_extension_parent_class)->finalize (object);
}
void
@@ -316,7 +375,7 @@ nautilus_module_shutdown (void)
void
nautilus_module_list_types (const GType **types,
- int *num_types)
+ gint *num_types)
{
static GType type_list[1];
diff --git a/src/plugins/nautilus/tracker-tags-utils.c b/src/plugins/nautilus/tracker-tags-utils.c
index 916a57c..25a780c 100644
--- a/src/plugins/nautilus/tracker-tags-utils.c
+++ b/src/plugins/nautilus/tracker-tags-utils.c
@@ -17,12 +17,15 @@
*
*/
+#include "config.h"
+
#include <string.h>
+
#include "tracker-tags-utils.h"
/* Copied from src/tracker-utils/tracker-tags.c */
-static const gchar *
-get_escaped_sparql_string (const gchar *str)
+gchar *
+tracker_tags_escape_sparql_string (const gchar *str)
{
GString *sparql;
@@ -60,13 +63,13 @@ get_escaped_sparql_string (const gchar *str)
return g_string_free (sparql, FALSE);
}
-const gchar *
-tracker_tags_utils_add_query (const gchar *tag_label)
+gchar *
+tracker_tags_add_query (const gchar *tag_label)
{
- const gchar *query;
- const gchar *tag_label_escaped;
+ gchar *query;
+ gchar *tag_label_escaped;
- tag_label_escaped = get_escaped_sparql_string (tag_label);
+ tag_label_escaped = tracker_tags_escape_sparql_string (tag_label);
query = g_strdup_printf ("INSERT { "
" _:tag a nao:Tag ;"
" nao:prefLabel %s ."
@@ -79,18 +82,18 @@ tracker_tags_utils_add_query (const gchar *tag_label)
" FILTER (!bound(?tag)) "
"}",
tag_label_escaped, tag_label_escaped);
+ g_free (tag_label_escaped);
- g_free ((gpointer) tag_label_escaped);
return query;
}
-const gchar *
-tracker_tags_utils_remove_query (const gchar *tag_label)
+gchar *
+tracker_tags_remove_query (const gchar *tag_label)
{
- const gchar *query;
- const gchar *tag_label_escaped;
+ gchar *query;
+ gchar *tag_label_escaped;
- tag_label_escaped = get_escaped_sparql_string (tag_label);
+ tag_label_escaped = tracker_tags_escape_sparql_string (tag_label);
query = g_strdup_printf ("DELETE { "
" ?tag a nao:Tag "
"} "
@@ -98,7 +101,7 @@ tracker_tags_utils_remove_query (const gchar *tag_label)
" ?tag nao:prefLabel %s "
"}",
tag_label_escaped);
+ g_free (tag_label_escaped);
- g_free ((gpointer) tag_label_escaped);
return query;
}
diff --git a/src/plugins/nautilus/tracker-tags-utils.h b/src/plugins/nautilus/tracker-tags-utils.h
index 090d1ee..4d12113 100644
--- a/src/plugins/nautilus/tracker-tags-utils.h
+++ b/src/plugins/nautilus/tracker-tags-utils.h
@@ -17,12 +17,18 @@
*
*/
-#ifndef TRACKER_TAGS_UTILS_H
-#define TRACKER_TAGS_UTILS_H
+#ifndef __TRACKER_TAGS_UTILS_H__
+#define __TRACKER_TAGS_UTILS_H__
#include <glib.h>
-const gchar *tracker_tags_utils_add_query (const gchar *tag_label);
-const gchar *tracker_tags_utils_remove_query (const gchar *tag_label);
+G_BEGIN_DECLS
-#endif /* TRACKER_TAGS_UTILS_H */
+gchar *tracker_tags_escape_sparql_string (const gchar *str);
+
+gchar *tracker_tags_add_query (const gchar *tag_label);
+gchar *tracker_tags_remove_query (const gchar *tag_label);
+
+G_END_DECLS
+
+#endif /* __TRACKER_TAGS_UTILS_H__ */
diff --git a/src/plugins/nautilus/tracker-tags-view.c b/src/plugins/nautilus/tracker-tags-view.c
index a8455d4..f832dcf 100644
--- a/src/plugins/nautilus/tracker-tags-view.c
+++ b/src/plugins/nautilus/tracker-tags-view.c
@@ -17,6 +17,8 @@
*
*/
+#include "config.h"
+
#include <string.h>
#include <libnautilus-extension/nautilus-file-info.h>
@@ -26,72 +28,30 @@
#include "tracker-tags-utils.h"
#include "tracker-tags-view.h"
-enum
-{
+#define TRACKER_TAGS_VIEW_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE((obj), TRACKER_TYPE_TAGS_VIEW, TrackerTagsViewPrivate))
+
+struct _TrackerTagsViewPrivate {
+ TrackerClient *tracker_client;
+ GList *files;
+ GtkListStore *list_store;
+ GtkWidget *remove_button;
+ gchar *selected_tag_label;
+};
+
+enum {
COLUMN_SELECTED,
COLUMN_TAG_NAME,
N_COLUMNS
};
-enum
-{
+enum {
SELECTED_INCONSISTENT = -1,
SELECTED_FALSE = 0,
SELECTED_TRUE
};
-struct _TrackerTagsViewPrivate {
- TrackerClient *tracker_client;
- GList *files;
- GtkListStore *list_store;
- GtkWidget *remove_button;
- gchar *selected_tag_label;
-};
-
G_DEFINE_TYPE (TrackerTagsView, tracker_tags_view, GTK_TYPE_VBOX);
-#define TRACKER_TAGS_VIEW_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE((obj), TRACKER_TYPE_TAGS_VIEW, TrackerTagsViewPrivate))
-
-/* Copied from src/tracker-utils/tracker-tags.c */
-static gchar *
-get_escaped_sparql_string (const gchar *str)
-{
- GString *sparql;
-
- sparql = g_string_new ("");
- g_string_append_c (sparql, '"');
-
- while (*str != '\0') {
- gsize len = strcspn (str, "\t\n\r\"\\");
- g_string_append_len (sparql, str, len);
- str += len;
- switch (*str) {
- case '\t':
- g_string_append (sparql, "\\t");
- break;
- case '\n':
- g_string_append (sparql, "\\n");
- break;
- case '\r':
- g_string_append (sparql, "\\r");
- break;
- case '"':
- g_string_append (sparql, "\\\"");
- break;
- case '\\':
- g_string_append (sparql, "\\\\");
- break;
- default:
- continue;
- }
- str++;
- }
-
- g_string_append_c (sparql, '"');
-
- return g_string_free (sparql, FALSE);
-}
-
/* Copied from src/tracker-utils/tracker-tags.c */
static gchar *
get_filter_string (GStrv files,
@@ -136,14 +96,14 @@ get_filter_string (GStrv files,
}
static void
-tracker_tags_view_check_foreach (gpointer data, gpointer user_data)
+tracker_tags_view_check_foreach (gpointer data,
+ gpointer user_data)
{
const GStrv element = data;
- TrackerTagsView *const view = TRACKER_TAGS_VIEW (user_data);
+ TrackerTagsView *view = TRACKER_TAGS_VIEW (user_data);
GList *node;
- for (node = view->priv->files; NULL != node; node = g_list_next (node))
- {
+ for (node = view->private->files; node; node = g_list_next (node)) {
gchar *uri;
gint cmp;
@@ -151,16 +111,17 @@ tracker_tags_view_check_foreach (gpointer data, gpointer user_data)
cmp = g_strcmp0 (element[0], uri);
g_free (uri);
- if (0 == cmp)
- {
- view->priv->files = g_list_delete_link (view->priv->files, node);
+ if (cmp == 0) {
+ view->private->files = g_list_delete_link (view->private->files, node);
break;
}
}
}
static void
-tracker_tags_view_query_each_tag_finished (GPtrArray *result, GError *error, gpointer user_data)
+tracker_tags_view_query_each_tag_finished (GPtrArray *result,
+ GError *error,
+ gpointer user_data)
{
void **const arg = user_data;
TrackerTagsView *const view = TRACKER_TAGS_VIEW (arg[0]);
@@ -171,56 +132,71 @@ tracker_tags_view_query_each_tag_finished (GPtrArray *result, GError *error, gpo
g_free (arg);
- if (NULL != error)
- {
- if (NULL != error->message)
- {
+ if (error != NULL) {
+ if (error->message != NULL) {
GtkWidget *error_dialog;
- error_dialog = gtk_message_dialog_new (NULL, GTK_DIALOG_NO_SEPARATOR, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "%s", error->message);
- g_signal_connect (error_dialog, "response", G_CALLBACK (gtk_widget_destroy), NULL);
+ error_dialog = gtk_message_dialog_new (NULL,
+ GTK_DIALOG_NO_SEPARATOR,
+ GTK_MESSAGE_ERROR,
+ GTK_BUTTONS_OK,
+ "%s",
+ error->message);
+ g_signal_connect (error_dialog, "response",
+ G_CALLBACK (gtk_widget_destroy), NULL);
gtk_dialog_run (GTK_DIALOG (error_dialog));
}
g_error_free (error);
goto end;
}
- files = g_list_copy (view->priv->files);
+ files = g_list_copy (view->private->files);
- pre_num = g_list_length (view->priv->files);
+ pre_num = g_list_length (view->private->files);
g_ptr_array_foreach (result, tracker_tags_view_check_foreach, view);
g_ptr_array_foreach (result, (GFunc) g_strfreev, NULL);
g_ptr_array_free (result, TRUE);
- post_num = g_list_length (view->priv->files);
-
- if (pre_num == post_num)
- gtk_list_store_set (view->priv->list_store, iter, COLUMN_SELECTED, SELECTED_FALSE, -1);
- else if (0 == post_num)
- gtk_list_store_set (view->priv->list_store, iter, COLUMN_SELECTED, SELECTED_TRUE, -1);
- else
- gtk_list_store_set (view->priv->list_store, iter, COLUMN_SELECTED, SELECTED_INCONSISTENT, -1);
+ post_num = g_list_length (view->private->files);
+
+ if (pre_num == post_num) {
+ gtk_list_store_set (view->private->list_store, iter,
+ COLUMN_SELECTED, SELECTED_FALSE,
+ -1);
+ } else if (post_num == 0) {
+ gtk_list_store_set (view->private->list_store, iter,
+ COLUMN_SELECTED, SELECTED_TRUE,
+ -1);
+ } else {
+ gtk_list_store_set (view->private->list_store, iter,
+ COLUMN_SELECTED, SELECTED_INCONSISTENT,
+ -1);
+ }
- g_list_free (view->priv->files);
- view->priv->files = files;
+ g_list_free (view->private->files);
+ view->private->files = files;
end:
gtk_tree_iter_free (iter);
}
static void
-tracker_tags_view_append_foreach (gpointer data, gpointer user_data)
+tracker_tags_view_append_foreach (gpointer data,
+ gpointer user_data)
{
const GStrv element = data;
- TrackerTagsView *const view = TRACKER_TAGS_VIEW (user_data);
+ TrackerTagsView *view = TRACKER_TAGS_VIEW (user_data);
GtkTreeIter iter;
gchar *query;
gchar *tag_escaped;
void **arg;
- gtk_list_store_append (view->priv->list_store, &iter);
- gtk_list_store_set (view->priv->list_store, &iter, COLUMN_SELECTED, SELECTED_FALSE, COLUMN_TAG_NAME, element[1], -1);
+ gtk_list_store_append (view->private->list_store, &iter);
+ gtk_list_store_set (view->private->list_store, &iter,
+ COLUMN_SELECTED, SELECTED_FALSE,
+ COLUMN_TAG_NAME, element[1],
+ -1);
- tag_escaped = get_escaped_sparql_string (element[0]);
+ tag_escaped = tracker_tags_escape_sparql_string (element[0]);
query = g_strdup_printf ("SELECT ?f "
"WHERE {"
" ?f a rdfs:Resource ;"
@@ -231,7 +207,7 @@ tracker_tags_view_append_foreach (gpointer data, gpointer user_data)
arg = g_new (void *, 2);
arg[0] = view;
arg[1] = gtk_tree_iter_copy (&iter);
- tracker_resources_sparql_query_async (view->priv->tracker_client,
+ tracker_resources_sparql_query_async (view->private->tracker_client,
query,
tracker_tags_view_query_each_tag_finished,
arg);
@@ -239,14 +215,14 @@ tracker_tags_view_append_foreach (gpointer data, gpointer user_data)
}
static void
-tracker_tags_view_query_all_tags_finished (GPtrArray *result, GError *error, gpointer user_data)
+tracker_tags_view_query_all_tags_finished (GPtrArray *result,
+ GError *error,
+ gpointer user_data)
{
- TrackerTagsView *const view = TRACKER_TAGS_VIEW (user_data);
+ TrackerTagsView *view = TRACKER_TAGS_VIEW (user_data);
- if (NULL != error)
- {
- if (NULL != error->message)
- {
+ if (error != NULL) {
+ if (error->message != NULL) {
GtkWidget *error_dialog;
error_dialog = gtk_message_dialog_new (NULL,
@@ -255,7 +231,8 @@ tracker_tags_view_query_all_tags_finished (GPtrArray *result, GError *error, gpo
GTK_BUTTONS_OK,
"%s",
error->message);
- g_signal_connect (error_dialog, "response", G_CALLBACK (gtk_widget_destroy), NULL);
+ g_signal_connect (error_dialog, "response",
+ G_CALLBACK (gtk_widget_destroy), NULL);
gtk_dialog_run (GTK_DIALOG (error_dialog));
}
g_error_free (error);
@@ -268,17 +245,18 @@ tracker_tags_view_query_all_tags_finished (GPtrArray *result, GError *error, gpo
}
static void
-tracker_tags_view_toggle_cell_data_func (GtkTreeViewColumn *column,
- GtkCellRenderer *cell_renderer,
- GtkTreeModel *tree_model,
- GtkTreeIter *iter,
- gpointer user_data)
+tracker_tags_view_toggle_cell_data_func (GtkTreeViewColumn *column,
+ GtkCellRenderer *cell_renderer,
+ GtkTreeModel *tree_model,
+ GtkTreeIter *iter,
+ gpointer user_data)
{
GValue inconsistent = {0};
gint selected;
gtk_tree_model_get (tree_model, iter, COLUMN_SELECTED, &selected, -1);
- gtk_cell_renderer_toggle_set_active (GTK_CELL_RENDERER_TOGGLE (cell_renderer), SELECTED_TRUE == selected);
+ gtk_cell_renderer_toggle_set_active (GTK_CELL_RENDERER_TOGGLE (cell_renderer),
+ SELECTED_TRUE == selected);
g_value_init (&inconsistent, G_TYPE_BOOLEAN);
g_value_set_boolean (&inconsistent, SELECTED_INCONSISTENT == selected);
@@ -286,12 +264,11 @@ tracker_tags_view_toggle_cell_data_func (GtkTreeViewColumn *column,
}
static void
-tracker_tags_view_update_finished (GError *error, gpointer user_data)
+tracker_tags_view_update_finished (GError *error,
+ gpointer user_data)
{
- if (NULL != error)
- {
- if (NULL != error->message)
- {
+ if (error != NULL) {
+ if (error->message != NULL) {
GtkWidget *error_dialog;
error_dialog = gtk_message_dialog_new (NULL,
@@ -300,36 +277,38 @@ tracker_tags_view_update_finished (GError *error, gpointer user_data)
GTK_BUTTONS_OK,
"%s",
error->message);
- g_signal_connect (error_dialog, "response", G_CALLBACK (gtk_widget_destroy), NULL);
+ g_signal_connect (error_dialog, "response",
+ G_CALLBACK (gtk_widget_destroy), NULL);
gtk_dialog_run (GTK_DIALOG (error_dialog));
}
+
g_error_free (error);
}
}
static void
-tracker_tags_view_add_dialog_response_cb (GtkDialog *dialog, gint response_id, gpointer user_data)
+tracker_tags_view_add_dialog_response_cb (GtkDialog *dialog,
+ gint response_id,
+ gpointer user_data)
{
- TrackerTagsView *const view = TRACKER_TAGS_VIEW (user_data);
+ TrackerTagsView *view = TRACKER_TAGS_VIEW (user_data);
- switch (response_id)
- {
+ switch (response_id) {
case GTK_RESPONSE_CANCEL:
case GTK_RESPONSE_DELETE_EVENT:
break;
- case GTK_RESPONSE_OK:
- {
- const gchar *query;
+ case GTK_RESPONSE_OK: {
+ gchar *query;
const gchar *tag_label;
tag_label = tracker_tags_add_dialog_get_text (TRACKER_TAGS_ADD_DIALOG (dialog));
- query = tracker_tags_utils_add_query (tag_label);
- tracker_resources_sparql_update_async (view->priv->tracker_client,
+ query = tracker_tags_add_query (tag_label);
+ tracker_resources_sparql_update_async (view->private->tracker_client,
query,
tracker_tags_view_update_finished,
NULL);
- g_free ((gpointer) query);
+ g_free (query);
break;
}
@@ -340,21 +319,26 @@ tracker_tags_view_add_dialog_response_cb (GtkDialog *dialog, gint response_id, g
}
static void
-tracker_tags_view_add_clicked_cb (GtkButton *button, gpointer user_data)
+tracker_tags_view_add_clicked_cb (GtkButton *button,
+ gpointer user_data)
{
- TrackerTagsView *const view = TRACKER_TAGS_VIEW (user_data);
+ TrackerTagsView *view = TRACKER_TAGS_VIEW (user_data);
GtkWidget *add_dialog;
add_dialog = tracker_tags_add_dialog_new ();
- gtk_window_set_screen (GTK_WINDOW (add_dialog), gtk_widget_get_screen (GTK_WIDGET (view)));
- g_signal_connect (add_dialog, "response", G_CALLBACK (tracker_tags_view_add_dialog_response_cb), view);
+ gtk_window_set_screen (GTK_WINDOW (add_dialog),
+ gtk_widget_get_screen (GTK_WIDGET (view)));
+ g_signal_connect (add_dialog, "response",
+ G_CALLBACK (tracker_tags_view_add_dialog_response_cb),
+ view);
gtk_widget_show_all (add_dialog);
}
static void
-tracker_tags_view_copy_uri_foreach (gpointer data, gpointer user_data)
+tracker_tags_view_copy_uri_foreach (gpointer data,
+ gpointer user_data)
{
- NautilusFileInfo *const file_info = NAUTILUS_FILE_INFO (data);
+ NautilusFileInfo *file_info = NAUTILUS_FILE_INFO (data);
GStrv *const arg = user_data;
gchar *uri;
@@ -364,20 +348,26 @@ tracker_tags_view_copy_uri_foreach (gpointer data, gpointer user_data)
}
static void
-tracker_tags_view_remove_clicked_cb (GtkButton *button, gpointer user_data)
+tracker_tags_view_remove_clicked_cb (GtkButton *button,
+ gpointer user_data)
{
- TrackerTagsView *const view = TRACKER_TAGS_VIEW (user_data);
+ TrackerTagsView *view = TRACKER_TAGS_VIEW (user_data);
const gchar *query;
- query = tracker_tags_utils_remove_query (view->priv->selected_tag_label);
- tracker_resources_sparql_update_async (view->priv->tracker_client, query, tracker_tags_view_update_finished, NULL);
+ query = tracker_tags_remove_query (view->private->selected_tag_label);
+ tracker_resources_sparql_update_async (view->private->tracker_client, query,
+ tracker_tags_view_update_finished,
+ NULL);
g_free ((gpointer) query);
}
static void
-tracker_tags_view_row_activated_cb (GtkTreeView *tree_view, GtkTreePath *path, GtkTreeViewColumn *column, gpointer user_data)
+tracker_tags_view_row_activated_cb (GtkTreeView *tree_view,
+ GtkTreePath *path,
+ GtkTreeViewColumn *column,
+ gpointer user_data)
{
- TrackerTagsView *const view = TRACKER_TAGS_VIEW (user_data);
+ TrackerTagsView *view = TRACKER_TAGS_VIEW (user_data);
GStrv files;
GStrv arg;
GtkTreeIter iter;
@@ -389,29 +379,30 @@ tracker_tags_view_row_activated_cb (GtkTreeView *tree_view, GtkTreePath *path, G
guint num;
tree_model = gtk_tree_view_get_model (tree_view);
- if (FALSE == gtk_tree_model_get_iter (tree_model, &iter, path))
+
+ if (gtk_tree_model_get_iter (tree_model, &iter, path) == FALSE) {
return;
+ }
gtk_tree_model_get (tree_model,
&iter,
COLUMN_SELECTED,
&selected,
COLUMN_TAG_NAME,
- &view->priv->selected_tag_label,
+ &view->private->selected_tag_label,
-1);
- selected = (SELECTED_FALSE == selected) ? SELECTED_TRUE : SELECTED_FALSE;
- gtk_list_store_set (view->priv->list_store, &iter, COLUMN_SELECTED, selected, -1);
+ selected = selected == SELECTED_FALSE ? SELECTED_TRUE : SELECTED_FALSE;
+ gtk_list_store_set (view->private->list_store, &iter, COLUMN_SELECTED, selected, -1);
- tag_label_escaped = get_escaped_sparql_string (view->priv->selected_tag_label);
+ tag_label_escaped = tracker_tags_escape_sparql_string (view->private->selected_tag_label);
- num = g_list_length (view->priv->files);
+ num = g_list_length (view->private->files);
arg = files = g_new0 (gchar *, num + 1);
- g_list_foreach (view->priv->files, tracker_tags_view_copy_uri_foreach, &arg);
+ g_list_foreach (view->private->files, tracker_tags_view_copy_uri_foreach, &arg);
filter = get_filter_string (files, NULL);
g_strfreev (files);
- if (TRUE == selected)
- {
+ if (selected == TRUE) {
query = g_strdup_printf ("INSERT { "
" ?urn nao:hasTag ?tag "
"} "
@@ -421,9 +412,7 @@ tracker_tags_view_row_activated_cb (GtkTreeView *tree_view, GtkTreePath *path, G
" %s "
"}",
tag_label_escaped, filter);
- }
- else
- {
+ } else {
query = g_strdup_printf ("DELETE { "
" ?urn nao:hasTag ?tag "
"} "
@@ -437,24 +426,32 @@ tracker_tags_view_row_activated_cb (GtkTreeView *tree_view, GtkTreePath *path, G
g_free (filter);
g_free (tag_label_escaped);
- tracker_resources_sparql_update_async (view->priv->tracker_client, query, tracker_tags_view_update_finished, NULL);
+ tracker_resources_sparql_update_async (view->private->tracker_client,
+ query,
+ tracker_tags_view_update_finished,
+ NULL);
g_free (query);
}
static void
-tracker_tags_view_selection_changed_cb (GtkTreeSelection *tree_selection, gpointer *user_data)
+tracker_tags_view_selection_changed_cb (GtkTreeSelection *tree_selection,
+ gpointer *user_data)
{
- TrackerTagsView *const view = TRACKER_TAGS_VIEW (user_data);
+ TrackerTagsView *view = TRACKER_TAGS_VIEW (user_data);
GtkTreeIter iter;
GtkTreeModel *tree_model;
- gtk_widget_set_sensitive (GTK_WIDGET (view->priv->remove_button), FALSE);
- view->priv->selected_tag_label = NULL;
- if (!gtk_tree_selection_get_selected (tree_selection, &tree_model, &iter))
+ gtk_widget_set_sensitive (GTK_WIDGET (view->private->remove_button), FALSE);
+ view->private->selected_tag_label = NULL;
+
+ if (!gtk_tree_selection_get_selected (tree_selection, &tree_model, &iter)) {
return;
+ }
- gtk_tree_model_get (tree_model, &iter, COLUMN_TAG_NAME, &view->priv->selected_tag_label, -1);
- gtk_widget_set_sensitive (GTK_WIDGET (view->priv->remove_button), TRUE);
+ gtk_tree_model_get (tree_model, &iter,
+ COLUMN_TAG_NAME, &view->private->selected_tag_label,
+ -1);
+ gtk_widget_set_sensitive (GTK_WIDGET (view->private->remove_button), TRUE);
}
void
@@ -466,18 +463,20 @@ tracker_tags_view_register_type (GTypeModule *module)
static void
tracker_tags_view_finalize (GObject *object)
{
- TrackerTagsView *const view = TRACKER_TAGS_VIEW (object);
+ TrackerTagsView *view = TRACKER_TAGS_VIEW (object);
+
+ tracker_disconnect (view->private->tracker_client);
+
+ g_list_foreach (view->private->files, (GFunc) g_object_unref, NULL);
+ g_list_free (view->private->files);
- tracker_disconnect (view->priv->tracker_client);
- g_list_foreach (view->priv->files, g_object_unref, NULL);
- g_list_free (view->priv->files);
G_OBJECT_CLASS (tracker_tags_view_parent_class)->finalize (object);
}
static void
tracker_tags_view_class_init (TrackerTagsViewClass *klass)
{
- GObjectClass *const gobject_class = G_OBJECT_CLASS (klass);
+ GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
gobject_class->finalize = tracker_tags_view_finalize;
g_type_class_add_private (gobject_class, sizeof (TrackerTagsViewPrivate));
@@ -488,7 +487,6 @@ tracker_tags_view_class_init (TrackerTagsViewClass *klass)
static void
tracker_tags_view_init (TrackerTagsView *view)
{
- TrackerTagsViewPrivate *const priv = TRACKER_TAGS_VIEW_GET_PRIVATE (view);
GtkCellRenderer *cell_renderer;
GtkTreeSelection *tree_selection;
GtkTreeViewColumn *column;
@@ -497,10 +495,10 @@ tracker_tags_view_init (TrackerTagsView *view)
GtkWidget *scrolled_window;
GtkWidget *tree_view;
- view->priv = priv;
- view->priv->tracker_client = tracker_connect (TRUE, G_MAXINT);
- view->priv->files = NULL;
- view->priv->list_store = gtk_list_store_new (N_COLUMNS, G_TYPE_INT, G_TYPE_STRING);
+ view->private = TRACKER_TAGS_VIEW_GET_PRIVATE (view);
+ view->private->tracker_client = tracker_connect (TRUE, G_MAXINT);
+ view->private->files = NULL;
+ view->private->list_store = gtk_list_store_new (N_COLUMNS, G_TYPE_INT, G_TYPE_STRING);
gtk_container_set_border_width (GTK_CONTAINER (view), 6);
gtk_box_set_homogeneous (GTK_BOX (view), FALSE);
@@ -528,7 +526,7 @@ tracker_tags_view_init (TrackerTagsView *view)
gtk_tree_view_column_add_attribute(column, cell_renderer, "text", COLUMN_TAG_NAME);
gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (tree_view), FALSE);
- gtk_tree_view_set_model (GTK_TREE_VIEW (tree_view), GTK_TREE_MODEL (view->priv->list_store));
+ gtk_tree_view_set_model (GTK_TREE_VIEW (tree_view), GTK_TREE_MODEL (view->private->list_store));
tree_selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_view));
gtk_tree_selection_set_mode (tree_selection, GTK_SELECTION_SINGLE);
@@ -545,14 +543,14 @@ tracker_tags_view_init (TrackerTagsView *view)
gtk_box_pack_start (GTK_BOX (button_box), button, FALSE, FALSE, 0);
g_signal_connect (button, "clicked", G_CALLBACK (tracker_tags_view_add_clicked_cb), view);
- view->priv->remove_button = gtk_button_new_from_stock (GTK_STOCK_REMOVE);
- gtk_box_pack_start (GTK_BOX (button_box), view->priv->remove_button, FALSE, FALSE, 0);
- gtk_widget_set_sensitive (GTK_WIDGET (view->priv->remove_button), FALSE);
- g_signal_connect (view->priv->remove_button, "clicked", G_CALLBACK (tracker_tags_view_remove_clicked_cb), view);
+ view->private->remove_button = gtk_button_new_from_stock (GTK_STOCK_REMOVE);
+ gtk_box_pack_start (GTK_BOX (button_box), view->private->remove_button, FALSE, FALSE, 0);
+ gtk_widget_set_sensitive (GTK_WIDGET (view->private->remove_button), FALSE);
+ g_signal_connect (view->private->remove_button, "clicked", G_CALLBACK (tracker_tags_view_remove_clicked_cb), view);
- view->priv->selected_tag_label = NULL;
+ view->private->selected_tag_label = NULL;
- tracker_resources_sparql_query_async (view->priv->tracker_client,
+ tracker_resources_sparql_query_async (view->private->tracker_client,
"SELECT ?u ?t "
"WHERE {"
" ?u a nao:Tag ;"
@@ -569,7 +567,8 @@ tracker_tags_view_new (GList *files)
TrackerTagsView *self;
self = g_object_new (TRACKER_TYPE_TAGS_VIEW, NULL);
- g_list_foreach (files, g_object_ref, NULL);
- self->priv->files = g_list_copy (files);
+ g_list_foreach (files, (GFunc) g_object_ref, NULL);
+ self->private->files = g_list_copy (files);
+
return GTK_WIDGET (self);
}
diff --git a/src/plugins/nautilus/tracker-tags-view.h b/src/plugins/nautilus/tracker-tags-view.h
index 150bf7f..756bfda 100644
--- a/src/plugins/nautilus/tracker-tags-view.h
+++ b/src/plugins/nautilus/tracker-tags-view.h
@@ -17,34 +17,36 @@
*
*/
-#ifndef TRACKER_TAGS_VIEW_H
-#define TRACKER_TAGS_VIEW_H
+#ifndef __TRACKER_TAGS_VIEW_H__
+#define __TRACKER_TAGS_VIEW_H__
#include <gtk/gtk.h>
+G_BEGIN_DECLS
+
#define TRACKER_TYPE_TAGS_VIEW (tracker_tags_view_get_type ())
#define TRACKER_TAGS_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TRACKER_TYPE_TAGS_VIEW, TrackerTagsView))
#define TRACKER_TAGS_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TRACKER_TYPE_TAGS_VIEW, TrackerTagsViewClass))
#define TRACKER_IS_TAGS_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TRACKER_TYPE_TAGS_VIEW))
#define TRACKER_IS_TAGS_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TRACKER_TYPE_TAGS_VIEW))
-typedef struct _TrackerTagsViewPrivate TrackerTagsViewPrivate;
-
-typedef struct _TrackerTagsView TrackerTagsView;
-typedef struct _TrackerTagsViewClass TrackerTagsViewClass;
+typedef struct _TrackerTagsViewPrivate TrackerTagsViewPrivate;
+typedef struct _TrackerTagsView TrackerTagsView;
+typedef struct _TrackerTagsViewClass TrackerTagsViewClass;
struct _TrackerTagsView {
- GtkVBox parent;
- TrackerTagsViewPrivate *priv;
+ GtkVBox parent;
+ TrackerTagsViewPrivate *private;
};
struct _TrackerTagsViewClass {
GtkVBoxClass parent;
};
-GType tracker_tags_view_get_type (void);
-void tracker_tags_view_register_type (GTypeModule *module);
+GType tracker_tags_view_get_type (void);
+void tracker_tags_view_register_type (GTypeModule *module);
+GtkWidget *tracker_tags_view_new (GList *files);
-GtkWidget *tracker_tags_view_new (GList *files);
+G_END_DECLS
-#endif /* TRACKER_TAGS_VIEW_H */
+#endif /* __TRACKER_TAGS_VIEW_H__ */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]