#!/usr/bin/env python3
#
#   Razer device QT configuration tool
#
#   Copyright (C) 2007-2018 Michael Buesch <m@bues.ch>
#
#   This program is free software; you can redistribute it and/or
#   modify it under the terms of the GNU General Public License
#   as published by the Free Software Foundation; either version 2
#   of the License, or (at your option) any later version.
#
#   This program is distributed in the hope that it will be useful,
#   but WITHOUT ANY WARRANTY; without even the implied warranty of
#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#   GNU General Public License for more details.

import sys
import traceback
from PyQt6.QtCore import *
from PyQt6.QtGui import *
from PyQt6.QtWidgets import *

import pyrazer
from pyrazer import ui

def main():
	try:
		ui.razer = pyrazer.Razer(enableNotifications=True)
	except pyrazer.RazerEx as e:
		print(e)
		return 1

	app = QApplication(sys.argv)
	try:
		mainwnd = ui.MainWindow()
		mainwnd.show()
		return app.exec()
	except pyrazer.RazerEx as e:
		QMessageBox.critical(None,
			"qrazercfg - Fatal exception",
			"qrazercfg - A fatal exception occurred:\n\n"
			"%s\n\n"
			"%s" % (str(e), traceback.format_exc()))
		raise e

if __name__ == "__main__":
	sys.exit(main())
