claws.git
7 weeks agoFix build of pgpcore unit test gtk3
Andrej Kacian [Mon, 26 Aug 2019 20:17:46 +0000 (22:17 +0200)]
Fix build of pgpcore unit test

7 weeks agoUpdate litehtml_viewer to build on Windows
Andrej Kacian [Mon, 26 Aug 2019 20:05:23 +0000 (22:05 +0200)]
Update litehtml_viewer to build on Windows

7 weeks agoFix handling deleted feed items where modified and published dates do not match
Andrej Kacian [Mon, 26 Aug 2019 15:50:20 +0000 (17:50 +0200)]
Fix handling deleted feed items where modified and published dates do not match

7 weeks agoFix comparison for RSS feed items without text
Andrej Kacian [Mon, 26 Aug 2019 15:42:52 +0000 (17:42 +0200)]
Fix comparison for RSS feed items without text

7 weeks agoFix const correctness
Ricardo Mones [Wed, 21 Aug 2019 09:37:22 +0000 (11:37 +0200)]
Fix const correctness

Fixes "lh_viewer.c:97:19: warning: initialization discards ‘const’
qualifier from pointer target type"

7 weeks agoDon't call strncpy with mismatching length
Ricardo Mones [Wed, 21 Aug 2019 09:36:40 +0000 (11:36 +0200)]
Don't call strncpy with mismatching length

Fixes "vcard.c:238:2: warning: ‘strncpy’ output truncated before
terminating nul copying as many bytes from a string as its length"

7 weeks agoRemove unused variable
Ricardo Mones [Wed, 21 Aug 2019 09:35:54 +0000 (11:35 +0200)]
Remove unused variable

Fixes "textview.c:721:18: warning: unused variable ‘stream’"

7 weeks agoMBOX import: give a better estimation of the time left and grey out widgets while...
Colin Leroy [Tue, 13 Aug 2019 08:13:29 +0000 (10:13 +0200)]
MBOX import: give a better estimation of the time left and grey out widgets while importing

7 weeks agoFix bug #4237 - 403 is Forbidden not Unauthorized
Colin Leroy [Sat, 10 Aug 2019 15:35:17 +0000 (17:35 +0200)]
Fix bug #4237 - 403 is Forbidden not Unauthorized

2 months agoremove "The following file has been attached..." dialogue
Paul [Thu, 8 Aug 2019 18:26:26 +0000 (19:26 +0100)]
remove "The following file has been attached..." dialogue

don't show the needless "The following file has been attached..."
dialogue when attaching files by drag'n'drop

2 months agomore translation updates
Paul [Fri, 26 Jul 2019 08:55:39 +0000 (09:55 +0100)]
more translation updates

2 months agoperl: fix incoming typos in pod
Ricardo Mones [Wed, 7 Aug 2019 14:41:04 +0000 (16:41 +0200)]
perl: fix incoming typos in pod

2 months agoFix a failed assertion in NNTP group list dialog
Andrej Kacian [Sun, 4 Aug 2019 10:20:48 +0000 (12:20 +0200)]
Fix a failed assertion in NNTP group list dialog

The code was trying to expand nodes of already subscribed
newsgroups, even if those newsgroups weren't being displayed
in the list, usually because of an active search pattern.

2 months agofor release 3.17.4
Paul [Fri, 26 Jul 2019 10:58:35 +0000 (11:58 +0100)]
for release 3.17.4

2 months agoFix leak on error variable
Ricardo Mones [Fri, 26 Jul 2019 10:51:13 +0000 (12:51 +0200)]
Fix leak on error variable

2 months agoAdd minimalistic plugin description
Ricardo Mones [Fri, 26 Jul 2019 10:45:08 +0000 (12:45 +0200)]
Add minimalistic plugin description

Thanks Andrej for the inspiration:
https://lists.claws-mail.org/pipermail/users/2019-March/023861.html

2 months agoDon't show mojibake when encoding is not UTF-8
Ricardo Mones [Fri, 26 Jul 2019 10:31:57 +0000 (12:31 +0200)]
Don't show mojibake when encoding is not UTF-8

Litehtml expect displayed strings in UTF-8, so convert message part
before displaying.

2 months agoUpdate list of TLDs for release
Ricardo Mones [Fri, 26 Jul 2019 10:26:02 +0000 (12:26 +0200)]
Update list of TLDs for release

2 months agoUpdate French translation.
wwp [Mon, 22 Jul 2019 12:14:48 +0000 (14:14 +0200)]
Update French translation.

