Commit Graph

68 Commits

Author SHA1 Message Date
Federico Mena Quintero
400e53c568 bgo#662814 - Don't print a g_warning() when GtkRecentManager can't find a file
Also, *do* add the file to the recently-used list, even if the file does not
exist yet.  This is used from the Save dialog, so even shitty apps which don't
add the file to GtkRecentManager, will get the file added from the Save dialog.

Signed-off-by: Federico Mena Quintero <federico@gnome.org>
2011-12-13 11:07:42 -06:00
Javier Jardón
1516be6f69 gtk: Use 'const' instead G_RETURN_CONST 2011-06-15 19:03:44 +01:00
Alexander Larsson
c9c23b0728 Ensure we always grab the gdk lock in async callbacks
Async callbacks are delivered in idles, so we need to make sure
we get the gdk lock before calling any gdk/gtk stuff. This was
missing in a few places.
2011-03-28 14:00:31 +02:00
Matthias Clasen
4ddf2c6512 Use existing mime type for GTK_FILE stock icon
document-x-generic is not actually a mimetype. Using text-x-generic
instead lets us work out-of-the-box in a11y themes.
2011-03-14 10:21:54 -04:00
Matthias Clasen
e158b9b13a Make GtkRecentManager use standard icon names for themed icons 2011-02-24 14:16:24 -05:00
Martin Pitt
e48f5b4073 Backport a lot of GI transfer annotations
This dramatically improves using GTK2 with g-i.

Taken from master commit e0aa12eb0a without the non-documentation changes.
2011-01-10 14:43:00 -06:00
Emmanuele Bassi
7825f01b2f recent-manager: Add migration to the new storage file location
The recently-used.xbel file location has been moved from $HOME to
$XDG_DATA_DIR, to be compliant with the desktop bookmark specification
and with other desktop environments following it.

The effective change was done in gtk+-3, but we need a migration path
for gtk+-2.

The possible cases are:

  • the old file is not present, so we just switch to the new one;
  • the old file is present, but the new one is not; in this case
    we rename the old file to the new one.
  • both the old file and the new file are present; in this case,
    we try a simple merge of the contents and remove the old file.

The merge is the (obviously) more expensive option, but it should only
happen once.

https://bugzilla.gnome.org/show_bug.cgi?id=633242
2010-10-31 14:30:59 +00:00
Emmanuele Bassi
81321b7d55 docs: Fix GtkRecentManager:limit annotation
Fix a typo in the name that prevented cross-linking, and remove the
redundant deprecation text (which is added by gtk-doc by default).
2010-07-15 09:55:49 +01:00
Javier Jardón
838dfd50ac Deprecate GtkRecenManager::limit property
The :limit property of GtkRecentManager does not serve any useful
purpose: the length of the list should be managed by the view
(implementing GtkRecentChooser), and not by the model (the recent
manager).

https://bugzilla.gnome.org/show_bug.cgi?id=624333
2010-07-15 02:50:49 +02:00
Johan Dahlin
fe85272112 [annotations] Add allow-none
This commit was created using a script that searched for all docstrings
containing a parameter and the string 'or %NULL'.
Gdk backends and demos excluded as they are not part of a public API

https://bugzilla.gnome.org/show_bug.cgi?id=610474
2010-02-19 17:57:51 -02:00
Colin Walters
6529c07614 [introspection] Merge in Gtk-custom.c annotations
The Gtk-custom.c file in gir-repository contained a number of
introspection annotations.  Merge those into the GTK source files.

Some documentation was moved from the tmpl/ files to accomodate
the addition of annotations.
2009-12-16 17:22:01 -02:00
Matthias Clasen
362127c33c Fix the docs for gtk_recent_info_get_application_info()
The documentation for the function says that the app_exec string
should be freed, but we return a pointer to the internal string
without duplicating it. Since the app_exec string is valid as long
as the GtkRecentInfo is valid the documentation should be fixed
and the out argument should be constified. Fixes #584832.
2009-06-15 18:25:04 -04:00
Emmanuele Bassi
66459b2502 Bug 545031 – list of recently used files is created world-readable
2008-08-07  Emmanuele Bassi  <ebassi@gnome.org>

	Bug 545031 – list of recently used files is created world-readable

	* gtk/gtkrecentmanager.c:
	(gtk_recent_manager_real_changed): Set the recently-used.xbel
	file to 0600. (Guido Berhoerster)

