diff --git a/pysollib/app.py b/pysollib/app.py index 1708db24..9d48b6a1 100644 --- a/pysollib/app.py +++ b/pysollib/app.py @@ -297,17 +297,18 @@ class Options: self.default_tile_theme = 'default' elif WIN_SYSTEM == 'aqua': self.tile_theme = self.default_tile_theme = 'aqua' - # cardsets + # sw, sh, sd = 0, 0, 8 if top: sw, sh, sd = (top.winfo_screenwidth(), top.winfo_screenheight(), top.winfo_screendepth()) + # bg if sd > 8: self.tabletile_name = "Nostalgy.gif" # basename else: self.tabletile_name = None - # + # cardsets c = "Standard" if sw < 800 or sh < 600: c = "2000" @@ -390,12 +391,15 @@ class Options: # games_geometry for key, val in self.games_geometry.items(): - val = ' '.join(val) + val = ' '.join([str(i) for i in val]) config.set('games_geometry', str(key), val) config.write(file(filename, 'w')) #config.write(sys.stdout) + def printOptError(self, key): + pass + def _getOption(self, section, key, t): config = self._config try: @@ -410,6 +414,7 @@ class Options: except ConfigParser.NoOptionError: val = None except: + print >> sys.stderr, 'Load option error:', key traceback.print_exc() val = None return val @@ -1038,7 +1043,7 @@ class Application: self.menubar.updateRecentGamesMenu(self.opt.recent_gameid) self.menubar.updateFavoriteGamesMenu() # hide/show "Shuffle" button - self.toolbar.config('shuffle', self.game.canShuffle()) + ##self.toolbar.config('shuffle', self.game.canShuffle() and self.opt.toolbar_vars['shuffle']) # delete intro progress bar if self.intro.progress: self.intro.progress.destroy() @@ -1453,6 +1458,14 @@ Please select a %s type %s. def loadOptions(self): self.opt.setDefaults(self.top) + + if os.path.exists(self.fn.opt): + # for backwards compatibility + opt = unpickle(self.fn.opt) + if opt: + self.opt.__dict__.update(opt.__dict__) + os.remove(self.fn.opt) + if not os.path.exists(self.fn.opt_cfg): return self.opt.load(self.fn.opt_cfg) diff --git a/pysollib/images.py b/pysollib/images.py index 1085d4b3..d97ab6ec 100644 --- a/pysollib/images.py +++ b/pysollib/images.py @@ -42,7 +42,7 @@ from settings import TOOLKIT from mfxutil import Image, ImageTk # Toolkit imports -from pysoltk import tkversion, loadImage, copyImage, createImage, shadowImage +from pysoltk import loadImage, copyImage, createImage, shadowImage # /*********************************************************************** @@ -408,10 +408,8 @@ class SubsampledImages(Images): # CW, CH = self.CARDW, self.CARDH for im in images._shade: - if im is None or tkversion < (8, 3, 0, 0): - self._shade.append(None) - else: - self._shade.append(copyImage(im, 0, 0, CW, CH)) + ##self._shade.append(None) + self._shade.append(copyImage(im, 0, 0, CW, CH)) def getShadow(self, ncards): return None diff --git a/pysollib/pysolgtk/tkconst.py b/pysollib/pysolgtk/tkconst.py index 627cc2f3..a70a7880 100644 --- a/pysollib/pysolgtk/tkconst.py +++ b/pysollib/pysolgtk/tkconst.py @@ -42,17 +42,12 @@ from gtk import ANCHOR_NW, ANCHOR_SW, ANCHOR_NE, ANCHOR_SE # // constants # ************************************************************************/ -# (major version, minor version, micro version, patchlevel) -tkversion = (0, 0, 0, 0) - EVENT_HANDLED = 1 EVENT_PROPAGATE = 0 CURSOR_DRAG = gdk.HAND1 CURSOR_WATCH = gdk.WATCH CURSOR_DOWN_ARROW = gdk.SB_DOWN_ARROW -CURSOR_CAN_MOVE = gdk.HAND2 -CURSOR_NO_MOVE = gdk.DOT TOOLBAR_BUTTONS = ( "new", diff --git a/pysollib/stack.py b/pysollib/stack.py index 7c98e859..9b498638 100644 --- a/pysollib/stack.py +++ b/pysollib/stack.py @@ -112,7 +112,7 @@ from mfxutil import Image, ImageTk from util import ACE, KING from util import ANY_SUIT, ANY_COLOR, ANY_RANK, NO_RANK from pysoltk import EVENT_HANDLED, EVENT_PROPAGATE -from pysoltk import CURSOR_DRAG, CURSOR_DOWN_ARROW, CURSOR_CAN_MOVE, CURSOR_NO_MOVE +from pysoltk import CURSOR_DRAG, CURSOR_DOWN_ARROW from pysoltk import ANCHOR_NW, ANCHOR_SE from pysoltk import bind, unbind_destroy from pysoltk import after, after_idle, after_cancel @@ -1089,8 +1089,6 @@ class Stack: return self.__defaultClickEventHandler(event, self.shiftrightclickHandler) def __motionEventHandler(self, event): - ##if not self.game.drag.stack: - ## self._setMotionCursor(event) if not self.game.drag.stack or self is not self.game.drag.stack: return EVENT_PROPAGATE if self.game.demo: @@ -1436,20 +1434,6 @@ class Stack: group=self.group) drag.shadows.append(im) -## def _setMotionCursor(self, event): -## if not event: -## return -## self.cursor_changed = True -## i = self._findCard(event) -## if i < 0 or not self.canMoveCards(self.cards[i:]): -## if self.current_cursor != CURSOR_NO_MOVE: -## self.game.canvas.config(cursor=CURSOR_NO_MOVE) -## self.current_cursor = CURSOR_NO_MOVE -## else: -## if self.current_cursor != CURSOR_CAN_MOVE: -## self.game.canvas.config(cursor=CURSOR_CAN_MOVE) -## self.current_cursor = CURSOR_CAN_MOVE - def _stopDrag(self): drag = self.game.drag after_cancel(drag.timer) diff --git a/pysollib/tile/card.py b/pysollib/tile/card.py index 1f5bf9ea..ad9fce62 100644 --- a/pysollib/tile/card.py +++ b/pysollib/tile/card.py @@ -41,7 +41,6 @@ __all__ = ['Card'] from pysollib.acard import AbstractCard # Toolkit imports -from tkconst import TK_DASH_PATCH from tkcanvas import MfxCanvasGroup, MfxCanvasImage @@ -190,18 +189,12 @@ class _TwoImageCard(_HideableCard): def showFace(self, unhide=1): if not self.face_up: - if TK_DASH_PATCH: - self.__back.config(state="hidden") - self.__face.config(state="normal") self.__face.tkraise() self.tkraise(unhide) self.face_up = 1 def showBack(self, unhide=1): if self.face_up: - if TK_DASH_PATCH: - self.__face.config(state="hidden") - self.__back.config(state="normal") self.__back.tkraise() self.tkraise(unhide) self.face_up = 0 diff --git a/pysollib/tile/soundoptionsdialog.py b/pysollib/tile/soundoptionsdialog.py index 1e6be712..808de4ac 100644 --- a/pysollib/tile/soundoptionsdialog.py +++ b/pysollib/tile/soundoptionsdialog.py @@ -175,7 +175,7 @@ class SoundOptionsDialog(MfxDialog): def mDone(self, button): if button == 0 or button == 1: self.app.opt.sound = self.sound.get() - self.app.opt.sound_mode = self.sound_mode.get() + self.app.opt.sound_mode = int(self.sound_mode.get()) self.app.opt.sound_sample_volume = self.sample_volume.get() self.app.opt.sound_music_volume = self.music_volume.get() for n, t, v in self.samples: diff --git a/pysollib/tile/tkconst.py b/pysollib/tile/tkconst.py index efd48993..7699127c 100644 --- a/pysollib/tile/tkconst.py +++ b/pysollib/tile/tkconst.py @@ -33,15 +33,11 @@ ## ##---------------------------------------------------------------------------## -__all__ = ['tkversion', - 'TK_DASH_PATCH', - 'EVENT_HANDLED', +__all__ = ['EVENT_HANDLED', 'EVENT_PROPAGATE', 'CURSOR_DRAG', 'CURSOR_WATCH', 'CURSOR_DOWN_ARROW', - 'CURSOR_CAN_MOVE', - 'CURSOR_NO_MOVE', 'ANCHOR_CENTER', 'ANCHOR_N', 'ANCHOR_NW', @@ -64,30 +60,12 @@ import Tkinter # // constants # ************************************************************************/ -# (major version, minor version, micro version, patchlevel) -tkversion = (8, 0, 0, 0) -try: - m = str(Tkinter._tkinter.TK_VERSION).split(".") - if m: - m = map(int, m) + 4*[0] - tkversion = tuple(m[:4]) - del m -except: - traceback.print_exc() - pass - -# experimental -TK_DASH_PATCH = 0 - - EVENT_HANDLED = "break" EVENT_PROPAGATE = None CURSOR_DRAG = "hand1" CURSOR_WATCH = "watch" CURSOR_DOWN_ARROW = 'sb_down_arrow' -CURSOR_CAN_MOVE = 'hand2' -CURSOR_NO_MOVE = 'dot' ANCHOR_CENTER = Tkinter.CENTER ANCHOR_N = Tkinter.N @@ -117,6 +95,7 @@ TOOLBAR_BUTTONS = ( "undo", "redo", "autodrop", + "shuffle", "pause", "statistics", "rules", diff --git a/pysollib/tile/tkutil.py b/pysollib/tile/tkutil.py index 7329d8fa..7e1b8e96 100644 --- a/pysollib/tile/tkutil.py +++ b/pysollib/tile/tkutil.py @@ -65,9 +65,6 @@ from tkFont import Font from pysollib.mfxutil import Image, ImageTk, ImageOps from pysollib.settings import PACKAGE, WIN_SYSTEM -# Toolkit imports -from tkconst import tkversion - # /*********************************************************************** # // window manager util diff --git a/pysollib/tk/card.py b/pysollib/tk/card.py index 1f5bf9ea..ad9fce62 100644 --- a/pysollib/tk/card.py +++ b/pysollib/tk/card.py @@ -41,7 +41,6 @@ __all__ = ['Card'] from pysollib.acard import AbstractCard # Toolkit imports -from tkconst import TK_DASH_PATCH from tkcanvas import MfxCanvasGroup, MfxCanvasImage @@ -190,18 +189,12 @@ class _TwoImageCard(_HideableCard): def showFace(self, unhide=1): if not self.face_up: - if TK_DASH_PATCH: - self.__back.config(state="hidden") - self.__face.config(state="normal") self.__face.tkraise() self.tkraise(unhide) self.face_up = 1 def showBack(self, unhide=1): if self.face_up: - if TK_DASH_PATCH: - self.__face.config(state="hidden") - self.__back.config(state="normal") self.__back.tkraise() self.tkraise(unhide) self.face_up = 0 diff --git a/pysollib/tk/soundoptionsdialog.py b/pysollib/tk/soundoptionsdialog.py index dca2ecea..1209acbd 100644 --- a/pysollib/tk/soundoptionsdialog.py +++ b/pysollib/tk/soundoptionsdialog.py @@ -180,7 +180,7 @@ class SoundOptionsDialog(MfxDialog): def mDone(self, button): if button == 0 or button == 1: self.app.opt.sound = self.sound.get() - self.app.opt.sound_mode = self.sound_mode.get() + self.app.opt.sound_mode = int(self.sound_mode.get()) self.app.opt.sound_sample_volume = self.sample_volume.get() self.app.opt.sound_music_volume = self.music_volume.get() for n, t, v in self.samples: diff --git a/pysollib/tk/tkconst.py b/pysollib/tk/tkconst.py index b34cbdd4..79d56bc5 100644 --- a/pysollib/tk/tkconst.py +++ b/pysollib/tk/tkconst.py @@ -33,15 +33,11 @@ ## ##---------------------------------------------------------------------------## -__all__ = ['tkversion', - 'TK_DASH_PATCH', - 'EVENT_HANDLED', +__all__ = ['EVENT_HANDLED', 'EVENT_PROPAGATE', 'CURSOR_DRAG', 'CURSOR_WATCH', 'CURSOR_DOWN_ARROW', - 'CURSOR_CAN_MOVE', - 'CURSOR_NO_MOVE', 'ANCHOR_CENTER', 'ANCHOR_N', 'ANCHOR_NW', @@ -63,29 +59,12 @@ import Tkinter # // constants # ************************************************************************/ -# (major version, minor version, micro version, patchlevel) -tkversion = (8, 0, 0, 0) -try: - m = str(Tkinter._tkinter.TK_VERSION).split(".") - if m: - m = map(int, m) + 4*[0] - tkversion = tuple(m[:4]) - del m -except: - pass - -# experimental -TK_DASH_PATCH = 0 - - EVENT_HANDLED = "break" EVENT_PROPAGATE = None CURSOR_DRAG = "hand1" CURSOR_WATCH = "watch" CURSOR_DOWN_ARROW = 'sb_down_arrow' -CURSOR_CAN_MOVE = 'hand2' -CURSOR_NO_MOVE = 'dot' ANCHOR_CENTER = Tkinter.CENTER ANCHOR_N = Tkinter.N @@ -115,6 +94,7 @@ TOOLBAR_BUTTONS = ( "undo", "redo", "autodrop", + "shuffle", "pause", "statistics", "rules", diff --git a/pysollib/tk/tkutil.py b/pysollib/tk/tkutil.py index 48da12fd..da188b48 100644 --- a/pysollib/tk/tkutil.py +++ b/pysollib/tk/tkutil.py @@ -65,9 +65,6 @@ from tkFont import Font from pysollib.mfxutil import Image, ImageTk, ImageOps from pysollib.settings import PACKAGE, WIN_SYSTEM -# Toolkit imports -from tkconst import tkversion - # /*********************************************************************** # // window manager util