# Path: Qt.py

# 
# Path: ts2/utils.py
# class Context:
# class FormatException(Exception):
# class MissingDependencyException(Exception):
# class DurationProba(QtCore.QObject):
#     GAME = 10
#     EDITORS = [20, 21, 22, 23, 24, 25]
#     EDITOR_GENERAL = 20
#     EDITOR_SCENERY = 21
#     EDITOR_ROUTES = 22
#     EDITOR_TRAINTYPES = 23
#     EDITOR_SERVICES = 24
#     EDITOR_TRAINS = 25
#     def __init__(self, arg):
#     def __init__(self, arg):
# def cumsum(lis):
#     def __init__(self, data):
#     def __str__(self):
#     def list(self):
#     def isNull(self):
#     def yieldValue(self):
# def to_json(data):
# def from_json(json_str):
# 
# Path: ts2/scenery/helper.py
# class TrackGraphicsItem(QtWidgets.QGraphicsItem):
# class TrackPropertiesModel(QtCore.QAbstractTableModel):
# class TIProperty:
#     def __init__(self, trackItem, itemId=0):
#     def boundingRect(self):
#     def shape(self):
#     def paint(self, painter, option, widget=None):
#     def mousePressEvent(self, event):
#     def mouseMoveEvent(self, event):
#     def dragEnterEvent(self, event):
#     def dragLeaveEvent(self, event):
#     def dropEvent(self, event):
#     def __init__(self, trackItems):
#     def rowCount(self, parent=None, *args):
#     def columnCount(self, parent=None, *args):
#     def data(self, index, role=Qt.DisplayRole):
#     def setData(self, index, value, role=Qt.EditRole):
#     def headerData(self, section, orientation, role=Qt.DisplayRole):
#     def flags(self, index):
#     def __init__(self, name, display, readOnly=False, propType="str",
#                  enumNames=None, enumValues=None):


from Qt import QtCore, QtGui, QtWidgets, Qt
from ts2 import utils
from ts2.scenery import helper
        if ti is None or self.tiId != ti.tiId:
            return True
        else:
            return False

    def __updateGraphics(self):
        for gi in self._gi.values():
            gi.update()

    def removeAllGraphicsItems(self):
        """Removes all the graphics items associated with this TrackItem
        from the scene."""
        for gi in self._gi.values():
            self.simulation.scene.removeItem(gi)

    @QtCore.pyqtSlot()
    def updateGraphics(self):
        self.__updateGraphics()

    def updateTrain(self):
        """Updates the graphics item for train only"""
        self.updateGraphics()

    # ## Graphics Methods #################################################

    def getPen(self):
        """
        :return: the standard pen for drawing trackItems
        :rtype: ``QPen``
        """

# Path: Qt.py

# 
# Path: ts2/utils.py
# class Context:
# class FormatException(Exception):
# class MissingDependencyException(Exception):
# class DurationProba(QtCore.QObject):
#     GAME = 10
#     EDITORS = [20, 21, 22, 23, 24, 25]
#     EDITOR_GENERAL = 20
#     EDITOR_SCENERY = 21
#     EDITOR_ROUTES = 22
#     EDITOR_TRAINTYPES = 23
#     EDITOR_SERVICES = 24
#     EDITOR_TRAINS = 25
#     def __init__(self, arg):
#     def __init__(self, arg):
# def cumsum(lis):
#     def __init__(self, data):
#     def __str__(self):
#     def list(self):
#     def isNull(self):
#     def yieldValue(self):
# def to_json(data):
# def from_json(json_str):
# 
# Path: ts2/scenery/helper.py
# class TrackGraphicsItem(QtWidgets.QGraphicsItem):
# class TrackPropertiesModel(QtCore.QAbstractTableModel):
# class TIProperty:
#     def __init__(self, trackItem, itemId=0):
#     def boundingRect(self):
#     def shape(self):
#     def paint(self, painter, option, widget=None):
#     def mousePressEvent(self, event):
#     def mouseMoveEvent(self, event):
#     def dragEnterEvent(self, event):
#     def dragLeaveEvent(self, event):
#     def dropEvent(self, event):
#     def __init__(self, trackItems):
#     def rowCount(self, parent=None, *args):
#     def columnCount(self, parent=None, *args):
#     def data(self, index, role=Qt.DisplayRole):
#     def setData(self, index, value, role=Qt.EditRole):
#     def headerData(self, section, orientation, role=Qt.DisplayRole):
#     def flags(self, index):
#     def __init__(self, name, display, readOnly=False, propType="str",
#                  enumNames=None, enumValues=None):


# Path: ts2/scenery/abstract.py
from Qt import QtCore, QtGui, QtWidgets, Qt
from ts2 import utils
from ts2.scenery import helper

        if ti is None or self.tiId != ti.tiId:
            return True
        else:
            return False

    def __updateGraphics(self):
        for gi in self._gi.values():
            gi.update()

    def removeAllGraphicsItems(self):
        """Removes all the graphics items associated with this TrackItem
        from the scene."""
        for gi in self._gi.values():
            self.simulation.scene.removeItem(gi)

    @QtCore.pyqtSlot()
    def updateGraphics(self):
        self.__updateGraphics()

    def updateTrain(self):
        """Updates the graphics item for train only"""
        self.updateGraphics()

    # ## Graphics Methods #################################################

    def getPen(self):
        """
        :return: the standard pen for drawing trackItems
        :rtype: ``QPen``
        """

        pen = QtGui.QPen()