static void photos_selection_toolbar_init (PhotosSelectionToolbar *self) { GAction *action; GApplication *app; PhotosSearchContextState *state; app = g_application_get_default (); state = photos_search_context_get_state (PHOTOS_SEARCH_CONTEXT (app)); self->item_listeners = g_hash_table_new_full (g_direct_hash, g_direct_equal, NULL, g_object_unref); gtk_widget_init_template (GTK_WIDGET (self)); self->item_mngr = g_object_ref (state->item_mngr); self->sel_cntrlr = photos_selection_controller_dup_singleton (); g_signal_connect_object (self->sel_cntrlr, "selection-changed", G_CALLBACK (photos_selection_toolbar_selection_changed), self, G_CONNECT_SWAPPED); g_signal_connect_object (self->sel_cntrlr, "selection-mode-changed", G_CALLBACK (photos_selection_toolbar_selection_mode_changed), self, G_CONNECT_SWAPPED); action = g_action_map_lookup_action (G_ACTION_MAP (app), "delete"); g_signal_connect_object (action, "activate", G_CALLBACK (photos_selection_toolbar_delete), self, G_CONNECT_SWAPPED); }
static void photos_organize_collection_view_init (PhotosOrganizeCollectionView *self) { GApplication *app; PhotosSearchContextState *state; app = g_application_get_default (); state = photos_search_context_get_state (PHOTOS_SEARCH_CONTEXT (app)); self->cancellable = g_cancellable_new (); self->model = photos_organize_collection_model_new (); gtk_tree_view_set_model (GTK_TREE_VIEW (self), GTK_TREE_MODEL (self->model)); self->view_col = gtk_tree_view_column_new (); gtk_tree_view_append_column (GTK_TREE_VIEW (self), self->view_col); self->renderer_check = gtk_cell_renderer_toggle_new (); gtk_tree_view_column_pack_start (self->view_col, self->renderer_check, FALSE); gtk_tree_view_column_set_cell_data_func (self->view_col, self->renderer_check, photos_organize_collection_view_check_cell, self, NULL); g_signal_connect_swapped (self->renderer_check, "toggled", G_CALLBACK (photos_organize_collection_view_check_toggled), self); self->renderer_text = gtk_cell_renderer_text_new (); gtk_tree_view_column_pack_start (self->view_col, self->renderer_text, TRUE); gtk_tree_view_column_add_attribute (self->view_col, self->renderer_text, "text", PHOTOS_ORGANIZE_MODEL_NAME); g_signal_connect_swapped (self->renderer_text, "edited", G_CALLBACK (photos_organize_collection_view_text_edited), self); g_signal_connect_swapped (self->renderer_text, "editing-canceled", G_CALLBACK (photos_organize_collection_view_text_editing_canceled), self); self->renderer_detail = gd_styled_text_renderer_new (); gtk_cell_renderer_set_padding (self->renderer_detail, 16, 0); gd_styled_text_renderer_add_class (GD_STYLED_TEXT_RENDERER (self->renderer_detail), "dim-label"); gtk_tree_view_column_pack_start (self->view_col, self->renderer_detail, FALSE); gtk_tree_view_column_set_cell_data_func (self->view_col, self->renderer_detail, photos_organize_collection_view_detail_cell, self, NULL); self->item_mngr = g_object_ref (state->item_mngr); self->src_mngr = g_object_ref (state->src_mngr); self->sel_cntrlr = photos_selection_controller_dup_singleton (); gtk_widget_show (GTK_WIDGET (self)); }
static void photos_base_item_init (PhotosBaseItem *self) { PhotosBaseItemPrivate *priv; self->priv = photos_base_item_get_instance_private (self); priv = self->priv; g_mutex_init (&priv->mutex_download); g_mutex_init (&priv->mutex); priv->sel_cntrlr = photos_selection_controller_dup_singleton (); }
static void photos_fetch_collection_state_job_init (PhotosFetchCollectionStateJob *self) { GApplication *app; PhotosSearchContextState *state; app = g_application_get_default (); state = photos_search_context_get_state (PHOTOS_SEARCH_CONTEXT (app)); self->collections_for_items = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, photos_fetch_collection_state_job_value_destroy_func); self->item_mngr = g_object_ref (state->item_mngr); self->sel_cntrlr = photos_selection_controller_dup_singleton (); }
static void photos_main_window_init (PhotosMainWindow *self) { PhotosMainWindowPrivate *priv; GApplication *app; GVariant *variant; PhotosSearchContextState *state; gboolean maximized; const gint32 *position; const gint32 *size; gsize n_elements; self->priv = photos_main_window_get_instance_private (self); priv = self->priv; app = g_application_get_default (); state = photos_search_context_get_state (PHOTOS_SEARCH_CONTEXT (app)); priv->settings = photos_settings_new (); variant = g_settings_get_value (priv->settings, "window-size"); size = g_variant_get_fixed_array (variant, &n_elements, sizeof (gint32)); if (n_elements == 2) gtk_window_set_default_size (GTK_WINDOW (self), size[0], size[1]); g_variant_unref (variant); variant = g_settings_get_value (priv->settings, "window-position"); position = g_variant_get_fixed_array (variant, &n_elements, sizeof (gint32)); if (n_elements == 2) gtk_window_move (GTK_WINDOW (self), position[0], position[1]); g_variant_unref (variant); maximized = g_settings_get_boolean (priv->settings, "window-maximized"); if (maximized) gtk_window_maximize (GTK_WINDOW (self)); priv->item_mngr = g_object_ref (state->item_mngr); priv->mode_cntrlr = photos_mode_controller_dup_singleton (); g_signal_connect_swapped (priv->mode_cntrlr, "fullscreen-changed", G_CALLBACK (photos_main_window_fullscreen_changed), self); priv->sel_cntrlr = photos_selection_controller_dup_singleton (); }
static void photos_view_container_constructed (GObject *object) { PhotosViewContainer *self = PHOTOS_VIEW_CONTAINER (object); PhotosViewContainerPrivate *priv = self->priv; AtkObject *accessible; GAction *action; GApplication *app; GtkWidget *generic_view; GtkWidget *grid; PhotosSearchContextState *state; gboolean status; gint size; G_OBJECT_CLASS (photos_view_container_parent_class)->constructed (object); app = g_application_get_default (); state = photos_search_context_get_state (PHOTOS_SEARCH_CONTEXT (app)); accessible = gtk_widget_get_accessible (GTK_WIDGET (self)); if (accessible != NULL) atk_object_set_name (accessible, priv->name); priv->model = photos_view_model_new (priv->mode); grid = gtk_grid_new (); gtk_orientable_set_orientation (GTK_ORIENTABLE (grid), GTK_ORIENTATION_VERTICAL); gtk_stack_add_named (GTK_STACK (self), grid, "view"); priv->no_results = photos_empty_results_box_new (priv->mode); gtk_stack_add_named (GTK_STACK (self), priv->no_results, "no-results"); priv->error_box = photos_error_box_new (); gtk_stack_add_named (GTK_STACK (self), priv->error_box, "error"); priv->view = gd_main_view_new (GD_MAIN_VIEW_ICON); generic_view = gd_main_view_get_generic_view (priv->view); size = photos_utils_get_icon_size_unscaled (); gtk_icon_view_set_item_width (GTK_ICON_VIEW (generic_view), size + 24); gtk_container_add (GTK_CONTAINER (grid), GTK_WIDGET (priv->view)); gtk_widget_show_all (GTK_WIDGET (self)); gtk_stack_set_visible_child_full (GTK_STACK (self), "view", GTK_STACK_TRANSITION_TYPE_NONE); g_signal_connect_swapped (priv->view, "item-activated", G_CALLBACK (photos_view_container_item_activated), self); g_signal_connect_swapped (priv->view, "selection-mode-request", G_CALLBACK (photos_view_container_selection_mode_request), self); g_signal_connect_swapped (priv->view, "view-selection-changed", G_CALLBACK (photos_view_container_view_selection_changed), self); priv->item_mngr = g_object_ref (state->item_mngr); priv->sel_cntrlr = photos_selection_controller_dup_singleton (); g_signal_connect_object (priv->sel_cntrlr, "selection-mode-changed", G_CALLBACK (photos_view_container_selection_mode_changed), self, G_CONNECT_SWAPPED); photos_view_container_selection_mode_changed (self, photos_selection_controller_get_selection_mode (priv->sel_cntrlr)); priv->mode_cntrlr = g_object_ref (state->mode_cntrlr); g_signal_connect_object (priv->mode_cntrlr, "window-mode-changed", G_CALLBACK (photos_view_container_window_mode_changed), self, G_CONNECT_SWAPPED); priv->remote_mngr = photos_remote_display_manager_dup_singleton (); switch (priv->mode) { case PHOTOS_WINDOW_MODE_COLLECTIONS: priv->trk_cntrlr = photos_tracker_collections_controller_dup_singleton (); priv->offset_cntrlr = photos_offset_collections_controller_dup_singleton (); break; case PHOTOS_WINDOW_MODE_FAVORITES: priv->trk_cntrlr = photos_tracker_favorites_controller_dup_singleton (); priv->offset_cntrlr = photos_offset_favorites_controller_dup_singleton (); break; case PHOTOS_WINDOW_MODE_OVERVIEW: priv->trk_cntrlr = photos_tracker_overview_controller_dup_singleton (); priv->offset_cntrlr = photos_offset_overview_controller_dup_singleton (); break; case PHOTOS_WINDOW_MODE_SEARCH: priv->trk_cntrlr = photos_tracker_search_controller_dup_singleton (); priv->offset_cntrlr = photos_offset_search_controller_dup_singleton (); break; case PHOTOS_WINDOW_MODE_NONE: case PHOTOS_WINDOW_MODE_EDIT: case PHOTOS_WINDOW_MODE_PREVIEW: default: g_assert_not_reached (); break; } action = g_action_map_lookup_action (G_ACTION_MAP (app), "select-all"); g_signal_connect_object (action, "activate", G_CALLBACK (photos_view_container_select_all), self, G_CONNECT_SWAPPED); action = g_action_map_lookup_action (G_ACTION_MAP (app), "select-none"); g_signal_connect_object (action, "activate", G_CALLBACK (gd_main_view_unselect_all), priv->view, G_CONNECT_SWAPPED); g_signal_connect_object (priv->offset_cntrlr, "count-changed", G_CALLBACK (photos_view_container_count_changed), self, G_CONNECT_SWAPPED); g_signal_connect_object (priv->trk_cntrlr, "query-error", G_CALLBACK (photos_view_container_query_error), self, G_CONNECT_SWAPPED); g_signal_connect_object (priv->trk_cntrlr, "query-status-changed", G_CALLBACK (photos_view_container_query_status_changed), self, G_CONNECT_SWAPPED); photos_tracker_controller_start (priv->trk_cntrlr); status = photos_tracker_controller_get_query_status (priv->trk_cntrlr); photos_view_container_query_status_changed (self, status); }
static void photos_selection_toolbar_init (PhotosSelectionToolbar *self) { PhotosSelectionToolbarPrivate *priv; GtkWidget *toolbar; self->priv = photos_selection_toolbar_get_instance_private (self); priv = self->priv; priv->item_listeners = g_hash_table_new_full (g_direct_hash, g_direct_equal, NULL, g_object_unref); toolbar = gtk_action_bar_new (); gtk_container_add (GTK_CONTAINER (self), toolbar); priv->toolbar_favorite = gd_header_toggle_button_new (); gd_header_button_set_symbolic_icon_name (GD_HEADER_BUTTON (priv->toolbar_favorite), PHOTOS_ICON_FAVORITE_SYMBOLIC); gtk_action_bar_pack_start (GTK_ACTION_BAR (toolbar), priv->toolbar_favorite); g_signal_connect (priv->toolbar_favorite, "clicked", G_CALLBACK (photos_selection_toolbar_favorite_clicked), self); priv->toolbar_open = gd_header_simple_button_new (); gd_header_button_set_label (GD_HEADER_BUTTON (priv->toolbar_open), _("Open")); gtk_action_bar_pack_start (GTK_ACTION_BAR (toolbar), priv->toolbar_open); g_signal_connect (priv->toolbar_open, "clicked", G_CALLBACK (photos_selection_toolbar_open_clicked), self); priv->toolbar_print = gd_header_simple_button_new (); gd_header_button_set_label (GD_HEADER_BUTTON (priv->toolbar_print), _("Print")); gtk_action_bar_pack_start (GTK_ACTION_BAR (toolbar), priv->toolbar_print); g_signal_connect (priv->toolbar_print, "clicked", G_CALLBACK (photos_selection_toolbar_print_clicked), self); priv->toolbar_trash = gd_header_simple_button_new (); gd_header_button_set_label (GD_HEADER_BUTTON (priv->toolbar_trash), _("Delete")); gtk_action_bar_pack_start (GTK_ACTION_BAR (toolbar), priv->toolbar_trash); g_signal_connect (priv->toolbar_trash, "clicked", G_CALLBACK (photos_selection_toolbar_trash_clicked), self); priv->toolbar_properties = gd_header_simple_button_new (); gd_header_button_set_label (GD_HEADER_BUTTON (priv->toolbar_properties), _("Properties")); gtk_action_bar_pack_end (GTK_ACTION_BAR (toolbar), priv->toolbar_properties); g_signal_connect (priv->toolbar_properties, "clicked", G_CALLBACK (photos_selection_toolbar_properties_clicked), self); priv->toolbar_collection = gd_header_simple_button_new (); gd_header_button_set_label (GD_HEADER_BUTTON (priv->toolbar_collection), _("Add to Album")); gtk_action_bar_pack_end (GTK_ACTION_BAR (toolbar), priv->toolbar_collection); g_signal_connect (priv->toolbar_collection, "clicked", G_CALLBACK (photos_selection_toolbar_collection_clicked), self); gtk_widget_show_all (GTK_WIDGET (self)); priv->item_mngr = photos_item_manager_dup_singleton (); priv->sel_cntrlr = photos_selection_controller_dup_singleton (); g_signal_connect (priv->sel_cntrlr, "selection-changed", G_CALLBACK (photos_selection_toolbar_selection_changed), self); g_signal_connect (priv->sel_cntrlr, "selection-mode-changed", G_CALLBACK (photos_selection_toolbar_selection_mode_changed), self); }
static void photos_selection_toolbar_init (PhotosSelectionToolbar *self) { PhotosSelectionToolbarPrivate *priv; GApplication *app; GtkWidget *toolbar; PhotosSearchContextState *state; self->priv = photos_selection_toolbar_get_instance_private (self); priv = self->priv; app = g_application_get_default (); state = photos_search_context_get_state (PHOTOS_SEARCH_CONTEXT (app)); priv->item_listeners = g_hash_table_new_full (g_direct_hash, g_direct_equal, NULL, g_object_unref); toolbar = gtk_action_bar_new (); gtk_container_add (GTK_CONTAINER (self), toolbar); priv->toolbar_favorite = gtk_button_new (); gtk_action_bar_pack_start (GTK_ACTION_BAR (toolbar), priv->toolbar_favorite); g_signal_connect (priv->toolbar_favorite, "clicked", G_CALLBACK (photos_selection_toolbar_favorite_clicked), self); priv->toolbar_open = gtk_button_new_with_label (_("Open")); gtk_action_bar_pack_start (GTK_ACTION_BAR (toolbar), priv->toolbar_open); g_signal_connect (priv->toolbar_open, "clicked", G_CALLBACK (photos_selection_toolbar_open_clicked), self); priv->toolbar_print = gtk_button_new_with_label (_("Print")); gtk_action_bar_pack_start (GTK_ACTION_BAR (toolbar), priv->toolbar_print); g_signal_connect (priv->toolbar_print, "clicked", G_CALLBACK (photos_selection_toolbar_print_clicked), self); priv->toolbar_trash = gtk_button_new_with_label (_("Delete")); gtk_action_bar_pack_start (GTK_ACTION_BAR (toolbar), priv->toolbar_trash); g_signal_connect (priv->toolbar_trash, "clicked", G_CALLBACK (photos_selection_toolbar_trash_clicked), self); priv->toolbar_properties = gtk_button_new_with_label (_("Properties")); gtk_action_bar_pack_end (GTK_ACTION_BAR (toolbar), priv->toolbar_properties); g_signal_connect (priv->toolbar_properties, "clicked", G_CALLBACK (photos_selection_toolbar_properties_clicked), self); priv->toolbar_collection = gtk_button_new_with_label (_("Add to Album")); gtk_action_bar_pack_end (GTK_ACTION_BAR (toolbar), priv->toolbar_collection); g_signal_connect (priv->toolbar_collection, "clicked", G_CALLBACK (photos_selection_toolbar_collection_clicked), self); gtk_widget_show_all (GTK_WIDGET (self)); priv->item_mngr = g_object_ref (state->item_mngr); priv->sel_cntrlr = photos_selection_controller_dup_singleton (); g_signal_connect (priv->sel_cntrlr, "selection-changed", G_CALLBACK (photos_selection_toolbar_selection_changed), self); g_signal_connect (priv->sel_cntrlr, "selection-mode-changed", G_CALLBACK (photos_selection_toolbar_selection_mode_changed), self); }