2 months agoUpdate Spanish translation for release
Ricardo Mones [Mon, 22 Jul 2019 08:39:59 +0000 (10:39 +0200)]
Update Spanish translation for release

2 months agoReturn decode error in GError if pointer to GError structure provided
Michael Rasmussen [Sun, 7 Jul 2019 17:06:34 +0000 (19:06 +0200)]
Return decode error in GError if pointer to GError structure provided

Signed-off-by: Michael Rasmussen <mir@datanom.net>
2 months agoFix dereferencing of potentially NULL *error
Colin Leroy [Sun, 7 Jul 2019 16:44:54 +0000 (18:44 +0200)]
Fix dereferencing of potentially NULL *error

2 months agoprocmime_get_part_as_pixbuf: set error if we can't decode part.
Colin Leroy [Sun, 7 Jul 2019 10:21:50 +0000 (12:21 +0200)]
procmime_get_part_as_pixbuf: set error if we can't decode part.

2 months agolitehtml_viewer: use new procmime_get_part_as_pixbuf helper function
Colin Leroy [Sun, 7 Jul 2019 08:51:55 +0000 (10:51 +0200)]
litehtml_viewer: use new procmime_get_part_as_pixbuf helper function

2 months agoCompose: handle pasted images and text/uri-list (files) and attach them
Colin Leroy [Sun, 7 Jul 2019 08:43:45 +0000 (10:43 +0200)]
Compose: handle pasted images and text/uri-list (files) and attach them

2 months agoImplement copying of attached images to clipboard
Colin Leroy [Sun, 7 Jul 2019 08:40:15 +0000 (10:40 +0200)]
Implement copying of attached images to clipboard

2 months agoprocmime_get_part_as_inputstream doesn't touch error, so remove it
Colin Leroy [Sun, 7 Jul 2019 08:31:01 +0000 (10:31 +0200)]
procmime_get_part_as_inputstream doesn't touch error, so remove it

2 months agoIf error is NULL print a static message instead
Michael Rasmussen [Wed, 3 Jul 2019 18:35:17 +0000 (20:35 +0200)]
If error is NULL print a static message instead

Signed-off-by: Michael Rasmussen <mir@datanom.net>
2 months agoSince procmime_get_part_as_inputstream can return NULL and never touches error we...
Michael Rasmussen [Wed, 3 Jul 2019 18:16:44 +0000 (20:16 +0200)]
Since procmime_get_part_as_inputstream can return NULL and never touches error we need to bail if stream is NULL

Signed-off-by: Michael Rasmussen <mir@datanom.net>
2 months agoFix a crash in Fancy plugin if one of the MIME parts has no Content-ID
Andrej Kacian [Wed, 3 Jul 2019 09:19:48 +0000 (11:19 +0200)]
Fix a crash in Fancy plugin if one of the MIME parts has no Content-ID

2 months agoFix a crash in litehtml plugin if one of the MIME parts has no Content-ID
Andrej Kacian [Wed, 3 Jul 2019 09:02:20 +0000 (11:02 +0200)]
Fix a crash in litehtml plugin if one of the MIME parts has no Content-ID

2 months agoGet rid of magic numbers in summary_msginfo_*_flags
Andrej Kacian [Wed, 29 May 2019 17:10:28 +0000 (19:10 +0200)]
Get rid of magic numbers in summary_msginfo_*_flags

5 months agoFix a typo - it's CURL_CFLAGS, not CURL_FLAGS
Andrej Kacian [Sat, 18 May 2019 10:03:00 +0000 (12:03 +0200)]
Fix a typo - it's CURL_CFLAGS, not CURL_FLAGS

5 months agoAdd missing libgumbo cflags and ldflags to litehtml_viewer
Andrej Kacian [Sat, 18 May 2019 10:01:43 +0000 (12:01 +0200)]
Add missing libgumbo cflags and ldflags to litehtml_viewer

5 months agoReturn summaryview cursor to selected mail when popup menu is done
Andrej Kacian [Tue, 14 May 2019 21:20:08 +0000 (23:20 +0200)]
Return summaryview cursor to selected mail when popup menu is done

Fixes bug #3838: Canceled right-click on message
list leaves UI in inconsistent state

5 months agoMove log timestamp format string to a separate macro in log.h
Andrej Kacian [Tue, 14 May 2019 14:15:10 +0000 (16:15 +0200)]
Move log timestamp format string to a separate macro in log.h

