Skip to content

Commit 041f9ab

Browse files
committed
Allow auto scaling and spread stacks to be used together
1 parent 01051f4 commit 041f9ab

5 files changed

Lines changed: 16 additions & 22 deletions

File tree

pysollib/app.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -984,7 +984,6 @@ def selectCardset(self, title, key):
984984
if USE_PIL:
985985
if (self.opt.scale_x, self.opt.scale_y,
986986
self.opt.auto_scale, self.opt.preview_scale,
987-
self.opt.spread_stacks,
988987
self.opt.preserve_aspect_ratio) != \
989988
d.scale_values or \
990989
(cs.CARD_XOFFSET, cs.CARD_YOFFSET) != d.cardset_values:
@@ -996,7 +995,6 @@ def selectCardset(self, title, key):
996995
self.opt.scale_y,
997996
self.opt.auto_scale,
998997
self.opt.preview_scale,
999-
self.opt.spread_stacks,
1000998
self.opt.preserve_aspect_ratio) = d.scale_values
1001999
if not self.opt.auto_scale:
10021000
self.images.resize(self.opt.scale_x, self.opt.scale_y,

pysollib/game/__init__.py

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1053,21 +1053,32 @@ def resizeImages(self, manually=False):
10531053
# calculate factor of resizing
10541054
xf = float(vw)/iw
10551055
yf = float(vh)/ih
1056-
if (self.app.opt.preserve_aspect_ratio
1057-
and not self.app.opt.spread_stacks):
1058-
xf = yf = min(xf, yf)
1056+
if self.app.opt.preserve_aspect_ratio:
1057+
if self.app.opt.spread_stacks:
1058+
# layout uses full xf, yf; images use uniform scale
1059+
xf_img, yf_img = min(xf, yf), min(xf, yf)
1060+
else:
1061+
xf = yf = min(xf, yf)
1062+
xf_img, yf_img = xf, yf
1063+
else:
1064+
xf_img, yf_img = xf, yf
10591065
else:
10601066
xf, yf = self.app.opt.scale_x, self.app.opt.scale_y
1067+
xf_img, yf_img = xf, yf
1068+
10611069
if (not self.app.opt.center_layout or self.app.opt.spread_stacks or
10621070
(self.app.opt.auto_scale and not
10631071
self.app.opt.preserve_aspect_ratio)):
10641072
self.center_offset = 0, 0
10651073
else:
10661074
self.center_offset = self.app.images.getCenterOffset(
10671075
vw, vh, iw, ih, xf, yf, self.app.opt.auto_scale)
1068-
if (not self.app.opt.spread_stacks or manually):
1076+
1077+
if (not self.app.opt.spread_stacks or self.app.opt.auto_scale
1078+
or manually):
10691079
# images
1070-
self.app.images.resize(xf, yf, resample=self.app.opt.resampling)
1080+
self.app.images.resize(xf_img, yf_img,
1081+
resample=self.app.opt.resampling)
10711082
# cards
10721083
for card in self.cards:
10731084
card.update(card.id, card.deck, card.suit, card.rank, self)

pysollib/tile/selectcardset.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -464,19 +464,16 @@ def mDone(self, button):
464464
bool(self.preserve_aspect.get()))
465465

466466
if auto_scale:
467-
self.app.menubar.tkopt.spread_stacks.set(False)
468467
self.scale_values = (self.app.opt.scale_x,
469468
self.app.opt.scale_y,
470469
auto_scale,
471470
bool(self.preview_scale.get()),
472-
False,
473471
bool(self.preserve_aspect.get()))
474472
else:
475473
self.scale_values = (self.scale_x.get(),
476474
self.scale_y.get(),
477475
auto_scale,
478476
self.app.opt.preview_scale,
479-
self.app.opt.spread_stacks,
480477
self.app.opt.
481478
preserve_aspect_ratio)
482479
if button == 10: # Info

pysollib/tk/menubar.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,6 @@ def mSelectCardsetDialog(self, *event):
111111
self.app.opt.scale_y,
112112
self.app.opt.auto_scale,
113113
self.app.opt.preview_scale,
114-
self.app.opt.spread_stacks,
115114
self.app.opt.preserve_aspect_ratio) != d.scale_values
116115
else:
117116
changed = False
@@ -124,7 +123,6 @@ def mSelectCardsetDialog(self, *event):
124123
self.app.opt.scale_y,
125124
self.app.opt.auto_scale,
126125
self.app.opt.preview_scale,
127-
self.app.opt.spread_stacks,
128126
self.app.opt.preserve_aspect_ratio) = d.scale_values
129127
if not self.app.opt.auto_scale:
130128
self.app.images.resize(self.app.opt.scale_x,

pysollib/ui/tktile/menubar.py

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1882,11 +1882,6 @@ def mOptAutoScale(self, *event):
18821882
return
18831883
auto_scale = not self.app.opt.auto_scale
18841884

1885-
# In the future, it should be possible to use both options together,
1886-
# but the current logic conflicts, so not allowed for now.
1887-
self.app.opt.spread_stacks = False
1888-
self.tkopt.spread_stacks.set(False)
1889-
18901885
self.app.opt.auto_scale = auto_scale
18911886
self.tkopt.auto_scale.set(auto_scale)
18921887
self._updateCardSize()
@@ -1922,11 +1917,6 @@ def mOptSpreadStacks(self, *event):
19221917
return
19231918
spread_stacks = not self.app.opt.spread_stacks
19241919

1925-
# In the future, it should be possible to use both options together,
1926-
# but the current logic conflicts, so not allowed for now.
1927-
self.app.opt.auto_scale = False
1928-
self.tkopt.auto_scale.set(False)
1929-
19301920
self.app.opt.spread_stacks = spread_stacks
19311921
self.tkopt.spread_stacks.set(spread_stacks)
19321922
self._updateCardSize()

0 commit comments

Comments
 (0)