Hello community, here is the log from the commit of package zim for openSUSE:Factory checked in at 2020-10-21 14:38:38 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/zim (Old) and /work/SRC/openSUSE:Factory/.zim.new.3486 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "zim" Wed Oct 21 14:38:38 2020 rev:7 rq:842817 version:0.73.2 Changes: -------- --- /work/SRC/openSUSE:Factory/zim/zim.changes 2020-09-06 00:03:11.943277776 +0200 +++ /work/SRC/openSUSE:Factory/.zim.new.3486/zim.changes 2020-10-21 14:38:43.437616836 +0200 @@ -1,0 +2,15 @@ +Tue Sep 29 05:52:17 UTC 2020 - Dirk Mueller <dmuel...@suse.com> + +- update to 0.73.2: + + Add "show debug log" menu item + + Add missing "triangle" icons for windows installer + + Include helper to spawn external processes for windows installer + + Fix dropdown namespace autocomplete in move-page dialog + + Fix wiki parser for case of nested URL + + Fix ParseTreeBuilder interface for python3.9 + + Add debug output for drag-and-drop workaround + + Fix popup menu in attachment browser plugin + + Fix warnings during export for "page.meta" + + Fix on-preferences-changed for tableofcontents plugin + +------------------------------------------------------------------- Old: ---- zim-0.73.1.tar.gz New: ---- zim-0.73.2.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ zim.spec ++++++ --- /var/tmp/diff_new_pack.u7s1rw/_old 2020-10-21 14:38:44.273617308 +0200 +++ /var/tmp/diff_new_pack.u7s1rw/_new 2020-10-21 14:38:44.277617311 +0200 @@ -20,7 +20,7 @@ %define skip_python2 1 Name: zim -Version: 0.73.1 +Version: 0.73.2 Release: 0 Summary: A Desktop Wiki License: GPL-2.0-or-later ++++++ zim-0.73.1.tar.gz -> zim-0.73.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zim-0.73.1/CHANGELOG.md new/zim-0.73.2/CHANGELOG.md --- old/zim-0.73.1/CHANGELOG.md 2020-06-19 14:09:08.538503400 +0200 +++ new/zim-0.73.2/CHANGELOG.md 2020-07-24 08:13:40.099187100 +0200 @@ -5,6 +5,18 @@ This branch is the Python rewrite and starts with version 0.42. Earlier version numbers for zim correspond to the Perl branch. +## 0.73.2 - Fri 24 Jul 2020 +* Add "show debug log" menu item +* Add missing "triangle" icons for windows installer +* Include helper to spawn external processes for windows installer +* Fix dropdown namespace autocomplete in move-page dialog +* Fix wiki parser for case of nested URL +* Fix ParseTreeBuilder interface for python3.9 +* Add debug output for drag-and-drop workaround +* Fix popup menu in attachment browser plugin +* Fix warnings during export for "page.meta" +* Fix on-preferences-changed for tableofcontents plugin + ## 0.73.1 - Fri 19 Jun 2020 * Fix regression for opening single instance * Fix exception on toggle format diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zim-0.73.1/PKG-INFO new/zim-0.73.2/PKG-INFO --- old/zim-0.73.1/PKG-INFO 2020-06-19 14:09:37.138891000 +0200 +++ new/zim-0.73.2/PKG-INFO 2020-07-24 08:14:24.904160000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: zim -Version: 0.73.1 +Version: 0.73.2 Summary: Zim desktop wiki Home-page: https://www.zim-wiki.org Author: Jaap Karssenberg diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zim-0.73.1/README.md new/zim-0.73.2/README.md --- old/zim-0.73.1/README.md 2020-06-19 10:51:48.621893200 +0200 +++ new/zim-0.73.2/README.md 2020-07-15 20:22:49.624446900 +0200 @@ -28,7 +28,7 @@ Most linux distributions include zim in their package repository. On debian and ubuntu to package is simply called "zim". -A windows installer can be found here: https://zim.glump.net/windows/ +Debian/Ubuntu packages and a windows installer can be found via https://zim-wiki.org/downloads.html On Mac OS X, zim can be installed from Homebrew using, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zim-0.73.1/data/menubar.xml new/zim-0.73.2/data/menubar.xml --- old/zim-0.73.1/data/menubar.xml 2020-06-19 08:52:24.126318000 +0200 +++ new/zim-0.73.2/data/menubar.xml 2020-07-21 20:55:53.407486700 +0200 @@ -135,6 +135,7 @@ <menuitem action='show_clean_notebook'/> --> <separator/> + <menuitem action='show_debug_log'/> <menuitem action='show_server_gui'/> <menuitem action='open_document_root'/> <!-- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zim-0.73.1/man/zim.1 new/zim-0.73.2/man/zim.1 --- old/zim-0.73.1/man/zim.1 2020-06-19 14:09:10.142525200 +0200 +++ new/zim-0.73.2/man/zim.1 2020-07-24 08:13:47.163340600 +0200 @@ -1,4 +1,4 @@ -.TH ZIM "1" "June 2020" "zim 0.73.1" "User Commands" +.TH ZIM "1" "July 2020" "zim 0.73.2" "User Commands" .SH NAME zim \- A Desktop Wiki Editor diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zim-0.73.1/tests/formats.py new/zim-0.73.2/tests/formats.py --- old/zim-0.73.1/tests/formats.py 2020-06-19 10:51:48.625893000 +0200 +++ new/zim-0.73.2/tests/formats.py 2020-07-15 20:21:26.135644200 +0200 @@ -393,6 +393,16 @@ found += 1 self.assertEqual(found, 3) + def testNoURLWithinLink(self): + # Ensure nested URL is not parsed + text = '[[http://link.com/23060.html|//http://link.com/23060.html//]]' + xml = '''\ +<?xml version='1.0' encoding='utf-8'?> +<zim-tree><p><link href="http://link.com/23060.html"><emphasis>http://link.com/23060.html</emphasis></link> +</p></zim-tree>''' + tree = self.format.Parser().parse(text) + self.assertEqual(tree.tostring(), xml) + def testBackwardVerbatim(self): '''Test backward compatibility for wiki format''' input = '''\ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zim-0.73.1/translations/zim.pot new/zim-0.73.2/translations/zim.pot --- old/zim-0.73.1/translations/zim.pot 2020-06-19 10:51:48.629893300 +0200 +++ new/zim-0.73.2/translations/zim.pot 2020-07-24 08:10:36.503373600 +0200 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-06-06 14:35+0200\n" +"POT-Creation-Date: 2020-07-24 08:10+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <l...@li.org>\n" @@ -56,37 +56,37 @@ #. message for FileNotFoundError | #. Error message in template lookup -#: zim/fs.py:259 zim/templates/__init__.py:124 +#: zim/fs.py:261 zim/templates/__init__.py:124 #, python-format msgid "No such file: %s" msgstr "" #. message for FileUnicodeError (%s is the file name) -#: zim/fs.py:271 zim/newfs/base.py:64 +#: zim/fs.py:273 zim/newfs/base.py:64 #, python-format msgid "Could not read: %s" msgstr "" #. message for FileUnicodeError -#: zim/fs.py:273 zim/newfs/base.py:66 +#: zim/fs.py:275 zim/newfs/base.py:66 msgid "This usually means the file contains invalid characters" msgstr "" #. label for detailed error | #. section for version details in "save version" dialog -#: zim/fs.py:275 zim/newfs/base.py:68 +#: zim/fs.py:277 zim/newfs/base.py:68 #: zim/plugins/versioncontrol/__init__.py:776 msgid "Details" msgstr "" #. Error message -#: zim/fs.py:1165 +#: zim/fs.py:1167 #, python-format msgid "File is not writable: %s" msgstr "" #. error message -#: zim/fs.py:1237 +#: zim/fs.py:1239 #, python-format msgid "File changed on disk: %s" msgstr "" @@ -181,7 +181,7 @@ #: zim/gui/applications.py:1129 zim/gui/customtools.py:651 #: zim/gui/notebookdialog.py:421 zim/gui/pageview.py:7891 #: zim/gui/preferencesdialog.py:300 zim/gui/propertiesdialog.py:16 -#: zim/gui/templateeditordialog.py:158 zim/gui/uiactions.py:585 +#: zim/gui/templateeditordialog.py:158 zim/gui/uiactions.py:595 #: zim/plugins/attachmentbrowser/filebrowser.py:388 msgid "Name" msgstr "" @@ -503,7 +503,7 @@ #. Menu title | #. Button label -#: zim/gui/mainwindow.py:59 zim/gui/widgets.py:2922 +#: zim/gui/mainwindow.py:59 zim/gui/widgets.py:2926 msgid "_Help" msgstr "" @@ -536,7 +536,7 @@ #. Menu item | #. Button label -#: zim/gui/mainwindow.py:343 zim/gui/widgets.py:2883 +#: zim/gui/mainwindow.py:343 zim/gui/widgets.py:2887 msgid "_Close" msgstr "" @@ -619,13 +619,13 @@ #. Menu item | #. Button label -#: zim/gui/mainwindow.py:843 zim/gui/widgets.py:3799 +#: zim/gui/mainwindow.py:843 zim/gui/widgets.py:3803 msgid "_Back" msgstr "" #. Menu item | #. Button label -#: zim/gui/mainwindow.py:855 zim/gui/widgets.py:3803 +#: zim/gui/mainwindow.py:855 zim/gui/widgets.py:3807 msgid "_Forward" msgstr "" @@ -996,7 +996,7 @@ #. menu item to open a link | #. Menu item -#: zim/gui/pageview.py:6222 zim/gui/uiactions.py:143 +#: zim/gui/pageview.py:6222 zim/gui/uiactions.py:147 #: zim/plugins/backlinkpane.py:105 msgid "Open in New _Window" msgstr "" @@ -1004,7 +1004,7 @@ #. menu item to open a link or file | #. Button label | #. menu item to open file or folder -#: zim/gui/pageview.py:6232 zim/gui/widgets.py:3477 +#: zim/gui/pageview.py:6232 zim/gui/widgets.py:3481 #: zim/plugins/attachmentbrowser/filebrowser.py:354 msgid "_Open" msgstr "" @@ -1033,7 +1033,7 @@ #. Menu item | #. Button label | #. button label -#: zim/gui/pageview.py:6261 zim/gui/widgets.py:3479 +#: zim/gui/pageview.py:6261 zim/gui/widgets.py:3483 #: zim/plugins/versioncontrol/__init__.py:756 msgid "_Save" msgstr "" @@ -1289,7 +1289,7 @@ #. Input in 'edit image' dialog | #. Input label for the section to move a page to -#: zim/gui/pageview.py:7251 zim/gui/uiactions.py:587 +#: zim/gui/pageview.py:7251 zim/gui/uiactions.py:597 msgid "Location" msgstr "" @@ -1737,232 +1737,237 @@ msgstr "" #. Menu item -#: zim/gui/uiactions.py:91 +#: zim/gui/uiactions.py:95 msgid "_New Page..." msgstr "" #. Menu item -#: zim/gui/uiactions.py:102 +#: zim/gui/uiactions.py:106 msgid "New S_ub Page..." msgstr "" #. Menu item -#: zim/gui/uiactions.py:110 +#: zim/gui/uiactions.py:114 msgid "_New Page Here..." msgstr "" #. Menu item -#: zim/gui/uiactions.py:118 +#: zim/gui/uiactions.py:122 msgid "_Open Another Notebook..." msgstr "" #. Menu item -#: zim/gui/uiactions.py:138 +#: zim/gui/uiactions.py:142 msgid "_Import Page..." msgstr "" #. Menu item -#: zim/gui/uiactions.py:156 +#: zim/gui/uiactions.py:160 msgid "Save A _Copy..." msgstr "" #. Menu item -#: zim/gui/uiactions.py:161 +#: zim/gui/uiactions.py:165 msgid "E_xport..." msgstr "" #. Menu item -#: zim/gui/uiactions.py:168 +#: zim/gui/uiactions.py:172 msgid "_Send To..." msgstr "" #. Menu item -#: zim/gui/uiactions.py:181 +#: zim/gui/uiactions.py:185 msgid "_Rename or move Page..." msgstr "" #. Menu item -#: zim/gui/uiactions.py:190 +#: zim/gui/uiactions.py:194 msgid "_Delete Page" msgstr "" #. Title of progressbar dialog -#: zim/gui/uiactions.py:221 zim/gui/uiactions.py:703 +#: zim/gui/uiactions.py:225 zim/gui/uiactions.py:713 msgid "Removing Links" msgstr "" #. Menu item -#: zim/gui/uiactions.py:234 +#: zim/gui/uiactions.py:238 msgid "Proper_ties" msgstr "" #. Menu item | #. menu item in tray icon menu -#: zim/gui/uiactions.py:244 zim/plugins/trayicon.py:148 +#: zim/gui/uiactions.py:248 zim/plugins/trayicon.py:148 msgid "_Quit" msgstr "" #. Menu item -#: zim/gui/uiactions.py:254 +#: zim/gui/uiactions.py:258 msgid "Copy _Location" msgstr "" #. Menu item -#: zim/gui/uiactions.py:260 +#: zim/gui/uiactions.py:264 msgid "_Templates" msgstr "" #. Menu item -#: zim/gui/uiactions.py:266 +#: zim/gui/uiactions.py:270 msgid "Pr_eferences" msgstr "" #. Menu item -#: zim/gui/uiactions.py:276 +#: zim/gui/uiactions.py:280 msgid "_Search..." msgstr "" #. Menu item for search a sub-set of the notebook -#: zim/gui/uiactions.py:291 +#: zim/gui/uiactions.py:295 msgid "Search this section" msgstr "" #. Menu item -#: zim/gui/uiactions.py:296 +#: zim/gui/uiactions.py:300 msgid "Search _Backlinks..." msgstr "" #. Menu item -#: zim/gui/uiactions.py:304 +#: zim/gui/uiactions.py:308 msgid "Recent Changes..." msgstr "" #. Menu item -#: zim/gui/uiactions.py:311 +#: zim/gui/uiactions.py:315 msgid "Open Attachments _Folder" msgstr "" #. Error message -#: zim/gui/uiactions.py:316 +#: zim/gui/uiactions.py:320 msgid "This page does not have an attachments folder" msgstr "" #. Menu item -#: zim/gui/uiactions.py:322 +#: zim/gui/uiactions.py:326 msgid "Open _Notebook Folder" msgstr "" #. Menu item -#: zim/gui/uiactions.py:327 +#: zim/gui/uiactions.py:331 msgid "Open _Document Root" msgstr "" #. Error message -#: zim/gui/uiactions.py:333 +#: zim/gui/uiactions.py:337 msgid "No document root defined for this notebook" msgstr "" #. Menu item -#: zim/gui/uiactions.py:339 +#: zim/gui/uiactions.py:343 msgid "Edit _Source" msgstr "" #. Menu item -#: zim/gui/uiactions.py:355 +#: zim/gui/uiactions.py:359 msgid "Start _Web Server" msgstr "" +#. menu item +#: zim/gui/uiactions.py:366 +msgid "View debug log" +msgstr "" + #. Menu item -#: zim/gui/uiactions.py:370 +#: zim/gui/uiactions.py:380 msgid "Update Index" msgstr "" #. Menu item -#: zim/gui/uiactions.py:403 +#: zim/gui/uiactions.py:413 msgid "Custom _Tools" msgstr "" #. Menu item -#: zim/gui/uiactions.py:409 +#: zim/gui/uiactions.py:419 msgid "_Contents" msgstr "" #. Menu item -#: zim/gui/uiactions.py:420 +#: zim/gui/uiactions.py:430 msgid "_FAQ" msgstr "" #. Menu item -#: zim/gui/uiactions.py:425 +#: zim/gui/uiactions.py:435 msgid "_Keybindings" msgstr "" #. Menu item -#: zim/gui/uiactions.py:430 +#: zim/gui/uiactions.py:440 msgid "_Bugs" msgstr "" #. Menu item -#: zim/gui/uiactions.py:435 +#: zim/gui/uiactions.py:445 msgid "_About" msgstr "" #. Dialog title -#: zim/gui/uiactions.py:451 +#: zim/gui/uiactions.py:461 #, python-format msgid "New Page in %s" msgstr "" #. Dialog title -#: zim/gui/uiactions.py:453 +#: zim/gui/uiactions.py:463 msgid "New Page" msgstr "" #. Dialog text in 'new page' dialog -#: zim/gui/uiactions.py:457 +#: zim/gui/uiactions.py:467 msgid "" "Please note that linking to a non-existing page\n" "also creates a new page automatically." msgstr "" #. Input label -#: zim/gui/uiactions.py:471 +#: zim/gui/uiactions.py:481 msgid "Page Name" msgstr "" #. Choice label -#: zim/gui/uiactions.py:472 +#: zim/gui/uiactions.py:482 msgid "Page Template" msgstr "" #. Dialog title -#: zim/gui/uiactions.py:507 +#: zim/gui/uiactions.py:517 msgid "Import Page" msgstr "" #. File filter for '*.txt' -#: zim/gui/uiactions.py:511 +#: zim/gui/uiactions.py:521 msgid "Text Files" msgstr "" #. Dialog title of file save dialog -#: zim/gui/uiactions.py:540 +#: zim/gui/uiactions.py:550 msgid "Save Copy" msgstr "" #. Dialog title -#: zim/gui/uiactions.py:564 +#: zim/gui/uiactions.py:574 msgid "Rename or Move Page" msgstr "" #. Heading in 'move page' dialog - %s is the page name -#: zim/gui/uiactions.py:569 +#: zim/gui/uiactions.py:579 #, python-format msgid "Rename page \"%s\"" msgstr "" #. label in MovePage dialog - %i is number of backlinks -#: zim/gui/uiactions.py:580 +#: zim/gui/uiactions.py:590 #, python-format msgid "Update %i page linking to this page" msgid_plural "Update %i pages linking to this page" @@ -1970,28 +1975,28 @@ msgstr[1] "" #. option in 'move page' dialog -#: zim/gui/uiactions.py:589 +#: zim/gui/uiactions.py:599 msgid "Update the heading of this page" msgstr "" #. label for progress dialog -#: zim/gui/uiactions.py:624 +#: zim/gui/uiactions.py:634 msgid "Updating Links" msgstr "" #. Dialog title -#: zim/gui/uiactions.py:642 +#: zim/gui/uiactions.py:652 msgid "Delete Page" msgstr "" #. Heading in 'delete page' dialog - %s is the page name -#: zim/gui/uiactions.py:657 +#: zim/gui/uiactions.py:667 #, python-format msgid "Delete page \"%s\"?" msgstr "" #. Text in 'delete page' dialog - %s is the page name -#: zim/gui/uiactions.py:659 +#: zim/gui/uiactions.py:669 #, python-format msgid "" "Page \"%s\" and all of it's\n" @@ -1999,7 +2004,7 @@ msgstr "" #. label in the DeletePage dialog to warn user of attachments being deleted -#: zim/gui/uiactions.py:673 +#: zim/gui/uiactions.py:683 #, python-format msgid "%i file will be deleted" msgid_plural "%i files will be deleted" @@ -2007,12 +2012,12 @@ msgstr[1] "" #. General description of zim itself -#: zim/gui/uiactions.py:722 +#: zim/gui/uiactions.py:732 msgid "A desktop wiki" msgstr "" #. This string needs to be translated with names of the translators for this language -#: zim/gui/uiactions.py:730 +#: zim/gui/uiactions.py:740 msgid "translator-credits" msgstr "" @@ -2052,55 +2057,55 @@ msgstr "" #. Option for placement of plugin widgets -#: zim/gui/widgets.py:2051 +#: zim/gui/widgets.py:2055 msgid "Left Side Pane" msgstr "" #. Option for placement of plugin widgets -#: zim/gui/widgets.py:2052 +#: zim/gui/widgets.py:2056 msgid "Right Side Pane" msgstr "" #. Option for placement of plugin widgets -#: zim/gui/widgets.py:2053 +#: zim/gui/widgets.py:2057 msgid "Bottom Pane" msgstr "" #. Option for placement of plugin widgets -#: zim/gui/widgets.py:2054 +#: zim/gui/widgets.py:2058 msgid "Top Pane" msgstr "" #. Menu item -#: zim/gui/widgets.py:2682 +#: zim/gui/widgets.py:2686 msgid "_All Panes" msgstr "" #. generic error dialog text -#: zim/gui/widgets.py:3228 +#: zim/gui/widgets.py:3232 msgid "" "When reporting this bug please include\n" "the information from the text box below" msgstr "" #. Filter in open file dialog, shows all files (*) -#: zim/gui/widgets.py:3610 +#: zim/gui/widgets.py:3614 msgid "All Files" msgstr "" #. Filter in open file dialog, shows image files only -#: zim/gui/widgets.py:3637 +#: zim/gui/widgets.py:3641 msgid "Images" msgstr "" #. lable in progressbar giving number of items and total -#: zim/gui/widgets.py:3733 +#: zim/gui/widgets.py:3737 #, python-brace-format msgid "{count} of {total}" msgstr "" #. dialog title for log view dialog - e.g. for Equation Editor -#: zim/gui/widgets.py:3755 +#: zim/gui/widgets.py:3759 msgid "Log file" msgstr "" @@ -2210,12 +2215,12 @@ msgstr "" #. placeholder for unknown file name -#: zim/parser.py:274 +#: zim/parser.py:278 msgid "<Unknown>" msgstr "" #. Extended error message while parsing a file, gives file name, line number and words where error occurred -#: zim/parser.py:280 +#: zim/parser.py:284 #, python-format msgid "Error in %(file)s at line %(line)i near \"%(snippet)s\"" msgstr "" @@ -3345,17 +3350,17 @@ msgstr "" #. action to lower level of heading in the text -#: zim/plugins/tableofcontents.py:384 +#: zim/plugins/tableofcontents.py:386 msgid "Demote" msgstr "" #. action to raise level of heading in the text -#: zim/plugins/tableofcontents.py:386 +#: zim/plugins/tableofcontents.py:388 msgid "Promote" msgstr "" #. widget label -#: zim/plugins/tableofcontents.py:480 zim/plugins/tableofcontents.py:510 +#: zim/plugins/tableofcontents.py:482 zim/plugins/tableofcontents.py:512 msgid "ToC" msgstr "" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zim-0.73.1/xdg/org.zim_wiki.Zim.appdata.xml new/zim-0.73.2/xdg/org.zim_wiki.Zim.appdata.xml --- old/zim-0.73.1/xdg/org.zim_wiki.Zim.appdata.xml 2020-06-19 14:09:08.810507000 +0200 +++ new/zim-0.73.2/xdg/org.zim_wiki.Zim.appdata.xml 2020-07-24 08:13:40.407194000 +0200 @@ -35,6 +35,22 @@ <screenshot type="default">http://zim-wiki.org/screenshots/zim-normal.png</screenshot> </screenshots> <releases> + <release date="2020-07-24" version="0.73.2"> + <description> + <ul> + <li>Add "show debug log" menu item</li> + <li>Add missing "triangle" icons for windows installer</li> + <li>Include helper to spawn external processes for windows installer</li> + <li>Fix dropdown namespace autocomplete in move-page dialog</li> + <li>Fix wiki parser for case of nested URL</li> + <li>Fix ParseTreeBuilder interface for python3.9</li> + <li>Add debug output for drag-and-drop workaround</li> + <li>Fix popup menu in attachment browser plugin</li> + <li>Fix warnings during export for "page.meta"</li> + <li>Fix on-preferences-changed for tableofcontents plugin</li> + </ul> + </description> + </release> <release date="2020-06-19" version="0.73.1"> <description> <ul> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zim-0.73.1/zim/__init__.py new/zim-0.73.2/zim/__init__.py --- old/zim-0.73.1/zim/__init__.py 2020-06-19 14:09:08.542503600 +0200 +++ new/zim-0.73.2/zim/__init__.py 2020-07-24 08:13:40.115187400 +0200 @@ -93,7 +93,7 @@ # Bunch of meta data, used at least in the about dialog -__version__ = '0.73.1' +__version__ = '0.73.2' __url__ = 'https://www.zim-wiki.org' __author__ = 'Jaap Karssenberg <jaap.karssenb...@gmail.com>' __copyright__ = 'Copyright 2008 - 2019 Jaap Karssenberg <jaap.karssenb...@gmail.com>' @@ -117,6 +117,8 @@ logger = logging.getLogger('zim') +debug_log_file = None + ######################################################################## diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zim-0.73.1/zim/export/template.py new/zim-0.73.2/zim/export/template.py --- old/zim-0.73.1/zim/export/template.py 2020-06-08 11:40:09.654873000 +0200 +++ new/zim-0.73.2/zim/export/template.py 2020-07-15 20:21:26.279645700 +0200 @@ -424,7 +424,10 @@ @property def meta(self): - return self._tree.meta or {} + if self._tree: + return self._tree.meta or {} + else: + return {} @property def heading(self): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zim-0.73.1/zim/formats/__init__.py new/zim-0.73.2/zim/formats/__init__.py --- old/zim-0.73.1/zim/formats/__init__.py 2020-06-19 14:07:04.400841700 +0200 +++ new/zim-0.73.2/zim/formats/__init__.py 2020-07-21 20:41:16.372442500 +0200 @@ -782,7 +782,7 @@ return zim.formats.ParseTree(root) def start(self, tag, attrib=None): - attrib = attrib.copy() if attrib is not None else None + attrib = attrib.copy() if attrib is not None else {} self._b.start(tag, attrib) self.stack.append(tag) if tag in BLOCK_LEVEL: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zim-0.73.1/zim/formats/wiki.py new/zim-0.73.2/zim/formats/wiki.py --- old/zim-0.73.1/zim/formats/wiki.py 2020-06-19 10:51:48.629893300 +0200 +++ new/zim-0.73.2/zim/formats/wiki.py 2020-07-15 20:21:26.283645600 +0200 @@ -194,9 +194,9 @@ def _init_inline_parse(self): # Rules for inline formatting, links and tags my_url_re = old_url_re if self.backward_url_parsing else url_re - descent = lambda *a: self.inline_parser(*a) - self.nested_inline_parser = ( + descent = lambda *a: self.nested_inline_parser_below_link(*a) + self.nested_inline_parser_below_link = ( Rule(TAG, r'(?<!\S)@\w+', process=self.parse_tag) | Rule(EMPHASIS, r'//(?!/)(.*?)(?<!:)//', descent=descent) # no ':' at the end (ex: 'http://') | Rule(STRONG, r'\*\*(?!\*)(.*?)\*\*', descent=descent) @@ -208,11 +208,19 @@ ) + descent = lambda *a: self.inline_parser(*a) return ( Rule(LINK, my_url_re, process=self.parse_url) | Rule(LINK, r'\[\[(?!\[)(.*?\]*)\]\]', process=self.parse_link) | Rule(IMAGE, r'\{\{(?!\{)(.*?)\}\}', process=self.parse_image) - | self.nested_inline_parser + | Rule(TAG, r'(?<!\S)@\w+', process=self.parse_tag) + | Rule(EMPHASIS, r'//(?!/)(.*?)(?<!:)//', descent=descent) # no ':' at the end (ex: 'http://') + | Rule(STRONG, r'\*\*(?!\*)(.*?)\*\*', descent=descent) + | Rule(MARK, r'__(?!_)(.*?)__', descent=descent) + | Rule(SUBSCRIPT, r'_\{(?!~)(.+?)\}', descent=descent) + | Rule(SUPERSCRIPT, r'\^\{(?!~)(.+?)\}', descent=descent) + | Rule(STRIKE, r'~~(?!~)(.+?)~~', descent=descent) + | Rule(VERBATIM, r"''(?!')(.+?)''") ) def _init_intermediate_parser(self): @@ -554,7 +562,7 @@ builder.append(LINK, {'href': text}, text) else: builder.start(LINK, {'href': href}) - self.nested_inline_parser(builder, text) + self.nested_inline_parser_below_link(builder, text) builder.end(LINK) @staticmethod diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zim-0.73.1/zim/gui/uiactions.py new/zim-0.73.2/zim/gui/uiactions.py --- old/zim-0.73.1/zim/gui/uiactions.py 2020-06-19 10:51:48.633893300 +0200 +++ new/zim-0.73.2/zim/gui/uiactions.py 2020-07-21 20:58:15.331239700 +0200 @@ -10,7 +10,7 @@ logger = logging.getLogger('zim.gui') - +import zim from zim.actions import action from zim.main import ZIM_APPLICATION @@ -24,7 +24,7 @@ from zim.actions import get_gtk_actiongroup from zim.gui.widgets import Dialog, FileDialog, ProgressDialog, ErrorDialog, ScrolledTextView -from zim.gui.applications import open_url, open_folder, open_folder_prompt_create, edit_file +from zim.gui.applications import open_url, open_folder, open_folder_prompt_create, open_file, edit_file PAGE_EDIT_ACTIONS = 'page_edit' PAGE_ACCESS_ACTIONS = 'page_access' @@ -69,6 +69,10 @@ self.navigation = navigation self.notebook.properties.connect('changed', self.on_notebook_properties_changed) + group = get_gtk_actiongroup(self) + action = self.actiongroup.get_action('show_debug_log') + action.set_sensitive(zim.debug_log_file is not None) + def on_notebook_properties_changed(self, propeties): group = get_gtk_actiongroup(self) action = self.actiongroup.get_action('open_document_root') @@ -359,6 +363,12 @@ ''' ZIM_APPLICATION.run('--server', '--gui', self.notebook.uri) + @action(_('View debug log'), menuhints='tools') # T: menu item + def show_debug_log(self): + from zim.newfs import LocalFile + file = LocalFile(zim.debug_log_file) + open_file(self.widget, file, mimetype='text/plain') + def ensure_index_uptodate(self): if not self.notebook.index.is_uptodate: re = self.reload_index(update_only=True) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zim-0.73.1/zim/gui/widgets.py new/zim-0.73.2/zim/gui/widgets.py --- old/zim-0.73.1/zim/gui/widgets.py 2020-06-19 10:51:48.637893400 +0200 +++ new/zim-0.73.2/zim/gui/widgets.py 2020-07-15 20:21:26.291645800 +0200 @@ -1885,7 +1885,7 @@ except IndexNotFoundError: pass - elif text.startswith('+'): + elif text.startswith('+') and self.notebookpath: prefix = '+' path = self.notebookpath @@ -1921,7 +1921,7 @@ def _fill_completion_any(self, path, text): - #print "COMPLETE ANY", path, text + #print("COMPLETE ANY", path, text) # Complete all matches of "text" # start with children and peers, than peers of parents, than rest of tree completion = self.get_completion() @@ -1930,9 +1930,13 @@ # TODO: use SQL to list all at once instead of walking and filter on "text" # do better sorting as well ? - def relative_link(target): - href = self.notebook.pages.create_link(path, target) - return href.to_wiki_link() + if path.isroot: + def relative_link(target): + return target.name + else: + def relative_link(target): + href = self.notebook.pages.create_link(path, target) + return href.to_wiki_link() model = completion.get_model() searchpath = list(path.parents()) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zim-0.73.1/zim/main/__init__.py new/zim-0.73.2/zim/main/__init__.py --- old/zim-0.73.1/zim/main/__init__.py 2020-06-08 11:40:10.030878300 +0200 +++ new/zim-0.73.2/zim/main/__init__.py 2020-07-21 21:03:55.320796500 +0200 @@ -867,7 +867,8 @@ else: # Redirect output to file dir = zim.fs.get_tmpdir() - err_stream = open(os.path.join(dir.path, "zim.log"), "w") + zim.debug_log_file = os.path.join(dir.path, "zim.log") + err_stream = open(zim.debug_log_file, "w") # Try to flush standards out and error, if there for pipe in (sys.stdout, sys.stderr): @@ -888,8 +889,8 @@ # Re-initialize logging handler, in case it keeps reference # to the old stderr object + rootlogger = logging.getLogger() try: - rootlogger = logging.getLogger() for handler in rootlogger.handlers: rootlogger.removeHandler(handler) @@ -899,6 +900,11 @@ except: pass + if rootlogger.getEffectiveLevel() != logging.DEBUG: + rootlogger.setLevel(logging.DEBUG) # else file remains empty + self._log_start() + + ZIM_APPLICATION = ZimApplication() # Singleton per process diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zim-0.73.1/zim/plugins/attachmentbrowser/filebrowser.py new/zim-0.73.2/zim/plugins/attachmentbrowser/filebrowser.py --- old/zim-0.73.1/zim/plugins/attachmentbrowser/filebrowser.py 2020-06-08 11:40:10.250881700 +0200 +++ new/zim-0.73.2/zim/plugins/attachmentbrowser/filebrowser.py 2020-07-15 20:21:26.303645800 +0200 @@ -332,9 +332,9 @@ pathinfo = iconview.get_path_at_pos(x, y) if pathinfo is not None: iconview.grab_focus() - gtk_popup_at_pointer(popup_menu, event) self.do_populate_popup(popup_menu, pathinfo) # FIXME should use a signal here + gtk_popup_at_pointer(popup_menu, event) return True return False diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zim-0.73.1/zim/plugins/base/imagegenerator.py new/zim-0.73.2/zim/plugins/base/imagegenerator.py --- old/zim-0.73.1/zim/plugins/base/imagegenerator.py 2020-06-08 11:40:10.278882000 +0200 +++ new/zim-0.73.2/zim/plugins/base/imagegenerator.py 2020-07-15 20:21:26.315646000 +0200 @@ -355,8 +355,8 @@ self.logbutton.set_sensitive(self.log_file is not None) def show_log(self): - assert self.logfile, 'BUG: no logfile set (yet)' - LogFileDialog(self, self.logfile).run() + assert self.log_file, 'BUG: no log_file set (yet)' + LogFileDialog(self, self.log_file).run() def do_response_ok(self): buffer = self.textview.get_buffer() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zim-0.73.1/zim/plugins/pageindex/__init__.py new/zim-0.73.2/zim/plugins/pageindex/__init__.py --- old/zim-0.73.1/zim/plugins/pageindex/__init__.py 2020-06-19 10:51:48.641893400 +0200 +++ new/zim-0.73.2/zim/plugins/pageindex/__init__.py 2020-07-15 20:21:26.327646000 +0200 @@ -504,12 +504,14 @@ def do_drag_data_received(self, dragcontext, x, y, selectiondata, info, time): assert selectiondata.get_target().name() == INTERNAL_PAGELIST_TARGET_NAME data = selectiondata.get_data() + logger.debug('Drag data recieved: %r', data) if data is None: data = zim.gui.clipboard._internal_selection_data # HACK issue #390 zim.gui.clipboard._internal_selection_data = None + logger.debug('Got data via workaround: %s', data) names = unpack_urilist(data) - assert len(names) == 1 + assert len(names) == 1, 'Could not get pagenames from: %r' % data source = Path(names[0]) dest_row = self.get_dest_row_at_pos(x, y) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zim-0.73.1/zim/plugins/tableofcontents.py new/zim-0.73.2/zim/plugins/tableofcontents.py --- old/zim-0.73.1/zim/plugins/tableofcontents.py 2020-06-08 11:40:10.542885800 +0200 +++ new/zim-0.73.2/zim/plugins/tableofcontents.py 2020-07-15 20:21:26.343646300 +0200 @@ -140,6 +140,8 @@ if not isinstance(self.tocwidget, widgetclass): if isinstance(self.tocwidget, SidePaneToC): self.remove_sidepane_widget(self.tocwidget) + elif self.tocwidget: + self.tocwidget.destroy() self.tocwidget = widgetclass(self.pageview) @@ -561,7 +563,7 @@ def update_size_and_position(self, *a): model = self.tocwidget.treeview.get_model() - if model.is_empty: + if model is None or model.is_empty: self.hide() return else: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zim-0.73.1/zim/templates/expression.py new/zim-0.73.2/zim/templates/expression.py --- old/zim-0.73.1/zim/templates/expression.py 2020-06-08 11:40:10.722888500 +0200 +++ new/zim-0.73.2/zim/templates/expression.py 2020-07-15 20:21:26.355646400 +0200 @@ -266,6 +266,9 @@ ## getitem dict / getattr objects / getattr on wrapper obj = self.param.parent(context) name = self.param.key + if obj is None: + raise AssertionError('No such object: %s' % self.param.parent.name) + try: function = obj[name] if not isinstance(function, ExpressionFunction): @@ -337,7 +340,11 @@ def __repr__(self): # Also shows up when function parameter is used, but not called # (TemplateToolkit allow implicit call - we don't !) - return "<%s: %s()>" % (self.__class__.__name__, self._func.__name__) + try: + return "<%s: %s()>" % (self.__class__.__name__, self._func.__name__) + except: + # Partial functions don't have a __name__ attribute + return "<%s: %r()>" % (self.__class__.__name__, self._func) class BoundExpressionFunction(ExpressionFunction):