2021-04-08 00:46:27 +12:00
from PyQt5 . QtCore import QSettings
2021-04-07 22:11:31 +12:00
from PyQt5 . QtGui import QCloseEvent
from PyQt5 . QtWidgets import QMainWindow , QMessageBox
2021-02-10 23:48:25 +13:00
2021-04-08 08:39:23 +12:00
from rare . components . tab_widget import TabWidget
2021-02-10 23:48:25 +13:00
class MainWindow ( QMainWindow ) :
def __init__ ( self , core ) :
super ( MainWindow , self ) . __init__ ( )
2021-04-11 00:58:34 +12:00
settings = QSettings ( )
width , height = 1200 , 800
if settings . value ( " save_size " , False ) :
width , height = settings . value ( " window_size " , ( 1200 , 800 ) , tuple )
self . setGeometry ( 0 , 0 , width , height )
2021-02-10 23:48:25 +13:00
self . setWindowTitle ( " Rare - GUI for legendary " )
2021-04-07 22:11:31 +12:00
self . tab_widget = TabWidget ( core )
self . setCentralWidget ( self . tab_widget )
2021-02-10 23:48:25 +13:00
self . show ( )
2021-04-07 22:11:31 +12:00
def closeEvent ( self , e : QCloseEvent ) :
2021-04-11 00:58:34 +12:00
settings = QSettings ( )
if settings . value ( " sys_tray " , True , bool ) :
2021-04-08 00:46:27 +12:00
self . hide ( )
e . ignore ( )
2021-04-11 00:58:34 +12:00
return
elif self . tab_widget . downloadTab . active_game is not None :
if not QMessageBox . question ( self , " Close " , self . tr ( " There is a download active. Do you really want to exit app? " ) , QMessageBox . Yes , QMessageBox . No ) == QMessageBox . Yes :
e . ignore ( )
return
if settings . value ( " save_size " , False , bool ) :
size = self . size ( ) . width ( ) , self . size ( ) . height ( )
settings . setValue ( " window_size " , size )
e . accept ( )