# class KFileDialog

###

Module | kio
Namespace |
Class | KFileDialog
Inherits | KDialog

Provides a user (and developer) friendly way to select files and directories.

The widget can be used as a drop in replacement for the QFileDialog widget, but has greater functionality and a nicer GUI.

You will usually want to use one of the static methods getOpenFileName(), getSaveFileName(), getOpenUrl() or for multiple files getOpenFileNames() or getOpenUrls().

The dialog has been designed to allow applications to customize it by subclassing. It uses geometry management to ensure that subclasses can easily add children that will be incorporated into the layout.

A file selection dialog.

Author Richard J. Moore <rich@kde.org>, Carsten Pfeiffer <pfeiffer@kde.org>

### enums

- OperationMode { Other, Opening, Saving }

enum details

### methods

- KFileDialog (startDir, filter, parent, widget)

  returns ctor

  Argument | Type | Default
  --- | --- | ---
  startDir | KUrl |
  filter | QString |
  parent | QWidget |
  widget | QWidget | 0

  Constructs a file dialog.

  startDir - This can either be

- The URL of the directory to start in.
- A KUrl() to start in the current working
directory, or the last directory where a file has been selected.
- An URL starting with 'kfiledialog:<keyword>' to start in the
directory last used by a filedialog in the same application that specified the same keyword.
- An URL starting with 'kfiledialog:<keyword>?global' to start
in the directory last used by a filedialog in any application that specified the same keyword.

filter - A shell glob or a mime-type-filter that specifies which files to display. See setFilter() and setMimeFilter() for details on how to use this argument.

parent - The parent widget of this dialog

widget - A widget, or a widget of widgets, for displaying custom data in the dialog. This can be used, for example, to display a check box with the caption "Open as read-only". When creating this widget, you don't need to specify a parent, since the widget's parent will be set automatically by KFileDialog.

- KFileDialog (a0)

  returns ctor
  Not implemented

  Argument | Type | Default
  --- | --- | ---
  a0 | KFileDialog |

- accept ( )

  returns Nothing

- actionCollection ( )

  returns KActionCollection

  Returns a pointer to the action collection, holding all the used KActions.

- baseUrl ( )

  returns KUrl

  Returns the currently shown directory.

- cancelButton ( )

  returns KPushButton

  Returns a pointer to the Cancel-Button in the filedialog. You may use it e.g. to set a custom text to it.

- clearFilter ( )

  returns Nothing

  Clears any mime- or namefilter. Does not reload the directory.

- currentFilter ( )

  returns QString

  Returns the current filter as entered by the user or one of the predefined set via setFilter().

  See also setFilter()

  See also filterChanged()

- currentFilterMimeType ( )

  returns KMimeType.Ptr

  Returns the mimetype for the desired output format.

  This is only valid if setMimeFilter() has been called previously.

  See also setFilterMimeType()

- currentMimeFilter ( )

  returns QString

  The mimetype for the desired output format.

  This is only valid if setMimeFilter() has been called previously.

  See also setMimeFilter()

- fileHighlighted (a0)

  returns Nothing
  SIGNAL ("fileHighlighted (const QString&)")

  Argument | Type | Default
  --- | --- | ---
  a0 | QString |

  Emitted when the user highlights a file.

- fileSelected (a0)

  returns Nothing
  SIGNAL ("fileSelected (const QString&)")

  Argument | Type | Default
  --- | --- | ---
  a0 | QString |

  Emitted when the user selects a file. It is only emitted in single- selection mode. The best way to get notified about selected file(s) is to connect to the okClicked() signal inherited from KDialog and call selectedFile(), selectedFiles(), selectedUrl() or selectedUrls().

- fileWidget ( )

  returns KAbstractFileWidget

  Returns the KFileWidget that implements most of this file dialog. If you link to libkfile you can cast this to a KFileWidget*.

- filterChanged (filter)

  returns Nothing
  SIGNAL ("filterChanged (const QString&)")

  Argument | Type | Default
  --- | --- | ---
  filter | QString |

  Emitted when the filter changed, i.e. the user entered an own filter or chose one of the predefined set via setFilter().

  filter - contains the new filter (only the extension part, not the explanation), i.e. "*.cpp" or "*.cpp *.cc".

  See also setFilter()

  See also currentFilter()

- filterWidget ( )

  returns KFileFilterCombo

  Returns the combobox that contains the filters You need to link to libkfile to use this widget.

