Exemplo n.º 1
0
char *
go_gtk_select_image (GtkWindow *toplevel, const char *initial)
{
	const char *key = "go_gtk_select_image";
	char *uri = NULL;
	GtkFileChooser *fsel;

	g_return_val_if_fail (GTK_IS_WINDOW (toplevel), NULL);

	fsel = gui_image_chooser_new (FALSE);

	if (!initial)
		initial = g_object_get_data (G_OBJECT (toplevel), key);
	if (initial)
		gtk_file_chooser_set_uri (fsel, initial);
	g_object_set (G_OBJECT (fsel), "title", _("Select an Image"), NULL);

	/* Show file selector */
	if (go_gtk_file_sel_dialog (toplevel, GTK_WIDGET (fsel))) {
		uri = gtk_file_chooser_get_uri (fsel);
		g_object_set_data_full (G_OBJECT (toplevel),
					key, g_strdup (uri),
					g_free);
	}
	gtk_widget_destroy (GTK_WIDGET (fsel));
	return uri;
}
Exemplo n.º 2
0
static void
file_export_dialog_response (GtkWidget *dialog,
                             gint       response_id,
                             gpointer   data)
{
  if (response_id == FILE_SAVE_RESPONSE_OTHER_DIALOG)
    {
      GimpFileDialog *file_dialog = GIMP_FILE_DIALOG (dialog);
      GtkWindow      *parent;
      GtkWidget      *other;
      gchar          *folder;
      gchar          *uri;
      gchar          *name;

      parent = gtk_window_get_transient_for (GTK_WINDOW (dialog));
      folder = gtk_file_chooser_get_current_folder_uri (GTK_FILE_CHOOSER (dialog));
      uri    = gtk_file_chooser_get_uri (GTK_FILE_CHOOSER (dialog));
      name   = file_utils_uri_display_basename (uri);
      g_free (uri);

      other = file_save_dialog_show (file_dialog->image->gimp,
                                     file_dialog->image,
                                     GTK_WIDGET (parent),
                                     _("Save Image"),
                                     FALSE, FALSE, NULL);

      gtk_file_chooser_set_current_folder_uri (GTK_FILE_CHOOSER (other), folder);
      gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (other), name);

      g_free (folder);
      g_free (name);
    }
}
Exemplo n.º 3
0
void
nsFilePicker::ReadValuesFromFileChooser(GtkWidget *file_chooser)
{
  mFiles.Clear();

  if (mMode == nsIFilePicker::modeOpenMultiple) {
    mFileURL.Truncate();

    GSList *list = gtk_file_chooser_get_filenames(GTK_FILE_CHOOSER(file_chooser));
    g_slist_foreach(list, ReadMultipleFiles, static_cast<gpointer>(&mFiles));
    g_slist_free(list);
  } else {
    gchar *filename = gtk_file_chooser_get_uri(GTK_FILE_CHOOSER(file_chooser));
    mFileURL.Assign(filename);
    g_free(filename);
  }

  GtkFileFilter *filter = gtk_file_chooser_get_filter(GTK_FILE_CHOOSER(file_chooser));
  GSList *filter_list = gtk_file_chooser_list_filters(GTK_FILE_CHOOSER(file_chooser));

  mSelectedType = static_cast<PRInt16>(g_slist_index(filter_list, filter));
  g_slist_free(filter_list);

  // Remember last used directory.
  nsCOMPtr<nsILocalFile> file;
  GetFile(getter_AddRefs(file));
  if (file) {
    nsCOMPtr<nsIFile> dir;
    file->GetParent(getter_AddRefs(dir));
    nsCOMPtr<nsILocalFile> localDir(do_QueryInterface(dir));
    if (localDir) {
      localDir.swap(mPrevDisplayDirectory);
    }
  }
}
Exemplo n.º 4
0
static void
get_options_from_widgets (DialogData  *data,
			  char       **base_dir,
			  char       **filename,
			  const char **include_files,
			  const char **exclude_files,
			  const char **exclude_folders,
			  gboolean    *update,
			  gboolean    *recursive,
			  gboolean    *no_symlinks)
{
	*base_dir = gtk_file_chooser_get_current_folder_uri (GTK_FILE_CHOOSER (data->dialog));
	*filename = gtk_file_chooser_get_uri (GTK_FILE_CHOOSER (data->dialog));
	*update = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (data->add_if_newer_checkbutton));
	*recursive = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (data->include_subfold_checkbutton));
	*no_symlinks = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (data->exclude_symlinks));

	*include_files = gtk_entry_get_text (GTK_ENTRY (data->include_files_entry));
	if (utf8_only_spaces (*include_files))
		*include_files = "";

	*exclude_files = gtk_entry_get_text (GTK_ENTRY (data->exclude_files_entry));
	if (utf8_only_spaces (*exclude_files))
		*exclude_files = "";

	*exclude_folders = gtk_entry_get_text (GTK_ENTRY (data->exclude_folders_entry));
	if (utf8_only_spaces (*exclude_folders))
		*exclude_folders = "";
}
Exemplo n.º 5
0
static void
select_file_cb (GtkEntry *entry, GtkEntryIconPosition pos, GdkEventButton *ev, gpointer d)
{
  GtkWidget *dlg;
  static gchar *dir = NULL;

  if (ev->button != 1 || pos != GTK_ENTRY_ICON_SECONDARY)
    return;

  dlg = gtk_file_chooser_dialog_new (_("YAD - Select File"),
                                     GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (entry))),
                                     GTK_FILE_CHOOSER_ACTION_OPEN,
                                     GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, NULL);
  if (dir)
    gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (dlg), dir);

  if (gtk_dialog_run (GTK_DIALOG (dlg)) == GTK_RESPONSE_ACCEPT)
    {
      gchar *uri = gtk_file_chooser_get_uri (GTK_FILE_CHOOSER (dlg));
      gtk_entry_set_text (entry, uri);
      g_free (uri);

      /* keep current dir */
      g_free (dir);
      dir = gtk_file_chooser_get_current_folder (GTK_FILE_CHOOSER (dlg));
    }

  gtk_widget_destroy (dlg);
}
Exemplo n.º 6
0
void
action_equ_save_preset_file(void)
{
    GtkWidget *dialog;
    gchar *file_uri, *title;

    dialog = make_filebrowser(_("Save equalizer preset"), TRUE);

    title = aud_drct_get_title ();

    if (title != NULL)
    {
        gchar * ext = EQUALIZER_DEFAULT_PRESET_EXT;
        gchar * eqname = g_strdup_printf ("%s.%s", title, ext);
        gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (dialog), eqname);
        g_free (eqname);
        str_unref (title);
    }

    if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT)
    {
        file_uri = gtk_file_chooser_get_uri(GTK_FILE_CHOOSER(dialog));
        EqualizerPreset * preset = aud_equalizer_preset_new ("");
        equalizerwin_update_preset (preset);
        aud_save_preset_file(preset, file_uri);
        aud_equalizer_preset_free(preset);
        g_free(file_uri);
    }

    gtk_widget_destroy(dialog);
}
Exemplo n.º 7
0
static gchar * show_dialog(GtkWindow* parent, GtkFileChooserAction action)
{
	GtkWidget * dialog;
	GtkFileFilter * filter;
	gchar * uri = NULL;

	filter = gtk_file_filter_new();
	gtk_file_filter_add_pattern(filter, "*.snsg");

	dialog = hildon_file_chooser_dialog_new_with_properties(GTK_WINDOW(parent), 
		"action", action, "local-only", FALSE, "filter", filter, NULL);

	hildon_file_chooser_dialog_set_extension(HILDON_FILE_CHOOSER_DIALOG(dialog),
		"snsg");
#if defined(MAEMO)
	{
		gchar * games_dir = g_strdup_printf("%s/.games", g_getenv("MYDOCSDIR"));
		gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(dialog), games_dir);
		g_free(games_dir);
	}