5 months agoAdd date (ISO format) to log timestamps.
wwp [Tue, 14 May 2019 08:09:12 +0000 (10:09 +0200)]
Add date (ISO format) to log timestamps.

5 months agoFix a use after free crash when deleting message via a separate messageview
Andrej Kacian [Tue, 14 May 2019 14:01:40 +0000 (16:01 +0200)]
Fix a use after free crash when deleting message via a separate messageview

After the message has been deleted, summary_show() will
redisplay the folder and free all the MsgInfos, but we still
need the one for the message currently displayed in our
messageview window, so we add our own reference to it, and free
it ourselves when we're done.

This was only happening when summaryview already has a different
message displayed.

Fixes bug #4029: segfault after deleting message in a window

5 months agoFix verify_folderlist_xml() for fresh starts
Andrej Kacian [Wed, 8 May 2019 21:25:55 +0000 (23:25 +0200)]
Fix verify_folderlist_xml() for fresh starts

It was calling xml_free_tree(NULL) if folderlist.xml
did not yet exist.

5 months agoFix markup in 'key not fully trusted' warning in pgpcore
Andrej Kacian [Wed, 8 May 2019 19:29:37 +0000 (21:29 +0200)]
Fix markup in 'key not fully trusted' warning in pgpcore

5 months agoGet rid of deprecated GTK API calls in litehtml plugin
Andrej Kacian [Sun, 5 May 2019 12:21:55 +0000 (14:21 +0200)]
Get rid of deprecated GTK API calls in litehtml plugin

gdk_cairo_create(), gdk_cursor_new(), gtk_menu_popup()

5 months agoMake litehtml plugin rendering work better with GTK3 widget redraw
Andrej Kacian [Sun, 5 May 2019 11:48:09 +0000 (13:48 +0200)]
Make litehtml plugin rendering work better with GTK3 widget redraw

Unlike GTK2's "expose-event", GTK3's "draw" signal provides the
handler function with an already prepared cairo context to draw
on. This fixes flickering when scrolling HTML messages.

Unfortunately, litehtml's redraw() doesn't allow us to pass
custom arguments, so we have to store a pointer to the cairo
context as a member variable of our document container, so that
redraw() can access it.

5 months agoUse "draw" signal to render the contents in litehtml plugin, instead of obsolete...
Andrej Kacian [Sat, 4 May 2019 15:32:16 +0000 (17:32 +0200)]
Use "draw" signal to render the contents in litehtml plugin, instead of obsolete "expose-event" signal

5 months agoFix GTK3-related compile errors for litehtml plugin
Andrej Kacian [Sat, 4 May 2019 15:17:39 +0000 (17:17 +0200)]
Fix GTK3-related compile errors for litehtml plugin

5 months agoFix two memory leaks in litehtml plugin
Andrej Kacian [Thu, 25 Apr 2019 21:16:53 +0000 (23:16 +0200)]
Fix two memory leaks in litehtml plugin

5 months agoFix a memory leak in litehtml plugin's container_linux::load_image()
Andrej Kacian [Thu, 25 Apr 2019 20:40:31 +0000 (22:40 +0200)]
Fix a memory leak in litehtml plugin's container_linux::load_image()

5 months agoFix incorrect logic in lh_widget::set_cursor().
Andrej Kacian [Wed, 10 Apr 2019 19:00:01 +0000 (21:00 +0200)]
Fix incorrect logic in lh_widget::set_cursor().

5 months agoAdd a getter for litehtml::document's m_over_element member
Andrej Kacian [Wed, 10 Apr 2019 19:12:57 +0000 (21:12 +0200)]
Add a getter for litehtml::document's m_over_element member

This allows us to avoid some expensive GDK calls in
lh_widget::set_cursor().

5 months agoMake cursor and statusbar URL display smarter in litehtml plugin
Andrej Kacian [Wed, 10 Apr 2019 17:37:38 +0000 (19:37 +0200)]
Make cursor and statusbar URL display smarter in litehtml plugin

5 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.

5 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

5 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()

5 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

5 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

5 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

5 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

5 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>
5 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

5 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.

5 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

5 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

5 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>
5 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

5 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

5 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

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

5 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

5 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

5 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

5 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.

5 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

5 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

5 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

5 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()

5 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>
5 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.

5 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

5 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

5 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

5 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.

5 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

5 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>
5 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>
5 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.

5 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>
5 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

5 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

5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>