diff --git a/buildozer/aversion b/buildozer/aversion index fd5678b06..a62e3f1ed 100755 --- a/buildozer/aversion +++ b/buildozer/aversion @@ -14,6 +14,14 @@ sversion=$(echo $version | sed -E "s:(.*)\..*:\1:") tuple=$(echo $version | sed -E "s:(.*)\.(.*)\.(.*):(\1, \2, \3):") # patch different version info accordingly. -sed -E "s:VERSION_TUPLE =.*:VERSION_TUPLE = $tuple:" -i $appdir/pysollib/settings.py -sed -E "s:(.*\(')dev(',.*):\1fc-$sversion\2:" -i $appdir/pysollib/gamedb.py +tmp1=$(mktemp) +sed -E "s:VERSION_TUPLE =.*:VERSION_TUPLE = $tuple:" \ + $appdir/pysollib/settings.py > "$tmp1" +mv "$tmp1" $appdir/pysollib/settings.py + +tmp2=$(mktemp) +sed -E "s:(.*\(')dev(',.*):\1fc-$sversion\2:" \ + $appdir/pysollib/gamedb.py > "$tmp2" +mv "$tmp2" $appdir/pysollib/gamedb.py + echo "VERSION = $version" diff --git a/buildozer/resize4k b/buildozer/resize4k index d33826be2..d217d8b44 100755 --- a/buildozer/resize4k +++ b/buildozer/resize4k @@ -1,4 +1,4 @@ -#!/usr/bin/bash +#!/bin/bash location='.' if [ $1 ] diff --git a/po/de_pysol.po b/po/de_pysol.po index 22b077b36..f1233980a 100644 --- a/po/de_pysol.po +++ b/po/de_pysol.po @@ -2819,6 +2819,10 @@ msgstr "" msgid "Full picture" msgstr "" +#: pysollib\kivy\menubar.py:146 pysollib\kivy\selectgame.py:493 +msgid "< Back" +msgstr "" + #: pysollib\kivy\menubar.py:265 msgid "File" msgstr "Datei" diff --git a/po/fr_pysol.po b/po/fr_pysol.po index 15393121d..65a631524 100644 --- a/po/fr_pysol.po +++ b/po/fr_pysol.po @@ -2860,6 +2860,10 @@ msgstr "" msgid "Full picture" msgstr "" +#: pysollib\kivy\menubar.py:146 pysollib\kivy\selectgame.py:493 +msgid "< Back" +msgstr "" + #: pysollib\kivy\menubar.py:265 msgid "File" msgstr "Fichier" diff --git a/po/it_pysol.po b/po/it_pysol.po index 9caa0167b..d16ae3b05 100644 --- a/po/it_pysol.po +++ b/po/it_pysol.po @@ -2866,6 +2866,10 @@ msgstr "" msgid "Full picture" msgstr "" +#: pysollib\kivy\menubar.py:146 pysollib\kivy\selectgame.py:493 +msgid "< Back" +msgstr "" + #: pysollib\kivy\menubar.py:265 msgid "File" msgstr "" diff --git a/po/pl_pysol.po b/po/pl_pysol.po index 72fea0396..fd0e4a917 100644 --- a/po/pl_pysol.po +++ b/po/pl_pysol.po @@ -2881,6 +2881,10 @@ msgstr "" msgid "Full picture" msgstr "" +#: pysollib\kivy\menubar.py:146 pysollib\kivy\selectgame.py:493 +msgid "< Back" +msgstr "" + #: pysollib\kivy\menubar.py:265 msgid "File" msgstr "Plik" diff --git a/po/pt_BR_pysol.po b/po/pt_BR_pysol.po index 69bdf7986..16ac14cc9 100644 --- a/po/pt_BR_pysol.po +++ b/po/pt_BR_pysol.po @@ -2888,6 +2888,10 @@ msgstr "" msgid "Full picture" msgstr "" +#: pysollib\kivy\menubar.py:146 pysollib\kivy\selectgame.py:493 +msgid "< Back" +msgstr "" + #: pysollib\kivy\menubar.py:265 msgid "File" msgstr "Arquivo" diff --git a/po/pysol.pot b/po/pysol.pot index b2958ad3f..9b75fa2ba 100644 --- a/po/pysol.pot +++ b/po/pysol.pot @@ -3005,6 +3005,10 @@ msgstr "" msgid "Full picture" msgstr "" +#: pysollib\kivy\menubar.py:146 pysollib\kivy\selectgame.py:493 +msgid "< Back" +msgstr "" + #: pysollib\kivy\menubar.py:265 msgid "File" msgstr "" diff --git a/po/ru_pysol.po b/po/ru_pysol.po index 0167e796f..5c32b0d8a 100644 --- a/po/ru_pysol.po +++ b/po/ru_pysol.po @@ -2867,6 +2867,10 @@ msgstr "" msgid "Full picture" msgstr "" +#: pysollib\kivy\menubar.py:146 pysollib\kivy\selectgame.py:493 +msgid "< Back" +msgstr "" + #: pysollib\kivy\menubar.py:265 msgid "File" msgstr "Файл" diff --git a/pysollib/kivy/LApp.py b/pysollib/kivy/LApp.py index aa09d8bc5..a0e1a8c33 100644 --- a/pysollib/kivy/LApp.py +++ b/pysollib/kivy/LApp.py @@ -1197,6 +1197,7 @@ def __init__(self, top, title='', **kw): super().__init__(title=title, **kw) self.main = top + self.is_overlay = True self.titleline.bind(on_press=self.onClick) self.main.pushWork(self.title, self) @@ -1787,6 +1788,12 @@ def rebuildContainer(self): def pushWork(self, key, widget): if (widget): + is_overlay = getattr(widget, 'is_overlay', False) + if key != 'playground' and not is_overlay: + for k, w in list(self.workStack.items): + if k not in ('playground', key) and not getattr( + w, 'is_overlay', False): + self.workStack.pop(k) self.workStack.push(key, widget) self.rebuildContainer() diff --git a/pysollib/kivy/menubar.py b/pysollib/kivy/menubar.py index 4902cf99c..2857fa23e 100644 --- a/pysollib/kivy/menubar.py +++ b/pysollib/kivy/menubar.py @@ -140,6 +140,11 @@ def addSliderNode(self, tv, rg, auto_var, auto_setup): LTreeSliderNode(variable=auto_var, setup=auto_setup), rg) return rg1 + def addBackNode(self, tv): + tv.add_node(LTreeNode( + text='[b]' + _('< Back') + '[/b]', + command=self.make_command(self.menubar.mMainMenuDialog))) + # ************************************************************************ # * Tree Generators # ************************************************************************ @@ -323,6 +328,8 @@ def doit(): return doit def buildTree(self, tv, node): + self.addBackNode(tv) + rg = tv.add_node( LTreeNode(text=_('Recent games'))) recids = self.app.opt.recent_gameid @@ -370,6 +377,8 @@ def __init__(self, menubar, parent, title, app, **kw): menubar, parent, title, app, **kw) def buildTree(self, tv, node): + self.addBackNode(tv) + tv.add_node(LTreeNode( text=_('New game'), command=self.menubar.mNewGame)) tv.add_node(LTreeNode( @@ -444,7 +453,7 @@ def __init__(self, menubar, parent, title, app, **kw): super().__init__( menubar, parent, title, app, **kw) - def make_command(self, key, command): + def make_stats_command(self, key, command): def stats_command(): kw = {} kw['mode'] = key @@ -452,14 +461,18 @@ def stats_command(): return stats_command def buildTree(self, tv, node): + self.addBackNode(tv) + tv.add_node(LTreeNode( text=_('Current game...'), command=self.auto_close( - self.make_command(101, self.menubar.mPlayerStats))), None) + self.make_stats_command(101, self.menubar.mPlayerStats))), + None) # tv.add_node(LTreeNode( # text='All games ...', - # command=self.make_command(102, self.menubar.mPlayerStats)), None) + # command=self.make_stats_command(102, self.menubar.mPlayerStats)), + # None) # ------------------------------------------- # TBD ? - just to remember original tk code. @@ -515,6 +528,8 @@ def __init__(self, menubar, parent, title, app, **kw): menubar, parent, title, app, **kw) def buildTree(self, tv, node): + self.addBackNode(tv) + tv.add_node(LTreeNode( text=_('Hint'), command=self.menubar.mHint)) @@ -552,6 +567,8 @@ def buildTree(self, tv, node): class LOptionsMenuGenerator(LTreeGenerator): def buildTree(self, tv, node): + self.addBackNode(tv) + # ------------------------------------------- # Automatic play settings @@ -1344,6 +1361,8 @@ def __init__(self, menubar, parent, title, app, **kw): super().__init__(menubar, parent, title, app, **kw) def buildTree(self, tv, node): + self.addBackNode(tv) + tv.add_node( LTreeNode( text=_('Contents'), diff --git a/pysollib/kivy/selectgame.py b/pysollib/kivy/selectgame.py index a9946a0ea..49ebf2d4f 100644 --- a/pysollib/kivy/selectgame.py +++ b/pysollib/kivy/selectgame.py @@ -487,6 +487,12 @@ def loaderCB(treeview, node): tv.load_func = loaderCB tv.bind(minimum_height=tv.setter('height')) + def back_command(): + parent.popWork('SelectGame') + self.app.menubar.mMainMenuDialog() + tv.add_node(LTreeNode( + text='[b]' + _('< Back') + '[/b]', command=back_command)) + # tree in einem Scrollwindow präsentieren. root = LScrollView(pos=(0, 0))