Commit Graph

77 Commits

Author SHA1 Message Date
Matthias Clasen
d9fcc4c630 Silence new gcc warnings
gcc 4.6.0 has started to warn about set-but-unused variables.
So don't do that, then.
2011-01-23 21:51:38 -05:00
Pavel Holejsovsky
2f0d40335b [GI] Add missing (transfer) annotations 2011-01-20 13:57:18 +01:00
Emmanuele Bassi
ce5a29bc38 recent-manager: Coalesce multiple changes
Since the ::changed implementation of GtkRecentManager implies a
synchronous write operation, when we receive multiple requests to emit a
::changed signal we might end up blocking.

This change coalesces multiple ::changed emission requests using the
following sequence:

  • the first request will install a timeout in 250 ms, which will
    emit the ::changed signal

  • each further request while the timeout has not been emitted
    will increase a counter

      ‣ if the counter reaches 250 before the timeout has been
        emitted, then the RecentManager will remove the timeout
        source and force a signal emission and reset the counter

This sequence should guarantee that frequent ::changed emission requests
are coalesced, and also guarantee that we don't let them dangle for too
long.

https://bugzilla.gnome.org/show_bug.cgi?id=616997
2010-10-22 18:08:48 +01:00
Christian Persch
b0fe3e49bb Add gtk_recent_info_get_gicon()
https://bugzilla.gnome.org/show_bug.cgi?id=617174
2010-10-22 11:58:00 +01:00
Emmanuele Bassi
27b71e0143 recent-manager: Fix the documentation
The default RecentManager is not destroyed at the end of the process.

https://bugzilla.gnome.org/show_bug.cgi?id=602794
2010-10-22 11:54:53 +01:00
Emmanuele Bassi
03fc0dd5ca recent-manager: Add RecentInfo.create_app_info()
A simple wrapper that makes it possible to create a GAppInfo from a
GtkRecentInfo blob.
2010-10-22 11:54:53 +01:00
Emmanuele Bassi
06758f1ab5 recent-manager: Move the file under XDG_USER_DATA
Do not use $HOME/.recently-used.xbel any more. No migration path is
included: we're breaking API anyway.

https://bugzilla.gnome.org/show_bug.cgi?id=524304
2010-10-22 11:53:09 +01:00
Emmanuele Bassi
2cc059a0e7 Split off gtkprivate.h
The gtkprivate.h header contains GtkWidget-specific private symbols that
are not useful except in a handful of cases. Basically everything
includes gtkprivate.h for the GTK_PARAM_* macros.

https://bugzilla.gnome.org/show_bug.cgi?id=632539
2010-10-20 10:34:26 +01:00
Matthias Clasen
dbdc9c99e5 Make GtkRecentManager use standard icon names for themed icons 2010-10-13 10:18:03 -04:00
Matthias Clasen
e0aa12eb0a Tons of transfer annotations 2010-09-21 00:18:11 -04:00
Christian Persch
ffa07ee21e Use G_DEFINE_BOXED_TYPE
Bug #627214.
2010-08-18 15:34:47 +02:00
Javier Jardón
133f0744b9 docs: gitignore GtkRecentManager .sgml template
THis completes commit 8eeeb97de6
2010-07-15 15:43:48 +02:00
Emmanuele Bassi
8eeeb97de6 docs: Inline GtkRecentManager documentation 2010-07-15 09:10:55 +01:00
Javier Jardón
cfa241a891 Remove GtkRecenManager:limit deprecated property 2010-07-15 03:12:12 +02:00
Javier Jardón
678e738f8d 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:40:28 +02:00
Javier Jardón
f17a345998 gtkrecentmanager: unseal private pointer 2010-07-13 19:40:49 +02:00
Javier Jardón
0a07e9733b gtk/: fully remove gtkalias hacks
https://bugzilla.gnome.org/show_bug.cgi?id=623845
2010-07-10 02:51:26 +02:00
Christian Dywan
032b38ccfd Remove deprecated GtkRecentManager functions 2010-05-03 01:40:41 +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