aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXan Lopez <xan@gnome.org>2009-09-10 23:05:54 +0800
committerXan Lopez <xan@gnome.org>2009-09-10 23:05:54 +0800
commitb93c0ee2b3db46db54b6ae45909fb8b5f54d9f4c (patch)
tree17ddf4e087e8ab7bff4c89cf24da8097ca693119
parentb2dbd47c3f06203d4394c10599011734ad77ae32 (diff)
downloadgsoc2013-epiphany-b93c0ee2b3db46db54b6ae45909fb8b5f54d9f4c.tar
gsoc2013-epiphany-b93c0ee2b3db46db54b6ae45909fb8b5f54d9f4c.tar.gz
gsoc2013-epiphany-b93c0ee2b3db46db54b6ae45909fb8b5f54d9f4c.tar.bz2
gsoc2013-epiphany-b93c0ee2b3db46db54b6ae45909fb8b5f54d9f4c.tar.lz
gsoc2013-epiphany-b93c0ee2b3db46db54b6ae45909fb8b5f54d9f4c.tar.xz
gsoc2013-epiphany-b93c0ee2b3db46db54b6ae45909fb8b5f54d9f4c.tar.zst
gsoc2013-epiphany-b93c0ee2b3db46db54b6ae45909fb8b5f54d9f4c.zip
Get rid of EphyCommandManager
It was just another useless abstraction at this point.
-rw-r--r--doc/reference/epiphany-docs.sgml1
-rw-r--r--doc/reference/epiphany-sections.txt17
-rw-r--r--doc/reference/epiphany.types2
-rw-r--r--embed/Makefile.am2
-rw-r--r--embed/ephy-command-manager.c119
-rw-r--r--embed/ephy-command-manager.h67
-rw-r--r--embed/ephy-embed.c52
-rw-r--r--src/ephy-window.c19
-rw-r--r--src/epiphany.h.in1
-rw-r--r--src/window-commands.c22
10 files changed, 18 insertions, 284 deletions
diff --git a/doc/reference/epiphany-docs.sgml b/doc/reference/epiphany-docs.sgml
index b412c175c..86cc5fa6a 100644
--- a/doc/reference/epiphany-docs.sgml
+++ b/doc/reference/epiphany-docs.sgml
@@ -12,7 +12,6 @@
<xi:include href="xml/ephy-window.xml"/>
<xi:include href="xml/ephy-tab.xml"/>
<xi:include href="xml/ephy-embed.xml"/>
- <xi:include href="xml/ephy-command-manager.xml"/>
<xi:include href="xml/ephy-embed-single.xml"/>
<xi:include href="xml/ephy-embed-persist.xml"/>
<xi:include href="xml/ephy-node-db.xml"/>
diff --git a/doc/reference/epiphany-sections.txt b/doc/reference/epiphany-sections.txt
index 0c281b603..6e20466c6 100644
--- a/doc/reference/epiphany-sections.txt
+++ b/doc/reference/epiphany-sections.txt
@@ -145,23 +145,6 @@ EPHY_EMBED_PERSIST_GET_CLASS
</SECTION>
<SECTION>
-<FILE>ephy-command-manager</FILE>
-<TITLE>EphyCommandManager</TITLE>
-EphyCommandManager
-EphyCommandManagerIface
-ephy_command_manager_do_command
-ephy_command_manager_can_do_command
-<SUBSECTION Standard>
-EPHY_COMMAND_MANAGER
-EPHY_IS_COMMAND_MANAGER
-EPHY_TYPE_COMMAND_MANAGER
-ephy_command_manager_get_type
-EPHY_COMMAND_MANAGER_GET_IFACE
-EPHY_COMMAND_MANAGER_IFACE
-EPHY_IS_COMMAND_MANAGER_IFACE
-</SECTION>
-
-<SECTION>
<FILE>ephy-node-db</FILE>
<TITLE>EphyNodeDb</TITLE>
EphyNodeDb
diff --git a/doc/reference/epiphany.types b/doc/reference/epiphany.types
index e69682866..b67d2e180 100644
--- a/doc/reference/epiphany.types
+++ b/doc/reference/epiphany.types
@@ -20,7 +20,6 @@ ephy_zoom_control_get_type
#include <ephy-embed.h>
#include <downloader-view.h>
-#include <ephy-command-manager.h>
#include <ephy-embed-dialog.h>
#include <ephy-embed-event.h>
#include <ephy-embed-persist.h>
@@ -29,7 +28,6 @@ ephy_zoom_control_get_type
ephy_embed_get_type
downloader_view_get_type
-ephy_command_manager_get_type
ephy_embed_dialog_get_type
ephy_embed_event_get_type
ephy_embed_persist_get_type
diff --git a/embed/Makefile.am b/embed/Makefile.am
index c0001b846..51380435f 100644
--- a/embed/Makefile.am
+++ b/embed/Makefile.am
@@ -16,7 +16,6 @@ NOINST_H_FILES = \
INST_H_FILES = \
ephy-adblock.h \
ephy-adblock-manager.h \
- ephy-command-manager.h \
ephy-embed.h \
ephy-embed-container.h \
ephy-embed-event.h \
@@ -38,7 +37,6 @@ libephyembed_la_SOURCES = \
ephy-adblock.c \
ephy-adblock-manager.c \
downloader-view.c \
- ephy-command-manager.c \
ephy-embed.c \
ephy-embed-container.c \
ephy-embed-dialog.c \
diff --git a/embed/ephy-command-manager.c b/embed/ephy-command-manager.c
deleted file mode 100644
index 33cb1babe..000000000
--- a/embed/ephy-command-manager.c
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * Copyright © 2000-2003 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
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- */
-
-#include "config.h"
-
-#include "ephy-command-manager.h"
-
-static void
-ephy_command_manager_base_init (gpointer g_class);
-
-GType
-ephy_command_manager_get_type (void)
-{
- static GType type = 0;
-
- if (G_UNLIKELY (type == 0))
- {
- const GTypeInfo our_info =
- {
- sizeof (EphyCommandManagerIface),
- ephy_command_manager_base_init,
- NULL,
- };
-
- type = g_type_register_static (G_TYPE_INTERFACE,
- "EphyCommandManager",
- &our_info,
- (GTypeFlags)0);
- }
-
- return type;
-}
-
-static void
-ephy_command_manager_base_init (gpointer g_class)
-{
- static gboolean initialized = FALSE;
-
- if (!initialized)
- {
-/**
- * EphyCommandManager::command-changed:
- * @manager:
- * @command: The command whose avalability has changed
- *
- * The ::command-changed signal is emitted when @command has changed from being
- * available to unavailable, or vice-versa. The new availability can be tested
- * with ephy_command_manager_can_do_command().
- **/
- g_signal_new ("command_changed",
- EPHY_TYPE_COMMAND_MANAGER,
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (EphyCommandManagerIface, command_changed),
- NULL, NULL,
- g_cclosure_marshal_VOID__STRING,
- G_TYPE_NONE,
- 1,
- G_TYPE_STRING);
-
- initialized = TRUE;
- }
-}
-
-/**
- * ephy_command_manager_do_command:
- * @manager: an #EphyCommandManager
- * @command: the command
- *
- * Performs @command.
- **/
-void
-ephy_command_manager_do_command (EphyCommandManager *manager,
- const char *command)
-{
- EphyCommandManagerIface *iface;
-
- g_return_if_fail (command != NULL);
-
- iface = EPHY_COMMAND_MANAGER_GET_IFACE (manager);
- iface->do_command (manager, command);
-}
-
-/**
- * ephy_command_manager_can_do_command:
- * @manager: an #EphyCommandManager
- * @command: the command
- *
- * Returns %TRUE if @command can be performed.
- *
- * Return value: %TRUE if @command can be performed.
- **/
-gboolean
-ephy_command_manager_can_do_command (EphyCommandManager *manager,
- const char *command)
-{
- EphyCommandManagerIface *iface;
-
- g_return_val_if_fail (command != NULL, FALSE);
-
- iface = EPHY_COMMAND_MANAGER_GET_IFACE (manager);
-
- return iface->can_do_command (manager, command);
-}
diff --git a/embed/ephy-command-manager.h b/embed/ephy-command-manager.h
deleted file mode 100644
index 2c087f7e5..000000000
--- a/embed/ephy-command-manager.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright © 2000-2003 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
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- */
-
-#if !defined (__EPHY_EPIPHANY_H_INSIDE__) && !defined (EPIPHANY_COMPILATION)
-#error "Only <epiphany/epiphany.h> can be included directly."
-#endif
-
-#ifndef EPHY_COMMAND_MANAGER_H
-#define EPHY_COMMAND_MANAGER_H
-
-#include <glib-object.h>
-#include <glib.h>
-
-G_BEGIN_DECLS
-
-#define EPHY_TYPE_COMMAND_MANAGER (ephy_command_manager_get_type ())
-#define EPHY_COMMAND_MANAGER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), EPHY_TYPE_COMMAND_MANAGER, EphyCommandManager))
-#define EPHY_COMMAND_MANAGER_IFACE(k) (G_TYPE_CHECK_CLASS_CAST((k), EPHY_TYPE_COMMAND_MANAGER, EphyCommandManagerIface))
-#define EPHY_IS_COMMAND_MANAGER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), EPHY_TYPE_COMMAND_MANAGER))
-#define EPHY_IS_COMMAND_MANAGER_IFACE(k) (G_TYPE_CHECK_CLASS_TYPE ((k), EPHY_TYPE_COMMAND_MANAGER))
-#define EPHY_COMMAND_MANAGER_GET_IFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), EPHY_TYPE_COMMAND_MANAGER, EphyCommandManagerIface))
-
-typedef struct _EphyCommandManager EphyCommandManager;
-typedef struct _EphyCommandManagerIface EphyCommandManagerIface;
-
-struct _EphyCommandManagerIface
-{
- GTypeInterface base_iface;
-
- void (* do_command) (EphyCommandManager *manager,
- const char *command);
- gboolean (* can_do_command) (EphyCommandManager *manager,
- const char *command);
-
- /* Signals */
-
- void (* command_changed) (EphyCommandManager *manager,
- char *command);
-};
-
-GType ephy_command_manager_get_type (void);
-
-void ephy_command_manager_do_command (EphyCommandManager *manager,
- const char *command);
-
-gboolean ephy_command_manager_can_do_command (EphyCommandManager *manager,
- const char *command);
-
-G_END_DECLS
-
-#endif
diff --git a/embed/ephy-embed.c b/embed/ephy-embed.c
index a773596a5..c1b4e3369 100644
--- a/embed/ephy-embed.c
+++ b/embed/ephy-embed.c
@@ -28,7 +28,6 @@
#include "downloader-view.h"
#include "eel-gconf-extensions.h"
#include "ephy-adblock-manager.h"
-#include "ephy-command-manager.h"
#include "ephy-debug.h"
#include "ephy-embed.h"
#include "ephy-embed-event.h"
@@ -65,56 +64,7 @@ struct EphyEmbedPrivate
guint is_setting_zoom : 1;
};
-static void
-impl_manager_do_command (EphyCommandManager *manager,
- const char *command)
-{
- WebKitWebView *web_view = EPHY_EMBED (manager)->priv->web_view;
-
- if (! strcmp (command, "cmd_copy"))
- return webkit_web_view_copy_clipboard (web_view);
- else if (! strcmp (command, "cmd_cut"))
- return webkit_web_view_cut_clipboard (web_view);
- else if (! strcmp (command, "cmd_paste"))
- return webkit_web_view_paste_clipboard (web_view);
- else if (! strcmp (command, "cmd_selectAll"))
- return webkit_web_view_select_all (web_view);
- else if (! strcmp (command, "cmd_undo"))
- return webkit_web_view_undo (web_view);
- else if (! strcmp (command, "cmd_redo"))
- return webkit_web_view_redo (web_view);
-}
-
-static gboolean
-impl_manager_can_do_command (EphyCommandManager *manager,
- const char *command)
-{
- WebKitWebView *web_view = EPHY_EMBED (manager)->priv->web_view;
-
- if (! strcmp (command, "cmd_copy"))
- return webkit_web_view_can_copy_clipboard (web_view);
- else if (! strcmp (command, "cmd_cut"))
- return webkit_web_view_can_cut_clipboard (web_view);
- else if (! strcmp (command, "cmd_paste"))
- return webkit_web_view_can_paste_clipboard (web_view);
- else if (! strcmp (command, "cmd_undo"))
- return webkit_web_view_can_undo (web_view);
- else if (! strcmp (command, "cmd_redo"))
- return webkit_web_view_can_redo (web_view);
-
- return FALSE;
-}
-
-static void
-ephy_command_manager_iface_init (EphyCommandManagerIface *iface)
-{
- iface->do_command = impl_manager_do_command;
- iface->can_do_command = impl_manager_can_do_command;
-}
-
-G_DEFINE_TYPE_WITH_CODE (EphyEmbed, ephy_embed, GTK_TYPE_SCROLLED_WINDOW,
- G_IMPLEMENT_INTERFACE (EPHY_TYPE_COMMAND_MANAGER,
- ephy_command_manager_iface_init))
+G_DEFINE_TYPE (EphyEmbed, ephy_embed, GTK_TYPE_SCROLLED_WINDOW)
static void
uri_changed_cb (WebKitWebView *web_view,
diff --git a/src/ephy-window.c b/src/ephy-window.c
index d4d29c297..635a7798b 100644
--- a/src/ephy-window.c
+++ b/src/ephy-window.c
@@ -24,7 +24,6 @@
#include "ephy-window.h"
#include "ephy-type-builtins.h"
#include "ephy-embed-type-builtins.h"
-#include "ephy-command-manager.h"
#include "ephy-state.h"
#include "ppview-toolbar.h"
#include "window-commands.h"
@@ -1179,20 +1178,18 @@ update_edit_actions_sensitivity (EphyWindow *window, gboolean hide)
else
{
EphyEmbed *embed;
+ WebKitWebView *view;
embed = window->priv->active_embed;
g_return_if_fail (embed != NULL);
- can_copy = ephy_command_manager_can_do_command
- (EPHY_COMMAND_MANAGER (embed), "cmd_copy");
- can_cut = ephy_command_manager_can_do_command
- (EPHY_COMMAND_MANAGER (embed), "cmd_cut");
- can_paste = ephy_command_manager_can_do_command
- (EPHY_COMMAND_MANAGER (embed), "cmd_paste");
- can_undo = ephy_command_manager_can_do_command
- (EPHY_COMMAND_MANAGER (embed), "cmd_undo");
- can_redo = ephy_command_manager_can_do_command
- (EPHY_COMMAND_MANAGER (embed), "cmd_redo");
+ view = EPHY_GET_WEBKIT_WEB_VIEW_FROM_EMBED (embed);
+
+ can_copy = webkit_web_view_can_copy_clipboard (view);
+ can_cut = webkit_web_view_can_cut_clipboard (view);
+ can_paste = webkit_web_view_can_paste_clipboard (view);
+ can_undo = webkit_web_view_can_undo (view);
+ can_redo = webkit_web_view_can_redo (view);
}
action_group = window->priv->action_group;
diff --git a/src/epiphany.h.in b/src/epiphany.h.in
index 7618782c3..656037a40 100644
--- a/src/epiphany.h.in
+++ b/src/epiphany.h.in
@@ -37,7 +37,6 @@
#include <epiphany/ephy-adblock-manager.h>
#include <epiphany/ephy-bookmarks.h>
#include <epiphany/ephy-bookmarks-type-builtins.h>
-#include <epiphany/ephy-command-manager.h>
#include <epiphany/ephy-dialog.h>
#include <epiphany/ephy-embed-container.h>
#include <epiphany/ephy-embed-event.h>
diff --git a/src/window-commands.c b/src/window-commands.c
index c819ac559..e6790c754 100644
--- a/src/window-commands.c
+++ b/src/window-commands.c
@@ -28,7 +28,6 @@
#include "ephy-shell.h"
#include "ephy-embed-persist.h"
#include "ephy-debug.h"
-#include "ephy-command-manager.h"
#include "window-commands.h"
#include "eel-gconf-extensions.h"
#include "ephy-prefs.h"
@@ -376,8 +375,7 @@ window_cmd_edit_undo (GtkAction *action,
if (embed)
{
- ephy_command_manager_do_command (EPHY_COMMAND_MANAGER (embed),
- "cmd_undo");
+ webkit_web_view_undo (EPHY_GET_WEBKIT_WEB_VIEW_FROM_EMBED (embed));
}
}
}
@@ -402,8 +400,7 @@ window_cmd_edit_redo (GtkAction *action,
embed = gtk_widget_get_ancestor (widget, EPHY_TYPE_EMBED);
if (embed)
{
- ephy_command_manager_do_command (EPHY_COMMAND_MANAGER (embed),
- "cmd_redo");
+ webkit_web_view_redo (EPHY_GET_WEBKIT_WEB_VIEW_FROM_EMBED (embed));
}
}
}
@@ -423,8 +420,7 @@ window_cmd_edit_cut (GtkAction *action,
embed = ephy_embed_container_get_active_child (EPHY_EMBED_CONTAINER (window));
g_return_if_fail (embed != NULL);
- ephy_command_manager_do_command (EPHY_COMMAND_MANAGER (embed),
- "cmd_cut");
+ webkit_web_view_cut_clipboard (EPHY_GET_WEBKIT_WEB_VIEW_FROM_EMBED (embed));
}
}
@@ -445,8 +441,7 @@ window_cmd_edit_copy (GtkAction *action,
embed = ephy_embed_container_get_active_child (EPHY_EMBED_CONTAINER (window));
g_return_if_fail (embed != NULL);
- ephy_command_manager_do_command (EPHY_COMMAND_MANAGER (embed),
- "cmd_copy");
+ webkit_web_view_copy_clipboard (EPHY_GET_WEBKIT_WEB_VIEW_FROM_EMBED (embed));
}
}
@@ -467,8 +462,7 @@ window_cmd_edit_paste (GtkAction *action,
embed = ephy_embed_container_get_active_child (EPHY_EMBED_CONTAINER (window));
g_return_if_fail (embed != NULL);
- ephy_command_manager_do_command (EPHY_COMMAND_MANAGER (embed),
- "cmd_paste");
+ webkit_web_view_paste_clipboard (EPHY_GET_WEBKIT_WEB_VIEW_FROM_EMBED (embed));
}
}
@@ -489,8 +483,11 @@ window_cmd_edit_delete (GtkAction *action,
embed = ephy_embed_container_get_active_child (EPHY_EMBED_CONTAINER (window));
g_return_if_fail (embed != NULL);
+ /* FIXME: TODO */
+#if 0
ephy_command_manager_do_command (EPHY_COMMAND_MANAGER (embed),
"cmd_delete");
+#endif
}
}
@@ -512,8 +509,7 @@ window_cmd_edit_select_all (GtkAction *action,
(EPHY_EMBED_CONTAINER (window));
g_return_if_fail (embed != NULL);
- ephy_command_manager_do_command (EPHY_COMMAND_MANAGER (embed),
- "cmd_selectAll");
+ webkit_web_view_select_all (EPHY_GET_WEBKIT_WEB_VIEW_FROM_EMBED (embed));
}
}