summaryrefslogtreecommitdiff
path: root/amiga/hotlist.c
diff options
context:
space:
mode:
authorChris Young <chris@unsatisfactorysoftware.co.uk>2012-11-29 22:08:47 +0000
committerChris Young <chris@unsatisfactorysoftware.co.uk>2012-11-29 22:08:47 +0000
commitd66e9c34a8e5e6081541c2b7bfd1e97012289494 (patch)
tree7a0b465997360be856b97eebf8ae5ac09d0805b8 /amiga/hotlist.c
parentec79063155c809d52e54812e0045900bbad53532 (diff)
downloadnetsurf-d66e9c34a8e5e6081541c2b7bfd1e97012289494.tar.gz
Create "menu" and "toolbar" directories in the hotlist if they don't exist on startup
Diffstat (limited to 'amiga/hotlist.c')
-rwxr-xr-xamiga/hotlist.c37
1 files changed, 36 insertions, 1 deletions
diff --git a/amiga/hotlist.c b/amiga/hotlist.c
index 6469cbd90..b67e10fd4 100755
--- a/amiga/hotlist.c
+++ b/amiga/hotlist.c
@@ -18,8 +18,41 @@
#include <proto/exec.h>
#include "amiga/hotlist.h"
-#include "desktop/hotlist.h"
#include "amiga/tree.h"
+#include "desktop/hotlist.h"
+#include "utils/messages.h"
+
+bool ami_hotlist_find_dir(struct tree *tree, const char *dir_name)
+{
+ struct node *root = tree_node_get_child(tree_get_root(tree));
+ struct node *node;
+ struct node_element *element;
+
+ for (node = root; node; node = tree_node_get_next(node))
+ {
+ element = tree_node_find_element(node, TREE_ELEMENT_TITLE, NULL);
+ if(!element) element = tree_node_find_element(node, TREE_ELEMENT_TITLE, NULL);
+ if(element && (strcmp(tree_node_element_get_text(element), dir_name) == 0))
+ {
+ return true;
+ }
+ }
+
+ return false;
+}
+
+void ami_hotlist_add_default_dirs(struct tree *tree)
+{
+ if(ami_hotlist_find_dir(tree, messages_get("HotlistMenu")) == false) {
+ tree_create_folder_node(tree, tree_get_root(tree),
+ messages_get("HotlistMenu"), true, false, false);
+ }
+
+ if(ami_hotlist_find_dir(tree, messages_get("HotlistToolbar")) == false) {
+ tree_create_folder_node(tree, tree_get_root(tree),
+ messages_get("HotlistToolbar"), true, false, false);
+ }
+}
void ami_hotlist_initialise(const char *hotlist_file)
{
@@ -30,6 +63,8 @@ void ami_hotlist_initialise(const char *hotlist_file)
hotlist_initialise(ami_tree_get_tree(hotlist_window),
hotlist_file,
tree_directory_icon_name);
+
+ ami_hotlist_add_default_dirs(ami_tree_get_tree(hotlist_window));
}
void ami_hotlist_free(const char *hotlist_file)