Interface FileChooser
- All Superinterfaces:
Proxy
- All Known Implementing Classes:
FileChooser.FileChooserImpl
,FileChooserDialog
,FileChooserNative
,FileChooserWidget
GtkFileChooser
is an interface that can be implemented by file
selection widgets.
In GTK, the main objects that implement this interface are
FileChooserWidget
and FileChooserDialog
.
You do not need to write an object that implements the GtkFileChooser
interface unless you are trying to adapt an existing file selector to
expose a standard programming interface.
GtkFileChooser
allows for shortcuts to various places in the filesystem.
In the default implementation these are displayed in the left pane. It
may be a bit confusing at first that these shortcuts come from various
sources and in various flavours, so lets explain the terminology here:
- Bookmarks: are created by the user, by dragging folders from the right pane to the left pane, or by using the “Add”. Bookmarks can be renamed and deleted by the user.
- Shortcuts: can be provided by the application. For example, a Paint program may want to add a shortcut for a Clipart folder. Shortcuts cannot be modified by the user.
- Volumes: are provided by the underlying filesystem abstraction. They are the “roots” of the filesystem.
File Names and Encodings
When the user is finished selecting files in a GtkFileChooser
, your
program can get the selected filenames as GFile
s.
Adding options
You can add extra widgets to a file chooser to provide options
that are not present in the default design, by using
addChoice(java.lang.String, java.lang.String, java.lang.String[], java.lang.String[])
. Each choice has an identifier and
a user visible label; additionally, each choice can have multiple
options. If a choice has no option, it will be rendered as a
check button with the given label; if a choice has options, it will
be rendered as a combo box.
-
Nested Class Summary
Modifier and TypeInterfaceDescriptionstatic interface
FileChooser.Builder<B extends Builder<B>>
Deprecated.static class
Deprecated.The FileChooserImpl type represents a native instance of the FileChooser interface. -
Method Summary
Modifier and TypeMethodDescriptiondefault void
Deprecated.default void
addFilter
(FileFilter filter) Deprecated.UseFileDialog
insteaddefault boolean
addShortcutFolder
(File folder) Deprecated.UseFileDialog
insteaddefault FileChooserAction
Deprecated.UseFileDialog
insteaddefault String
Deprecated.UseFileDialog
insteaddefault boolean
Deprecated.UseFileDialog
insteaddefault File
Deprecated.UseFileDialog
insteaddefault String
Deprecated.UseFileDialog
insteaddefault File
getFile()
Deprecated.UseFileDialog
insteaddefault ListModel
getFiles()
Deprecated.UseFileDialog
insteaddefault FileFilter
Deprecated.UseFileDialog
insteaddefault ListModel
Deprecated.UseFileDialog
insteaddefault boolean
Deprecated.UseFileDialog
insteaddefault ListModel
Deprecated.UseFileDialog
insteadstatic Type
getType()
Deprecated.Get the GType of the FileChooser classdefault void
removeChoice
(String id) Deprecated.UseFileDialog
insteaddefault void
removeFilter
(FileFilter filter) Deprecated.UseFileDialog
insteaddefault boolean
removeShortcutFolder
(File folder) Deprecated.UseFileDialog
insteaddefault void
setAction
(FileChooserAction action) Deprecated.UseFileDialog
insteaddefault void
Deprecated.UseFileDialog
insteaddefault void
setCreateFolders
(boolean createFolders) Deprecated.UseFileDialog
insteaddefault boolean
setCurrentFolder
(@Nullable File file) Deprecated.UseFileDialog
insteaddefault void
setCurrentName
(String name) Deprecated.UseFileDialog
insteaddefault boolean
Deprecated.UseFileDialog
insteaddefault void
setFilter
(FileFilter filter) Deprecated.UseFileDialog
insteaddefault void
setSelectMultiple
(boolean selectMultiple) Deprecated.UseFileDialog
instead
-
Method Details
-
getType
-
addChoice
@Deprecated default void addChoice(String id, String label, @Nullable @Nullable String[] options, @Nullable @Nullable String[] optionLabels) Deprecated.UseFileDialog
insteadAdds a 'choice' to the file chooser.This is typically implemented as a combobox or, for boolean choices, as a checkbutton. You can select a value using
setChoice(java.lang.String, java.lang.String)
before the dialog is shown, and you can obtain the user-selected value in theGtk.Dialog::response
signal handler usinggetChoice(java.lang.String)
.- Parameters:
id
- id for the added choicelabel
- user-visible label for the added choiceoptions
- ids for the options of the choice, ornull
for a boolean choiceoptionLabels
- user-visible labels for the options, must be the same length asoptions
-
addFilter
Deprecated.UseFileDialog
insteadAddsfilter
to the list of filters that the user can select between.When a filter is selected, only files that are passed by that filter are displayed.
Note that the this FileChooser takes ownership of the filter if it is floating, so you have to ref and sink it if you want to keep a reference.
- Parameters:
filter
- aGtkFileFilter
-
addShortcutFolder
Deprecated.UseFileDialog
insteadAdds a folder to be displayed with the shortcut folders in a file chooser.- Parameters:
folder
- aGFile
for the folder to add- Returns:
true
if the folder could be added successfully,false
otherwise.- Throws:
GErrorException
- seeGError
-
getAction
Deprecated.UseFileDialog
insteadGets the type of operation that the file chooser is performing.- Returns:
- the action that the file selector is performing
-
getChoice
Deprecated.UseFileDialog
insteadGets the currently selected option in the 'choice' with the given ID.- Parameters:
id
- the ID of the choice to get- Returns:
- the ID of the currently selected option
-
getCreateFolders
Deprecated.UseFileDialog
insteadGets whether file chooser will offer to create new folders.- Returns:
true
if the Create Folder button should be displayed.
-
getCurrentFolder
Deprecated.UseFileDialog
insteadGets the current folder of this FileChooser asGFile
.- Returns:
- the
GFile
for the current folder.
-
getCurrentName
Deprecated.UseFileDialog
insteadGets the current name in the file selector, as entered by the user.This is meant to be used in save dialogs, to get the currently typed filename when the file itself does not exist yet.
- Returns:
- The raw text from the file chooser’s “Name” entry. Free with g_free(). Note that this string is not a full pathname or URI; it is whatever the contents of the entry are. Note also that this string is in UTF-8 encoding, which is not necessarily the system’s encoding for filenames.
-
getFile
Deprecated.UseFileDialog
insteadGets theGFile
for the currently selected file in the file selector.If multiple files are selected, one of the files will be returned at random.
If the file chooser is in folder mode, this function returns the selected folder.
- Returns:
- a selected
GFile
. You own the returned file; use g_object_unref() to release it.
-
getFiles
Deprecated.UseFileDialog
insteadLists all the selected files and subfolders in the current folder of this FileChooser asGFile
.- Returns:
- a list model containing a
GFile
for each selected file and subfolder in the current folder. Free the returned list with g_object_unref().
-
getFilter
-
getFilters
Deprecated.UseFileDialog
insteadGets the current set of user-selectable filters, as a list model.See
addFilter(org.gnome.gtk.FileFilter)
andremoveFilter(org.gnome.gtk.FileFilter)
for changing individual filters.You should not modify the returned list model. Future changes to this FileChooser may or may not affect the returned model.
- Returns:
- a
GListModel
containing the current set of user-selectable filters.
-
getSelectMultiple
Deprecated.UseFileDialog
insteadGets whether multiple files can be selected in the file chooser.- Returns:
true
if multiple files can be selected.
-
getShortcutFolders
Deprecated.UseFileDialog
insteadQueries the list of shortcut folders in the file chooser.You should not modify the returned list model. Future changes to this FileChooser may or may not affect the returned model.
- Returns:
- A list model of
GFile
s
-
removeChoice
Deprecated.UseFileDialog
insteadRemoves a 'choice' that has been added with gtk_file_chooser_add_choice().- Parameters:
id
- the ID of the choice to remove
-
removeFilter
Deprecated.UseFileDialog
insteadRemovesfilter
from the list of filters that the user can select between.- Parameters:
filter
- aGtkFileFilter
-
removeShortcutFolder
Deprecated.UseFileDialog
insteadRemoves a folder from the shortcut folders in a file chooser.- Parameters:
folder
- aGFile
for the folder to remove- Returns:
true
if the folder could be removed successfully,false
otherwise.- Throws:
GErrorException
- seeGError
-
setAction
Deprecated.UseFileDialog
insteadSets the type of operation that the chooser is performing.The user interface is adapted to suit the selected action.
For example, an option to create a new folder might be shown if the action is
FileChooserAction.SAVE
but not if the action isFileChooserAction.OPEN
.- Parameters:
action
- the action that the file selector is performing
-
setChoice
Deprecated.UseFileDialog
insteadSelects an option in a 'choice' that has been added with gtk_file_chooser_add_choice().For a boolean choice, the possible options are "true" and "false".
- Parameters:
id
- the ID of the choice to setoption
- the ID of the option to select
-
setCreateFolders
Deprecated.UseFileDialog
insteadSets whether file chooser will offer to create new folders.This is only relevant if the action is not set to be
FileChooserAction.OPEN
.- Parameters:
createFolders
-true
if the Create Folder button should be displayed
-
setCurrentFolder
Deprecated.UseFileDialog
insteadSets the current folder for this FileChooser from aGFile
.- Parameters:
file
- theGFile
for the new folder- Returns:
true
if the folder could be changed successfully,false
otherwise.- Throws:
GErrorException
- seeGError
-
setCurrentName
Deprecated.UseFileDialog
insteadSets the current name in the file selector, as if entered by the user.Note that the name passed in here is a UTF-8 string rather than a filename. This function is meant for such uses as a suggested name in a “Save As...” dialog. You can pass “Untitled.doc” or a similarly suitable suggestion for the
name
.If you want to preselect a particular existing file, you should use
setFile(org.gnome.gio.File)
instead.Please see the documentation for those functions for an example of using
setCurrentName(java.lang.String)
as well.- Parameters:
name
- the filename to use, as a UTF-8 string
-
setFile
Deprecated.UseFileDialog
insteadSetsfile
as the current filename for the file chooser.This includes changing to the file’s parent folder and actually selecting the file in list. If the this FileChooser is in
FileChooserAction.SAVE
mode, the file’s base name will also appear in the dialog’s file name entry.If the file name isn’t in the current folder of this FileChooser, then the current folder of this FileChooser will be changed to the folder containing
file
.Note that the file must exist, or nothing will be done except for the directory change.
If you are implementing a save dialog, you should use this function if you already have a file name to which the user may save; for example, when the user opens an existing file and then does “Save As…”. If you don’t have a file name already — for example, if the user just created a new file and is saving it for the first time, do not call this function.
Instead, use something similar to this:
static void prepare_file_chooser (GtkFileChooser *chooser, GFile *existing_file) { gboolean document_is_new = (existing_file == NULL); if (document_is_new) { GFile *default_file_for_saving = g_file_new_for_path ("./out.txt"); // the user just created a new document gtk_file_chooser_set_current_folder (chooser, default_file_for_saving, NULL); gtk_file_chooser_set_current_name (chooser, "Untitled document"); g_object_unref (default_file_for_saving); } else { // the user edited an existing document gtk_file_chooser_set_file (chooser, existing_file, NULL); } }
- Parameters:
file
- theGFile
to set as current- Returns:
- Not useful
- Throws:
GErrorException
- seeGError
-
setFilter
Deprecated.UseFileDialog
insteadSets the current filter.Only the files that pass the filter will be displayed. If the user-selectable list of filters is non-empty, then the filter should be one of the filters in that list.
Setting the current filter when the list of filters is empty is useful if you want to restrict the displayed set of files without letting the user change it.
- Parameters:
filter
- aGtkFileFilter
-
setSelectMultiple
Deprecated.UseFileDialog
insteadSets whether multiple files can be selected in the file chooser.This is only relevant if the action is set to be
FileChooserAction.OPEN
orFileChooserAction.SELECT_FOLDER
.- Parameters:
selectMultiple
-true
if multiple files can be selected.
-
FileDialog
instead