l = rows;
while (l != NULL && !found)
{
- g_object_get (GTK_SIDEBAR_ROW (l->data), "uri", &uri, NULL);
+ g_object_get (l->data, "uri", &uri, NULL);
if (uri)
{
GFile *other;
other = g_file_new_for_uri (uri);
found = g_file_equal (file, other);
g_object_unref (other);
+ g_free (uri);
}
-
l = l->next;
}
/* save original selection */
selected = gtk_list_box_get_selected_row (GTK_LIST_BOX (sidebar->list_box));
if (selected)
- g_object_get (GTK_SIDEBAR_ROW (selected), "uri", &original_uri, NULL);
+ g_object_get (selected, "uri", &original_uri, NULL);
else
original_uri = NULL;
restore = g_file_new_for_uri (original_uri);
gtk_places_sidebar_set_location (sidebar, restore);
g_object_unref (restore);
+ g_free (original_uri);
}
}
NULL);
if (place_type == PLACES_CONNECT_TO_SERVER)
- return FALSE;
+ {
+ g_free (uri);
+ return FALSE;
+ }
if (place_type == PLACES_DROP_FEEDBACK)
- return TRUE;
+ {
+ g_free (uri);
+ return TRUE;
+ }
/* Disallow drops on recent:/// */
if (place_type == PLACES_BUILT_IN)
{
- gchar *uri;
-
- g_object_get (row, "uri", &uri, NULL);
-
if (g_strcmp0 (uri, "recent:///") == 0)
- return FALSE;
+ {
+ g_free (uri);
+ return FALSE;
+ }
}
/* Dragging a bookmark? */
}
}
+ g_free (uri);
return valid;
}
for (l = rows; l != NULL; l = l->next)
{
sensitive = !dragging || check_valid_drop_target (sidebar, GTK_SIDEBAR_ROW (l->data), context);
- g_object_set (GTK_SIDEBAR_ROW (l->data), "sensitive", sensitive, NULL);
+ gtk_widget_set_sensitive (GTK_WIDGET (l->data), sensitive);
}
g_list_free (rows);
if (sidebar->drag_data_info != DND_GTK_SIDEBAR_ROW)
{
gtk_sidebar_row_reveal (GTK_SIDEBAR_ROW (sidebar->new_bookmark_row));
- /* If the state is permanent, don't change it. Is the application that
- * controls this */
+ /* If the state is permanent, don't change it. The application controls it. */
if (sidebar->drop_state != DROP_STATE_NEW_BOOKMARK_ARMED_PERMANENT)
sidebar->drop_state = DROP_STATE_NEW_BOOKMARK_ARMED;
}
GtkPlacesSidebar *sidebar = GTK_PLACES_SIDEBAR (user_data);
if (sidebar->drag_row == NULL || sidebar->dragging_over)
- {
- return FALSE;
- }
+ return FALSE;
if (!(event->state & GDK_BUTTON1_MASK))
{
return FALSE;
}
- if (gtk_drag_check_threshold (widget,
+ if (gtk_drag_check_threshold (widget,
sidebar->drag_root_x, sidebar->drag_root_y,
event->x_root, event->y_root))
- {
+ {
sidebar->dragging_over = TRUE;
gtk_drag_begin_with_coordinates (widget, sidebar->source_targets, GDK_ACTION_MOVE,
* the current row, for instance when the cursor is in the lower half
* of the row, we need to increase the order-index.
*/
- row_placeholder_index = row_index;
- gtk_widget_translate_coordinates (widget, GTK_WIDGET (row),
- x, y,
- &dest_x, &dest_y);
+ row_placeholder_index = row_index;
+ gtk_widget_translate_coordinates (widget, GTK_WIDGET (row),
+ x, y,
+ &dest_x, &dest_y);
- if (dest_y > sidebar->drag_row_height / 2 && row_index > 0)
- row_placeholder_index++;
+ if (dest_y > sidebar->drag_row_height / 2 && row_index > 0)
+ row_placeholder_index++;
}
else
{
/* If the user is dragging over an area that has no row, place the row
- * placeholder in the last position */
+ * placeholder in the last position
+ */
row_placeholder_index = G_MAXINT32;
}
{
gtk_list_box_drag_highlight_row (GTK_LIST_BOX (sidebar->list_box), row);
- g_object_get (GTK_SIDEBAR_ROW (row),
+ g_object_get (row,
"place-type", &place_type,
"uri", &drop_target_uri,
NULL);
}
}
}
+
+ g_free (drop_target_uri);
}
out:
_gtk_bookmarks_manager_reorder_bookmark (sidebar->bookmarks_manager, file, new_position, NULL);
g_object_unref (file);
+ g_free (uri);
}
/* Creates bookmarks for the specified files at the given position in the bookmarks list */
if (target_row == NULL)
return;
- g_object_get (GTK_SIDEBAR_ROW (target_row),
+ g_object_get (target_row,
"place-type", &target_place_type,
"section-type", &target_section_type,
"order-index", &target_order_index,
sidebar->drop_occured = FALSE;
gtk_drag_finish (context, success, FALSE, time);
stop_drop_feedback (sidebar);
+ g_free (target_uri);
}
static void
break;
}
}
+
+ if (drive)
+ g_object_unref (drive);
+ if (volume)
+ g_object_unref (volume);
+ if (mount)
+ g_object_unref (mount);
}
static void
open_volume (sidebar, volume, open_flags);
else if (drive != NULL)
open_drive (sidebar, drive, open_flags);
+
+ g_object_unref (sidebar);
+ if (drive)
+ g_object_unref (drive);
+ if (volume)
+ g_object_unref (volume);
+ g_free (uri);
}
/* Callback used for the "Open" menu item in the context menu */
GFile *location;
GtkPlacesSidebar *sidebar;
- g_object_get (row, "sidebar", &sidebar, "uri", &uri, "label", &name, NULL);
-
- if (uri == NULL)
- return;
+ g_object_get (row,
+ "sidebar", &sidebar,
+ "uri", &uri,
+ "label", &name,
+ NULL);
- location = g_file_new_for_uri (uri);
- if (_gtk_bookmarks_manager_insert_bookmark (sidebar->bookmarks_manager, location, -1, NULL))
- _gtk_bookmarks_manager_set_bookmark_label (sidebar->bookmarks_manager, location, name, NULL);
+ if (uri != NULL)
+ {
+ location = g_file_new_for_uri (uri);
+ if (_gtk_bookmarks_manager_insert_bookmark (sidebar->bookmarks_manager, location, -1, NULL))
+ _gtk_bookmarks_manager_set_bookmark_label (sidebar->bookmarks_manager, location, name, NULL);
+ g_object_unref (location);
+ }
- g_object_unref (location);
+ g_object_unref (sidebar);
+ g_free (uri);
+ g_free (name);
}
static void
l = rows;
while (l != NULL && !found)
{
- g_object_get (GTK_SIDEBAR_ROW (l->data),
+ g_object_get (l->data,
"place-type", &type,
"uri", &uri,
- "label", &name, NULL);
+ "label", &name,
+ NULL);
+
if ((type == PLACES_XDG_DIR || type == PLACES_BOOKMARK) &&
strcmp (uri, sidebar->rename_uri) != 0 &&
strcmp (new_name, name) == 0)
found = TRUE;
+ g_free (uri);
+ g_free (name);
+
l = l->next;
}
gchar *uri;
GtkPlacesSidebar *sidebar;
- g_object_get (row, "sidebar", &sidebar, "label", &name, "uri", &uri, NULL);
+ g_object_get (row,
+ "sidebar", &sidebar,
+ "label", &name,
+ "uri", &uri,
+ NULL);
create_rename_popover (sidebar);
gtk_widget_show (sidebar->rename_popover);
gtk_widget_grab_focus (sidebar->rename_entry);
+
+ g_free (name);
+ g_free (uri);
+ g_object_unref (sidebar);
}
static void
rename_bookmark (GtkSidebarRow *row)
{
GtkPlacesSidebarPlaceType type;
- GtkPlacesSidebar *sidebar;
- g_object_get (row, "sidebar", &sidebar, "place-type", &type, NULL);
+ g_object_get (row, "place-type", &type, NULL);
if (type != PLACES_BOOKMARK && type != PLACES_XDG_DIR)
return;
GFile *file;
GtkPlacesSidebar *sidebar;
- g_object_get (row, "sidebar", &sidebar, "place-type", &type, "uri", &uri, NULL);
+ g_object_get (row,
+ "sidebar", &sidebar,
+ "place-type", &type,
+ "uri", &uri,
+ NULL);
if (type != PLACES_BOOKMARK)
- return;
-
- file = g_file_new_for_uri (uri);
- _gtk_bookmarks_manager_remove_bookmark (sidebar->bookmarks_manager, file, NULL);
+ {
+ file = g_file_new_for_uri (uri);
+ _gtk_bookmarks_manager_remove_bookmark (sidebar->bookmarks_manager, file, NULL);
+ g_object_unref (file);
+ }
- g_object_unref (file);
g_free (uri);
+ g_object_unref (sidebar);
}
static void
GVolume *volume;
GtkPlacesSidebar *sidebar;
- g_object_get (row, "sidebar", &sidebar, "volume", &volume, NULL);
+ g_object_get (row,
+ "volume", &volume,
+ "sidebar", &sidebar,
+ NULL);
+
if (volume != NULL)
mount_volume (sidebar, volume);
+
+ g_object_unref (volume);
+ g_object_unref (sidebar);
}
/* Callback used from g_mount_unmount_with_operation() */
GtkPlacesSidebar *sidebar;
GMount *mount;
- g_object_get (row, "sidebar", &sidebar, "mount", &mount, NULL);
+ g_object_get (row,
+ "sidebar", &sidebar,
+ "mount", &mount,
+ NULL);
+
do_unmount (mount, sidebar);
+
+ g_object_unref (sidebar);
+ if (mount)
+ g_object_unref (mount);
}
static void
NULL);
do_eject (mount, volume, drive, sidebar);
+
+ g_object_unref (sidebar);
+ if (mount)
+ g_object_unref (mount);
+ if (volume)
+ g_object_unref (volume);
+ if (drive)
+ g_object_unref (drive);
}
static gboolean
ret = TRUE;
}
+ g_object_unref (sidebar);
+ if (mount)
+ g_object_unref (mount);
+ if (volume)
+ g_object_unref (volume);
+ if (drive)
+ g_object_unref (drive);
+
return ret;
}
GtkSidebarRow *row)
{
GtkPlacesSidebar *sidebar;
- GDrive *drive;
+ GDrive *drive;
- g_object_get (row, "sidebar", &sidebar, "drive", &drive, NULL);
+ g_object_get (row,
+ "sidebar", &sidebar,
+ "drive", &drive,
+ NULL);
if (drive != NULL)
- g_drive_poll_for_media (drive, NULL, drive_poll_for_media_cb, g_object_ref (sidebar));
+ {
+ g_drive_poll_for_media (drive, NULL, drive_poll_for_media_cb, g_object_ref (sidebar));
+ g_object_unref (drive);
+ }
+
+ g_object_unref (sidebar);
}
static void
GtkPlacesSidebar *sidebar;
GDrive *drive;
- g_object_get (row, "sidebar", &sidebar, "drive", &drive, NULL);
+ g_object_get (row,
+ "sidebar", &sidebar,
+ "drive", &drive,
+ NULL);
if (drive != NULL)
{
g_drive_start (drive, G_DRIVE_START_NONE, mount_op, NULL, drive_start_cb, g_object_ref (sidebar));
g_object_unref (mount_op);
+ g_object_unref (drive);
}
+
+ g_object_unref (sidebar);
}
static void
GtkPlacesSidebar *sidebar;
GDrive *drive;
- g_object_get (row, "sidebar", &sidebar, "drive", &drive, NULL);
+ g_object_get (row,
+ "sidebar", &sidebar,
+ "drive", &drive,
+ NULL);
if (drive != NULL)
{
g_object_ref (sidebar));
g_object_unref (mount_op);
+ g_object_unref (drive);
}
+
+ g_object_unref (sidebar);
}
static gboolean
{
guint modifiers;
GtkListBoxRow *row;
- gchar *label;
if (event)
{
row = gtk_list_box_get_selected_row (GTK_LIST_BOX (sidebar->list_box));
if (row)
{
- g_object_get (row, "label", &label, NULL);
modifiers = gtk_accelerator_get_default_mod_mask ();
if (event->keyval == GDK_KEY_Return ||
PopupMenuData menu_data;
GtkWidget *item;
GFile *file;
- const gchar *uri;
+ gchar *uri;
GVolume *volume;
GtkPlacesSidebar *sidebar;
- g_object_get (row, "sidebar", &sidebar, "uri", &uri, "volume", &volume, NULL);
+ g_object_get (row,
+ "sidebar", &sidebar,
+ "uri", &uri,
+ "volume", &volume,
+ NULL);
sidebar->popup_menu = gtk_menu_new ();
gtk_style_context_add_class (gtk_widget_get_style_context (sidebar->popup_menu),
if (file)
g_object_unref (file);
+
+ g_free (uri);
+ if (volume)
+ g_object_unref (volume);
+ g_object_unref (sidebar);
}
static void
NULL,
button,
event ? event->time : gtk_get_current_event_time ());
+
+ g_object_unref (sidebar);
}
static void
/* Avoid to open a location if the user is dragging. Changing the location
* while dragging usually makes clients changing the view of the files, which
- * is confusing while the user has the attention on the drag */
+ * is confusing while the user has the attention on the drag
+ */
if (GTK_PLACES_SIDEBAR (user_data)->dragging_over)
return;
GtkPlacesSidebar *sidebar;
GtkPlacesSidebarSectionType section_type;
- g_object_get (GTK_SIDEBAR_ROW (row), "sidebar", &sidebar, "section_type", §ion_type, NULL);
+ g_object_get (GTK_SIDEBAR_ROW (row),
+ "sidebar", &sidebar,
+ "section_type", §ion_type,
+ NULL);
if (section_type != SECTION_BOOKMARKS)
return FALSE;
sidebar->drag_root_x = event->x_root;
sidebar->drag_root_y = event->y_root;
+ g_object_unref (sidebar);
+
return FALSE;
}
GtkSidebarRow *row)
{
gboolean ret = FALSE;
- gchar *label;
+ GtkPlacesSidebarPlaceType row_type;
if (event && row)
{
- g_object_get (GTK_SIDEBAR_ROW (row), "label", &label, NULL);
- if (event->button == 1)
- return FALSE;
+ g_object_get (row, "place-type", &row_type, NULL);
- if (event->button == 2)
+ if (event->button == 1)
+ ret = FALSE;
+ else if (event->button == 2)
{
GtkPlacesOpenFlags open_flags = GTK_PLACES_OPEN_NORMAL;
}
else if (event->button == 3)
{
- GtkPlacesSidebarPlaceType row_type;
-
- g_object_get (row, "place-type", &row_type, NULL);
-
if (row_type != PLACES_CONNECT_TO_SERVER)
bookmarks_popup_menu (GTK_SIDEBAR_ROW (row), event);
}
{
GtkPlacesSidebarSectionType section_type_1, section_type_2;
GtkPlacesSidebarPlaceType place_type_1, place_type_2;
- const gchar *label_1, *label_2;
+ gchar *label_1, *label_2;
gint index_1, index_2;
gint retval = 0;
- g_object_get (GTK_SIDEBAR_ROW (row1),
+ g_object_get (row1,
"label", &label_1,
"place-type", &place_type_1,
"section-type", §ion_type_1,
"order-index", &index_1,
NULL);
- g_object_get (GTK_SIDEBAR_ROW (row2),
+ g_object_get (row2,
"label", &label_2,
"place-type", &place_type_2,
"section-type", §ion_type_2,
}
}
+ g_free (label_1);
+ g_free (label_2);
+
return retval;
}
GList *child;
gchar *row_uri;
gchar *uri;
+ gboolean found = FALSE;
g_return_if_fail (GTK_IS_PLACES_SIDEBAR (sidebar));
uri = g_file_get_uri (location);
children = gtk_container_get_children (GTK_CONTAINER (sidebar->list_box));
- for (child = children; child != NULL; child = child->next)
+ for (child = children; child != NULL && !found; child = child->next)
{
- g_object_get (GTK_SIDEBAR_ROW (child->data), "uri", &row_uri, NULL);
+ g_object_get (child->data, "uri", &row_uri, NULL);
if (row_uri != NULL && g_strcmp0 (row_uri, uri) == 0)
{
gtk_list_box_select_row (GTK_LIST_BOX (sidebar->list_box),
GTK_LIST_BOX_ROW (child->data));
- break;
+ found = TRUE;
}
+
+ g_free (row_uri);
}
g_free (uri);
{
gchar *uri;
- g_object_get (GTK_SIDEBAR_ROW (selected), "uri", &uri, NULL);
+ g_object_get (selected, "uri", &uri, NULL);
file = g_file_new_for_uri (uri);
+ g_free (uri);
}
return file;
*/
void
gtk_places_sidebar_set_show_enter_location (GtkPlacesSidebar *sidebar,
- gboolean show_enter_location)
+ gboolean show_enter_location)
{
g_return_if_fail (GTK_IS_PLACES_SIDEBAR (sidebar));
link = find_shortcut_link (sidebar, location);
if (!link)
- return;
+ return;
shortcut = G_FILE (link->data);
g_object_unref (shortcut);
* Returns: (element-type GFile) (transfer full):
* A #GSList of #GFile of the locations that have been added as
* application-specific shortcuts with gtk_places_sidebar_add_shortcut().
- * To free this list, you can use
+ * To free this list, you can use
* |[<!-- language="C" -->
* g_slist_free_full (list, (GDestroyNotify) g_object_unref);
* ]|
GtkPlacesSidebarPlaceType place_type;
gchar *uri;
- g_object_get (GTK_SIDEBAR_ROW (l->data),
+ g_object_get (l->data,
"place-type", &place_type,
"uri", &uri,
NULL);
if (k == n)
{
file = g_file_new_for_uri (uri);
+ g_free (uri);
break;
}
k++;
}
+ g_free (uri);
l = l->next;
}