From fdcd869c2bb291e708b82b7edac3d67d3a772d7e Mon Sep 17 00:00:00 2001 From: nirgoren Date: Mon, 18 Oct 2021 23:34:04 +0300 Subject: [PATCH] Fix Qt sometimes hanging when manual mode is toggled Add ggst, unist, mbtl config files --- configs/ggst.json | 64 ++++++++++++++++++++++++++++++++++++++++++++++ configs/mbtl.json | 59 ++++++++++++++++++++++++++++++++++++++++++ configs/unist.json | 59 ++++++++++++++++++++++++++++++++++++++++++ src/gui.py | 26 ++++++++++++------- 4 files changed, 199 insertions(+), 9 deletions(-) create mode 100644 configs/ggst.json create mode 100644 configs/mbtl.json create mode 100644 configs/unist.json diff --git a/configs/ggst.json b/configs/ggst.json new file mode 100644 index 0000000..307228d --- /dev/null +++ b/configs/ggst.json @@ -0,0 +1,64 @@ +{ + "FPS": 60, + + "Symbols": { + "P": "BtnX", + "K": "BtnA", + "S": "BtnY", + "H": "BtnB", + "D": "BtnShoulderR", + "T": "TriggerR", + "select": "BtnBack", + "start": "BtnStart", + "beep": "sounds\\beep.wav", + "beep1": "sounds\\beep_low.wav", + "beep2": "sounds\\beep.wav", + "beep3": "sounds\\beep_high.wav", + "Dash": "TriggerL", + "RC": "BtnShoulderL" + }, + + "P1_directions": { + "2": { "Dpad": "down" }, + "4": { "Dpad": "left" }, + "6": { "Dpad": "right" }, + "8": { "Dpad": "up" }, + "1": { "Dpad": "down_left" }, + "3": { "Dpad": "down_right" }, + "7": { "Dpad": "up_left" }, + "9": { "Dpad": "up_right" } + }, + + "P2_directions": { + "2": { "Dpad": "down" }, + "4": { "Dpad": "right" }, + "6": { "Dpad": "left" }, + "8": { "Dpad": "up" }, + "1": { "Dpad": "down_right" }, + "3": { "Dpad": "down_left" }, + "7": { "Dpad": "up_right" }, + "9": { "Dpad": "up_left" } + }, + + "Macros": { + "5": "]1[", + "QCF": "2 3 6", + "QCB": "2 1 4", + "DP": "6 2 3", + "HCF": "4 1 2 3 6", + "HCB": "6 3 2 1 4", + "*236": "2 3 6", + "*214": "2 1 4", + "*623": "6 2 3", + "*421": "4 2 1", + "*426": "4 1 2 3 6", + "*624": "6 3 2 1 4", + "*6246": "6 3 2 1 4 6", + "*236236": "2 3 6 2 3 6", + "*214214": "2 1 4 2 1 4", + "SELECT": "select", + "START": "start", + "BEEP": "beep", + "Backdash": "4+Dash" + } +} \ No newline at end of file diff --git a/configs/mbtl.json b/configs/mbtl.json new file mode 100644 index 0000000..e3d9a77 --- /dev/null +++ b/configs/mbtl.json @@ -0,0 +1,59 @@ +{ + "FPS": 60, + + "Symbols": { + "A": "BtnX", + "D": "BtnA", + "B": "BtnY", + "C": "BtnB", + "select": "BtnBack", + "start": "BtnStart", + "beep": "sounds\\beep.wav", + "beep1": "sounds\\beep_low.wav", + "beep2": "sounds\\beep.wav", + "beep3": "sounds\\beep_high.wav" + }, + + "P1_directions": { + "2": { "Dpad": "down" }, + "4": { "Dpad": "left" }, + "6": { "Dpad": "right" }, + "8": { "Dpad": "up" }, + "1": { "Dpad": "down_left" }, + "3": { "Dpad": "down_right" }, + "7": { "Dpad": "up_left" }, + "9": { "Dpad": "up_right" } + }, + + "P2_directions": { + "2": { "Dpad": "down" }, + "4": { "Dpad": "right" }, + "6": { "Dpad": "left" }, + "8": { "Dpad": "up" }, + "1": { "Dpad": "down_right" }, + "3": { "Dpad": "down_left" }, + "7": { "Dpad": "up_right" }, + "9": { "Dpad": "up_left" } + }, + + "Macros": { + "5": "]1[", + "QCF": "2 3 6", + "QCB": "2 1 4", + "DP": "6 2 3", + "HCF": "4 1 2 3 6", + "HCB": "6 3 2 1 4", + "*236": "2 3 6", + "*214": "2 1 4", + "*623": "6 2 3", + "*421": "4 2 1", + "*426": "4 1 2 3 6", + "*624": "6 3 2 1 4", + "*6246": "6 3 2 1 4 6", + "*236236": "2 3 6 2 3 6", + "*214214": "2 1 4 2 1 4", + "SELECT": "select", + "START": "start", + "BEEP": "beep" + } +} \ No newline at end of file diff --git a/configs/unist.json b/configs/unist.json new file mode 100644 index 0000000..e3d9a77 --- /dev/null +++ b/configs/unist.json @@ -0,0 +1,59 @@ +{ + "FPS": 60, + + "Symbols": { + "A": "BtnX", + "D": "BtnA", + "B": "BtnY", + "C": "BtnB", + "select": "BtnBack", + "start": "BtnStart", + "beep": "sounds\\beep.wav", + "beep1": "sounds\\beep_low.wav", + "beep2": "sounds\\beep.wav", + "beep3": "sounds\\beep_high.wav" + }, + + "P1_directions": { + "2": { "Dpad": "down" }, + "4": { "Dpad": "left" }, + "6": { "Dpad": "right" }, + "8": { "Dpad": "up" }, + "1": { "Dpad": "down_left" }, + "3": { "Dpad": "down_right" }, + "7": { "Dpad": "up_left" }, + "9": { "Dpad": "up_right" } + }, + + "P2_directions": { + "2": { "Dpad": "down" }, + "4": { "Dpad": "right" }, + "6": { "Dpad": "left" }, + "8": { "Dpad": "up" }, + "1": { "Dpad": "down_right" }, + "3": { "Dpad": "down_left" }, + "7": { "Dpad": "up_right" }, + "9": { "Dpad": "up_left" } + }, + + "Macros": { + "5": "]1[", + "QCF": "2 3 6", + "QCB": "2 1 4", + "DP": "6 2 3", + "HCF": "4 1 2 3 6", + "HCB": "6 3 2 1 4", + "*236": "2 3 6", + "*214": "2 1 4", + "*623": "6 2 3", + "*421": "4 2 1", + "*426": "4 1 2 3 6", + "*624": "6 3 2 1 4", + "*6246": "6 3 2 1 4 6", + "*236236": "2 3 6 2 3 6", + "*214214": "2 1 4 2 1 4", + "SELECT": "select", + "START": "start", + "BEEP": "beep" + } +} \ No newline at end of file diff --git a/src/gui.py b/src/gui.py index 6d81beb..90be4e5 100644 --- a/src/gui.py +++ b/src/gui.py @@ -1,14 +1,13 @@ import json from PyQt5 import QtGui -from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QLabel, QPlainTextEdit, QTextEdit, QHBoxLayout, \ +from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QLabel, QTextEdit, QHBoxLayout, \ QPushButton, QFileDialog -from PyQt5.QtCore import Qt, QObject, pyqtSignal, QRunnable, pyqtSlot, QThreadPool, QProcess -from PyQt5.QtGui import QPixmap, QTextCursor, QFont, QColor, QTextCharFormat, QBrush, QImage +from PyQt5.QtCore import Qt, QObject, pyqtSignal, QProcess +from PyQt5.QtGui import QPixmap, QTextCursor, QFont, QColor, QTextCharFormat, QBrush from pynput.keyboard import Listener import XInput import sys -import traceback from worker import Worker import eddiecontroller @@ -154,11 +153,10 @@ def on_press(key): global manual_mode if not manual_mode: print('Manual mode activated (Manual mode is not fit for playing)', file=writer) - w.controller_image.show() + w.toggle_image_signal.emit(True) else: print('Manual mode deactivated', file=writer) - w.controller_image.hide() - w.adjustSize() + w.toggle_image_signal.emit(False) manual_mode = not manual_mode # manual control with the keyboard if manual_mode and not eddiecontroller.playing: @@ -282,10 +280,11 @@ def set_color(self, color): class GUI(QWidget): + toggle_image_signal = pyqtSignal(bool) def __init__(self): super().__init__() - self.resize(905, 500) + self.toggle_image_signal.connect(self.toggleImage) self.setMinimumWidth(1050) self.setAcceptDrops(True) self.setWindowTitle('Eddienput v1.1') @@ -347,13 +346,22 @@ def __init__(self): h_layout.addWidget(self.text_edit) self.controller_image = QLabel() - self.controller_image.setPixmap(QPixmap('eddienput_controller.png').scaledToWidth(910)) + self.pixmap = QPixmap('eddienput_controller.png').scaledToWidth(700) + self.controller_image.setPixmap(self.pixmap) + self.controller_image.setAlignment(Qt.AlignmentFlag.AlignCenter) self.controller_image.hide() v_layout.addWidget(self.controller_image) self.setLayout(v_layout) self.process = QProcess(self) + def toggleImage(self, visible): + if visible: + self.controller_image.show() + else: + self.controller_image.hide() + self.adjustSize() + def dragEnterEvent(self, event): event.accept()