* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
*/
/**
gobject_class->finalize = gtk_recent_manager_finalize;
/**
- * GtkRecentManager:filename
+ * GtkRecentManager:filename:
*
* The full path to the file to be used to store and read the recently
* used resources list
(G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE)));
/**
- * GtkRecentManager:size
+ * GtkRecentManager:size:
*
* The size of the recently used resources list.
*
G_PARAM_READABLE));
/**
- * GtkRecentManager::changed
+ * GtkRecentManager::changed:
* @recent_manager: the recent manager
*
* Emitted when the current recently used resources manager changes its
static gchar *
get_default_filename (void)
{
+ if (g_mkdir_with_parents (g_get_user_data_dir (), 0755) == -1)
+ {
+ int saved_errno = errno;
+
+ g_critical ("Unable to create user data directory '%s' for storing "
+ "the recently used files list: %s",
+ g_get_user_data_dir (),
+ g_strerror (saved_errno));
+
+ return NULL;
+ }
+
return g_build_filename (g_get_user_data_dir (),
GTK_RECENTLY_USED_FILE,
NULL);
GtkRecentManager *manager = user_data;
GtkRecentData recent_data;
GFileInfo *file_info;
- gchar *uri;
- GError *error;
+ gchar *uri, *basename;
uri = g_file_get_uri (file);
- error = NULL;
- file_info = g_file_query_info_finish (file, res, &error);
- if (error)
- {
- g_warning ("Unable to retrieve the file info for `%s': %s",
- uri,
- error->message);
- g_error_free (error);
- goto out;
- }
+ file_info = g_file_query_info_finish (file, res, NULL); /* NULL-GError */
recent_data.display_name = NULL;
recent_data.description = NULL;
g_object_unref (file_info);
}
else
- recent_data.mime_type = g_strdup (GTK_RECENT_DEFAULT_MIME);
+ {
+ basename = g_file_get_basename (file);
+ recent_data.mime_type = g_content_type_guess (basename, NULL, 0, NULL);
+ g_free (basename);
+ }
recent_data.app_name = g_strdup (g_get_application_name ());
recent_data.app_exec = g_strjoin (" ", g_get_prgname (), "%u", NULL);
g_free (recent_data.app_name);
g_free (recent_data.app_exec);
-out:
g_object_unref (manager);
g_free (uri);
}
*
* Since: 2.10
*/
-G_CONST_RETURN gchar *
+const gchar *
gtk_recent_info_get_uri (GtkRecentInfo *info)
{
g_return_val_if_fail (info != NULL, NULL);
*
* Since: 2.10
*/
-G_CONST_RETURN gchar *
+const gchar *
gtk_recent_info_get_display_name (GtkRecentInfo *info)
{
g_return_val_if_fail (info != NULL, NULL);
*
* Since: 2.10
**/
-G_CONST_RETURN gchar *
+const gchar *
gtk_recent_info_get_description (GtkRecentInfo *info)
{
g_return_val_if_fail (info != NULL, NULL);
*
* Since: 2.10
*/
-G_CONST_RETURN gchar *
+const gchar *
gtk_recent_info_get_mime_type (GtkRecentInfo *info)
{
g_return_val_if_fail (info != NULL, NULL);
gtk_recent_info_exists (GtkRecentInfo *info)
{
gchar *filename;
- struct stat stat_buf;
+ GStatBuf stat_buf;
gboolean retval = FALSE;
g_return_val_if_fail (info != NULL, FALSE);
filename = g_filename_from_uri (info->uri, NULL, NULL);
if (filename)
{
- if (stat (filename, &stat_buf) == 0)
+ if (g_stat (filename, &stat_buf) == 0)
retval = TRUE;
g_free (filename);