static EditorVerboseData *editor_verbose_window(EditorData *ed, const gchar *text) { EditorVerboseData *vd; GtkWidget *scrolled; GtkWidget *hbox; gchar *buf; vd = g_new0(EditorVerboseData, 1); vd->gd = file_util_gen_dlg(_("Edit command results"), "editor_results", NULL, FALSE, NULL, ed); buf = g_strdup_printf(_("Output of %s"), text); generic_dialog_add_message(vd->gd, NULL, buf, NULL, TRUE); g_free(buf); vd->button_stop = generic_dialog_add_button(vd->gd, GTK_STOCK_STOP, NULL, editor_verbose_window_stop, FALSE); gtk_widget_set_sensitive(vd->button_stop, FALSE); vd->button_close = generic_dialog_add_button(vd->gd, GTK_STOCK_CLOSE, NULL, editor_verbose_window_close, TRUE); gtk_widget_set_sensitive(vd->button_close, FALSE); scrolled = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrolled), GTK_SHADOW_IN); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_box_pack_start(GTK_BOX(vd->gd->vbox), scrolled, TRUE, TRUE, 5); gtk_widget_show(scrolled); vd->text = gtk_text_view_new(); gtk_text_view_set_editable(GTK_TEXT_VIEW(vd->text), FALSE); gtk_widget_set_size_request(vd->text, EDITOR_WINDOW_WIDTH, EDITOR_WINDOW_HEIGHT); gtk_container_add(GTK_CONTAINER(scrolled), vd->text); gtk_widget_show(vd->text); hbox = gtk_hbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(vd->gd->vbox), hbox, FALSE, FALSE, 0); gtk_widget_show(hbox); vd->progress = gtk_progress_bar_new(); gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(vd->progress), 0.0); gtk_box_pack_start(GTK_BOX(hbox), vd->progress, TRUE, TRUE, 0); #if GTK_CHECK_VERSION(3,0,0) gtk_progress_bar_set_text(GTK_PROGRESS_BAR(vd->progress), ""); gtk_progress_bar_set_show_text(GTK_PROGRESS_BAR(vd->progress), TRUE); #endif gtk_widget_show(vd->progress); vd->spinner = spinner_new(NULL, SPINNER_SPEED); gtk_box_pack_start(GTK_BOX(hbox), vd->spinner, FALSE, FALSE, 0); gtk_widget_show(vd->spinner); gtk_widget_show(vd->gd->dialog); ed->vd = vd; return vd; }
static gint collection_save_confirmed(FileDialog *fd, gint overwrite, CollectionData *cd) { gchar *buf; if (isdir(fd->dest_path)) { buf = g_strdup_printf(_("Specified path:\n%s\nis a folder, collections are files"), fd->dest_path); file_util_warning_dialog(_("Invalid filename"), buf, GTK_STOCK_DIALOG_INFO, GENERIC_DIALOG(fd)->dialog); g_free(buf); return FALSE; } if (!overwrite && isfile(fd->dest_path)) { GenericDialog *gd; gd = file_util_gen_dlg(_("Overwrite File"), "GQview", "dlg_confirm", GENERIC_DIALOG(fd)->dialog, TRUE, collection_confirm_cancel_cb, fd); generic_dialog_add_message(gd, GTK_STOCK_DIALOG_QUESTION, _("Overwrite existing file?"), fd->dest_path); generic_dialog_add_button(gd, GTK_STOCK_OK, _("_Overwrite"), collection_confirm_ok_cb, TRUE); gtk_widget_show(gd->dialog); return TRUE; } if (!collection_save(cd, fd->dest_path)) { buf = g_strdup_printf(_("Failed to save the collection:\n%s"), fd->dest_path); file_util_warning_dialog(_("Save Failed"), buf, GTK_STOCK_DIALOG_ERROR, GENERIC_DIALOG(fd)->dialog); g_free(buf); } collection_unref(cd); file_dialog_sync_history(fd, TRUE); if (fd->type == DIALOG_SAVE_CLOSE) collection_window_close_by_collection(cd); file_dialog_close(fd); return TRUE; }
GenericDialog * file_util_warning_dialog (const gchar * title, const gchar * message) { GenericDialog *gd; gd = file_util_gen_dlg (title, message, "PornView", "warning", TRUE, NULL, NULL); generic_dialog_add (gd, _("Ok"), cb_file_util_warning_dialog_ok, TRUE); if (place_dialogs_under_mouse) gtk_window_position (GTK_WINDOW (gd->dialog), GTK_WIN_POS_MOUSE); else if (place_dialogs_center) gtk_window_position (GTK_WINDOW (gd->dialog), GTK_WIN_POS_CENTER); gtk_widget_show (gd->dialog); return gd; }
static void file_util_move_multiple (FileDataMult * fdm) { while (fdm->dest || fdm->source_next) { if (!fdm->dest) { GList *work = fdm->source_next; fdm->source = work->data; fdm->dest = concat_dir_and_file (fdm->dest_base, filename_from_path (fdm->source)); fdm->source_next = work->next; } if (fdm->dest && fdm->source && strcmp (fdm->dest, fdm->source) == 0) { GenericDialog *gd; const gchar *title; gchar *text; if (fdm->progress) { gtk_grab_remove (fdm->progress); gtk_widget_destroy (fdm->progress); fdm->progress = NULL; fdm->cancel = FALSE; } if (fdm->copy) { title = _("Source to copy matches destination"); text = g_strdup_printf (_ ("Unable to copy file:\n%s\nto itself."), fdm->dest); } else { title = _("Source to move matches destination"); text = g_strdup_printf (_ ("Unable to move file:\n%s\nto itself."), fdm->dest); } gd = file_util_gen_dlg (title, text, "PornView", "dlg_confirm", TRUE, cb_file_util_move_multiple_cancel, fdm); g_free (text); generic_dialog_add (gd, _("Continue"), cb_file_util_move_multiple_skip, TRUE); gtk_widget_show (gd->dialog); return; } else if (isfile (fdm->dest) && !fdm->confirmed && !fdm->confirm_all && !fdm->skip) { GenericDialog *gd; gchar *text; GtkWidget *hbox; if (fdm->progress) { gtk_grab_remove (fdm->progress); gtk_widget_destroy (fdm->progress); fdm->progress = NULL; fdm->cancel = FALSE; } text = g_strdup_printf (_("Overwrite file:\n %s\n with:\n %s"), fdm->dest, fdm->source); gd = file_util_gen_dlg (_("Overwrite file"), text, "PornView", "dlg_confirm", TRUE, cb_file_util_move_multiple_cancel, fdm); g_free (text); generic_dialog_add (gd, _("Yes"), cb_file_util_move_multiple_ok, TRUE); fdm->yes_all_button = generic_dialog_add (gd, _("Yes to all"), cb_file_util_move_multiple_all, FALSE); generic_dialog_add (gd, _("Skip"), cb_file_util_move_multiple_skip, FALSE); generic_dialog_add (gd, _("Skip all"), cb_file_util_move_multiple_skip_all, FALSE); generic_dialog_add_images (gd, fdm->dest, fdm->source); /* * rename option */ fdm->rename = FALSE; fdm->rename_all = FALSE; fdm->rename_auto = FALSE; hbox = gtk_hbox_new (FALSE, 5); gtk_box_pack_start (GTK_BOX (gd->vbox), hbox, FALSE, FALSE, 0); gtk_widget_show (hbox); fdm->rename_auto_box = gtk_check_button_new_with_label (_("Auto rename")); gtk_signal_connect (GTK_OBJECT (fdm->rename_auto_box), "clicked", GTK_SIGNAL_FUNC (cb_file_util_move_multiple_rename_auto), gd); gtk_box_pack_start (GTK_BOX (hbox), fdm->rename_auto_box, FALSE, FALSE, 0); gtk_widget_show (fdm->rename_auto_box); hbox = gtk_hbox_new (FALSE, 5); gtk_box_pack_start (GTK_BOX (gd->vbox), hbox, FALSE, FALSE, 0); gtk_widget_show (hbox); fdm->rename_box = gtk_check_button_new_with_label (_("Rename")); gtk_signal_connect (GTK_OBJECT (fdm->rename_box), "clicked", GTK_SIGNAL_FUNC (cb_file_util_move_multiple_rename), gd); gtk_box_pack_start (GTK_BOX (hbox), fdm->rename_box, FALSE, FALSE, 0); gtk_widget_show (fdm->rename_box); fdm->rename_entry = gtk_entry_new (); gtk_entry_set_text (GTK_ENTRY (fdm->rename_entry), filename_from_path (fdm->dest)); gtk_widget_set_sensitive (fdm->rename_entry, FALSE); gtk_box_pack_start (GTK_BOX (hbox), fdm->rename_entry, TRUE, TRUE, 0); gtk_widget_show (fdm->rename_entry); gtk_widget_show (gd->dialog); return; } else { gint success = FALSE; if (fdm->skip) { success = TRUE; if (!fdm->confirm_all) fdm->skip = FALSE; } else { gint try = TRUE; if (fdm->confirm_all && fdm->rename_all && isfile (fdm->dest)) { gchar *buf; buf = unique_filename_simple (fdm->dest); if (buf) { g_free (fdm->dest); fdm->dest = buf; } else { try = FALSE; } } if (try) { if (!fdm->progress) fdm->progress = dialog_progress_create (_("Pornview - copy/move"), _(" "), &fdm->cancel, 300, -1); gtk_grab_add (fdm->progress); if (fdm->copy) { gfloat c; c = (gfloat) fdm->count / (gfloat) fdm->length; dialog_progress_update (fdm->progress, _("PornView - copy"), g_basename (fdm->source), _(" "), c); if (fdm->cancel) break; success = copy_file (fdm->source, fdm->dest); fdm->count++; } else { gfloat c; c = (gfloat) fdm->count / (gfloat) fdm->length; dialog_progress_update (fdm->progress, _("PornView - move"), g_basename (fdm->source), _(" "), c); if (fdm->cancel) break; while (gtk_events_pending ()) gtk_main_iteration (); fdm->count++; if (move_file (fdm->source, fdm->dest)) { success = TRUE; file_maint_moved (fdm->source, fdm->dest, fdm->source_list); } } } } if (!success) { GenericDialog *gd; const gchar *title; gchar *text; if (fdm->progress) { gtk_grab_remove (fdm->progress); gtk_widget_destroy (fdm->progress); fdm->progress = NULL; fdm->cancel = FALSE; } if (fdm->copy) { title = _("Error copying file"); text = g_strdup_printf (_ ("Unable to copy file:\n%sto:\n%s\n during multiple file copy."), fdm->source, fdm->dest); } else { title = _("Error moving file"); text = g_strdup_printf (_ ("Unable to move file:\n%sto:\n%s\n during multiple file move."), fdm->source, fdm->dest); } gd = file_util_gen_dlg (title, text, "PornView", "dlg_confirm", TRUE, cb_file_util_move_multiple_cancel, fdm); g_free (text); generic_dialog_add (gd, _("Continue"), cb_file_util_move_multiple_skip, TRUE); gtk_widget_show (gd->dialog); return; } fdm->confirmed = FALSE; g_free (fdm->dest); fdm->dest = NULL; } }