- getExistingDirectory (startDir, parent, caption)

  returns QString
  static

  Argument | Type | Default
  --- | --- | ---
  startDir | KUrl | KUrl()
  parent | QWidget | 0
  caption | QString | QString()

  Creates a modal directory-selection dialog and returns the selected directory (local only) or an empty string if none was chosen.

  startDir - This can either be

- The URL of the directory to start in.
- A KUrl() to start in the current working
directory, or the last directory where a file has been selected.
- An URL starting with 'kfiledialog:<keyword>' to start in the
directory last used by a filedialog in the same application that specified the same keyword.
- An URL starting with 'kfiledialog:<keyword>?global' to start
in the directory last used by a filedialog in any application that specified the same keyword.

parent - The widget the dialog will be centered on initially.

caption - The name of the dialog widget. Returns the path to an existing local directory.

- getExistingDirectoryUrl (startDir, parent, caption)

  returns KUrl
  static

  Argument | Type | Default
  --- | --- | ---
  startDir | KUrl | KUrl()
  parent | QWidget | 0
  caption | QString | QString()

  Creates a modal directory-selection dialog and returns the selected directory or an empty string if none was chosen. This version supports remote urls.

  startDir - This can either be

- The URL of the directory to start in.
- A KUrl() to start in the current working
directory, or the last directory where a file has been selected.
- An URL starting with 'kfiledialog:<keyword>' to start in the
directory last used by a filedialog in the same application that specified the same keyword.
- An URL starting with 'kfiledialog:<keyword>?global' to start
in the directory last used by a filedialog in any application that specified the same keyword.

parent - The widget the dialog will be centered on initially.

caption - The name of the dialog widget. Returns the url to an existing directory (local or remote).

- getImageOpenUrl (startDir, parent, caption)

  returns KUrl
  static

  Argument | Type | Default
  --- | --- | ---
  startDir | KUrl | KUrl()
  parent | QWidget | 0
  caption | QString | QString()

  Creates a modal file dialog with an image previewer and returns the selected url or an empty string if none was chosen.

  startDir - This can either be

- The URL of the directory to start in.
- A KUrl() to start in the current working
directory, or the last directory where a file has been selected.
- An URL starting with 'kfiledialog:<keyword>' to start in the
directory last used by a filedialog in the same application that specified the same keyword.
- An URL starting with 'kfiledialog:<keyword>?global' to start
in the directory last used by a filedialog in any application that specified the same keyword.

parent - The widget the dialog will be centered on initially.

caption - The name of the dialog widget.

- getOpenFileName (startDir, filter, parent, caption)

  returns QString
  static

  Argument | Type | Default
  --- | --- | ---
  startDir | KUrl | KUrl()
  filter | QString | QString()
  parent | QWidget | 0
  caption | QString | QString()

  Creates a modal file dialog and return the selected filename or an empty string if none was chosen.

  Note that with this method the user must select an existing filename.

  startDir - This can either be

- The URL of the directory to start in.
- A KUrl() to start in the current working
directory, or the last directory where a file has been selected.
- An URL starting with 'kfiledialog:<keyword>' to start in the
directory last used by a filedialog in the same application that specified the same keyword.
- An URL starting with 'kfiledialog:<keyword>?global' to start
in the directory last used by a filedialog in any application that specified the same keyword.

filter - A shell glob or a mime-type-filter that specifies which files to display. The preferred option is to set a list of mimetype names, see setMimeFilter() for details. Otherwise you can set the text to be displayed for the each glob, and provide multiple globs, see setFilter() for details.

parent - The widget the dialog will be centered on initially.

caption - The name of the dialog widget.

- getOpenFileNameWId (startDir, filter, parent_id, caption)

  returns QString
  static

  Argument | Type | Default
  --- | --- | ---
  startDir | KUrl |
  filter | QString |
  parent_id | WId |
  caption | QString |

  Use this version only if you have no QWidget available as parent widget. This can be the case if the parent widget is a widget in another process or if the parent widget is a non-Qt widget. For example, in a GTK program.

- getOpenFileNames (startDir, filter, parent, caption)

  returns QStringList
  static

  Argument | Type | Default
  --- | --- | ---
  startDir | KUrl | KUrl()
  filter | QString | QString()
  parent | QWidget | 0
  caption | QString | QString()

  Creates a modal file dialog and returns the selected filenames or an empty list if none was chosen.

  Note that with this method the user must select an existing filename.

  startDir - This can either be

