예제 #1
0
    def __init__(self):
        self._db: QSqlDatabase = QSqlDatabase.addDatabase("QSQLITE")
        self._db.setDatabaseName("runners.db")
        if not self._db.open():
            qFatal("Something awful has happened")

        self._setup_runners()
예제 #2
0
 def load_script(self, ok):
     if ok:
         template = self._env.get_template("maps.js.j2")
         src = template.render(usewebchannel=usewebchannel)
         self.page().runJavaScript(src)
         self.send_route()
     else:
         qFatal("Could not load maps.html")
예제 #3
0
 def except_hook(cls, exception, tb):
     sys.__excepthook__(cls, exception, traceback)
     fmt = traceback.format_exception(cls, exception, tb)
     fmt = "\n".join(fmt)
     b = QMessageBox.critical(None, "unexpected exception", fmt,
                              QMessageBox.Abort | QMessageBox.Ignore,
                              QMessageBox.Abort)
     if b == QMessageBox.Abort:
         qFatal(fmt)
예제 #4
0
def init(appName, scene, callback, debug=False):
    if debug:
        print("PatchCanvas::init(\"%s\", %s, %s, %s)" %
              (appName, scene, callback, bool2str(debug)))

    if canvas.initiated:
        qCritical("PatchCanvas::init() - already initiated")
        return

    if not callback:
        qFatal("PatchCanvas::init() - fatal error: callback not set")
        return

    canvas.callback = callback
    canvas.debug = debug
    canvas.scene = scene

    canvas.last_z_value = 0
    canvas.last_connection_id = 0
    canvas.initial_pos = QPointF(0, 0)
    canvas.size_rect = QRectF()

    if not canvas.qobject:
        canvas.qobject = CanvasObject()
    if not canvas.settings:
        canvas.settings = QSafeSettings("falkTX", appName)

    if canvas.theme:
        del canvas.theme
        canvas.theme = None

    for i in range(Theme.THEME_MAX):
        this_theme_name = getThemeName(i)
        if this_theme_name == options.theme_name:
            canvas.theme = Theme(i)
            break

    if not canvas.theme:
        canvas.theme = Theme(getDefaultTheme())

    canvas.scene.updateTheme()

    canvas.initiated = True
예제 #5
0
    def __init__(self, parent, view):
        QGraphicsScene.__init__(self, parent)

        #self.setItemIndexMethod(QGraphicsScene.NoIndex)
        self.m_scale_area = False
        self.m_mouse_down_init = False
        self.m_mouse_rubberband = False
        self.m_mid_button_down = False
        self.m_pointer_border = QRectF(0.0, 0.0, 1.0, 1.0)
        self.m_scale_min = 0.1
        self.m_scale_max = 4.0

        self.scales = (0.1, 0.25, 0.4, 0.5, 0.75, 1.0, 1.5, 2.0, 3.0, 4.0)

        self.m_rubberband = RubberbandRect(self)
        self.m_rubberband_selection = False
        self.m_rubberband_orig_point = QPointF(0, 0)

        self.m_view = view
        if not self.m_view:
            qFatal("PatchCanvas::PatchScene() - invalid view")

        self.curCut = None
        self.curZoomArea = None

        self._move_timer_start_at = 0
        self._move_timer_interval = 20  # 20 ms step animation (50 Hz)
        self.move_boxes = []
        self.wrapping_boxes = []
        self.move_box_timer = QTimer()
        self.move_box_timer.setInterval(self._move_timer_interval)
        self.move_box_timer.timeout.connect(self.move_boxes_animation)
        self.move_box_n = 0
        self.move_box_n_max = 16  # 16 animations steps (20ms * 16 = 320ms)

        self.elastic_scene = True
        self.resizing_scene = False

        self.selectionChanged.connect(self.slot_selectionChanged)

        self._prevent_overlap = True

        self.loading_items = False
예제 #6
0
    def __init__(self, parent, view):
        QGraphicsScene.__init__(self, parent)

        self.m_connection_cut_mode = False
        self.m_scale_area = False
        self.m_mouse_down_init = False
        self.m_mouse_rubberband = False
        self.m_scale_min = 0.1
        self.m_scale_max = 4.0

        self.m_rubberband = RubberbandRect(self)
        self.m_rubberband_selection = False
        self.m_rubberband_orig_point = QPointF(0, 0)

        self.m_view = view
        if not self.m_view:
            qFatal("PatchCanvas::PatchScene() - invalid view")

        self.m_cursor_cut = None
        self.m_cursor_zoom = None

        self.selectionChanged.connect(self.slot_selectionChanged)
