summaryrefslogtreecommitdiff
path: root/amiga/file.c
diff options
context:
space:
mode:
authorJohn-Mark Bell <jmb@netsurf-browser.org>2012-11-03 23:19:28 +0000
committerJohn-Mark Bell <jmb@netsurf-browser.org>2012-11-03 23:19:45 +0000
commitf824ab8af4d3d2e34bd59b860b9c6d5568c3bb44 (patch)
tree70f5f8d5a3ec2f952b18f59a6ed632f207f8a50f /amiga/file.c
parent3f1b68384562fe294a1a263214a3fd26ea869bc9 (diff)
downloadnetsurf-f824ab8af4d3d2e34bd59b860b9c6d5568c3bb44.tar.gz
netsurf-f824ab8af4d3d2e34bd59b860b9c6d5568c3bb44.tar.bz2
Port save complete to libdom.
Diffstat (limited to 'amiga/file.c')
-rw-r--r--amiga/file.c32
1 files changed, 31 insertions, 1 deletions
diff --git a/amiga/file.c b/amiga/file.c
index c2e4f13ad..8157180ec 100644
--- a/amiga/file.c
+++ b/amiga/file.c
@@ -99,6 +99,36 @@ void ami_file_open(struct gui_window_2 *gwin)
}
}
+static void ami_file_set_type(const char *path, lwc_string *mime_type)
+{
+ content_type type = content_factory_type_from_mime_type(mime_type);
+ const char *default_type;
+
+ switch(type)
+ {
+ case CONTENT_HTML:
+ default_type = "html";
+ break;
+ case CONTENT_CSS:
+ default_type = "css";
+ break;
+ default:
+ default_type = NULL;
+ break;
+ }
+
+ if (default_type != NULL) {
+ struct DiskObject *dobj = NULL;
+
+ dobj = GetIconTags(NULL,ICONGETA_GetDefaultName,default_type,
+ ICONGETA_GetDefaultType,WBPROJECT,
+ TAG_DONE);
+
+ PutIconTags(path, dobj,
+ ICONPUTA_NotifyWorkbench, TRUE, TAG_DONE);
+ }
+}
+
void ami_file_save(int type, char *fname, struct Window *win,
struct hlcache_handle *object, struct hlcache_handle *favicon,
struct selection *sel)
@@ -134,7 +164,7 @@ void ami_file_save(int type, char *fname, struct Window *win,
if(lock = CreateDir(fname))
{
UnLock(lock);
- save_complete(object, fname);
+ save_complete(object, fname, ami_file_set_type);
amiga_icon_superimpose_favicon(fname, favicon, NULL);
}
break;