claws.git
10 months agorecognise model/* mime type
Paul [Sun, 24 Mar 2019 13:38:58 +0000 (13:38 +0000)]
recognise model/* mime type

fixes bug 4188, 'STL file is sent not as an attachment but as its base64
representation in plaintext'

10 months agoFix segfault using gdata plugin in German locales
Ricardo Mones [Wed, 13 Mar 2019 21:46:59 +0000 (22:46 +0100)]
Fix segfault using gdata plugin in German locales

Reported as Debian bug #923980

10 months agoRemove mgu_free_list() and mgu_free_dlist()
Andrej Kacian [Wed, 13 Mar 2019 20:58:56 +0000 (21:58 +0100)]
Remove mgu_free_list() and mgu_free_dlist()

We depend on glib 2.28, which has g_slist_free_full()
and g_list_free_full(), which we can use instead.

10 months agoRemove functions mgu_*_test_unq_nc()
Andrej Kacian [Wed, 13 Mar 2019 20:39:28 +0000 (21:39 +0100)]
Remove functions mgu_*_test_unq_nc()

Only one of them was being used, only once, and
it was replaced by a straightforward call to
g_list_find_custom().

10 months agoRemove mgu_clear_list() function
Andrej Kacian [Wed, 13 Mar 2019 19:55:36 +0000 (20:55 +0100)]
Remove mgu_clear_list() function

Its remaining uses were unnecessary, because in each
case, the list was being freed immediately afterwards,
without freeing the data. This function only set the
list items' data pointer to NULL, which served no
purpose here.

10 months agoFix two small memory leaks in addressbook code
Andrej Kacian [Wed, 13 Mar 2019 19:54:20 +0000 (20:54 +0100)]
Fix two small memory leaks in addressbook code

In each case, the GList structure itself was not
being freed.

10 months agoFix a memory leak in Pine address book support
Andrej Kacian [Wed, 13 Mar 2019 19:19:59 +0000 (20:19 +0100)]
Fix a memory leak in Pine address book support

Also removed mgu_clear_slist(), since it is not
used anywhere anymore.

10 months agoMake Fancy plugin's download-link feature following redirections.
wwp [Mon, 11 Mar 2019 10:33:10 +0000 (11:33 +0100)]
Make Fancy plugin's download-link feature following redirections.

10 months agoFix buf #4166: corrupted double-linked list
Andrej Kacian [Sun, 10 Mar 2019 19:27:34 +0000 (20:27 +0100)]
Fix buf #4166: corrupted double-linked list

10 months agoStop proceeding if file-save-as has been cancelled.
wwp [Sun, 10 Mar 2019 08:06:50 +0000 (09:06 +0100)]
Stop proceeding if file-save-as has been cancelled.

10 months agoDo not throw an error when cancelling 'Save email as...'.
wwp [Sun, 10 Mar 2019 08:05:33 +0000 (09:05 +0100)]
Do not throw an error when cancelling 'Save email as...'.

10 months agoAlways remove local images from Litehtml image cache
Andrej Kacian [Sat, 9 Mar 2019 21:53:10 +0000 (22:53 +0100)]
Always remove local images from Litehtml image cache

Since their "url" in cache only includes MIME
file name, they are not guaranteed to be unique
across different messages.

10 months agoAdded support for local image attachments to the Litehtml plugin
Andrej Kacian [Sat, 9 Mar 2019 21:32:32 +0000 (22:32 +0100)]
Added support for local image attachments to the Litehtml plugin

10 months agoAdd missing config.h include to utils.h
Andrej Kacian [Sat, 9 Mar 2019 20:51:29 +0000 (21:51 +0100)]
Add missing config.h include to utils.h

It should be there, since we refer to a lot of HAVE_
macros defined in config.h

10 months agoAdd a forgotten fclose() call
Andrej Kacian [Sat, 9 Mar 2019 20:22:34 +0000 (21:22 +0100)]
Add a forgotten fclose() call

Fixes CID 1443021.

10 months agofix build with gdk-pixbuf 2.26
Paul [Thu, 7 Mar 2019 07:20:36 +0000 (07:20 +0000)]
fix build with gdk-pixbuf 2.26

10 months agoRestore compatibility with gdk-pixbuf version 2.26
Andrej Kacian [Wed, 6 Mar 2019 17:11:03 +0000 (18:11 +0100)]
Restore compatibility with gdk-pixbuf version 2.26

10 months agoMake textview load image attachments not via temporary files
Andrej Kacian [Tue, 5 Mar 2019 22:13:29 +0000 (23:13 +0100)]
Make textview load image attachments not via temporary files

This causes a change in how interacting with the image
attachments works. Previously, clicking the
"[attachment info]" clickable line above the image would
do different actions than clicking the image itself, which
would have an URI pointing to a temporary image file.
Now, they both do the same thing - left-click selects
the attachment, right-click shows generic attachment
context menu.

10 months agoRewrite image_viewer.c to not create a temporary file for the image being loaded
Andrej Kacian [Tue, 5 Mar 2019 22:01:26 +0000 (23:01 +0100)]
Rewrite image_viewer.c to not create a temporary file for the image being loaded

Instead, we use new procmime_get_part_as_inputstream().

10 months agoUpdate callers of procmime_get_part_as_string()
Andrej Kacian [Tue, 5 Mar 2019 22:00:52 +0000 (23:00 +0100)]
Update callers of procmime_get_part_as_string()

10 months agoWrite procmime_get_part_as_inputstream()
Andrej Kacian [Tue, 5 Mar 2019 21:59:10 +0000 (22:59 +0100)]
Write procmime_get_part_as_inputstream()

We also change procmime_get_part_as_string() to return
a void* instead of a gchar*, and add an option to not
null-terminate the returned buffer.

10 months agoRewrite procmime_get_part_as_string() to not use a temporary file
Andrej Kacian [Tue, 5 Mar 2019 20:54:48 +0000 (21:54 +0100)]
Rewrite procmime_get_part_as_string() to not use a temporary file

10 months agoReview label of webkit menu items in Fancy: remove the '(enable
wwp [Tue, 5 Mar 2019 11:57:15 +0000 (12:57 +0100)]
Review label of webkit menu items in Fancy: remove the '(enable
remote content)' not-so-clear mention, and capitalize words to
follow other labels.

10 months agoFix a typo in previous commit
Andrej Kacian [Tue, 5 Mar 2019 07:49:29 +0000 (08:49 +0100)]
Fix a typo in previous commit

10 months agoRequire GLib >= 2.36 for Litehtml plugin
Andrej Kacian [Tue, 5 Mar 2019 07:48:11 +0000 (08:48 +0100)]
Require GLib >= 2.36 for Litehtml plugin

10 months agoMake Litehtml image loading non-blocking using threads
Andrej Kacian [Tue, 5 Mar 2019 07:40:32 +0000 (08:40 +0100)]
Make Litehtml image loading non-blocking using threads

10 months agoAdd a mutex lock for Litehtml plugin image cache
Andrej Kacian [Tue, 5 Mar 2019 07:40:20 +0000 (08:40 +0100)]
Add a mutex lock for Litehtml plugin image cache

10 months agoMerge branch 'master' of ssh+git://git.claws-mail.org/home/git/claws
Michael Rasmussen [Mon, 4 Mar 2019 23:12:46 +0000 (00:12 +0100)]
Merge branch 'master' of ssh+git://git.claws-mail.org/home/git/claws

10 months agoFix possible segmentation fault
Michael Rasmussen [Mon, 4 Mar 2019 23:12:33 +0000 (00:12 +0100)]
Fix possible segmentation fault

Signed-off-by: Michael Rasmussen <mir@datanom.net>
10 months agoWrite missing prefs_done() in Litehtml plugin
Andrej Kacian [Mon, 4 Mar 2019 20:37:23 +0000 (21:37 +0100)]
Write missing prefs_done() in Litehtml plugin

10 months agoRemove useless debug code. Add copyright
Michael Rasmussen [Sat, 2 Mar 2019 12:25:13 +0000 (13:25 +0100)]
Remove useless debug code. Add copyright

Signed-off-by: Michael Rasmussen <mir@datanom.net>
10 months agoadd 2 includes
Paul [Fri, 1 Mar 2019 16:33:52 +0000 (16:33 +0000)]
add 2 includes

prevents implicit declaration warnings, as reported by buildbot

10 months agoRewrite pgp_locate_armor_header() to more strictly follow RFC4880
Andrej Kacian [Fri, 1 Mar 2019 14:45:45 +0000 (15:45 +0100)]
Rewrite pgp_locate_armor_header() to more strictly follow RFC4880

Not only has the armor header be at the beginning of
the line, but also there cannot be any non-whitespace
after it on the same line.

10 months agoSimplify vcalviewer_get_uid_from_mimeinfo()
Andrej Kacian [Fri, 1 Mar 2019 14:05:58 +0000 (15:05 +0100)]
Simplify vcalviewer_get_uid_from_mimeinfo()

10 months agoSimplify Litehtml plugin's show_mimepart
Andrej Kacian [Fri, 1 Mar 2019 13:52:22 +0000 (14:52 +0100)]
Simplify Litehtml plugin's show_mimepart

10 months agoMove pgpcore's get_part_as_string() to procmime.c
Andrej Kacian [Fri, 1 Mar 2019 13:51:58 +0000 (14:51 +0100)]
Move pgpcore's get_part_as_string() to procmime.c

10 months agoFix previous commit
Andrej Kacian [Fri, 1 Mar 2019 13:43:20 +0000 (14:43 +0100)]
Fix previous commit

Functions from pgp_utils.c were not included in the resulting
shared object file

10 months agoMove file header to the top in pgp_utils.c
Andrej Kacian [Fri, 1 Mar 2019 13:29:53 +0000 (14:29 +0100)]
Move file header to the top in pgp_utils.c

10 months agoRemove pgpcore's fp_read_noconv() in favour of file_read_stream_to_str_no_recode...
Andrej Kacian [Fri, 1 Mar 2019 13:27:17 +0000 (14:27 +0100)]
Remove pgpcore's fp_read_noconv() in favour of file_read_stream_to_str_no_recode() from file-utils.c

11 months agoUse Pango to render text in Litehtml plugin
Andrej Kacian [Mon, 25 Feb 2019 22:19:24 +0000 (23:19 +0100)]
Use Pango to render text in Litehtml plugin

Since we're no longer using the "toy" cairo text API, we
can now render all Unicode glyphs, and the code even ends
up slightly simpler.

The text-related Litehtml callbacks have been moved from
container_linux to lh_widget class, and into a separate
.cpp file.

11 months agoCheck result of fputs (CID 1440024)
Ricardo Mones [Tue, 19 Feb 2019 18:23:38 +0000 (19:23 +0100)]
Check result of fputs (CID 1440024)

11 months agoCheck writting crash-indicator (CID 1440021)
Ricardo Mones [Tue, 19 Feb 2019 18:23:10 +0000 (19:23 +0100)]
Check writting crash-indicator (CID 1440021)

11 months agoUse prepend document base url to #fragment links in Litehtml plugin
Andrej Kacian [Sun, 17 Feb 2019 23:46:24 +0000 (00:46 +0100)]
Use prepend document base url to #fragment links in Litehtml plugin

11 months agoAdd default_font preference to Litehtml plugin
Andrej Kacian [Sun, 17 Feb 2019 19:48:17 +0000 (20:48 +0100)]
Add default_font preference to Litehtml plugin

11 months agoMake key accelerators from menu work in addressbook window
Andrej Kacian [Thu, 14 Feb 2019 17:08:56 +0000 (18:08 +0100)]
Make key accelerators from menu work in addressbook window

11 months agoChange addressbook's internal UI name for Edit submenu to match its label
Andrej Kacian [Thu, 14 Feb 2019 16:55:42 +0000 (17:55 +0100)]
Change addressbook's internal UI name for Edit submenu to match its label

11 months agofix bug 4155, 'remember directory of last saving'
Paul [Thu, 14 Feb 2019 14:12:35 +0000 (14:12 +0000)]
fix bug 4155, 'remember directory of last saving'

drop messageview_save_as(), use only summary_save_as()

11 months agoFix build error
Michael Rasmussen [Tue, 12 Feb 2019 23:47:34 +0000 (00:47 +0100)]
Fix build error

Signed-off-by: Michael Rasmussen <mir@datanom.net>
11 months agoMake Litehtml display sub- and superscript correctly
Andrej Kacian [Mon, 11 Feb 2019 23:54:07 +0000 (00:54 +0100)]
Make Litehtml display sub- and superscript correctly

11 months agoUse height of the viewport, not the scrolled window when telling Litehtml size of...
Andrej Kacian [Mon, 11 Feb 2019 23:32:44 +0000 (00:32 +0100)]
Use height of the viewport, not the scrolled window when telling Litehtml size of the area it has available for rendering

11 months agoReset Litehtml scrolledwindow to top-left when displaying new content
Andrej Kacian [Mon, 11 Feb 2019 22:10:45 +0000 (23:10 +0100)]
Reset Litehtml scrolledwindow to top-left when displaying new content

11 months agoFix typo in variable name
Ricardo Mones [Sun, 10 Feb 2019 11:51:53 +0000 (12:51 +0100)]
Fix typo in variable name

11 months agoShow number of cleared Litehtml cache images on debug
Andrej Kacian [Fri, 8 Feb 2019 19:09:38 +0000 (20:09 +0100)]
Show number of cleared Litehtml cache images on debug

11 months agoAdd image_cache_size pref to Litehtml
Andrej Kacian [Fri, 8 Feb 2019 19:05:06 +0000 (20:05 +0100)]
Add image_cache_size pref to Litehtml

11 months agoImplement size limit for Litehtml image cache
Andrej Kacian [Fri, 8 Feb 2019 18:42:54 +0000 (19:42 +0100)]
Implement size limit for Litehtml image cache

11 months agoSwitch Litehtml's image cache from std::map to std::list
Andrej Kacian [Fri, 8 Feb 2019 17:33:00 +0000 (18:33 +0100)]
Switch Litehtml's image cache from std::map to std::list

This makes the cache ordered, so we are able to remove
oldest entries if we want to trim memory usage.

11 months agoDo not build the litehtml plugin if a C++ compiler is not available
Andrej Kacian [Sun, 3 Feb 2019 13:50:30 +0000 (14:50 +0100)]
Do not build the litehtml plugin if a C++ compiler is not available

11 months agoMake Litehtml's "Copy Link" menuitem actually do something
Andrej Kacian [Fri, 1 Feb 2019 20:33:36 +0000 (21:33 +0100)]
Make Litehtml's "Copy Link" menuitem actually do something

11 months agoImplement link context menu in Litehtml
Andrej Kacian [Fri, 1 Feb 2019 15:55:48 +0000 (16:55 +0100)]
Implement link context menu in Litehtml

11 months agoAdd lh_widget::get_href_at()
Andrej Kacian [Fri, 1 Feb 2019 15:55:15 +0000 (16:55 +0100)]
Add lh_widget::get_href_at()

11 months agoFix possible memory leak
Michael Rasmussen [Tue, 29 Jan 2019 23:29:12 +0000 (00:29 +0100)]
Fix possible memory leak

Signed-off-by: Michael Rasmussen <mir@datanom.net>
11 months agoMake Litehtml's curl writefunction add data directly to the GInputStream
Andrej Kacian [Tue, 29 Jan 2019 23:09:11 +0000 (00:09 +0100)]
Make Litehtml's curl writefunction add data directly to the GInputStream

This saves us some unnecessary reallocs, as data
inside a GMemoryInputStream do not need to be
contiguous.

11 months agoMake Litehtml's curl write function a regular function instead of a static member...
Andrej Kacian [Tue, 29 Jan 2019 22:52:36 +0000 (23:52 +0100)]
Make Litehtml's curl write function a regular function instead of a static member function of the http class

11 months agoFix a memory leak in Litehtml plugin's http loader
Andrej Kacian [Tue, 29 Jan 2019 22:13:51 +0000 (23:13 +0100)]
Fix a memory leak in Litehtml plugin's http loader

11 months agoFix a huge memory leak in Litehtml
Andrej Kacian [Tue, 29 Jan 2019 21:23:54 +0000 (22:23 +0100)]
Fix a huge memory leak in Litehtml

11 months agoProperly free previous document from memory in litehtml's clear()
Andrej Kacian [Tue, 29 Jan 2019 20:47:53 +0000 (21:47 +0100)]
Properly free previous document from memory in litehtml's clear()

We also call paint_white() earlier in redraw().
This results in properly clearing the previously
rendered html content when opening a different
HTML part.

11 months agoMake Litehtml plugin open links in configured way
Andrej Kacian [Tue, 29 Jan 2019 19:12:41 +0000 (20:12 +0100)]
Make Litehtml plugin open links in configured way

11 months agoRefactor http class to prevent memory leak
Michael Rasmussen [Sun, 27 Jan 2019 11:21:37 +0000 (12:21 +0100)]
Refactor http class to prevent memory leak

Signed-off-by: Michael Rasmussen <mir@datanom.net>
11 months agoRemove unused stuff
Michael Rasmussen [Sun, 27 Jan 2019 00:11:24 +0000 (01:11 +0100)]
Remove unused stuff

Signed-off-by: Michael Rasmussen <mir@datanom.net>
11 months agoAdded preferences page to LiteHTML plugin and make it respect the enable_remote_conte...
Andrej Kacian [Sat, 26 Jan 2019 20:59:15 +0000 (21:59 +0100)]
Added preferences page to LiteHTML plugin and make it respect the enable_remote_content pref

Only "enable_remote_content" pref for now.

11 months agoNo need to configure CURLOPT_WRITEFUNCTION twice
Michael Rasmussen [Fri, 25 Jan 2019 23:15:04 +0000 (00:15 +0100)]
No need to configure CURLOPT_WRITEFUNCTION twice

Signed-off-by: Michael Rasmussen <mir@datanom.net>
11 months agoUse debug_print() and g_warning() instead of g_log() in litehtml_viewer
Andrej Kacian [Fri, 25 Jan 2019 22:49:32 +0000 (23:49 +0100)]
Use debug_print() and g_warning() instead of g_log() in litehtml_viewer

11 months agoFix URL display in statusbar when hovering over a link in litehtml_viewer
Andrej Kacian [Fri, 25 Jan 2019 21:49:49 +0000 (22:49 +0100)]
Fix URL display in statusbar when hovering over a link in litehtml_viewer

11 months agoUpdate current version of litehtml. Fix a crash when document contains no fonts
Michael Rasmussen [Sat, 1 Dec 2018 17:36:46 +0000 (18:36 +0100)]
Update current version of litehtml. Fix a crash when document contains no fonts

Signed-off-by: Michael Rasmussen <mir@datanom.net>
11 months agoUse statusbar for notification. Begin print implementation
Michael Rasmussen [Fri, 16 Nov 2018 16:18:45 +0000 (17:18 +0100)]
Use statusbar for notification. Begin print implementation

Signed-off-by: Michael Rasmussen <mir@datanom.net>
11 months agoProper fix for memory leak
Michael Rasmussen [Fri, 16 Nov 2018 16:13:05 +0000 (17:13 +0100)]
Proper fix for memory leak

Signed-off-by: Michael Rasmussen <mir@datanom.net>
11 months agoFix memory leak
Michael Rasmussen [Thu, 15 Nov 2018 22:12:11 +0000 (23:12 +0100)]
Fix memory leak

Signed-off-by: Michael Rasmussen <mir@datanom.net>
11 months agoDo not use G_LOG_LEVEL_ERROR. Makes claws crash
Michael Rasmussen [Thu, 15 Nov 2018 22:06:29 +0000 (23:06 +0100)]
Do not use G_LOG_LEVEL_ERROR. Makes claws crash

Signed-off-by: Michael Rasmussen <mir@datanom.net>
11 months agoFix missing includes
Michael Rasmussen [Sat, 10 Nov 2018 02:11:21 +0000 (03:11 +0100)]
Fix missing includes

Signed-off-by: Michael Rasmussen <mir@datanom.net>
11 months agoFix wrong cursor type
Michael Rasmussen [Fri, 9 Nov 2018 16:08:56 +0000 (17:08 +0100)]
Fix wrong cursor type

Signed-off-by: Michael Rasmussen <mir@datanom.net>
11 months agoChange cursor type when hoover over link
Michael Rasmussen [Fri, 9 Nov 2018 16:00:50 +0000 (17:00 +0100)]
Change cursor type when hoover over link

Signed-off-by: Michael Rasmussen <mir@datanom.net>
11 months agoUpdate TODO
Michael Rasmussen [Fri, 9 Nov 2018 00:57:34 +0000 (01:57 +0100)]
Update TODO

Signed-off-by: Michael Rasmussen <mir@datanom.net>
11 months agoImplemented support for links
Michael Rasmussen [Fri, 9 Nov 2018 00:56:29 +0000 (01:56 +0100)]
Implemented support for links

Signed-off-by: Michael Rasmussen <mir@datanom.net>
11 months agoI am tired ;-)
Michael Rasmussen [Wed, 7 Nov 2018 23:50:37 +0000 (00:50 +0100)]
I am tired ;-)

Signed-off-by: Michael Rasmussen <mir@datanom.net>
11 months agoCleaner code a fix memory leak
Michael Rasmussen [Wed, 7 Nov 2018 23:45:52 +0000 (00:45 +0100)]
Cleaner code a fix memory leak

Signed-off-by: Michael Rasmussen <mir@datanom.net>
11 months agoRefactor image loading to a separate class. Add dependency to curl
Michael Rasmussen [Wed, 7 Nov 2018 22:49:35 +0000 (23:49 +0100)]
Refactor image loading to a separate class. Add dependency to curl

Signed-off-by: Michael Rasmussen <mir@datanom.net>
11 months agoImplement image handling
Michael Rasmussen [Wed, 7 Nov 2018 02:20:11 +0000 (03:20 +0100)]
Implement image handling

Signed-off-by: Michael Rasmussen <mir@datanom.net>
11 months agoInitial commit of litehtml_viewer
Michael Rasmussen [Tue, 6 Nov 2018 18:50:31 +0000 (19:50 +0100)]
Initial commit of litehtml_viewer
See TODO for missing functionality.

Signed-off-by: Michael Rasmussen <mir@datanom.net>
11 months agoFix a small memory leak in rssyl_remove_msgs()
Andrej Kacian [Fri, 8 Feb 2019 18:49:27 +0000 (19:49 +0100)]
Fix a small memory leak in rssyl_remove_msgs()

11 months agoput displayed headers on the right, hidden headers on the left. a layout shared by...
Paul [Tue, 29 Jan 2019 13:30:26 +0000 (13:30 +0000)]
put displayed headers on the right, hidden headers on the left. a layout shared by other, similar prefs windows

11 months agoFix possible stack overflow in vcalendar's Curl data handler
Andrej Kacian [Sun, 27 Jan 2019 10:45:38 +0000 (11:45 +0100)]
Fix possible stack overflow in vcalendar's Curl data handler

Allocate the VLA on heap instead.

11 months agoUse hardcoded SHA digest length in pkcs5_pbkdf2.c
Andrej Kacian [Sun, 27 Jan 2019 10:38:36 +0000 (11:38 +0100)]
Use hardcoded SHA digest length in pkcs5_pbkdf2.c

This makes -Wvla happy and saves us two GnuTLS API calls
with no real downside.

11 months agoMake is_toplvl_domain() aware that TLDs can be longer than 6 characters
Andrej Kacian [Sun, 27 Jan 2019 09:50:22 +0000 (10:50 +0100)]
Make is_toplvl_domain() aware that TLDs can be longer than 6 characters

12 months agoDo not define our own strcasestr() if it is available
Andrej Kacian [Fri, 25 Jan 2019 22:27:18 +0000 (23:27 +0100)]
Do not define our own strcasestr() if it is available

12 months agoFix a compiler warning
Andrej Kacian [Sun, 20 Jan 2019 19:00:49 +0000 (20:00 +0100)]
Fix a compiler warning

12 months agoRemove unneeded w32_stdio.c
Andrej Kacian [Sun, 20 Jan 2019 18:45:23 +0000 (19:45 +0100)]
Remove unneeded w32_stdio.c

12 months agoDisable operations around the x_display variable on non-Unix
Andrej Kacian [Sun, 20 Jan 2019 18:41:00 +0000 (19:41 +0100)]
Disable operations around the x_display variable on non-Unix

12 months agoUse G_GSIZE_FORMAT for printing time_t values
Andrej Kacian [Sun, 20 Jan 2019 18:33:34 +0000 (19:33 +0100)]
Use G_GSIZE_FORMAT for printing time_t values

12 months agoReplace deprecated _sleep() with Sleep() in w32_unistd.c
Andrej Kacian [Sun, 20 Jan 2019 18:15:04 +0000 (19:15 +0100)]
Replace deprecated _sleep() with Sleep() in w32_unistd.c

12 months agoAdd a menu item to open debug log file on Windows
Andrej Kacian [Sun, 20 Jan 2019 18:06:32 +0000 (19:06 +0100)]
Add a menu item to open debug log file on Windows