Cruft:InstallerProject_SyncPack - took methods and settings along REWORD:

Under 76576
_InstallerLink: projectExists(), getProjectPath() were only called from
InstallerProject_SyncPack
Also:

    dirs['builds'] = dirs['app'].join(u'Builds')

was only used in getProjectPath:

        return bosh.dirs['builds'].join(archive.sroot)

Some never implemented feature I guess.
Fix[bosh]: code paths in InitSettings:

If backup settings is there and corrupted and user chooses to loadEmpty()
this will try in dictFile.load() to load the backup again - fixed
Introduced delBackup whereupon I delete the backup when I know it's
"corrupted" but what about the usebck=False path ?
#EDIT:  introduced 'ignoreBackup' param for this

Exceptions raised from the error message:
u'%s' % "cPickle.UnpicklingError: invalid load key, 'ÿ'."
Traceback (most recent call last):
  File "<input>", line 1, in <module>
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 44: ordinal not in range(128)

So yeah - use repr: http://stackoverflow.com/q/27652804/281545

Maybe other occurrences of this pattern in the code...
RIP: dialogs from basher:

ListBoxes
ColorDialog
ImportFaceDialog
Mod_BaloGroups_Edit - dialogs.modList = None # TODO: Balo - bin
CreateNewProject
Nitpick: Installers help messages and some de-wx'ing:

Be aware that balt.tooltip wraps at 50 chars - not a problem for the strings
here.
Deleted ModBaseData, ModBasePanel - REWORD add issue number before merge:
Possible bug - iniList may be none
UIList: tmp common superclass of Tank and List - TODOs OnItemSelected BSAList:

Tank and List must be unified.
UIList calls wx.Panel and wx.ListCtrl init

Notice MastersList did not register a callback for OnItemSelected, made it
event.Skip() # fixup IniList did not register a callback either
id parameter removed from Tank and List `__init__` and also from
balt.ListCtrl `__init__`
_sizeHints class parameter - notice it was set in some cases via
SetSizeHints - TODO: hunt this down
dndColumns=() - made immutable, should be OK

FIXUP BASW COMMIT
More stuff moved --- MOUSE OVER EDIITTTT

MouseOverItem vs MouseEnteredItem( ==== notice also GetIteeeemmmmmm

def MouseOverItem(self, item):
+        """Handle mouse over item by showing tip or similar."""
+        pass
+

EDIT """Handle mouse over item by showing tip or similar.""" to mention
the class it belongs = make it event.Skip()

,,,,

SWUASH WITH PREV Fix for event.Leaving ---- GetItem stuff escapes me
Callbacks to UIList - TODO:

List.OnDoubleClick -> UIList.OnDClick
OnDoubleClick was only registered as a callback for wx.EVT_LEFT_DCLICK in
Mod and Screens Lists - now registered in UIList as an event.Skip()

List.DoItemSort -> UIList.OnColumnClick

OnScroll, OnColumnResize Abstract

OnColumnResize: overrides were calling settings.setChanged() -
introduced self.colWidthsKey and self.colWidths in UIList.

OnScroll:: in List sets vScrollPosition - not used anywhere
TODO: vScrollPos attribute in UIList overridden by parameter at Tank to
use the data dict (duh)
colNames, colAligns moved to UIList - TODO: move rest of settings keys
mainMenu and itemMenu are now class attributes of UIList:

Notice now List and Tank constructors are comparable, at last
self.sort to UIList - TODO: self.colReverse
Tank init further simplification (dropped icons and style params)
Dropped self.checkboxes in List (now UIList/List.icons)
wx.Frame subclasses (apart from BashFrame) ripped from basher - TODO modChecker:

globals docBrowser and modChecker moved to Link.Frame, notice that modChecker
leaks (?)
style moved to base
SQUASH style params to UIList
checkUncheckMod belongs to ModList not to List
Removed Balo - TODO bosh!!!
TODO groupHeader, reGroupHeader Modgroups.filter bin