- The URL of the directory to start in.
- A KUrl() to start in the current working
directory, or the last directory where a file has been selected.
- An URL starting with 'kfiledialog:<keyword>' to start in the
directory last used by a filedialog in the same application that specified the same keyword.
- An URL starting with 'kfiledialog:<keyword>?global' to start
in the directory last used by a filedialog in any application that specified the same keyword.

filter - A shell glob or a mime-type-filter that specifies which files to display. The preferred option is to set a list of mimetype names, see setMimeFilter() for details. Otherwise you can set the text to be displayed for the each glob, and provide multiple globs, see setFilter() for details.

parent - The widget the dialog will be centered on initially.

caption - The name of the dialog widget.

- getOpenUrl (startDir, filter, parent, caption)

  returns KUrl
  static

  Argument | Type | Default
  --- | --- | ---
  startDir | KUrl | KUrl()
  filter | QString | QString()
  parent | QWidget | 0
  caption | QString | QString()

  Creates a modal file dialog and returns the selected URL or an empty string if none was chosen.

  Note that with this method the user must select an existing URL.

  startDir - This can either be

- The URL of the directory to start in.
- A KUrl() to start in the current working
directory, or the last directory where a file has been selected.
- An URL starting with 'kfiledialog:<keyword>' to start in the
directory last used by a filedialog in the same application that specified the same keyword.
- An URL starting with 'kfiledialog:<keyword>?global' to start
in the directory last used by a filedialog in any application that specified the same keyword.

filter - A shell glob or a mime-type-filter that specifies which files to display. The preferred option is to set a list of mimetype names, see setMimeFilter() for details. Otherwise you can set the text to be displayed for the each glob, and provide multiple globs, see setFilter() for details.

parent - The widget the dialog will be centered on initially.

caption - The name of the dialog widget.

- getOpenUrls (startDir, filter, parent, caption)

  returns KUrl.List
  static

  Argument | Type | Default
  --- | --- | ---
  startDir | KUrl | KUrl()
  filter | QString | QString()
  parent | QWidget | 0
  caption | QString | QString()

  Creates a modal file dialog and returns the selected URLs or an empty list if none was chosen.

  Note that with this method the user must select an existing filename.

  startDir - This can either be

- The URL of the directory to start in.
- A KUrl() to start in the current working
directory, or the last directory where a file has been selected.
- An URL starting with 'kfiledialog:<keyword>' to start in the
directory last used by a filedialog in the same application that specified the same keyword.
- An URL starting with 'kfiledialog:<keyword>?global' to start
in the directory last used by a filedialog in any application that specified the same keyword.

filter - A shell glob or a mime-type-filter that specifies which files to display. The preferred option is to set a list of mimetype names, see setMimeFilter() for details. Otherwise you can set the text to be displayed for the each glob, and provide multiple globs, see setFilter() for details.

parent - The widget the dialog will be centered on initially.

caption - The name of the dialog widget.

- getSaveFileName (startDir, filter, parent, caption)

  returns QString
  static

  Argument | Type | Default
  --- | --- | ---
  startDir | KUrl | KUrl()
  filter | QString | QString()
  parent | QWidget | 0
  caption | QString | QString()

  Creates a modal file dialog and returns the selected filename or an empty string if none was chosen.

  Note that with this method the user need not select an existing filename.

  startDir - This can either be

- The URL of the directory to start in.
- A KUrl() to start in the current working
directory, or the last directory where a file has been selected.
- An URL starting with 'kfiledialog:<keyword>' to start in the
directory last used by a filedialog in the same application that specified the same keyword.
- An URL starting with 'kfiledialog:<keyword>?global' to start
in the directory last used by a filedialog in any application that specified the same keyword.

filter - A shell glob or a mime-type-filter that specifies which files to display. The preferred option is to set a list of mimetype names, see setMimeFilter() for details. Otherwise you can set the text to be displayed for the each glob, and provide multiple globs, see setFilter() for details.

parent - The widget the dialog will be centered on initially.

caption - The name of the dialog widget.

- getSaveFileNameWId (startDir, filter, parent_id, caption)

  returns QString
  static

  Argument | Type | Default
  --- | --- | ---
  startDir | KUrl |
  filter | QString |
  parent_id | WId |
  caption | QString |

  This function accepts the window id of the parent window, instead of QWidget*. It should be used only when necessary.

