diff --git a/data/menubar.xml b/data/menubar.xml index d0f06c7aa..633961f17 100644 --- a/data/menubar.xml +++ b/data/menubar.xml @@ -39,6 +39,7 @@ + diff --git a/data/style.conf b/data/style.conf index 329045e52..1215134f8 100644 --- a/data/style.conf +++ b/data/style.conf @@ -89,4 +89,7 @@ foreground=#4e9a06 [Tag migrated-checkbox] #foreground = grey +[Tag transmigrated-checkbox] +#foreground = grey + # vim: syntax=desktop diff --git a/tests/data/formats/export.html b/tests/data/formats/export.html index cfbaa57b7..3dbe61e3b 100644 --- a/tests/data/formats/export.html +++ b/tests/data/formats/export.html @@ -155,6 +155,7 @@

head 4

  • Migrated checkbox
  • +
  • Transmigrated checkbox

diff --git a/tests/data/formats/export.markdown b/tests/data/formats/export.markdown index d9d966c1a..625a0c7dd 100644 --- a/tests/data/formats/export.markdown +++ b/tests/data/formats/export.markdown @@ -95,6 +95,7 @@ TODO list: * ▷ Migrated checkbox +* ◁ Transmigrated checkbox A numbered list: diff --git a/tests/data/formats/export.rst b/tests/data/formats/export.rst index b04401ba3..9f3610e06 100644 --- a/tests/data/formats/export.rst +++ b/tests/data/formats/export.rst @@ -113,6 +113,7 @@ TODO list: - ☒ baz - ▷ Migrated checkbox +- ◁ Transmigrated checkbox A numbered list: 1. foo diff --git a/tests/data/formats/export.tex b/tests/data/formats/export.tex index 62bf71fb9..41a7227b0 100644 --- a/tests/data/formats/export.tex +++ b/tests/data/formats/export.tex @@ -170,6 +170,7 @@ \subsubsection{head 4} \begin{itemize} \item[\RIGHTarrow] Migrated checkbox +\item[\LEFTarrow] Transmigrated checkbox \end{itemize} diff --git a/tests/data/formats/parsetree.xml b/tests/data/formats/parsetree.xml index 379a286c7..26ef5146b 100644 --- a/tests/data/formats/parsetree.xml +++ b/tests/data/formats/parsetree.xml @@ -68,7 +68,7 @@ and also strike through

TODO list:

  • foo
  • bar
    • sub item 1
      • Some normal bullet
    • sub item 2
  • baz

-

  • Migrated checkbox

+

  • Migrated checkbox
  • Transmigrated checkbox

A numbered list:

  1. foo
  2. bar
    1. sub list
    2. here
  3. hmmm

