[Xfce4-commits] <midori:master> Turn location into a plain entry without arrow
Christian Dywan
noreply at xfce.org
Mon Apr 25 21:56:01 CEST 2011
Updating branch refs/heads/master
to feee6cff1fd2441bd45c528d6c66fbc9af2e0913 (commit)
from 7bc832365d3c07019f6ef2b454bf6a3b3935d78d (commit)
commit feee6cff1fd2441bd45c528d6c66fbc9af2e0913
Author: Christian Dywan <christian at twotoasts.de>
Date: Mon Apr 25 20:54:50 2011 +0200
Turn location into a plain entry without arrow
Fixes: https://bugs.launchpad.net/midori/+bug/747683
midori/midori-browser.c | 16 ---
midori/midori-locationaction.c | 260 +++++-----------------------------------
2 files changed, 29 insertions(+), 247 deletions(-)
diff --git a/midori/midori-browser.c b/midori/midori-browser.c
index f16bafe..a7c9f57 100644
--- a/midori/midori-browser.c
+++ b/midori/midori-browser.c
@@ -3562,20 +3562,6 @@ _action_location_activate (GtkAction* action,
}
static void
-_action_location_active_changed (GtkAction* action,
- gint idx,
- MidoriBrowser* browser)
-{
- const gchar* uri;
-
- if (idx > -1)
- {
- uri = midori_location_action_get_uri (MIDORI_LOCATION_ACTION (action));
- midori_browser_set_current_uri (browser, uri);
- }
-}
-
-static void
_action_location_focus_in (GtkAction* action,
MidoriBrowser* browser)
{
@@ -5815,8 +5801,6 @@ midori_browser_init (MidoriBrowser* browser)
g_object_connect (action,
"signal::activate",
_action_location_activate, browser,
- "signal::active-changed",
- _action_location_active_changed, browser,
"signal::focus-in",
_action_location_focus_in, browser,
"signal::focus-out",
diff --git a/midori/midori-locationaction.c b/midori/midori-locationaction.c
index 1eb4d1a..c0a55ab 100644
--- a/midori/midori-locationaction.c
+++ b/midori/midori-locationaction.c
@@ -134,6 +134,14 @@ midori_location_action_class_init (MidoriLocationActionClass* class)
GObjectClass* gobject_class;
GtkActionClass* action_class;
+ /**
+ * MidoriLocationAction:active-changed:
+ * @row: the active row
+ *
+ * The active-changed signal is emitted when the active row changes.
+ *
+ * Deprecated: 0.3.4
+ */
signals[ACTIVE_CHANGED] = g_signal_new ("active-changed",
G_TYPE_FROM_CLASS (class),
(GSignalFlags) (G_SIGNAL_RUN_LAST),
@@ -254,12 +262,6 @@ midori_location_action_class_init (MidoriLocationActionClass* class)
"The list of history items",
KATZE_TYPE_ARRAY,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
-
- /* We want location entries to have appears-as-list applied */
- gtk_rc_parse_string ("style \"midori-location-entry-style\" {\n"
- " GtkComboBox::appears-as-list = 1\n }\n"
- "widget \"*MidoriLocationEntry\" "
- "style \"midori-location-entry-style\"\n");
}
static GtkTreeModel*
@@ -615,47 +617,6 @@ midori_location_action_finalize (GObject* object)
}
static void
-midori_location_action_toggle_arrow_cb (GtkWidget* widget,
- MidoriLocationAction* location_action)
-{
- gboolean show = FALSE;
- gint result;
-
- if (!GTK_IS_BUTTON (widget))
- return;
-
- if (location_action->history != NULL)
- {
- sqlite3* db = g_object_get_data (G_OBJECT (location_action->history), "db");
- const char* sqlcmd = "SELECT uri FROM history LIMIT 1";
- sqlite3_stmt* statement;
- sqlite3_prepare_v2 (db, sqlcmd, -1, &statement, NULL);
- result = sqlite3_step (statement);
- if (result == SQLITE_ROW)
- show = TRUE;
- sqlite3_finalize (statement);
- }
-
- sokoke_widget_set_visible (widget, show);
- gtk_widget_set_size_request (widget, show ? -1 : 1, show ? -1 : 1);
-}
-
-static void
-midori_location_action_toggle_arrow (MidoriLocationAction* location_action)
-{
- GSList* proxies;
-
- proxies = gtk_action_get_proxies (GTK_ACTION (location_action));
- for (; proxies != NULL; proxies = g_slist_next (proxies))
- if (GTK_IS_TOOL_ITEM (proxies->data))
- {
- GtkWidget* entry = midori_location_action_entry_for_proxy (proxies->data);
- gtk_container_forall (GTK_CONTAINER (entry),
- (GtkCallback)midori_location_action_toggle_arrow_cb, location_action);
- }
-}
-
-static void
midori_location_action_set_property (GObject* object,
guint prop_id,
const GValue* value,
@@ -676,8 +637,6 @@ midori_location_action_set_property (GObject* object,
case PROP_HISTORY:
{
katze_assign (location_action->history, g_value_dup_object (value));
-
- midori_location_action_toggle_arrow (location_action);
break;
}
default:
@@ -738,7 +697,6 @@ midori_location_action_create_tool_item (GtkAction* action)
{
GtkWidget* toolitem;
GtkWidget* alignment;
- GtkWidget* location_entry;
GtkWidget* entry;
#if HAVE_HILDON
HildonGtkInputMode mode;
@@ -750,10 +708,6 @@ midori_location_action_create_tool_item (GtkAction* action)
alignment = gtk_alignment_new (0.0f, 0.5f, 1.0f, 0.1f);
gtk_widget_show (alignment);
gtk_container_add (GTK_CONTAINER (toolitem), alignment);
- location_entry = gtk_combo_box_entry_new ();
- gtk_widget_set_name (location_entry, "MidoriLocationEntry");
- gtk_widget_show (location_entry);
- gtk_container_add (GTK_CONTAINER (alignment), location_entry);
#if HAVE_HILDON
entry = gtk_entry_new ();
@@ -768,7 +722,7 @@ midori_location_action_create_tool_item (GtkAction* action)
GTK_ICON_ENTRY_SECONDARY, TRUE);
#endif
gtk_widget_show (entry);
- gtk_container_add (GTK_CONTAINER (location_entry), entry);
+ gtk_container_add (GTK_CONTAINER (alignment), entry);
return toolitem;
}
@@ -941,8 +895,6 @@ midori_location_action_key_press_event_cb (GtkEntry* entry,
case GDK_Up:
case GDK_KP_Up:
{
- GtkWidget* parent;
-
if (location_action->popup && gtk_widget_get_visible (location_action->popup))
{
GtkTreeModel* model = location_action->completion_model;
@@ -982,10 +934,6 @@ midori_location_action_key_press_event_cb (GtkEntry* entry,
return TRUE;
}
- parent = gtk_widget_get_parent (widget);
- if (location_action->history != NULL
- && !katze_object_get_boolean (parent, "popup-shown"))
- gtk_combo_box_popup (GTK_COMBO_BOX (parent));
return TRUE;
}
default:
@@ -1247,96 +1195,6 @@ midori_location_entry_render_text_cb (GtkCellLayout* layout,
}
static void
-midori_location_action_entry_changed_cb (GtkComboBox* combo_box,
- MidoriLocationAction* location_action)
-{
- GtkTreeIter iter;
-
- if (gtk_combo_box_get_active_iter (combo_box, &iter))
- {
- GtkIconEntry* entry;
-
- if ((entry = GTK_ICON_ENTRY (gtk_bin_get_child (GTK_BIN (combo_box)))))
- {
- GtkTreeModel* model;
- gchar* uri;
- #if !HAVE_HILDON
- GdkPixbuf* pixbuf;
- #endif
-
- model = gtk_combo_box_get_model (combo_box);
- gtk_tree_model_get (model, &iter, URI_COL, &uri, -1);
-
- #if !HAVE_HILDON
- gtk_tree_model_get (model, &iter, FAVICON_COL, &pixbuf, -1);
- gtk_icon_entry_set_icon_from_pixbuf (GTK_ICON_ENTRY (entry),
- GTK_ICON_ENTRY_PRIMARY, pixbuf);
- g_object_unref (pixbuf);
- #endif
- katze_assign (location_action->text, uri);
- katze_assign (location_action->uri, g_strdup (uri));
-
- g_signal_emit (location_action, signals[ACTIVE_CHANGED], 0,
- gtk_combo_box_get_active (combo_box));
- }
- }
-}
-
-static void
-midori_location_action_entry_popup_cb (GtkComboBox* combo_box,
- MidoriLocationAction* location_action)
-{
- GtkListStore* store;
- gint result;
- const gchar* sqlcmd;
- static sqlite3_stmt* stmt = NULL;
- gint matches;
-
- store = GTK_LIST_STORE (gtk_combo_box_get_model (combo_box));
- gtk_list_store_clear (store);
-
- if (!stmt)
- {
- sqlite3* db;
-
- g_return_if_fail (location_action->history != NULL);
- db = g_object_get_data (G_OBJECT (location_action->history), "db");
- g_return_if_fail (db != NULL);
- sqlcmd = "SELECT uri, title FROM history"
- " GROUP BY uri ORDER BY count() DESC LIMIT ?";
- sqlite3_prepare_v2 (db, sqlcmd, -1, &stmt, NULL);
- }
-
- sqlite3_bind_int64 (stmt, 1, MAX_ITEMS);
- result = sqlite3_step (stmt);
- if (result != SQLITE_ROW)
- {
- g_print (_("Failed to execute database statement\n"));
- sqlite3_reset (stmt);
- sqlite3_clear_bindings (stmt);
- return;
- }
-
- matches = 0;
- do
- {
- const unsigned char* uri = sqlite3_column_text (stmt, 0);
- const unsigned char* title = sqlite3_column_text (stmt, 1);
- GdkPixbuf* icon = katze_load_cached_icon ((gchar*)uri, NULL);
- if (!icon)
- icon = location_action->default_icon;
- gtk_list_store_insert_with_values (store, NULL, matches,
- URI_COL, uri, TITLE_COL, title, YALIGN_COL, 0.25,
- FAVICON_COL, icon, -1);
- matches++;
- result = sqlite3_step (stmt);
- }
- while (result == SQLITE_ROW);
- sqlite3_reset (stmt);
- sqlite3_clear_bindings (stmt);
-}
-
-static void
midori_location_action_paste_proceed_cb (GtkWidget* menuitem,
GtkWidget* location_action)
{
@@ -1379,7 +1237,6 @@ midori_location_action_connect_proxy (GtkAction* action,
GtkWidget* proxy)
{
MidoriLocationAction* location_action;
- GtkCellRenderer* renderer;
GTK_ACTION_CLASS (midori_location_action_parent_class)->connect_proxy (
action, proxy);
@@ -1392,40 +1249,10 @@ midori_location_action_connect_proxy (GtkAction* action,
if (GTK_IS_TOOL_ITEM (proxy))
{
GtkWidget* entry = midori_location_action_entry_for_proxy (proxy);
- GtkWidget* child = gtk_bin_get_child (GTK_BIN (entry));
- GtkTreeModel* model = midori_location_action_create_model ();
-
- gtk_icon_entry_set_progress_fraction (GTK_ICON_ENTRY (child),
+ gtk_icon_entry_set_progress_fraction (GTK_ICON_ENTRY (entry),
MIDORI_LOCATION_ACTION (action)->progress);
- gtk_combo_box_set_model (GTK_COMBO_BOX (entry), model);
- #if GTK_CHECK_VERSION (2, 14, 0)
- gtk_combo_box_set_button_sensitivity (GTK_COMBO_BOX (entry),
- GTK_SENSITIVITY_ON);
- #endif
- gtk_combo_box_entry_set_text_column (
- GTK_COMBO_BOX_ENTRY (entry), URI_COL);
- gtk_cell_layout_clear (GTK_CELL_LAYOUT (entry));
- /* Setup the renderer for the favicon */
- renderer = gtk_cell_renderer_pixbuf_new ();
- gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (entry), renderer, FALSE);
- gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (entry), renderer,
- "pixbuf", FAVICON_COL, "yalign", YALIGN_COL, NULL);
- renderer = gtk_cell_renderer_text_new ();
- g_object_set_data (G_OBJECT (renderer), "location-action", action);
- gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (entry), renderer, TRUE);
- gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (entry),
- renderer, midori_location_entry_render_text_cb, action, NULL);
-
- gtk_combo_box_set_active (GTK_COMBO_BOX (entry), -1);
- gtk_container_forall (GTK_CONTAINER (entry),
- (GtkCallback)midori_location_action_toggle_arrow_cb, action);
- g_signal_connect (entry, "changed",
- G_CALLBACK (midori_location_action_entry_changed_cb), action);
- g_signal_connect (entry, "popup",
- G_CALLBACK (midori_location_action_entry_popup_cb), action);
-
- g_object_connect (child,
+ g_object_connect (entry,
"signal::changed",
midori_location_action_changed_cb, action,
"signal::move-cursor",
@@ -1515,8 +1342,6 @@ midori_location_action_set_text (MidoriLocationAction* location_action,
const gchar* text)
{
GSList* proxies;
- GtkWidget* location_entry;
- GtkWidget* entry;
GdkPixbuf* icon;
g_return_if_fail (MIDORI_IS_LOCATION_ACTION (location_action));
@@ -1536,9 +1361,7 @@ midori_location_action_set_text (MidoriLocationAction* location_action,
for (; proxies != NULL; proxies = g_slist_next (proxies))
if (GTK_IS_TOOL_ITEM (proxies->data))
{
- location_entry = midori_location_action_entry_for_proxy (proxies->data);
- entry = gtk_bin_get_child (GTK_BIN (location_entry));
-
+ GtkWidget* entry = midori_location_action_entry_for_proxy (proxies->data);
gtk_entry_set_text (GTK_ENTRY (entry), text);
#if !HAVE_HILDON
gtk_icon_entry_set_icon_from_pixbuf (GTK_ICON_ENTRY (entry),
@@ -1565,8 +1388,6 @@ midori_location_action_set_icon (MidoriLocationAction* location_action,
{
#if !HAVE_HILDON
GSList* proxies;
- GtkWidget* location_entry;
- GtkWidget* entry;
g_return_if_fail (MIDORI_IS_LOCATION_ACTION (location_action));
g_return_if_fail (!icon || GDK_IS_PIXBUF (icon));
@@ -1576,9 +1397,7 @@ midori_location_action_set_icon (MidoriLocationAction* location_action,
for (; proxies != NULL; proxies = g_slist_next (proxies))
if (GTK_IS_TOOL_ITEM (proxies->data))
{
- location_entry = midori_location_action_entry_for_proxy (proxies->data);
- entry = gtk_bin_get_child (GTK_BIN (location_entry));
-
+ GtkWidget* entry = midori_location_action_entry_for_proxy (proxies->data);
if (icon)
gtk_icon_entry_set_icon_from_pixbuf (GTK_ICON_ENTRY (entry),
GTK_ICON_ENTRY_PRIMARY, icon);
@@ -1597,8 +1416,6 @@ midori_location_action_add_uri (MidoriLocationAction* location_action,
g_return_if_fail (uri != NULL);
katze_assign (location_action->uri, g_strdup (uri));
-
- midori_location_action_toggle_arrow (location_action);
}
void
@@ -1609,8 +1426,6 @@ midori_location_action_add_item (MidoriLocationAction* location_action,
{
#if !HAVE_HILDON
GSList* proxies;
- GtkWidget* location_entry;
- GtkWidget* entry;
#endif
g_return_if_fail (MIDORI_IS_LOCATION_ACTION (location_action));
@@ -1624,9 +1439,7 @@ midori_location_action_add_item (MidoriLocationAction* location_action,
for (; proxies != NULL; proxies = g_slist_next (proxies))
if (GTK_IS_TOOL_ITEM (proxies->data))
{
- location_entry = midori_location_action_entry_for_proxy (proxies->data);
- entry = gtk_bin_get_child (GTK_BIN (location_entry));
-
+ GtkWidget* entry = midori_location_action_entry_for_proxy (proxies->data);
gtk_icon_entry_set_icon_from_pixbuf (GTK_ICON_ENTRY (entry),
GTK_ICON_ENTRY_PRIMARY, icon);
}
@@ -1640,8 +1453,6 @@ midori_location_action_set_icon_for_uri (MidoriLocationAction* location_action,
{
#if !HAVE_HILDON
GSList* proxies;
- GtkWidget* location_entry;
- GtkWidget* entry;
#endif
g_return_if_fail (MIDORI_IS_LOCATION_ACTION (location_action));
@@ -1654,9 +1465,7 @@ midori_location_action_set_icon_for_uri (MidoriLocationAction* location_action,
for (; proxies != NULL; proxies = g_slist_next (proxies))
if (GTK_IS_TOOL_ITEM (proxies->data))
{
- location_entry = midori_location_action_entry_for_proxy (proxies->data);
- entry = gtk_bin_get_child (GTK_BIN (location_entry));
-
+ GtkWidget* entry = midori_location_action_entry_for_proxy (proxies->data);
gtk_icon_entry_set_icon_from_pixbuf (GTK_ICON_ENTRY (entry),
GTK_ICON_ENTRY_PRIMARY, icon);
}
@@ -1706,8 +1515,6 @@ midori_location_action_set_progress (MidoriLocationAction* location_action,
gdouble progress)
{
GSList* proxies;
- GtkWidget* entry;
- GtkWidget* child;
g_return_if_fail (MIDORI_IS_LOCATION_ACTION (location_action));
@@ -1718,10 +1525,8 @@ midori_location_action_set_progress (MidoriLocationAction* location_action,
for (; proxies != NULL; proxies = g_slist_next (proxies))
if (GTK_IS_TOOL_ITEM (proxies->data))
{
- entry = midori_location_action_entry_for_proxy (proxies->data);
- child = gtk_bin_get_child (GTK_BIN (entry));
-
- gtk_icon_entry_set_progress_fraction (GTK_ICON_ENTRY (child),
+ GtkWidget* entry = midori_location_action_entry_for_proxy (proxies->data);
+ gtk_icon_entry_set_progress_fraction (GTK_ICON_ENTRY (entry),
location_action->progress);
}
}
@@ -1732,8 +1537,6 @@ midori_location_action_set_secondary_icon (MidoriLocationAction* location_action
{
#if !HAVE_HILDON
GSList* proxies;
- GtkWidget* entry;
- GtkWidget* child;
#endif
GtkStockItem stock_item;
@@ -1748,10 +1551,8 @@ midori_location_action_set_secondary_icon (MidoriLocationAction* location_action
for (; proxies != NULL; proxies = g_slist_next (proxies))
if (GTK_IS_TOOL_ITEM (proxies->data))
{
- entry = midori_location_action_entry_for_proxy (proxies->data);
- child = gtk_bin_get_child (GTK_BIN (entry));
-
- gtk_icon_entry_set_icon_from_stock (GTK_ICON_ENTRY (child),
+ GtkWidget* entry = midori_location_action_entry_for_proxy (proxies->data);
+ gtk_icon_entry_set_icon_from_stock (GTK_ICON_ENTRY (entry),
GTK_ICON_ENTRY_SECONDARY, stock_id);
}
#endif
@@ -1776,8 +1577,6 @@ void
midori_location_action_clear (MidoriLocationAction* location_action)
{
g_return_if_fail (MIDORI_IS_LOCATION_ACTION (location_action));
-
- midori_location_action_toggle_arrow (location_action);
}
/**
@@ -1806,8 +1605,7 @@ midori_location_action_set_security_hint (MidoriLocationAction* location_action,
GdkColor bg_color = { 0, 1 };
GdkColor fg_color = { 0, 1 };
GtkWidget* entry = midori_location_action_entry_for_proxy (proxies->data);
- GtkWidget* child = gtk_bin_get_child (GTK_BIN (entry));
- GdkScreen* screen = gtk_widget_get_screen (child);
+ GdkScreen* screen = gtk_widget_get_screen (entry);
GtkIconTheme* icon_theme = gtk_icon_theme_get_for_screen (screen);
if (hint == MIDORI_SECURITY_UNKNOWN)
@@ -1816,12 +1614,12 @@ midori_location_action_set_security_hint (MidoriLocationAction* location_action,
gdk_color_parse ("#000", &fg_color);
#if !HAVE_HILDON
if (gtk_icon_theme_has_icon (icon_theme, "lock-insecure"))
- gtk_icon_entry_set_icon_from_icon_name (GTK_ICON_ENTRY (child),
+ gtk_icon_entry_set_icon_from_icon_name (GTK_ICON_ENTRY (entry),
GTK_ICON_ENTRY_SECONDARY, "lock-insecure");
else
- gtk_icon_entry_set_icon_from_stock (GTK_ICON_ENTRY (child),
+ gtk_icon_entry_set_icon_from_stock (GTK_ICON_ENTRY (entry),
GTK_ICON_ENTRY_SECONDARY, GTK_STOCK_INFO);
- gtk_icon_entry_set_tooltip (GTK_ICON_ENTRY (child),
+ gtk_icon_entry_set_tooltip (GTK_ICON_ENTRY (entry),
GTK_ICON_ENTRY_SECONDARY, _("Not verified"));
#endif
}
@@ -1831,22 +1629,22 @@ midori_location_action_set_security_hint (MidoriLocationAction* location_action,
gdk_color_parse ("#000", &fg_color);
#if !HAVE_HILDON
if (gtk_icon_theme_has_icon (icon_theme, "lock-secure"))
- gtk_icon_entry_set_icon_from_icon_name (GTK_ICON_ENTRY (child),
+ gtk_icon_entry_set_icon_from_icon_name (GTK_ICON_ENTRY (entry),
GTK_ICON_ENTRY_SECONDARY, "lock-secure");
else
- gtk_icon_entry_set_icon_from_stock (GTK_ICON_ENTRY (child),
+ gtk_icon_entry_set_icon_from_stock (GTK_ICON_ENTRY (entry),
GTK_ICON_ENTRY_SECONDARY, GTK_STOCK_DIALOG_AUTHENTICATION);
- gtk_icon_entry_set_tooltip (GTK_ICON_ENTRY (child),
+ gtk_icon_entry_set_tooltip (GTK_ICON_ENTRY (entry),
GTK_ICON_ENTRY_SECONDARY, _("Verified and encrypted connection"));
#endif
}
else if (hint == MIDORI_SECURITY_NONE)
- gtk_icon_entry_set_tooltip (GTK_ICON_ENTRY (child),
+ gtk_icon_entry_set_tooltip (GTK_ICON_ENTRY (entry),
GTK_ICON_ENTRY_SECONDARY, NULL);
- gtk_widget_modify_base (child, GTK_STATE_NORMAL,
+ gtk_widget_modify_base (entry, GTK_STATE_NORMAL,
bg_color.red == 1 ? NULL : &bg_color);
- gtk_widget_modify_text (child, GTK_STATE_NORMAL,
+ gtk_widget_modify_text (entry, GTK_STATE_NORMAL,
bg_color.red == 1 ? NULL : &fg_color);
}
}
More information about the Xfce4-commits
mailing list