Skip to content

Commit 1585f5d

Browse files
InfernioUtumno
authored andcommitted
Decouple load_order from balt RRR
Was only needed for a single askContinue, which can and should be moved into the link that actually uses the affected load_order method. Also changed None to the __empty sentinel in refresh_lo, which silences a silly pycharm warning (we can't express Optional[X] in py2 type notation... grr, py3 can't come fast enough). Under # 309 <--- RRR
1 parent 7a97594 commit 1585f5d

2 files changed

Lines changed: 15 additions & 11 deletions

File tree

Mopy/bash/basher/mods_links.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -330,7 +330,16 @@ class Mods_LockLoadOrder(CheckLink):
330330

331331
def _check(self): return load_order.locked
332332

333-
def Execute(self): load_order.toggle_lock_load_order()
333+
def Execute(self):
334+
def _show_lo_lock_warning():
335+
message = _(u'Lock Load Order is a feature which resets load '
336+
u'order to a previously memorized state. While this '
337+
u'feature is good for maintaining your load order, it '
338+
u'will also undo any load order changes that you have '
339+
u'made outside Bash.')
340+
return self._askContinue(message, 'bash.load_order.lock_continue',
341+
title=_(u'Lock Load Order'))
342+
load_order.toggle_lock_load_order(_show_lo_lock_warning)
334343

335344
#------------------------------------------------------------------------------
336345
class Mods_CrcRefresh(ItemLink):

Mopy/bash/load_order.py

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@
4444
import collections
4545
import time
4646
# Internal
47-
from . import balt
4847
from . import bass
4948
from . import bolt
5049
from . import bush
@@ -304,15 +303,15 @@ def refresh_lo(cached=False, cached_active=True):
304303
bolt.deprint(u'Saved load order is no longer valid: %s'
305304
u'\nCorrected to %s' % (saved, fixed))
306305
saved = fixed
307-
else: saved = None
306+
else: saved = __empty
308307
if cached_lord is not __empty:
309308
lo = cached_lord.loadOrder if (
310309
cached and not _game_handle.load_order_changed()) else None
311310
active = cached_lord.activeOrdered if (
312311
cached_active and not _game_handle.active_changed()) else None
313312
else: active = lo = None
314313
_update_cache(lo, active)
315-
if locked and saved is not None:
314+
if locked and saved is not __empty:
316315
if cached_lord.loadOrder != saved.loadOrder:
317316
save_lo(saved.loadOrder, saved.activeOrdered)
318317
global warn_locked
@@ -388,16 +387,12 @@ def get_free_time(start_time, default_time='+1', end_time=None):
388387
return _game_handle.get_free_time(start_time, default_time, end_time)
389388

390389
# Lock load order -------------------------------------------------------------
391-
def toggle_lock_load_order():
390+
def toggle_lock_load_order(user_warning_callback):
392391
global locked
393392
lock = not locked
394393
if lock:
395-
message = _(u'Lock Load Order is a feature which resets load order '
396-
u'to a previously memorized state. While this feature is good '
397-
u'for maintaining your load order, it will also undo any load '
398-
u'order changes that you have made outside Bash.')
399-
lock = balt.askContinue(None, message, 'bash.load_order.lock_continue',
400-
title=_(u'Lock Load Order'))
394+
# Make sure the user actually wants to enable this
395+
lock = user_warning_callback()
401396
bass.settings['bosh.modInfos.resetMTimes'] = locked = lock
402397

403398
class Unlock(object):

0 commit comments

Comments
 (0)