1
0
Fork 0
mirror of synced 2024-06-26 10:11:19 +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 rare import __version__
from rare.utils import singleton
@ -22,6 +23,15 @@ def main():
me = singleton.SingleInstance()
except singleton.SingleInstanceException:
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)
from rare.app import start

View file

@ -1,6 +1,7 @@
import os
from logging import getLogger
from PyQt5.QtCore import QSettings
from PyQt5.QtCore import QSettings, QTimer
from PyQt5.QtGui import QCloseEvent
from PyQt5.QtWidgets import QMainWindow, QMessageBox
@ -40,7 +41,6 @@ class MainWindow(QMainWindow):
if game != ("", 0):
self.rpc.set_discord_rpc(game[0]) # Appname
self.show()
if args.subparser == "launch":
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():
@ -48,6 +48,30 @@ class MainWindow(QMainWindow):
else:
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):
if self.settings.value("sys_tray", True, bool):
self.hide()