summaryrefslogtreecommitdiff
path: root/amiga/cookies.c
diff options
context:
space:
mode:
authorJohn Mark Bell <jmb@netsurf-browser.org>2010-10-05 19:14:46 +0000
committerJohn Mark Bell <jmb@netsurf-browser.org>2010-10-05 19:14:46 +0000
commit6173bb0e6c3bf51cd463f7bc4f725429d9087b2b (patch)
treede3e013699742960b97ee4a5eda240908d0ea8e6 /amiga/cookies.c
parent195c1ea3193f169c6825eca1fc6207e138126e98 (diff)
downloadnetsurf-6173bb0e6c3bf51cd463f7bc4f725429d9087b2b.tar.gz
netsurf-6173bb0e6c3bf51cd463f7bc4f725429d9087b2b.tar.bz2
Merge treeview-redux to trunk
svn path=/trunk/netsurf/; revision=10865
Diffstat (limited to 'amiga/cookies.c')
-rwxr-xr-xamiga/cookies.c149
1 files changed, 10 insertions, 139 deletions
diff --git a/amiga/cookies.c b/amiga/cookies.c
index cffa52337..76e2173f2 100755
--- a/amiga/cookies.c
+++ b/amiga/cookies.c
@@ -1,6 +1,5 @@
/*
- * Copyright 2006 Richard Wilson <info@tinct.net>
- * Copyright 2008 Chris Young <chris@unsatisfactorysoftware.co.uk>
+ * Copyright 2008, 2009 Chris Young <chris@unsatisfactorysoftware.co.uk>
*
* This file is part of NetSurf, http://www.netsurf-browser.org/
*
@@ -17,151 +16,23 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-/** \file
- * Cookies (implementation).
- */
-
-#include <string.h>
-#include "content/urldb.h"
-#include "desktop/cookies.h"
-#include "desktop/tree.h"
-#include "utils/messages.h"
-#include "utils/log.h"
-#include "amiga/cookies.h"
#include <proto/exec.h>
-#include <assert.h>
-#include "utils/utils.h"
-
-static bool cookies_init;
-
-struct node *ami_cookies_find(const char *url);
+#include "amiga/cookies.h"
+#include "desktop/cookies.h"
+#include "amiga/tree.h"
-/**
- * Initialise cookies tree
- */
void ami_cookies_initialise(void)
{
- if(cookies_tree) return;
-
- /* Create an empty tree */
- cookies_tree = AllocVec(sizeof(struct tree),MEMF_CLEAR | MEMF_PRIVATE);
- if (!cookies_tree) {
- warn_user("NoMemory", 0);
- return;
- }
- cookies_tree->root = tree_create_folder_node(NULL, "Root");
- if (!cookies_tree->root) {
- warn_user("NoMemory", 0);
- FreeVec(cookies_tree);
- cookies_tree = NULL;
- }
- cookies_tree->root->expanded = true;
- cookies_tree->movable = false;
- cookies_tree->no_drag = true;
-
- cookies_init = true;
- urldb_iterate_cookies(cookies_update);
- cookies_init = false;
- tree_initialise(cookies_tree);
-}
-
-/**
- * Perform cookie addition
- *
- * \param data Cookie data for a domain, or NULL
- * \return true (for urldb_iterate_entries)
- */
-bool cookies_update(const char *domain, const struct cookie_data *data)
-{
- struct node *parent;
- struct node *node = NULL;
- struct node *child;
- struct node *add;
- const struct cookie_data *cookie = NULL;
- bool expanded;
-
- assert(domain);
-
- /* check if we're a domain, and add get the first cookie */
- if (data)
- for (cookie = data; cookie->prev; cookie = cookie->prev);
-
- if (!cookies_init) {
- node = ami_cookies_find(domain);
- if (node) {
- /* mark as deleted so we don't remove the cookies */
- expanded = node->expanded;
- for (child = node->child; child; child = child->next)
- child->deleted = true;
- if (node->child)
- tree_delete_node(cookies_tree, node->child,
- true);
- /* deleting will have contracted our node */
- node->expanded = expanded;
- }
- if (!data) {
- if (!node)
- return true;
- tree_delete_node(cookies_tree, node, false);
- tree_handle_node_changed(cookies_tree,
- cookies_tree->root, true, false);
- return true;
- }
- }
-
- if (!node) {
- for (parent = cookies_tree->root->child; parent;
- parent = parent->next) {
- if (strcmp(domain, parent->data.text) == 0)
- break;
- }
- if (!parent) {
- node = tree_create_folder_node(cookies_tree->root,
- domain);
- } else {
- node = parent;
- }
- }
- if (!node)
- return true;
- node->editable = false;
+ cookies_window = ami_tree_create(cookies_get_tree_flags(), NULL);
- for (; cookie; cookie = cookie->next) {
- add = tree_create_cookie_node(node, cookie);
- if (add && !cookies_init)
- tree_handle_node_changed(cookies_tree, add,
- true, false);
- }
- if (!cookies_init) {
- tree_handle_node_changed(cookies_tree, node,
- true, false);
-/*
- tree_redraw_area(cookies_tree,
- node->box.x - NODE_INSTEP,
- 0, NODE_INSTEP, 16384);
-*/
- }
- return true;
-}
-
-/**
- * Find an entry in the cookie tree
- *
- * \param url The URL to find
- * \return Pointer to node, or NULL if not found
- */
-struct node *ami_cookies_find(const char *url)
-{
- struct node *node;
+ if(!cookies_window) return;
- for (node = cookies_tree->root->child; node; node = node->next) {
- if (!strcmp(url, node->data.text))
- return node;
- }
- return NULL;
+ cookies_initialise(ami_tree_get_tree(cookies_window));
}
void ami_cookies_free()
{
- FreeVec(cookies_tree);
+ cookies_cleanup();
+ ami_tree_destroy(cookies_window);
+ cookies_window = NULL;
}