diff options
Diffstat (limited to 'embed')
-rw-r--r-- | embed/downloader-view.c | 63 | ||||
-rw-r--r-- | embed/ephy-download.h | 1 | ||||
-rw-r--r-- | embed/ephy-embed-factory.c | 71 | ||||
-rw-r--r-- | embed/ephy-embed-factory.h | 4 | ||||
-rw-r--r-- | embed/ephy-embed-shell.c | 2 | ||||
-rw-r--r-- | embed/ephy-encodings.c | 15 | ||||
-rw-r--r-- | embed/ephy-encodings.h | 18 | ||||
-rw-r--r-- | embed/ephy-favicon-cache.c | 2 | ||||
-rw-r--r-- | embed/mozilla/EventContext.cpp | 5 | ||||
-rw-r--r-- | embed/mozilla/MozDownload.cpp | 2 |
10 files changed, 77 insertions, 106 deletions
diff --git a/embed/downloader-view.c b/embed/downloader-view.c index fd6611716..2029a701c 100644 --- a/embed/downloader-view.c +++ b/embed/downloader-view.c @@ -26,7 +26,6 @@ #include "downloader-view.h" #include "ephy-file-helpers.h" #include "ephy-embed-shell.h" -#include "ephy-cell-renderer-progress.h" #include "ephy-stock-icons.h" #include <libgnomevfs/gnome-vfs-utils.h> @@ -37,6 +36,7 @@ #include <gtk/gtkbutton.h> #include <gtk/gtkcellrenderertext.h> #include <gtk/gtkcellrendererpixbuf.h> +#include <gtk/gtkcellrendererprogress.h> #include <gtk/gtktreeselection.h> #include <gtk/gtktreeviewcolumn.h> #include <gtk/gtkicontheme.h> @@ -48,6 +48,7 @@ enum { + COL_STATE, COL_PERCENT, COL_IMAGE, COL_FILE, @@ -57,7 +58,7 @@ enum enum { - PERCENT_COL_POS, + PROGRESS_COL_POS, FILE_COL_POS, REMAINING_COL_POS }; @@ -299,10 +300,10 @@ update_download_row (DownloaderView *dv, EphyDownload *download) GtkTreePath *path; GtkTreeIter iter; EphyDownloadState state; - long total, current, remaining_secs; + long total, current, remaining_secs = 0; char *remaining, *file, *cur_progress, *name; struct tm; - int percent; + int percent = 0; row_ref = get_row_from_download (dv, download); g_return_if_fail (row_ref != NULL); @@ -311,21 +312,15 @@ update_download_row (DownloaderView *dv, EphyDownload *download) state = ephy_download_get_state (download); switch (state) { - case EPHY_DOWNLOAD_FAILED: - percent = -2; - remaining_secs = 0; - break; case EPHY_DOWNLOAD_COMPLETED: downloader_view_remove_download (dv, download); return; + case EPHY_DOWNLOAD_PAUSED: case EPHY_DOWNLOAD_DOWNLOADING: - case EPHY_DOWNLOAD_PAUSED: percent = ephy_download_get_percent (download); remaining_secs = ephy_download_get_remaining_time (download); break; default: - percent = 0; - remaining_secs = 0; break; } @@ -363,6 +358,7 @@ update_download_row (DownloaderView *dv, EphyDownload *download) gtk_tree_model_get_iter (dv->priv->model, &iter, path); gtk_list_store_set (GTK_LIST_STORE (dv->priv->model), &iter, + COL_STATE, state, COL_PERCENT, percent, COL_FILE, file, COL_REMAINING, remaining, @@ -519,6 +515,38 @@ selection_changed (GtkTreeSelection *selection, DownloaderView *dv) } static void +progress_cell_data_func (GtkTreeViewColumn *col, + GtkCellRenderer *renderer, + GtkTreeModel *model, + GtkTreeIter *iter, + gpointer user_data) +{ + EphyDownloadState state; + int percent; + + gtk_tree_model_get (model, iter, + COL_STATE, &state, + COL_PERCENT, &percent, + -1); + + switch (state) + { + case EPHY_DOWNLOAD_INITIALISING: + g_object_set (renderer, "text", Q_("download status|Unknown"), NULL); + break; + case EPHY_DOWNLOAD_FAILED: + g_object_set (renderer, "text", Q_("download status|Failed"), NULL); + break; + case EPHY_DOWNLOAD_DOWNLOADING: + case EPHY_DOWNLOAD_PAUSED: + g_object_set (renderer, "text", NULL, "value", percent, NULL); + break; + default: + g_return_if_reached (); + } +} + +static void downloader_view_build_ui (DownloaderView *dv) { DownloaderViewPrivate *priv = dv->priv; @@ -544,7 +572,8 @@ downloader_view_build_ui (DownloaderView *dv) gtk_tree_selection_set_mode (gtk_tree_view_get_selection (GTK_TREE_VIEW (priv->treeview)), GTK_SELECTION_BROWSE); - liststore = gtk_list_store_new (5, + liststore = gtk_list_store_new (6, + G_TYPE_INT, G_TYPE_INT, GDK_TYPE_PIXBUF, G_TYPE_STRING, @@ -576,15 +605,15 @@ downloader_view_build_ui (DownloaderView *dv) gtk_tree_view_column_set_sort_column_id (column, COL_FILE); gtk_tree_view_column_set_spacing (column, 3); - /* Percent column */ - renderer = ephy_cell_renderer_progress_new (); + /* Progress column */ + renderer = gtk_cell_renderer_progress_new (); g_object_set (renderer, "xalign", 0.5, NULL); gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW(priv->treeview), - PERCENT_COL_POS, _("%"), + PROGRESS_COL_POS, _("%"), renderer, - "value", COL_PERCENT, NULL); - column = gtk_tree_view_get_column (GTK_TREE_VIEW(priv->treeview), PERCENT_COL_POS); + column = gtk_tree_view_get_column (GTK_TREE_VIEW(priv->treeview), PROGRESS_COL_POS); + gtk_tree_view_column_set_cell_data_func(column, renderer, progress_cell_data_func, NULL, NULL); gtk_tree_view_column_set_sort_column_id (column, COL_PERCENT); /* Remainng time column */ diff --git a/embed/ephy-download.h b/embed/ephy-download.h index 749c55213..64d483b2a 100644 --- a/embed/ephy-download.h +++ b/embed/ephy-download.h @@ -39,6 +39,7 @@ typedef struct EphyDownloadPrivate EphyDownloadPrivate; typedef enum { + EPHY_DOWNLOAD_INITIALISING, EPHY_DOWNLOAD_DOWNLOADING, EPHY_DOWNLOAD_PAUSED, EPHY_DOWNLOAD_COMPLETED, diff --git a/embed/ephy-embed-factory.c b/embed/ephy-embed-factory.c index 5a81004f0..ef382c9eb 100644 --- a/embed/ephy-embed-factory.c +++ b/embed/ephy-embed-factory.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2000-2003 Marco Pesenti Gritti + * Copyright (C) 2000-2004 Marco Pesenti Gritti * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -26,68 +26,39 @@ #include "mozilla-embed.h" #include "mozilla-embed-persist.h" #include "mozilla-embed-single.h" +#include "ephy-embed.h" +#include "ephy-embed-persist.h" +#include "ephy-embed-single.h" -#include <string.h> - -typedef enum -{ - EPHY_EMBED_OBJECT, - EPHY_EMBED_PERSIST_OBJECT, - EPHY_EMBED_SINGLE_OBJECT -} EmbedObjectType; - -static EmbedObjectType -type_from_id (const char *object_id) +/** + * ephy_embed_factory_new_object: + * @type: a #GType specifying which object to create + * + * Create an instance of an object implementing the @type interface. + * + * Return value: the object instance + **/ +GObject * +ephy_embed_factory_new_object (GType type) { - EmbedObjectType result = 0; + GObject *object = NULL; - if (strcmp (object_id, "EphyEmbed") == 0) + if (type == EPHY_TYPE_EMBED) { - result = EPHY_EMBED_OBJECT; + object = g_object_new (MOZILLA_TYPE_EMBED, NULL); } - else if (strcmp (object_id, "EphyEmbedPersist") == 0) + else if (type == EPHY_TYPE_EMBED_PERSIST) { - result = EPHY_EMBED_PERSIST_OBJECT; + object = g_object_new (MOZILLA_TYPE_EMBED_PERSIST, NULL); } - else if (strcmp (object_id, "EphyEmbedSingle") == 0) + else if (type == EPHY_TYPE_EMBED_SINGLE) { - result = EPHY_EMBED_SINGLE_OBJECT; + object = g_object_new (MOZILLA_TYPE_EMBED_SINGLE, NULL); } else { g_assert_not_reached (); } - return result; -} - -/** - * ephy_embed_factory_new_object: - * @object_id: identifier of the object to create - * - * Create an instance of the object identified by @object_id. - * - * Return value: the object instance - **/ -GObject * -ephy_embed_factory_new_object (const char *object_id) -{ - GObject *object; - - switch (type_from_id (object_id)) - { - case EPHY_EMBED_OBJECT: - object = g_object_new (MOZILLA_TYPE_EMBED, NULL); - break; - case EPHY_EMBED_PERSIST_OBJECT: - object = g_object_new (MOZILLA_TYPE_EMBED_PERSIST, NULL); - break; - case EPHY_EMBED_SINGLE_OBJECT: - object = g_object_new (MOZILLA_TYPE_EMBED_SINGLE, NULL); - break; - default: - object = NULL; - } - return object; } diff --git a/embed/ephy-embed-factory.h b/embed/ephy-embed-factory.h index 9c8425f7d..9d4774147 100644 --- a/embed/ephy-embed-factory.h +++ b/embed/ephy-embed-factory.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2000-2003 Marco Pesenti Gritti + * Copyright (C) 2000-2004 Marco Pesenti Gritti * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -27,7 +27,7 @@ G_BEGIN_DECLS -GObject *ephy_embed_factory_new_object (const char *object_id); +GObject *ephy_embed_factory_new_object (GType type); G_END_DECLS diff --git a/embed/ephy-embed-shell.c b/embed/ephy-embed-shell.c index 28c3706ff..1bb7c637d 100644 --- a/embed/ephy-embed-shell.c +++ b/embed/ephy-embed-shell.c @@ -189,7 +189,7 @@ ephy_embed_shell_get_embed_single (EphyEmbedShell *shell) if (shell->priv->embed_single == NULL) { shell->priv->embed_single = EPHY_EMBED_SINGLE - (ephy_embed_factory_new_object ("EphyEmbedSingle")); + (ephy_embed_factory_new_object (EPHY_TYPE_EMBED_SINGLE)); } return G_OBJECT (shell->priv->embed_single); diff --git a/embed/ephy-encodings.c b/embed/ephy-encodings.c index b58fbd9e5..868391c29 100644 --- a/embed/ephy-encodings.c +++ b/embed/ephy-encodings.c @@ -484,21 +484,6 @@ ephy_encodings_init (EphyEncodings *encodings) g_slist_free (list); } -void -ephy_encoding_info_free (EphyEncodingInfo *info) -{ - if (info) - { - g_free (info->encoding); - g_free (info->hint_encoding); - g_free (info->parent_encoding); - g_free (info->prev_doc_encoding); - g_free (info->forced_encoding); - g_free (info->default_encoding); - g_free (info); - } -} - EphyEncodings * ephy_encodings_new (void) { diff --git a/embed/ephy-encodings.h b/embed/ephy-encodings.h index bb8dfea58..265c827eb 100644 --- a/embed/ephy-encodings.h +++ b/embed/ephy-encodings.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2003 Christian Persch + * Copyright (C) 2003, 2004 Christian Persch * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -88,20 +88,6 @@ typedef enum } EphyEncodingSource; -typedef struct -{ - char *encoding; - char *default_encoding; - char *hint_encoding; - char *prev_doc_encoding; - char *forced_encoding; - char *parent_encoding; - EphyEncodingSource encoding_source; - EphyEncodingSource hint_encoding_source; - EphyEncodingSource parent_encoding_source; -} -EphyEncodingInfo; - enum { EPHY_NODE_ENCODING_PROP_TITLE = 1, @@ -145,8 +131,6 @@ void ephy_encodings_add_recent (EphyEncodings *encodings, GList *ephy_encodings_get_recent (EphyEncodings *encodings); -void ephy_encoding_info_free (EphyEncodingInfo *info); - G_END_DECLS #endif diff --git a/embed/ephy-favicon-cache.c b/embed/ephy-favicon-cache.c index 1854c6813..6d012d322 100644 --- a/embed/ephy-favicon-cache.c +++ b/embed/ephy-favicon-cache.c @@ -376,7 +376,7 @@ ephy_favicon_cache_download (EphyFaviconCache *cache, dest = g_build_filename (cache->priv->directory, filename, NULL); persist = EPHY_EMBED_PERSIST - (ephy_embed_factory_new_object ("EphyEmbedPersist")); + (ephy_embed_factory_new_object (EPHY_TYPE_EMBED_PERSIST)); ephy_embed_persist_set_dest (persist, dest); ephy_embed_persist_set_flags (persist, EMBED_PERSIST_NO_VIEW); diff --git a/embed/mozilla/EventContext.cpp b/embed/mozilla/EventContext.cpp index 1f7d27bd4..c3891bc5f 100644 --- a/embed/mozilla/EventContext.cpp +++ b/embed/mozilla/EventContext.cpp @@ -653,8 +653,9 @@ nsresult EventContext::GetMouseEventInfo (nsIDOMMouseEvent *aMouseEvent, Mozilla aMouseEvent->GetShiftKey(&mod_key); if (mod_key) info->modifier |= GDK_SHIFT_MASK; - aMouseEvent->GetMetaKey(&mod_key); - if (mod_key) info->modifier |= GDK_MOD2_MASK; + /* no need to check GetMetaKey, it's always PR_FALSE, + * see widget/src/gtk2/nsWindow.cpp:InitMouseEvent + */ aMouseEvent->GetCtrlKey(&mod_key); if (mod_key) info->modifier |= GDK_CONTROL_MASK; diff --git a/embed/mozilla/MozDownload.cpp b/embed/mozilla/MozDownload.cpp index 9070b6caa..7e25a1faa 100644 --- a/embed/mozilla/MozDownload.cpp +++ b/embed/mozilla/MozDownload.cpp @@ -69,7 +69,7 @@ MozDownload::MozDownload() : mMaxSize(-1), mStatus(NS_OK), mEmbedPersist(nsnull), - mDownloadState(EPHY_DOWNLOAD_DOWNLOADING) + mDownloadState(EPHY_DOWNLOAD_INITIALISING) { LOG ("MozDownload ctor (%p)", (void *) this) } |