gtk2/gtk/ui/gtkfilechooserwidget.ui
Nelson Benítez León c789a39660 GtkFileChooser: add a sortable "Type" column
along with a new 'type-format' setting that allows
to choose the output format for the "Type" column.

The options implemented for this setting are:

'mime' : Output from g_content_type_get_mime_type().

'description' : Output from g_content_type_get_description().

'category' : It uses the corresponding generic icon
  of the mime type to group by categories (aka basic types).

  This produces a more compact output than previous options,
  and allows for type families to be grouped together, so eg.
  after sorting by "Type" column, jpeg and png images will
  be placed together, or the various types of archiver files
  will also be grouped together.

  This format was copied from and currently used by Nautilus
  list view, so we also improve consistency with Nautilus.
  Bugzilla entry for Nautilus implementation is:
  https://bugzilla.gnome.org/show_bug.cgi?id=683722

  The list of type families or categories can be checked on:
  https://developer.gnome.org/icon-naming-spec/#mimetypes

  This 'category' format is set as default.

Issue #362
2019-06-22 13:22:59 -04:00

507 lines
29 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<interface domain="gtk40">
<template class="GtkFileChooserWidget" parent="GtkWidget">
<child>
<object class="GtkBox" id="box">
<property name="orientation">vertical</property>
<child>
<object class="GtkBox" id="browse_widgets_box">
<property name="orientation">vertical</property>
<property name="vexpand">1</property>
<child>
<object class="GtkPaned" id="browse_widgets_hpaned">
<property name="shrink-child2">0</property>
<property name="shrink-child1">0</property>
<property name="resize-child1">0</property>
<property name="vexpand">1</property>
<child>
<object class="GtkPlacesSidebar" id="places_sidebar">
<property name="local-only">1</property>
<property name="show-other-locations">1</property>
<style>
<class name="sidebar"/>
</style>
<signal name="open-location" handler="places_sidebar_open_location_cb" swapped="no"/>
<signal name="show-error-message" handler="places_sidebar_show_error_message_cb" swapped="no"/>
<signal name="show-other-locations-with-flags" handler="places_sidebar_show_other_locations_with_flags_cb" swapped="no"/>
</object>
</child>
<child>
<object class="GtkBox">
<property name="orientation">vertical</property>
<child>
<object class="GtkRevealer" id="browse_header_revealer">
<property name="hexpand">1</property>
<child>
<object class="GtkBox">
<property name="name">pathbarbox</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<style>
<class name="view"/>
</style>
<child>
<object class="GtkStack" id="browse_header_stack">
<property name="transition-type">crossfade</property>
<child>
<object class="GtkStackPage">
<property name="name">pathbar</property>
<property name="child">
<object class="GtkBox">
<property name="spacing">6</property>
<property name="margin">6</property>
<child>
<object class="GtkPathBar" id="browse_path_bar">
<property name="hexpand">1</property>
<signal name="path-clicked" handler="path_bar_clicked" after="yes" swapped="no"/>
</object>
</child>
<child>
<object class="GtkMenuButton" id="browse_new_folder_button">
<property name="tooltip-text" translatable="yes">Create Folder</property>
<property name="popover">new_folder_popover</property>
<property name="icon-name">folder-new-symbolic</property>
<signal name="notify::active" handler="new_folder_popover_active"/>
</object>
</child>
</object>
</property>
</object>
</child>
<child>
<object class="GtkStackPage">
<property name="name">location</property>
<property name="child">
<object class="GtkBox" id="location_entry_box">
<property name="spacing">6</property>
<property name="margin">6</property>
</object>
</property>
</object>
</child>
<child>
<object class="GtkStackPage">
<property name="name">search</property>
<property name="child">
<object class="GtkCenterBox" id="search_entry_box">
<property name="margin">6</property>
<child type="center">
<object class="GtkSearchEntry" id="search_entry">
<property name="width-chars">45</property>
<property name="hexpand">1</property>
<property name="halign">center</property>
<signal name="search-changed" handler="search_entry_activate_cb" swapped="yes"/>
<signal name="stop-search" handler="search_entry_stop_cb" swapped="yes"/>
</object>
</child>
<child type="end">
<object class="GtkSpinner" id="search_spinner">
<property name="visible">0</property>
</object>
</child>
</object>
</property>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkBox" id="list_and_preview_box">
<property name="spacing">12</property>
<property name="vexpand">1</property>
<child>
<object class="GtkStack" id="browse_files_stack">
<property name="transition-type">crossfade</property>
<property name="expand">1</property>
<style>
<class name="view"/>
</style>
<child>
<object class="GtkStackPage">
<property name="name">list</property>
<property name="child">
<object class="GtkBox">
<property name="orientation">vertical</property>
<child>
<object class="GtkScrolledWindow" id="browse_files_swin">
<property name="hscrollbar-policy">never</property>
<property name="vexpand">1</property>
<child>
<object class="GtkTreeView" id="browse_files_tree_view">
<property name="has-tooltip">1</property>
<property name="enable-search">0</property>
<child internal-child="accessible">
<object class="AtkObject" id="browse_files_tree_view-atkobject">
<property name="AtkObject::accessible-name" translatable="yes">Files</property>
</object>
</child>
<child>
<object class="GtkGestureLongPress">
<property name="touch-only">1</property>
<signal name="pressed" handler="long_press_cb" swapped="no"/>
</object>
</child>
<child>
<object class="GtkGestureClick">
<property name="button">3</property>
<signal name="pressed" handler="click_cb" swapped="no"/>
</object>
</child>
<child>
<object class="GtkEventControllerKey">
<signal name="key-pressed" handler="key_press_cb" swapped="no"/>
</object>
</child>
<signal name="drag-data-received" handler="file_list_drag_data_received_cb" swapped="no"/>
<signal name="drag-drop" handler="file_list_drag_drop_cb" swapped="no"/>
<signal name="drag-begin" handler="file_list_drag_begin_cb" swapped="no"/>
<signal name="drag-motion" handler="file_list_drag_motion_cb" swapped="no"/>
<signal name="drag-end" handler="file_list_drag_end_cb" swapped="no"/>
<signal name="popup-menu" handler="list_popup_menu_cb" swapped="no"/>
<signal name="query-tooltip" handler="file_list_query_tooltip_cb" swapped="no"/>
<signal name="row-activated" handler="list_row_activated" swapped="no"/>
<signal name="cursor-changed" handler="list_cursor_changed" swapped="no"/>
<signal name="keynav-failed" handler="browse_files_tree_view_keynav_failed_cb" />
<child internal-child="selection">
<object class="GtkTreeSelection" id="treeview-selection2">
<signal name="changed" handler="list_selection_changed" swapped="no"/>
</object>
</child>
<child>
<object class="GtkTreeViewColumn" id="list_name_column">
<property name="title" translatable="yes">Name</property>
<property name="resizable">1</property>
<property name="expand">1</property>
<child>
<object class="GtkCellRendererPixbuf" id="list_pixbuf_renderer">
<property name="xpad">6</property>
</object>
</child>
<child>
<object class="GtkCellRendererText" id="list_name_renderer">
<property name="width-chars">10</property>
<property name="ellipsize">end</property>
</object>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn" id="list_location_column">
<property name="title" translatable="yes">Location</property>
<property name="resizable">1</property>
<property name="visible">0</property>
<property name="expand">1</property>
<child>
<object class="GtkCellRendererText" id="list_location_renderer">
<property name="xalign">0</property>
<property name="width-chars">10</property>
<property name="ellipsize">start</property>
<property name="xpad">6</property>
</object>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn" id="list_size_column">
<property name="title" translatable="yes">Size</property>
<property name="sizing">fixed</property>
<child>
<object class="GtkCellRendererText" id="list_size_renderer">
<property name="xalign">0</property>
<property name="xpad">6</property>
</object>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn" id="list_type_column">
<property name="title" translatable="yes">Type</property>
<property name="resizable">1</property>
<child>
<object class="GtkCellRendererText" id="list_type_renderer">
<property name="xalign">0</property>
<property name="xpad">6</property>
</object>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn" id="list_time_column">
<property name="title" translatable="yes">Modified</property>
<property name="sizing">fixed</property>
<child>
<object class="GtkCellRendererText" id="list_date_renderer">
<property name="xpad">6</property>
</object>
</child>
<child>
<object class="GtkCellRendererText" id="list_time_renderer">
<property name="xpad">6</property>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkActionBar" id="remote_warning_bar">
<property name="visible">0</property>
<child type="center">
<object class="GtkLabel">
<property name="label" translatable="yes">Remote location — only searching the current folder</property>
</object>
</child>
</object>
</child>
</object>
</property>
</object>
</child>
<child>
<object class="GtkStackPage">
<property name="name">other_locations</property>
<property name="child">
<object class="GtkPlacesView" id="places_view">
<property name="local-only" bind-source="GtkFileChooserWidget" bind-property="local-only" bind-flags="default|sync-create"/>
<signal name="open-location" handler="places_sidebar_open_location_cb" swapped="no"/>
<signal name="show-error-message" handler="places_sidebar_show_error_message_cb" swapped="no"/>
</object>
</property>
</object>
</child>
<child>
<object class="GtkStackPage">
<property name="name">empty</property>
<property name="child">
<object class="GtkGrid">
<property name="row-spacing">12</property>
<property name="hexpand">1</property>
<property name="vexpand">1</property>
<property name="halign">center</property>
<property name="valign">center</property>
<style>
<class name="dim-label"/>
</style>
<child>
<object class="GtkImage">
<property name="icon-name">edit-find-symbolic</property>
<property name="pixel-size">72</property>
<style>
<class name="dim-label"/>
</style>
<layout>
<property name="left-attach">0</property>
<property name="top-attach">0</property>
</layout>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">No Results Found</property>
<attributes>
<attribute name="weight" value="bold"></attribute>
<attribute name="scale" value="1.44"></attribute>
</attributes>
<layout>
<property name="left-attach">0</property>
<property name="top-attach">1</property>
</layout>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Try a different search</property>
<style>
<class name="dim-label"/>
</style>
<layout>
<property name="left-attach">0</property>
<property name="top-attach">2</property>
</layout>
</object>
</child>
</object>
</property>
</object>
</child>
</object>
</child>
<child>
<object class="GtkBox" id="preview_box">
<property name="visible">0</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkActionBar" id="extra_and_filters">
<property name="visible">0</property>
<child>
<object class="GtkBox" id="extra_align">
<property name="spacing">12</property>
</object>
</child>
<child type="end">
<object class="GtkBox" id="filter_combo_hbox">
<child>
<object class="GtkComboBoxText" id="filter_combo">
<property name="tooltip-text" translatable="yes">Select which types of files are shown</property>
<property name="focus-on-click">0</property>
<property name="entry-text-column">0</property>
<property name="id-column">1</property>
<property name="valign">start</property>
<signal name="changed" handler="filter_combo_changed" swapped="no"/>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkEventControllerKey">
<signal name="key-pressed" handler="widget_key_press_cb" swapped="no"/>
</object>
</child>
</template>
<object class="GtkSizeGroup" id="browse_path_bar_size_group">
<property name="mode">vertical</property>
<widgets>
<widget name="browse_path_bar"/>
<widget name="browse_new_folder_button"/>
</widgets>
</object>
<object class="GtkPopover" id="new_folder_popover">
<child>
<object class="GtkGrid">
<property name="margin">10</property>
<property name="column-spacing">6</property>
<property name="row-spacing">6</property>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Folder Name</property>
<property name="halign">start</property>
<property name="mnemonic-widget">new_folder_name_entry</property>
<attributes>
<attribute name="weight" value="bold"></attribute>
</attributes>
<layout>
<property name="column-span">2</property>
</layout>
</object>
</child>
<child>
<object class="GtkEntry" id="new_folder_name_entry">
<property name="width-chars">25</property>
<property name="activates-default">1</property>
<property name="hexpand">1</property>
<signal name="changed" handler="new_folder_name_changed"/>
<layout>
<property name="left-attach">0</property>
<property name="top-attach">1</property>
</layout>
</object>
</child>
<child>
<object class="GtkButton" id="new_folder_create_button">
<property name="sensitive">0</property>
<property name="label" translatable="yes">_Create</property>
<property name="use-underline">1</property>
<signal name="clicked" handler="new_folder_create_clicked"/>
<style>
<class name="suggested-action"/>
</style>
<layout>
<property name="left-attach">1</property>
<property name="top-attach">1</property>
</layout>
</object>
</child>
<child>
<object class="GtkFileChooserErrorStack" id="new_folder_error_stack">
<layout>
<property name="left-attach">0</property>
<property name="top-attach">2</property>
<property name="column-span">2</property>
</layout>
</object>
</child>
</object>
</child>
</object>
<object class="GtkPopover" id="rename_file_popover">
<property name="position">bottom</property>
<signal name="closed" handler="rename_file_end"/>
<child>
<object class="GtkGrid">
<property name="margin">10</property>
<property name="row-spacing">6</property>
<property name="column-spacing">6</property>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Name</property>
<property name="halign">start</property>
<property name="mnemonic-widget">rename_file_name_entry</property>
<attributes>
<attribute name="weight" value="bold"></attribute>
</attributes>
<layout>
<property name="column-span">2</property>
</layout>
</object>
</child>
<child>
<object class="GtkEntry" id="rename_file_name_entry">
<property name="activates-default">1</property>
<property name="hexpand">1</property>
<signal name="changed" handler="rename_file_name_changed"/>
<layout>
<property name="left-attach">0</property>
<property name="top-attach">1</property>
</layout>
</object>
</child>
<child>
<object class="GtkButton" id="rename_file_rename_button">
<property name="sensitive">0</property>
<property name="label" translatable="yes">_Rename</property>
<property name="use-underline">1</property>
<signal name="clicked" handler="rename_file_rename_clicked"/>
<style>
<class name="suggested-action"/>
</style>
<layout>
<property name="left-attach">1</property>
<property name="top-attach">1</property>
</layout>
</object>
</child>
<child>
<object class="GtkFileChooserErrorStack" id="rename_file_error_stack">
<layout>
<property name="left-attach">0</property>
<property name="top-attach">2</property>
<property name="column-span">2</property>
</layout>
</object>
</child>
</object>
</child>
</object>
</interface>