#endif

	gtk_widget_show_all(GTK_WIDGET(dialog));
	if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_OK) {
		uri = gtk_file_chooser_get_uri(GTK_FILE_CHOOSER(dialog));
	}

	gtk_widget_destroy(dialog);

	return uri;
}
Exemplo n.º 8
0
static GtkFileChooserConfirmation
confirm_overwrite_callback (GtkFileChooser *dialog,
			    gpointer        data)
{
	gchar *uri;
	GFile *file;
	GtkFileChooserConfirmation res;

	cedit_debug (DEBUG_COMMANDS);

	uri = gtk_file_chooser_get_uri (dialog);
	file = g_file_new_for_uri (uri);
	g_free (uri);

	if (is_read_only (file))
	{
		if (replace_read_only_file (GTK_WINDOW (dialog), file))
			res = GTK_FILE_CHOOSER_CONFIRMATION_ACCEPT_FILENAME;
		else
			res = GTK_FILE_CHOOSER_CONFIRMATION_SELECT_AGAIN;
	}
	else
	{
		/* fall back to the default confirmation dialog */
		res = GTK_FILE_CHOOSER_CONFIRMATION_CONFIRM;
	}

	g_object_unref (file);

	return res;
}
Exemplo n.º 9
0
static void on_button_hash_clicked(void)
{
	if (gui_get_view() == GUI_VIEW_FILE) {
		// XXX: Workaround for when user clicks Cancel in FileChooserDialog and
		// XXX: uri is changed without emitting the "selection-changed" signal
		on_filechooserbutton_selection_changed();
		if (!gtk_widget_get_sensitive(GTK_WIDGET(gui.button_hash)))
			return;
	}

	switch (gui_get_view()) {
		case GUI_VIEW_FILE: {
			gui_clear_digests();
			gui_set_state(GUI_STATE_BUSY);
			char *uri = gtk_file_chooser_get_uri(GTK_FILE_CHOOSER(
				gui.filechooserbutton));
			hash_file_start(uri);
			break;
		}
		case GUI_VIEW_TEXT:
			hash_string();
			break;
		case GUI_VIEW_FILE_LIST:
			gui_clear_digests();
			gui_set_state(GUI_STATE_BUSY);
			hash_file_list_start();
			break;
		default:
			g_assert_not_reached();
	}
}
Exemplo n.º 10
0
JNIEXPORT jstring JNICALL
Java_org_gnome_gtk_GtkFileChooser_gtk_1file_1chooser_1get_1uri
(
	JNIEnv* env,
	jclass cls,
	jlong _self
)
{
	gchar* result;
	jstring _result;
	GtkFileChooser* self;

	// convert parameter self
	self = (GtkFileChooser*) _self;

	// call function
	result = gtk_file_chooser_get_uri(self);

	// cleanup parameter self

	// translate return value to JNI type
	_result = (jstring) bindings_java_newString(env, result);

	// cleanup return value
	if (result != NULL) {
		g_free(result);
	}

	// and finally
	return _result;
}
Exemplo n.º 11
0
static void
ok_clicked_cb (GtkWidget  *widget,
	       DialogData *data)
{
	char                 *s_value;
	GFile                *destination;
	const char           *template;
	char                 *mime_type;
	char                 *file_extension;
	GthContactSheetTheme *theme;
	int                   images_per_index;
	int                   single_page;
	int                   columns;
	GthFileDataSort      *sort_type;
	gboolean              sort_inverse;
	int                   thumbnail_size;
	GtkTreeIter           iter;
	GthTask              *task;

	/* save the options */

	s_value = gtk_file_chooser_get_uri (GTK_FILE_CHOOSER (GET_WIDGET ("destination_filechooserbutton")));
	destination = g_file_new_for_uri (s_value);
	_g_settings_set_uri (data->settings, PREF_IMAGE_WALL_DESTINATION, s_value);
	g_free (s_value);
Exemplo n.º 12
0
bool ChooseDirectory(
	fs::path&	outDirectory)
{
	GtkWidget* dialog = nil;
	bool result = false;

	try
	{
		dialog = 
			gtk_file_chooser_dialog_new(_("Select Folder"), nil,
				GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,
				GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
				GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
				NULL);
		
		THROW_IF_NIL(dialog);
	
		string currentFolder = gApp->GetCurrentFolder();
	
		if (currentFolder.length() > 0)
		{
			gtk_file_chooser_set_current_folder_uri(
				GTK_FILE_CHOOSER(dialog), currentFolder.c_str());
		}
		
		if (fs::exists(outDirectory) and outDirectory != fs::path())
		{
			gtk_file_chooser_select_filename(GTK_FILE_CHOOSER(dialog),
				outDirectory.string().c_str());
		}
		
		if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT)
		{
			char* uri = gtk_file_chooser_get_uri(GTK_FILE_CHOOSER(dialog));
			if (uri != nil)
			{
				MFile url(uri, true);
				outDirectory = url.GetPath();
	
				g_free(uri);
	
				result = true;
			}
//
//			gApp->SetCurrentFolder(
//				gtk_file_chooser_get_current_folder_uri(GTK_FILE_CHOOSER(dialog)));
		}
	}
	catch (exception& e)
	{
		if (dialog)
			gtk_widget_destroy(dialog);
		
		throw;
	}
	
	gtk_widget_destroy(dialog);

	return result;
}
static void
open_file_response_cb (GtkWidget *w,
		       int        response,
		       GtkWidget *file_sel)
{
	FrWindow *window = NULL;
	char     *uri;

	if ((response == GTK_RESPONSE_CANCEL) || (response == GTK_RESPONSE_DELETE_EVENT)) {
		gtk_widget_destroy (file_sel);
		return;
	}

	window = g_object_get_data (G_OBJECT (file_sel), "fr_window");
	uri = gtk_file_chooser_get_uri (GTK_FILE_CHOOSER (file_sel));

	if ((window == NULL) || (uri == NULL))
		return;

	if (fr_window_archive_is_present (window))
		window = (FrWindow *) fr_window_new ();
	g_signal_connect (G_OBJECT (window),
			  "archive_loaded",
			  G_CALLBACK (window_archive_loaded_cb),
			  file_sel);
	fr_window_archive_open (window, uri, GTK_WINDOW (file_sel));

	g_free (uri);
}
Exemplo n.º 14
0
static char * select_file (bool_t save, const char * default_filename)
{
    GtkWidget * dialog = gtk_file_chooser_dialog_new (save ?
     _("Export Playlist") : _("Import Playlist"), NULL, save ?
     GTK_FILE_CHOOSER_ACTION_SAVE : GTK_FILE_CHOOSER_ACTION_OPEN, NULL, NULL);

    if (default_filename)
        gtk_file_chooser_set_uri ((GtkFileChooser *) dialog, default_filename);

    gtk_dialog_add_button ((GtkDialog *) dialog, GTK_STOCK_CANCEL,
     GTK_RESPONSE_REJECT);
    gtk_dialog_add_button ((GtkDialog *) dialog, save ? GTK_STOCK_SAVE :
     GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT);

    gtk_dialog_set_default_response ((GtkDialog *) dialog, GTK_RESPONSE_ACCEPT);

    char * path = aud_get_string ("audgui", "playlist_path");
    if (path[0])
        gtk_file_chooser_set_current_folder_uri ((GtkFileChooser *) dialog, path);
    g_free (path);

    char * filename = NULL;
    if (gtk_dialog_run ((GtkDialog *) dialog) == GTK_RESPONSE_ACCEPT)
        filename = gtk_file_chooser_get_uri ((GtkFileChooser *) dialog);

    path = gtk_file_chooser_get_current_folder_uri ((GtkFileChooser *) dialog);
    aud_set_string ("audgui", "playlist_path", path);
    g_free (path);

    gtk_widget_destroy (dialog);
    return filename;
}
Exemplo n.º 15
0
static void configure_response_cb (GtkWidget * window, int response)
{
    if (response != GTK_RESPONSE_OK)
    {
        gtk_widget_destroy (window);
        return;
    }

    fileext = gtk_combo_box_get_active(GTK_COMBO_BOX(fileext_combo));

    g_free (file_path);
    file_path = gtk_file_chooser_get_uri ((GtkFileChooser *) path_dirbrowser);

    use_suffix =
        gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(use_suffix_toggle));

    prependnumber =
        gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(prependnumber_toggle));

    aud_set_int ("filewriter", "fileext", fileext);
    aud_set_bool ("filewriter", "filenamefromtags", filenamefromtags);
    aud_set_string ("filewriter", "file_path", file_path);
    aud_set_bool ("filewriter", "prependnumber", prependnumber);
    aud_set_bool ("filewriter", "save_original", save_original);
    aud_set_bool ("filewriter", "use_suffix", use_suffix);

    gtk_widget_destroy (window);
}
Exemplo n.º 16
0
static gchar *
brasero_file_chooser_get_selected_uri (BraseroURIContainer *container)
{
	BraseroFileChooser *chooser;

	chooser = BRASERO_FILE_CHOOSER (container);
	return gtk_file_chooser_get_uri (GTK_FILE_CHOOSER (chooser->priv->chooser));
}
Exemplo n.º 17
0
static gchar *
rejilla_file_chooser_get_selected_uri (RejillaURIContainer *container)
{
	RejillaFileChooser *chooser;

	chooser = REJILLA_FILE_CHOOSER (container);
	return gtk_file_chooser_get_uri (GTK_FILE_CHOOSER (chooser->priv->chooser));
}
Exemplo n.º 18
0
static void
proxy_uri_file_set_cb (GtkFileChooser* button,
                       GObject*        object)
{
    const gchar* file = gtk_file_chooser_get_uri (button);
    const gchar* property = g_object_get_data (G_OBJECT (button), "property");
    g_object_set (object, property, file, NULL);
}
Exemplo n.º 19
0
static void
rb_podcast_main_source_btn_file_change_cb (GtkFileChooserButton *widget, const char *key)
{
	char *uri;
	
	uri = gtk_file_chooser_get_uri (GTK_FILE_CHOOSER (widget));
	eel_gconf_set_string (key, uri);
	g_free (uri);
}
Exemplo n.º 20
0
/**
 * seahorse_util_chooser_open_prompt:
 * @dialog: open dialog to display
 *
 * Display an open dialog
 *
 * Returns: The uri of the file to open or NULL
 */