diff --git a/tests/data/formats/plain.txt b/tests/data/formats/plain.txt index b56cc6be5..3c0a62b49 100644 --- a/tests/data/formats/plain.txt +++ b/tests/data/formats/plain.txt @@ -86,6 +86,7 @@ TODO list: [x] baz [>] Migrated checkbox +[<] Transmigrated checkbox A numbered list: 1. foo diff --git a/tests/data/formats/wiki.txt b/tests/data/formats/wiki.txt index 5965ec10b..4ac239d06 100644 --- a/tests/data/formats/wiki.txt +++ b/tests/data/formats/wiki.txt @@ -86,6 +86,7 @@ TODO list: [x] baz [>] Migrated checkbox +[<] Transmigrated checkbox A numbered list: 1. foo diff --git a/tests/pageview.py b/tests/pageview.py index 0f4106ee9..c077b85eb 100644 --- a/tests/pageview.py +++ b/tests/pageview.py @@ -2930,6 +2930,11 @@ def testMigrateCheckBox(self): pageview.migrate_checkbox() self.assertEqual(pageview.page.dump('wiki'), ['[>] my task\n']) + def testTransmigrateCheckBox(self): + pageview = setUpPageView(self.setUpNotebook(), '[*] my task\n') + pageview.transmigrate_checkbox() + self.assertEqual(pageview.page.dump('wiki'), ['[<] my task\n']) + def testEditObjectForLink(self): pageview = setUpPageView(self.setUpNotebook(), '[[link]]\n') diff --git a/zim/formats/markdown.py b/zim/formats/markdown.py index e9f92b1bb..c4ada1e99 100644 --- a/zim/formats/markdown.py +++ b/zim/formats/markdown.py @@ -40,6 +40,7 @@ class Dumper(TextDumper): XCHECKED_BOX: '* \u2612', CHECKED_BOX: '* \u2611', MIGRATED_BOX: '* \u25B7', + TRANSMIGRATED_BOX: '* \u25C1', BULLET: '*', } diff --git a/zim/formats/rst.py b/zim/formats/rst.py index f367e719e..ac7d5ecb8 100644 --- a/zim/formats/rst.py +++ b/zim/formats/rst.py @@ -28,6 +28,7 @@ class Dumper(TextDumper): XCHECKED_BOX: '- \u2612', CHECKED_BOX: '- \u2611', MIGRATED_BOX: '- \u25B7', + TRANSMIGRATED_BOX: '- \u25C1', BULLET: '-', } diff --git a/zim/gui/pageview/__init__.py b/zim/gui/pageview/__init__.py index 2304721e9..d6e318d0a 100644 --- a/zim/gui/pageview/__init__.py +++ b/zim/gui/pageview/__init__.py @@ -2411,6 +2411,7 @@ def get_bullet(self, line): CHECKED_BOX XCHECKED_BOX MIGRATED_BOX + TRANSMIGRATED_BOX or a numbered list bullet (test with L{is_numbered_bullet_re}) ''' iter = self.get_iter_at_line(line) @@ -2926,7 +2927,8 @@ def toggle_checkbox(self, line, checkbox_type=None, recursive=False): @param line: the line number @param checkbox_type: the checkbox type that we want to toggle: - one of C{CHECKED_BOX}, C{XCHECKED_BOX}, C{MIGRATED_BOX}. + one of C{CHECKED_BOX}, C{XCHECKED_BOX}, C{MIGRATED_BOX}, + C{TRANSMIGRATED_BOX}. If C{checkbox_type} is given, it toggles between this type and unchecked. Otherwise it rotates through unchecked, checked and xchecked. @@ -3400,6 +3402,7 @@ def set_bullet(self, row, bullet): UNCHECKED_BOX XCHECKED_BOX MIGRATED_BOX + TRANSMIGRATED_BOX ''' assert bullet in BULLETS with self.buffer.user_action: @@ -3408,7 +3411,7 @@ def set_bullet(self, row, bullet): pass elif bullet == UNCHECKED_BOX: self._checkbox_unchecked(row) - else: # CHECKED_BOX, XCHECKED_BOX, MIGRATED_BOX + else: # CHECKED_BOX, XCHECKED_BOX, MIGRATED_BOX, TRANSMIGRATED_BOX self._checkbox_checked(row, bullet) def _checkbox_unchecked(self, row): @@ -6162,11 +6165,13 @@ def do_mark_set(self, buffer, iter, mark): self.actiongroup.get_action('toggle_checkbox').set_sensitive(True) self.actiongroup.get_action('xtoggle_checkbox').set_sensitive(True) self.actiongroup.get_action('migrate_checkbox').set_sensitive(True) + self.actiongroup.get_action('transmigrate_checkbox').set_sensitive(True) else: self.actiongroup.get_action('uncheck_checkbox').set_sensitive(False) self.actiongroup.get_action('toggle_checkbox').set_sensitive(False) self.actiongroup.get_action('xtoggle_checkbox').set_sensitive(False) self.actiongroup.get_action('migrate_checkbox').set_sensitive(False) + self.actiongroup.get_action('transmigrate_checkbox').set_sensitive(False) if buffer.get_link_tag(iter): self.actiongroup.get_action('remove_link').set_sensitive(True) @@ -6476,8 +6481,8 @@ def _checkbox_do_populate_popup(self, menu, buffer, iter): menu.prepend(Gtk.SeparatorMenuItem()) for bullet, label in ( - (MIGRATED_BOX, _('Check Checkbox \'>\'')), # T: popup menu menuitem (TRANSMIGRATED_BOX, _('Check Checkbox \'<\'')), # T: popup menu menuitem + (MIGRATED_BOX, _('Check Checkbox \'>\'')), # T: popup menu menuitem (XCHECKED_BOX, _('Check Checkbox \'X\'')), # T: popup menu menuitem (CHECKED_BOX, _('Check Checkbox \'V\'')), # T: popup menu menuitem (UNCHECKED_BOX, _('Un-check Checkbox')), # T: popup menu menuitem