svn path=/trunk/; revision=21028
2008-08-07 00:54:01 +00:00
Emmanuele Bassi
1db0192042 Use GSlice to allocate the application data for recently used resources;
2008-07-21  Emmanuele Bassi  <ebassi@gnome.org>

	* gtk/gtkrecentmanager.c:
	(recent_app_info_new), (recent_app_info_free): Use GSlice to
	allocate the application data for recently used resources;
	do not call time() to initialize the timestamp, as it will
	be overwritten anyway later. (#535223, Michael Meeks)

svn path=/trunk/; revision=20884
2008-07-21 13:37:15 +00:00
Cody Russell
57223c9a05 Revert name change
svn path=/trunk/; revision=20724
2008-07-01 22:57:50 +00:00
Cody Russell
fce9c8b7d4 Practically everything changed.
2008-06-30  Cody Russell  <bratsche@gnome.org>

        * Practically everything changed.

        Change	all references	of GIMP	Toolkit	(and variations	of it)
        to GTK+	Toolkit, showing no mercy at all to our	beloved
	ancestry. (#540529)


svn path=/trunk/; revision=20709
2008-06-30 23:01:56 +00:00
Carlos Garnacho
b3bb8c47b5 Fix two potential critical warnings. Bug #539470.
2008-06-27  Carlos Garnacho  <carlos@imendio.com>

        * gtk/gtkrecentmanager.c (get_icon_for_mime_type): Fix two potential
        critical warnings. Bug #539470.

svn path=/trunk/; revision=20696
2008-06-27 15:33:42 +00:00
Matthias Clasen
e1c47e2ee0 Use GIO for this.
* gtk/gtkrecentmanager.c (get_icon_for_mime_type): Use GIO
        for this.

svn path=/trunk/; revision=20472
2008-06-19 19:04:22 +00:00
Emmanuele Bassi
21284ce95f Fix dumb typo in the previous commit.
2008-06-17  Emmanuele Bassi  <ebassi@gnome.org>

	* gtk/gtkrecentmanager.c:
	(gtk_recent_manager_remove_item): Fix dumb typo in the previous
	commit.

svn path=/trunk/; revision=20425
2008-06-17 13:46:48 +00:00
Emmanuele Bassi
8bab0d7d03 Increase the consistency of the errors returned by GtkRecentManager.
2008-06-17  Emmanuele Bassi  <ebassi@gnome.org>

	* gtk/gtkrecentmanager.c:
	(gtk_recent_manager_remove_item),
	(gtk_recent_manager_move_item): Increase the consistency of the
	errors returned by GtkRecentManager. (Paolo Borelli)

svn path=/trunk/; revision=20424
2008-06-17 13:42:53 +00:00
Emmanuele Bassi
88c469420d Consistently use the same error when removing a URI from an empty
2008-06-17  Emmanuele Bassi  <ebassi@gnome.org>

	* gtk/gtkrecentmanager.c:
	(gtk_recent_manager_remove_item): Consistently use the same
	error when removing a URI from an empty GtkRecentManager.

svn path=/trunk/; revision=20422
2008-06-17 13:15:45 +00:00
Matthias Clasen
e0ca75c120 Replace uses of xdgmime with g_content_type.
2008-06-08  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtkrecentmanager.c:
        * gtk/gtkrecentfilter.c:
        * gtk/gtkfilefilter.c: Replace uses of xdgmime with
        g_content_type.


svn path=/trunk/; revision=20332
2008-06-08 05:50:46 +00:00
Emmanuele Bassi
c515ec92e8 Bug 535830 – wrong content type adding an item
2008-05-31  Emmanuele Bassi  <ebassi@gnome.org>

	Bug 535830 – wrong content type adding an item

	* gtk/gtkrecentmanager.c:
	(gtk_recent_manager_add_item_query_info): Use the correct API
	for retrieving the fast MIME type of a URI. (Carlos Garcia
	Campos)

svn path=/trunk/; revision=20262
2008-05-31 18:52:50 +00:00
Emmanuele Bassi
6d683653db Keep the default storage file in $HOME, as we don't have a migration code
2008-04-18  Emmanuele Bassi  <ebassi@gnome.org>

	* gtk/gtkrecentmanager.c:
	(gtk_recent_manager_set_filename): Keep the default storage
	file in $HOME, as we don't have a migration code in place yet.

svn path=/trunk/; revision=20020
2008-04-18 13:25:49 +00:00
Michael Natterer
60b839bda8 g_strfreev() the uris returned by g_bookmark_file_get_uris().
2008-04-18  Michael Natterer  <mitch@imendio.com>

	* gtk/gtkrecentmanager.c (gtk_recent_manager_clamp_to_age):
	g_strfreev() the uris returned by g_bookmark_file_get_uris().


svn path=/trunk/; revision=20019
2008-04-18 13:05:56 +00:00
Emmanuele Bassi
7b93b76efa Fix last commit, and complete the gtk-recent-files-max-age semantics: if
2008-04-15  Emmanuele Bassi  <ebassi@gnome.org>

	* gtk/gtkrecentmanager.c:
	(gtk_recent_manager_real_changed): Fix last commit, and
	complete the gtk-recent-files-max-age semantics: if the
	property is set to 0 then purge the list.

svn path=/trunk/; revision=20007
2008-04-15 22:46:15 +00:00
Emmanuele Bassi
beb54a9b39 Bug 488507 – boundless growth of .recently-used.xbel file slows down
2008-04-15  Emmanuele Bassi  <ebassi@gnome.org>

	Bug 488507 – boundless growth of .recently-used.xbel file
	slows down applications

	* gtk/gtkrecentmanager.c:
	(gtk_recent_manager_init),
	(gtk_recent_manager_real_changed),
	(gtk_recent_manager_set_filename),
	(gtk_recent_manager_clamp_to_age): Clamp the recently
	used resources list by the age of its items, using
	the newly added GtkSettings property.

	* gtk/gtksettings.c (gtk_settings_class_init): Add the
	gtk-recent-files-max-age property, controlling the
	maximum age of the items in the recently used resources
	list.

svn path=/trunk/; revision=20006
2008-04-15 22:37:32 +00:00
Emmanuele Bassi
c31e252030 Emit the ::changed signal at the end of the asynchronous MIME type query.
2008-04-15  Emmanuele Bassi  <ebassi@gnome.org>

	* gtk/gtkrecentmanager.c:
	(gtk_recent_manager_add_item_query_info),
	(gtk_recent_manager_add_item): Emit the ::changed signal
	at the end of the asynchronous MIME type query.

svn path=/trunk/; revision=20005
2008-04-15 22:31:01 +00:00
Emmanuele Bassi
afdb3f5a39 Bug 487375 – gtkrecent apps poll ~/.recently-used.xbel every 5 seconds
2008-04-15  Emmanuele Bassi  <ebassi@gnome.org>

	Bug 487375 – gtkrecent apps poll ~/.recently-used.xbel
	every 5 seconds

	* gtk/gtkrecentmanager.c: Use GFileMonitor to check for
	changes in the recently used resources storage file, and
	drop the timeout-based poll.

	* ChangeLog: Fix attribution of the patch of the previous
	commit.

svn path=/trunk/; revision=20004
2008-04-15 22:22:44 +00:00
Emmanuele Bassi
9b2656f793 Bug 506062 – gtk_recent_manager_add_item does not detect mime type on
2008-04-15  Emmanuele Bassi  <ebassi@gnome.org>

	Bug 506062 – gtk_recent_manager_add_item does not detect mime
	type on Windows

	* configure.in: Depend on gio-2.0

	* gtk/gtkrecentmanager.c:
	(gtk_recent_manager_add_item_query_info_cb),
	(gtk_recent_manager_add_item): Use GIO to (asynchronously) query
	the MIME type of the passed URI.

svn path=/trunk/; revision=20003
2008-04-15 22:00:17 +00:00
Emmanuele Bassi
3ca1e0cd2d Document that you need to unref the returned GdkPixbuf. (#484132,
2007-10-10  Emmanuele Bassi  <ebassi@gnome.org>

	* gtk/gtkrecentmanager.c (gtk_recent_info_get_icon): Document
	that you need to unref the returned GdkPixbuf. (#484132,
	Christian Persch)

	(build_recent_info): Use g_slist_prepend() when building
	the applications list.

svn path=/trunk/; revision=18904
2007-10-10 09:31:36 +00:00
Emmanuele Bassi
ba56e7dd57 Remove the stat() time barrier, as it seems to cause bug #463907 (thanks
2007-09-03  Emmanuele Bassi  <ebassi@gnome.org>

	* gtk/gtkrecentmanager.c
	(gtk_recent_manager_poll_timeout): Remove the stat() time barrier,
	as it seems to cause bug #463907 (thanks to Sebastien Bacher).

svn path=/trunk/; revision=18713
2007-09-03 09:49:59 +00:00
Matthias Clasen
13277b42e2 Apply a patch by Emmanuele Bassi to limit the number of shown recent
2007-07-20  Matthias Clasen  <mclasen@redhat.com>

        Apply a patch by Emmanuele Bassi to limit the number
        of shown recent files.  (#439715)

        * gtk/gtksettings.c: Add a setting for the number
        of recent files to display by default.

        * gtk/gtkrecentchooserdefault.c:
        * gtk/gtkfilechooserdefault.c: Respect the limit.

        * gtk/gtkrecentmanager.c: Remove the poll timeout in
        dispose, and do not stat more often than every 5 seconds.

        * gtk/gtkrecentchooserutils.c:
        * gtk/gtkrecentchoosermenu.c: Cleanups

        * tests/testrecentchoosermenu.c: Test limits.


svn path=/trunk/; revision=18510
2007-07-20 10:39:03 +00:00
Matthias Clasen
a6f92ce4b0 Avoid gratitious use of g_strdup_printf().
2007-07-13  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtkrecentmanager.c (get_uri_shortname_for_display): Avoid
        gratitious use of g_strdup_printf().

        * gtk/gtkrecentchooserdefault.c:
        * gtk/gtkrecentchoosermenu.c: Mark some strings for
        translation.  (#439480, Murray Cumming)



svn path=/trunk/; revision=18465
2007-07-13 16:34:05 +00:00
Matthias Clasen
eac947deea Fix doc formatting
svn path=/trunk/; revision=18430
2007-07-10 05:40:05 +00:00
Emmanuele Bassi
612d8729a2 Do not cache the icon pixbufs but rely on the GtkIconTheme not to hit the
2007-06-29  Emmanuele Bassi  <ebassi@gnome.org>

	* gtk/gtkrecentmanager.c (get_icon_for_mime_type): Do not
	cache the icon pixbufs but rely on the GtkIconTheme not to
	hit the disk cache too much (should tentatively fix #426987).

svn path=/trunk/; revision=18288
2007-06-29 14:51:13 +00:00
Emmanuele Bassi
970988756e building a GtkRecentInfo can never fail.
2007-06-25  Emmanuele Bassi  <ebassi@gnome.org>

	* gtk/gtkrecentmanager.c:
	(build_recent_info): building a GtkRecentInfo can never fail.

	(gtk_recent_manager_get_items): Clamp the list while building
	it so we don't need to traverse it more than once. (#446532,
	Philip Withnall)

svn path=/trunk/; revision=18228
2007-06-25 16:15:21 +00:00
Emmanuele Bassi
ca0ad88892 Use g_timeout_add_seconds_full() for the timed poll of the storage file,
2007-06-19  Emmanuele Bassi  <ebassi@gnome.org>

	* gtk/gtkrecentmanager.c: Use g_timeout_add_seconds_full() for
	the timed poll of the storage file, since we are using multiple
	seconds intervals and we don't actually care about millisecond
	precision.

	(threads_dispatch), (threads_free), (gtk_recent_manager_init),
	(gtk_recent_manager_set_filename): Roll our own version of
	gdk_threads_add_timeout() using g_timeout_add_seconds_full()
	while holding the GDK main lock.

svn path=/trunk/; revision=18185
2007-06-19 10:59:37 +00:00
Emmanuele Bassi
232e79a6d7 Use a static variable to hold the singleton and remove the code that binds
2007-06-19  Emmanuele Bassi  <ebassi@gnome.org>

	* gtk/gtkrecentmanager.c: Use a static variable to hold the
	singleton and remove the code that binds a recent manager to
	a GdkScreen.

	(gtk_recent_manager_set_screen): Make it a NOOP.
	(gtk_recent_manager_get_for_screen): Proxy for
	gtk_recent_manager_get_default().

	* gtk/gtk.symbols:
	* gtk/gtkrecentmanager.h: Deprecate gtk_recent_manager_set_screen()
	and gtk_recent_manager_get_for_screen().

	* gtk/gtkmain.c: Force a synchronisation of the GtkRecentManager
	singleton (if any) when reaching main loop depth of 0.

	* gtk/gtkrecentchooserdefault.c:
	(gtk_recent_chooser_default_dispose): Disconnect the changed
	signal only if we have a manager and we are connected to it.

	(set_recent_manager): Ditto.

	* README.in: Document the deprecations.

svn path=/trunk/; revision=18184
2007-06-19 10:29:55 +00:00
Emmanuele Bassi
130541af8d Return GTK_STOCK_DIRECTORY for entries with MIME type
2007-05-09  Emmanuele Bassi  <ebassi@gnome.org>

	* gtk/gtkrecentmanager.c:
	(gtk_recent_info_get_icon): Return GTK_STOCK_DIRECTORY for entries
	with MIME type "x-directory/normal", instead of GTK_STOCK_FILE.

svn path=/trunk/; revision=17804
2007-05-09 10:59:15 +00:00
Matthias Clasen
2824f4597d Internalize some strings, pointed out by Damon Chaplin.
2007-04-27  Matthias Clasen  <mclasen@redhat.com>

        * gtkassistant.c:
        * gtkiconfactory.c:
        * gtkiconview.c:
        * gtkpapersize.c:
        * gtkrecentmanager.c:
        * gtktextiter.c: Internalize some strings, pointed out
        by Damon Chaplin.



svn path=/trunk/; revision=17661
2007-04-27 23:10:38 +00:00
Emmanuele Bassi
b235fff0bf Fix a leak by not increasing the refcount of the GtkRecentInfo object when
2007-04-18  Emmanuele Bassi  <ebassi@gnome.org>

	* gtk/gtkrecentmanager.c (gtk_recent_manager_lookup_item): Fix
	a leak by not increasing the refcount of the GtkRecentInfo
	object when returning it (thanks to Matthias Clasen).

svn path=/trunk/; revision=17606
2007-04-18 14:37:49 +00:00
Emmanuele Bassi
51aba36991 Remove unused GError; do not allocate GtkRecentData and use a variable on
2007-03-15  Emmanuele Bassi  <ebassi@gnome.org>

	* gtk/gtkrecentmanager.c (gtk_recent_manager_add_item): Remove
	unused GError; do not allocate GtkRecentData and use a variable
	on the stack. (#418673, Morten Welinder)

svn path=/trunk/; revision=17525
2007-03-15 19:58:00 +00:00
Emmanuele Bassi
ef9ffb8751 Fix documentation errors. (Morten Welinder)
2007-03-15  Emmanuele Bassi  <ebassi@gnome.org>

	* gtk/gtkrecentmanager.c: Fix documentation errors. (Morten
	Welinder)

svn path=/trunk/; revision=17519
2007-03-15 17:13:28 +00:00
Matthias Clasen
82ce59cd0f Remove unnecessary NULL checks before g_free(). (#369666, Morten Welinder,
2007-03-09  Matthias Clasen <mclasen@redhat.com>

        * Everywhere: Remove unnecessary NULL checks before
        g_free().  (#369666, Morten Welinder, Djihed Afifi)

        * configure.in: Check for ftw.h



svn path=/trunk/; revision=17444
2007-03-09 21:57:37 +00:00
Bastien Nocera
5a64bf97e1 Fix typo (s/expansive/expensive) (#389183)
2006-12-24  Bastien Nocera  <hadess@hadess.net>

	* gtk/gtkrecentmanager.c: Fix typo (s/expansive/expensive)
	(#389183)
2006-12-24 15:57:01 +00:00
Matthias Clasen
721c3bc101 Replace a lot of idle and timeout calls by the new gdk_threads api.
2006-12-22  Matthias Clasen  <mclasen@redhat.com>

        * *.c: Replace a lot of idle and timeout calls by
        the new gdk_threads api.
2006-12-22 19:10:43 +00:00
Emmanuele Bassi
bf68a296f8 g_filename_from_uri() might fail; catch the failure and fall back to the
2006-11-21  Emmanuele Bassi  <ebassi@gnome.org>

	* gtk/gtkrecentmanager.c:
	(get_uri_shortname_for_display): g_filename_from_uri() might
	fail; catch the failure and fall back to the non-local URI
	case. (#363437)
2006-11-22 09:12:49 +00:00
Emmanuele Bassi
af6b361d6b Return the URI of the GtkRecentInfo object (upgraded to UTF-8 if needed)
2006-11-16  Emmanuele Bassi  <ebassi@gnome.org>

	* gtk/gtkrecentmanager.c:
	(gtk_recent_info_get_uri_display): Return the URI
	of the GtkRecentInfo object (upgraded to UTF-8 if
	needed) in case of non-local file. (#351945)
2006-11-16 11:12:12 +00:00
Emmanuele Bassi
cbf6d898fb Provide a fast path returning NULL when the limit is set to 0.
2006-11-16  Emmanuele Bassi  <ebassi@gnome.org>

	* gtk/gtkrecentmanager.c: Provide a fast path returning
	NULL when the limit is set to 0.

	* gtk/gtkrecentchooserdefault.c:
	* gtk/gtkrecentchoosermenu.c: Add the same fast path
	inside the RecentChooser implementation; add a check
	in the list clamping code. (#373466 and duplicates)
2006-11-16 09:57:45 +00:00