1
0
Fork 0
mirror of synced 2024-06-29 03:31:06 +12:00

Add timer to start from other inctance

This commit is contained in:
Dummerle 2021-04-14 15:14:06 +02:00
parent 24e987dc66
commit 4653e519f9
2 changed files with 36 additions and 2 deletions

View file

@ -1,3 +1,4 @@
import os
from argparse import ArgumentParser from argparse import ArgumentParser
from rare import __version__ from rare import __version__
from rare.utils import singleton from rare.utils import singleton
@ -22,6 +23,15 @@ def main():
me = singleton.SingleInstance() me = singleton.SingleInstance()
except singleton.SingleInstanceException: except singleton.SingleInstanceException:
print("Rare is already running") print("Rare is already running")
with open(os.path.expanduser("~/.cache/rare/lockfile"), "w") as file:
if args.subparser == "launch":
file.write("launch " + args.app_name)
else:
print("write start")
file.write("start")
file.close()
exit(0) exit(0)
from rare.app import start from rare.app import start

View file

@ -1,6 +1,7 @@
import os
from logging import getLogger from logging import getLogger
from PyQt5.QtCore import QSettings from PyQt5.QtCore import QSettings, QTimer
from PyQt5.QtGui import QCloseEvent from PyQt5.QtGui import QCloseEvent
from PyQt5.QtWidgets import QMainWindow, QMessageBox from PyQt5.QtWidgets import QMainWindow, QMessageBox
@ -40,7 +41,6 @@ class MainWindow(QMainWindow):
if game != ("", 0): if game != ("", 0):
self.rpc.set_discord_rpc(game[0]) # Appname self.rpc.set_discord_rpc(game[0]) # Appname
self.show()
if args.subparser == "launch": if args.subparser == "launch":
logger.info("Launching " + self.core.get_installed_game(args.app_name).title) logger.info("Launching " + self.core.get_installed_game(args.app_name).title)
if args.app_name in self.tab_widget.games_tab.default_widget.game_list.widgets.keys(): if args.app_name in self.tab_widget.games_tab.default_widget.game_list.widgets.keys():
@ -48,6 +48,30 @@ class MainWindow(QMainWindow):
else: else:
logger.info(f"Could not find {args.app_name} in Games") logger.info(f"Could not find {args.app_name} in Games")
self.timer = QTimer()
self.timer.timeout.connect(self.timer_finished)
self.timer.start(1000)
self.show()
def timer_finished(self):
file_path = os.path.expanduser("~/.cache/rare/lockfile")
if os.path.exists(file_path):
file = open(file_path, "r")
action = file.read()
file.close()
if action.startswith("launch"):
game = action.replace("launch ", "").replace("\n", "")
if game in self.tab_widget.games_tab.default_widget.game_list.widgets.keys():
self.tab_widget.games_tab.default_widget.game_list.widgets[game][1].launch()
else:
logger.info(f"Could not find {game} in Games")
elif action.startswith("start"):
self.show()
os.remove(file_path)
self.timer.start(1000)
def closeEvent(self, e: QCloseEvent): def closeEvent(self, e: QCloseEvent):
if self.settings.value("sys_tray", True, bool): if self.settings.value("sys_tray", True, bool):
self.hide() self.hide()