Matthias Clasen [Fri, 28 Oct 2022 16:20:18 +0000 (16:20 +0000)]
Merge branch 'matthiasc/for-main' into 'main'
gtk4-demo: Avoid a critical from a11y code
See merge request GNOME/gtk!5177
Matthias Clasen [Fri, 28 Oct 2022 15:59:35 +0000 (11:59 -0400)]
gtk4-demo: Avoid a critical from a11y code
Even though we want to be accessible,
we must not divide by zero.
Emmanuele Bassi [Thu, 27 Oct 2022 17:06:22 +0000 (17:06 +0000)]
Merge branch 'bilelmoussaoui/file-chooser-gi' into 'main'
g-i: Add missing since annotation
See merge request GNOME/gtk!5175
Bilal Elmoussaoui [Thu, 27 Oct 2022 15:38:14 +0000 (15:38 +0000)]
g-i: Add missing since annotation
Matthias Clasen [Wed, 26 Oct 2022 18:22:43 +0000 (18:22 +0000)]
Merge branch 'revert-
9c919ffa462dd4511da0bfd19d36d2e15c51651b-main' into 'main'
Revert "treepopover: Do not propagate natural width of content"
See merge request GNOME/gtk!5171
Mat [Wed, 26 Oct 2022 10:58:10 +0000 (13:58 +0300)]
Revert "treepopover: Do not propagate natural width of content"
This reverts commit
9c919ffa462dd4511da0bfd19d36d2e15c51651b.
Matthias Clasen [Tue, 25 Oct 2022 00:39:57 +0000 (00:39 +0000)]
Merge branch 'ebassi/glade-docs' into 'main'
docs: Remove mentions of Glade
See merge request GNOME/gtk!5168
Emmanuele Bassi [Mon, 24 Oct 2022 19:04:03 +0000 (20:04 +0100)]
docs: Remove mentions of Glade
Glade does not support GTK4, so we should not link to it when discussing
developing GTK4 applications.
Мирослав Николић [Sun, 23 Oct 2022 09:21:30 +0000 (09:21 +0000)]
Update Serbian translation
(cherry picked from commit
b760f57ae1323669348b6bc84c384d24f4b381ff)
Matthias Clasen [Sat, 22 Oct 2022 19:23:45 +0000 (19:23 +0000)]
Merge branch 'deprecation-cleanups' into 'main'
gtk-demo: Replace combo boxes in font features
See merge request GNOME/gtk!5164
Matthias Clasen [Sat, 22 Oct 2022 15:38:46 +0000 (11:38 -0400)]
gtk-demo: Use global style in font_features
Matthias Clasen [Sat, 22 Oct 2022 14:11:28 +0000 (10:11 -0400)]
gtk-demo: Replace combo boxes in font features
This is a slightly more complicated combo box,
so we need an auxiliary object.
Matthias Clasen [Sat, 22 Oct 2022 02:32:23 +0000 (02:32 +0000)]
Merge branch 'deprecation-cleanups' into 'main'
gtk-demo: Remove deprecations from dnd
See merge request GNOME/gtk!5160
Matthias Clasen [Sat, 22 Oct 2022 02:03:17 +0000 (22:03 -0400)]
bloatpad: Stop using a combobox
Replace GtkComboBoxText with GtkDropDown+GtkStringList.
Matthias Clasen [Sat, 22 Oct 2022 01:54:38 +0000 (21:54 -0400)]
fontchooser: Stop using deprecated harfbuzz api
The replacement is very straightforward.
Matthias Clasen [Sat, 22 Oct 2022 01:24:48 +0000 (21:24 -0400)]
gtk-demo: Replace combobox in font rendering
Out with the combobox, in with the dropdown.
Matthias Clasen [Sat, 22 Oct 2022 01:11:46 +0000 (21:11 -0400)]
placesview: Drop deprecation guards
We got rid of all deprecated api here.
Matthias Clasen [Sat, 22 Oct 2022 01:10:39 +0000 (21:10 -0400)]
filechooserwidget: Drop deprecation guards
We got rid of all deprecated api here.
Matthias Clasen [Sat, 22 Oct 2022 01:09:24 +0000 (21:09 -0400)]
filesystemmodel: Drop outdated comments
Drop a long comment describing an implementation
that no longer exists.
Matthias Clasen [Sat, 22 Oct 2022 01:08:27 +0000 (21:08 -0400)]
filesystemmodel: Drop unneded deprecation guards
Nothing deprecated is used here anymore.
Matthias Clasen [Sat, 22 Oct 2022 01:05:03 +0000 (21:05 -0400)]
searchenginemodel: Drop unneeded deprecation guards
Nothing deprecated is used here anymore.
Matthias Clasen [Sat, 22 Oct 2022 00:58:26 +0000 (20:58 -0400)]
gtk-demo: Remove deprecations from characters
Make the characters demo use global style providers.
Matthias Clasen [Sat, 22 Oct 2022 00:49:38 +0000 (20:49 -0400)]
gtk-demo: Remove deprecations from sizegroup demo
Out with the comboboxes, in with the dropdowns.
Matthias Clasen [Fri, 21 Oct 2022 19:48:01 +0000 (15:48 -0400)]
gtk-demo: Remove deprecation from textview demo
Use a dropdown instead of a combobox for the widget
embedding. It's better!
Matthias Clasen [Fri, 21 Oct 2022 19:18:10 +0000 (15:18 -0400)]
gtk-demo: Remove deprecations from gltransitions
Make the GL transitions demo use global style providers.
Matthias Clasen [Fri, 21 Oct 2022 18:41:59 +0000 (14:41 -0400)]
gtk-demo: Remove deprecations from solitaire
Make the solitaire game use global style providers.
Matthias Clasen [Fri, 21 Oct 2022 18:29:38 +0000 (14:29 -0400)]
gtk=demo: Drop unneeded deprecation guards
Nothing deprecated in the pixbuf paintable demo.
Matthias Clasen [Fri, 21 Oct 2022 18:16:38 +0000 (14:16 -0400)]
gtk-demo: Remove deprecations from dnd
Make the dnd demo use global style providers.
Matthias Clasen [Sat, 22 Oct 2022 00:36:26 +0000 (00:36 +0000)]
Merge branch 'wip/corey/file-chooser-popup' into 'main'
filechooserwidget: Fix popup issues
See merge request GNOME/gtk!5161
Corey Berla [Fri, 21 Oct 2022 20:55:10 +0000 (13:55 -0700)]
filechooserwidget: Show popup when clicking on empty space
Add gesture to right click or long press in the empty space
in the FileChooserWidget. Only show the global settings when
clicking on the empty space.
Corey Berla [Fri, 21 Oct 2022 20:53:49 +0000 (13:53 -0700)]
filechoosercell: Select item when right click or long press
Corey Berla [Fri, 21 Oct 2022 20:53:27 +0000 (13:53 -0700)]
filechoosercell: Only use long press when in touch mode
Corey Berla [Fri, 21 Oct 2022 20:52:55 +0000 (13:52 -0700)]
filechoosercell: Claim sequence on click
Matthias Clasen [Fri, 21 Oct 2022 19:42:24 +0000 (19:42 +0000)]
Merge branch 'gbsneto/filechooser-column-view' into 'main'
Port filechooser to GtkColumnView
See merge request GNOME/gtk!5108
Matthias Clasen [Fri, 21 Oct 2022 16:26:57 +0000 (16:26 +0000)]
Merge branch 'matthiasc/for-main' into 'main'
Bump the GLib requirement
See merge request GNOME/gtk!5158
Matthias Clasen [Fri, 21 Oct 2022 14:40:51 +0000 (10:40 -0400)]
filesystemmodel: Fix a compiler warning
Matthias Clasen [Fri, 21 Oct 2022 11:55:15 +0000 (07:55 -0400)]
theme: Fix up padding for the file chooser
We need the padding inside the filelistcell, so that
its event controllers cover the whole area.
Introduce a .complex style class for columnviews that
achieves that, and make the filechooser use it.
Matthias Clasen [Fri, 21 Oct 2022 11:59:47 +0000 (07:59 -0400)]
Bump the GLib requirement
We now use GSignalGroup, which was introduced
in GLib 2.72.
Matthias Clasen [Fri, 21 Oct 2022 11:44:13 +0000 (07:44 -0400)]
filesystemmodel: Fix a compiler warning
Matthias Clasen [Fri, 21 Oct 2022 11:40:52 +0000 (11:40 +0000)]
Merge branch 'gtkcompostable-c-fix-c4013' into 'main'
gtkcomposetable.c: Fix build on non-X11
See merge request GNOME/gtk!5156
Chun-wei Fan [Fri, 21 Oct 2022 04:15:29 +0000 (12:15 +0800)]
gtkcomposetable.c: Fix build on non-X11
The build breaks with a C4013 warning/error on Visual Studio because we don't
have a prototype defined for _gtk_get_datadir(), so include gtkprivate.h.
The vs2017-x64 CI did not catch this error because it is building GLib as a
fallback subproject, causing the msvc_recommended_pragmas.h header not to be
found, which is used to detect problems like this.
Matthias Clasen [Fri, 21 Oct 2022 01:14:29 +0000 (21:14 -0400)]
filechooser: Make search results show up
The tracker search engine implementation was not
setting all the custom attributes that we require
now.
The quartz search engine will need similar fixes.
Matthias Clasen [Thu, 20 Oct 2022 19:11:49 +0000 (15:11 -0400)]
filechooserwidget: Remember sort columns and order
These settings existed before, we keep using them.
This loses some information about sorting by multiple
columns, but it is sufficient to get the same primary
sort column back.
Corey Berla [Wed, 19 Oct 2022 20:57:20 +0000 (13:57 -0700)]
filechooserwidget: Fix time_sort_func
Corey Berla [Wed, 19 Oct 2022 19:42:56 +0000 (12:42 -0700)]
filechooser: Add show-time property
The "Show Time" setting does not take immediate effect (only after
changing folders) because it's set as a single call to
column_view_get_time_visible() on the FileChooserCell creation.
Instead create a bind a show-time property that gets updated
as the setting is changed.
Corey Berla [Wed, 19 Oct 2022 16:20:53 +0000 (09:20 -0700)]
filechoosercell: Add a GtkDragSource
Allow dragging one or more items. If the item dragged is not part of
the current selection, only drag that item.
Corey Berla [Wed, 19 Oct 2022 16:19:47 +0000 (09:19 -0700)]
filechoosercell: Bind "item" and "selected" to cell
Corey Berla [Wed, 19 Oct 2022 16:17:39 +0000 (09:17 -0700)]
filechooserwidget: Expose selection model
FileChooserCell may need to change the selection during a DND.
Corey Berla [Wed, 19 Oct 2022 16:16:45 +0000 (09:16 -0700)]
filechooserwidget: Rename and expose get_selected_files()
GtkFileChooserCell will need this function
Matthias Clasen [Mon, 17 Oct 2022 01:40:00 +0000 (21:40 -0400)]
filechooserwidget: Make rename popover work
Make the rename popover operate on the file that
the context menu was opened for, and pop up at
the same position.
Matthias Clasen [Fri, 14 Oct 2022 04:01:02 +0000 (00:01 -0400)]
filechooserwidget: Make context menus mostly work
Move the gestures to the individual cells, and
make them trigger the context menu via an action
that takes item position and coordinates.
The semantics are changed slightly: the menu actions
now operate on the clicked item, not on the selection.
Still to do: Fix up keyboard activation.
Matthias Clasen [Wed, 12 Oct 2022 12:18:39 +0000 (08:18 -0400)]
filesystemmodel: Drop the model types
We are no longer storing extra values, so no need
to take their types in the api.
Matthias Clasen [Wed, 12 Oct 2022 11:54:00 +0000 (07:54 -0400)]
filesystemmodel: Drop unused arguments
Drop the unused get_func arguments in constructors.
Update all callers.
Matthias Clasen [Wed, 12 Oct 2022 11:44:45 +0000 (07:44 -0400)]
filechooserentry: Simplify model construction
Don't pass a get_value callback when creating the
filesystem model. It isn't called anymore, and things
continue to work.
Matthias Clasen [Wed, 12 Oct 2022 04:38:42 +0000 (00:38 -0400)]
filesystemmodel: Drop more unused api
Drop all apis that operate on tree iters.
We are no longer a tree model.
Matthias Clasen [Wed, 12 Oct 2022 04:34:18 +0000 (00:34 -0400)]
filesystemmodel: Drop _gtk_file_system_model_get_value
This function is unused, so drop it, and its callback.
Matthias Clasen [Wed, 12 Oct 2022 04:24:15 +0000 (00:24 -0400)]
filechooser: Some work on popup menus
This is a start towards placing menus properly.
We once again center keyboard-triggered menus
on the file list.
Matthias Clasen [Wed, 12 Oct 2022 04:07:31 +0000 (00:07 -0400)]
filechooser: Drop deprecated includes
We no longer use cell renderers and tree models
here. Yay.
Matthias Clasen [Wed, 12 Oct 2022 03:32:35 +0000 (23:32 -0400)]
filesystemmodel: Fix a possible problem
If the async query fails to reproduce a file info,
we still need to thaw the model, otherwise it ends
up frozen forever.
This was deduced by reading the code, I haven't
actually seen it happen.
Matthias Clasen [Wed, 12 Oct 2022 03:30:43 +0000 (23:30 -0400)]
filechooserwidget: Use a string sorter for names
We can use the new collation property of GtkStringSorter,
and get the benefit of sort key caching. This commit
also fixes an accidental leak of all sorters, and
removes the sorter from the location column - we never
show that column when individual colummns are sortable.
Matthias Clasen [Tue, 11 Oct 2022 15:30:36 +0000 (11:30 -0400)]
filechooser: Drop unnecessary theme tracking
The widgets we are using handle theme changes
themselves, so there is no need for the filechooser
to do anything.
Matthias Clasen [Tue, 11 Oct 2022 15:02:07 +0000 (11:02 -0400)]
filechooser: Bring back sorting
Add a sort model between the filter model and the
file system model, and set it up to sort according
to the circumstances.
Corey Berla [Tue, 11 Oct 2022 04:20:07 +0000 (21:20 -0700)]
filechooserwidget: Reimplement DnD Drop Target
This reverts commit
34752a15a71597d00a8d08befc545ac1c178b81b.
Leaving out the drag source portion as that needs a total
reimplementation. The GtkDropTarget only required minor
modifications.
Matthias Clasen [Tue, 11 Oct 2022 02:36:35 +0000 (22:36 -0400)]
filechooserwidget: Reinstate show_and_select_files
Now that we have information about visible and
filtered-out status of items, we can make this
function work again.
Matthias Clasen [Tue, 11 Oct 2022 02:21:39 +0000 (22:21 -0400)]
filechooserwidget: Add a filter model
Put a filter model between the selection model and
the filesystem model, and make it filter on the
filechooser::visible attribute. This makes the filer
combo in the filterchooser and the 'show hidden files'
item work. But we need to prod the filter to trigger
a refiltering every now and then.
Matthias Clasen [Tue, 11 Oct 2022 02:19:40 +0000 (22:19 -0400)]
filesystemmodel: Make filtering info available
Provide the filtered-out and visible bits as a file attributes
under the names filechooser::filtered-out and filechooser::visible,
so that we can filter on it.
Georges Basile Stavracas Neto [Tue, 11 Oct 2022 02:19:14 +0000 (23:19 -0300)]
filechooserwidget: Connect to the right model
When recreating the browse_files_model model, connect to that
model's item-changed signal, instead of connecting to the selection
model.
Georges Basile Stavracas Neto [Tue, 11 Oct 2022 02:18:00 +0000 (23:18 -0300)]
filechooserwidget: Connect to items-changed when changing model
Just like previous commit, we need to call list_items_changed()
even if we change from single selection to multi selection or
vice-versa.
Matthias Clasen [Mon, 10 Oct 2022 23:59:47 +0000 (19:59 -0400)]
filesystemmodel: Drop an unused include
Matthias Clasen [Mon, 10 Oct 2022 23:53:36 +0000 (19:53 -0400)]
filechooserwidget: Listen to items-changed too
To track changes of the selected items in a selection
model, we need to listen to both ::selection-changed
and ::items-changed.
This fixes the open button not turning sensitive
when initially loading a new folder.
Matthias Clasen [Mon, 10 Oct 2022 23:25:45 +0000 (19:25 -0400)]
filechooser: Prevent recursion when activating items
When a list item is activated, we activate the default widget.
Unfortunately, due to some other bug, sometimes the open button
is not made sensitive, and then default.activate falls back
to activating the focus widget (which is the item we are just
coming from). Boom
Matthias Clasen [Mon, 10 Oct 2022 23:25:20 +0000 (19:25 -0400)]
actionmuxer: Add debug spew for action activation
This helps tracking down whe activation goes wrong.
Matthias Clasen [Mon, 10 Oct 2022 19:47:45 +0000 (15:47 -0400)]
filesystemmodel: Drop the tree model implementation
This is no longer used.
Georges Basile Stavracas Neto [Mon, 10 Oct 2022 14:28:50 +0000 (11:28 -0300)]
filechooserwidget: Use GListModel API for post-renaming selection
Georges Basile Stavracas Neto [Mon, 10 Oct 2022 14:09:33 +0000 (11:09 -0300)]
filechooserentry: Use separate GtkTreeStore for completion
Soon GtkFileSystemModel will not be a GtkTreeModel implementation,
so preemptively remove any usage of this interface. Populate the
list store using the GListModel's 'items-changed' signal.
Georges Basile Stavracas Neto [Sun, 9 Oct 2022 21:52:12 +0000 (18:52 -0300)]
filesystemmodel: Retire GtkFileSystemItem
This has to be the shortest-living object in GTK history!
It helped us greatly during the transition to GtkColumnView, but
now we can remove it in favour of GFileInfo directly. Perhaps I
could have never introduced GtkFileSystemItem in the first place,
but we're 30 commits deep and it's too late to just redo the whole
thing that will get us exactly here anyway.
Georges Basile Stavracas Neto [Sun, 9 Oct 2022 21:50:23 +0000 (18:50 -0300)]
filesystemmodel: Always set standard::file attribute
This will help us greatly when porting GtkFileSystemModel to
GtkDirectoryList.
Georges Basile Stavracas Neto [Sun, 9 Oct 2022 21:49:37 +0000 (18:49 -0300)]
filesystemmodel: Trivial cleanup
Use g_set_object() which does exactly what the code there does.
Georges Basile Stavracas Neto [Sun, 9 Oct 2022 20:41:33 +0000 (17:41 -0300)]
filechooserutils: Add helper to get GFile from info
This will be used extensively starting from next commit!
Georges Basile Stavracas Neto [Sun, 9 Oct 2022 20:25:09 +0000 (17:25 -0300)]
filechooserentry: Trivial cleanups
Use g_clear_object() in a couple of places. No functional changes.
Georges Basile Stavracas Neto [Sun, 9 Oct 2022 20:21:29 +0000 (17:21 -0300)]
searchenginemodel: Use GListModel API to filter
We now start a mini-series of commits that will ultimately remove
the GtkTreeModel implementation of GtkFileSystemModel.
As a first step, port GtkSearchEngineModel iter through the files
using GListModel API.
Georges Basile Stavracas Neto [Sun, 9 Oct 2022 17:16:06 +0000 (14:16 -0300)]
filechooserwidget: Remove treeview
Now that most of the treeview usage is gone, remove the remaining
code that uses it - mostly event handling code, which for now won't
work, but will be fixed by next commits - and drop the tree view
entirely.
Georges Basile Stavracas Neto [Sat, 8 Oct 2022 23:12:20 +0000 (20:12 -0300)]
filechooserwidget: Use GtkSelectionModel for selection
So far, GtkFileChooserWidget has relied on GtkTreeView's selection
management. This commit moves it away from GtkTreeView, and that's
a massive surgery - sorry :(
The most important aspect of this commit is that 'selection_model'
is now the main model we deal with. Changing between directories,
recent files, and search, all sets the selection_model's model.
Selections are entirely handled by GtkSelectionModel now.
Georges Basile Stavracas Neto [Sat, 8 Oct 2022 22:42:12 +0000 (19:42 -0300)]
filesystemmodel: Add more GtkFileSystemItem getters
They'll help us further remove GtkTreeModel code.
Georges Basile Stavracas Neto [Sat, 8 Oct 2022 18:18:13 +0000 (15:18 -0300)]
filechooserwidget: Stop centering on selected files
Georges Basile Stavracas Neto [Sat, 8 Oct 2022 17:50:18 +0000 (14:50 -0300)]
filechooserwidget: Don't queue redraw / resize on tree view
Georges Basile Stavracas Neto [Sat, 8 Oct 2022 17:49:35 +0000 (14:49 -0300)]
filechooserwidget: Compare focus against column view
This effectively doesn't work, but focus will be reworked at some
point, and this gets us a tiny bit closer to that.
Georges Basile Stavracas Neto [Sat, 8 Oct 2022 17:11:53 +0000 (14:11 -0300)]
gtkfilechooserwidget: Don't set size request
Georges Basile Stavracas Neto [Sat, 8 Oct 2022 15:32:48 +0000 (12:32 -0300)]
filesystemmodel: Don't implement GtkTreeDragSource
Georges Basile Stavracas Neto [Sat, 8 Oct 2022 15:32:19 +0000 (12:32 -0300)]
filechooserwidget: Remove DnD code
Another case where we'll reimplement it later.
Georges Basile Stavracas Neto [Sat, 8 Oct 2022 15:25:10 +0000 (12:25 -0300)]
filesystemmodel: Drop GtkTreeSortable interface
Stop implementing this interface. We'll be able to reimplement
sorting once we fully transition to GListModel.
Georges Basile Stavracas Neto [Sat, 8 Oct 2022 15:11:51 +0000 (12:11 -0300)]
filechooserwidget: Remove sorting
This will be reimplemented later using list models. For now, let's
remove it so we can untangle all this code properly.
Georges Basile Stavracas Neto [Sat, 8 Oct 2022 15:10:55 +0000 (12:10 -0300)]
filechooserwidget: Stop autosizing treeview
Georges Basile Stavracas Neto [Sat, 8 Oct 2022 15:04:25 +0000 (12:04 -0300)]
filechooserwidget: Use column view scrolled window
One less hook to treeview widgetry.
Georges Basile Stavracas Neto [Sat, 8 Oct 2022 15:02:20 +0000 (12:02 -0300)]
filechooserwidget: Move tooltip text to column view
Use a closure binding to query the tooltip.
Georges Basile Stavracas Neto [Sat, 8 Oct 2022 13:51:14 +0000 (10:51 -0300)]
filechooserwidget: Move folder navigation to column view
React to column view's 'activate' signal, instead of treeview's
'row-activated'. It doesn't handle file sensitivity yet, but that
will probably be dropped later.
Georges Basile Stavracas Neto [Sat, 8 Oct 2022 13:24:04 +0000 (10:24 -0300)]
filechooserwidget: Move keynav handling to column view
Georges Basile Stavracas Neto [Sat, 8 Oct 2022 13:20:14 +0000 (10:20 -0300)]
filechooserwidget: Set rubberbanding on column view
And stop setting it on the tree view.
Georges Basile Stavracas Neto [Sat, 8 Oct 2022 13:12:41 +0000 (10:12 -0300)]
filesystemmodel: Don't expose cache
With this commit we start slowly cleaning up the sattelite code
surrounding GtkFileChooserWidget, so that we eventually drop it
all.
Georges Basile Stavracas Neto [Sat, 8 Oct 2022 13:09:42 +0000 (10:09 -0300)]
filechooserwidget: Remove extra action bar