diff options
author | Christian Persch <chpe@cvs.gnome.org> | 2005-02-27 06:01:48 +0800 |
---|---|---|
committer | Christian Persch <chpe@src.gnome.org> | 2005-02-27 06:01:48 +0800 |
commit | fbf4b15ed54be3abfe2c3c937c50b9c623804cb5 (patch) | |
tree | 27639ff5895028fd04bcc8c4ce800354b040fa73 /embed/ephy-embed-persist.c | |
parent | caba7f03132e463c48405eb602a8b77764c3ec75 (diff) | |
download | gsoc2013-epiphany-fbf4b15ed54be3abfe2c3c937c50b9c623804cb5.tar.gz gsoc2013-epiphany-fbf4b15ed54be3abfe2c3c937c50b9c623804cb5.tar.zst gsoc2013-epiphany-fbf4b15ed54be3abfe2c3c937c50b9c623804cb5.zip |
Depend on gnome-desktop for gnome-desktop-item, and up the gnome-vfs
2005-02-26 Christian Persch <chpe@cvs.gnome.org>
* configure.ac:
Depend on gnome-desktop for gnome-desktop-item,
and up the gnome-vfs dependency version.
* embed/ephy-embed-persist.c: (ephy_embed_persist_set_user_time),
(ephy_embed_persist_get_user_time),
(ephy_embed_persist_set_property),
(ephy_embed_persist_get_property), (ephy_embed_persist_init),
(ephy_embed_persist_class_init):
* embed/ephy-embed-persist.h:
Add user time property.
* embed/mozilla/ContentHandler.cpp:
* embed/mozilla/ContentHandler.h:
Forward user time to MozDownload via a string. Not perfect,
but better than nothing.
* embed/mozilla/EphyHeaderSniffer.cpp:
Set user time on filechooser.
* embed/mozilla/MozDownload.cpp:
Get user time from content handler, and use it when
launching the external handler app.
* lib/ephy-file-helpers.c: (ephy_file_check_mime),
(launch_desktop_item), (ephy_file_launch_desktop_file),
(ephy_file_launch_application), (ephy_file_launch_handler):
* lib/ephy-file-helpers.h:
Convenience functions to launch an app, or a desktop item,
with user time.
* lib/ephy-gui.c: (ephy_gui_confirm_overwrite_file),
(ephy_gui_window_update_user_time), (ephy_gui_window_present):
* lib/ephy-gui.h:
Make our own gtk_window_present, to correctly update user time.
Check if the path is writable in ephy_gui_confirm_overwrite_file().
* src/ephy-session.c: (ephy_session_autoresume):
After showing the recovery dialogue, don't use the old user time
to launch the windows; use the current event time instead.
* src/popup-commands.c: (background_download_completed),
(image_open_uri), (save_source_completed_cb),
(popup_cmd_open_image):
* src/window-commands.c: (window_cmd_file_save_as),
(save_source_completed_cb), (save_temp_source),
(window_cmd_view_page_source):
Launch handlers with user time.
Diffstat (limited to 'embed/ephy-embed-persist.c')
-rw-r--r-- | embed/ephy-embed-persist.c | 62 |
1 files changed, 61 insertions, 1 deletions
diff --git a/embed/ephy-embed-persist.c b/embed/ephy-embed-persist.c index 92d7a99c8..cd065d628 100644 --- a/embed/ephy-embed-persist.c +++ b/embed/ephy-embed-persist.c @@ -25,6 +25,8 @@ #include "mozilla-embed-persist.h" #include "ephy-debug.h" +#include <gtk/gtkmain.h> + enum { PROP_0, @@ -36,7 +38,8 @@ enum PROP_HANDLER, PROP_MAX_SIZE, PROP_PERSISTKEY, - PROP_SOURCE, + PROP_SOURCE, + PROP_USER_TIME }; #define EPHY_EMBED_PERSIST_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE ((object), EPHY_TYPE_EMBED_PERSIST, EphyEmbedPersistPrivate)) @@ -51,6 +54,7 @@ struct _EphyEmbedPersistPrivate long max_size; EphyEmbedPersistFlags flags; GtkWindow *fc_parent; + guint32 user_time; }; static void ephy_embed_persist_class_init (EphyEmbedPersistClass *klass); @@ -239,6 +243,26 @@ ephy_embed_persist_set_source (EphyEmbedPersist *persist, } /** + * ephy_embed_persist_set_user_time: + * @persist: an #EphyEmbedPersist + * @user_time: a timestamp, or 0 + * + * Sets the time stamp of the user action which created @persist. + * Defaults to gtk_get_current_event_time() when @persist is created. + **/ +void +ephy_embed_persist_set_user_time (EphyEmbedPersist *persist, + guint32 user_time) +{ + g_return_if_fail (EPHY_IS_EMBED_PERSIST (persist)); + + LOG ("ephy_embed_persist_set_user_time persist %p user-time %d", + persist, user_time); + + persist->priv->user_time = user_time; +} + +/** * ephy_embed_persist_get_dest: * @persist: an #EphyEmbedPersist * @@ -367,6 +391,24 @@ ephy_embed_persist_get_source (EphyEmbedPersist *persist) return persist->priv->source; } +/** + * ephy_embed_persist_get_user_time: + * @persist: an #EphyEmbedPersist + * + * Returns the timestamp of the user action which created @persist. + * If not set explicitly, defaults to gtk_get_current_event_time () + * at the time of creation of @persist. + * + * Return value: a timestamp, or 0 + **/ +guint32 +ephy_embed_persist_get_user_time (EphyEmbedPersist *persist) +{ + g_return_val_if_fail (EPHY_IS_EMBED_PERSIST (persist), 0); + + return persist->priv->user_time; +} + static void ephy_embed_persist_set_property (GObject *object, guint prop_id, @@ -401,6 +443,9 @@ ephy_embed_persist_set_property (GObject *object, case PROP_SOURCE: ephy_embed_persist_set_source (persist, g_value_get_string (value)); break; + case PROP_USER_TIME: + ephy_embed_persist_set_user_time (persist, g_value_get_uint (value)); + break; } } @@ -438,6 +483,9 @@ ephy_embed_persist_get_property (GObject *object, case PROP_SOURCE: g_value_set_string (value, ephy_embed_persist_get_source (persist)); break; + case PROP_USER_TIME: + g_value_set_uint (value, ephy_embed_persist_get_user_time (persist)); + break; } } @@ -449,6 +497,8 @@ ephy_embed_persist_init (EphyEmbedPersist *persist) LOG ("EphyEmbedPersist initialising %p", persist); persist->priv->max_size = -1; + + ephy_embed_persist_set_user_time (persist, gtk_get_current_event_time ()); } static void @@ -585,6 +635,16 @@ ephy_embed_persist_class_init (EphyEmbedPersistClass *klass) NULL, G_PARAM_READWRITE)); + g_object_class_install_property (object_class, + PROP_USER_TIME, + g_param_spec_uint ("user-time", + "User Time", + "User Time", + 0, + G_MAXUINT, + 0, + G_PARAM_READWRITE)); + g_type_class_add_private (object_class, sizeof(EphyEmbedPersistPrivate)); } |