summaryrefslogtreecommitdiffstats
path: root/src/resources
diff options
context:
space:
mode:
Diffstat (limited to 'src/resources')
-rw-r--r--src/resources/Checkerboard.pngbin0 -> 184 bytes
-rw-r--r--src/resources/gtk/help-overlay.ui406
-rw-r--r--src/resources/icons/external-link-symbolic.svg2
-rw-r--r--src/resources/icons/funnel-symbolic.svg2
-rw-r--r--src/resources/icons/quotation-symbolic.svg2
-rw-r--r--src/resources/nautilus.gresource.xml45
-rw-r--r--src/resources/style-hc.css16
-rw-r--r--src/resources/style.css301
-rw-r--r--src/resources/text-x-preview.pngbin0 -> 923 bytes
-rw-r--r--src/resources/ui/nautilus-app-chooser.ui120
-rw-r--r--src/resources/ui/nautilus-batch-rename-dialog.ui395
-rw-r--r--src/resources/ui/nautilus-column-chooser.ui105
-rw-r--r--src/resources/ui/nautilus-compress-dialog.ui98
-rw-r--r--src/resources/ui/nautilus-create-folder-dialog.ui58
-rw-r--r--src/resources/ui/nautilus-file-conflict-dialog.ui147
-rw-r--r--src/resources/ui/nautilus-file-properties-change-permissions.ui157
-rw-r--r--src/resources/ui/nautilus-files-view-context-menus.ui260
-rw-r--r--src/resources/ui/nautilus-files-view-select-items.ui54
-rw-r--r--src/resources/ui/nautilus-files-view.ui42
-rw-r--r--src/resources/ui/nautilus-grid-cell.ui109
-rw-r--r--src/resources/ui/nautilus-history-controls.ui28
-rw-r--r--src/resources/ui/nautilus-list-view-column-editor.ui41
-rw-r--r--src/resources/ui/nautilus-name-cell.ui112
-rw-r--r--src/resources/ui/nautilus-operations-ui-manager-request-passphrase.ui49
-rw-r--r--src/resources/ui/nautilus-pathbar-context-menu.ui73
-rw-r--r--src/resources/ui/nautilus-preferences-window.ui164
-rw-r--r--src/resources/ui/nautilus-progress-indicator.ui70
-rw-r--r--src/resources/ui/nautilus-progress-info-widget.ui75
-rw-r--r--src/resources/ui/nautilus-properties-window.ui913
-rw-r--r--src/resources/ui/nautilus-rename-file-popover.ui54
-rw-r--r--src/resources/ui/nautilus-search-popover.ui336
-rw-r--r--src/resources/ui/nautilus-toolbar-view-menu.ui63
-rw-r--r--src/resources/ui/nautilus-toolbar.ui227
-rw-r--r--src/resources/ui/nautilus-view-controls.ui42
-rw-r--r--src/resources/ui/nautilus-window.ui107
35 files changed, 4673 insertions, 0 deletions
diff --git a/src/resources/Checkerboard.png b/src/resources/Checkerboard.png
new file mode 100644
index 0000000..3e43acd
--- /dev/null
+++ b/src/resources/Checkerboard.png
Binary files differ
diff --git a/src/resources/gtk/help-overlay.ui b/src/resources/gtk/help-overlay.ui
new file mode 100644
index 0000000..42bad9f
--- /dev/null
+++ b/src/resources/gtk/help-overlay.ui
@@ -0,0 +1,406 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkShortcutsWindow" id="help_overlay">
+ <property name="modal">True</property>
+ <child>
+ <object class="GtkShortcutsSection">
+ <property name="visible">True</property>
+ <property name="section-name">shortcuts</property>
+ <property name="max-height">12</property>
+ <child>
+ <object class="GtkShortcutsGroup">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">General</property>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">New window</property>
+ <property name="accelerator">&lt;Primary&gt;N</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Close window or tab</property>
+ <property name="accelerator">&lt;Primary&gt;W</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Quit</property>
+ <property name="accelerator">&lt;Primary&gt;Q</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Search</property>
+ <property name="accelerator">&lt;Primary&gt;F</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Bookmark current location</property>
+ <property name="accelerator">&lt;Primary&gt;D</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Show help</property>
+ <property name="accelerator">F1</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Shortcuts</property>
+ <property name="accelerator">&lt;Primary&gt;question</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Undo</property>
+ <property name="accelerator">&lt;Primary&gt;z</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Redo</property>
+ <property name="accelerator">&lt;shift&gt;&lt;Primary&gt;z</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsGroup">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Opening</property>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Open</property>
+ <property name="accelerator">Return &lt;Primary&gt;O</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Open in new tab</property>
+ <property name="accelerator">&lt;Primary&gt;Return</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Open in new window</property>
+ <property name="accelerator">&lt;shift&gt;Return</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Open item location (search and recent only)</property>
+ <property name="accelerator">&lt;alt&gt;&lt;Primary&gt;O</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Open with default application</property>
+ <property name="accelerator">&lt;Primary&gt;O &lt;alt&gt;Down</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsGroup">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Tabs</property>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">New tab</property>
+ <property name="accelerator">&lt;Primary&gt;T</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Go to previous tab</property>
+ <property name="accelerator">&lt;Primary&gt;Page_Up</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Go to next tab</property>
+ <property name="accelerator">&lt;Primary&gt;Page_Down</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Open tab</property>
+ <property name="accelerator">&lt;alt&gt;0...8</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Move tab left</property>
+ <property name="accelerator">&lt;shift&gt;&lt;Primary&gt;Page_Up</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Move tab right</property>
+ <property name="accelerator">&lt;shift&gt;&lt;Primary&gt;Page_Down</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Restore tab</property>
+ <property name="accelerator">&lt;shift&gt;&lt;Primary&gt;T</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsGroup">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Navigation</property>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Go back</property>
+ <property name="accelerator">&lt;alt&gt;Left</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Go forward</property>
+ <property name="accelerator">&lt;alt&gt;Right</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Go up</property>
+ <property name="accelerator">&lt;alt&gt;Up</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Go down</property>
+ <property name="accelerator">&lt;alt&gt;Down</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Go to home folder</property>
+ <property name="accelerator">&lt;alt&gt;Home</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Enter location</property>
+ <property name="accelerator">&lt;Primary&gt;L</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Location bar with root location</property>
+ <property name="accelerator">slash</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Location bar with home location</property>
+ <property name="accelerator">asciitilde</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsGroup">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">View</property>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Zoom in</property>
+ <property name="accelerator">&lt;Primary&gt;plus</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Zoom out</property>
+ <property name="accelerator">&lt;Primary&gt;minus</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Reset zoom</property>
+ <property name="accelerator">&lt;Primary&gt;0</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Refresh view</property>
+ <property name="accelerator">F5 &lt;Primary&gt;R</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Show/hide hidden files</property>
+ <property name="accelerator">&lt;Primary&gt;H</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Show/hide sidebar</property>
+ <property name="accelerator">F9</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Show/hide action menu</property>
+ <property name="accelerator">F10</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">List view</property>
+ <property name="accelerator">&lt;Primary&gt;1</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Grid view</property>
+ <property name="accelerator">&lt;Primary&gt;2</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsGroup">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Editing</property>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Create folder</property>
+ <property name="accelerator">&lt;shift&gt;&lt;Primary&gt;N</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Rename</property>
+ <property name="accelerator">F2</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Move to trash</property>
+ <property name="accelerator">Delete</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Delete permanently</property>
+ <property name="accelerator">&lt;shift&gt;Delete</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Create link to copied item</property>
+ <property name="accelerator">&lt;Primary&gt;M</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Create link to selected item</property>
+ <property name="accelerator">&lt;Primary&gt;&lt;shift&gt;M</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Cut</property>
+ <property name="accelerator">&lt;Primary&gt;X</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Copy</property>
+ <property name="accelerator">&lt;Primary&gt;C</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Paste</property>
+ <property name="accelerator">&lt;Primary&gt;V</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Select all</property>
+ <property name="accelerator">&lt;Primary&gt;A</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Invert selection</property>
+ <property name="accelerator">&lt;shift&gt;&lt;Primary&gt;I</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Select items matching</property>
+ <property name="accelerator">&lt;Primary&gt;S</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes" context="shortcut window">Show item properties</property>
+ <property name="accelerator">&lt;Primary&gt;I &lt;alt&gt;Return</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/src/resources/icons/external-link-symbolic.svg b/src/resources/icons/external-link-symbolic.svg
new file mode 100644
index 0000000..a24ed4b
--- /dev/null
+++ b/src/resources/icons/external-link-symbolic.svg
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" height="16px" viewBox="0 0 16 16" width="16px"><g fill="#2e3436"><path d="m 2 3 v 11 h 11 v -4 h -2 v 2 h -7 v -7 h 2 v -2 z m 0 0"/><path d="m 9 2 c -0.550781 0 -1 0.449219 -1 1 s 0.449219 1 1 1 h 3 v 3 c 0 0.550781 0.449219 1 1 1 s 1 -0.449219 1 -1 v -4 c 0 -0.550781 -0.449219 -1 -1 -1 z m 0 0"/><path d="m 13 2 h 1 v 1 h -1 z m 0 0"/><path d="m 12.292969 2.289062 l -4.5 4.46875 c -0.390625 0.390626 -0.390625 1.027344 0 1.414063 c 0.390625 0.394531 1.023437 0.394531 1.414062 0.007813 l 4.5 -4.46875 c 0.390625 -0.390626 0.390625 -1.027344 0 -1.414063 c -0.386719 -0.394531 -1.019531 -0.394531 -1.414062 -0.007813 z m 0 0"/><path d="m 13 7 h 1 v 1 h -1 z m 0 0"/><path d="m 8 2 h 1 v 1 h -1 z m 0 0"/></g></svg>
diff --git a/src/resources/icons/funnel-symbolic.svg b/src/resources/icons/funnel-symbolic.svg
new file mode 100644
index 0000000..6e01001
--- /dev/null
+++ b/src/resources/icons/funnel-symbolic.svg
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" height="16px" viewBox="0 0 16 16" width="16px"><path d="m 0 1.007812 h 15 l -6 7 v 6 l -3 2 v -8 z m 0 0" fill="#222222"/></svg>
diff --git a/src/resources/icons/quotation-symbolic.svg b/src/resources/icons/quotation-symbolic.svg
new file mode 100644
index 0000000..cc92cdd
--- /dev/null
+++ b/src/resources/icons/quotation-symbolic.svg
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" height="16px" viewBox="0 0 16 16" width="16px"><path d="m 1 3 l -1 3 v 2.5 c 0 0.277344 0.222656 0.5 0.5 0.5 h 2 c 0.277344 0 0.5 -0.222656 0.5 -0.5 v -2 c 0 -0.277344 -0.222656 -0.5 -0.5 -0.5 h -0.5 l 1 -3 z m 4 0 l -1 3 v 2.5 c 0 0.277344 0.222656 0.5 0.5 0.5 h 2 c 0.277344 0 0.5 -0.222656 0.5 -0.5 v -2 c 0 -0.277344 -0.222656 -0.5 -0.5 -0.5 h -0.5 l 1 -3 z m 4.5 4 c -0.277344 0 -0.5 0.222656 -0.5 0.5 v 2 c 0 0.277344 0.222656 0.5 0.5 0.5 h 0.5 l -1 3 h 2 l 1 -3 v -2.5 c 0 -0.277344 -0.222656 -0.5 -0.5 -0.5 z m 4 0 c -0.277344 0 -0.5 0.222656 -0.5 0.5 v 2 c 0 0.277344 0.222656 0.5 0.5 0.5 h 0.5 l -1 3 h 2 l 1 -3 v -2.5 c 0 -0.277344 -0.222656 -0.5 -0.5 -0.5 z m 0 0" fill="#222222"/></svg>
diff --git a/src/resources/nautilus.gresource.xml b/src/resources/nautilus.gresource.xml
new file mode 100644
index 0000000..bfe8b2b
--- /dev/null
+++ b/src/resources/nautilus.gresource.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<gresources>
+ <gresource prefix="/org/gnome/nautilus">
+ <file compressed="true">ui/nautilus-preferences-window.ui</file>
+ <file compressed="true">ui/nautilus-search-popover.ui</file>
+ <file>ui/nautilus-app-chooser.ui</file>
+ <file>ui/nautilus-pathbar-context-menu.ui</file>
+ <file>ui/nautilus-toolbar.ui</file>
+ <file>ui/nautilus-history-controls.ui</file>
+ <file>ui/nautilus-progress-indicator.ui</file>
+ <file>ui/nautilus-view-controls.ui</file>
+ <file>ui/nautilus-toolbar-view-menu.ui</file>
+ <file>ui/nautilus-column-chooser.ui</file>
+ <file>ui/nautilus-list-view-column-editor.ui</file>
+ <file>ui/nautilus-create-folder-dialog.ui</file>
+ <file>ui/nautilus-compress-dialog.ui</file>
+ <file>ui/nautilus-rename-file-popover.ui</file>
+ <file>ui/nautilus-files-view-context-menus.ui</file>
+ <file>ui/nautilus-progress-info-widget.ui</file>
+ <file>ui/nautilus-window.ui</file>
+ <file>gtk/help-overlay.ui</file>
+ <file>ui/nautilus-batch-rename-dialog.ui</file>
+ <file>ui/nautilus-properties-window.ui</file>
+ <file>ui/nautilus-file-properties-change-permissions.ui</file>
+ <file>ui/nautilus-file-conflict-dialog.ui</file>
+ <file>ui/nautilus-files-view-select-items.ui</file>
+ <file>ui/nautilus-files-view.ui</file>
+ <file>ui/nautilus-operations-ui-manager-request-passphrase.ui</file>
+ <file>ui/nautilus-grid-cell.ui</file>
+ <file>ui/nautilus-name-cell.ui</file>
+ <file alias="gtk/ui/nautilusgtksidebarrow.ui">../gtk/nautilusgtksidebarrow.ui</file>
+ <file alias="gtk/ui/nautilusgtkplacesview.ui">../gtk/nautilusgtkplacesview.ui</file>
+ <file alias="gtk/ui/nautilusgtkplacesviewrow.ui">../gtk/nautilusgtkplacesviewrow.ui</file>
+ <file alias="icons/filmholes.png">../../icons/filmholes.png</file>
+ <file>style.css</file>
+ <file>style-hc.css</file>
+ <file>text-x-preview.png</file>
+ <file>Checkerboard.png</file>
+ </gresource>
+ <gresource prefix="/org/gnome/nautilus/icons/scalable/actions/">
+ <file alias="quotation-symbolic.svg" preprocess="xml-stripblanks">icons/quotation-symbolic.svg</file>
+ <file alias="funnel-symbolic.svg" preprocess="xml-stripblanks">icons/funnel-symbolic.svg</file>
+ <file alias="external-link-symbolic.svg" preprocess="xml-stripblanks">icons/external-link-symbolic.svg</file>
+ </gresource>
+</gresources>
diff --git a/src/resources/style-hc.css b/src/resources/style-hc.css
new file mode 100644
index 0000000..54e2cff
--- /dev/null
+++ b/src/resources/style-hc.css
@@ -0,0 +1,16 @@
+#NautilusPathBar {
+ box-shadow: inset 0 0 0 1px @borders;
+}
+
+#NautilusPathButton:not(:hover):not(:drop(active)),
+#NautilusPathButton.current-dir:not(:drop(active)) {
+ box-shadow: none;
+}
+
+#NautilusQueryEditorTag {
+ box-shadow: inset 0 0 0 1px @borders;
+}
+
+.disk-space-free {
+ color: alpha(currentColor, 0.3);
+}
diff --git a/src/resources/style.css b/src/resources/style.css
new file mode 100644
index 0000000..54cf229
--- /dev/null
+++ b/src/resources/style.css
@@ -0,0 +1,301 @@
+/* Toolbar */
+
+@keyframes needs_attention_keyframes {
+ 0% { }
+ 10% { background-color: @accent_bg_color; border-radius: 999999px; }
+ 100% { }
+}
+
+.nautilus-operations-button-needs-attention {
+ animation: needs_attention_keyframes 2s ease-in-out;
+}
+.nautilus-operations-button-needs-attention-multiple {
+ animation: needs_attention_keyframes 3s ease-in-out;
+ animation-iteration-count: 3;
+}
+
+/* Remove white background and highlight on hover which GTK adds by default
+ * to GtkListBox. TODO: Switch to GtkListView and drop this CSS hack. */
+.operations-list,
+.operations-list > :hover {
+ background: none;
+}
+
+/* Path bar */
+
+#NautilusPathBar {
+ background-color: alpha(currentColor, 0.1);
+ border-radius: 6px;
+}
+#NautilusPathBar > menubutton {
+ margin: 0px;
+}
+
+#NautilusPathBar > scrolledwindow undershoot.left {
+ background: linear-gradient(to right, @headerbar_shade_color 6px, alpha(@headerbar_shade_color, 0) 24px);
+ border-left: solid 1px @borders;
+}
+#NautilusPathBar > scrolledwindow undershoot.right {
+ background: linear-gradient(to left, @headerbar_shade_color 6px, alpha(@headerbar_shade_color, 0) 24px);
+ border-right: solid 1px @borders;
+}
+
+/* Match sidebar's rounded corners on the "start" side. */
+#NautilusPathBar > scrolledwindow:dir(ltr) undershoot.left {
+ border-radius: 6px 0px 0px 6px;
+}
+#NautilusPathBar > scrolledwindow:dir(rtl) undershoot.right {
+ border-radius: 0px 6px 6px 0px;
+}
+
+#NautilusPathButton {
+ margin: 3px;
+ border-radius: 4px;
+ padding-top: 0px;
+ padding-bottom: 0px;
+}
+
+#NautilusPathButton:not(:hover),
+#NautilusPathButton.current-dir
+{
+ background: none;
+}
+
+#NautilusPathButton:not(.current-dir):not(:backdrop):hover label,
+#NautilusPathButton:not(.current-dir):not(:backdrop):hover image {
+ opacity: 1;
+}
+
+/* Search bar */
+
+#NautilusQueryEditor > * {
+ margin-top: 5px;
+ margin-bottom: 5px;
+}
+
+#NautilusQueryEditorTag > button,
+#NautilusQueryEditor > menubutton > button {
+ min-width: 24px;
+ min-height: 24px;
+ margin: 0px;
+}
+
+#NautilusQueryEditorTag {
+ background-color: alpha(currentColor, 0.1);
+ border-radius: 100px;
+}
+
+/* Mimic the style of GtkEntry icons, but keep button background if pressed. */
+#NautilusQueryEditor > menubutton > button:not(:checked) {
+ background: none;
+}
+#NautilusQueryEditor > menubutton > button:not(:hover):not(:checked) {
+ opacity: 0.7;
+}
+
+/* Floating status bar */
+.floating-bar {
+ padding: 3px;
+ background-color: @view_bg_color;
+ box-shadow: 0 0 0 1px @borders;
+ border-radius: 8px 0 0 0;
+}
+
+.floating-bar.bottom.left { /* axes left border and border radius */
+ border-top-left-radius: 0;
+}
+.floating-bar.bottom.right { /* axes right border and border radius */
+ border-top-right-radius: 0;
+}
+
+.floating-bar:backdrop {
+ background-color: @view_bg_color;
+ border-color: @unfocused_borders;
+}
+
+.floating-bar button {
+ padding: 0px;
+}
+
+.disk-space-free {
+ color: alpha(currentColor, 0.15);
+}
+.disk-space-used {
+ color: @accent_bg_color;
+}
+
+.search-information {
+ background-color: @accent_bg_color;
+ color:white;
+ padding:2px;
+}
+
+.batch-rename-preview {
+ border-top: solid @borders 1px;
+}
+.conflict-row {
+ background: @warning_bg_color;
+ color: @warning_fg_color;
+}
+
+/* Grid view */
+.nautilus-grid-view gridview {
+ padding: 15px;
+}
+
+.nautilus-grid-view gridview > child {
+ padding: 0px;
+ border-radius: 12px;
+}
+.nautilus-grid-view #NautilusViewCell {
+ padding: 6px;
+ border-radius: 12px;
+}
+
+/* Column view */
+
+/* Setup padding on the list. Horizontal padding must be set on the columnview
+ * for it to calculate column widths correctly. */
+.nautilus-list-view columnview {
+ padding-left: 24px;
+ padding-right: 24px;
+}
+.nautilus-list-view columnview > listview {
+ padding-top: 12px;
+ padding-bottom: 24px;
+}
+
+/* Use negative margins to extend rubberbanding area into the columnview's
+ * padding, then apply positive margin on rows to reestablish positioning. */
+.nautilus-list-view columnview > listview {
+ margin-left: -24px;
+ margin-right: -24px;
+}
+.nautilus-list-view columnview > listview > row {
+ margin-left: 24px;
+ margin-right: 24px;
+}
+
+.nautilus-list-view columnview > listview > row {
+ border-radius: 6px;
+ margin-top: 4px;
+ margin-bottom: 4px;
+}
+
+.nautilus-list-view.compact columnview > listview > row {
+ margin-top: 2px;
+ margin-bottom: 2px;
+}
+
+/* GTK unconditionally sets padding on GtkColumnViewCell, even with .data-table.
+ * We don't want this to hpappen because we have event controllers on the child,
+ * which should thus cover the whole area of the row. */
+.nautilus-list-view columnview > listview > row > cell {
+ padding: 0px;
+}
+
+.nautilus-list-view #NautilusViewCell {
+ padding: 6px;
+}
+
+/* We want drop feedback on the whole row. Disable per-cell feedback */
+.nautilus-list-view #NautilusViewCell:drop(active) {
+ box-shadow: none;
+}
+
+.nautilus-list-view.compact #NautilusViewCell {
+ padding-top: 3px;
+ padding-bottom: 3px;
+}
+
+.nautilus-list-view:not(.compact) image.star {
+ padding: 6px;
+}
+
+.nautilus-list-view menubutton.fts-snippet > button {
+ border-radius: 100px;
+ padding-top: 2px;
+ padding-bottom: 2px;
+ padding-left: 12px;
+ padding-right: 12px;
+}
+.nautilus-list-view menubutton.fts-snippet > popover > * {
+ padding: 18px;
+}
+
+/* Both views */
+.nautilus-list-view:drop(active),
+.nautilus-grid-view:drop(active) {
+ box-shadow: none;
+}
+
+.nautilus-list-view columnview > listview > row.activatable:hover,
+.nautilus-grid-view gridview > child.activatable:hover {
+ background-color: alpha(currentColor, .04);
+}
+
+.nautilus-list-view columnview > listview > row.activatable:active,
+.nautilus-grid-view gridview > child.activatable:active {
+ background-color: alpha(currentColor, .08);
+}
+
+.nautilus-list-view columnview > listview > row:selected,
+.nautilus-grid-view gridview > child:selected {
+ background-color: alpha(@accent_bg_color, .15);
+}
+
+.nautilus-list-view columnview > listview > row.activatable:selected:hover,
+.nautilus-grid-view gridview > child.activatable:selected:hover {
+ background-color: alpha(@accent_bg_color, .20);
+}
+
+.nautilus-list-view columnview > listview > row.activatable:selected:active,
+.nautilus-grid-view gridview > child.activatable:selected:active {
+ background-color: alpha(@accent_bg_color, .25);
+}
+
+.view .thumbnail {
+ background: url('/org/gnome/nautilus/Checkerboard.png') repeat;
+ border-radius: 2px;
+ /* Draw a shin and outline to meld better with full-color icons */
+ box-shadow: 0px 0px 0px 1px @shade_color,
+ 0px 2px 0px 0px @shade_color;
+}
+
+.view picture {
+ filter: drop-shadow(0px 1px 1px rgba(0,0,0,0.3));
+}
+
+.view statuspage {
+ opacity: 0.50;
+}
+
+.view .cut {
+ opacity: 0.55;
+}
+
+.view image.star:hover {
+ opacity: 1;
+}
+
+@keyframes rotate_star {
+ from { -gtk-icon-transform: rotate(-72deg); }
+ to {}
+}
+
+.view image.star.added {
+ animation: rotate_star 0.4s ease;
+}
+
+#NautilusAppChooser treeview {
+ min-height: 36px;
+ -gtk-icon-size: 32px;
+}
+
+label.encrypted_zip {
+ background-image: -gtk-icontheme('system-lock-screen-symbolic');
+ background-position: right center;
+ background-repeat: no-repeat;
+ background-size: 16px 16px;
+ padding-right: 22px;
+}
diff --git a/src/resources/text-x-preview.png b/src/resources/text-x-preview.png
new file mode 100644
index 0000000..0d45ff9
--- /dev/null
+++ b/src/resources/text-x-preview.png
Binary files differ
diff --git a/src/resources/ui/nautilus-app-chooser.ui b/src/resources/ui/nautilus-app-chooser.ui
new file mode 100644
index 0000000..e30beac
--- /dev/null
+++ b/src/resources/ui/nautilus-app-chooser.ui
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <requires lib="gtk" version="4.0"/>
+ <template class="NautilusAppChooser" parent="GtkDialog">
+ <property name="title" translatable="yes">Open File</property>
+ <property name="focusable">False</property>
+ <property name="destroy-with-parent">True</property>
+ <property name="modal">True</property>
+ <property name="default-width">420</property>
+ <property name="default-height">560</property>
+ <child internal-child="content_area">
+ <object class="GtkBox" id="content_area">
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkStack">
+ <property name="hexpand">True</property>
+ <child>
+ <object class="GtkStackPage">
+ <property name="name">list</property>
+ <property name="child">
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkScrolledWindow">
+ <property name="hscrollbar-policy">never</property>
+ <property name="vscrollbar-policy">never</property>
+ <property name="vexpand">true</property>
+ <style>
+ <class name="background"/>
+ </style>
+ <property name="child">
+ <object class="AdwClamp">
+ <property name="margin-top">18</property>
+ <property name="margin-bottom">18</property>
+ <property name="margin-start">18</property>
+ <property name="margin-end">18</property>
+ <property name="child">
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <property name="spacing">12</property>
+ <child>
+ <object class="GtkLabel" id="label_description">
+ <property name="wrap">True</property>
+ <property name="wrap-mode">PANGO_WRAP_WORD_CHAR</property>
+ <property name="justify">center</property>
+ <property name="label" translatable="yes">Choose an application to open the selected files.</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkBox" id="app_chooser_widget_box">
+ <property name="halign">center</property>
+ <property name="vexpand">True</property>
+ </object>
+ </child>
+ </object>
+ </property>
+ </object>
+ </property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkBox" id="set_default_box">
+ <property name="orientation">vertical</property>
+ <style>
+ <class name="background"/>
+ </style>
+ <child>
+ <object class="GtkSeparator"/>
+ </child>
+ <child>
+ <object class="GtkListBox">
+ <style>
+ <class name="background"/>
+ </style>
+ <child>
+ <object class="AdwActionRow" id="set_default_row">
+ <property name="hexpand">true</property>
+ <property name="selectable">false</property>
+ <property name="activatable-widget">set_as_default_switch</property>
+ <property name="title" translatable="yes">Always use for this file type</property>
+ <child>
+ <object class="GtkSwitch" id="set_as_default_switch">
+ <property name="halign">end</property>
+ <property name="valign">center</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="action">
+ <object class="GtkButton" id="cancel_button">
+ <property name="label" translatable="yes">_Cancel</property>
+ <property name="use-underline">True</property>
+ </object>
+ </child>
+ <child type="action">
+ <object class="GtkButton" id="ok_button">
+ <property name="label" translatable="yes">_Open</property>
+ <property name="use-underline">True</property>
+ <property name="sensitive">False</property>
+ <signal name="clicked" object="NautilusAppChooser" handler="open_cb" swapped="yes"/>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="ok" default="true">ok_button</action-widget>
+ <action-widget response="cancel">cancel_button</action-widget>
+ </action-widgets>
+ </template>
+</interface>
diff --git a/src/resources/ui/nautilus-batch-rename-dialog.ui b/src/resources/ui/nautilus-batch-rename-dialog.ui
new file mode 100644
index 0000000..7da1e95
--- /dev/null
+++ b/src/resources/ui/nautilus-batch-rename-dialog.ui
@@ -0,0 +1,395 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <requires lib="gtk" version="4.0"/>
+ <menu id="add_tag_menu">
+ <section>
+ <attribute name="label" translatable="yes">Automatic Numbers</attribute>
+ <item>
+ <attribute name="label" translatable="yes">1, 2, 3, 4</attribute>
+ <attribute name="action">dialog.add-numbering-no-zero-pad-tag</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">01, 02, 03, 04</attribute>
+ <attribute name="action">dialog.add-numbering-one-zero-pad-tag</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">001, 002, 003, 004</attribute>
+ <attribute name="action">dialog.add-numbering-two-zero-pad-tag</attribute>
+ </item>
+ </section>
+ <section>
+ <attribute name="label" translatable="yes">Metadata</attribute>
+ <item>
+ <attribute name="label" translatable="yes">Creation Date</attribute>
+ <attribute name="action">dialog.add-creation-date-tag</attribute>
+ <attribute name="hidden-when">action-disabled</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Camera Model</attribute>
+ <attribute name="action">dialog.add-equipment-tag</attribute>
+ <attribute name="hidden-when">action-disabled</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Season Number</attribute>
+ <attribute name="action">dialog.add-season-tag</attribute>
+ <attribute name="hidden-when">action-disabled</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Episode Number</attribute>
+ <attribute name="action">dialog.add-episode-tag</attribute>
+ <attribute name="hidden-when">action-disabled</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Track Number</attribute>
+ <attribute name="action">dialog.add-track-number-tag</attribute>
+ <attribute name="hidden-when">action-disabled</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Artist Name</attribute>
+ <attribute name="action">dialog.add-artist-name-tag</attribute>
+ <attribute name="hidden-when">action-disabled</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Title</attribute>
+ <attribute name="action">dialog.add-title-tag</attribute>
+ <attribute name="hidden-when">action-disabled</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Album Name</attribute>
+ <attribute name="action">dialog.add-album-name-tag</attribute>
+ <attribute name="hidden-when">action-disabled</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Original File Name</attribute>
+ <attribute name="action">dialog.add-original-file-name-tag</attribute>
+ </item>
+ </section>
+ </menu>
+ <menu id="numbering_order_menu">
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Original Name (Ascending)</attribute>
+ <attribute name="action">dialog.numbering-order-changed</attribute>
+ <attribute name="target">name-ascending</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Original Name (Descending)</attribute>
+ <attribute name="action">dialog.numbering-order-changed</attribute>
+ <attribute name="target">name-descending</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">First Modified</attribute>
+ <attribute name="action">dialog.numbering-order-changed</attribute>
+ <attribute name="target">first-modified</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Last Modified</attribute>
+ <attribute name="action">dialog.numbering-order-changed</attribute>
+ <attribute name="target">last-modified</attribute>
+ </item>
+ </section>
+ </menu>
+ <template class="NautilusBatchRenameDialog" parent="GtkDialog">
+ <property name="modal">True</property>
+ <property name="height-request">563</property>
+ <property name="destroy_with_parent">True</property>
+ <signal name="response" handler="batch_rename_dialog_on_response"/>
+ <child type="action">
+ <object class="GtkButton" id="cancel_button">
+ <property name="label" translatable="yes">_Cancel</property>
+ <property name="use_underline">True</property>
+ </object>
+ </child>
+ <child type="action">
+ <object class="GtkButton" id="rename_button">
+ <property name="label" translatable="yes">_Rename</property>
+ <property name="use_underline">True</property>
+ <style>
+ <class name="suggested-action"/>
+ </style>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="ok" default="true">rename_button</action-widget>
+ <action-widget response="cancel">cancel_button</action-widget>
+ </action-widgets>
+ <child internal-child="content_area">
+ <object class="GtkBox" id="content_area">
+ <child>
+ <object class="GtkGrid" id="grid">
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">6</property>
+ <property name="hexpand">True</property>
+ <child>
+ <object class="GtkBox">
+ <property name="spacing">15</property>
+ <property name="hexpand">True</property>
+ <property name="halign">center</property>
+ <property name="margin-top">20</property>
+ <property name="margin-bottom">20</property>
+ <property name="margin-start">20</property>
+ <property name="margin-end">20</property>
+ <child>
+ <object class="GtkCheckButton" id="format_mode_button">
+ <property name="label" translatable="yes">Rename _using a template</property>
+ <property name="use_underline">True</property>
+ <property name="active">True</property>
+ <signal name="toggled" handler="batch_rename_dialog_mode_changed" swapped="yes" />
+ </object>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="replace_mode_button">
+ <property name="label" translatable="yes">Find and replace _text</property>
+ <property name="use_underline">True</property>
+ <property name="group">format_mode_button</property>
+ <signal name="toggled" handler="batch_rename_dialog_mode_changed" swapped="yes"/>
+ </object>
+ </child>
+ <layout>
+ <property name="column">3</property>
+ <property name="row">0</property>
+ </layout>
+ </object>
+ </child>
+ <child>
+ <object class="GtkStack" id="mode_stack">
+ <property name="vhomogeneous">False</property>
+ <property name="hhomogeneous">True</property>
+ <property name="transition_type">crossfade</property>
+ <property name="transition_duration">100</property>
+ <child>
+ <object class="GtkStackPage">
+ <property name="name">format</property>
+ <property name="title" translatable="yes" comments="Translators: This is a noun, not a verb">Format</property>
+ <property name="child">
+ <object class="GtkGrid" id="format_stack_child">
+ <property name="margin-start">40</property>
+ <property name="margin-end">40</property>
+ <property name="margin-bottom">10</property>
+ <property name="row-spacing">15</property>
+ <property name="column-spacing">6</property>
+ <child>
+ <object class="GtkBox">
+ <property name="halign">center</property>
+ <child>
+ <object class="GtkEntry" id="name_entry">
+ <property name="width_request">400</property>
+ <property name="hexpand">True</property>
+ <property name="activates-default">True</property>
+ <signal name="activate" handler="file_names_widget_on_activate" swapped="yes"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuButton">
+ <property name="menu_model">add_tag_menu</property>
+ <property name="child">
+ <object class="AdwButtonContent">
+ <property name="icon-name">list-add-symbolic</property>
+ <property name="label" translatable="yes">Add</property>
+ </object>
+ </property>
+ </object>
+ </child>
+ <style>
+ <class name="linked"/>
+ </style>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">0</property>
+ <property name="column-span">5</property>
+ </layout>
+ </object>
+ </child>
+ <child>
+ <object class="GtkRevealer" id="numbering_revealer">
+ <property name="halign">center</property>
+ <property name="child">
+ <object class="GtkBox" id="numbering_box">
+ <property name="spacing">10</property>
+ <child>
+ <object class="GtkLabel" id="numbering_label">
+ <property name="label" translatable="yes">Automatic Numbering Order</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuButton" id="numbering_order_button">
+ <property name="menu-model">numbering_order_menu</property>
+ <property name="always-show-arrow">True</property>
+ </object>
+ </child>
+ </object>
+ </property>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">1</property>
+ <property name="column-span">5</property>
+ </layout>
+ </object>
+ </child>
+ </object>
+ </property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkStackPage">
+ <property name="name">replace</property>
+ <property name="title" translatable="yes" context="title">Replace</property>
+ <property name="child">
+ <object class="GtkGrid" id="replace_stack_child">
+ <property name="margin-start">40</property>
+ <property name="margin-end">40</property>
+ <property name="margin-bottom">10</property>
+ <property name="hexpand">True</property>
+ <property name="halign">center</property>
+ <property name="row-spacing">15</property>
+ <property name="column-spacing">6</property>
+ <child>
+ <object class="GtkLabel" id="existing_text_label">
+ <property name="label" translatable="yes">Existing Text</property>
+ <property name="sensitive">False</property>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">0</property>
+ </layout>
+ </object>
+ </child>
+ <child>
+ <object class="GtkEntry" id="find_entry">
+ <property name="width_request">375</property>
+ <property name="activates-default">True</property>
+ <signal name="changed" handler="file_names_widget_entry_on_changed" swapped="yes"/>
+ <signal name="activate" handler="file_names_widget_on_activate" swapped="yes"/>
+ <layout>
+ <property name="column">1</property>
+ <property name="row">0</property>
+ <property name="column-span">3</property>
+ </layout>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel" id="replace_label">
+ <property name="label" translatable="yes">Replace With</property>
+ <property name="sensitive">False</property>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">1</property>
+ </layout>
+ </object>
+ </child>
+ <child>
+ <object class="GtkEntry" id="replace_entry">
+ <property name="width_request">375</property>
+ <signal name="changed" handler="file_names_widget_entry_on_changed" swapped="yes"/>
+ <signal name="activate" handler="file_names_widget_on_activate" swapped="yes"/>
+ <layout>
+ <property name="column">1</property>
+ <property name="row">1</property>
+ <property name="column-span">3</property>
+ </layout>
+ </object>
+ </child>
+ </object>
+ </property>
+ </object>
+ </child>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">1</property>
+ <property name="column-span">8</property>
+ </layout>
+ </object>
+ </child>
+ <child>
+ <object class="GtkScrolledWindow" id="scrolled_window">
+ <property name="hexpand">False</property>
+ <property name="vexpand">True</property>
+ <property name="max-content-height">250</property>
+ <property name="min-content-height">250</property>
+ <property name="max-content-width">600</property>
+ <property name="min-content-width">600</property>
+ <style>
+ <class name="batch-rename-preview"/>
+ </style>
+ <property name="child">
+ <object class="GtkViewport">
+ <property name="child">
+ <object class="GtkBox" id="a_box">
+ <child>
+ <object class="GtkListBox" id="original_name_listbox">
+ <property name="hexpand">True</property>
+ <property name="selection_mode">GTK_SELECTION_NONE</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkListBox" id="arrow_listbox">
+ <property name="selection_mode">GTK_SELECTION_NONE</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkListBox" id="result_listbox">
+ <property name="hexpand">True</property>
+ <property name="selection_mode">GTK_SELECTION_NONE</property>
+ </object>
+ </child>
+ </object>
+ </property>
+ </object>
+ </property>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">2</property>
+ <property name="column-span">8</property>
+ </layout>
+ </object>
+ </child>
+ <child>
+ <object class="GtkBox" id="conflict_box">
+ <property name="spacing">6</property>
+ <property name="visible">False</property>
+ <property name="margin-start">6</property>
+ <child>
+ <object class="GtkLabel" id="conflict_label">
+ <property name="hexpand">True</property>
+ <property name="xalign">0</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <child>
+ <object class="GtkButton" id="conflict_down">
+ <property name="icon-name">go-down-symbolic</property>
+ <signal name="clicked" handler="select_next_conflict_down" swapped="yes"/>
+ <style>
+ <class name="flat"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="GtkButton" id="conflict_up">
+ <property name="icon-name">go-up-symbolic</property>
+ <signal name="clicked" handler="select_next_conflict_up" swapped="yes"/>
+ <style>
+ <class name="flat"/>
+ </style>
+ </object>
+ </child>
+ </object>
+ </child>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">3</property>
+ <property name="column-span">8</property>
+ </layout>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </template>
+ <object class="GtkImage" id="done_image">
+ <property name="icon_name">object-select-symbolic</property>
+ </object>
+</interface>
diff --git a/src/resources/ui/nautilus-column-chooser.ui b/src/resources/ui/nautilus-column-chooser.ui
new file mode 100644
index 0000000..24cce3d
--- /dev/null
+++ b/src/resources/ui/nautilus-column-chooser.ui
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <requires lib="gtk" version="4.0"/>
+ <object class="GtkListStore" id="store">
+ <columns>
+ <!-- column-name COLUMN_VISIBLE -->
+ <column type="gboolean"/>
+ <!-- column-name COLUMN_LABEL -->
+ <column type="gchararray"/>
+ <!-- column-name COLUMN_NAME -->
+ <column type="gchararray"/>
+ <!-- column-name COLUMN_SENSITIVE -->
+ <column type="gboolean"/>
+ </columns>
+ </object>
+ <template class="NautilusColumnChooser" parent="GtkBox">
+ <property name="orientation">vertical</property>
+ <property name="spacing">12</property>
+ <child>
+ <object class="GtkScrolledWindow">
+ <property name="child">
+ <object class="GtkTreeView" id="view">
+ <property name="vexpand">True</property>
+ <property name="model">store</property>
+ <property name="headers-visible">False</property>
+ <property name="reorderable">True</property>
+ <signal name="row-activated" handler="view_row_activated_callback" swapped="no"/>
+ <child internal-child="selection">
+ <object class="GtkTreeSelection">
+ <signal name="changed" handler="selection_changed_callback" swapped="no"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="visible-column">
+ <child>
+ <object class="GtkCellRendererToggle">
+ <signal name="toggled" handler="visible_toggled_callback" swapped="no"/>
+ </object>
+ <attributes>
+ <attribute name="sensitive">3</attribute>
+ <attribute name="active">0</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="label-column">
+ <child>
+ <object class="GtkCellRendererText"/>
+ <attributes>
+ <attribute name="sensitive">3</attribute>
+ <attribute name="text">1</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ </object>
+ </property>
+ <style>
+ <class name="frame"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="spacing">12</property>
+ <child>
+ <object class="GtkBox">
+ <child>
+ <object class="GtkButton" id="move_up_button">
+ <property name="sensitive">False</property>
+ <property name="icon-name">go-up-symbolic</property>
+ <signal name="clicked" handler="move_up_clicked_callback" swapped="no"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkButton" id="move_down_button">
+ <property name="sensitive">False</property>
+ <property name="icon-name">go-down-symbolic</property>
+ <signal name="clicked" handler="move_down_clicked_callback" swapped="no"/>
+ </object>
+ </child>
+ <style>
+ <class name="linked"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <child>
+ <object class="GtkButton" id="use_default_button">
+ <property name="hexpand">true</property>
+ <property name="halign">end</property>
+ <property name="label" translatable="yes">Reset to De_fault</property>
+ <property name="tooltip-text" translatable="yes">Replace the current List Columns settings with the default settings</property>
+ <property name="use-underline">True</property>
+ <signal name="clicked" handler="use_default_clicked_callback" swapped="no"/>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </template>
+</interface>
diff --git a/src/resources/ui/nautilus-compress-dialog.ui b/src/resources/ui/nautilus-compress-dialog.ui
new file mode 100644
index 0000000..732afee
--- /dev/null
+++ b/src/resources/ui/nautilus-compress-dialog.ui
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <requires lib="gtk" version="4.0"/>
+ <object class="GtkDialog" id="compress_dialog">
+ <property name="title" translatable="yes">Create Compressed Archive</property>
+ <property name="resizable">False</property>
+ <property name="modal">True</property>
+ <property name="destroy_with_parent">True</property>
+ <property name="use-header-bar">1</property>
+ <property name="default-width">500</property>
+ <property name="default-height">210</property>
+ <child internal-child="content_area">
+ <object class="GtkBox" id="content_area">
+ <property name="orientation">vertical</property>
+ <property name="margin-top">30</property>
+ <property name="margin-bottom">30</property>
+ <property name="margin-start">30</property>
+ <property name="margin-end">30</property>
+ <property name="width-request">390</property>
+ <property name="halign">center</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkLabel" id="name_label">
+ <property name="label" translatable="yes">Archive name</property>
+ <property name="xalign">0</property>
+ <attributes>
+ <attribute name="weight" value="bold"></attribute>
+ </attributes>
+ </object>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="spacing">12</property>
+ <child>
+ <object class="GtkEntry" id="name_entry">
+ <accessibility>
+ <relation name="labelled-by">name_label</relation>
+ </accessibility>
+ <property name="hexpand">True</property>
+ <property name="width-chars">30</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkDropDown" id="extension_dropdown"/>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkRevealer" id="error_revealer">
+ <property name="child">
+ <object class="GtkLabel" id="error_label">
+ <property name="margin_top">4</property>
+ <property name="margin_bottom">4</property>
+ <property name="xalign">0</property>
+ </object>
+ </property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel" id="passphrase_label">
+ <property name="visible">False</property>
+ <property name="label" translatable="yes">Password</property>
+ <property name="margin-top">6</property>
+ <property name="xalign">0</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkEntry" id="passphrase_entry">
+ <accessibility>
+ <relation name="labelled-by">passphrase_label</relation>
+ </accessibility>
+ <property name="visible">False</property>
+ <property name="placeholder-text" translatable="yes">Enter a password here.</property>
+ <property name="input-purpose">password</property>
+ <property name="visibility">False</property>
+ <property name="secondary-icon-name">view-conceal</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="action">
+ <object class="GtkButton" id="cancel_button">
+ <property name="label" translatable="yes">Cancel</property>
+ </object>
+ </child>
+ <child type="action">
+ <object class="GtkButton" id="activate_button">
+ <property name="label" translatable="yes">Create</property>
+ <property name="sensitive">False</property>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="ok" default="true">activate_button</action-widget>
+ <action-widget response="cancel">cancel_button</action-widget>
+ </action-widgets>
+ </object>
+ <object class="GtkSizeGroup" id="extension_sizegroup"/>
+</interface>
diff --git a/src/resources/ui/nautilus-create-folder-dialog.ui b/src/resources/ui/nautilus-create-folder-dialog.ui
new file mode 100644
index 0000000..699180d
--- /dev/null
+++ b/src/resources/ui/nautilus-create-folder-dialog.ui
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <requires lib="gtk" version="4.0"/>
+ <object class="GtkDialog" id="create_folder_dialog">
+ <property name="resizable">False</property>
+ <property name="modal">True</property>
+ <property name="destroy_with_parent">True</property>
+ <property name="use-header-bar">1</property>
+ <property name="width_request">450</property>
+ <child internal-child="content_area">
+ <object class="GtkBox" id="content_area">
+ <property name="orientation">vertical</property>
+ <property name="margin_top">18</property>
+ <property name="margin_bottom">12</property>
+ <property name="margin_start">18</property>
+ <property name="margin_end">18</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkLabel" id="name_label">
+ <property name="xalign">0</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkEntry" id="name_entry">
+ <accessibility>
+ <relation name="labelled-by">name_label</relation>
+ </accessibility>
+ </object>
+ </child>
+ <child>
+ <object class="GtkRevealer" id="error_revealer">
+ <property name="child">
+ <object class="GtkLabel" id="error_label">
+ <property name="margin_top">4</property>
+ <property name="margin_bottom">4</property>
+ <property name="xalign">0</property>
+ </object>
+ </property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="action">
+ <object class="GtkButton" id="cancel_button">
+ <property name="label" translatable="yes">Cancel</property>
+ </object>
+ </child>
+ <child type="action">
+ <object class="GtkButton" id="ok_button">
+ <property name="sensitive">False</property>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="ok" default="true">ok_button</action-widget>
+ <action-widget response="cancel">cancel_button</action-widget>
+ </action-widgets>
+ </object>
+</interface>
diff --git a/src/resources/ui/nautilus-file-conflict-dialog.ui b/src/resources/ui/nautilus-file-conflict-dialog.ui
new file mode 100644
index 0000000..8993fb6
--- /dev/null
+++ b/src/resources/ui/nautilus-file-conflict-dialog.ui
@@ -0,0 +1,147 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <requires lib="gtk" version="4.0"/>
+ <template class="NautilusFileConflictDialog" parent="GtkDialog">
+ <property name="modal">True</property>
+ <property name="resizable">False</property>
+ <child internal-child="content_area">
+ <object class="GtkBox">
+ <property name="margin-top">18</property>
+ <property name="margin-bottom">18</property>
+ <property name="margin-start">18</property>
+ <property name="margin-end">18</property>
+ <property name="spacing">12</property>
+ <child>
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <property name="spacing">12</property>
+ <child>
+ <object class="GtkLabel" id="primary_label">
+ <property name="justify">center</property>
+ <property name="halign">center</property>
+ <property name="max-width-chars">50</property>
+ <property name="wrap">True</property>
+ <property name="wrap-mode">word-char</property>
+ <style>
+ <class name="title-2"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel" id="secondary_label">
+ <property name="justify">center</property>
+ <property name="halign">center</property>
+ <property name="max-width-chars">50</property>
+ <property name="wrap">True</property>
+ <property name="wrap-mode">word-char</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="halign">start</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">12</property>
+ <child>
+ <object class="GtkBox">
+ <property name="spacing">12</property>
+ <child>
+ <object class="GtkPicture" id="dest_icon"/>
+ </child>
+ <child>
+ <object class="GtkLabel" id="dest_label"/>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="spacing">12</property>
+ <child>
+ <object class="GtkPicture" id="src_icon"/>
+ </child>
+ <child>
+ <object class="GtkLabel" id="src_label"/>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkExpander" id="expander">
+ <property name="label" translatable="yes">_Select a new name for the destination</property>
+ <property name="use-underline">True</property>
+ <signal name="notify::expanded" handler="on_expanded_notify"/>
+ <child>
+ <object class="GtkBox">
+ <property name="margin-top">6</property>
+ <style>
+ <class name="linked"/>
+ </style>
+ <child>
+ <object class="GtkEntry" id="entry">
+ <property name="activates-default">True</property>
+ <property name="hexpand">True</property>
+ <signal name="changed" handler="entry_text_changed_cb"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkButton">
+ <property name="label" translatable="yes">_Reset</property>
+ <property name="use-underline">True</property>
+ <signal name="clicked" handler="reset_button_clicked_cb"/>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="checkbox">
+ <signal name="toggled" handler="checkbox_toggled_cb"/>
+ <child>
+ <object class="GtkLabel">
+ <property name="label" translatable="yes">Apply this action to all files and folders</property>
+ <property name="use-underline">True</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="action">
+ <object class="GtkButton" id="cancel_button">
+ <property name="label" translatable="yes">_Cancel</property>
+ <property name="use-underline">True</property>
+ </object>
+ </child>
+ <child type="action">
+ <object class="GtkButton" id="rename_button">
+ <property name="visible">False</property>
+ <property name="label" translatable="yes">Re_name</property>
+ <property name="use-underline">True</property>
+ </object>
+ </child>
+ <child type="action">
+ <object class="GtkButton" id="replace_button">
+ <property name="label" translatable="yes">Re_place</property>
+ <property name="use-underline">True</property>
+ </object>
+ </child>
+ <child type="action">
+ <object class="GtkButton" id="skip_button">
+ <property name="label" translatable="yes">_Skip</property>
+ <property name="use-underline">True</property>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="cancel">cancel_button</action-widget>
+ <!-- 3 is CONFLICT_RESPONSE_RENAME -->
+ <action-widget response="3">rename_button</action-widget>
+ <!-- 2 is CONFLICT_RESPONSE_REPLACE -->
+ <action-widget response="2" default="true">replace_button</action-widget>
+ <!-- 1 is CONFLICT_RESPONSE_SKIP -->
+ <action-widget response="1">skip_button</action-widget>
+ </action-widgets>
+ </template>
+</interface>
diff --git a/src/resources/ui/nautilus-file-properties-change-permissions.ui b/src/resources/ui/nautilus-file-properties-change-permissions.ui
new file mode 100644
index 0000000..623b7db
--- /dev/null
+++ b/src/resources/ui/nautilus-file-properties-change-permissions.ui
@@ -0,0 +1,157 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <requires lib="gtk" version="4.0"/>
+ <object class="GtkDialog" id="change_permissions_dialog">
+ <property name="title" translatable="yes">Change Permissions for Enclosed Files</property>
+ <property name="modal">True</property>
+ <property name="destroy_with_parent">True</property>
+ <property name="use-header-bar">1</property>
+ <child type="action">
+ <object class="GtkButton" id="cancel">
+ <property name="label" translatable="yes">_Cancel</property>
+ <property name="use_underline">True</property>
+ </object>
+ </child>
+ <child type="action">
+ <object class="GtkButton" id="change">
+ <property name="label" translatable="yes">C_hange</property>
+ <property name="use_underline">True</property>
+ </object>
+ </child>
+ <child internal-child="content_area">
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <style>
+ <class name="view"/>
+ </style>
+ <child>
+ <object class="GtkGrid" id="change_permissions_grid">
+ <property name="halign">center</property>
+ <property name="margin-top">6</property>
+ <property name="margin-bottom">6</property>
+ <property name="margin-start">6</property>
+ <property name="margin-end">6</property>
+ <property name="orientation">vertical</property>
+ <property name="row_spacing">6</property>
+ <property name="column_spacing">12</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="label" translatable="yes">Files</property>
+ <style>
+ <class name="dim-label"/>
+ </style>
+ <layout>
+ <property name="column">1</property>
+ <property name="row">0</property>
+ </layout>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="label" translatable="yes">Folders</property>
+ <style>
+ <class name="dim-label"/>
+ </style>
+ <layout>
+ <property name="column">2</property>
+ <property name="row">0</property>
+ </layout>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="label" translatable="yes">Owner</property>
+ <property name="xalign">1</property>
+ <style>
+ <class name="dim-label"/>
+ </style>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">1</property>
+ </layout>
+ </object>
+ </child>
+ <child>
+ <object class="GtkComboBox" id="file_owner_combo">
+ <layout>
+ <property name="column">1</property>
+ <property name="row">1</property>
+ </layout>
+ </object>
+ </child>
+ <child>
+ <object class="GtkComboBox" id="folder_owner_combo">
+ <layout>
+ <property name="column">2</property>
+ <property name="row">1</property>
+ </layout>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="label" translatable="yes">Group</property>
+ <property name="xalign">1</property>
+ <style>
+ <class name="dim-label"/>
+ </style>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">2</property>
+ </layout>
+ </object>
+ </child>
+ <child>
+ <object class="GtkComboBox" id="file_group_combo">
+ <layout>
+ <property name="column">1</property>
+ <property name="row">2</property>
+ </layout>
+ </object>
+ </child>
+ <child>
+ <object class="GtkComboBox" id="folder_group_combo">
+ <layout>
+ <property name="column">2</property>
+ <property name="row">2</property>
+ </layout>
+ </object>
+ </child>
+ <child>
+ <object class="GtkComboBox" id="file_other_combo">
+ <layout>
+ <property name="column">1</property>
+ <property name="row">3</property>
+ </layout>
+ </object>
+ </child>
+ <child>
+ <object class="GtkComboBox" id="folder_other_combo">
+ <layout>
+ <property name="column">2</property>
+ <property name="row">3</property>
+ </layout>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="label" translatable="yes">Others</property>
+ <property name="xalign">1</property>
+ <style>
+ <class name="dim-label"/>
+ </style>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">3</property>
+ </layout>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="cancel">cancel</action-widget>
+ <action-widget response="ok">change</action-widget>
+ </action-widgets>
+ </object>
+</interface>
diff --git a/src/resources/ui/nautilus-files-view-context-menus.ui b/src/resources/ui/nautilus-files-view-context-menus.ui
new file mode 100644
index 0000000..87f0c41
--- /dev/null
+++ b/src/resources/ui/nautilus-files-view-context-menus.ui
@@ -0,0 +1,260 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <requires lib="gtk" version="4.0"/>
+ <menu id="background-menu">
+ <item>
+ <attribute name="label" translatable="yes">New _Folder…</attribute>
+ <attribute name="action">view.new-folder</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">New _Document</attribute>
+ <attribute name="nautilus-menu-item">templates-submenu</attribute>
+ <link name="submenu" id="templates-submenu"/>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Open _With…</attribute>
+ <attribute name="action">view.open-current-directory-with-other-application</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Open in Consol_e</attribute>
+ <attribute name="action">view.current-directory-console</attribute>
+ <attribute name="hidden-when">action-disabled</attribute>
+ </item>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Paste</attribute>
+ <attribute name="action">view.paste</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Paste as _Link</attribute>
+ <attribute name="action">view.create-link</attribute>
+ <attribute name="hidden-when">action-disabled</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Select _All</attribute>
+ <attribute name="action">view.select-all</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Visible Columns…</attribute>
+ <attribute name="action">view.visible-columns</attribute>
+ <attribute name="hidden-when">action-missing</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Empty _Trash</attribute>
+ <attribute name="action">view.empty-trash</attribute>
+ <attribute name="hidden-when">action-disabled</attribute>
+ </item>
+ </section>
+ <section id="background-extensions-section"/>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">P_roperties</attribute>
+ <attribute name="action">view.current-directory-properties</attribute>
+ <attribute name="hidden-when">action-disabled</attribute>
+ </item>
+ </section>
+ </menu>
+ <menu id="selection-menu">
+ <section id="new-folder-with-selection-section"/>
+ <section id="open-with-application-section">
+ <item>
+ <attribute name="label" translatable="yes">_Extract</attribute>
+ <attribute name="action">view.extract-here</attribute>
+ <attribute name="hidden-when">action-disabled</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">E_xtract to…</attribute>
+ <attribute name="action">view.extract-to</attribute>
+ <attribute name="hidden-when">action-disabled</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Open _With…</attribute>
+ <attribute name="action">view.open-with-other-application</attribute>
+ <attribute name="hidden-when">action-disabled</attribute>
+ <attribute name="nautilus-menu-item">open_with_in_main_menu</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Run as a Program</attribute>
+ <attribute name="action">view.run-in-terminal</attribute>
+ <attribute name="hidden-when">action-disabled</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Open</attribute>
+ <attribute name="nautilus-menu-item">open_in_view_submenu</attribute>
+ <link name="submenu">
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Open</attribute>
+ <attribute name="action">view.open-with-default-application</attribute>
+ <attribute name="hidden-when">action-disabled</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Open In New _Tab</attribute>
+ <attribute name="action">view.open-item-new-tab</attribute>
+ <attribute name="hidden-when">action-disabled</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Open In New _Window</attribute>
+ <attribute name="action">view.open-item-new-window</attribute>
+ <attribute name="hidden-when">action-disabled</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Open _With…</attribute>
+ <attribute name="action">view.open-with-other-application</attribute>
+ <attribute name="hidden-when">action-disabled</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Open in Consol_e</attribute>
+ <attribute name="action">view.console</attribute>
+ <attribute name="hidden-when">action-disabled</attribute>
+ </item>
+ </section>
+ </link>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Open Item Location</attribute>
+ <attribute name="action">view.open-item-location</attribute>
+ <attribute name="hidden-when">action-disabled</attribute>
+ </item>
+ <submenu>
+ <attribute name="label" translatable="yes">_Scripts</attribute>
+ <attribute name="nautilus-menu-item">scripts-submenu</attribute>
+ <section id="scripts-submenu-section"/>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Open Scripts Folder</attribute>
+ <attribute name="action">view.open-scripts-folder</attribute>
+ <attribute name="hidden-when">action-disabled</attribute>
+ </item>
+ </section>
+ </submenu>
+ </section>
+ <section id="drive-section">
+ <item>
+ <attribute name="label" translatable="yes">_Mount</attribute>
+ <attribute name="action">view.mount-volume</attribute>
+ <attribute name="hidden-when">action-disabled</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Unmount</attribute>
+ <attribute name="action">view.unmount-volume</attribute>
+ <attribute name="hidden-when">action-disabled</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Eject</attribute>
+ <attribute name="action">view.eject-volume</attribute>
+ <attribute name="hidden-when">action-disabled</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Start</attribute>
+ <attribute name="action">view.start-volume</attribute>
+ <attribute name="hidden-when">action-disabled</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Stop</attribute>
+ <attribute name="action">view.stop-volume</attribute>
+ <attribute name="hidden-when">action-disabled</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Detect Media</attribute>
+ <attribute name="action">view.detect-media</attribute>
+ <attribute name="hidden-when">action-disabled</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Cu_t</attribute>
+ <attribute name="action">view.cut</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Copy</attribute>
+ <attribute name="action">view.copy</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Move to…</attribute>
+ <attribute name="action">view.move-to</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Copy to…</attribute>
+ <attribute name="action">view.copy-to</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Rena_me…</attribute>
+ <attribute name="action">view.rename</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Paste Into Folder</attribute>
+ <attribute name="action">view.paste-into</attribute>
+ <attribute name="hidden-when">action-disabled</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Create _Link</attribute>
+ <attribute name="action">view.create-link-in-place</attribute>
+ <attribute name="hidden-when">action-disabled</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">C_ompress…</attribute>
+ <attribute name="action">view.compress</attribute>
+ <attribute name="hidden-when">action-disabled</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Set as Background…</attribute>
+ <attribute name="action">view.set-as-wallpaper</attribute>
+ <attribute name="hidden-when">action-disabled</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes" comments="Translators: This is the transitive verb meaning 'to send via email' (e.g. 'email this document to Angela).">Email…</attribute>
+ <attribute name="action">view.send-email</attribute>
+ <attribute name="hidden-when">action-disabled</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Mo_ve to Trash</attribute>
+ <attribute name="action">view.move-to-trash</attribute>
+ <attribute name="hidden-when">action-disabled</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Delete from Trash</attribute>
+ <attribute name="action">view.delete-from-trash</attribute>
+ <attribute name="hidden-when">action-disabled</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Delete Permanently…</attribute>
+ <attribute name="action">view.delete-permanently-menu-item</attribute>
+ <attribute name="hidden-when">action-disabled</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Delete Permanently…</attribute>
+ <attribute name="action">view.permanent-delete-permanently-menu-item</attribute>
+ <attribute name="hidden-when">action-disabled</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Restore From Trash</attribute>
+ <attribute name="action">view.restore-from-trash</attribute>
+ <attribute name="hidden-when">action-disabled</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Remove from Recent</attribute>
+ <attribute name="action">view.remove-from-recent</attribute>
+ <attribute name="hidden-when">action-disabled</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes" comments="Unmarks a file as starred (starred)">Unstar</attribute>
+ <attribute name="action">view.unstar</attribute>
+ <attribute name="hidden-when">action-disabled</attribute>
+ </item>
+ </section>
+ <section id="selection-extensions-section"/>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">P_roperties</attribute>
+ <attribute name="action">view.properties</attribute>
+ </item>
+ </section>
+ </menu>
+</interface>
diff --git a/src/resources/ui/nautilus-files-view-select-items.ui b/src/resources/ui/nautilus-files-view-select-items.ui
new file mode 100644
index 0000000..614ed2a
--- /dev/null
+++ b/src/resources/ui/nautilus-files-view-select-items.ui
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <requires lib="gtk" version="4.0"/>
+ <object class="GtkDialog" id="select_items_dialog">
+ <property name="title" translatable="yes">Select Items Matching</property>
+ <property name="modal">True</property>
+ <property name="use-header-bar">1</property>
+ <child type="action">
+ <object class="GtkButton" id="cancel">
+ <property name="label" translatable="yes">_Cancel</property>
+ <property name="use-underline">True</property>
+ </object>
+ </child>
+ <child type="action">
+ <object class="GtkButton" id="select">
+ <property name="label" translatable="yes">_Select</property>
+ <property name="use-underline">True</property>
+ </object>
+ </child>
+ <child internal-child="content_area">
+ <object class="GtkBox">
+ <property name="margin-top">18</property>
+ <property name="margin-bottom">18</property>
+ <property name="margin-start">18</property>
+ <property name="margin-end">18</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="halign">start</property>
+ <property name="label" translatable="yes">Pattern</property>
+ <attributes>
+ <attribute name="weight" value="bold"></attribute>
+ </attributes>
+ </object>
+ </child>
+ <child>
+ <object class="GtkEntry" id="pattern_entry">
+ <property name="hexpand">True</property>
+ <property name="activates_default">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel" id="example">
+ <property name="halign">start</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="cancel">cancel</action-widget>
+ <action-widget response="ok" default="true">select</action-widget>
+ </action-widgets>
+ </object>
+</interface>
diff --git a/src/resources/ui/nautilus-files-view.ui b/src/resources/ui/nautilus-files-view.ui
new file mode 100644
index 0000000..eab5bdd
--- /dev/null
+++ b/src/resources/ui/nautilus-files-view.ui
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <requires lib="gtk" version="4.0"/>
+ <template class="NautilusFilesView" parent="AdwBin">
+ <accessibility>
+ <property name="label" translatable="yes">Content View</property>
+ <property name="description" translatable="yes">View of the current folder</property>
+ </accessibility>
+ <child>
+ <object class="GtkOverlay" id="overlay">
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <child>
+ <object class="GtkStack" id="stack">
+ <property name="hexpand">True</property>
+ <child>
+ <object class="GtkStackPage">
+ <property name="child">
+ <object class="AdwStatusPage" id="empty_view_page"/>
+ </property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkStackPage">
+ <property name="child">
+ <object class="GtkScrolledWindow" id="scrolled_window"/>
+ </property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="overlay">
+ <object class="NautilusFloatingBar" id="floating_bar">
+ <property name="halign">end</property>
+ <property name="valign">end</property>
+ <property name="spacing">8</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </template>
+</interface>
diff --git a/src/resources/ui/nautilus-grid-cell.ui b/src/resources/ui/nautilus-grid-cell.ui
new file mode 100644
index 0000000..1a92040
--- /dev/null
+++ b/src/resources/ui/nautilus-grid-cell.ui
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <requires lib="gtk" version="4.0"/>
+ <template class="NautilusGridCell" parent="NautilusViewCell">
+ <property name="valign">start</property>
+ <accessibility>
+ <relation name="labelled-by">label</relation>
+ </accessibility>
+ <child>
+ <object class="AdwClamp">
+ <property name="maximum-size">0</property>
+ <property name="child">
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkBox" id="fixed_height_box">
+ <property name="orientation">horizontal</property>
+ <property name="halign">center</property>
+ <property name="margin-start">18</property>
+ <child>
+ <object class="AdwClamp">
+ <property name="maximum-size">0</property>
+ <property name="child">
+ <object class="GtkPicture" id="icon">
+ <property name="halign">center</property>
+ <property name="hexpand">True</property>
+ <property name="valign">center</property>
+ <property name="vexpand">True</property>
+ <property name="can-shrink">False</property>
+ </object>
+ </property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkBox" id="emblems_box">
+ <property name="orientation">vertical</property>
+ <property name="halign">end</property>
+ <property name="spacing">6</property>
+ <property name="margin-start">2</property>
+ <property name="width-request">16</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <style>
+ <class name="icon-ui-labels-box"/>
+ </style>
+ <child>
+ <object class="GtkLabel" id="label">
+ <property name="has-tooltip">true</property>
+ <property name="ellipsize">middle</property>
+ <property name="justify">center</property>
+ <property name="lines">3</property>
+ <property name="wrap">True</property>
+ <property name="wrap-mode">word-char</property>
+ <attributes>
+ <attribute name="insert-hyphens" value="false"></attribute>
+ </attributes>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel" id="first_caption">
+ <property name="ellipsize">end</property>
+ <property name="justify">center</property>
+ <property name="lines">2</property>
+ <property name="wrap">True</property>
+ <property name="wrap-mode">word-char</property>
+ <property name="valign">start</property>
+ <style>
+ <class name="caption"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel" id="second_caption">
+ <property name="ellipsize">end</property>
+ <property name="justify">center</property>
+ <property name="lines">2</property>
+ <property name="wrap">True</property>
+ <property name="wrap-mode">word-char</property>
+ <style>
+ <class name="caption"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel" id="third_caption">
+ <property name="ellipsize">end</property>
+ <property name="justify">center</property>
+ <property name="lines">2</property>
+ <property name="wrap">True</property>
+ <property name="wrap-mode">word-char</property>
+ <style>
+ <class name="caption"/>
+ </style>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </property>
+ </object>
+ </child>
+ </template>
+</interface>
diff --git a/src/resources/ui/nautilus-history-controls.ui b/src/resources/ui/nautilus-history-controls.ui
new file mode 100644
index 0000000..0fd0ce5
--- /dev/null
+++ b/src/resources/ui/nautilus-history-controls.ui
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkPopoverMenu" id="back_menu"/>
+ <object class="GtkPopoverMenu" id="forward_menu"/>
+ <template class="NautilusHistoryControls" parent="AdwBin">
+ <property name="child">
+ <object class="GtkBox">
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkButton" id="back_button">
+ <property name="tooltip_text" translatable="yes">Back</property>
+ <property name="valign">center</property>
+ <property name="action_name">win.back</property>
+ <property name="icon_name">go-previous-symbolic</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkButton" id="forward_button">
+ <property name="tooltip_text" translatable="yes">Forward</property>
+ <property name="valign">center</property>
+ <property name="action_name">win.forward</property>
+ <property name="icon_name">go-next-symbolic</property>
+ </object>
+ </child>
+ </object>
+ </property>
+ </template>
+</interface>
diff --git a/src/resources/ui/nautilus-list-view-column-editor.ui b/src/resources/ui/nautilus-list-view-column-editor.ui
new file mode 100644
index 0000000..c4cab58
--- /dev/null
+++ b/src/resources/ui/nautilus-list-view-column-editor.ui
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <requires lib="gtk" version="4.0"/>
+ <object class="AdwWindow" id="window">
+ <property name="modal">True</property>
+ <property name="default-width">360</property>
+ <property name="default-height">440</property>
+ <child>
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="AdwHeaderBar">
+ <child type="title">
+ <object class="AdwWindowTitle" id="window_title">
+ <property name="title" translatable="true">Visible Columns</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkBox" id="box">
+ <property name="margin-top">18</property>
+ <property name="margin-bottom">18</property>
+ <property name="margin-start">18</property>
+ <property name="margin-end">18</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">18</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="label" translatable="yes">Choose the order of information to appear in this folder:</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0</property>
+ <property name="wrap">True</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/src/resources/ui/nautilus-name-cell.ui b/src/resources/ui/nautilus-name-cell.ui
new file mode 100644
index 0000000..246aa3a
--- /dev/null
+++ b/src/resources/ui/nautilus-name-cell.ui
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <requires lib="gtk" version="4.0"/>
+ <template class="NautilusNameCell" parent="NautilusViewCell">
+ <accessibility>
+ <relation name="labelled-by">label</relation>
+ </accessibility>
+ <child>
+ <object class="GtkBox">
+ <property name="spacing">6</property>
+ <property name="orientation">horizontal</property>
+ <property name="halign">fill</property>
+ <property name="valign">center</property>
+ <child>
+ <object class="GtkBox" id="fixed_height_box">
+ <property name="orientation">vertical</property>
+ <property name="halign">center</property>
+ <property name="height-request">16</property>
+ <property name="valign">center</property>
+ <child>
+ <object class="GtkPicture" id="icon">
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="can-shrink">False</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <property name="halign">fill</property>
+ <property name="hexpand">True</property>
+ <property name="valign">center</property>
+ <style>
+ <class name="column-name-labels-box"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <property name="orientation">horizontal</property>
+ <property name="halign">fill</property>
+ <property name="hexpand">True</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkLabel" id="label">
+ <property name="ellipsize">middle</property>
+ <property name="lines">1</property>
+ <property name="max-width-chars">-1</property>
+ <property name="wrap">False</property>
+ <property name="wrap-mode">word-char</property>
+ <property name="halign">start</property>
+ <attributes>
+ <attribute name="insert-hyphens" value="false"></attribute>
+ </attributes>
+ </object>
+ </child>
+ <child>
+ <object class="GtkBox" id="emblems_box">
+ <property name="orientation">horizontal</property>
+ <property name="halign">start</property>
+ <property name="spacing">6</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel" id="path">
+ <property name="visible">False</property>
+ <property name="ellipsize">start</property>
+ <property name="justify">left</property>
+ <property name="halign">fill</property>
+ <property name="xalign">0.0</property>
+ <attributes>
+ <attribute name="insert-hyphens" value="false"></attribute>
+ </attributes>
+ <style>
+ <class name="caption"/>
+ <class name="dim-label"/>
+ </style>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuButton" id="snippet_button">
+ <property name="tooltip-text" translatable="yes">Full text match</property>
+ <property name="visible">False</property>
+ <property name="icon-name">quotation-symbolic</property>
+ <property name="valign">center</property>
+ <style>
+ <class name="fts-snippet"/>
+ </style>
+ <property name="popover">
+ <object class="GtkPopover">
+ <child>
+ <object class="GtkLabel" id="snippet">
+ <property name="ellipsize">none</property>
+ <property name="justify">left</property>
+ <property name="max-width-chars">65</property>
+ <property name="lines">10</property>
+ <property name="wrap">True</property>
+ <property name="wrap-mode">word</property>
+ </object>
+ </child>
+ </object>
+ </property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </template>
+</interface>
diff --git a/src/resources/ui/nautilus-operations-ui-manager-request-passphrase.ui b/src/resources/ui/nautilus-operations-ui-manager-request-passphrase.ui
new file mode 100644
index 0000000..8c87ed1
--- /dev/null
+++ b/src/resources/ui/nautilus-operations-ui-manager-request-passphrase.ui
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <requires lib="gtk" version="4.0"/>
+ <object class="GtkDialog" id="request_passphrase_dialog">
+ <property name="title" translatable="yes">Password Required</property>
+ <property name="modal">True</property>
+ <property name="destroy-with-parent">True</property>
+ <property name="use-header-bar">1</property>
+ <child internal-child="content_area">
+ <object class="GtkBox">
+ <property name="margin-top">20</property>
+ <property name="margin-bottom">20</property>
+ <property name="margin-start">20</property>
+ <property name="margin-end">20</property>
+ <child>
+ <object class="GtkLabel" id="label">
+ <property name="max-width-chars">60</property>
+ <property name="wrap">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkEntry" id="entry">
+ <property name="activates-default">True</property>
+ <property name="valign">end</property>
+ <property name="vexpand">True</property>
+ <property name="placeholder-text" translatable="yes">Enter password…</property>
+ <property name="visibility">False</property>
+ <property name="input-purpose">password</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="action">
+ <object class="GtkButton" id="cancel_button">
+ <property name="label" translatable="yes">_Cancel</property>
+ <property name="use-underline">True</property>
+ </object>
+ </child>
+ <child type="action">
+ <object class="GtkButton" id="extract_button">
+ <property name="label" translatable="yes">Extract</property>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="cancel">cancel_button</action-widget>
+ <action-widget response="ok" default="true">extract_button</action-widget>
+ </action-widgets>
+ </object>
+</interface>
diff --git a/src/resources/ui/nautilus-pathbar-context-menu.ui b/src/resources/ui/nautilus-pathbar-context-menu.ui
new file mode 100644
index 0000000..c1f9a2c
--- /dev/null
+++ b/src/resources/ui/nautilus-pathbar-context-menu.ui
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <requires lib="gtk" version="4.0"/>
+ <menu id="button-menu">
+ <item>
+ <attribute name="label" translatable="yes">Open in New _Window</attribute>
+ <attribute name="action">pathbar.open-item-new-window</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Open in New _Tab</attribute>
+ <attribute name="action">pathbar.open-item-new-tab</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Properties</attribute>
+ <attribute name="action">pathbar.properties</attribute>
+ </item>
+ </menu>
+ <menu id="current-view-menu">
+ <item>
+ <attribute name="label" translatable="yes">New _Folder…</attribute>
+ <attribute name="action">view.new-folder</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">New _Document</attribute>
+ <attribute name="nautilus-menu-item">templates-submenu</attribute>
+ <link name="submenu" id="templates-submenu"/>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Open _With…</attribute>
+ <attribute name="action">view.open-current-directory-with-other-application</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Open in Consol_e</attribute>
+ <attribute name="action">view.current-directory-console</attribute>
+ <attribute name="hidden-when">action-disabled</attribute>
+ </item>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">R_eload</attribute>
+ <attribute name="action">win.reload</attribute>
+ <attribute name="hidden-when">action-disabled</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">St_op</attribute>
+ <attribute name="action">win.stop</attribute>
+ <attribute name="hidden-when">action-disabled</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Add to _Bookmarks</attribute>
+ <attribute name="action">win.bookmark-current-location</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Copy Location</attribute>
+ <attribute name="action">view.copy-current-location</attribute>
+ </item>
+ </section>
+ <section id="background-extensions-section"/>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Empty _Trash</attribute>
+ <attribute name="action">view.empty-trash</attribute>
+ <attribute name="hidden-when">action-disabled</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">P_roperties</attribute>
+ <attribute name="action">view.current-directory-properties</attribute>
+ <attribute name="hidden-when">action-disabled</attribute>
+ </item>
+ </section>
+ </menu>
+</interface>
diff --git a/src/resources/ui/nautilus-preferences-window.ui b/src/resources/ui/nautilus-preferences-window.ui
new file mode 100644
index 0000000..abee4f2
--- /dev/null
+++ b/src/resources/ui/nautilus-preferences-window.ui
@@ -0,0 +1,164 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <requires lib="gtk" version="4.0"/>
+ <object class="AdwPreferencesWindow" id="preferences_window">
+ <property name="search_enabled">False</property>
+ <property name="hide_on_close">True</property>
+ <child>
+ <object class="AdwPreferencesPage">
+ <property name="title" translatable="yes">General</property>
+ <property name="visible">True</property>
+ <child>
+ <object class="AdwPreferencesGroup">
+ <property name="title" translatable="yes">General</property>
+ <property name="visible">True</property>
+ <child>
+ <object class="AdwActionRow">
+ <property name="activatable_widget">sort_folders_first_switch</property>
+ <property name="subtitle_lines">0</property>
+ <property name="title" translatable="yes">Sort _Folders Before Files</property>
+ <property name="title_lines">0</property>
+ <property name="use_underline">True</property>
+ <property name="visible">True</property>
+ <child>
+ <object class="GtkSwitch" id="sort_folders_first_switch">
+ <property name="valign">center</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="AdwActionRow">
+ <property name="activatable_widget">use_tree_view_switch</property>
+ <property name="subtitle_lines">0</property>
+ <property name="title" translatable="yes">_Expandable Folders in List View</property>
+ <property name="title_lines">0</property>
+ <property name="use_underline">True</property>
+ <property name="visible">False</property>
+ <child>
+ <object class="GtkSwitch" id="use_tree_view_switch">
+ <property name="valign">center</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="AdwComboRow" id="open_action_row">
+ <property name="subtitle_lines">0</property>
+ <property name="title" translatable="yes">Action to Open Items</property>
+ <property name="title_lines">0</property>
+ <property name="use_underline">True</property>
+ <property name="visible">True</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="AdwPreferencesGroup">
+ <property name="title" translatable="yes">Optional Context Menu Actions</property>
+ <property name="description" translatable="yes">Show more actions in the menus. Keyboard shortcuts can be used even if the actions are not shown.</property>
+ <property name="visible">True</property>
+ <child>
+ <object class="AdwActionRow">
+ <property name="activatable_widget">show_create_link_switch</property>
+ <property name="subtitle_lines">0</property>
+ <property name="title" translatable="yes">Create _Link</property>
+ <property name="title_lines">0</property>
+ <property name="use_underline">True</property>
+ <property name="visible">True</property>
+ <child>
+ <object class="GtkSwitch" id="show_create_link_switch">
+ <property name="valign">center</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="AdwActionRow">
+ <property name="activatable_widget">show_delete_permanently_switch</property>
+ <property name="subtitle_lines">0</property>
+ <property name="title" translatable="yes">_Delete Permanently</property>
+ <property name="title_lines">0</property>
+ <property name="use_underline">True</property>
+ <property name="visible">True</property>
+ <child>
+ <object class="GtkSwitch" id="show_delete_permanently_switch">
+ <property name="valign">center</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="AdwPreferencesGroup">
+ <property name="title" translatable="yes">Performance</property>
+ <property name="description" translatable="yes">These features may cause slowdowns and excess network usage, especially when browsing files outside this computer, such as on a remote server.</property>
+ <property name="visible">True</property>
+ <child>
+ <object class="AdwComboRow" id="search_recursive_row">
+ <property name="subtitle_lines">0</property>
+ <property name="title" translatable="yes">Search in Subfolders</property>
+ <property name="title_lines">0</property>
+ <property name="use_underline">True</property>
+ <property name="visible">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="AdwComboRow" id="thumbnails_row">
+ <property name="subtitle_lines">0</property>
+ <property name="title" translatable="yes">Show Thumbnails</property>
+ <property name="title_lines">0</property>
+ <property name="use_underline">True</property>
+ <property name="visible">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="AdwComboRow" id="count_row">
+ <property name="subtitle_lines">0</property>
+ <property name="title" translatable="yes">Count Number of Files in Folders</property>
+ <property name="title_lines">0</property>
+ <property name="use_underline">True</property>
+ <property name="visible">True</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="AdwPreferencesGroup">
+ <property name="description" translatable="yes">Add information to be displayed beneath file and folder names. More information will appear when zooming closer.</property>
+ <property name="title" translatable="yes">Grid View Captions</property>
+ <property name="visible">True</property>
+ <child>
+ <object class="AdwComboRow" id="captions_0_comborow">
+ <property name="subtitle_lines">0</property>
+ <property name="title" translatable="yes" context="the n-th position of an icon caption" comments="Translators: This is an ordinal number">First</property>
+ <property name="title_lines">0</property>
+ <property name="use_underline">True</property>
+ <property name="visible">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="AdwComboRow" id="captions_1_comborow">
+ <property name="subtitle_lines">0</property>
+ <property name="title" translatable="yes" context="the n-th position of an icon caption" comments="Translators: This is an ordinal number">Second</property>
+ <property name="title_lines">0</property>
+ <property name="use_underline">True</property>
+ <property name="visible">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="AdwComboRow" id="captions_2_comborow">
+ <property name="subtitle_lines">0</property>
+ <property name="title" translatable="yes" context="the n-th position of an icon caption" comments="Translators: This is an ordinal number">Third</property>
+ <property name="title_lines">0</property>
+ <property name="use_underline">True</property>
+ <property name="visible">True</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/src/resources/ui/nautilus-progress-indicator.ui b/src/resources/ui/nautilus-progress-indicator.ui
new file mode 100644
index 0000000..a44f8d1
--- /dev/null
+++ b/src/resources/ui/nautilus-progress-indicator.ui
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <menu id="view_menu">
+ <section>
+ <attribute name="label" translatable="yes" context="menu item" comments="Translators: a menu item in a group of sorting options in a toolbar menu, with criterions such as &quot;A-Z&quot; or &quot;Last Modified&quot;.">Sort</attribute>
+ <!--
+ Sort section.
+
+ The toolbar code assumes this is the second item of this menu model.
+ Its contents is provided by the view.
+ -->
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Visible Columns…</attribute>
+ <attribute name="action">view.visible-columns</attribute>
+ <attribute name="hidden-when">action-missing</attribute>
+ </item>
+ </section>
+ </menu>
+ <object class="GtkPopover" id="operations_popover">
+ <property name="child">
+ <object class="GtkScrolledWindow">
+ <property name="hscrollbar_policy">never</property>
+ <property name="max_content_height">270</property>
+ <property name="propagate_natural_height">True</property>
+ <property name="child">
+ <object class="GtkListBox" id="operations_list">
+ <property name="margin_start">6</property>
+ <property name="margin_end">6</property>
+ <property name="margin_top">6</property>
+ <property name="margin_bottom">6</property>
+ <property name="selection-mode">none</property>
+ <property name="activate-on-single-click">False</property>
+ <style>
+ <class name="operations-list"/>
+ </style>
+ </object>
+ </property>
+ </object>
+ </property>
+ <signal name="notify::visible" handler="on_operations_popover_notify_visible" object="NautilusProgressIndicator" swapped="yes"/>
+ </object>
+ <template class="NautilusProgressIndicator" parent="AdwBin">
+ <property name="child">
+ <object class="GtkRevealer" id="operations_revealer">
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="transition_type">slide-right</property>
+ <property name="child">
+ <object class="GtkMenuButton" id="operations_button">
+ <property name="tooltip_text" translatable="yes">Show operations</property>
+ <property name="popover">operations_popover</property>
+ <child>
+ <object class="GtkDrawingArea" id="operations_icon">
+ <property name="width_request">16</property>
+ <property name="height_request">16</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ </object>
+ </child>
+ <style>
+ <class name="image-button"/>
+ </style>
+ </object>
+ </property>
+ </object>
+ </property>
+ </template>
+</interface>
diff --git a/src/resources/ui/nautilus-progress-info-widget.ui b/src/resources/ui/nautilus-progress-info-widget.ui
new file mode 100644
index 0000000..db18d99
--- /dev/null
+++ b/src/resources/ui/nautilus-progress-info-widget.ui
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <requires lib="gtk" version="4.0"/>
+ <object class="GtkImage" id="cancel_image">
+ <property name="icon_name">window-close-symbolic</property>
+ </object>
+ <template class="NautilusProgressInfoWidget" parent="GtkGrid">
+ <property name="margin_start">6</property>
+ <property name="margin_end">6</property>
+ <property name="margin_top">6</property>
+ <property name="margin_bottom">6</property>
+ <child>
+ <object class="GtkLabel" id="status">
+ <property name="width_request">300</property>
+ <property name="margin_bottom">6</property>
+ <property name="hexpand">True</property>
+ <property name="label">status</property>
+ <property name="ellipsize">middle</property>
+ <property name="max_width_chars">40</property>
+ <property name="xalign">0</property>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">0</property>
+ </layout>
+ </object>
+ </child>
+ <child>
+ <object class="GtkProgressBar" id="progress_bar">
+ <property name="valign">center</property>
+ <property name="margin_start">2</property>
+ <property name="margin_bottom">4</property>
+ <property name="hexpand">True</property>
+ <property name="pulse_step">0.050000000000000003</property>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">1</property>
+ </layout>
+ </object>
+ </child>
+ <child>
+ <object class="GtkButton" id="button">
+ <property name="valign">center</property>
+ <property name="margin_start">20</property>
+ <property name="icon-name">window-close-symbolic</property>
+ <style>
+ <class name="circular"/>
+ </style>
+ <layout>
+ <property name="column">1</property>
+ <property name="row">0</property>
+ <property name="row-span">3</property>
+ </layout>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel" id="details">
+ <property name="label">label</property>
+ <property name="wrap">True</property>
+ <property name="wrap_mode">word-char</property>
+ <property name="ellipsize">end</property>
+ <property name="xalign">0</property>
+ <style>
+ <class name="dim-label"/>
+ </style>
+ <attributes>
+ <attribute name="font-features" value="tnum"></attribute>
+ </attributes>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">2</property>
+ </layout>
+ </object>
+ </child>
+ </template>
+</interface>
diff --git a/src/resources/ui/nautilus-properties-window.ui b/src/resources/ui/nautilus-properties-window.ui
new file mode 100644
index 0000000..b72fae9
--- /dev/null
+++ b/src/resources/ui/nautilus-properties-window.ui
@@ -0,0 +1,913 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <requires lib="gtk" version="4.0"/>
+ <template class="NautilusPropertiesWindow" parent="AdwWindow">
+ <property name="title" translatable="yes">Properties</property>
+ <property name="focusable">False</property>
+ <property name="modal">True</property>
+ <property name="default-width">480</property>
+ <child>
+ <object class="GtkStack" id="page_stack">
+ <property name="hexpand">True</property>
+ <property name="transition-type">over-left-right</property>
+ <child>
+ <object class="GtkStackPage">
+ <property name="name">main</property>
+ <property name="child">
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkHeaderBar"/>
+ </child>
+ <child>
+ <object class="GtkScrolledWindow">
+ <property name="hscrollbar-policy">never</property>
+ <property name="vexpand">true</property>
+ <property name="min-content-height">480</property>
+ <property name="propagate-natural-height">true</property>
+ <property name="child">
+ <object class="AdwClamp">
+ <property name="margin-top">18</property>
+ <property name="margin-bottom">18</property>
+ <property name="margin-start">18</property>
+ <property name="margin-end">18</property>
+ <style>
+ <class name="background"/>
+ </style>
+ <property name="child">
+ <object class="GtkBox" id="basic_box">
+ <property name="orientation">vertical</property>
+ <property name="spacing">12</property>
+ <child>
+ <object class="GtkCenterBox">
+ <child type="center">
+ <object class="GtkStack" id="icon_stack">
+ <property name="halign">center</property>
+ <property name="valign">start</property>
+ <child>
+ <object class="GtkStackPage">
+ <property name="name">icon_image</property>
+ <property name="child">
+ <object class="GtkImage" id="icon_image">
+ <property name="icon-name">image-missing</property>
+ </object>
+ </property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkStackPage">
+ <property name="name">icon_button</property>
+ <property name="child">
+ <object class="GtkButton" id="icon_button">
+ <property name="focusable">True</property>
+ <property name="receives_default">True</property>
+ <child>
+ <object class="GtkImage" id="icon_button_image">
+ <property name="icon-name">image-missing</property>
+ </object>
+ </child>
+ </object>
+ </property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="end">
+ <object class="GtkButton" id="star_button">
+ <property name="visible">false</property>
+ <property name="valign">start</property>
+ <signal name="clicked" handler="star_clicked" swapped="yes"/>
+ <style>
+ <class name="circular"/>
+ <class name="flat"/>
+ </style>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkLabel" id="name_value_label">
+ <property name="selectable">True</property>
+ <property name="ellipsize">end</property>
+ <property name="max-width-chars">24</property>
+ <property name="wrap">true</property>
+ <property name="wrap-mode">PANGO_WRAP_WORD_CHAR</property>
+ <property name="lines">3</property>
+ <property name="justify">center</property>
+ <style>
+ <class name="title-3"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel" id="type_value_label">
+ <property name="ellipsize">end</property>
+ <property name="max-width-chars">24</property>
+ <property name="selectable">True</property>
+ <property name="visible">False</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel" id="type_file_system_label">
+ <property name="ellipsize">end</property>
+ <property name="label" translatable="yes">Unknown Filesystem</property>
+ <property name="max-width-chars">24</property>
+ <property name="selectable">True</property>
+ <property name="visible">False</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel" id="size_value_label">
+ <property name="visible">False</property>
+ <property name="selectable">True</property>
+ <property name="ellipsize">end</property>
+ <property name="max-width-chars">40</property>
+ <style>
+ <class name="caption"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="GtkBox" id="contents_box">
+ <property name="halign">center</property>
+ <property name="visible">False</property>
+ <property name="spacing">12</property>
+ <child>
+ <object class="GtkLabel" id="contents_value_label">
+ <property name="selectable">True</property>
+ <property name="ellipsize">end</property>
+ <property name="justify">center</property>
+ <property name="max-width-chars">40</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkSpinner" id="contents_spinner">
+ <property name="visible">False</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel" id="free_space_value_label">
+ <property name="visible">False</property>
+ <property name="selectable">True</property>
+ <property name="ellipsize">end</property>
+ <property name="max-width-chars">24</property>
+ <style>
+ <class name="caption"/>
+ </style>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkListBox" id="disk_list_box">
+ <property name="selection-mode">none</property>
+ <property name="visible">False</property>
+ <signal name="row-activated" handler="open_in_disks" object="NautilusPropertiesWindow" swapped="yes"/>
+ <child>
+ <object class="GtkListBoxRow">
+ <property name="activatable">False</property>
+ <property name="selectable">False</property>
+ <child>
+ <object class="GtkBox">
+ <property name="margin-bottom">12</property>
+ <property name="margin-end">12</property>
+ <property name="margin-start">12</property>
+ <property name="margin-top">18</property>
+ <property name="spacing">12</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkLevelBar" id="disk_space_level_bar">
+ <property name="hexpand">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="spacing">12</property>
+ <property name="halign">center</property>
+ <child>
+ <object class="GtkBox">
+ <property name="spacing">3</property>
+ <child>
+ <object class="GtkLabel" id="disk_space_capacity_value">
+ <style>
+ <class name="dim-label"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="label" translatable="yes">total</property>
+ <style>
+ <class name="dim-label"/>
+ </style>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="spacing">3</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="label">●</property>
+ <style>
+ <class name="disk-space-used"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel" id="disk_space_used_value">
+ <style>
+ <class name="caption-style"/>
+ <class name="dim-label"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="label" translatable="yes" comments="Refers to the capacity of the filesystem">used</property>
+ <style>
+ <class name="caption-style"/>
+ <class name="dim-label"/>
+ </style>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="spacing">3</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="label">●</property>
+ <style>
+ <class name="disk-space-free"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel" id="disk_space_free_value">
+ <style>
+ <class name="caption-style"/>
+ <class name="dim-label"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="label" translatable="yes" comments="Refers to the capacity of the filesystem">free</property>
+ <style>
+ <class name="caption-style"/>
+ <class name="dim-label"/>
+ </style>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkListBoxRow">
+ <property name="activatable">True</property>
+ <property name="selectable">False</property>
+ <child>
+ <object class="GtkBox">
+ <property name="margin-bottom">12</property>
+ <property name="margin-end">12</property>
+ <property name="margin-start">12</property>
+ <property name="margin-top">12</property>
+ <property name="halign">center</property>
+ <property name="spacing">12</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="label" translatable="yes" comments="Disks refers to GNOME Disks.">Open in Disks</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkImage">
+ <property name="icon-name">external-link-symbolic</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <style>
+ <class name="boxed-list"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="GtkListBox" id="locations_list_box">
+ <property name="visible">False</property>
+ <property name="selection-mode">none</property>
+ <child>
+ <object class="AdwActionRow" id="link_target_row">
+ <property name="visible">False</property>
+ <property name="activatable">False</property>
+ <property name="selectable">False</property>
+ <child type="prefix">
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <property name="spacing">3</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="label" translatable="yes">Link Target</property>
+ <property name="hexpand">True</property>
+ <property name="ellipsize">end</property>
+ <property name="halign">start</property>
+ <style>
+ <class name="caption"/>
+ <class name="dim-label"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel" id="link_target_value_label">
+ <property name="hexpand">True</property>
+ <property name="selectable">True</property>
+ <property name="ellipsize">start</property>
+ <property name="halign">start</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="suffix">
+ <object class="GtkButton">
+ <property name="icon-name">folder-open-symbolic</property>
+ <property name="valign">center</property>
+ <signal name="clicked" handler="open_link_target" swapped="yes"/>
+ <style>
+ <class name="flat"/>
+ </style>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="AdwActionRow" id="parent_folder_row">
+ <property name="visible">False</property>
+ <property name="activatable">False</property>
+ <property name="selectable">False</property>
+ <child type="prefix">
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <property name="spacing">3</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="label" translatable="yes">Parent Folder</property>
+ <property name="hexpand">True</property>
+ <property name="ellipsize">end</property>
+ <property name="halign">start</property>
+ <style>
+ <class name="caption"/>
+ <class name="dim-label"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel" id="parent_folder_value_label">
+ <property name="hexpand">True</property>
+ <property name="selectable">True</property>
+ <property name="ellipsize">start</property>
+ <property name="halign">start</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="suffix">
+ <object class="GtkButton">
+ <property name="icon-name">folder-open-symbolic</property>
+ <property name="valign">center</property>
+ <signal name="clicked" handler="open_parent_folder" swapped="yes"/>
+ <style>
+ <class name="flat"/>
+ </style>
+ </object>
+ </child>
+ </object>
+ </child>
+ <style>
+ <class name="boxed-list"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="GtkListBox" id="trashed_list_box">
+ <property name="selection-mode">none</property>
+ <property name="visible">False</property>
+ <child>
+ <object class="AdwActionRow">
+ <property name="activatable">False</property>
+ <property name="selectable">False</property>
+ <child type="prefix">
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <property name="spacing">3</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="label" translatable="yes">Original Folder</property>
+ <property name="hexpand">True</property>
+ <property name="ellipsize">end</property>
+ <property name="halign">start</property>
+ <style>
+ <class name="caption"/>
+ <class name="dim-label"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel" id="original_folder_value_label">
+ <property name="hexpand">True</property>
+ <property name="selectable">True</property>
+ <property name="ellipsize">start</property>
+ <property name="halign">start</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="AdwActionRow">
+ <property name="activatable">False</property>
+ <property name="selectable">False</property>
+ <child type="prefix">
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <property name="spacing">3</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="label" translatable="yes">Trashed on</property>
+ <property name="hexpand">True</property>
+ <property name="ellipsize">end</property>
+ <property name="halign">start</property>
+ <style>
+ <class name="caption"/>
+ <class name="dim-label"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel" id="trashed_on_value_label">
+ <property name="hexpand">True</property>
+ <property name="selectable">True</property>
+ <property name="ellipsize">end</property>
+ <property name="halign">start</property>
+ <style>
+ <class name="numeric"/>
+ </style>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <style>
+ <class name="boxed-list"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="GtkListBox" id="times_list_box">
+ <property name="selection-mode">none</property>
+ <property name="visible">False</property>
+ <child>
+ <object class="AdwActionRow" id="accessed_row">
+ <property name="visible">False</property>
+ <property name="activatable">False</property>
+ <property name="selectable">False</property>
+ <child type="prefix">
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <property name="spacing">3</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="label" translatable="yes">Accessed</property>
+ <property name="hexpand">True</property>
+ <property name="ellipsize">end</property>
+ <property name="halign">start</property>
+ <style>
+ <class name="caption"/>
+ <class name="dim-label"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel" id="accessed_value_label">
+ <property name="hexpand">True</property>
+ <property name="selectable">True</property>
+ <property name="ellipsize">end</property>
+ <property name="halign">start</property>
+ <style>
+ <class name="numeric"/>
+ </style>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="AdwActionRow" id="modified_row">
+ <property name="visible">False</property>
+ <property name="activatable">False</property>
+ <property name="selectable">False</property>
+ <child type="prefix">
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <property name="spacing">3</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="label" translatable="yes">Modified</property>
+ <property name="hexpand">True</property>
+ <property name="ellipsize">end</property>
+ <property name="halign">start</property>
+ <style>
+ <class name="caption"/>
+ <class name="dim-label"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel" id="modified_value_label">
+ <property name="hexpand">True</property>
+ <property name="selectable">True</property>
+ <property name="ellipsize">end</property>
+ <property name="halign">start</property>
+ <style>
+ <class name="numeric"/>
+ </style>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="AdwActionRow" id="created_row">
+ <property name="visible">False</property>
+ <property name="activatable">False</property>
+ <property name="selectable">False</property>
+ <child type="prefix">
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <property name="spacing">3</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="label" translatable="yes">Created</property>
+ <property name="hexpand">True</property>
+ <property name="ellipsize">end</property>
+ <property name="halign">start</property>
+ <style>
+ <class name="caption"/>
+ <class name="dim-label"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel" id="created_value_label">
+ <property name="hexpand">True</property>
+ <property name="selectable">True</property>
+ <property name="ellipsize">end</property>
+ <property name="halign">start</property>
+ <style>
+ <class name="numeric"/>
+ </style>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <style>
+ <class name="boxed-list"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="GtkListBox" id="permissions_list_box">
+ <property name="selection-mode">none</property>
+ <child>
+ <object class="AdwActionRow" id="permissions_navigation_row">
+ <property name="activatable">True</property>
+ <property name="selectable">False</property>
+ <property name="title" translatable="yes">_Permissions</property>
+ <property name="use-underline">True</property>
+ <signal name="activated" handler="navigate_permissions_page" object="NautilusPropertiesWindow" swapped="yes"/>
+ <child>
+ <object class="GtkLabel" id="permissions_value_label">
+ <property name="ellipsize">end</property>
+ <style>
+ <class name="dim-label"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="GtkImage">
+ <property name="icon-name">go-next-symbolic</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="AdwActionRow" id="execution_row">
+ <property name="visible">False</property>
+ <property name="activatable">True</property>
+ <property name="title" translatable="yes">_Executable as Program</property>
+ <property name="use-underline">True</property>
+ <child>
+ <object class="GtkSwitch" id="execution_switch">
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <style>
+ <class name="boxed-list"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="GtkListBox" id="extension_models_list_box">
+ <property name="selection-mode">none</property>
+ <style>
+ <class name="boxed-list"/>
+ </style>
+ </object>
+ </child>
+ </object>
+ </property>
+ </object>
+ </property>
+ </object>
+ </child>
+ </object>
+ </property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkStackPage">
+ <property name="name">permissions</property>
+ <property name="child">
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <style>
+ <class name="background"/>
+ </style>
+ <child>
+ <object class="GtkHeaderBar">
+ <property name="title-widget">
+ <object class="AdwWindowTitle">
+ <property name="title" translatable="yes">Set Custom Permissions</property>
+ </object>
+ </property>
+ <child type="start">
+ <object class="GtkButton">
+ <property name="icon-name">go-previous-symbolic</property>
+ <signal name="clicked" handler="navigate_main_page" object="NautilusPropertiesWindow" swapped="yes"/>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkScrolledWindow">
+ <property name="hscrollbar-policy">never</property>
+ <property name="vexpand">true</property>
+ <property name="child">
+ <object class="AdwClamp">
+ <property name="margin-top">18</property>
+ <property name="margin-bottom">18</property>
+ <property name="margin-start">18</property>
+ <property name="margin-end">18</property>
+ <property name="child">
+ <object class="GtkStack" id="permissions_stack">
+ <child>
+ <object class="GtkStackPage">
+ <property name="name">permission-indeterminable</property>
+ <property name="child">
+ <object class="AdwStatusPage" id="unknown_permissions_page">
+ <property name="icon-name">dialog-error-symbolic</property>
+ <property name="title" translatable="yes">Unknown Permissions</property>
+ <property name="description" translatable="yes">The permissions of the selected files could not be determined.</property>
+ </object>
+ </property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkStackPage">
+ <property name="name">permissions-box</property>
+ <property name="child">
+ <object class="GtkBox" id="permissions_box">
+ <property name="orientation">vertical</property>
+ <property name="spacing">12</property>
+ <child>
+ <object class="GtkLabel" id="not_the_owner_label">
+ <property name="visible">False</property>
+ <property name="label" translatable="yes">You are not the owner, so you cannot change these permissions.</property>
+ <property name="justify">center</property>
+ <property name="wrap">1</property>
+ <property name="max_width_chars">40</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkSeparator" id="bottom_prompt_seperator">
+ <property name="visible">False</property>
+ <property name="margin-top">12</property>
+ <property name="margin-bottom">12</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel" id="permission_indeterminable_label">
+ <property name="visible">False</property>
+ <property name="label" translatable="yes">The permissions of the selected file could not be determined.</property>
+ <property name="justify">center</property>
+ <property name="wrap">1</property>
+ <property name="max_width_chars">40</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkListBox" id="owner_list_box">
+ <property name="selection-mode">none</property>
+ <child>
+ <object class="AdwComboRow" id="owner_row">
+ <property name="sensitive">False</property>
+ <property name="activatable">False</property>
+ <property name="title" translatable="yes">_Owner</property>
+ <property name="use-underline">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="AdwComboRow" id="owner_access_row">
+ <property name="visible">False</property>
+ <property name="activatable">False</property>
+ <property name="title" translatable="yes">Access</property>
+ </object>
+ </child>
+ <child>
+ <object class="AdwComboRow" id="owner_folder_access_row">
+ <property name="visible">False</property>
+ <property name="activatable">False</property>
+ <property name="title" translatable="yes">Folder Access</property>
+ </object>
+ </child>
+ <child>
+ <object class="AdwComboRow" id="owner_file_access_row">
+ <property name="visible">False</property>
+ <property name="activatable">False</property>
+ <property name="title" translatable="yes">File Access</property>
+ </object>
+ </child>
+ <style>
+ <class name="boxed-list"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="GtkListBox" id="group_list_box">
+ <property name="selection-mode">none</property>
+ <child>
+ <object class="AdwComboRow" id="group_row">
+ <property name="sensitive">False</property>
+ <property name="activatable">False</property>
+ <property name="title" translatable="yes">_Group</property>
+ <property name="use-underline">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="AdwComboRow" id="group_access_row">
+ <property name="visible">False</property>
+ <property name="activatable">False</property>
+ <property name="title" translatable="yes">Access</property>
+ </object>
+ </child>
+ <child>
+ <object class="AdwComboRow" id="group_folder_access_row">
+ <property name="visible">False</property>
+ <property name="activatable">False</property>
+ <property name="title" translatable="yes">Folder Access</property>
+ </object>
+ </child>
+ <child>
+ <object class="AdwComboRow" id="group_file_access_row">
+ <property name="visible">False</property>
+ <property name="activatable">False</property>
+ <property name="title" translatable="yes">File Access</property>
+ </object>
+ </child>
+ <style>
+ <class name="boxed-list"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="GtkListBox" id="others_list_box">
+ <property name="selection-mode">none</property>
+ <child>
+ <object class="AdwComboRow" id="others_row">
+ <property name="activatable">False</property>
+ <property name="title" translatable="yes">Others</property>
+ </object>
+ </child>
+ <child>
+ <object class="AdwComboRow" id="others_access_row">
+ <property name="visible">False</property>
+ <property name="activatable">False</property>
+ <property name="title" translatable="yes">Access</property>
+ </object>
+ </child>
+ <child>
+ <object class="AdwComboRow" id="others_folder_access_row">
+ <property name="visible">False</property>
+ <property name="activatable">False</property>
+ <property name="title" translatable="yes">Folder Access</property>
+ </object>
+ </child>
+ <child>
+ <object class="AdwComboRow" id="others_file_access_row">
+ <property name="visible">False</property>
+ <property name="activatable">False</property>
+ <property name="title" translatable="yes">File Access</property>
+ </object>
+ </child>
+ <style>
+ <class name="boxed-list"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="GtkListBox" id="security_context_list_box">
+ <property name="visible">False</property>
+ <child>
+ <object class="AdwActionRow">
+ <property name="title" translatable="yes">Security Context</property>
+ <child>
+ <object class="GtkLabel" id="security_context_value_label">
+ <property name="selectable">True</property>
+ <property name="max-width-chars">24</property>
+ <property name="xalign">1</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <style>
+ <class name="boxed-list"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="GtkBox" id="change_permissions_button_box">
+ <property name="visible">False</property>
+ <property name="margin_top">12</property>
+ <child>
+ <object class="GtkButton" id="change_permissions_button">
+ <property name="label" translatable="yes">Change Permissions for Enclosed Files…</property>
+ <property name="focusable">True</property>
+ <property name="receives_default">True</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </property>
+ </object>
+ </child>
+ </object>
+ </property>
+ </object>
+ </property>
+ </object>
+ </child>
+ </object>
+ </property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </template>
+</interface>
diff --git a/src/resources/ui/nautilus-rename-file-popover.ui b/src/resources/ui/nautilus-rename-file-popover.ui
new file mode 100644
index 0000000..205a85c
--- /dev/null
+++ b/src/resources/ui/nautilus-rename-file-popover.ui
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <requires lib="gtk" version="4.0"/>
+ <object class="GtkPopover" id="rename_file_popover">
+ <property name="child">
+ <object class="GtkBox">
+ <property name="margin-start">18</property>
+ <property name="margin-end">18</property>
+ <property name="margin-top">18</property>
+ <property name="margin-bottom">18</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkLabel" id="title_label">
+ <property name="margin-bottom">12</property>
+ <style>
+ <class name="title-2"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="GtkEntry" id="name_entry">
+ <accessibility>
+ <property name="label" translatable="yes">New Filename</property>
+ </accessibility>
+ <property name="margin-bottom">12</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkRevealer" id="error_revealer">
+ <property name="child">
+ <object class="GtkLabel" id="error_label">
+ <property name="margin-bottom">12</property>
+ <property name="max-width-chars">0</property>
+ <property name="wrap">True</property>
+ <property name="xalign">0</property>
+ </object>
+ </property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkButton" id="rename_button">
+ <property name="label" translatable="yes">_Rename</property>
+ <property name="sensitive">False</property>
+ <property name="halign">end</property>
+ <property name="use-underline">True</property>
+ <style>
+ <class name="suggested-action"/>
+ </style>
+ </object>
+ </child>
+ </object>
+ </property>
+ </object>
+</interface>
diff --git a/src/resources/ui/nautilus-search-popover.ui b/src/resources/ui/nautilus-search-popover.ui
new file mode 100644
index 0000000..08ce86a
--- /dev/null
+++ b/src/resources/ui/nautilus-search-popover.ui
@@ -0,0 +1,336 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <requires lib="gtk" version="4.0"/>
+ <template class="NautilusSearchPopover" parent="GtkPopover">
+ <property name="child">
+ <object class="GtkGrid">
+ <property name="margin-top">20</property>
+ <property name="margin-bottom">20</property>
+ <property name="margin-start">20</property>
+ <property name="margin-end">20</property>
+ <property name="row_spacing">8</property>
+ <property name="column_spacing">18</property>
+ <child>
+ <object class="GtkLabel" id="when_dim_label">
+ <property name="label" translatable="yes">When</property>
+ <property name="xalign">0</property>
+ <style>
+ <class name="dim-label"/>
+ </style>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">0</property>
+ <property name="column-span">2</property>
+ </layout>
+ </object>
+ </child>
+ <child>
+ <object class="GtkStack" id="date_stack">
+ <property name="transition_type">crossfade</property>
+ <property name="transition_duration">250</property>
+ <child>
+ <object class="GtkStackPage">
+ <property name="name">date-button</property>
+ <property name="child">
+ <object class="GtkBox">
+ <child>
+ <object class="GtkButton" id="select_date_button">
+ <property name="tooltip_text" translatable="yes">Select a date</property>
+ <property name="hexpand">True</property>
+ <child>
+ <object class="GtkLabel" id="select_date_button_label">
+ <property name="label" translatable="yes">Select Dates…</property>
+ <property name="xalign">0</property>
+ </object>
+ </child>
+ <signal name="clicked" handler="select_date_button_clicked" object="NautilusSearchPopover" swapped="no"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkButton" id="clear_date_button">
+ <property name="visible">False</property>
+ <property name="tooltip_text" translatable="yes">Clear the currently selected date</property>
+ <property name="icon_name">edit-clear-symbolic</property>
+ <signal name="clicked" handler="clear_date_button_clicked" object="NautilusSearchPopover" swapped="no"/>
+ </object>
+ </child>
+ <style>
+ <class name="linked"/>
+ </style>
+ </object>
+ </property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkStackPage">
+ <property name="name">date-entry</property>
+ <property name="child">
+ <object class="GtkEntry" id="date_entry">
+ <property name="secondary_icon_name">x-office-calendar-symbolic</property>
+ <property name="secondary_icon_tooltip_text" translatable="yes">Show a calendar to select the date</property>
+ <signal name="icon-release" handler="toggle_calendar_icon_clicked" object="NautilusSearchPopover" swapped="no"/>
+ <signal name="activate" handler="date_entry_activate" object="NautilusSearchPopover" swapped="no"/>
+ </object>
+ </property>
+ </object>
+ </child>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">1</property>
+ <property name="column-span">2</property>
+ </layout>
+ </object>
+ </child>
+ <child>
+ <object class="GtkRevealer" id="around_revealer">
+ <property name="child">
+ <object class="GtkGrid">
+ <property name="row_spacing">8</property>
+ <property name="column_spacing">12</property>
+ <child>
+ <object class="GtkLabel" id="around_dim_label">
+ <property name="margin_top">10</property>
+ <property name="label" translatable="yes">Since…</property>
+ <property name="xalign">0</property>
+ <style>
+ <class name="dim-label"/>
+ </style>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">0</property>
+ <property name="column-span">2</property>
+ </layout>
+ </object>
+ </child>
+ <child>
+ <object class="GtkStack" id="around_stack">
+ <property name="vhomogeneous">False</property>
+ <property name="transition_type">crossfade</property>
+ <property name="transition_duration">250</property>
+ <child>
+ <object class="GtkStackPage">
+ <property name="name">date-list</property>
+ <property name="child">
+ <object class="GtkScrolledWindow">
+ <property name="height_request">200</property>
+ <property name="hexpand">True</property>
+ <property name="child">
+ <object class="GtkViewport">
+ <property name="child">
+ <object class="GtkListBox" id="dates_listbox">
+ <property name="selection_mode">none</property>
+ <signal name="row-activated" handler="dates_listbox_row_activated" object="NautilusSearchPopover" swapped="no"/>
+ </object>
+ </property>
+ </object>
+ </property>
+ </object>
+ </property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkStackPage">
+ <property name="name">date-calendar</property>
+ <property name="child">
+ <object class="GtkCalendar" id="calendar">
+ <property name="valign">start</property>
+ <property name="show_week_numbers">True</property>
+ <signal name="day-selected" handler="calendar_day_selected" object="NautilusSearchPopover" swapped="no" />
+ </object>
+ </property>
+ </object>
+ </child>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">1</property>
+ <property name="column-span">2</property>
+ </layout>
+ </object>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="last_modified_button">
+ <property name="label" translatable="yes">Last _modified</property>
+ <property name="use_underline">True</property>
+ <property name="active">True</property>
+ <signal name="toggled" handler="search_time_type_changed" object="NautilusSearchPopover" swapped="no"/>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">2</property>
+ </layout>
+ </object>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="last_used_button">
+ <property name="label" translatable="yes">Last _used</property>
+ <property name="use_underline">True</property>
+ <property name="group">last_modified_button</property>
+ <signal name="toggled" handler="search_time_type_changed" object="NautilusSearchPopover" swapped="no"/>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">3</property>
+ </layout>
+ </object>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="created_button">
+ <property name="label" translatable="yes">Created</property>
+ <property name="use-underline">True</property>
+ <property name="group">last_modified_button</property>
+ <signal name="toggled" handler="search_time_type_changed" object="NautilusSearchPopover" swapped="no"/>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">4</property>
+ </layout>
+ </object>
+ </child>
+ </object>
+ </property>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">2</property>
+ <property name="column-span">2</property>
+ </layout>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel" id="what_dim_label">
+ <property name="margin_top">10</property>
+ <property name="label" translatable="yes">What</property>
+ <property name="xalign">0</property>
+ <style>
+ <class name="dim-label"/>
+ </style>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">3</property>
+ <property name="column-span">2</property>
+ </layout>
+ </object>
+ </child>
+ <child>
+ <object class="GtkStack" id="type_stack">
+ <property name="vhomogeneous">False</property>
+ <property name="transition_type">crossfade</property>
+ <property name="transition_duration">250</property>
+ <child>
+ <object class="GtkStackPage">
+ <property name="name">type-button</property>
+ <property name="child">
+ <object class="GtkButton" id="select_type_button">
+ <property name="tooltip_text" translatable="yes">Which file types will be searched</property>
+ <signal name="clicked" handler="select_type_button_clicked" object="NautilusSearchPopover" swapped="no"/>
+ <child>
+ <object class="GtkBox">
+ <child>
+ <object class="GtkLabel" id="type_label">
+ <property name="hexpand">True</property>
+ <property name="label" translatable="yes">Anything</property>
+ <property name="width_chars">30</property>
+ <property name="xalign">0</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkImage">
+ <property name="icon_name">pan-down-symbolic</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkStackPage">
+ <property name="name">type-list</property>
+ <property name="child">
+ <object class="GtkScrolledWindow">
+ <property name="height_request">250</property>
+ <property name="child">
+ <object class="GtkViewport">
+ <property name="child">
+ <object class="GtkListBox" id="type_listbox">
+ <signal name="row-activated" handler="types_listbox_row_activated" object="NautilusSearchPopover" swapped="no"/>
+ </object>
+ </property>
+ </object>
+ </property>
+ </object>
+ </property>
+ </object>
+ </child>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">4</property>
+ <property name="column-span">2</property>
+ </layout>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel" id="search_dim_label">
+ <property name="margin_top">10</property>
+ <property name="label" translatable="yes">Search</property>
+ <property name="xalign">0</property>
+ <style>
+ <class name="dim-label"/>
+ </style>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">5</property>
+ <property name="column-span">2</property>
+ </layout>
+ </object>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="hexpand">True</property>
+ <child>
+ <object class="GtkToggleButton" id="full_text_search_button">
+ <property name="label" translatable="yes">Full Text</property>
+ <property name="tooltip_text" translatable="yes">Search on the file content and name</property>
+ <property name="hexpand">True</property>
+ <property name="active">True</property>
+ <signal name="toggled" handler="search_fts_mode_changed" object="NautilusSearchPopover" swapped="no" />
+ </object>
+ </child>
+ <child>
+ <object class="GtkToggleButton" id="filename_search_button">
+ <property name="label" translatable="yes">File Name</property>
+ <property name="tooltip_text" translatable="yes">Search only on the file name</property>
+ <property name="hexpand">True</property>
+ <property name="group">full_text_search_button</property>
+ <property name="active">True</property>
+ <signal name="toggled" handler="search_fts_mode_changed" object="NautilusSearchPopover" swapped="no"/>
+ </object>
+ </child>
+ <style>
+ <class name="linked"/>
+ </style>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">6</property>
+ <property name="column-span">2</property>
+ </layout>
+ </object>
+ </child>
+ </object>
+ </property>
+ </template>
+ <object class="GtkSizeGroup">
+ <property name="mode">vertical</property>
+ <widgets>
+ <widget name="full_text_search_button"/>
+ <widget name="filename_search_button"/>
+ <widget name="select_date_button"/>
+ <widget name="clear_date_button"/>
+ </widgets>
+ </object>
+ <object class="GtkSizeGroup">
+ <widgets>
+ <widget name="search_dim_label"/>
+ <widget name="when_dim_label"/>
+ <widget name="around_dim_label"/>
+ <widget name="what_dim_label"/>
+ </widgets>
+ </object>
+</interface>
diff --git a/src/resources/ui/nautilus-toolbar-view-menu.ui b/src/resources/ui/nautilus-toolbar-view-menu.ui
new file mode 100644
index 0000000..ffdd3ac
--- /dev/null
+++ b/src/resources/ui/nautilus-toolbar-view-menu.ui
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <requires lib="gtk" version="4.0"/>
+ <menu id="sort_section">
+ <item>
+ <attribute name="action">view.sort</attribute>
+ <attribute name="target" type="(sb)">('name',false)</attribute>
+ <attribute name="label" translatable="yes" context="Sort Criterion" comments="This is used to sort by name in the toolbar view menu">_A-Z</attribute>
+ <attribute name="hidden-when">action-disabled</attribute>
+ </item>
+ <item>
+ <attribute name="action">view.sort</attribute>
+ <attribute name="target" type="(sb)">('name',true)</attribute>
+ <attribute name="label" translatable="yes" context="Sort Criterion" comments="This is used to sort by name, in descending order in the toolbar view menu">_Z-A</attribute>
+ <attribute name="hidden-when">action-disabled</attribute>
+ </item>
+ <item>
+ <attribute name="action">view.sort</attribute>
+ <attribute name="target" type="(sb)">('date_modified',true)</attribute>
+ <attribute name="label" translatable="yes">Last _Modified</attribute>
+ <attribute name="hidden-when">action-disabled</attribute>
+ </item>
+ <item>
+ <attribute name="action">view.sort</attribute>
+ <attribute name="target" type="(sb)">('date_modified',false)</attribute>
+ <attribute name="label" translatable="yes">_First Modified</attribute>
+ <attribute name="hidden-when">action-disabled</attribute>
+ </item>
+ <item>
+ <attribute name="action">view.sort</attribute>
+ <attribute name="target" type="(sb)">('size',true)</attribute>
+ <attribute name="label" translatable="yes">_Size</attribute>
+ <attribute name="hidden-when">action-disabled</attribute>
+ </item>
+ <item>
+ <attribute name="action">view.sort</attribute>
+ <attribute name="target" type="(sb)">('type',false)</attribute>
+ <attribute name="label" translatable="yes">_Type</attribute>
+ <attribute name="hidden-when">action-disabled</attribute>
+ </item>
+ <item>
+ <attribute name="action">view.sort</attribute>
+ <attribute name="target" type="(sb)">('trashed_on',true)</attribute>
+ <attribute name="label" translatable="yes">Last _Trashed</attribute>
+ <attribute name="hidden-when">action-disabled</attribute>
+ <attribute name="nautilus-menu-item">last_trashed</attribute>
+ </item>
+ <item>
+ <attribute name="action">view.sort</attribute>
+ <attribute name="target" type="(sb)">('recency',true)</attribute>
+ <attribute name="label" translatable="yes">Recency</attribute>
+ <attribute name="hidden-when">action-disabled</attribute>
+ <attribute name="nautilus-menu-item">recency</attribute>
+ </item>
+ <item>
+ <attribute name="action">view.sort</attribute>
+ <attribute name="target" type="(sb)">('search_relevance',true)</attribute>
+ <attribute name="label" translatable="yes">Relevance</attribute>
+ <attribute name="hidden-when">action-disabled</attribute>
+ <attribute name="nautilus-menu-item">relevance</attribute>
+ </item>
+ </menu>
+</interface>
diff --git a/src/resources/ui/nautilus-toolbar.ui b/src/resources/ui/nautilus-toolbar.ui
new file mode 100644
index 0000000..cdccb89
--- /dev/null
+++ b/src/resources/ui/nautilus-toolbar.ui
@@ -0,0 +1,227 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <requires lib="gtk" version="4.0"/>
+ <menu id="app_menu">
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">New Window</attribute>
+ <attribute name="action">app.clone-window</attribute>
+ <attribute name="verb-icon">window-new-symbolic</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">New Tab</attribute>
+ <attribute name="action">win.new-tab</attribute>
+ <attribute name="verb-icon">tab-new-symbolic</attribute>
+ </item>
+ </section>
+ <section>
+ <attribute name="label" translatable="yes">Icon Size</attribute>
+ <attribute name="display-hint">inline-buttons</attribute>
+ <item>
+ <attribute name="custom">zoom-out</attribute>
+ </item>
+ <item>
+ <attribute name="custom">zoom-in</attribute>
+ </item>
+ </section>
+ <section id="undo_redo_section">
+ <!-- Note: This section is often recreated by undo_manager_changed() to
+ change the labels of the actions. If you change anything here,
+ remember to change in the code as well. -->
+ <item>
+ <attribute name="label" translatable="yes">_Undo</attribute>
+ <attribute name="action">win.undo</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Redo</attribute>
+ <attribute name="action">win.undo</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Show _Hidden Files</attribute>
+ <attribute name="action">view.show-hidden-files</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Preferences</attribute>
+ <attribute name="action">app.preferences</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Keyboard Shortcuts</attribute>
+ <attribute name="action">app.show-help-overlay</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Help</attribute>
+ <attribute name="action">app.help</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_About Files</attribute>
+ <attribute name="action">app.about</attribute>
+ </item>
+ </section>
+ </menu>
+ <template class="NautilusToolbar" parent="AdwBin">
+ <child>
+ <object class="AdwHeaderBar">
+ <child type="title">
+ <object class="GtkBox" id="header_toolbar">
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkStack" id="toolbar_switcher">
+ <property name="valign">center</property>
+ <property name="transition_type">crossfade</property>
+ <child>
+ <object class="GtkStackPage">
+ <property name="name">pathbar</property>
+ <property name="child">
+ <object class="GtkBox" id="path_bar_container">
+ <property name="valign">center</property>
+ </object>
+ </property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkStackPage">
+ <property name="name">location</property>
+ <property name="child">
+ <object class="GtkBox" id="location_entry_container">
+ <style>
+ <class name="linked"/>
+ </style>
+ </object>
+ </property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkStackPage">
+ <property name="name">search</property>
+ <property name="child">
+ <object class="GtkBox" id="search_container">
+ <property name="orientation">vertical</property>
+ </object>
+ </property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkToggleButton" id="search_button">
+ <property name="tooltip_text" translatable="yes">Search</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="action_name">slot.search-visible</property>
+ <property name="icon_name">edit-find-symbolic</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="start">
+ <object class="GtkBox">
+ <child>
+ <object class="GtkRevealer">
+ <property name="reveal-child" bind-source="NautilusToolbar" bind-property="show-sidebar-button" bind-flags="bidirectional|sync-create"/>
+ <property name="transition-type">slide-right</property>
+ <property name="child">
+ <object class="GtkToggleButton" id="show_sidebar_button">
+ <property name="active" bind-source="NautilusToolbar" bind-property="sidebar-button-active" bind-flags="bidirectional|sync-create"/>
+ <property name="tooltip-text" translatable="yes">Show sidebar</property>
+ <property name="icon-name">sidebar-show-symbolic</property>
+ </object>
+ </property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkRevealer">
+ <property name="reveal-child" bind-source="NautilusToolbar" bind-property="show-toolbar-children" bind-flags="sync-create"/>
+ <property name="transition-type">slide-right</property>
+ <property name="child">
+ <object class="GtkBox">
+ <property name="spacing">6</property>
+ <child>
+ <object class="NautilusHistoryControls">
+ <property name="window-slot" bind-source="NautilusToolbar" bind-property="window-slot" bind-flags="sync-create"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkSeparator">
+ <style>
+ <class name="spacer"/>
+ </style>
+ </object>
+ </child>
+ </object>
+ </property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="end">
+ <object class="GtkBox">
+ <child>
+ <object class="GtkRevealer">
+ <property name="reveal-child" bind-source="NautilusToolbar" bind-property="show-toolbar-children" bind-flags="sync-create"/>
+ <property name="transition-type">slide-left</property>
+ <property name="child">
+ <object class="GtkBox">
+ <property name="spacing">6</property>
+ <property name="margin-end">6</property>
+ <child>
+ <object class="GtkSeparator">
+ <style>
+ <class name="spacer"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="NautilusProgressIndicator"/>
+ </child>
+ <child>
+ <object class="NautilusViewControls">
+ <property name="window-slot" bind-source="NautilusToolbar" bind-property="window-slot" bind-flags="sync-create"/>
+ </object>
+ </child>
+ </object>
+ </property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuButton" id="app_button">
+ <property name="tooltip-text" translatable="yes">Main Menu</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon_name">open-menu-symbolic</property>
+ <property name="popover">
+ <object class="GtkPopoverMenu">
+ <property name="menu-model">app_menu</property>
+ <child type="zoom-out">
+ <object class="GtkButton">
+ <property name="icon-name">zoom-out-symbolic</property>
+ <property name="action-name">view.zoom-out</property>
+ <property name="tooltip-text" translatable="yes">Zoom out</property>
+ <style>
+ <class name="flat"/>
+ </style>
+ </object>
+ </child>
+ <child type="zoom-in">
+ <object class="GtkButton">
+ <property name="icon-name">zoom-in-symbolic</property>
+ <property name="action-name">view.zoom-in</property>
+ <property name="tooltip-text" translatable="yes">Zoom in</property>
+ <style>
+ <class name="flat"/>
+ </style>
+ </object>
+ </child>
+ </object>
+ </property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </template>
+</interface>
diff --git a/src/resources/ui/nautilus-view-controls.ui b/src/resources/ui/nautilus-view-controls.ui
new file mode 100644
index 0000000..2231d66
--- /dev/null
+++ b/src/resources/ui/nautilus-view-controls.ui
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <menu id="view_menu">
+ <section>
+ <attribute name="label" translatable="yes" context="menu item" comments="Translators: a menu item in a group of sorting options in a toolbar menu, with criterions such as &quot;A-Z&quot; or &quot;Last Modified&quot;.">Sort</attribute>
+ <!--
+ Sort section.
+
+ The toolbar code assumes this is the second item of this menu model.
+ Its contents is provided by the view.
+ -->
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Visible Columns…</attribute>
+ <attribute name="action">view.visible-columns</attribute>
+ <attribute name="hidden-when">action-missing</attribute>
+ </item>
+ </section>
+ </menu>
+ <template class="NautilusViewControls" parent="AdwBin">
+ <property name="child">
+ <object class="AdwSplitButton" id="view_split_button">
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="dropdown-tooltip" translatable="yes" comments="Translators: This is a noun, meaning the options pertaining to the view.">View Options</property>
+ <property name="action_name">slot.files-view-mode-toggle</property>
+ <property name="menu-model">view_menu</property>
+ <binding name="icon-name">
+ <lookup name="icon-name">
+ <lookup name="window-slot">NautilusViewControls</lookup>
+ </lookup>
+ </binding>
+ <binding name="tooltip-text">
+ <lookup name="tooltip">
+ <lookup name="window-slot">NautilusViewControls</lookup>
+ </lookup>
+ </binding>
+ </object>
+ </property>
+ </template>
+</interface>
diff --git a/src/resources/ui/nautilus-window.ui b/src/resources/ui/nautilus-window.ui
new file mode 100644
index 0000000..d8db7f7
--- /dev/null
+++ b/src/resources/ui/nautilus-window.ui
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <requires lib="gtk" version="4.0"/>
+ <menu id="tab_menu_model">
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_New Tab</attribute>
+ <attribute name="action">win.new-tab</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Move Tab _Left</attribute>
+ <attribute name="action">win.tab-move-left</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Move Tab _Right</attribute>
+ <attribute name="action">win.tab-move-right</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Close Tab</attribute>
+ <attribute name="action">win.close-current-view</attribute>
+ </item>
+ </section>
+ </menu>
+ <template class="NautilusWindow" parent="AdwApplicationWindow">
+ <property name="show-menubar">False</property>
+ <property name="title" translatable="yes">_Files</property>
+ <child>
+ <object class="AdwToastOverlay" id="toast_overlay">
+ <property name="child">
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="NautilusToolbar" id="toolbar">
+ <property name="show-sidebar-button" bind-source="content_flap" bind-property="folded" bind-flags="sync-create"/>
+ <property name="sidebar-button-active" bind-source="content_flap" bind-property="reveal-flap" bind-flags="bidirectional|sync-create"/>
+ <property name="show-toolbar-children" bind-source="content_flap" bind-property="folded" bind-flags="sync-create|invert-boolean"/>
+ <property name="window-slot" bind-source="NautilusWindow" bind-property="active-slot" bind-flags="sync-create"/>
+ </object>
+ </child>
+ <child>
+ <object class="AdwFlap" id="content_flap">
+ <property name="swipe-to-close" bind-source="content_flap" bind-property="folded" bind-flags="sync-create"/>
+ <child type="flap">
+ <object class="NautilusGtkPlacesSidebar" id="places_sidebar">
+ <property name="vexpand">True</property>
+ <property name="show-other-locations">True</property>
+ <property name="show-starred-location">True</property>
+ <property name="width-request">240</property>
+ <style>
+ <class name="background"/>
+ </style>
+ </object>
+ </child>
+ <child type="separator">
+ <object class="GtkSeparator"/>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <property name="width-request">360</property>
+ <child>
+ <object class="AdwTabBar">
+ <property name="view">tab_view</property>
+ </object>
+ </child>
+ <child>
+ <object class="AdwTabView" id="tab_view">
+ <property name="menu-model">tab_menu_model</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkActionBar">
+ <property name="revealed" bind-source="content_flap" bind-property="folded" bind-flags="sync-create"/>
+ <child type="start">
+ <object class="NautilusHistoryControls">
+ <property name="window-slot" bind-source="NautilusWindow" bind-property="active-slot" bind-flags="sync-create"/>
+ </object>
+ </child>
+ <child type="end">
+ <object class="GtkBox">
+ <property name="spacing">6</property>
+ <child>
+ <object class="NautilusProgressIndicator"/>
+ </child>
+ <child>
+ <object class="NautilusViewControls">
+ <property name="window-slot" bind-source="NautilusWindow" bind-property="active-slot" bind-flags="sync-create"/>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </property>
+ </object>
+ </child>
+ </template>
+</interface>