- getSaveUrl (startDir, filter, parent, caption)

  returns KUrl
  static

  Argument | Type | Default
  --- | --- | ---
  startDir | KUrl | KUrl()
  filter | QString | QString()
  parent | QWidget | 0
  caption | QString | QString()

  Creates a modal file dialog and returns the selected filename or an empty string if none was chosen.

  Note that with this method the user need not select an existing filename.

  startDir - This can either be

- The URL of the directory to start in.
- A KUrl() to start in the current working
directory, or the last directory where a file has been selected.
- An URL starting with 'kfiledialog:<keyword>' to start in the
directory last used by a filedialog in the same application that specified the same keyword.
- An URL starting with 'kfiledialog:<keyword>?global' to start
in the directory last used by a filedialog in any application that specified the same keyword.

filter - A shell glob or a mime-type-filter that specifies which files to display. The preferred option is to set a list of mimetype names, see setMimeFilter() for details. Otherwise you can set the text to be displayed for the each glob, and provide multiple globs, see setFilter() for details.

parent - The widget the dialog will be centered on initially.

caption - The name of the dialog widget.

- getStartUrl (startDir, recentDirClass)

  returns KUrl
  static

  Argument | Type | Default
  --- | --- | ---
  startDir | KUrl |
  recentDirClass | QString |

  This method implements the logic to determine the user's default directory to be listed. E.g. the documents directory, home directory or a recently used directory.

  startDir - A url, to be used. May use the 'kfiledialog:keyword' and 'kfiledialog:keyword?global' syntax as documented in the KFileDialog() constructor.

  recentDirClass - If the 'kfiledialog:' syntax is used, recentDirClass will contain the string to be used later for KRecentDir.dir() Returns The URL that should be listed by default (e.g. by KFileDialog or KDirSelectDialog).

- keepsLocation ( )

  returns bool

  Returns whether the contents of the location edit are kept when changing directories.

- keyPressEvent (e)

  returns Nothing

  Argument | Type | Default
  --- | --- | ---
  e | QKeyEvent |

  Reimplemented to animate the cancel button.

- locationEdit ( )

  returns KUrlComboBox

  Returns the combobox used to type the filename or full location of the file. You need to link to libkfile to use this widget.

- mode ( )

  returns KFile.Modes

  Returns the mode of the filedialog.

  See also setMode()

- okButton ( )

  returns KPushButton

  Returns a pointer to the OK-Button in the filedialog. You may use it e.g. to set a custom text to it.

- operationMode ( )

  returns KFileDialog.OperationMode

  Returns the current operation mode, Opening, Saving or Other. Default is Other.

  See also operationMode

  See also KFileDialog.OperationMode

- selectedFile ( )

  returns QString

  Returns the full path of the selected file in the local filesystem. (Local files only)

- selectedFiles ( )

  returns QStringList

  Returns a list of all selected local files.

- selectedUrl ( )

  returns KUrl

  Returns The selected fully qualified filename.

- selectedUrls ( )

  returns KUrl.List

  Returns The list of selected URLs.

- selectionChanged ( )

  returns Nothing
  SIGNAL ("selectionChanged ()")

  Emitted when the user hilights one or more files in multiselection mode.

  Note: fileHighlighted() or fileSelected() are not emitted in multiselection mode. You may use selectedItems() to ask for the current highlighted items.

  See also fileSelected

- setFilter (filter)

  returns Nothing

  Argument | Type | Default
  --- | --- | ---
  filter | QString |

  Sets the filter to be used to filter.

  You can set more filters for the user to select separated by '\\n'. Every filter entry is defined through namefilter|text to display. If no '|' is found in the expression, just the namefilter is shown. Examples:

      kfile->setFilter("*.cpp|C++ Source Files\n*.h|Header files");
      kfile->setFilter("*.cpp");
      kfile->setFilter("*.cpp|Sources (*.cpp)");
      kfile->setFilter("*.cpp|" + i18n("Sources (*.cpp)"));
      kfile->setFilter("*.cpp *.cc *.C|C++ Source Files\n*.h *.H|Header files");

  Note: The text to display is not parsed in any way. So, if you want to show the suffix to select by a specific filter, you must repeat it.

  If the filter contains an unescaped '/', a mimetype-filter is assumed. If you would like a '/' visible in your filter it can be escaped with a '\'. You can specify multiple mimetypes like this (separated with space):

      kfile->setFilter( "image/png text/html text/plain" );
      kfile->setFilter( "*.cue|CUE\\/BIN Files (*.cue)" );

  See also filterChanged

  See also setMimeFilter

