####################################
#                                  #
#        COPYRIGHT NOTICE          #
#                                  #
# This file is a part of Victori-  #
# ous Children Studio Organizer.   #
# Or simply VCStudio. Copyright    #
# of J.Y.Amihud. But don't be sad  #
# because I released the entire    #
# project under a GNU GPL license. #
# You may use Version 3 or later.  #
# See www.gnu.org/licenses if your #
# copy has no License file. Please #
# note. Ones I used the GPL v2 for #
# it. It's no longer the case.     #
#                                  #
####################################

import os
import sys
import traceback
from settings import oscalls

# We gonna have this show run when ever any mistake is caught when running
# the UI. The concept is to give users an easy to understand UI message what
# an arror had happened.

# The main problem is that if the UI is not loading it will give an error
# too. Meaning that we need to deal with this kind of error too.

def show():

    
    
    # Printing the message of the python error
    message = str(traceback.format_exc())
    
    print(message)

    # Parsing the message to get the filename of the last file that had
    # an issue. Hope you know a better way of doing it. I spent a whole
    # day trying to come up with a way.

    Filename = "run.py"
    for i in message.split("\n"):
        if 'File "' in i:
            Filename = i[i.find('"')+1:i.replace('"'," ",1).find('"')]

    
    # trying to do this with a window

    try:
        from gi.repository import Gtk

        # If we are able to access the 
        
        dialogWindow = Gtk.MessageDialog(
            #transient_for=self,
            flags=0,
            message_type=Gtk.MessageType.WARNING,
            buttons=("Edit Source",1, "Report Bug", 2, "Ignore", 3),
            text="BUG :(\n\n"+message,
        )

        response = dialogWindow.run()
        

        # Now we want to do something with what the user decides. 
        if response == 1:
            oscalls.Open(Filename) # Edit source open the error file in
                                   # the text editor

        elif response == 2:
            oscalls.Open("https://notabug.org/jyamihud/VCStudio/issues")
        
        dialogWindow.destroy()
        
        
    except:
        raise



    
