qtpy: make git-cola pyside-compatible
Pyside segfaults if the argv passed to it contains unicode, so
avoid the core.abspath() wrapper when starting the application.
Pyside's hotkey wrappers are less featureful and do not support
binding hotkeys with ints or Qt.Key_XXX | Qt.XXX_Modifier.
Use QKeySequence for all hotkeys to make them compatible across
all Qt binding libraries.
Pyside requires that QTreeWidgetItem subclasses implement __eq__
in order to use `item in list` expressions, so we provide a
minimal implementation that checks for item identity.
Checking the sha1s would makes it less robust, e.g. it would
fail if given a specially crafted file todo with duplicate
sha1s, so object identity is used for both robustness and speed.
Signed-off-by: David Aguilar <davvid@gmail.com>