diff --git a/ihm.py b/ihm.py
deleted file mode 100644
index cd2784f..0000000
--- a/ihm.py
+++ /dev/null
@@ -1,375 +0,0 @@
-"""
-********************************************************************************
-* CNIRevelator *
-* *
-* Desc: Application launcher graphical interface *
-* *
-* Copyright © 2018-2019 Adrien Bourmault (neox95) *
-* *
-* This file is part of CNIRevelator. *
-* *
-* CNIRevelator 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 3 of the License, or *
-* any later version. *
-* *
-* CNIRevelator 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. *
-* *
-* You should have received a copy of the GNU General Public License *
-* along with CNIRevelator. If not, see . *
-********************************************************************************
-"""
-
-from tkinter.messagebox import *
-from tkinter import *
-from tkinter import filedialog
-from tkinter import ttk
-import PIL.Image, PIL.ImageTk
-import traceback
-import webbrowser
-import cv2
-
-import critical # critical.py
-import logger # logger.py
-import globs # globs.py
-import lang # lang.py
-import updater # updater.py
-import critical # critical.py
-
-controlKeys = ["Escape", "Right", "Left", "Up", "Down", "Home", "End", "BackSpace", "Delete", "Inser", "Shift_L", "Shift_R", "Control_R", "Control_L"]
-
-class DocumentAsk(Toplevel):
-
- def __init__(self, parent, choices):
- self.choice = 0
- vals = [0, 1]
- super().__init__(parent)
- self.title("{} :".format(lang.all[globs.CNIRlang]["Choose the identity document"]))
-
- ttk.Radiobutton(self, text=choices[0], command=self.register0, value=vals[0]).pack()
- ttk.Radiobutton(self, text=choices[1], command=self.register1, value=vals[1]).pack()
-
- self.button = Button(self, text='OK', command=(self.ok)).pack()
- self.resizable(width=False, height=False)
- ws = self.winfo_screenwidth()
- hs = self.winfo_screenheight()
- w = hs / 3
- h = ws / 20
- self.update()
- if getattr(sys, 'frozen', False):
- self.iconbitmap(sys._MEIPASS + '\\id-card.ico\\id-card.ico')
- else:
- self.iconbitmap('id-card.ico')
- x = ws / 2 - w / 2
- y = hs / 2 - h / 2
- self.geometry('%dx%d+%d+%d' % (w, h, x, y))
-
- def register0(self):
- self.choice = 0
- def register1(self):
- self.choice = 1
- def ok(self):
- self.destroy()
-
-
-class OpenScanDialog(Toplevel):
-
- def __init__(self, parent, text):
- super().__init__(parent)
- self.parent = parent
- self.title(lang.all[globs.CNIRlang]["OCR Detection Validation"])
- self.resizable(width=False, height=False)
- self.termtext = Text(self, state='normal', width=45, height=2, wrap='none', font='Terminal 17', fg='#121f38')
- self.termtext.grid(column=0, row=0, sticky='NEW', padx=5, pady=5)
- self.termtext.insert('end', text + '\n')
- self.button = Button(self, text=lang.all[globs.CNIRlang]["Validate"], command=(self.valid))
- self.button.grid(column=0, row=1, sticky='S', padx=5, pady=5)
- self.update()
- hs = self.winfo_screenheight()
- w = int(self.winfo_width())
- h = int(self.winfo_height())
- ws = self.winfo_screenwidth()
- hs = self.winfo_screenheight()
- x = ws / 2 - w / 2
- y = hs / 2 - h / 2
- self.geometry('%dx%d+%d+%d' % (w, h, x, y))
- if getattr(sys, 'frozen', False):
- self.iconbitmap(sys._MEIPASS + '\\id-card.ico\\id-card.ico')
- else:
- self.iconbitmap('id-card.ico')
-
- def valid(self):
- self.parent.validatedtext = self.termtext.get('1.0', 'end')
- texting = self.parent.validatedtext.replace(' ', '').replace('\r', '').split('\n')
- for i in range(len(texting)):
- for char in texting[i]:
- if char not in 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789<':
- showerror(lang.all[globs.CNIRlang]["Validation Error"], lang.all[globs.CNIRlang]["The submitted MRZ contains invalid characters"], parent=self)
- self.parent.validatedtext = ''
-
- self.destroy()
-
-class LoginDialog(Toplevel):
-
- def __init__(self, parent):
- self.key = ''
- self.login = ''
- super().__init__(parent)
- self.title(lang.all[globs.CNIRlang]["Connection"])
- self["background"] = "white"
- Label(self, text='IPN : ', bg="white").pack(fill=Y)
- self.entry_login = ttk.Entry(self)
- self.entry_login.insert(0, '')
- self.entry_login.pack()
- Label(self, text='{} : '.format(lang.all[globs.CNIRlang]["Password"]), bg="white").pack(fill=Y)
- self.entry_pass = ttk.Entry(self, show='*')
- self.entry_pass.insert(0, '')
- self.entry_pass.pack(fill=Y)
- ttk.Button(self, text=lang.all[globs.CNIRlang]["Connection"], command=(self.connecti)).pack(fill=Y, pady=10)
- self.update()
- self.resizable(width=False, height=False)
- ws = self.winfo_screenwidth()
- hs = self.winfo_screenheight()
- w = self.winfo_reqwidth() + 5
- h = self.winfo_reqheight()
- if getattr(sys, 'frozen', False):
- self.iconbitmap(sys._MEIPASS + '\\id-card.ico\\id-card.ico')
- else:
- self.iconbitmap('id-card.ico')
- x = ws / 2 - w / 2
- y = hs / 2 - h / 2
- self.geometry('%dx%d+%d+%d' % (w, h, x, y))
- self.bind("", self.connecti)
-
- def connecti(self, event=None):
- self.login = self.entry_login.get().strip()
- self.key = self.entry_pass.get().strip()
- self.destroy()
-
-class ChangelogDialog(Toplevel):
-
- def __init__(self, parent, text):
- super().__init__(parent)
-
- self.title(lang.all[globs.CNIRlang]["Show Changelog"])
- self["background"] = "white"
-
- self.grid_columnconfigure(0, weight=1)
- self.grid_rowconfigure(0, weight=1)
-
- self.text = Text(self, wrap='word', width=55, height=15, borderwidth=0, font="TkDefaultFont", bg="white")
- self.text.grid(column=0, row=0, sticky='EWNS', padx=5, pady=5)
-
- ttk.Button(self, text="OK", command=(self.oki)).grid(column=0, row=1, pady=5)
-
- self.scrollb = ttk.Scrollbar(self, command=(self.text.yview))
- self.scrollb.grid(column=1, row=0, sticky='EWNS', padx=5, pady=5)
- self.text['yscrollcommand'] = self.scrollb.set
-
- self.text.insert('end', text)
- self.text['state'] = 'disabled'
-
- self.update()
- self.resizable(width=False, height=False)
- ws = self.winfo_screenwidth()
- hs = self.winfo_screenheight()
- w = self.winfo_reqwidth() + 5
- h = self.winfo_reqheight()
- if getattr(sys, 'frozen', False):
- self.iconbitmap(sys._MEIPASS + '\\id-card.ico\\id-card.ico')
- else:
- self.iconbitmap('id-card.ico')
- x = ws / 2 - w / 2
- y = hs / 2 - h / 2
- self.geometry('%dx%d+%d+%d' % (w, h, x, y))
- self.bind("", self.oki)
-
- def oki(self, event=None):
- self.destroy()
-
-class langDialog(Toplevel):
-
- def __init__(self, parent):
- super().__init__(parent)
-
- self.title(lang.all[globs.CNIRlang]["Language"])
-
- Label(self, text=lang.all[globs.CNIRlang]["Please choose your language : "]).pack(fill=Y)
-
- vals = [i for i in lang.all]
- for i in range(len(lang.all)):
- ttk.Radiobutton(self, text=vals[i], command=self.createRegister(i), value=vals[i]).pack(fill=Y)
-
- ttk.Button(self, text="OK", command=(self.oki)).pack(fill=Y, pady=5)
-
- self.update()
- self.resizable(width=False, height=False)
- ws = self.winfo_screenwidth()
- hs = self.winfo_screenheight()
- w = self.winfo_reqwidth() + 5
- h = self.winfo_reqheight()
- if getattr(sys, 'frozen', False):
- self.iconbitmap(sys._MEIPASS + '\\id-card.ico\\id-card.ico')
- else:
- self.iconbitmap('id-card.ico')
- x = ws / 2 - w / 2
- y = hs / 2 - h / 2
- self.geometry('%dx%d+%d+%d' % (w, h, x, y))
- self.bind("", self.oki)
-
- def oki(self, event=None):
- self.destroy()
-
- def createRegister(self, i):
- def register():
- lang.updateLang([j for j in lang.all][i])
- return register
-
-class updateSetDialog(Toplevel):
-
- def __init__(self, parent):
- super().__init__(parent)
-
- self.title(lang.all[globs.CNIRlang]["Update options"])
-
- Label(self, text=lang.all[globs.CNIRlang]["Please choose your update channel : "]).pack(fill=Y)
-
- self.vals = ["Stable", "Beta"]
- vals = self.vals
- for i in range(len(vals)):
- ttk.Radiobutton(self, text=vals[i], command=self.createRegister(i), value=vals[i]).pack(fill=Y)
-
- ttk.Button(self, text="OK", command=(self.oki)).pack(fill=Y, pady=5)
-
- self.update()
- self.resizable(width=False, height=False)
- ws = self.winfo_screenwidth()
- hs = self.winfo_screenheight()
- w = self.winfo_reqwidth() + 5
- h = self.winfo_reqheight()
- if getattr(sys, 'frozen', False):
- self.iconbitmap(sys._MEIPASS + '\\id-card.ico\\id-card.ico')
- else:
- self.iconbitmap('id-card.ico')
- x = ws / 2 - w / 2
- y = hs / 2 - h / 2
- self.geometry('%dx%d+%d+%d' % (w, h, x, y))
- self.bind("", self.oki)
-
- def oki(self, event=None):
- self.destroy()
-
- def createRegister(self, i):
- def register():
- updater.updateChannel(self.vals[i])
- return register
-
-class LauncherWindow(Tk):
-
- def __init__(self):
- # Initialize the tkinter main class
- Tk.__init__(self)
- self.resizable(width=False, height=False)
-
- # icon
- if getattr(sys, 'frozen', False):
- self.iconbitmap(sys._MEIPASS + '\\id-card.ico\\id-card.ico')
- else:
- self.iconbitmap('id-card.ico')
-
- # Setting up the geometry
- ws = self.winfo_screenwidth()
- hs = self.winfo_screenheight()
- wheight = 274
- wwidth = 480
- # Centering
- x = ws / 2 - wwidth / 2
- y = hs / 2 - wheight / 2
- self.geometry('%dx%d+%d+%d' % (wwidth, wheight, x, y))
-
- # Creating objects
- # Load an image using OpenCV
- # if getattr(sys, 'frozen', False):
- # cv_img = cv2.imread(sys._MEIPASS + r"\background.png\background.png")
- # else:
- cv_img = cv2.imread("background.png")
-
- cv_img = cv2.imread("background.png")
- cv_img = cv2.cvtColor(cv_img, cv2.COLOR_BGR2RGB)
- cv_img = cv2.blur(cv_img, (15, 15))
- # Get the image dimensions (OpenCV stores image data as NumPy ndarray)
- height, width, no_channels = cv_img.shape
- # Get the image dimensions (OpenCV stores image data as NumPy ndarray)
- height, width, no_channels = cv_img.shape
- # Use PIL (Pillow) to convert the NumPy ndarray to a PhotoImage
- self.photo = PIL.ImageTk.PhotoImage(image = PIL.Image.fromarray(cv_img))
- self.mainCanvas = Canvas(self, width=wwidth, height=wheight, bg=globs.CNIRLColor, highlightthickness=0)
- self.mainCanvas.create_image(wwidth /2, wheight /2, image=self.photo)
-
- # Column
- self.mainCanvas.grid_rowconfigure(0, weight=1, minsize=(wheight / 10 * 9))
- self.mainCanvas.grid_rowconfigure(1, weight=1, minsize=(wheight / 10 * 1))
-
- self.mainCanvas.create_text((wwidth / 2), (wheight / 3), text=(globs.CNIRName), font='Helvetica 30', fill='white')
- self.mainCanvas.create_text((wwidth / 2), (wheight / 2), text="version " + (globs.verstring_full), font='Helvetica 8', fill='white')
- self.msg = self.mainCanvas.create_text((wwidth / 2), (wheight / 1.20), text=lang.all[globs.CNIRlang]["Booting up..."], font='Helvetica 9', fill='white')
-
- #self.pBarZone = Frame(self.mainCanvas, width=wwidth, height=wheight/10)
- self.update()
-
- self.progressBar = ttk.Progressbar(self.mainCanvas, orient=HORIZONTAL, length=wwidth, mode='determinate')
-
- self.wm_title(globs.CNIRName)
-
- self.mainCanvas.grid(row=0)
- self.update()
- self.progressBar.grid(row=1, sticky='S')
-
- logfile = logger.logCur
- logfile.printdbg('Launcher IHM successful')
- self.protocol('WM_DELETE_WINDOW', lambda : 0)
- self.update()
-
- def printmsg(self, msg):
- self.mainCanvas.itemconfigure(self.msg, text=(msg))
-
- def exit(self):
- self.after(1000, self.destroy)
-
-class ResizeableCanvas(Canvas):
- def __init__(self,parent,**kwargs):
- Canvas.__init__(self,parent,**kwargs)
- self.bind("", self.on_resize)
- self.height = self.winfo_reqheight()
- self.width = self.winfo_reqwidth()
-
- def on_resize(self,event):
- # determine the ratio of old width/height to new width/height
- wscale = float(event.width)/self.width
- hscale = float(event.height)/self.height
- self.width = event.width
- self.height = event.height
- # rescale all the objects tagged with the "all" tag
- self.scale("all",0,0,wscale,hscale)
-
-class StatusBar(Frame):
-
- def __init__(self, master):
- Frame.__init__(self, master)
- self.label = Label(self, bd=1, relief=SUNKEN, anchor=W)
- self.label.pack(fill=X)
-
- def set(self, text):
- self.label.config(text="Document : " + text.lower())
- self.label.update_idletasks()
-
- def clear(self):
- self.label.config(text="")
- self.label.update_idletasks()
-
-## Global Handler
-launcherWindowCur = LauncherWindow()
-