本文整理汇总了C++中PHOTOS_BASE_ITEM函数的典型用法代码示例。如果您正苦于以下问题:C++ PHOTOS_BASE_ITEM函数的具体用法?C++ PHOTOS_BASE_ITEM怎么用?C++ PHOTOS_BASE_ITEM使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了PHOTOS_BASE_ITEM函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: photos_selection_toolbar_delete
static void
photos_selection_toolbar_delete (PhotosSelectionToolbar *self)
{
GList *items = NULL;
GList *selection;
GList *l;
if (!photos_selection_controller_get_selection_mode (self->sel_cntrlr))
return;
selection = photos_selection_controller_get_selection (self->sel_cntrlr);
for (l = selection; l != NULL; l = l->next)
{
PhotosBaseItem *item;
const gchar *urn = (gchar *) l->data;
item = PHOTOS_BASE_ITEM (photos_base_manager_get_object_by_id (self->item_mngr, urn));
items = g_list_prepend (items, g_object_ref (item));
}
/* Removing an item from the item manager changes the selection, so
* we can't use the selection while removing items.
*/
for (l = items; l != NULL; l = l->next)
{
PhotosBaseItem *item = PHOTOS_BASE_ITEM (l->data);
photos_base_manager_remove_object (self->item_mngr, G_OBJECT (item));
}
photos_delete_notification_new (items);
photos_selection_controller_set_selection_mode (self->sel_cntrlr, FALSE);
g_list_free_full (items, g_object_unref);
}
示例2: photos_item_manager_changes_pending_foreach
static void
photos_item_manager_changes_pending_foreach (gpointer key, gpointer value, gpointer user_data)
{
PhotosItemManager *self = PHOTOS_ITEM_MANAGER (user_data);
PhotosTrackerChangeEvent *change_event = (PhotosTrackerChangeEvent *) value;
PhotosTrackerChangeEventType change_type;
const gchar *change_urn;
change_type = photos_tracker_change_event_get_type (change_event);
change_urn = photos_tracker_change_event_get_urn (change_event);
if (change_type == PHOTOS_TRACKER_CHANGE_EVENT_CHANGED)
{
GObject *object;
object = photos_base_manager_get_object_by_id (PHOTOS_BASE_MANAGER (self), change_urn);
if (object != NULL)
photos_base_item_refresh (PHOTOS_BASE_ITEM (object));
}
else if (change_type == PHOTOS_TRACKER_CHANGE_EVENT_CREATED)
{
photos_item_manager_item_created (self, change_urn);
}
else if (change_type == PHOTOS_TRACKER_CHANGE_EVENT_DELETED)
{
GObject *object;
object = photos_base_manager_get_object_by_id (PHOTOS_BASE_MANAGER (self), change_urn);
if (object != NULL)
{
photos_base_item_destroy (PHOTOS_BASE_ITEM (object));
photos_base_manager_remove_object_by_id (PHOTOS_BASE_MANAGER (self), change_urn);
}
}
}
示例3: photos_selection_toolbar_trash_clicked
static void
photos_selection_toolbar_trash_clicked (GtkButton *button, gpointer user_data)
{
PhotosSelectionToolbar *self = PHOTOS_SELECTION_TOOLBAR (user_data);
PhotosSelectionToolbarPrivate *priv = self->priv;
GList *items = NULL;
GList *selection;
GList *l;
selection = photos_selection_controller_get_selection (priv->sel_cntrlr);
for (l = selection; l != NULL; l = l->next)
{
PhotosBaseItem *item;
const gchar *urn = (gchar *) l->data;
item = PHOTOS_BASE_ITEM (photos_base_manager_get_object_by_id (priv->item_mngr, urn));
items = g_list_prepend (items, g_object_ref (item));
}
/* Removing an item from the item manager changes the selection, so
* we can't use the selection while removing items.
*/
for (l = items; l != NULL; l = l->next)
{
PhotosBaseItem *item = PHOTOS_BASE_ITEM (l->data);
photos_base_manager_remove_object (priv->item_mngr, G_OBJECT (item));
}
photos_delete_notification_new (items);
photos_selection_controller_set_selection_mode (priv->sel_cntrlr, FALSE);
g_list_free_full (items, g_object_unref);
}
示例4: photos_view_container_item_activated
static void
photos_view_container_item_activated (PhotosViewContainer *self, const gchar * id, const GtkTreePath *path)
{
PhotosViewContainerPrivate *priv = self->priv;
GObject *object;
priv->current_path = gtk_tree_path_copy (path);
object = photos_base_manager_get_object_by_id (priv->item_mngr, id);
if (!photos_base_item_is_collection (PHOTOS_BASE_ITEM (object)) &&
photos_remote_display_manager_is_active (priv->remote_mngr))
photos_remote_display_manager_render (priv->remote_mngr, PHOTOS_BASE_ITEM (object));
else
photos_base_manager_set_active_object (priv->item_mngr, object);
}
示例5: photos_item_manager_add_object
static void
photos_item_manager_add_object (PhotosBaseManager *mngr, GObject *object)
{
PhotosItemManager *self = PHOTOS_ITEM_MANAGER (mngr);
PhotosBaseItem *item;
const gchar *id;
gpointer *old_collection;
g_return_if_fail (PHOTOS_IS_BASE_ITEM (object));
item = PHOTOS_BASE_ITEM (object);
if (!photos_base_item_is_collection (item))
goto end;
id = photos_filterable_get_id (PHOTOS_FILTERABLE (item));
if (id == NULL)
goto end;
old_collection = g_hash_table_lookup (self->collections, id);
if (old_collection != NULL)
goto end;
g_hash_table_insert (self->collections, g_strdup (id), g_object_ref (item));
end:
PHOTOS_BASE_MANAGER_CLASS (photos_item_manager_parent_class)->add_object (mngr, object);
}
示例6: photos_item_manager_item_load
static void
photos_item_manager_item_load (GObject *source_object, GAsyncResult *res, gpointer user_data)
{
PhotosItemManager *self = PHOTOS_ITEM_MANAGER (user_data);
GError *error;
GeglNode *node = NULL;
PhotosBaseItem *item = PHOTOS_BASE_ITEM (source_object);
g_clear_object (&self->loader_cancellable);
error = NULL;
node = photos_base_item_load_finish (item, res, &error);
if (error != NULL)
{
if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
g_warning ("Unable to load the item: %s", error->message);
self->load_state = PHOTOS_LOAD_STATE_ERROR;
g_error_free (error);
}
else
{
self->load_state = PHOTOS_LOAD_STATE_FINISHED;
}
g_signal_emit (self, signals[LOAD_FINISHED], 0, item, node);
g_clear_object (&node);
g_object_unref (self);
}
示例7: photos_export_dialog_guess_sizes
static void
photos_export_dialog_guess_sizes (GObject *source_object, GAsyncResult *res, gpointer user_data)
{
PhotosExportDialog *self;
PhotosBaseItem *item = PHOTOS_BASE_ITEM (source_object);
GError *error;
gchar *size_str;
gsize sizes[2];
error = NULL;
if (!photos_base_item_save_guess_sizes_finish (item, res, &sizes[0], &sizes[1], &error))
{
if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
g_warning ("Unable to guess sizes: %s", error->message);
g_error_free (error);
return;
}
self = PHOTOS_EXPORT_DIALOG (user_data);
size_str = g_format_size ((guint64) sizes[0]);
gtk_label_set_text (GTK_LABEL (self->full_label), size_str);
g_free (size_str);
if (self->reduced_zoom > 0.0)
{
gsize reduced_size;
reduced_size = (gsize) (sizes[1] + (sizes[0] - sizes[1]) * (self->reduced_zoom - 0.5) / (1.0 - 0.5) + 0.5);
size_str = g_format_size ((guint64) reduced_size);
gtk_label_set_text (GTK_LABEL (self->reduced_label), size_str);
g_free (size_str);
}
}
示例8: photos_preview_nav_buttons_delete
static void
photos_preview_nav_buttons_delete (PhotosPreviewNavButtons *self)
{
GList *items = NULL;
PhotosBaseItem *item;
PhotosWindowMode mode;
mode = photos_mode_controller_get_window_mode (self->mode_cntrlr);
if (mode != PHOTOS_WINDOW_MODE_PREVIEW)
return;
item = PHOTOS_BASE_ITEM (photos_base_manager_get_active_object (self->item_mngr));
if (item == NULL)
return;
if (self->enable_next)
g_action_activate (self->load_next, NULL);
else if (self->enable_prev)
g_action_activate (self->load_previous, NULL);
else
photos_mode_controller_go_back (self->mode_cntrlr);
items = g_list_prepend (items, g_object_ref (item));
photos_base_manager_remove_object (self->item_mngr, G_OBJECT (item));
photos_delete_notification_new (items);
g_list_free_full (items, g_object_unref);
}
示例9: photos_base_item_create_thumbnail_in_thread_func
static void
photos_base_item_create_thumbnail_in_thread_func (gpointer data, gpointer user_data)
{
GTask *task = G_TASK (data);
PhotosBaseItem *self;
GCancellable *cancellable;
GError *error;
gboolean op_res;
self = PHOTOS_BASE_ITEM (g_task_get_source_object (task));
cancellable = g_task_get_cancellable (task);
error = NULL;
op_res = PHOTOS_BASE_ITEM_GET_CLASS (self)->create_thumbnail (self, cancellable, &error);
if (error != NULL)
{
g_task_return_error (task, error);
goto out;
}
g_task_return_boolean (task, op_res);
out:
g_object_unref (task);
}
示例10: photos_application_set_bg_download
static void
photos_application_set_bg_download (GObject *source_object, GAsyncResult *res, gpointer user_data)
{
PhotosApplication *self = PHOTOS_APPLICATION (user_data);
PhotosApplicationPrivate *priv = self->priv;
PhotosBaseItem *item = PHOTOS_BASE_ITEM (source_object);
GError *error;
gchar *filename = NULL;
error = NULL;
filename = photos_base_item_download_finish (item, res, &error);
if (error != NULL)
{
const gchar *uri;
uri = photos_base_item_get_uri (item);
g_warning ("Unable to extract the local filename for %s", uri);
g_error_free (error);
goto out;
}
g_settings_set_string (priv->settings, "picture-uri", filename);
g_settings_set_enum (priv->settings, "picture-options", G_DESKTOP_BACKGROUND_STYLE_ZOOM);
g_settings_set_enum (priv->settings, "color-shading-type", G_DESKTOP_BACKGROUND_SHADING_SOLID);
g_settings_set_string (priv->settings, "primary-color", "#000000000000");
g_settings_set_string (priv->settings, "secondary-color", "#000000000000");
out:
g_free (filename);
g_object_unref (self);
}
示例11: photos_base_item_download_in_thread_func
static void
photos_base_item_download_in_thread_func (GTask *task,
gpointer source_object,
gpointer task_data,
GCancellable *cancellable)
{
PhotosBaseItem *self = PHOTOS_BASE_ITEM (source_object);
PhotosBaseItemPrivate *priv = self->priv;
GError *error;
gchar *path;
g_mutex_lock (&priv->mutex_download);
error = NULL;
path = photos_base_item_download (self, cancellable, &error);
if (error != NULL)
{
g_task_return_error (task, error);
goto out;
}
g_task_return_pointer (task, path, g_free);
out:
g_mutex_unlock (&priv->mutex_download);
}
示例12: photos_base_item_file_query_info
static void
photos_base_item_file_query_info (GObject *source_object, GAsyncResult *res, gpointer user_data)
{
PhotosBaseItem *self = PHOTOS_BASE_ITEM (user_data);
PhotosBaseItemPrivate *priv = self->priv;
GError *error = NULL;
GFile *file = G_FILE (source_object);
GFileInfo *info;
info = g_file_query_info_finish (file, res, &error);
if (error != NULL)
{
g_warning ("Unable to query info for file at %s: %s", priv->uri, error->message);
priv->failed_thumbnailing = TRUE;
photos_base_item_set_failed_icon (self);
g_error_free (error);
goto out;
}
priv->thumb_path = g_file_info_get_attribute_byte_string (info, G_FILE_ATTRIBUTE_THUMBNAIL_PATH);
if (priv->thumb_path != NULL)
photos_base_item_refresh_thumb_path (self);
else
{
photos_base_item_create_thumbnail_async (self,
NULL,
photos_base_item_create_thumbnail_cb,
g_object_ref (file));
}
out:
g_object_unref (self);
}
示例13: photos_selection_toolbar_favorite_clicked
static void
photos_selection_toolbar_favorite_clicked (GtkButton *button, gpointer user_data)
{
PhotosSelectionToolbar *self = PHOTOS_SELECTION_TOOLBAR (user_data);
PhotosSelectionToolbarPrivate *priv = self->priv;
GList *selection;
GList *l;
if (priv->inside_refresh)
return;
selection = photos_selection_controller_get_selection (priv->sel_cntrlr);
for (l = selection; l != NULL; l = l->next)
{
const gchar *urn = (gchar *) l->data;
PhotosBaseItem *item;
gboolean favorite;
item = PHOTOS_BASE_ITEM (photos_base_manager_get_object_by_id (priv->item_mngr, urn));
favorite = photos_base_item_is_favorite (item);
photos_base_item_set_favorite (item, !favorite);
}
photos_selection_controller_set_selection_mode (priv->sel_cntrlr, FALSE);
}
示例14: photos_base_item_load_in_thread_func
static void
photos_base_item_load_in_thread_func (GTask *task,
gpointer source_object,
gpointer task_data,
GCancellable *cancellable)
{
PhotosBaseItem *self = PHOTOS_BASE_ITEM (source_object);
PhotosBaseItemPrivate *priv = self->priv;
GeglNode *node;
GError *error = NULL;
g_mutex_lock (&priv->mutex);
node = photos_base_item_load (self, cancellable, &error);
if (error != NULL)
{
g_task_return_error (task, error);
goto out;
}
g_task_return_pointer (task, node, g_object_unref);
out:
g_mutex_unlock (&priv->mutex);
}
示例15: photos_base_item_refresh_thumb_path_read
static void
photos_base_item_refresh_thumb_path_read (GObject *source_object, GAsyncResult *res, gpointer user_data)
{
PhotosBaseItem *self = PHOTOS_BASE_ITEM (user_data);
PhotosBaseItemPrivate *priv = self->priv;
GError *error = NULL;
GFile *file = G_FILE (source_object);
GFileInputStream *stream;
stream = g_file_read_finish (file, res, &error);
if (error != NULL)
{
gchar *uri;
uri = g_file_get_uri (file);
g_warning ("Unable to read file at %s: %s", uri, error->message);
priv->failed_thumbnailing = TRUE;
priv->thumb_path = NULL;
g_file_delete_async (file, G_PRIORITY_DEFAULT, NULL, NULL, NULL);
photos_base_item_set_failed_icon (self);
g_free (uri);
g_error_free (error);
goto out;
}
g_object_set_data_full (G_OBJECT (stream), "file", g_object_ref (file), g_object_unref);
gdk_pixbuf_new_from_stream_async (G_INPUT_STREAM (stream),
NULL,
photos_base_item_refresh_thumb_path_pixbuf,
g_object_ref (self));
g_object_unref (stream);
out:
g_object_unref (self);
}