123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- from PyQt5.QtWidgets import (QWidget, QGridLayout, QHBoxLayout, QDialog, QVBoxLayout, QLabel, QMessageBox, QListWidget, QListWidgetItem, QPushButton, qApp)
- from PyQt5.QtGui import QMovie, QIcon
- from PyQt5.QtCore import Qt,QSize
- from siniflar import surec, ilerlemecubugu
- import os,time
- class GuncellePencere(QWidget):
- def __init__(self, ebeveyn=None):
- super(GuncellePencere, self).__init__(ebeveyn)
- self.islem = "guncelle"
- self.ebeveyn = ebeveyn
- merkez_kutu = QVBoxLayout()
- merkez_kutu.setContentsMargins(0,0,0,0)
- self.setLayout(merkez_kutu)
- self.gif_label = QLabel()
- merkez_kutu.addWidget(self.gif_label)
- animasyon = QMovie("simgeler/milis_.gif")
- animasyon.setScaledSize(QSize(100,100))
- self.gif_label.setMovie(animasyon)
- self.gif_label.setAlignment(Qt.AlignHCenter | Qt.AlignVCenter)
- animasyon.start()
- self.donut_label = QLabel()
- merkez_kutu.addWidget(self.donut_label)
- self.donut_label.setAlignment(Qt.AlignHCenter | Qt.AlignVCenter)
- self.setWindowIcon(QIcon("simgeler/paket.svg"))
- self.progress_bar = ilerlemecubugu.IlerlemeCubugu()
- merkez_kutu.addWidget(self.progress_bar)
- def guncelle_surec_baslat(self):
- if self.islem == "guncelle":
- self.bas_zamani = time.time()
- self.donut_label.setText("Güncellenebilir paketler aranıyor...")
- if os.path.exists("/tmp/mps.guncellenecekler"):
- os.system("rm /tmp/mps.guncellenecekler")
- os.system("touch /tmp/mps.guncellenecekler")
- self.komut = "mps guncelle"
- self.bit_zamani = time.time()
- elif self.islem == "paket_guncelle":
- self.donut_label.setText("Seçilen paketler güncelleniyor...")
- self.komut = "mps yukselt /tmp/mps.guncellenecekler evet"
- terminal_thread = surec.SurecThread(self)
- terminal_thread.update.connect(self.guncelle_surec_guncelle)
- terminal_thread.finished.connect(self.guncelle_surec_bitti)
- terminal_thread.start()
-
- def guncelle_surec_bitti(self):
- if self.islem == "guncelle":
- dosya = open("/tmp/mps.guncellenecekler","r")
- paketler = dosya.readlines()
- dosya.close()
- if len(paketler) != 0:
- surec_pencere = SurecBaslatOnay(self)
- surec_pencere.liste_guncelle(paketler)
- surec_pencere.exec_()
- else:
- QMessageBox.information(self,"Paket bulunamadı","Sisteminiz güncel durumda.\nGüncellemeye ihtiyaç duyan bir paket bulunamadı")
- self.ebeveyn.asamalar.setCurrentIndex(1)
- elif self.islem == "paket_guncelle":
- self.donut_label.setText("Paketler başarıyla güncellendi.")
- self.ebeveyn.asamalar.setCurrentIndex(1)
- def guncelle_surec_guncelle(self,cikti):
-
- if self.islem == "guncelle":
- self.gecen_zaman = self.bit_zamani - self.bas_zamani
- self.progress_bar.ilerleyici(self.gecen_zaman)
- self.donut_label.setText("Paketler taranıyor.")
- #self.donut_label.setText("Paketler taranıyor %" + cikti.split("[")[0][:-2])
- else:
- self.donut_label.setText(cikti.replace(".", ""))
-
-
- class SurecBaslatOnay(QDialog):
- def __init__(self, ebeveyn=None):
- super(SurecBaslatOnay, self).__init__(ebeveyn)
- self.ebeveyn = ebeveyn
- self.setWindowFlags(self.windowFlags() | Qt.CustomizeWindowHint)
- self.setWindowFlags(self.windowFlags() & ~Qt.WindowCloseButtonHint)
- merkez_kutu = QGridLayout()
- self.setLayout(merkez_kutu)
- self.bilgi_label = QLabel()
- self.bilgi_label.setText("Lütfen güncellemek istediğiniz paketleri seçiniz.")
- merkez_kutu.addWidget(self.bilgi_label,0,0,1,2)
- self.liste = QListWidget()
- merkez_kutu.addWidget(self.liste,1,0,1,2)
- self.onay_dugme = QPushButton("Güncelle")
- self.onay_dugme.clicked.connect(self.onay_fonk)
- self.geri_dugme = QPushButton("Vazgeç")
- self.geri_dugme.clicked.connect(self.geri_fonk)
- merkez_kutu.addWidget(self.geri_dugme,2,0,1,1)
- merkez_kutu.addWidget(self.onay_dugme,2,1,1,1)
- def onay_fonk(self):
- #self.ebeveyn.islem_surec_baslat()
- dosya = open("/tmp/mps.guncellenecekler","r")
- for i in range(0,self.liste.count()):
- if self.liste.item(i).checkState():
- dosya.write(self.liste.item(i).text()+"\n")
- dosya.close()
- self.ebeveyn.islem = "paket_guncelle"
- self.ebeveyn.guncelle_surec_baslat()
- QDialog.accept(self)
- def geri_fonk(self):
- self.ebeveyn.ebeveyn.asamalar.setCurrentIndex(1)
- QDialog.accept(self)
- def liste_guncelle(self,paketler):
- for paket in paketler:
- lm = QListWidgetItem()
- lm.setText(paket[:-1])
- lm.setFlags(lm.flags() | Qt.ItemIsUserCheckable)
- lm.setCheckState(Qt.Checked)
- self.liste.addItem(lm)
|