- setKeepLocation (keep)

  returns Nothing

  Argument | Type | Default
  --- | --- | ---
  keep | bool |

  Sets whether the filename/url should be kept when changing directories. This is for example useful when having a predefined filename where the full path for that file is searched.

  This is implicitly set when operationMode() is KFileDialog.Saving

  getSaveFileName() and getSaveUrl() set this to true by default, so that you can type in the filename and change the directory without having to type the name again.

- setLocationLabel (text)

  returns Nothing

  Argument | Type | Default
  --- | --- | ---
  text | QString |

  Sets the text to be displayed in front of the selection.

  The default is "Location". Most useful if you want to make clear what the location is used for.

- setMimeFilter (types, defaultType)

  returns Nothing

  Argument | Type | Default
  --- | --- | ---
  types | QStringList |
  defaultType | QString | QString()

  Sets the filter up to specify the output type.

  types - a list of mimetypes that can be used as output format

  defaultType - the default mimetype to use as output format, if any. If defaultType is set, it will be set as the current item. Otherwise, a first item showing all the mimetypes will be created. Typically, defaultType should be empty for loading and set for saving.

  Do not use in conjunction with setFilter()

- setMode (m)

  returns Nothing

  Argument | Type | Default
  --- | --- | ---
  m | KFile.Modes |

  Sets the mode of the dialog.

  The mode is defined as (in kfile.h):

      enum Mode {
      File = 1,
      Directory = 2,
      Files = 4,
      ExistingOnly = 8,
      LocalOnly = 16
      };

  You can OR the values, e.g.

      KFile.Modes mode = KFile.Files |
      KFile.ExistingOnly |
      KFile.LocalOnly );
      setMode( mode );

- setOperationMode (a0)

  returns Nothing

  Argument | Type | Default
  --- | --- | ---
  a0 | KFileDialog.OperationMode |

  Sets the operational mode of the filedialog to Saving, Opening or Other. This will set some flags that are specific to loading or saving files. E.g. setKeepLocation() makes mostly sense for a save-as dialog. So setOperationMode( KFileDialog.Saving ); sets setKeepLocation for example.

  The mode Saving, together with a default filter set via setMimeFilter() will make the filter combobox read-only.

  The default mode is Opening.

  Call this method right after instantiating KFileDialog.

  See also operationMode

  See also KFileDialog.OperationMode

- setPreviewWidget (w)

  returns Nothing

  Argument | Type | Default
  --- | --- | ---
  w | KPreviewWidgetBase |

  Adds a preview widget and enters the preview mode.

  In this mode the dialog is split and the right part contains your preview widget.

  Ownership is transferred to KFileDialog. You need to create the preview-widget with "new", i.e. on the heap.

  w - The widget to be used for the preview.

- setSelection (name)

  returns Nothing

  Argument | Type | Default
  --- | --- | ---
  name | QString |

  Sets the file name to preselect to name

  This takes absolute URLs and relative file names.

- setStartDir (directory)

  returns Nothing
  static

  Argument | Type | Default
  --- | --- | ---
  directory | KUrl |

  Internal Used by KDirSelectDialog to share the dialog's start directory.

- setUrl (url, clearforward)

  returns Nothing

  Argument | Type | Default
  --- | --- | ---
  url | KUrl |
  clearforward | bool | 1

  Sets the directory to view.

  url - URL to show.

  clearforward - Indicates whether the forward queue should be cleared.

- sizeHint ( )

  returns QSize

  See also QWidget.sizeHint()

- slotCancel ( )

  returns Nothing

- slotOk ( )

  returns Nothing

- toolBar ( )

  returns KToolBar

  Returns a pointer to the toolbar.

  You can use this to insert custom items into it, e.g.:

      yourAction = new KAction( i18n("Your Action"), 0,
      this, SLOT( yourSlot() ),
      this, "action name" );
      yourAction->plug( kfileDialog->toolBar() );

### enums - detail

- OperationMode { Other, Opening, Saving }

  Defines some default behavior of the filedialog. E.g. in mode Opening and Saving, the selected files/urls will be added to the "recent documents" list. The Saving mode also implies setKeepLocation() being set.

  Other means that no default actions are performed.

  See also setOperationMode

  See also operationMode

  | Other | - 0 | - |
  | Opening | - | - |
  | Saving | - | - |