static void eog_thumb_view_dispose (GObject *object) { EogThumbViewPrivate *priv = EOG_THUMB_VIEW (object)->priv; GtkTreeModel *model; if (priv->visible_range_changed_id != 0) { g_source_remove (priv->visible_range_changed_id); priv->visible_range_changed_id = 0; } model = gtk_icon_view_get_model (GTK_ICON_VIEW (object)); if (model && priv->image_add_id != 0) { g_signal_handler_disconnect (model, priv->image_add_id); priv->image_add_id = 0; } if (model && priv->image_removed_id) { g_signal_handler_disconnect (model, priv->image_removed_id); priv->image_removed_id = 0; } G_OBJECT_CLASS (eog_thumb_view_parent_class)->dispose (object); }
static void prepared_cb (EogWindow *window, EogMapPlugin *plugin) { plugin->store = eog_window_get_store (plugin->window); if (!plugin->store) return; if (plugin->win_prepared_id > 0) { g_signal_handler_disconnect (window, plugin->win_prepared_id); plugin->win_prepared_id = 0; } /* At this point, the collection has been filled */ gtk_tree_model_foreach (GTK_TREE_MODEL (plugin->store), (GtkTreeModelForeachFunc) for_each_thumb, plugin); plugin->thumbview = eog_window_get_thumb_view (window); plugin->selection_changed_id = g_signal_connect (G_OBJECT (plugin->thumbview), "selection-changed", G_CALLBACK (selection_changed_cb), plugin); /* Call the callback because if the plugin is activated after * the image is loaded, selection_changed isn't emited */ selection_changed_cb (EOG_THUMB_VIEW (plugin->thumbview), plugin); }
static gboolean change_image (ChamplainLabel *marker, ClutterEvent *event, EogMapPlugin *plugin) { EogImage *image; image = g_object_get_data (G_OBJECT (marker), "image"); if (!image) return FALSE; eog_thumb_view_set_current_image (EOG_THUMB_VIEW (plugin->thumbview), image, TRUE); return FALSE; }
static void eog_reload_plugin_update_action_state (EogReloadPlugin *plugin) { GAction *action; EogThumbView *thumbview; gboolean enable = FALSE; thumbview = EOG_THUMB_VIEW (eog_window_get_thumb_view (plugin->window)); if (G_LIKELY (thumbview)) { enable = (eog_thumb_view_get_n_selected (thumbview) != 0); } action = g_action_map_lookup_action (G_ACTION_MAP (plugin->window), EOG_RELOAD_PLUGIN_ACTION); g_simple_action_set_enabled (G_SIMPLE_ACTION (action), enable); }
static void eog_thumb_view_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { EogThumbView *view = EOG_THUMB_VIEW (object); switch (prop_id) { case PROP_ORIENTATION: view->priv->orientation = g_value_get_enum (value); eog_thumb_view_update_columns (view); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; } }
static void postr_cb (GSimpleAction *simple, GVariant *parameter, gpointer user_data) { EogWindow *window; GtkWidget *thumbview; GList *images, *i; gchar *cmd = g_strdup ("postr "); eog_debug(DEBUG_PLUGINS); g_return_if_fail (EOG_IS_WINDOW (user_data)); window = EOG_WINDOW (user_data); thumbview = eog_window_get_thumb_view (window); images = eog_thumb_view_get_selected_images (EOG_THUMB_VIEW (thumbview)); for (i = g_list_first (images); i; i = i->next) { EogImage *image = (EogImage *) i->data; GFile *imgfile; gchar *imgpath; gchar *oldcmd = cmd; imgfile = eog_image_get_file (image); imgpath = g_file_get_path (imgfile); if (G_LIKELY (imgpath != NULL)) { cmd = g_strconcat (oldcmd, "\"", imgpath, "\"", " ", NULL); g_free (oldcmd); } g_free (imgpath); g_object_unref (imgfile); } g_spawn_command_line_async (cmd, NULL); g_list_free_full (images, g_object_unref); g_free (cmd); }
static void eog_thumb_view_constructed (GObject *object) { EogThumbView *thumbview; if (G_OBJECT_CLASS (eog_thumb_view_parent_class)->constructed) G_OBJECT_CLASS (eog_thumb_view_parent_class)->constructed (object); thumbview = EOG_THUMB_VIEW (object); thumbview->priv->pixbuf_cell = gtk_cell_renderer_pixbuf_new (); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (thumbview), thumbview->priv->pixbuf_cell, FALSE); g_object_set (thumbview->priv->pixbuf_cell, "follow-state", FALSE, "height", 100, "width", 115, "yalign", 0.5, "xalign", 0.5, NULL); gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (thumbview), thumbview->priv->pixbuf_cell, "pixbuf", EOG_LIST_STORE_THUMBNAIL, NULL); gtk_icon_view_set_selection_mode (GTK_ICON_VIEW (thumbview), GTK_SELECTION_MULTIPLE); gtk_icon_view_set_column_spacing (GTK_ICON_VIEW (thumbview), EOG_THUMB_VIEW_SPACING); gtk_icon_view_set_row_spacing (GTK_ICON_VIEW (thumbview), EOG_THUMB_VIEW_SPACING); g_object_set (thumbview, "has-tooltip", TRUE, NULL); g_signal_connect (thumbview, "query-tooltip", G_CALLBACK (thumbview_on_query_tooltip_cb), NULL); thumbview->priv->start_thumb = 0; thumbview->priv->end_thumb = 0; thumbview->priv->menu = NULL; g_signal_connect (G_OBJECT (thumbview), "parent-set", G_CALLBACK (thumbview_on_parent_set_cb), NULL); gtk_icon_view_enable_model_drag_source (GTK_ICON_VIEW (thumbview), 0, NULL, 0, GDK_ACTION_COPY | GDK_ACTION_MOVE | GDK_ACTION_LINK | GDK_ACTION_ASK); gtk_drag_source_add_uri_targets (GTK_WIDGET (thumbview)); g_signal_connect (G_OBJECT (thumbview), "drag-data-get", G_CALLBACK (thumbview_on_drag_data_get_cb), NULL); }