#!/usr/bin/env python3

import os
import sys
from os import path
from pathlib import Path
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtWebEngine import *
from PyQt5.QtWebEngineWidgets import *

app = QApplication(sys.argv)
app.setApplicationName("SimplePanoramaViewer")

if len(sys.argv) < 2:
	img_dialog = QFileDialog.getOpenFileName(None, "Open image", str(Path.home()), "JPG Images (*.jpg *.JPG *.jpeg *.pjpeg *.pjpg *.PJPG)")
	img = img_dialog[0]
else:
	img = path.abspath(sys.argv[1])
	
if img == "":
	exit(0)

img = img.replace("\\", "/")
img = img.replace("'", "\\'")

if getattr( sys, 'frozen', False ) :
	exe_dir = path.realpath(sys._MEIPASS)
else :
	exe_dir = path.dirname(path.realpath(__file__))
os.chdir(exe_dir)

try:
	with open("html/index.html", "r", encoding="utf8") as file:
		html = file.read()
except OSError as exception:
	print("Error: HTML file not found: " + str(exception))
html = html.replace("__IMG_PATH__", img)

web = QWebEngineView()
url = QUrl.fromLocalFile(exe_dir + "/index.html")
web.setHtml(html,url)
web.setWindowTitle(img)
web.showMaximized()
web.show()

sys.exit(app.exec_())
