| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
We were subclassing from GtkBox and then, list-view created a
list-view-column-editor which subclassed from AdwWindow to add
the column-chooser. It's a lot of extra code / complexity for something
that is only used in list-view. This also allows us to directly
use column-chooser within list-view.
Also drop the list description label, in preparation for the switch to GtkListBox.
|
|
|
|
|
|
|
|
|
|
| |
Using the same icon as for closing windows and dialogs can lead to user
confusion and thus accidental cancellation of operations.
This adds and uses a new icon, inspired by Builder's use of it to stop
ongoing operations.
Fixes #985
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Doing this allows us to automatically load stylesheets located in the
resource base path, so move contents of both Adwaita.css and
nautilus.css to style.css in the root of the resource directory, which
will be always automatically loaded.
Additionally, create a style-hc.css which will be used when the system
high contrast preference is enabled, and adjust it to fix issues with
NautilusPathBar.
Fixes https://gitlab.gnome.org/GNOME/nautilus/-/issues/2166
|
|
|
|
| |
Same rationale as previous 2 commits.
|
|
|
|
|
| |
Same rationale as last commit, except this control is independent from
the window slot, so it doesn't require any property binding.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In order to adapt to narrow window sizes, we need to be be able to
show the same controls in different places, but we don't want to
duplicate the code or the UI definitions.
Thus, we should encapsulate the code and logic we need into distinct
reusable components.
Start with the back and forward buttons, along with their context menu.
They will update their state properly through bindings without needing
to call any functions ourselves.
|
|
|
|
|
|
|
|
| |
Move path to bottom, because it's a caption for the filename, not a title.
Move FTS snipped into a popover, to avoid changing the row layout.
Closes: https://gitlab.gnome.org/GNOME/nautilus/-/issues/2354
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When choosing to open a file in another application, the user may want
to set it as the new default.
Currently we require going to the Properties, which is not intuitive,
and one may think it's going to affect only one file.
Introduce a GtkAppChooserDialog replacement which provides the means to
set as default and reset as part of "Open with Another Application...".
Compared to the Properties "Open with" tab, the "Add" action is not
present, because opening the file with an app adds it implicitly. The
"Forget" action is not included either because it lacks its "Add"
counterpart and because such fine grained control is not essential. We
have Reset anyway.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For filesystems replace the previous pie chart widget with a GtkLevelBar
and show it on the top. Reserved space is now included under 'used'
without a separate representation. Total, used and free disk space are
indicated as a legend under the bar, with used and free being
color-mapped through a respectively colored dot.
The 'Open in Disks' button is replaced with an inline row action,
indicated by a newly added 'external-link-symbolic' icon.
Filesystems no longer display 'Folder' as a type, but instead the actual
filesystem type.
Part of #1326
|
|
|
|
|
|
|
| |
We have multiple empty state .ui files, which make little sense now
that they are so simple, thanks to AdwStatusPage.
So, instead, add a single UI file for the whole view.
|
|
|
|
|
|
|
|
| |
GdTaggedEntry hasn't been ported to GTK 4, so we've temporarily
regressed.
While a new tagged entry is not available in libadwaita, let's
restore the functionality with a custom implementation.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
GtkTreeView, while still available in GTK 4, is more limited in some
more specialized situations which we have been relying on, such as
drag-and-drop and high DPI icons.
It's also been our long desire to adopt GListModel-based list widgets
in order to unlock features and bugfixes which would have been
basically impossible to do with GtkTreeView.
We are thus dropping GtkTreeView for good and adopting GtkColumnView.
The new implementation is radically different; almost no code remains
from the old implementation. However, the new implementation has full
feature parity with the old one with two exceptions:
1. Expand subfolders as a tree: WIP in another branch.
2. Performance for large number of items: WIP branch in GTK.
Same as the old implementation, it still lacks drag-and-drop support,
which is yet to be reimplemented for GTK4.
The new implementation also implements new features which were but
a dream in GtkTreeView:
- Rubberband-selection.[1]
- Empty space inbetween and around the list of items to open context
menu, start rubberband, drop items, clear selection...[2,3,4]
- Rows highligh on hover, distinguishing them from background space
and serving as a reading aid instead without separator lines.[5]
- File names in search results and recents are no longer squashed by
the "Original location" column containing long paths. Instead, the
original location is runs parallel to the filename.[6]
- With the location column gone, the size column can be displayed
again in these two special locations.
- Full-text-search snippets no longer compete for horizontal space
with filenames, but are displayed as accent-colored subtitles.[7]
- Filenames are ellipsized at the middle, not to hide important
details at their end.[7]
- Sort order can be changed from the view menu, as in grid view.[8]
- Per-folder sorting is shared with the grid view now, fixing an old
inconsistency.[9]
- A starring animation ☆★
Closes: https://gitlab.gnome.org/GNOME/nautilus/-/issues/320
[1] Fixes https://gitlab.gnome.org/GNOME/nautilus/-/issues/200
[2] Closes https://gitlab.gnome.org/GNOME/nautilus/-/issues/1929
[3] Fixes https://gitlab.gnome.org/GNOME/nautilus/-/issues/1476
[4] Fixes https://gitlab.gnome.org/GNOME/nautilus/-/issues/1764
[5] Fixes https://bugzilla.gnome.org/show_bug.cgi?id=744405
[6] Fixes https://gitlab.gnome.org/GNOME/nautilus/-/issues/1411
[7] Fixes https://bugzilla.gnome.org/show_bug.cgi?id=619760
[8] Fixes https://bugzilla.gnome.org/show_bug.cgi?id=142495
[9] Fixes https://bugzilla.gnome.org/show_bug.cgi?id=45659
|
|
|
|
|
|
|
|
|
| |
Following the view rename, also rename the item widget.
Upcoming NautilusViewClass subclasses are going to follow the same
Nautilus*Class naming pattern.
Also add missing copyright notice with SPDX licence id.
|
|
|
|
|
|
|
|
|
|
|
| |
Currently, images with transparent backgrounds have their thumbnails
displayed with a white background image, which causes a visibility
issue for white images with no background in light mode.
Hence, a checkerboard background is added to the thumbnails of these
images, making them clearly visible.
Close https://gitlab.gnome.org/GNOME/nautilus/-/issues/2211
|
|
|
|
|
| |
Having the menu models in a separate file is keeping us from setting
them as properties directly in the template UI definition.
|
|
|
|
|
|
|
|
|
|
|
| |
GtkPlacesSidebar is a public GTK 3 widget, but private in GTK 4, so we
need to have the sidebar in our own codebase if we are to keep using it.
Extend the script already in use for the places view and use it to copy
the places sidebar and its dependencies and patch it as necessary.
Also, construct it from code, because this in-tree places sidebar cannot
be used in a GtkBuilder UI template.
|
|
|
|
|
| |
Declarative UI allows us to drop a lot of code, including GtkContainer
methods, which helps with preparing for the GTK 4 port.
|
|
|
|
|
|
|
|
|
|
| |
Shadows are present in design mockups, frame is not.
In GTK 4 we are going to be able to draw shadows in the new views using
CSS, which is going to be much better than transforming pixbufs.
Furthermore, this removes another use of libgd, which we want to stop
depending on as part of the GTK 3-to-4 migration.
|
|
|
|
|
|
|
|
| |
The toolbar's UI definition is split among two files because we used to
have a NautilusContainerMaxWidth between them, which is not GtkBuildable.
With out custom container gone from the toolbar, we can simplify this,
while also reduce the usage of GtkContainer API, which is gone in GTK4.
|
|
|
|
| |
This removes usage of the GtkContainer API, preparing for GTK4.
|
|
|
|
|
|
|
|
| |
Now the Ctrl+S dialog is being built using the
GtkBuilder API, Now it's styling and can be
handled in the XML UI definition. The UI definiton
needs to be handled manually as Glade doesn't handle
the implementation of the GtkDialog used here.
|
|
|
|
|
|
|
|
|
| |
Modify the dialog to be built declarartively to enhance maintainability and aid
in porting to GTK 4.
This introduces a minor UI change with the 'Replace'/'Rename' and 'Skip'
buttons swapping places, with the suggested action now the endmost button as
is standard practice.
|
|
|
|
|
|
|
|
|
| |
Keeping with the direction of preferring declarative UI definitions.
Also, it will help with porting to GTK4.
While we are at it, adopt HdyWindow for rounded corners and make
the label not bold and allow it to wrap (to avoid making the dialog
too wide with some translations).
|
|
|
|
|
|
| |
Keeping with the direction of preferring declarative UI definitions.
Also, it will help with porting to GTK4.
|
|
|
|
|
|
|
|
|
|
|
|
| |
"Change Permissions of Enclosed Files" dialog is now built using XML
UI definition. This is present as a seperate .ui file apart from
nautilus-properties-window.ui because a .ui file file containing a
widget declared as a template cannot have other external widgets to
be built independently from the template.
This .ui file is not produced or editable usingg Glade as it doesn't
recognize "action" type children as found in GtkDialog. This issue is
already reported in https://gitlab.gnome.org/GNOME/glade/-/issues/392
|
|
|
|
|
|
|
|
|
| |
For now, only the outermost containers, GtkWindow down to GtkNotebook,
have been defined in the GtkBuilder UI file.
The Basic, Permissions, and Open With tabs, along with their content,
are still built and inserted programaically. They are going to be
ported accross the next series commits.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
separate file
The UI file nautilus-batch-rename-dialog.ui uses GMenu.
Glade currently does not support <menu> sections but
UI files with <menu> sections need to be edited.
Seperate Menu files into a different file
nautilus-batch-rename-dialog-menu.ui.
Closes https://gitlab.gnome.org/GNOME/nautilus/issues/566
|
|
|
|
| |
Remove the app menu, add the Sidebar toggle action to the main menu and rename "About" to "About Files".
|
|
|
|
|
|
|
| |
It was introduced in 3.14, most probably everyone is in a newer version
already...
Time to clean up!
|
|
|
|
|
|
| |
So it doesn't get as wide on bigger screens.
Related: https://gitlab.gnome.org/GNOME/nautilus/issues/548
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Generally actions in Nautilus were accessed through context menus or
keyboard shorcuts. However, those are not very discoverable and are
not touch friendly.
Even more, in list view it was not possible to access background actions
since there is always a selection, making Nautilus UX quite poor in that
case.
Also some actions were placed in the app menu, which didn't was not as
clear for some people given that we have most of actions in the toolbar.
In all, we came with a new design that solves the main goals of
discoverability, touch friendly and accessibility for background actions
and app actions, and now are placed in the toolbar together with an
overhaul of the looks of Nautilus path bar and search.
There is still work to do, specifically finding a design that works for
the selection actions and also to replace the current information
floating bar. The later might be just a different goal. However this
goes in the right direction.
See https://gitlab.gnome.org/GNOME/nautilus/issues/322
|
|
|
|
| |
Leftovers from 74dd9c9f72002d482c898a704bb5b95655e35e08.
|
|
|
|
|
|
|
| |
Add option to make files Favorite, by either toggling a star in the
list view, or from the context menu.
https://bugzilla.gnome.org/show_bug.cgi?id=786039
|
|
|
|
|
|
|
|
| |
The fallback file icon is outdated now and the fact that it is stored in
binary format in a source file makes it harder to update it. This commit
uses the upstream PNG and changes the code to load it from resources.
https://bugzilla.gnome.org/show_bug.cgi?id=786042
|
|
|
|
|
|
| |
Implement better empty state for Trash as per new design.
https://bugzilla.gnome.org/show_bug.cgi?id=763147
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Renaming multiple files at once has been a missing feature in Nautilus
for a long time. This patch implements that feature in the following way:
This operation is launched in the same way as the rename one, when the
selection has more than one file.
When the batch renaming is launched, a dialog is shown, offering two
modes.
In the first mode, the user can use metadata (if available), numbering and
original file name tags to create the new names. Between the tags, there
also can be written normal text, which will be added in the new names. If
numbering is used, the order of the files can be modified by using several
criteria.
In the second mode, the user can replace an existing part of the name.
https://bugzilla.gnome.org/show_bug.cgi?id=768311
|
|
|
|
|
|
|
|
| |
Add an context menu action for compression and a dialog for selecting the file
name and compression format. Add a controller class for managing the compression
dialog.
https://bugzilla.gnome.org/show_bug.cgi?id=770199
|
|
|
|
|
|
|
|
| |
The popover ui definition was in the toolbars definition file which was
getting pretty big. Have moved the popover definition into its own file,
to separate things out a bit.
https://bugzilla.gnome.org/show_bug.cgi?id=764632
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Usability tests conducted by Gina Dobrescu have highlighted a number of
issues with the toolbar menus. Users can't switch between list and grid
mode with a single click, and they have struggled to find the switch
between list and grid mode.
Allan Day has come up with a design to address these problems. The view
and action menus have been combined into a single menu, and we have
added a new button to the toolbar which toggles the view mode between
list and grid mode.
https://bugzilla.gnome.org/show_bug.cgi?id=764632
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We have been manually copying the code inside nautilus since we
introduced the places view.
It has been a pain to maintain, mostly because we needed to remove the
bits that only work inside gtk+ and instead either remove them or make
a substitution. But that was doable.
However, it reached a new level when we realized that we use the file
chooser inside nautilus, for the "move to" and "copy to" actions, which
create makes symbols clash. So we needed to rename all the symbols in
those files.
Instead of making it manually, create a shell script that fetches gtk+
repository and make the appropriate substitutions, deletions and what
not.
https://bugzilla.gnome.org/show_bug.cgi?id=760307
|
|
|
|
|
| |
With designers guidance, rework the preferences window to a better state.
Also, do few improvement on the way, like converting it to a GtkWindow.
|
|
|
|
| |
We use it now directly in the search bar.
|
|
|
|
|
|
|
|
|
|
| |
The newest mockups for Nautilus search shows a popover
that contains all the necessary options to edit search
filters.
This commit implements it. The following commits will
adapt NautilusQueryEditor to match the latest mockups
and display this popover.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There is some css that nautilus wants to always use regarding
of the theme that is used.
An example of this is the recently css added for making the desktop
backgrund transparent.
Additionally, the "round button" css is also always wanted.
For that, create a new css file that will have the css we want
to always load and load it in the application initialization.
https://bugzilla.gnome.org/show_bug.cgi?id=760790
|
|
|
|
|
|
| |
I always spend some time searching for the files that are the
preferences dialog. Just rename it as it makes more sense to
name it preferences.
|
|
|
|
|
| |
Forgot to remove it from gresource. It built succesfully locally because
it was already generated...
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since bgo#757826 introduced g_application_set_resource_base_path,
we don't need to use a GtkBuilder to load the appmenu.
GtkApplication automatically loads menus from the GtkBuilder resource
located at "gtk/menus.ui", relative to the application's resource
base path (see g_application_set_resource_base_path ()). The menu
with the ID "app-menu" is taken as the application's app menu.
https://bugzilla.gnome.org/show_bug.cgi?id=757946
|
|
|
|
|
|
|
| |
Use GTK+'s new shortcut window to document our shortcuts.
See: https://wiki.gnome.org/Initiatives/GnomeGoals/ShortcutWindows
https://bugzilla.gnome.org/show_bug.cgi?id=757826
|
| |
|
|
https://bugzilla.gnome.org/show_bug.cgi?id=757978
|