def move_by(self):
        """move"""
        try:
            move = Move(self.input.text(),self.output.text())
        except IOError as e:
            QMessageBox.critical(None, "Error", "{0}".format(e), QMessageBox.Abort)
            return

        try:
            if self.units.currentText() == 'values':
                try:
                    move.by_points(int(self.value.text()))
                except ValueError as e:
                    QMessageBox.critical(None, "ERROR: Invalid number of values", "{0}".format(e), QMessageBox.Abort)
                    return

            elif self.units.currentText() == 'meters':
                try:
                    move.by_distance(float(self.value.text()))
                except ValueError as e:
                    QMessageBox.critical(None, "ERROR: Invalid number of values", "{0}".format(e), QMessageBox.Abort)
                    return

            elif self.units.currentText() == 'seconds':
                try:
                    move.by_seconds(float(self.value.text()))
                except ValueError as e:
                    QMessageBox.critical(None, "ERROR: Invalid number of values", "{0}".format(e), QMessageBox.Abort)
                    return

        except MoveError as e:
            QMessageBox.critical(None, "Error", "{0}".format(e), QMessageBox.Abort)
            return

        show_as_layer.show(self.output.text(),self.stylePath)
    def move_by(self):
        """decides which type of move should be used"""

        try:
            move = Move(self.input.text(), self.output.text())
        except IOError as e:
            QMessageBox.critical(None, "Error", "{0}".format(e),
                                 QMessageBox.Abort)
            return

        try:
            if self.units.currentText() == 'values':
                try:
                    move.by_points(int(self.value.text()))
                except ValueError as e:
                    QMessageBox.critical(None,
                                         "ERROR: Invalid number of values",
                                         "{0}".format(e), QMessageBox.Abort)
                    return

            elif self.units.currentText() == 'meters':
                try:
                    move.by_distance(float(self.value.text()))
                except ValueError as e:
                    QMessageBox.critical(None,
                                         "ERROR: Invalid number of values",
                                         "{0}".format(e), QMessageBox.Abort)
                    return

            elif self.units.currentText() == 'seconds':
                try:
                    move.by_seconds(float(self.value.text()))
                except ValueError as e:
                    QMessageBox.critical(None,
                                         "ERROR: Invalid number of values",
                                         "{0}".format(e), QMessageBox.Abort)
                    return

        except MoveError as e:
            QMessageBox.critical(None, "Error", "{0}".format(e),
                                 QMessageBox.Abort)
            return

        show_as_layer.show(self.output.text(), self.stylePath)
    def show_input(self):
        """show input csv as layer"""

        show_as_layer.show(self.input.text(), self.stylePath)
    def show_input(self):
        """show input csv as layer"""

        show_as_layer.show(self.input.text(),self.stylePath)