1
0
Fork 0
mirror of https://github.com/shlomif/PySolFC.git synced 2025-04-05 00:02:29 -04:00

Unify the codebases of menubar.pys.

TODO : move to the base class.
This commit is contained in:
Shlomi Fish 2016-02-17 21:36:46 +02:00
parent 98fcd0a357
commit 2e557fde5d
2 changed files with 47 additions and 17 deletions

View file

@ -83,7 +83,6 @@ class PysolMenubarTk(PysolMenubarTkCommon):
#
def _createMenubar(self):
print "FluutterBat"
MfxMenubar.addPath = self._addPath
kw = { "name": "menubar" }
self.menubar = MfxMenubar(self.top, **kw)
@ -298,7 +297,7 @@ class PysolMenubarTk(PysolMenubarTkCommon):
self._bindKey(ctrl, "g", self.mRestart)
self._bindKey("", "space", self.mDeal) # undocumented
self._bindKey(ctrl, "y", lambda e: self.mPlayerStats(mode=100))
self._bindKey(ctrl, "t", self.mPlayerStats)
self._bindKey(ctrl, "t", lambda e: self.mPlayerStats(mode=105))
self._bindKey("", "h", self.mHint)
self._bindKey(ctrl, "h", self.mHint1) # undocumented
##self._bindKey("", "Shift_L", self.mHighlightPiles)
@ -554,9 +553,6 @@ class PysolMenubarTk(PysolMenubarTkCommon):
label = gi.short_name
else:
label = gi.name
## menu.add_radiobutton(command=command, variable=variable,
## columnbreak=columnbreak,
## value=gi.id, label=label, name=None)
# optimized by inlining
menu.tk.call((menu._w, 'add', 'radiobutton') +
menu._options({'command': command,

View file

@ -78,6 +78,9 @@ class PysolMenubarTk(PysolMenubarTkCommon):
# create the menubar
#
def createThemesMenu(self, menu):
return
def _createMenubar(self):
MfxMenubar.addPath = self._addPath
kw = { "name": "menubar" }
@ -111,6 +114,7 @@ class PysolMenubarTk(PysolMenubarTkCommon):
menu.add_command(label=n_("&Open..."), command=self.mOpen, accelerator=m+"O")
menu.add_command(label=n_("&Save"), command=self.mSave, accelerator=m+"S")
menu.add_command(label=n_("Save &as..."), command=self.mSaveAs)
menu.add_command(label=n_("E&xport current layout..."), command=self.mExportCurrentLayout)
menu.add_separator()
menu.add_command(label=n_("&Hold and quit"), command=self.mHoldAndQuit, accelerator=m+"X")
if WIN_SYSTEM != "aqua":
@ -157,18 +161,10 @@ class PysolMenubarTk(PysolMenubarTkCommon):
menu.add_command(label=n_("S&tatus..."), command=lambda : self.mPlayerStats(mode=100), accelerator=m+"Y")
menu.add_checkbutton(label=n_("&Comments..."), variable=self.tkopt.comment, command=self.mEditGameComment)
menu.add_separator()
submenu = MfxMenu(menu, label=n_("&Statistics"))
submenu.add_command(label=n_("Current game..."), command=lambda : self.mPlayerStats(mode=101))
submenu.add_command(label=n_("All games..."), command=lambda : self.mPlayerStats(mode=102))
submenu.add_separator()
submenu.add_command(label=n_("Session log..."), command=lambda : self.mPlayerStats(mode=104))
submenu.add_command(label=n_("Full log..."), command=lambda : self.mPlayerStats(mode=103))
submenu.add_separator()
submenu.add_command(label=TOP_TITLE+"...", command=lambda : self.mPlayerStats(mode=105), accelerator=m+"T")
submenu.add_command(label=n_("Progression..."), command=lambda : self.mPlayerStats(mode=107))
submenu = MfxMenu(menu, label=n_("D&emo statistics"))
submenu.add_command(label=n_("Current game..."), command=lambda : self.mPlayerStats(mode=1101))
submenu.add_command(label=n_("All games..."), command=lambda : self.mPlayerStats(mode=1102))
menu.add_command(label=n_("&Statistics..."), command=self.mPlayerStats, accelerator=m+"T")
menu.add_command(label=n_("Log..."), command=lambda : self.mPlayerStats(mode=103))
menu.add_separator()
menu.add_command(label=n_("D&emo statistics"), command=lambda : self.mPlayerStats(mode=1101))
menu = MfxMenu(self.menubar, label=n_("&Assist"))
menu.add_command(label=n_("&Hint"), command=self.mHint, accelerator="H")
@ -252,6 +248,7 @@ class PysolMenubarTk(PysolMenubarTkCommon):
menu.add_command(label=n_("&Colors..."), command=self.mOptColors)
menu.add_command(label=n_("Time&outs..."), command=self.mOptTimeouts)
menu.add_separator()
self.createThemesMenu(menu)
submenu = MfxMenu(menu, label=n_("&Toolbar"))
createToolbarMenu(self, submenu)
submenu = MfxMenu(menu, label=n_("Stat&usbar"))
@ -759,6 +756,43 @@ class PysolMenubarTk(PysolMenubarTkCommon):
if os.path.isfile(filename):
self.game.loadGame(filename)
def mExportCurrentLayout(self, *event):
if self._cancelDrag(break_pause=False): return
game = self.game
if not self.menustate.save_as:
return
if not game.Solver_Class:
d = MfxMessageDialog(self.top, title=_('Export game error'),
text=_('''
Unsupported game for export.
'''),
bitmap='error')
return
filename = game.filename
if not filename:
filename = self.app.getGameSaveName(self.game.id)
if os.name == "posix" or os.path.supports_unicode_filenames:
filename += "-" + self.game.getGameNumber(format=0)
else:
filename += "-01"
filename += ".board"
idir, ifile = os.path.split(os.path.normpath(filename))
if not idir:
idir = self.app.dn.savegames
##print self.game.filename, ifile
d = tkFileDialog.SaveAs()
filename = d.show(filetypes=self.FILETYPES,
defaultextension=self.DEFAULTEXTENSION,
initialdir=idir, initialfile=ifile)
if filename:
filename = os.path.normpath(filename)
##filename = os.path.normcase(filename)
with open(filename, 'w') as fh:
game = self.game
fh.write(game.Solver_Class(game, self).calcBoardString())
self.updateMenus()
def mSaveAs(self, *event):
if self._cancelDrag(break_pause=False): return
if not self.menustate.save_as: