Lines Matching refs:dialog

69 static void rb_import_dialog_init (RBImportDialog *dialog);
136 sort_changed_cb (GObject *object, GParamSpec *pspec, RBImportDialog *dialog) in sort_changed_cb() argument
142 hide_import_job (RBImportDialog *dialog) in hide_import_job() argument
144 if (dialog->priv->import_job) { in hide_import_job()
146 g_object_get (dialog->priv->shell, "task-list", &tasklist, NULL); in hide_import_job()
147 rb_task_list_remove_task (tasklist, RB_TASK_PROGRESS (dialog->priv->import_job)); in hide_import_job()
153 impl_close (RBImportDialog *dialog) in impl_close() argument
155 hide_import_job (dialog); in impl_close()
157 if (dialog->priv->import_job) { in impl_close()
158 rhythmdb_import_job_cancel (dialog->priv->import_job); in impl_close()
160 g_signal_emit (dialog, signals[CLOSED], 0); in impl_close()
164 entry_activated_cb (RBEntryView *entry_view, RhythmDBEntry *entry, RBImportDialog *dialog) in entry_activated_cb() argument
167 rb_shell_load_uri (dialog->priv->shell, in entry_activated_cb()
174 clear_info_bar (RBImportDialog *dialog) in clear_info_bar() argument
176 if (dialog->priv->info_bar != NULL) { in clear_info_bar()
177 gtk_container_remove (GTK_CONTAINER (dialog->priv->info_bar_container), dialog->priv->info_bar); in clear_info_bar()
178 dialog->priv->info_bar = NULL; in clear_info_bar()
193 get_entries (RBImportDialog *dialog) in get_entries() argument
196 if (rb_entry_view_have_selection (dialog->priv->entry_view)) { in get_entries()
197 return rb_entry_view_get_selected_entries (dialog->priv->entry_view); in get_entries()
201 gtk_tree_model_foreach (GTK_TREE_MODEL (dialog->priv->query_model), in get_entries()
209 add_entries_done (RBImportDialog *dialog) in add_entries_done() argument
212 if (dialog->priv->entry_count == 0) { in add_entries_done()
213 hide_import_job (dialog); in add_entries_done()
214 g_signal_emit (dialog, signals[CLOSED], 0); in add_entries_done()
217 dialog->priv->added_entries_id = 0; in add_entries_done()
222 add_entries (RBImportDialog *dialog) in add_entries() argument
233 entry = dialog->priv->add_entry_list->data; in add_entries()
234dialog->priv->add_entry_list = g_list_delete_link (dialog->priv->add_entry_list, dialog->priv->add… in add_entries()
236 rhythmdb_entry_set (dialog->priv->db, entry, RHYTHMDB_PROP_TYPE, &new_type); in add_entries()
239 if (dialog->priv->add_entry_list == NULL) in add_entries()
243 rhythmdb_commit (dialog->priv->db); in add_entries()
245 if (dialog->priv->add_entry_list == NULL) { in add_entries()
246 dialog->priv->add_entries_id = 0; in add_entries()
248 dialog->priv->added_entries_id = g_idle_add ((GSourceFunc) add_entries_done, dialog); in add_entries()
263 RBImportDialog *dialog) in copy_track_done_cb() argument
265 rhythmdb_entry_delete (dialog->priv->db, entry); in copy_track_done_cb()
266 rhythmdb_commit (dialog->priv->db); in copy_track_done_cb()
270 copy_complete_cb (RBTrackTransferBatch *batch, RBImportDialog *dialog) in copy_complete_cb() argument
273 if (dialog->priv->entry_count == 0) { in copy_complete_cb()
274 hide_import_job (dialog); in copy_complete_cb()
275 g_signal_emit (dialog, signals[CLOSED], 0); in copy_complete_cb()
280 import_clicked_cb (GtkButton *button, RBImportDialog *dialog) in import_clicked_cb() argument
286 entries = get_entries (dialog); in import_clicked_cb()
290 if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (dialog->priv->copy_check)) == FALSE) { in import_clicked_cb()
291 dialog->priv->add_entry_list = g_list_concat (dialog->priv->add_entry_list, entries); in import_clicked_cb()
293 if (dialog->priv->add_entries_id == 0) { in import_clicked_cb()
294 dialog->priv->add_entries_id = g_idle_add ((GSourceFunc) add_entries, dialog); in import_clicked_cb()
297 g_object_get (dialog->priv->shell, "library-source", &library_source, NULL); in import_clicked_cb()
304 g_signal_connect (batch, "track-done", G_CALLBACK (copy_track_done_cb), dialog); in import_clicked_cb()
305 g_signal_connect (batch, "complete", G_CALLBACK (copy_complete_cb), dialog); in import_clicked_cb()
311 close_clicked_cb (GtkButton *button, RBImportDialog *dialog) in close_clicked_cb() argument
313 hide_import_job (dialog); in close_clicked_cb()
314 if (dialog->priv->import_job) { in close_clicked_cb()
315 rhythmdb_import_job_cancel (dialog->priv->import_job); in close_clicked_cb()
317 g_signal_emit (dialog, signals[CLOSED], 0); in close_clicked_cb()
321 import_complete_cb (RhythmDBImportJob *job, int total, RBImportDialog *dialog) in import_complete_cb() argument
324 dialog->priv->import_job = NULL; in import_complete_cb()
328 start_scanning (RBImportDialog *dialog) in start_scanning() argument
332 rhythmdb_entry_delete_by_type (dialog->priv->db, dialog->priv->entry_type); in start_scanning()
333 rhythmdb_entry_delete_by_type (dialog->priv->db, dialog->priv->ignore_type); in start_scanning()
334 rhythmdb_commit (dialog->priv->db); in start_scanning()
336 rb_debug ("starting %s", dialog->priv->current_uri); in start_scanning()
337 dialog->priv->import_job = rhythmdb_import_job_new (dialog->priv->db, in start_scanning()
338 dialog->priv->entry_type, in start_scanning()
339 dialog->priv->ignore_type, in start_scanning()
340 dialog->priv->ignore_type); in start_scanning()
341 g_object_set (dialog->priv->import_job, "task-label", _("Examining files"), NULL); in start_scanning()
342 g_signal_connect (dialog->priv->import_job, "complete", G_CALLBACK (import_complete_cb), dialog); in start_scanning()
343 rhythmdb_import_job_add_uri (dialog->priv->import_job, dialog->priv->current_uri); in start_scanning()
344 rhythmdb_import_job_start (dialog->priv->import_job); in start_scanning()
346 g_object_get (dialog->priv->shell, "task-list", &tasklist, NULL); in start_scanning()
347 rb_task_list_add_task (tasklist, RB_TASK_PROGRESS (dialog->priv->import_job)); in start_scanning()
352 start_deferred_scan (RhythmDBImportJob *job, int total, RBImportDialog *dialog) in start_deferred_scan() argument
355 start_scanning (dialog); in start_deferred_scan()
359 device_info_bar_response_cb (GtkInfoBar *bar, gint response, RBImportDialog *dialog) in device_info_bar_response_cb() argument
364 hide_import_job (dialog); in device_info_bar_response_cb()
365 g_signal_emit (dialog, signals[CLOSED], 0); in device_info_bar_response_cb()
366 uri = gtk_file_chooser_get_uri (GTK_FILE_CHOOSER (dialog->priv->file_chooser)); in device_info_bar_response_cb()
367 source = rb_shell_guess_source_for_uri (dialog->priv->shell, uri); in device_info_bar_response_cb()
368 rb_shell_activate_source (dialog->priv->shell, source, FALSE, NULL); in device_info_bar_response_cb()
373 current_folder_changed_cb (GtkFileChooser *chooser, RBImportDialog *dialog) in current_folder_changed_cb() argument
383 if (g_strcmp0 (uri, dialog->priv->current_uri) == 0) in current_folder_changed_cb()
385 g_free (dialog->priv->current_uri); in current_folder_changed_cb()
386 dialog->priv->current_uri = g_strdup (uri); in current_folder_changed_cb()
388 if (dialog->priv->import_job != NULL) { in current_folder_changed_cb()
389 rhythmdb_import_job_cancel (dialog->priv->import_job); in current_folder_changed_cb()
392 clear_info_bar (dialog); in current_folder_changed_cb()
394 source = rb_shell_guess_source_for_uri (dialog->priv->shell, uri); in current_folder_changed_cb()
401 rhythmdb_entry_delete_by_type (dialog->priv->db, dialog->priv->entry_type); in current_folder_changed_cb()
402 rhythmdb_entry_delete_by_type (dialog->priv->db, dialog->priv->ignore_type); in current_folder_changed_cb()
403 rhythmdb_commit (dialog->priv->db); in current_folder_changed_cb()
405 dialog->priv->info_bar = gtk_info_bar_new (); in current_folder_changed_cb()
406 g_object_set (dialog->priv->info_bar, "hexpand", TRUE, NULL); in current_folder_changed_cb()
414 content = gtk_info_bar_get_content_area (GTK_INFO_BAR (dialog->priv->info_bar)); in current_folder_changed_cb()
418 gtk_info_bar_add_button (GTK_INFO_BAR (dialog->priv->info_bar), msg, GTK_RESPONSE_ACCEPT); in current_folder_changed_cb()
421 …g_signal_connect (dialog->priv->info_bar, "response", G_CALLBACK (device_info_bar_response_cb), di… in current_folder_changed_cb()
423 gtk_widget_show_all (dialog->priv->info_bar); in current_folder_changed_cb()
424 gtk_container_add (GTK_CONTAINER (dialog->priv->info_bar_container), dialog->priv->info_bar); in current_folder_changed_cb()
432 gtk_widget_set_sensitive (dialog->priv->copy_check, TRUE); in current_folder_changed_cb()
435 gtk_widget_set_sensitive (dialog->priv->copy_check, FALSE); in current_folder_changed_cb()
442 if (dialog->priv->import_job != NULL) { in current_folder_changed_cb()
445 g_signal_connect (dialog->priv->import_job, "complete", G_CALLBACK (start_deferred_scan), dialog); in current_folder_changed_cb()
447 start_scanning (dialog); in current_folder_changed_cb()
452 update_status_idle (RBImportDialog *dialog) in update_status_idle() argument
458 if (rb_entry_view_have_selection (dialog->priv->entry_view)) { in update_status_idle()
461 sel = rb_entry_view_get_selected_entries (dialog->priv->entry_view); in update_status_idle()
467 count = gtk_tree_model_iter_n_children (GTK_TREE_MODEL (dialog->priv->query_model), NULL); in update_status_idle()
471 gtk_button_set_label (GTK_BUTTON (dialog->priv->import_button), text); in update_status_idle()
478 …text = rhythmdb_query_model_compute_status_normal (dialog->priv->query_model, "%d song", "%d songs… in update_status_idle()
479 rb_entry_view_set_status (dialog->priv->entry_view, text, FALSE); in update_status_idle()
482 dialog->priv->update_status_id = 0; in update_status_idle()
487 update_status (RBImportDialog *dialog) in update_status() argument
489 if (dialog->priv->update_status_id != 0) in update_status()
492 dialog->priv->update_status_id = g_idle_add ((GSourceFunc) update_status_idle, dialog); in update_status()
497 …try_inserted_cb (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, RBImportDialog *dialog) in entry_inserted_cb() argument
499 if (dialog->priv->entry_count == 0) { in entry_inserted_cb()
500 gtk_widget_set_sensitive (dialog->priv->import_button, TRUE); in entry_inserted_cb()
503 dialog->priv->entry_count++; in entry_inserted_cb()
504 update_status (dialog); in entry_inserted_cb()
508 entry_deleted_cb (GtkTreeModel *model, RhythmDBEntry *entry, RBImportDialog *dialog) in entry_deleted_cb() argument
510 dialog->priv->entry_count--; in entry_deleted_cb()
511 if (dialog->priv->entry_count == 0) { in entry_deleted_cb()
512 gtk_widget_set_sensitive (dialog->priv->import_button, FALSE); in entry_deleted_cb()
515 update_status (dialog); in entry_deleted_cb()
519 selection_changed_cb (RBEntryView *view, RBImportDialog *dialog) in selection_changed_cb() argument
521 update_status (dialog); in selection_changed_cb()
527 RBImportDialog *dialog; in impl_constructed() local
534 dialog = RB_IMPORT_DIALOG (object); in impl_constructed()
536 g_object_get (dialog->priv->shell, in impl_constructed()
537 "db", &dialog->priv->db, in impl_constructed()
538 "shell-player", &dialog->priv->shell_player, in impl_constructed()
542 dialog->priv->entry_type = g_object_new (rb_import_dialog_entry_type_get_type (), in impl_constructed()
543 "db", dialog->priv->db, in impl_constructed()
546 dialog->priv->ignore_type = g_object_new (rb_import_dialog_ignore_type_get_type (), in impl_constructed()
547 "db", dialog->priv->db, in impl_constructed()
550 rhythmdb_register_entry_type (dialog->priv->db, dialog->priv->entry_type); in impl_constructed()
551 rhythmdb_register_entry_type (dialog->priv->db, dialog->priv->ignore_type); in impl_constructed()
556 dialog->priv->import_button = GTK_WIDGET (gtk_builder_get_object (builder, "import-button")); in impl_constructed()
557 …g_signal_connect_object (dialog->priv->import_button, "clicked", G_CALLBACK (import_clicked_cb), d… in impl_constructed()
558 gtk_widget_set_sensitive (dialog->priv->import_button, FALSE); in impl_constructed()
560 dialog->priv->copy_check = GTK_WIDGET (gtk_builder_get_object (builder, "copy-check")); in impl_constructed()
565 dialog); in impl_constructed()
567 dialog->priv->file_chooser = GTK_WIDGET (gtk_builder_get_object (builder, "file-chooser-button")); in impl_constructed()
575 dialog->priv->current_uri = g_strdup (locations[0]); in impl_constructed()
577 dialog->priv->current_uri = g_filename_to_uri (rb_music_dir (), NULL, NULL); in impl_constructed()
579 gtk_file_chooser_set_current_folder_uri (GTK_FILE_CHOOSER (dialog->priv->file_chooser), in impl_constructed()
580 dialog->priv->current_uri); in impl_constructed()
584 …g_signal_connect_object (dialog->priv->file_chooser, "selection-changed", G_CALLBACK (current_fold… in impl_constructed()
587 gtk_widget_set_vexpand (gtk_widget_get_parent (dialog->priv->file_chooser), FALSE); in impl_constructed()
589dialog->priv->info_bar_container = GTK_WIDGET (gtk_builder_get_object (builder, "info-bar-containe… in impl_constructed()
592dialog->priv->entry_view = rb_entry_view_new (dialog->priv->db, G_OBJECT (dialog->priv->shell_play… in impl_constructed()
594 …g_signal_connect (dialog->priv->entry_view, "entry-activated", G_CALLBACK (entry_activated_cb), di… in impl_constructed()
595 …g_signal_connect (dialog->priv->entry_view, "selection-changed", G_CALLBACK (selection_changed_cb)… in impl_constructed()
597 rb_entry_view_append_column (dialog->priv->entry_view, RB_ENTRY_VIEW_COL_TRACK_NUMBER, FALSE); in impl_constructed()
598 rb_entry_view_append_column (dialog->priv->entry_view, RB_ENTRY_VIEW_COL_TITLE, TRUE); in impl_constructed()
599 rb_entry_view_append_column (dialog->priv->entry_view, RB_ENTRY_VIEW_COL_GENRE, FALSE); in impl_constructed()
600 rb_entry_view_append_column (dialog->priv->entry_view, RB_ENTRY_VIEW_COL_ARTIST, FALSE); in impl_constructed()
601 rb_entry_view_append_column (dialog->priv->entry_view, RB_ENTRY_VIEW_COL_ALBUM, FALSE); in impl_constructed()
602 rb_entry_view_append_column (dialog->priv->entry_view, RB_ENTRY_VIEW_COL_YEAR, FALSE); in impl_constructed()
603 rb_entry_view_append_column (dialog->priv->entry_view, RB_ENTRY_VIEW_COL_DURATION, FALSE); in impl_constructed()
604 rb_entry_view_append_column (dialog->priv->entry_view, RB_ENTRY_VIEW_COL_QUALITY, FALSE); in impl_constructed()
605 rb_entry_view_append_column (dialog->priv->entry_view, RB_ENTRY_VIEW_COL_PLAY_COUNT, FALSE); in impl_constructed()
606 rb_entry_view_append_column (dialog->priv->entry_view, RB_ENTRY_VIEW_COL_BPM, FALSE); in impl_constructed()
607 rb_entry_view_append_column (dialog->priv->entry_view, RB_ENTRY_VIEW_COL_COMMENT, FALSE); in impl_constructed()
608 rb_entry_view_append_column (dialog->priv->entry_view, RB_ENTRY_VIEW_COL_LOCATION, FALSE); in impl_constructed()
611 …g_settings_bind (settings, "visible-columns", dialog->priv->entry_view, "visible-columns", G_SETTI… in impl_constructed()
614 g_signal_connect (dialog->priv->entry_view, in impl_constructed()
617 dialog); in impl_constructed()
618 rb_entry_view_set_sorting_order (dialog->priv->entry_view, "Album", GTK_SORT_ASCENDING); in impl_constructed()
621 GTK_WIDGET (dialog->priv->entry_view)); in impl_constructed()
623 dialog->priv->query_model = rhythmdb_query_model_new_empty (dialog->priv->db); in impl_constructed()
624 rb_entry_view_set_model (dialog->priv->entry_view, dialog->priv->query_model); in impl_constructed()
625 query = rhythmdb_query_parse (dialog->priv->db, in impl_constructed()
626 RHYTHMDB_QUERY_PROP_EQUALS, RHYTHMDB_PROP_TYPE, dialog->priv->entry_type, in impl_constructed()
628 …rhythmdb_do_full_query_async_parsed (dialog->priv->db, RHYTHMDB_QUERY_RESULTS (dialog->priv->query… in impl_constructed()
631 …g_signal_connect (dialog->priv->query_model, "post-entry-delete", G_CALLBACK (entry_deleted_cb), d… in impl_constructed()
632 …g_signal_connect (dialog->priv->query_model, "row-inserted", G_CALLBACK (entry_inserted_cb), dialo… in impl_constructed()
634 …gtk_container_add (GTK_CONTAINER (dialog), GTK_WIDGET (gtk_builder_get_object (builder, "import-di… in impl_constructed()
636 gtk_widget_show_all (GTK_WIDGET (dialog)); in impl_constructed()
643 RBImportDialog *dialog = RB_IMPORT_DIALOG (object); in impl_dispose() local
645 if (dialog->priv->add_entries_id) { in impl_dispose()
646 g_source_remove (dialog->priv->add_entries_id); in impl_dispose()
647 dialog->priv->add_entries_id = 0; in impl_dispose()
649 if (dialog->priv->added_entries_id) { in impl_dispose()
650 g_source_remove (dialog->priv->added_entries_id); in impl_dispose()
651 dialog->priv->added_entries_id = 0; in impl_dispose()
653 if (dialog->priv->update_status_id) { in impl_dispose()
654 g_source_remove (dialog->priv->update_status_id); in impl_dispose()
655 dialog->priv->update_status_id = 0; in impl_dispose()
658 if (dialog->priv->query_model != NULL) { in impl_dispose()
659 g_object_unref (dialog->priv->query_model); in impl_dispose()
660 dialog->priv->query_model = NULL; in impl_dispose()
662 if (dialog->priv->shell != NULL) { in impl_dispose()
663 g_object_unref (dialog->priv->shell); in impl_dispose()
664 dialog->priv->shell = NULL; in impl_dispose()
666 if (dialog->priv->shell_player != NULL) { in impl_dispose()
667 g_object_unref (dialog->priv->shell_player); in impl_dispose()
668 dialog->priv->shell_player = NULL; in impl_dispose()
670 if (dialog->priv->db != NULL) { in impl_dispose()
671 g_object_unref (dialog->priv->db); in impl_dispose()
672 dialog->priv->db = NULL; in impl_dispose()
681 RBImportDialog *dialog = RB_IMPORT_DIALOG (object); in impl_set_property() local
685 dialog->priv->shell = g_value_dup_object (value); in impl_set_property()
696 RBImportDialog *dialog = RB_IMPORT_DIALOG (object); in impl_get_property() local
700 g_value_set_object (value, dialog->priv->shell); in impl_get_property()
709 rb_import_dialog_init (RBImportDialog *dialog) in rb_import_dialog_init() argument
711 dialog->priv = G_TYPE_INSTANCE_GET_PRIVATE (dialog, in rb_import_dialog_init()
763 rb_import_dialog_reset (RBImportDialog *dialog) in rb_import_dialog_reset() argument
765 g_free (dialog->priv->current_uri); in rb_import_dialog_reset()
766 dialog->priv->current_uri = NULL; in rb_import_dialog_reset()
768 current_folder_changed_cb (GTK_FILE_CHOOSER (dialog->priv->file_chooser), dialog); in rb_import_dialog_reset()