from controller.MainController import MainController from util.AsyncTask import AsyncTask class HomeController: """ Controller - HomeController desc... @author Jérémi Nihart / EndMove @link https://git.endmove.eu/EndMove/WebPicDownloader @version 1.0.0 @since 2022-08-30 """ # Variables __main_controller = None __view = None __webpic = None # Constructor def __init__(self, controller: MainController, webpic) -> None: """ Constructor :controller: -> The main application cpntroller. :webpic: -> The webpicdownloader instance. """ self.__main_controller = controller self.__webpic = webpic # START View methods def set_view(self, view) -> None: """ [function for view] => Define the view of this controller. :view: -> The view that this controller manage. """ self.__view = view self.__webpic.set_messenger_callback(view.add_log) # END View method # START View events def on_change_view(self, frame) -> None: """ [event function for view] => Call this event method when the user requests to change the window. :frame: -> The frame we want to launch. """ #self.__main_controller.change_frame(frame) self.__view.add_log("Salut comment vas tu ? 1") self.__view.add_log("Salut comment vas tu ? 2") self.__view.show_success_message("Super tu as réussi la quête !") def on_download_requested(self, url: str, name: str) -> None: """ [event function for view] => Call this event method when the user requests to download :url: -> The url of the website to use for pic-download.\n :name: -> The name of the folder in which put pictures. """ # Define the download task function (to call in a AsyncTask) def download_task(): self.__view.clear_logs() if self.__webpic.download(url, name): self.__view.show_success_message("The download has been successfully completed.") else: self.__view.show_error_message("A critical error preventing the download occurred, check the logs.") # Verify variable and start AsyncTask if url.strip() and name.strip() : AsyncTask(download_task).start() else: self.__view.show_error_message("Opss, the url or folder name are not valid!") # END View events # START Controller methods # END Controller methods