diff --git a/data/de.wolfvollprecht.UberWriter.gschema.xml b/data/de.wolfvollprecht.UberWriter.gschema.xml
index 52b0c85..64fcd99 100644
--- a/data/de.wolfvollprecht.UberWriter.gschema.xml
+++ b/data/de.wolfvollprecht.UberWriter.gschema.xml
@@ -13,6 +13,13 @@
asked to install them manually.
+
+ "/tmp"
+ Open file base path
+
+ Open file paths of the current session
+
+
diff --git a/uberwriter/UberwriterInlinePreview.py b/uberwriter/UberwriterInlinePreview.py
index a01a1f6..39e5197 100644
--- a/uberwriter/UberwriterInlinePreview.py
+++ b/uberwriter/UberwriterInlinePreview.py
@@ -14,6 +14,7 @@
# with this program. If not, see .
### END LICENSE
+import os
import re
import http.client
import urllib
@@ -28,6 +29,7 @@ from pprint import pprint
from gi.repository import Gtk, Gdk, GdkPixbuf, GObject
from uberwriter_lib import LatexToPNG
+from .Settings import Settings
from .FixTable import FixTable
@@ -276,6 +278,7 @@ class UberwriterInlinePreview():
self.TextView.connect_after('popup-menu', self.move_popup)
self.TextView.connect('button-press-event', self.click_move_button)
self.popover = None
+ self.settings = Settings.new()
def open_popover_with_widget(self, widget):
a = self.TextBuffer.create_child_anchor(self.TextBuffer.get_iter_at_mark(self.ClickMark))
@@ -363,7 +366,7 @@ class UberwriterInlinePreview():
link = MarkupBuffer.regex["LINK"]
footnote = re.compile('\[\^([^\s]+?)\]')
- image = re.compile("!\[(.+?)\]\((.+?)\)")
+ image = re.compile("!\[(.*?)\]\((.+?)\)")
buf = self.TextBuffer
context_offset = 0
@@ -457,6 +460,11 @@ class UberwriterInlinePreview():
path = match.group(2)
if path.startswith("file://"):
path = path[7:]
+ elif not path.startswith("/"):
+ # then the path is relative
+ base_path = self.settings.get_value("open-file-path").get_string()
+ path = base_path + "/" + path
+
logger.info(path)
pb = GdkPixbuf.Pixbuf.new_from_file_at_size(path, 400, 300)
image = Gtk.Image.new_from_pixbuf(pb)
diff --git a/uberwriter/UberwriterWindow.py b/uberwriter/UberwriterWindow.py
index a58945f..df617fc 100644
--- a/uberwriter/UberwriterWindow.py
+++ b/uberwriter/UberwriterWindow.py
@@ -378,7 +378,7 @@ class UberwriterWindow(Window):
f.write(self.get_text())
f.close()
- self.filename = filename
+ self.set_filename(filename)
self.set_headerbar_title(os.path.basename(filename) + self.title_end)
self.did_change = False
@@ -416,7 +416,7 @@ class UberwriterWindow(Window):
f.write(self.get_text())
f.close()
- self.filename = filename
+ self.set_filename(filename)
self.set_headerbar_title(os.path.basename(filename) + self.title_end)
try:
@@ -594,7 +594,7 @@ class UberwriterWindow(Window):
self.TextEditor.redos = []
self.did_change = False
- self.filename = None
+ self.set_filename()
self.set_headerbar_title("New File" + self.title_end)
def menu_activate_focusmode(self, widget=None):
@@ -709,7 +709,7 @@ class UberwriterWindow(Window):
os.environ['PANDOC_PREFIX'] = base_path + '/'
# Set the styles according the color theme
- if self.settings.get_value("dark-mode"):
+ if Settings.get_value("dark-mode"):
stylesheet = helpers.get_media_path('uberwriter_dark.css')
else:
stylesheet = helpers.get_media_path('uberwriter.css')
@@ -806,7 +806,7 @@ class UberwriterWindow(Window):
self.set_headerbar_title(os.path.basename(filename) + self.title_end)
self.TextEditor.undo_stack = []
self.TextEditor.redo_stack = []
- self.filename = filename
+ self.set_filename(filename)
except Exception as e:
logger.warning("Error Reading File: %r" % e)
@@ -1108,7 +1108,7 @@ class UberwriterWindow(Window):
self.text_change_event = self.TextBuffer.connect('changed', self.text_changed)
# Init file name with None
- self.filename = None
+ self.set_filename()
self.generate_recent_files_menu(self.builder.get_object('recent'))
@@ -1241,6 +1241,14 @@ class UberwriterWindow(Window):
self.hb.props.title = title
self.set_title(title)
+ def set_filename(self, filename=None):
+ if filename:
+ self.filename = filename
+ base_path = os.path.dirname(self.filename)
+ else:
+ self.filename = None
+ base_path = "/"
+ self.settings.set_value("open-file-path", GLib.Variant("s", base_path))
def save_settings(self):
if not os.path.exists(CONFIG_PATH):
try: