import inspect
import os

from PyQt5.QtWidgets import QCheckBox
from PyQt6.QtGui import QKeySequence, QShortcut
from PyQt6.QtWidgets import QKeySequenceEdit
from PyQt6.QtCore import QSettings, pyqtSignal, pyqtSlot, Qt, QVariant
from PyQt6.QtGui import QIcon, QPixmap
from PyQt6.QtWidgets import QWidget, QListWidgetItem, QLineEdit, QMessageBox, QApplication
from PyQt6.uic import loadUiType


path = os.path.dirname(os.path.abspath(__file__))
resimYolu = os.path.join(os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe()))),
                         "Resimler")

MainWindowUI, MainWindowBase = loadUiType(os.path.join(path, 'pc_temizle.ui'))


class AktifKlasorAc(QWidget, MainWindowUI):
    ismi:str="Pc Temizle"
    aciklama:str="Pcdeki Atık Dosyaların Temizlenmesini Sağlar. Catialarda Herhangi Bir Dökümanın Açık Olması Tavsiye Edilmez"
    widgetYukseklik:int=45
    sinyal = pyqtSignal(str, QVariant)
    ana_program=None
    ayarlar = QSettings(os.path.join(path,"ayar.ini"), QSettings.Format.IniFormat)
    # kisayol=None
    def __init__(self, parent=None, ana_program=None):
        super(AktifKlasorAc, self).__init__(None)
        self.ana_program=ana_program
        # self.parent=parent
        self.setupUi(self)
        self.resimYolu = os.path.join(os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe()))),
                                      "Resimler")

        if hasattr(self.parent(), 'sinyal'):
            self.sinyal = self.parent().sinyal

        # rsmMfg = QPixmap(os.path.join(self.resimYolu, "mfgnrml.png"))
        
        # self.labelSolSimge.setPixmap(rsmMfg)
        self.btnCalistir.clicked.connect(self.calistir)
        self.editKisayol.keySequenceChanged.connect(self.kisayolDegisti)
        self.editKisayol.setKeySequence(QKeySequence(self.ayarlar.value("kisayol")))

        
    def showEvent(self, event):
        key_sequence =  QKeySequence(self.ayarlar.value("kisayol"))

        # Eğer bir kısayol zaten atanmışsa kaldır
        if hasattr(self, 'kisayol'):
            self.kisayol.setEnabled(False)
            del self.kisayol

        # Yeni QShortcut oluştur ve tetiklendiğinde handle_shortcut metodunu çağır
        self.kisayol = QShortcut(QKeySequence(key_sequence),self.ana_program,context=Qt.ShortcutContext.WindowShortcut)
        self.kisayol.activatedAmbiguously.connect(self.calistir)
        self.kisayol.activated.connect(self.calistir)
 
    def hideEvent(self, event):
        pass

    def kisayolDegisti(self,event,*args,**kwargs):
        # QKeySequenceEdit widget'ındaki tuş kombinasyonunu al
        key_sequence = self.editKisayol.keySequence()

        # Eğer bir kısayol zaten atanmışsa kaldır
        if hasattr(self, 'kisayol'):
            self.kisayol.setEnabled(False)
            del self.kisayol

        # Yeni QShortcut oluştur ve tetiklendiğinde handle_shortcut metodunu çağır
        self.kisayol = QShortcut(QKeySequence(key_sequence),self.ana_program,context=Qt.ShortcutContext.WindowShortcut)
        self.kisayol.activatedAmbiguously.connect(self.calistir)
        self.kisayol.activated.connect(self.calistir)
        self.ayarlar.setValue("kisayol", key_sequence)
        # print(event.toString())

    def calistir(self):
        # if self.checkSecimli.isChecked():
        #     self.ana_program.fikatia.aktifDokuman.klasoruAcSecimli()
        # else:
        #     self.ana_program.fikatia.aktifDokuman.klasoruAc()
        
        if self.ana_program.ayarlarForm.check_komut_sonrasi_kapat.isChecked():
            self.ana_program.close()
