paketgenelpencere.py 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. from PyQt5.QtWidgets import (QWidget, QHBoxLayout, QVBoxLayout, QLabel, QMessageBox, QListWidget, QListWidgetItem, QPushButton, qApp, QListView, QLineEdit)
  2. from PyQt5.QtCore import Qt, QSize
  3. from PyQt5.QtGui import QIcon
  4. from siniflar import surec
  5. class PaketGenelPencere(QWidget):
  6. def __init__(self, ebeveyn=None):
  7. super(PaketGenelPencere, self).__init__(ebeveyn)
  8. self.ebeveyn = ebeveyn
  9. merkez_kutu = QVBoxLayout()
  10. merkez_kutu.setContentsMargins(0,0,0,0)
  11. self.setLayout(merkez_kutu)
  12. ust_kutu = QHBoxLayout()
  13. ust_kutu.setContentsMargins(0,0,0,0)
  14. merkez_kutu.addLayout(ust_kutu)
  15. self.arama_le = QLineEdit()
  16. self.arama_le.setFixedHeight(24)
  17. self.arama_le.textChanged.connect(self.yazi_degisti)
  18. ust_kutu.addWidget(self.arama_le)
  19. guncelle_dugme = QPushButton("Güncelle")
  20. guncelle_dugme.setFixedHeight(24)
  21. guncelle_dugme.setFixedWidth(100)
  22. guncelle_dugme.setIcon(QIcon("./simgeler/guncelle.svg"))
  23. guncelle_dugme.setIconSize(QSize(18,18))
  24. guncelle_dugme.setStyleSheet("background-color:#333333;border:None;color:#ffffff;font-weight:bold")
  25. guncelle_dugme.clicked.connect(self.ebeveyn.paketleri_guncelle)
  26. ust_kutu.addWidget(guncelle_dugme)
  27. cikis_dugme = QPushButton("Çıkış")
  28. cikis_dugme.setFixedHeight(24)
  29. cikis_dugme.setFixedWidth(100)
  30. cikis_dugme.setIcon(QIcon("./simgeler/cikis.svg"))
  31. cikis_dugme.setIconSize(QSize(18,18))
  32. cikis_dugme.setStyleSheet("background-color:#333333;border:None;color:#ffffff;font-weight:bold")
  33. cikis_dugme.clicked.connect(self.ebeveyn.cikis)
  34. ust_kutu.addWidget(cikis_dugme)
  35. liste_kutu = QHBoxLayout()
  36. merkez_kutu.addLayout(liste_kutu)
  37. self.grup_liste = QListWidget()
  38. self.grup_liste.itemSelectionChanged.connect(self.paket_liste_guncelle)
  39. self.grup_liste.setFixedWidth(150)
  40. liste_kutu.addWidget(self.grup_liste)
  41. self.paket_liste = QListWidget()
  42. #self.paket_liste.setViewMode(QListView.IconMode)
  43. self.paket_liste.setResizeMode(QListView.Adjust)
  44. #self.paket_liste.setMovement(QListView.Snap)
  45. liste_kutu.addWidget(self.paket_liste)
  46. self.arama_sonucu = []
  47. def yazi_degisti(self):
  48. self.arama_sonucu = []
  49. aranacak = self.arama_le.text()
  50. self.grup_liste.setCurrentRow(0)
  51. self.grup_liste.setDisabled(True)
  52. if len(aranacak) > 0:
  53. for paket in self.ebeveyn.paketler_sozluk.keys():
  54. if aranacak == self.arama_le.text():
  55. if aranacak.lower() in paket or aranacak.lower() in self.ebeveyn.paketler_sozluk[paket]["Tanim"].lower():
  56. self.arama_sonucu.append(paket)
  57. else:
  58. break
  59. self.grup_liste.setDisabled(False)
  60. self.paket_liste_guncelle(aranacak)
  61. def paket_liste_guncelle(self,arama=None):
  62. self.paket_liste.clear()
  63. secili = self.grup_liste.currentItem().text()
  64. if secili == "Tümü":
  65. paketler = self.ebeveyn.tum_paketler
  66. elif secili == "Arama":
  67. self.arama_le.setFocus(True)
  68. paketler = self.arama_sonucu
  69. else:
  70. paketler = self.ebeveyn.gruplar_sozluk[secili]
  71. for paket in paketler:
  72. if secili == self.grup_liste.currentItem().text() and (arama == None or arama == self.arama_le.text()):
  73. ozel_madde = OzelMadde(self)
  74. ozel_madde.madde_duzenle(paket)
  75. ozel_madde_item = QListWidgetItem(self.paket_liste)
  76. ozel_madde_item.setSizeHint(ozel_madde.sizeHint())
  77. self.paket_liste.setItemWidget(ozel_madde_item,ozel_madde)
  78. qApp.processEvents()
  79. else:
  80. break
  81. def grup_liste_guncelle(self):
  82. self.grup_liste.clear()
  83. self.grup_liste.addItem(QListWidgetItem(QIcon("./simgeler/ara.svg"),"Arama"))
  84. icon = self.ebeveyn.icon_getir("application-default-icon")
  85. self.grup_liste.addItem(QListWidgetItem(icon,"Tümü"))
  86. for grup in sorted(self.ebeveyn.gruplar_sozluk):
  87. icon = self.ebeveyn.icon_getir("applications-other")
  88. icon = QIcon.fromTheme(grup, icon)
  89. lm = QListWidgetItem(icon,grup)
  90. self.grup_liste.addItem(lm)
  91. self.grup_liste.setCurrentRow(0)
  92. class OzelMadde(QWidget):
  93. def __init__(self, ebeveyn=None):
  94. super(OzelMadde, self).__init__(ebeveyn)
  95. self.ebeveyn = ebeveyn
  96. self.setFixedHeight(64)
  97. merkez_kutu = QHBoxLayout()
  98. merkez_kutu.setContentsMargins(0,0,0,0)
  99. yazi_kutu = QVBoxLayout()
  100. yazi_kutu.setContentsMargins(0,0,0,0)
  101. self.setLayout(merkez_kutu)
  102. self.resim_dugme = QPushButton()
  103. self.resim_dugme.clicked.connect(self.secildi)
  104. self.resim_dugme.setFixedWidth(48)
  105. self.resim_dugme.setFixedHeight(48)
  106. self.resim_dugme.setIconSize(QSize(48,48))
  107. self.resim_dugme.setStyleSheet("border:None")
  108. merkez_kutu.addWidget(self.resim_dugme)
  109. merkez_kutu.addLayout(yazi_kutu)
  110. self.yazi_dugme = QLabel()
  111. self.yazi_dugme.setFixedHeight(18)
  112. self.yazi_dugme.setStyleSheet("border:None;text-align:left;font-weight:bold")
  113. yazi_kutu.addWidget(self.yazi_dugme)
  114. self.aciklama_dugme = QLabel()
  115. self.aciklama_dugme.setWordWrap(True)
  116. self.aciklama_dugme.setFixedHeight(40)
  117. #self.aciklama_dugme.setStyleSheet("border:None;text-align:left")
  118. yazi_kutu.addWidget(self.aciklama_dugme)
  119. self.kur_sil_dugme = QPushButton()
  120. self.kur_sil_dugme.clicked.connect(self.secildi)
  121. self.kur_sil_dugme.setFixedWidth(48)
  122. self.kur_sil_dugme.setFixedHeight(30)
  123. merkez_kutu.addWidget(self.kur_sil_dugme)
  124. def madde_duzenle(self,isim):
  125. icon = self.ebeveyn.ebeveyn.icon_getir(isim)
  126. self.resim_dugme.setIcon(icon)
  127. self.yazi_dugme.setText(isim)
  128. try:
  129. yazi = self.ebeveyn.ebeveyn.paketler_sozluk[isim]["Tanim"].replace("\n","")
  130. if len(yazi) > 130:
  131. yazi = yazi[:130]+"..."
  132. self.aciklama_dugme.setText(yazi)
  133. except:
  134. self.ebeveyn.ebeveyn.tum_paketler.remove(isim)
  135. self.aciklama_dugme.setText("")
  136. pass
  137. self.paket_adi = isim
  138. if isim in self.ebeveyn.ebeveyn.kurulu_paketler:
  139. self.kur_sil_dugme.setIcon(QIcon("./simgeler/sil.svg"))
  140. self.kur_sil_dugme.setIconSize(QSize(24,24))
  141. self.kur_sil_dugme.setStyleSheet("background-color:#c6262e;border:None;color:#ffffff;font-weight:bold")
  142. else:
  143. self.kur_sil_dugme.setIcon(QIcon("./simgeler/kur.svg"))
  144. self.kur_sil_dugme.setIconSize(QSize(24,24))
  145. self.kur_sil_dugme.setStyleSheet("background-color:#68b723;border:None;color:#ffffff;font-weight:bold")
  146. def secildi(self):
  147. self.ebeveyn.ebeveyn.paket_secildi(self.paket_adi)