# 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 "activeRoutePreviousItem" in msg:
            if msg["activeRoutePreviousItem"]:
                self.activeRoutePreviousItem = self.simulation.trackItems[msg["activeRoutePreviousItem"]]
            else:
                self.activeRoutePreviousItem = None
        if "trainEndsFW" in msg:
            self._trainHeads = [v for v in msg["trainEndsFW"].values()]
        if "trainEndsBK" in msg:
            self._trainTails = [v for v in msg["trainEndsBK"].values()]
        self.updateGraphics()

    trainEntersItem = QtCore.pyqtSignal()
    trainLeavesItem = QtCore.pyqtSignal()

    @staticmethod
    def getProperties():
        return [
            helper.TIProperty("tiTypeStr",
                              translate("TrackItem", "Type"), True),
            helper.TIProperty("tiId", translate("TrackItem", "id"), True),
            helper.TIProperty("name", translate("TrackItem", "Name")),
            helper.TIProperty("originStr", translate("TrackItem", "Position")),
            helper.TIProperty("maxSpeed", translate("TrackItem",
                              "Maximum speed (m/s)")),
            helper.TIProperty("conflictTiId", translate("TrackItem",
                              "Conflict item ID"))]

    @staticmethod
    def getMultiProperties():
        return [helper.TIProperty("tiId", translate("TrackItem", "id"), True),

# 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 "activeRoutePreviousItem" in msg:
            if msg["activeRoutePreviousItem"]:
                self.activeRoutePreviousItem = self.simulation.trackItems[msg["activeRoutePreviousItem"]]
            else:
                self.activeRoutePreviousItem = None
        if "trainEndsFW" in msg:
            self._trainHeads = [v for v in msg["trainEndsFW"].values()]
        if "trainEndsBK" in msg:
            self._trainTails = [v for v in msg["trainEndsBK"].values()]
        self.updateGraphics()

    trainEntersItem = QtCore.pyqtSignal()
    trainLeavesItem = QtCore.pyqtSignal()

    @staticmethod
    def getProperties():
        return [
            helper.TIProperty("tiTypeStr",
                              translate("TrackItem", "Type"), True),
            helper.TIProperty("tiId", translate("TrackItem", "id"), True),
            helper.TIProperty("name", translate("TrackItem", "Name")),
            helper.TIProperty("originStr", translate("TrackItem", "Position")),
            helper.TIProperty("maxSpeed", translate("TrackItem",
                              "Maximum speed (m/s)")),
            helper.TIProperty("conflictTiId", translate("TrackItem",
                              "Conflict item ID"))]

    @staticmethod
    def getMultiProperties():
        return [helper.TIProperty("tiId", translate("TrackItem", "id"), True),

                helper.TIProperty("maxSpeed",