Deleted InstallerProject_SyncPack - took methods and settings along:

Under #173.

_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:

See #178.

Ex.: If backup settings exists and is corrupted and usebck == False
dictFile.load() will try to load the backup again - fixed:
introduced 'ignoreBackup' param
Introduced delBackup whereupon I delete the backup when I know it's
"corrupted"

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...

Needs work
RIP: dialogs from basher:

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

Be aware that balt.tooltip wraps at 50 chars - not a problem for the strings
here.

bosh:
checkUncheckMod belongs to ModList not to List
swapOrder needs not be before init
moveIsSafe is static
Deleted ModBaseData, ModBasePanel:

Under #173.
Possible bug - iniList may be None:

Untested - IniList may not have been initialized - similar logic as in
InstallersList.OnEditLabel --> if iniList is not None: # line 2843
Notice that in IniPanel.SetBaseIni() there are such checks also - smelly -
a property ?
Merge branch 'utumno-163-wip' into dev:

Under #163.
Various nitpick in links files - de-wx'ing - couple TODOs
dialog subclasses ripped of basher
Fixups in bosh.InitSettings()
Review: c33859b67e68384d9ae474dc5965cacc4b86b91b
Removed Balo - TODO bosh!!!
TODO groupHeader, reGroupHeader Modgroups.filter bin
ModGroups.filter() and reGroupHeader removed
auto-sorting + settings
Last balo groups relics
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)