Commit e358c234 authored by António Fernandes's avatar António Fernandes 🐚
Browse files

general: Switch to GTK4

The new major version of the toolkit is a requirement to fix old issues and enable future enhancements.

Update symbols and adapt logic to API changes.
Update and simplify UI definitions.
Update local copy of places sidebar and places view.
Replace dependencies with their GTK4-compatible successors.
Make a minimum changes required to build and run, with known
regressions to be fixed in future commits.

For a detailed breakup of the changes, see the 36 commits-deep
log leading to d5763fac.

This is the main part of #276
parent 04171980
Pipeline #349640 passed with stages
in 8 minutes and 57 seconds
......@@ -118,7 +118,7 @@
"builddir": true,
"config-opts": [
"-Ddocs=false",
"-Dbackends=gtk3",
"-Dbackends=gtk4",
"--libdir=/app/lib",
"--buildtype=debugoptimized"
],
......
......@@ -86,7 +86,7 @@ modules:
builddir: true
config-opts:
- "-Ddocs=false"
- "-Dbackends=gtk3"
- "-Dbackends=gtk4"
- "--libdir=/app/lib"
- "--buildtype=debugoptimized"
sources:
......
......@@ -40,8 +40,7 @@ main (int argc,
LIBXML_TEST_VERSION
gtk_init (&argc,
&argv);
gtk_init ();
/* Run the checks for eel twice. */
......
......@@ -101,7 +101,7 @@ timed_wait_delayed_close_timeout_callback (gpointer callback_data)
G_CALLBACK (timed_wait_delayed_close_destroy_dialog_callback),
GUINT_TO_POINTER (handler_id));
gtk_widget_destroy (GTK_WIDGET (callback_data));
gtk_window_destroy (GTK_WINDOW (callback_data));
return FALSE;
}
......@@ -151,7 +151,7 @@ timed_wait_free (TimedWait *wait)
}
else
{
gtk_widget_destroy (GTK_WIDGET (wait->dialog));
gtk_window_destroy (GTK_WINDOW (wait->dialog));
}
}
......@@ -187,7 +187,7 @@ trash_dialog_response_callback (GtkDialog *dialog,
int response_id,
TimedWait *wait)
{
gtk_widget_destroy (GTK_WIDGET (dialog));
gtk_window_destroy (GTK_WINDOW (dialog));
}
static gboolean
......@@ -334,7 +334,7 @@ eel_show_simple_dialog (GtkWidget *parent,
chosen_parent = NULL;
if (parent != NULL)
{
top_widget = gtk_widget_get_toplevel (parent);
top_widget = GTK_WIDGET (gtk_widget_get_root (parent));
if (GTK_IS_WINDOW (top_widget))
{
chosen_parent = top_widget;
......@@ -368,7 +368,7 @@ eel_show_simple_dialog (GtkWidget *parent,
}
va_end (button_title_args);
gtk_widget_show_all (dialog);
gtk_widget_show (dialog);
return GTK_DIALOG (dialog);
}
......@@ -414,7 +414,7 @@ show_message_dialog (const char *primary_text,
gtk_widget_show (GTK_WIDGET (dialog));
g_signal_connect (dialog, "response",
G_CALLBACK (gtk_widget_destroy), NULL);
G_CALLBACK (gtk_window_destroy), NULL);
return dialog;
}
......
......@@ -276,7 +276,7 @@ bacon_video_widget_properties_new (void)
g_object_unref (group);
gtk_widget_show_all (GTK_WIDGET (props));
gtk_widget_show (GTK_WIDGET (props));
return GTK_WIDGET (props);
}
......
......@@ -38,7 +38,7 @@ create_props (const char *url)
props = totem_properties_view_new (url, label);
gtk_container_add (GTK_CONTAINER (window), props);
gtk_widget_show_all (window);
gtk_widget_show (window);
}
static void
......@@ -58,7 +58,7 @@ int main (int argc, char **argv)
totem_gst_disable_display_decoders ();
gst_init (&argc, &argv);
gtk_init (&argc, &argv);
gtk_init ();
if (argc != 2) {
g_print ("Usage: %s [URI]\n", argv[0]);
......
......@@ -80,7 +80,7 @@ append_item (NautilusImagesPropertiesPage *page,
value_label = gtk_label_new (value);
gtk_label_set_line_wrap (GTK_LABEL (value_label), TRUE);
gtk_label_set_wrap (GTK_LABEL (value_label), TRUE);
gtk_grid_attach_next_to (GTK_GRID (page->grid), value_label,
name_label, GTK_POS_RIGHT,
1, 1);
......@@ -93,7 +93,7 @@ append_item (NautilusImagesPropertiesPage *page,
static void
nautilus_image_properties_page_init (NautilusImagesPropertiesPage *self)
{
self->page_widget = gtk_scrolled_window_new (NULL, NULL);
self->page_widget = gtk_scrolled_window_new ();
g_object_set (self->page_widget,
"margin-bottom", 6,
......@@ -119,7 +119,7 @@ nautilus_image_properties_page_init (NautilusImagesPropertiesPage *self)
self->grid);
#endif
gtk_widget_show_all (GTK_WIDGET (self->page_widget));
gtk_widget_show (GTK_WIDGET (self->page_widget));
}
static void
......
......@@ -83,10 +83,10 @@ if get_option('introspection')
'-DNAUTILUS_COMPILATION'
],
sources: libnautilus_extension_sources,
nsversion: '3.0',
nsversion: '4.0',
namespace: 'Nautilus',
includes: [
'Gtk-3.0',
'Gtk-4.0',
'Gio-2.0',
'GLib-2.0'
],
......@@ -115,7 +115,7 @@ pkgconfig.generate(
requires: [
'gio-2.0',
'glib-2.0',
'gtk+-3.0'
'gtk4'
],
variables: [
'exec_prefix=${prefix}',
......
......@@ -107,14 +107,14 @@ gio_unix = dependency('gio-unix-2.0', version: glib_ver)
glib = dependency('glib-2.0', version: glib_ver)
gmodule = dependency('gmodule-no-export-2.0', version: glib_ver)
gnome_autoar = dependency('gnome-autoar-0', version: '>= 0.4.0')
gnome_desktop = dependency('gnome-desktop-3.0', version: '>= 3.0.0')
gtk = dependency('gtk+-3.0', version: '>= 3.22.27')
libhandy = dependency('libhandy-1', version: '>= 1.1.90')
gnome_desktop = dependency('gnome-desktop-4', version: '>= 1.0.0')
gtk = dependency('gtk4', version: '>= 4.6')
libadwaita = dependency('libadwaita-1', version: '>= 1.0')
libportal = []
libportal_gtk3 = []
libportal_gtk4 = []
if get_option('libportal')
libportal = dependency('libportal', version: '>= 0.5')
libportal_gtk3 = dependency('libportal-gtk3', version: '>= 0.5')
libportal_gtk4 = dependency('libportal-gtk4', version: '>= 0.5')
endif
selinux = []
if get_option('selinux')
......
......@@ -5,9 +5,9 @@
# action.
# Also remove/add the neccesary bits to make it work inside nautilus
URL=https://gitlab.gnome.org/GNOME/gtk/raw/gtk-3-24/gtk/
URLUI=https://gitlab.gnome.org/GNOME/gtk/raw/gtk-3-24/gtk/ui/
SUFIX=?h=gtk-3-24
URL=https://gitlab.gnome.org/GNOME/gtk/raw/master/gtk/
URLUI=https://gitlab.gnome.org/GNOME/gtk/raw/master/gtk/ui/
SUFIX=?h=master
# Since comments are not allowed inside the sed line, this is what it will do
# by order:
......@@ -24,27 +24,22 @@ SUFIX=?h=gtk-3-24
# use local sidebar header instead of private gtk one
# in-line replace private gtkfilesystem.h helper function
# ignore shadowed variable which we would treat as compile error
# use local header instead of private gtk one
# replace private macros with their expansion
# replace private enum type with our own equivalent
update_file () {
_source="$1"
_dest="$2"
curl "${_source}" | sed \
-e 's/gtkplacesview/nautilusgtkplacesview/g' \
-e 's/gtk_places_view/nautilus_gtk_places_view/g' \
-e 's/GtkPlacesView/NautilusGtkPlacesView/g' \
-e 's/GTK_PLACES_VIEW/NAUTILUS_GTK_PLACES_VIEW/g' \
-e 's/GTK_TYPE_PLACES_VIEW/NAUTILUS_TYPE_GTK_PLACES_VIEW/g' \
-e 's/GTK_IS_PLACES_VIEW/NAUTILUS_IS_GTK_PLACES_VIEW/g' \
-e 's/gtkplaces/nautilusgtkplaces/g' \
-e 's/gtk_places_/nautilus_gtk_places_/g' \
-e 's/GtkPlaces/NautilusGtkPlaces/g' \
-e 's/GTK_PLACES_/NAUTILUS_GTK_PLACES_/g' \
-e 's/GTK_TYPE_PLACES_/NAUTILUS_TYPE_GTK_PLACES_/g' \
-e 's/GTK_IS_PLACES_/NAUTILUS_IS_GTK_PLACES_/g' \
-e 's/G_DECLARE_FINAL_TYPE (NautilusGtkPlacesViewRow, nautilus_gtk_places_view_row, GTK, PLACES_VIEW_ROW, GtkListBoxRow/ G_DECLARE_FINAL_TYPE (NautilusGtkPlacesViewRow, nautilus_gtk_places_view_row, NAUTILUS, GTK_PLACES_VIEW_ROW, GtkListBoxRow/g' \
-e 's/gtkplacessidebar/nautilusgtkplacessidebar/g' \
-e 's/gtk_places_sidebar/nautilus_gtk_places_sidebar/g' \
-e 's/GtkPlacesSidebar/NautilusGtkPlacesSidebar/g' \
-e 's/GTK_PLACES_SIDEBAR/NAUTILUS_GTK_PLACES_SIDEBAR/g' \
-e 's/GTK_TYPE_PLACES_SIDEBAR/NAUTILUS_TYPE_GTK_PLACES_SIDEBAR/g' \
-e 's/GTK_IS_PLACES_SIDEBAR/NAUTILUS_IS_GTK_PLACES_SIDEBAR/g' \
-e 's/GtkPlacesOpen/NautilusGtkPlacesOpen/g' \
-e 's/GTK_PLACES_OPEN/NAUTILUS_GTK_PLACES_OPEN/g' \
-e 's/gtkbookmarksmanager/nautilusgtkbookmarksmanager/g' \
-e 's/gtk_bookmarks_manager/nautilus_gtk_bookmarks_manager/g' \
-e 's/GtkBookmarksManager/NautilusGtkBookmarksManager/g' \
......@@ -75,6 +70,8 @@ update_file () {
-e "s/P_(\(.*\))/\1/" \
-e "s/I_(\(.*\))/\1/" \
-e '/"config.h"/a #include <gtk\/gtk.h>' \
-e 's/<gtk\/gtkwidget.h>/<gtk\/gtk.h>/g' \
-e '/gtkenums.h/d' \
-e '/gtktypebuiltins.h/d' \
-e '/gtkintl.h/d' \
-e '/<gtk\/gtkbox.h>/d' \
......@@ -88,7 +85,9 @@ update_file () {
-e '/"gtki\(.*\).h"/d' \
-e '/"gtkl\(.*\).h"/d' \
-e '/"gtkm\(.*\).h"/d' \
-e '/"gtkn\(.*\).h"/d' \
-e '/"gtkpo\(.*\).h"/d' \
-e '/"gtkpr\(.*\).h"/d' \
-e '/"gtkr\(.*\).h"/d' \
-e '/"gtksc\(.*\).h"/d' \
-e '/"gtkse\(.*\).h"/d' \
......@@ -99,9 +98,14 @@ update_file () {
-e '/"gtkw\(.*\).h"/d' \
-e '/#error/d' \
-e 's/gtk\/libgtk/gnome\/nautilus\/gtk/g' \
-e 's/<gtk\/nautilusgtkplacessidebar.h>/"nautilusgtkplacessidebar.h"'/g \
-e 's/<gtk\/nautilusgtkplacessidebarprivate.h>/"nautilusgtkplacessidebarprivate.h"'/g \
-e 's/_gtk_file_info_consider_as_directory (info)/(g_file_info_get_file_type (info) == G_FILE_TYPE_DIRECTORY || g_file_info_get_file_type (info) == G_FILE_TYPE_MOUNTABLE || g_file_info_get_file_type (info) == G_FILE_TYPE_SHORTCUT)/g' \
-e '/#include "nautilus-trash-monitor.h"/a #pragma GCC diagnostic ignored "-Wshadow"' \
-e 's/gtk_drag_check_threshold_double/gtk_drag_check_threshold/g' \
-e 's/NAUTILUS_TYPE_GTK_PLACES_OPEN_FLAGS/NAUTILUS_TYPE_OPEN_FLAGS/g' \
-e '/"config.h"/a #include "nautilus-enum-types.h"' \
-e 's/GTK_PARAM_READABLE/G_PARAM_READABLE|G_PARAM_STATIC_NAME|G_PARAM_STATIC_NICK|G_PARAM_STATIC_BLURB/g' \
-e 's/GTK_PARAM_READWRITE/G_PARAM_READWRITE|G_PARAM_STATIC_NAME|G_PARAM_STATIC_NICK|G_PARAM_STATIC_BLURB/g' \
> "${_dest}"
}
......@@ -110,9 +114,8 @@ update_file "${URL}/gtkplacesviewprivate.h${SUFIX}" "nautilusgtkplacesviewprivat
update_file "${URLUI}/gtkplacesview.ui${SUFIX}" "nautilusgtkplacesview.ui"
update_file "${URL}/gtkplacessidebar.c${SUFIX}" "nautilusgtkplacessidebar.c"
update_file "${URL}/gtkplacessidebarprivate.h${SUFIX}" "nautilusgtkplacessidebarprivate.h"
update_file "${URL}/gtkplacessidebar.h${SUFIX}" "nautilusgtkplacessidebar.h"
update_file "${URL}/gtkbookmarksmanager.c${SUFIX}" "nautilusgtkbookmarksmanager.c"
update_file "${URL}/gtkbookmarksmanager.h${SUFIX}" "nautilusgtkbookmarksmanager.h"
update_file "${URL}/gtkbookmarksmanagerprivate.h${SUFIX}" "nautilusgtkbookmarksmanagerprivate.h"
update_file "${URL}/gtkplacesviewrow.c${SUFIX}" "nautilusgtkplacesviewrow.c"
update_file "${URL}/gtkplacesviewrowprivate.h${SUFIX}" "nautilusgtkplacesviewrowprivate.h"
update_file "${URLUI}/gtkplacesviewrow.ui${SUFIX}" "nautilusgtkplacesviewrow.ui"
......
......@@ -24,12 +24,13 @@
#include "config.h"
#include <glib/gi18n.h>
#include <gtk/gtk.h>
#include "nautilus-enum-types.h"
#include <string.h>
#include <glib/gi18n-lib.h>
#include "nautilusgtkbookmarksmanager.h"
#include "nautilusgtkbookmarksmanagerprivate.h"
static void
_gtk_bookmark_free (gpointer data)
......@@ -44,7 +45,7 @@ _gtk_bookmark_free (gpointer data)
static void
set_error_bookmark_doesnt_exist (GFile *file, GError **error)
{
gchar *uri = g_file_get_uri (file);
char *uri = g_file_get_uri (file);
g_set_error (error,
GTK_FILE_CHOOSER_ERROR,
......@@ -59,7 +60,7 @@ static GFile *
get_legacy_bookmarks_file (void)
{
GFile *file;
gchar *filename;
char *filename;
filename = g_build_filename (g_get_home_dir (), ".gtk-bookmarks", NULL);
file = g_file_new_for_path (filename);
......@@ -72,8 +73,12 @@ static GFile *
get_bookmarks_file (void)
{
GFile *file;
gchar *filename;
char *filename;
/* Use gtk-3.0's bookmarks file as the format didn't change.
* Add the 3.0 file format to get_legacy_bookmarks_file() when
* the format does change.
*/
filename = g_build_filename (g_get_user_config_dir (), "gtk-3.0", "bookmarks", NULL);
file = g_file_new_for_path (filename);
g_free (filename);
......@@ -82,16 +87,11 @@ get_bookmarks_file (void)
}
static GSList *
read_bookmarks (GFile *file)
parse_bookmarks (const char *contents)
{
gchar *contents;
gchar **lines, *space;
char **lines, *space;
GSList *bookmarks = NULL;
gint i;
if (!g_file_load_contents (file, NULL, &contents,
NULL, NULL, NULL))
return NULL;
int i;
lines = g_strsplit (contents, "\n", -1);
......@@ -119,11 +119,60 @@ read_bookmarks (GFile *file)
bookmarks = g_slist_reverse (bookmarks);
g_strfreev (lines);
return bookmarks;
}
static GSList *
read_bookmarks (GFile *file)
{
char *contents;
GSList *bookmarks = NULL;
if (!g_file_load_contents (file, NULL, &contents,
NULL, NULL, NULL))
return NULL;
bookmarks = parse_bookmarks (contents);
g_free (contents);
return bookmarks;
}
static void
notify_changed (NautilusGtkBookmarksManager *manager)
{
if (manager->changed_func)
manager->changed_func (manager->changed_func_data);
}
static void
read_bookmarks_finish (GObject *source,
GAsyncResult *result,
gpointer data)
{
GFile *file = G_FILE (source);
NautilusGtkBookmarksManager *manager = data;
char *contents = NULL;
GError *error = NULL;
if (!g_file_load_contents_finish (file, result, &contents, NULL, NULL, &error))
{
if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
g_warning ("Failed to load '%s': %s", g_file_peek_path (file), error->message);
g_error_free (error);
return;
}
g_slist_free_full (manager->bookmarks, _gtk_bookmark_free);
manager->bookmarks = parse_bookmarks (contents);
g_free (contents);
notify_changed (manager);
}
static void
save_bookmarks (GFile *bookmarks_file,
GSList *bookmarks)
......@@ -138,7 +187,7 @@ save_bookmarks (GFile *bookmarks_file,
for (l = bookmarks; l; l = l->next)
{
GtkBookmark *bookmark = l->data;
gchar *uri;
char *uri;
uri = g_file_get_uri (bookmark->file);
if (!uri)
......@@ -178,13 +227,6 @@ save_bookmarks (GFile *bookmarks_file,
g_string_free (contents, TRUE);
}
static void
notify_changed (NautilusGtkBookmarksManager *manager)
{
if (manager->changed_func)
manager->changed_func (manager->changed_func_data);
}
static void
bookmarks_file_changed (GFileMonitor *monitor,
GFile *file,
......@@ -199,15 +241,17 @@ bookmarks_file_changed (GFileMonitor *monitor,
case G_FILE_MONITOR_EVENT_CHANGED:
case G_FILE_MONITOR_EVENT_CHANGES_DONE_HINT:
case G_FILE_MONITOR_EVENT_CREATED:
case G_FILE_MONITOR_EVENT_DELETED:
g_slist_free_full (manager->bookmarks, _gtk_bookmark_free);
manager->bookmarks = read_bookmarks (file);
gdk_threads_enter ();
notify_changed (manager);
gdk_threads_leave ();
g_file_load_contents_async (file, manager->cancellable, read_bookmarks_finish, manager);
break;
case G_FILE_MONITOR_EVENT_DELETED:
case G_FILE_MONITOR_EVENT_ATTRIBUTE_CHANGED:
case G_FILE_MONITOR_EVENT_PRE_UNMOUNT:
case G_FILE_MONITOR_EVENT_UNMOUNTED:
case G_FILE_MONITOR_EVENT_MOVED:
case G_FILE_MONITOR_EVENT_RENAMED:
case G_FILE_MONITOR_EVENT_MOVED_IN:
case G_FILE_MONITOR_EVENT_MOVED_OUT:
default:
/* ignore at the moment */
break;
......@@ -226,9 +270,10 @@ _nautilus_gtk_bookmarks_manager_new (GtkBookmarksChangedFunc changed_func, gpoin
manager->changed_func = changed_func;
manager->changed_func_data = changed_func_data;
manager->cancellable = g_cancellable_new ();
bookmarks_file = get_bookmarks_file ();
manager->bookmarks = read_bookmarks (bookmarks_file);
if (!manager->bookmarks)
if (!g_file_query_exists (bookmarks_file, NULL))
{
GFile *legacy_bookmarks_file;
......@@ -240,6 +285,8 @@ _nautilus_gtk_bookmarks_manager_new (GtkBookmarksChangedFunc changed_func, gpoin
g_object_unref (legacy_bookmarks_file);
}
else
g_file_load_contents_async (bookmarks_file, manager->cancellable, read_bookmarks_finish, manager);
error = NULL;
manager->bookmarks_monitor = g_file_monitor_file (bookmarks_file,
......@@ -254,6 +301,7 @@ _nautilus_gtk_bookmarks_manager_new (GtkBookmarksChangedFunc changed_func, gpoin
manager->bookmarks_monitor_changed_id = g_signal_connect (manager->bookmarks_monitor, "changed",
G_CALLBACK (bookmarks_file_changed), manager);
g_object_unref (bookmarks_file);
return manager;
......@@ -264,6 +312,9 @@ _nautilus_gtk_bookmarks_manager_free (NautilusGtkBookmarksManager *manager)
{
g_return_if_fail (manager != NULL);
g_cancellable_cancel (manager->cancellable);
g_object_unref (manager->cancellable);
if (manager->bookmarks_monitor)
{
g_file_monitor_cancel (manager->bookmarks_monitor);
......@@ -339,7 +390,7 @@ _nautilus_gtk_bookmarks_manager_has_bookmark (NautilusGtkBookmarksManager *manag
gboolean
_nautilus_gtk_bookmarks_manager_insert_bookmark (NautilusGtkBookmarksManager *manager,
GFile *file,
gint position,
int position,
GError **error)
{
GSList *link;
......@@ -353,7 +404,7 @@ _nautilus_gtk_bookmarks_manager_insert_bookmark (NautilusGtkBookmarksManager *ma
if (link)
{
gchar *uri;
char *uri;
bookmark = link->data;
uri = g_file_get_uri (bookmark->file);
......@@ -423,7 +474,7 @@ _nautilus_gtk_bookmarks_manager_remove_bookmark (NautilusGtkBookmarksManager *ma
gboolean
_nautilus_gtk_bookmarks_manager_reorder_bookmark (NautilusGtkBookmarksManager *manager,
GFile *file,
gint new_position,
int new_position,
GError **error)
{
GSList *link;
......@@ -468,12 +519,12 @@ _nautilus_gtk_bookmarks_manager_reorder_bookmark (NautilusGtkBookmarksManager *m
return TRUE;
}
gchar *
char *
_nautilus_gtk_bookmarks_manager_get_bookmark_label (NautilusGtkBookmarksManager *manager,
GFile *file)
{
GSList *bookmarks;
gchar *label = NULL;
char *label = NULL;
g_return_val_if_fail (manager != NULL, NULL);
g_return_val_if_fail (file != NULL, NULL);
......@@ -500,7 +551,7 @@ _nautilus_gtk_bookmarks_manager_get_bookmark_label (NautilusGtkBookmarksManager
gboolean
_nautilus_gtk_bookmarks_manager_set_bookmark_label (NautilusGtkBookmarksManager *manager,
GFile *file,
const gchar *label,
const char *label,
GError **error)
{
GFile *bookmarks_file;
......@@ -532,7 +583,7 @@ _nautilus_gtk_bookmarks_manager_set_bookmark_label (NautilusGtkBookmarksManager
return TRUE;
}
gboolean
static gboolean
_nautilus_gtk_bookmarks_manager_get_xdg_type (NautilusGtkBookmarksManager *manager,
GFile *file,
GUserDirectory *directory)
......@@ -540,7 +591,7 @@ _nautilus_gtk_bookmarks_manager_get_xdg_type (NautilusGtkBookmarksManager *manag
GSList *link;
gboolean match;
GFile *location;
const gchar *path;
const char *path;
GUserDirectory dir;
GtkBookmark *bookmark;
......
......@@ -38,12 +38,14 @@ typedef struct
gpointer changed_func_data;
GtkBookmarksChangedFunc changed_func;
GCancellable *cancellable;
} NautilusGtkBookmarksManager;
typedef struct
{
GFile *file;
gchar *label;
char *label;
} GtkBookmark;
NautilusGtkBookmarksManager *_nautilus_gtk_bookmarks_manager_new (GtkBookmarksChangedFunc changed_func,
......@@ -56,7 +58,7 @@ GSList *_nautilus_gtk_bookmarks_manager_list_bookmarks (NautilusGtkBookmarksMana
gboolean _nautilus_gtk_bookmarks_manager_insert_bookmark (NautilusGtkBookmarksManager *manager,
GFile *file,
gint position,
int position,
GError **error);
gboolean _nautilus_gtk_bookmarks_manager_remove_bookmark (NautilusGtkBookmarksManager *manager,
......@@ -65,23 +67,20 @@ gboolean _nautilus_gtk_bookmarks_manager_remove_bookmark (NautilusGtkBookmarksMa
gboolean _nautilus_gtk_bookmarks_manager_reorder_bookmark (NautilusGtkBookmarksManager *manager,
GFile *file,
gint new_position,
int new_position,
GError **error);
gboolean _nautilus_gtk_bookmarks_manager_has_bookmark (NautilusGtkBookmarksManager *manager,
GFile *file);
gchar * _nautilus_gtk_bookmarks_manager_get_bookmark_label (NautilusGtkBookmarksManager *manager,
char * _nautilus_gtk_bookmarks_manager_get_bookmark_label (NautilusGtkBookmarksManager *manager,
GFile *file);
gboolean _nautilus_gtk_bookmarks_manager_set_bookmark_label (NautilusGtkBookmarksManager *manager,
GFile *file,
const gchar *label,
const char *label,
GError **error);
gboolean _nautilus_gtk_bookmarks_manager_get_xdg_type (NautilusGtkBookmarksManager *manager,
GFile *file,
GUserDirectory *directory);
gboolean _nautilus_gtk_bookmarks_manager_get_is_builtin (NautilusGtkBookmarksManager *manager,
GFile *file);
......
This diff is collapsed.
/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
/* NautilusGtkPlacesSidebar - sidebar widget for places in the filesystem
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published
* by the Free Software Foundation, either version 2.1 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of