# 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
#   but WITHOUT ANY WARRANTY; without even the implied warranty of
#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#   GNU General Public License for more details.
#
#   You should have received a copy of the GNU General Public License
#   along with this program; if not, write to the
#   Free Software Foundation, Inc.,
#   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
#



translate = QtWidgets.qApp.translate


def qPointFStrizer(attr):
    """Returns a function giving the str representation of attr, the
    latter being a QPointF property."""
    def getter(self):
        return "(%i, %i)" % (getattr(self, attr).x(),
                             getattr(self, attr).y())
    return getter


def qPointFDestrizer(attr):
    """Returns a function which updates a QPointF property from a string
    representation of a QPointF."""
    def setter(self, value):
        if self.simulation.context == utils.Context.EDITOR_SCENERY:
            x, y = eval(value.strip('()'))

# 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

#   but WITHOUT ANY WARRANTY; without even the implied warranty of
#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#   GNU General Public License for more details.
#
#   You should have received a copy of the GNU General Public License
#   along with this program; if not, write to the
#   Free Software Foundation, Inc.,
#   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
#



translate = QtWidgets.qApp.translate


def qPointFStrizer(attr):
    """Returns a function giving the str representation of attr, the
    latter being a QPointF property."""
    def getter(self):
        return "(%i, %i)" % (getattr(self, attr).x(),
                             getattr(self, attr).y())
    return getter


def qPointFDestrizer(attr):
    """Returns a function which updates a QPointF property from a string
    representation of a QPointF."""
    def setter(self, value):
        if self.simulation.context == utils.Context.EDITOR_SCENERY:
            x, y = eval(value.strip('()'))

            setattr(self, attr, QtCore.QPointF(x, y))