import inspect
import os
import sys
import win32com.client
from PyQt6.QtCore import pyqtSlot, QVariant, Qt, pyqtSignal
from PyQt6.QtGui import QMovie
from PyQt6.QtWidgets import QMainWindow, QApplication,QWidget,QToolBar
from PyQt6.uic import loadUi


sys.path.append(os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe()) + "\\..\\..")))

from IDialoglar.IFikoTakimci.QToolbar.QToolbar import QToolbar
from IDialoglar.IFikoTakimci.QDockLogo.QDockLogo import QDockLogo
from IDialoglar.IFikoTakimci.QDockNcListe.QDockNcListe import QDockNcListe
from IDialoglar.IFikoTakimci.QDockSol.QDockSol import QDockSol
from IDialoglar.IFikoTakimci.QStatusbar.QStatusbar import QStatusbar
from IDialoglar.IFikoTakimci.kok.IKok import IKok

from IFikatia import IFikatia
from IDialoglar.IFikoProductToPart.threadManager import Async
from IDokuman import IDokuman
from IProduct import IProduct


class IFikoTakimci(QMainWindow):
    sinyal = pyqtSignal(str, QVariant)

    def __init__(self, parent=None, flags=0, Catia=None, app=None):
        self.fikatia = IFikatia(obj=Catia)
        self.__dokuman = self.fikatia.aktifDokuman

        if not app:
            self.app = QApplication([sys.argv])
        else:
            self.app=app

        super(IFikoTakimci, self).__init__()

        self.ScriptYolu = os.path.dirname(os.path.abspath(
                inspect.getfile(inspect.currentframe())))

        self.ui = loadUi(self.ScriptYolu + r'\\formAna.ui', self)

        self.setWindowFlags(Qt.WindowType.Window | Qt.WindowType.WindowStaysOnTopHint)

        self.sinyal.connect(self.sinyalGeldi)

        self.dockLogo = QDockLogo(parent=self)
        self.addDockWidget(Qt.DockWidgetArea.TopDockWidgetArea, self.dockLogo)

        self.statusAna = QStatusbar()
        self.ui.statusbar.addPermanentWidget(self.statusAna)
        self.ui.statusbar.setMaximumHeight(30)
        self.ui.statusbar.setMinimumHeight(30)

        self.toolbar = QToolbar()
        self.ui.toolBar.addWidget(self.dockLogo)
        self.ui.toolBar.addWidget(self.toolbar)

        self.subForm = QMainWindow(parent=self)
        self.subForm.ui =  loadUi(self.ScriptYolu + r'\\QIFikoDokuman\\formAna.ui', self.subForm)
        self.subForm.setWindowTitle("Fiko Dökümantasyon")


        self.dockSol = QDockSol(parent=self)
        self.addDockWidget(Qt.DockWidgetArea.LeftDockWidgetArea, self.dockSol)


        self.dockNcListe = QDockNcListe(parent=self)
        self.subForm.addDockWidget(Qt.DockWidgetArea.LeftDockWidgetArea, self.dockNcListe)

        self.mdiArea.addSubWindow(self.subForm)


        # self.subForm.addDockWidget(Qt.TopDockWidgetArea, QDockLogo(parent=self.subForm))
        self.subForm.showMaximized()

        # self.menuBar().setVisible(False)


    def sinyalGeldi(self, sinyal, argumanlar=None):
        if sinyal=="ok":
            self.ui.stackedWidget.setCurrentIndex(2)

    def show(self):
        # print(self.__partDokuman.secililer.sec3(["HybridShapeCurveSmooth"],"Çizgi Seç",True))
        super(IFikoTakimci, self).show()

    def closeEvent(self, *args, **kwargs):
        super(IFikoTakimci, self).closeEvent(*args, **kwargs)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    # app.setStyle("fusion")

    fikoDok = IFikoTakimci(Catia=win32com.client.Dispatch("Catia.Application"),app=app)
    fikoDok.show()

    sys.exit(app.exec())
