guncelle.py 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. from PyQt5.QtWidgets import (QWidget, QGridLayout, QHBoxLayout, QDialog, QVBoxLayout, QLabel, QMessageBox, QListWidget, QListWidgetItem, QPushButton, qApp)
  2. from PyQt5.QtGui import QMovie, QIcon
  3. from PyQt5.QtCore import Qt,QSize
  4. from siniflar import surec, ilerlemecubugu
  5. import os,time
  6. class GuncellePencere(QWidget):
  7. def __init__(self, ebeveyn=None):
  8. super(GuncellePencere, self).__init__(ebeveyn)
  9. self.islem = "guncelle"
  10. self.ebeveyn = ebeveyn
  11. merkez_kutu = QVBoxLayout()
  12. merkez_kutu.setContentsMargins(0,0,0,0)
  13. self.setLayout(merkez_kutu)
  14. self.gif_label = QLabel()
  15. merkez_kutu.addWidget(self.gif_label)
  16. animasyon = QMovie("simgeler/milis_.gif")
  17. animasyon.setScaledSize(QSize(100,100))
  18. self.gif_label.setMovie(animasyon)
  19. self.gif_label.setAlignment(Qt.AlignHCenter | Qt.AlignVCenter)
  20. animasyon.start()
  21. self.donut_label = QLabel()
  22. merkez_kutu.addWidget(self.donut_label)
  23. self.donut_label.setAlignment(Qt.AlignHCenter | Qt.AlignVCenter)
  24. self.setWindowIcon(QIcon("simgeler/paket.svg"))
  25. self.progress_bar = ilerlemecubugu.IlerlemeCubugu()
  26. merkez_kutu.addWidget(self.progress_bar)
  27. def guncelle_surec_baslat(self):
  28. if self.islem == "guncelle":
  29. self.bas_zamani = time.time()
  30. self.donut_label.setText("Güncellenebilir paketler aranıyor...")
  31. if os.path.exists("/tmp/mps.guncellenecekler"):
  32. os.system("rm /tmp/mps.guncellenecekler")
  33. os.system("touch /tmp/mps.guncellenecekler")
  34. self.komut = "mps guncelle"
  35. self.bit_zamani = time.time()
  36. elif self.islem == "paket_guncelle":
  37. self.donut_label.setText("Seçilen paketler güncelleniyor...")
  38. self.komut = "mps yukselt /tmp/mps.guncellenecekler evet"
  39. terminal_thread = surec.SurecThread(self)
  40. terminal_thread.update.connect(self.guncelle_surec_guncelle)
  41. terminal_thread.finished.connect(self.guncelle_surec_bitti)
  42. terminal_thread.start()
  43. def guncelle_surec_bitti(self):
  44. if self.islem == "guncelle":
  45. dosya = open("/tmp/mps.guncellenecekler","r")
  46. paketler = dosya.readlines()
  47. dosya.close()
  48. if len(paketler) != 0:
  49. surec_pencere = SurecBaslatOnay(self)
  50. surec_pencere.liste_guncelle(paketler)
  51. surec_pencere.exec_()
  52. else:
  53. QMessageBox.information(self,"Paket bulunamadı","Sisteminiz güncel durumda.\nGüncellemeye ihtiyaç duyan bir paket bulunamadı")
  54. self.ebeveyn.asamalar.setCurrentIndex(1)
  55. elif self.islem == "paket_guncelle":
  56. self.donut_label.setText("Paketler başarıyla güncellendi.")
  57. self.ebeveyn.asamalar.setCurrentIndex(1)
  58. def guncelle_surec_guncelle(self,cikti):
  59. if self.islem == "guncelle":
  60. self.gecen_zaman = self.bit_zamani - self.bas_zamani
  61. self.progress_bar.ilerleyici(self.gecen_zaman)
  62. self.donut_label.setText("Paketler taranıyor.")
  63. #self.donut_label.setText("Paketler taranıyor %" + cikti.split("[")[0][:-2])
  64. else:
  65. self.donut_label.setText(cikti.replace(".", ""))
  66. class SurecBaslatOnay(QDialog):
  67. def __init__(self, ebeveyn=None):
  68. super(SurecBaslatOnay, self).__init__(ebeveyn)
  69. self.ebeveyn = ebeveyn
  70. self.setWindowFlags(self.windowFlags() | Qt.CustomizeWindowHint)
  71. self.setWindowFlags(self.windowFlags() & ~Qt.WindowCloseButtonHint)
  72. merkez_kutu = QGridLayout()
  73. self.setLayout(merkez_kutu)
  74. self.bilgi_label = QLabel()
  75. self.bilgi_label.setText("Lütfen güncellemek istediğiniz paketleri seçiniz.")
  76. merkez_kutu.addWidget(self.bilgi_label,0,0,1,2)
  77. self.liste = QListWidget()
  78. merkez_kutu.addWidget(self.liste,1,0,1,2)
  79. self.onay_dugme = QPushButton("Güncelle")
  80. self.onay_dugme.clicked.connect(self.onay_fonk)
  81. self.geri_dugme = QPushButton("Vazgeç")
  82. self.geri_dugme.clicked.connect(self.geri_fonk)
  83. merkez_kutu.addWidget(self.geri_dugme,2,0,1,1)
  84. merkez_kutu.addWidget(self.onay_dugme,2,1,1,1)
  85. def onay_fonk(self):
  86. #self.ebeveyn.islem_surec_baslat()
  87. dosya = open("/tmp/mps.guncellenecekler","r")
  88. for i in range(0,self.liste.count()):
  89. if self.liste.item(i).checkState():
  90. dosya.write(self.liste.item(i).text()+"\n")
  91. dosya.close()
  92. self.ebeveyn.islem = "paket_guncelle"
  93. self.ebeveyn.guncelle_surec_baslat()
  94. QDialog.accept(self)
  95. def geri_fonk(self):
  96. self.ebeveyn.ebeveyn.asamalar.setCurrentIndex(1)
  97. QDialog.accept(self)
  98. def liste_guncelle(self,paketler):
  99. for paket in paketler:
  100. lm = QListWidgetItem()
  101. lm.setText(paket[:-1])
  102. lm.setFlags(lm.flags() | Qt.ItemIsUserCheckable)
  103. lm.setCheckState(Qt.Checked)
  104. self.liste.addItem(lm)