예제 #7
0
        def setupWebChannel(self,
                            bridge=None,
                            bridgename="bridge",
                            port=12345):
            # setup the QWebSocketServer
            self._server = QWebSocketServer("Grumble webchannel",
                                            QWebSocketServer.NonSecureMode)
            if not self._server.listen(QHostAddress.LocalHost, port):
                qFatal("Failed to open web socket server.")
                return False

            # wrap WebSocket clients in QWebChannelAbstractTransport objects
            self._clientWrapper = WebSocketClientWrapper(self._server, self)

            # setup the channel
            self._channel = QWebChannel()
            self._clientWrapper.clientConnected.connect(
                self._channel.connectTo)

            # Publish the bridge object to the QWebChannel
            self._bridge = bridge
            if bridge is not None:
                self._channel.registerObject(bridgename, bridge)
예제 #8
0
    def __init__(self, parent, view):
        QGraphicsScene.__init__(self, parent)

        self.m_ctrl_down = False
        self.m_scale_area = False
        self.m_mouse_down_init = False
        self.m_mouse_rubberband = False
        self.m_mid_button_down = False
        self.m_pointer_border = QRectF(0.0, 0.0, 1.0, 1.0)
        self.m_scale_min = 0.1
        self.m_scale_max = 4.0

        self.m_rubberband = RubberbandRect(self)
        self.m_rubberband_selection = False
        self.m_rubberband_orig_point = QPointF(0, 0)

        self.m_view = view
        if not self.m_view:
            qFatal("PatchCanvas::PatchScene() - invalid view")

        self.curCut = None
        self.curZoomArea = None

        self.selectionChanged.connect(self.slot_selectionChanged)
예제 #9
0
DEFAULT_VST2_PATH   = ""
DEFAULT_SF2_PATH    = ""
DEFAULT_SFZ_PATH    = ""

if WINDOWS:
    splitter = ";"

    APPDATA = os.getenv("APPDATA")
    PROGRAMFILES = os.getenv("PROGRAMFILES")
    PROGRAMFILESx86 = os.getenv("PROGRAMFILES(x86)")
    COMMONPROGRAMFILES = os.getenv("COMMONPROGRAMFILES")
    COMMONPROGRAMFILESx86 = os.getenv("COMMONPROGRAMFILES(x86)")

    # Small integrity tests
    if not APPDATA:
        qFatal("APPDATA variable not set, cannot continue")
        sys.exit(1)

    if not PROGRAMFILES:
        qFatal("PROGRAMFILES variable not set, cannot continue")
        sys.exit(1)

    if not COMMONPROGRAMFILES:
        qFatal("COMMONPROGRAMFILES variable not set, cannot continue")
        sys.exit(1)

    DEFAULT_LADSPA_PATH  = APPDATA + "\\LADSPA"
    DEFAULT_LADSPA_PATH += ";" + PROGRAMFILES + "\\LADSPA"

    DEFAULT_DSSI_PATH    = APPDATA + "\\DSSI"
    DEFAULT_DSSI_PATH   += ";" + PROGRAMFILES + "\\DSSI"
예제 #10
0
 def excepthook(type_, value, traceback_):
     traceback.print_exception(type_, value, traceback_)
     qFatal('')
예제 #11
0
DEFAULT_GIG_PATH = ""
DEFAULT_SF2_PATH = ""
DEFAULT_SFZ_PATH = ""

if WINDOWS:
    splitter = ";"

    APPDATA = os.getenv("APPDATA")
    PROGRAMFILES = os.getenv("PROGRAMFILES")
    PROGRAMFILESx86 = os.getenv("PROGRAMFILES(x86)")
    COMMONPROGRAMFILES = os.getenv("COMMONPROGRAMFILES")
    COMMONPROGRAMFILESx86 = os.getenv("COMMONPROGRAMFILES(x86)")

    # Small integrity tests
    if not APPDATA:
        qFatal("APPDATA variable not set, cannot continue")
        sys.exit(1)

    if not PROGRAMFILES:
        qFatal("PROGRAMFILES variable not set, cannot continue")
        sys.exit(1)

    if not COMMONPROGRAMFILES:
        qFatal("COMMONPROGRAMFILES variable not set, cannot continue")
        sys.exit(1)

    DEFAULT_LADSPA_PATH = APPDATA + "\\LADSPA"
    DEFAULT_LADSPA_PATH += ";" + PROGRAMFILES + "\\LADSPA"

    DEFAULT_DSSI_PATH = APPDATA + "\\DSSI"
    DEFAULT_DSSI_PATH += ";" + PROGRAMFILES + "\\DSSI"