import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QVBoxLayout, QWidget, QLabel, QStackedWidget, QMessageBox
from application import Ui_MainWindow
from info import Ui_DetailsWindow

class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.resize(803, 616)
        self.setWindowTitle("Movie Finder")
        
        # Create stacked widget
        self.stacked_widget = QStackedWidget()
        
        # Create widgets for each window
        self.window1 = QMainWindow()
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self.window1)
        button1 = self.ui.getMovieBtn
        button1.clicked.connect(self.show_window2)
        
        self.window2 = QMainWindow()
        self.ui_info = Ui_DetailsWindow()
        self.ui_info.setupUi(self.window2)
        button2 = self.ui_info.backBtn
        button2.clicked.connect(self.show_window1)
        
        # Add windows to stacked widget
        self.stacked_widget.addWidget(self.window1)
        self.stacked_widget.addWidget(self.window2)
        
        self.setCentralWidget(self.stacked_widget)
    
    def show_window1(self):
        self.stacked_widget.setCurrentWidget(self.window1)
    
    def show_window2(self):
        movies = self.ui.getMovie()
        #check if movies is empty, if so show a message box with text No Movies Found
        if not movies:
            # Create QMessageBox instance
            message = QMessageBox()

            # Set window title
            message.setWindowTitle("Error")

            # Set message text
            message.setText("No Movies Found")

            # Set message box icon to critical (error)
            message.setIcon(QMessageBox.Critical)

            # Display the message box
            message.exec_()
            return
        self.ui_info.setMovie(movies)
        self.stacked_widget.setCurrentWidget(self.window2)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    main_window = MainWindow()
    main_window.show()
    sys.exit(app.exec_())