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.IFikoDokumantasyon.QToolbar.QToolbar import QToolbar
from IDialoglar.IFikoDokumantasyon.QDockLogo.QDockLogo import QDockLogo
from IDialoglar.IFikoDokumantasyon.QDockNcListe.QDockNcListe import QDockNcListe
from IDialoglar.IFikoDokumantasyon.QStatusbar.QStatusbar import QStatusbar

from IFikatia import IFikatia
from IDialoglar.IFikoProductToPart.threadManager import Async
from IDokuman import IDokuman
from IProduct import IProduct


class IFikoDokumantasyon(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(IFikoDokumantasyon, 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.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.show()

        # 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(IFikoDokumantasyon, self).show()

    def closeEvent(self, *args, **kwargs):
        super(IFikoDokumantasyon, self).closeEvent(*args, **kwargs)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    app.setStyle("fusion")

    fikoDok = IFikoDokumantasyon(Catia=win32com.client.Dispatch("Catia.Application"),app=app)
    fikoDok.show()

    sys.exit(app.exec())