gchar*      
seahorse_util_chooser_open_prompt (GtkDialog *dialog)
{
    gchar *uri = NULL;
    
    if(gtk_dialog_run (dialog) == GTK_RESPONSE_ACCEPT)
        uri = gtk_file_chooser_get_uri (GTK_FILE_CHOOSER (dialog));

    gtk_widget_destroy (GTK_WIDGET (dialog));
    return uri;
}
Exemplo n.º 21
0
static void on_filechooserbutton_selection_changed(void)
{
	char *uri = gtk_file_chooser_get_uri(GTK_FILE_CHOOSER(gui.filechooserbutton));

	gtk_widget_set_sensitive(GTK_WIDGET(gui.button_hash), uri ? true : false);

	if (uri)
		gtk_widget_grab_focus(GTK_WIDGET(gui.button_hash));

	gui_clear_digests();
}
Exemplo n.º 22
0
static void
chooser_selection_changed_cb (GtkFileChooser *chooser,
			      gpointer        user_data)
{
  gchar *filename;

  filename = gtk_file_chooser_get_uri (chooser);
  g_message ("%s::selection-changed\n\tSelection:`%s'\nDone.\n",
	     G_OBJECT_TYPE_NAME (chooser), filename);
  g_free (filename);
}
Exemplo n.º 23
0
static void
device_info_bar_response_cb (GtkInfoBar *bar, gint response, RBImportDialog *dialog)
{
	RBSource *source;
	const char *uri;

	hide_import_job (dialog);
	g_signal_emit (dialog, signals[CLOSED], 0);
	uri = gtk_file_chooser_get_uri (GTK_FILE_CHOOSER (dialog->priv->file_chooser));
	source = rb_shell_guess_source_for_uri (dialog->priv->shell, uri);
	rb_shell_activate_source (dialog->priv->shell, source, FALSE, NULL);
}
Exemplo n.º 24
0
static void
chooser_file_activated_cb (GtkFileChooser *chooser,
			   gpointer        user_data)
{
  gchar *folder, *filename;

  folder = gtk_file_chooser_get_current_folder_uri (chooser);
  filename = gtk_file_chooser_get_uri (chooser);
  g_message ("%s::file-activated\n\tFolder: `%s'\n\tFilename: `%s'\nDone.\n",
	     G_OBJECT_TYPE_NAME (chooser), folder, filename);
  g_free (folder);
  g_free (filename);
}
Exemplo n.º 25
0
static void
panel_properties_dialog_image_chooser_changed (PanelPropertiesDialog *dialog)
{
	char *uri;

	uri = gtk_file_chooser_get_uri (GTK_FILE_CHOOSER (dialog->image_chooser));
	if (!uri)
		uri = g_strdup ("");

	g_settings_set_string (dialog->settings_background,
			       PANEL_BACKGROUND_IMAGE_URI_KEY, uri);
	g_free (uri);
}
Exemplo n.º 26
0
void
callback_stream_chooser_new_stream (GtkFileChooserButton * widget,
    gpointer user_data)
{
  if (ui->file_name)
    g_free (ui->file_name);
  ui->file_name = gtk_file_chooser_get_filename ((GtkFileChooser *) widget);

  if (ui->uri)
    g_free (ui->uri);
  ui->uri = gtk_file_chooser_get_uri ((GtkFileChooser *) widget);
  gtk_widget_set_sensitive (ui->analyze_button, TRUE);
}
Exemplo n.º 27
0
void save_file_as_ok(GtkFileChooser *file_selection_box)
{
    gchar *uri=gtk_file_chooser_get_uri(file_selection_box);
    // Set the filename of the current document to be that
    document_set_GFile(document_manager_get_current_document(main_window.docmg), gtk_file_chooser_get_file(file_selection_box));
    document_set_untitled(document_manager_get_current_document(main_window.docmg), FALSE);
    gchar *basename = filename_get_basename(uri);
    g_free(uri);
    document_set_shortfilename(document_manager_get_current_document(main_window.docmg), basename);

    // Call Save method to actually save it now it has a filename
    on_save1_activate(NULL);
}
Exemplo n.º 28
0
static void
clear_options_cb (GtkWidget  *w,
		  DialogData *data)
{
	sync_widgets_with_options (data,
				   gtk_file_chooser_get_current_folder_uri (GTK_FILE_CHOOSER (data->dialog)),
				   gtk_file_chooser_get_uri (GTK_FILE_CHOOSER (data->dialog)),
				   "",
				   "",
				   "",
				   FALSE,
				   TRUE,
				   FALSE);
}
Exemplo n.º 29
0
static void deja_dup_config_location_file_browse_clicked (DejaDupConfigLocationFile* self) {
	const gchar* _tmp0_ = NULL;
	GtkWidget* _tmp1_ = NULL;
	GtkFileChooserDialog* _tmp2_;
	GtkFileChooserDialog* _tmp3_;
	GtkFileChooserDialog* dlg;
	DejaDupConfigURLPart* _tmp4_;
	gchar* _tmp5_ = NULL;
	gchar* dir;
	GtkFileChooserDialog* _tmp6_;
	const gchar* _tmp7_;
	GtkFileChooserDialog* _tmp8_;
	gint _tmp9_ = 0;
	GtkFileChooserDialog* _tmp15_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _ ("Choose Folder");
	_tmp1_ = gtk_widget_get_ancestor ((GtkWidget*) self, GTK_TYPE_WINDOW);
	_tmp2_ = (GtkFileChooserDialog*) gtk_file_chooser_dialog_new (_tmp0_, GTK_IS_WINDOW (_tmp1_) ? ((GtkWindow*) _tmp1_) : NULL, GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, NULL);
	_tmp3_ = g_object_ref_sink (_tmp2_);
	dlg = _tmp3_;
	_tmp4_ = self->priv->entry;
	_tmp5_ = deja_dup_config_entry_get_text ((DejaDupConfigEntry*) _tmp4_);
	dir = _tmp5_;
	_tmp6_ = dlg;
	_tmp7_ = dir;
	gtk_file_chooser_set_current_folder ((GtkFileChooser*) _tmp6_, _tmp7_);
	_tmp8_ = dlg;
	_tmp9_ = gtk_dialog_run ((GtkDialog*) _tmp8_);
	if (_tmp9_ == ((gint) GTK_RESPONSE_ACCEPT)) {
		DejaDupSimpleSettings* _tmp10_ = NULL;
		DejaDupSimpleSettings* settings;
		DejaDupSimpleSettings* _tmp11_;
		GtkFileChooserDialog* _tmp12_;
		gchar* _tmp13_ = NULL;
		gchar* _tmp14_;
		_tmp10_ = deja_dup_get_settings (DEJA_DUP_FILE_ROOT);
		settings = _tmp10_;
		_tmp11_ = settings;
		_tmp12_ = dlg;
		_tmp13_ = gtk_file_chooser_get_uri ((GtkFileChooser*) _tmp12_);
		_tmp14_ = _tmp13_;
		deja_dup_simple_settings_set_string (_tmp11_, DEJA_DUP_FILE_PATH_KEY, _tmp14_);
		_g_free0 (_tmp14_);
		_g_object_unref0 (settings);
	}
	_tmp15_ = dlg;
	deja_dup_destroy_widget ((GtkWidget*) _tmp15_);
	_g_free0 (dir);
	_g_object_unref0 (dlg);
}
Exemplo n.º 30
-1
bool ChooseOneFile(
	MFile&	ioFile)
{
	GtkWidget* dialog = nil;
	bool result = false;
	
	try
	{
		dialog = 
			gtk_file_chooser_dialog_new(_("Select File"), nil,
				GTK_FILE_CHOOSER_ACTION_OPEN,
				GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
				GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
				NULL);
		
		THROW_IF_NIL(dialog);
	
		gtk_file_chooser_set_select_multiple(GTK_FILE_CHOOSER(dialog), false);
		gtk_file_chooser_set_local_only(GTK_FILE_CHOOSER(dialog), false);
		
		if (ioFile.IsValid())
		{
			gtk_file_chooser_select_uri(GTK_FILE_CHOOSER(dialog),
				ioFile.GetURI().c_str());
		}
		else if (gApp->GetCurrentFolder().length() > 0)
		{
			gtk_file_chooser_set_current_folder_uri(
				GTK_FILE_CHOOSER(dialog), gApp->GetCurrentFolder().c_str());
		}
		
		if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT)
		{
			char* uri = gtk_file_chooser_get_uri(GTK_FILE_CHOOSER(dialog));
			if (uri != nil)
			{
				ioFile = MFile(uri, true);
				g_free(uri);
	
				gApp->SetCurrentFolder(
					gtk_file_chooser_get_current_folder_uri(GTK_FILE_CHOOSER(dialog)));
	
				result = true;
			}
		}
	}
	catch (exception& e)
	{
		if (dialog)
			gtk_widget_destroy(dialog);
		
		throw;
	}
	
	gtk_widget_destroy(dialog);
	
	return result;
}