Exemple #1
0
    def etat(self, nom_jeu):
        '''Permet de savoir si le jeu est installé ou non
          Si etat = 0: pas installé, 1 = installé, 2 = téléchargé mais pas installé'''
        repertoire = config(info=2) + '/etat_jeux/'
        fichier = repertoire + nom_jeu

        if os.path.isdir(fichier):
            return

        # Vérifi si le fichier etat existe et l'utilise
        if os.path.exists(fichier) == True:
            txt_etat = open(fichier, 'r')
            etat = int(txt_etat.read())
            txt_etat.close()
        # Si le fichier etat qui n'existe pas, on part du principe que le jeu n'est pas installé
        else:
            etat = 0

        # print nom_jeu, str(etat)

        if etat == 0:
            self.boutton_installer.setText(i18n.traduc("Installer"))
            self.boutton_installer.setEnabled(True)
            self.boutton_supprimer.setEnabled(False)
            self.boutton_maj.setEnabled(False)
            self.label_4.setText(i18n.traduc("Etat: Non installe"))
            # print 'Le jeu n\'est pas installé'

        if etat == 1:
            self.label_4.setText(i18n.traduc("Etat: Installe"))
            self.boutton_installer.setText(i18n.traduc("Jouer"))
            self.boutton_installer.setEnabled(True)
            self.boutton_supprimer.setEnabled(True)
            # Verifi si la mise à jour est possible:
            self.verif_maj_jeu(nom_jeu)
            # print 'Le jeu est installé'

        if etat == 2:
            self.label_4.setText(i18n.traduc("Etat: Telecharge"))
            self.boutton_installer.setText(i18n.traduc("Installer"))
            self.boutton_installer.setEnabled(True)
            self.boutton_maj.setEnabled(False)
            # self.boutton_supprimer.setEnabled(True)
            # print 'Le jeu est en cours d\'installation'

        # Si l'etat est à 4, c'est qu'on a annulé le téléchargement
        if etat == 4:
            self.label_4.setText(i18n.traduc("Etat: Non installe"))
            self.boutton_installer.setText(i18n.traduc("Installer"))
            self.boutton_installer.setEnabled(True)
            self.boutton_supprimer.setEnabled(False)
            self.boutton_maj.setEnabled(False)
            modif_etat(nom_jeu, val_etat=0)
            etat = 0

        self.etat_actuel = etat
Exemple #2
0
    def timerEventDepot(self):
        '''Cette fonction est appellée toutes les secondes, ça permet de mettre à jour l'affichage et le calcul du débit par seconde du téléchargement.'''
        # print "-------"
        # print self.listeTelechargement
        # print variables.installe

        # Fais clignoter la barre de titre du dépôt si demandé:
        # if self.clignote_depot:
            # if self.val_clignote_depot == 0:
                #self.tabDepot.setTabIcon(1, self.IconOngletTelechargement1)

                #self.val_clignote_depot = 1
            # else:
                #self.tabDepot.setTabIcon(1, self.IconOngletTelechargement2)
                #self.val_clignote_depot = 0

        # Parcours la liste des téléchargements pour mettre à jour l'affichage
        for id in range(len(self.listeTelechargement)):
            obj = self.listeTelechargement[id]
            # Récupère les informations de téléchargement sur le Thread:
            nb_blocs, taille_bloc, taille_fichier = obj[0].renvoi_infos()

            # Tant que le téléchargement n'est pas lancé, on n'affiche rien
            if taille_fichier != 1:
                if (nb_blocs * taille_bloc) <= taille_fichier:
                    # Calcul la taille de ce qui a déjà été téléchargé (en octets)
                    telecharge = nb_blocs * taille_bloc

                    # Calcul la taille de ce qu'il reste à télécharger (en octets):
                    reste = taille_fichier - telecharge

                    # Calcul le total de données téléchargés et divise par le nombre de
                    # secondes afin d'avoir le débit kb/S
                    debit = (telecharge / self.iterationBoucleTele) / 1024

                    if debit > 0:
                        # Calcul le pourcentage d'avancement du téléchargement:
                        pourcentage = int(((telecharge + 0.) / taille_fichier + 0.) * 100)

                        # Calcule le temps restant à télécharger en fonction du débit et du
                        # reste...
                        temps_restant = (reste / 1024) / debit
                        # Récupère le nombre de minutes en divisant simplement par 60
                        temps_restant_minutes = temps_restant / 60

                        # Recupère le nombre de secondes restantes
                        temps_restant_secondes = temps_restant - (temps_restant_minutes * 60)

                        if temps_restant_secondes < 10:
                            temps_restant_secondes = "0" + str(temps_restant_secondes)

                        nom_jeu = obj[3]
                        # On demande d'éditer la ligne, on récupère l'index, puis l'objet depuis
                        # l'index et enfin on édite l'objet
                        item = self.listWidgetTelechargement.item(id)
                        item.setText(nom_jeu + ' - ' + str(pourcentage) + ' % - ' + str(taille_fichier / 1048576) + " " + _('Mo') + ' - ' + str(debit)
                                     + ' ' + _('Ko/s') + ' - ' + i18n.traduc("Temps restant:") + " " + str(temps_restant_minutes) + ":" + str(temps_restant_secondes))
                else:
                    #item = self.listWidgetTelechargement.item(self.listWidgetTelechargement.currentRow())
                    item = self.listWidgetTelechargement.item(id)
                    try:
                        item.setText(i18n.traduc("Decompression de l'archive en cours..."))
                    except AttributeError, x:
                        print x
                        continue

            # Vérifi si l'installation est terminée:
            if variables.installe[obj[2]]:
                print "Terminé:" + str(obj[2])

                # Supprime la ligne de la liste (Widget)
                self.listWidgetTelechargement.takeItem(id)

                modif_etat(obj[2], val_etat=1)  # Met l'etat du jeu a 'installé'
                self.maj_liste()  # Met à jour la liste de jeux principale
                del variables.installe[obj[2]]
                del self.listeTelechargement[id]

                return (
                    # On passe l'itération du timer pour éviter les problèmes suite à la
                    # suppression des éléments dans les listes
                )
Exemple #3
0
            self.listeTelechargement[id][0]._Thread__stop()
        except TypeError, x:
            print x

        # Supprime l'archive: (une exception est levée si le téléchargement n'a
        # pas encore commencé, puisqu'il n'y a pas d'archive)
        try:
            supprime_archive(self.listeTelechargement[id][1])
        except OSError, x:
            print x

        # Vire la variable d'installation du jeu (nom_jeu)
        del variables.installe[self.listeTelechargement[id][2]]

        # Modif l'etat pour que le dépot comprenne que l'installation a été annulée
        modif_etat(self.listeTelechargement[id][2], val_etat=4)

        self.maj_liste()  # Met à jour la liste de jeux principale

        self.listWidgetTelechargement.takeItem(id)  # Supprime la ligne de la liste (Widget)
        del self.listeTelechargement[id]  # Supprime l'instance de la liste (Tableau)
        # print self.listeTelechargement

    def NouvTelechargement(self, adresse_telecharge, nom_archive,
                           nom_jeu, commande, version, icone, titre):
        '''L'utilisateur a lancé un nouveau téléchargement, on l'ajoute à la liste'''
        item = QtGui.QListWidgetItem()

        item.setIcon(QtGui.QIcon(icone))
        item.setText(titre)
Exemple #4
0
    def etat(self, nom_jeu):
        """Permet de savoir si le jeu est installé ou non
          Si etat = 0: pas installé, 1 = installé, 2 = téléchargé mais pas installé"""
        repertoire = config(info=2) + "/etat_jeux/"
        fichier = repertoire + nom_jeu

        # Vérifi si le fichier etat existe et l'utilise
        if os.path.exists(fichier) == True:
            txt_etat = open(fichier, "r")
            etat = int(txt_etat.read())
            txt_etat.close()
        else:  # Si le fichier etat qui n'existe pas, on part du principe que le jeu n'est pas installé
            etat = 0

        if etat == 0:
            self.boutton_installer.setText(
                QtGui.QApplication.translate("MainWindow", _("Installer"), None, QtGui.QApplication.UnicodeUTF8)
            )
            self.boutton_installer.setEnabled(True)
            self.boutton_supprimer.setEnabled(False)
            self.boutton_maj.setEnabled(False)
            self.label_4.setText(
                QtGui.QApplication.translate(
                    "MainWindow", _("Etat: Non installe"), None, QtGui.QApplication.UnicodeUTF8
                )
            )
            # print 'Le jeu n\'est pas installé'

        if etat == 1:
            self.label_4.setText(
                QtGui.QApplication.translate("MainWindow", _("Etat: Installe"), None, QtGui.QApplication.UnicodeUTF8)
            )
            self.boutton_installer.setText(
                QtGui.QApplication.translate("MainWindow", _("Jouer"), None, QtGui.QApplication.UnicodeUTF8)
            )
            self.boutton_installer.setEnabled(True)
            self.boutton_supprimer.setEnabled(True)
            # Verifi si la mise à jour est possible:
            self.verif_maj_jeu(nom_jeu)
            # print 'Le jeu est installé'

        if etat == 2:
            self.label_4.setText(
                QtGui.QApplication.translate("MainWindow", _("Etat: Telecharge"), None, QtGui.QApplication.UnicodeUTF8)
            )
            self.boutton_installer.setText(
                QtGui.QApplication.translate("MainWindow", _("Installer"), None, QtGui.QApplication.UnicodeUTF8)
            )
            self.boutton_installer.setEnabled(True)
            self.boutton_maj.setEnabled(False)
            # self.boutton_supprimer.setEnabled(True)
            # print 'Le jeu est en cours d\'installation'

        # Si l'etat est à 4, c'est qu'on a annulé le téléchargement
        if etat == 4:
            self.label_4.setText(
                QtGui.QApplication.translate(
                    "MainWindow", _("Etat: Non installe"), None, QtGui.QApplication.UnicodeUTF8
                )
            )
            self.boutton_installer.setText(
                QtGui.QApplication.translate("MainWindow", _("Installer"), None, QtGui.QApplication.UnicodeUTF8)
            )
            self.boutton_installer.setEnabled(True)
            self.boutton_supprimer.setEnabled(False)
            self.boutton_maj.setEnabled(False)
            modif_etat(nom_jeu, val_etat=0)
            etat = 0

        self.etat_actuel = etat
Exemple #5
0
    def timerEventDepot(self, event):
	''' This function is called every second, to calculate the download speed'''
        #print "-------"
        #print self.listeTelechargement
        #print variables.installe
        
        #Fais clignoter la barre de titre du dépôt si demandé:
        #if self.clignote_depot:
            #if self.val_clignote_depot == 0:
                #self.tabDepot.setTabIcon(1, self.IconOngletTelechargement1)

                #self.val_clignote_depot = 1
            #else:
                #self.tabDepot.setTabIcon(1, self.IconOngletTelechargement2)
                #self.val_clignote_depot = 0
            
        #Parcours la liste des téléchargements pour mettre à jour l'affichage
        for id in range(len(self.listeTelechargement)):
            obj = self.listeTelechargement[id]
            #Récupère les informations de téléchargement sur le Thread:
            nb_blocs, taille_bloc, taille_fichier = obj[0].renvoi_infos() 
            #Tant que le téléchargement n'est pas lancé, on n'affiche rien
            if taille_fichier != 1:
                if (nb_blocs*taille_bloc) <= taille_fichier:
                    #Calcul la taille de ce qui a déjà été téléchargé (en octets)
                    telecharge = nb_blocs * taille_bloc
                    
                    #Calcul la taille de ce qu'il reste à télécharger (en octets):
                    reste = taille_fichier - telecharge
        
                    #Calcul le total de données téléchargés et divise par le nombre de secondes afin d'avoir le débit kb/S
                    debit = (telecharge/self.iterationBoucleTele)/1024
                    
                    if debit > 0:
                        #Calcul le pourcentage d'avancement du téléchargement:
                        pourcentage = int(((telecharge+0.)/taille_fichier+0.)*100)
        
                        #Calcule le temps restant à télécharger en fonction du débit et du reste...
                        temps_restant = (reste/1024) / debit
                        temps_restant_minutes = temps_restant / 60 #Récupère le nombre de minutes en divisant simplement par 60
                        
                        temps_restant_secondes =  temps_restant - (temps_restant_minutes*60) #Recupère le nombre de secondes restantes
                        
                        if temps_restant_secondes < 10:
                            temps_restant_secondes =  "0" + str(temps_restant_secondes)
                        
                        nom_jeu = obj[3]
                        #On demande d'éditer la ligne, on récupère l'index, puis l'objet depuis l'index et enfin on édite l'objet
                        item = self.listWidgetTelechargement.item(id)
                        item.setText(nom_jeu + ' - ' + str(pourcentage) + ' % - ' + str(taille_fichier/1048576) +  " " + _('Mo') + ' - ' + str(debit)+' ' + _('Ko/s') + ' - ' + _("Temps restant:") + " " + str(temps_restant_minutes) + ":" + str(temps_restant_secondes))
                else:
                    item = self.listWidgetTelechargement.item(self.listWidgetTelechargement.currentRow())
                    try:
                        item.setText(QtGui.QApplication.translate("Dialog", _("Decompression de l'archive en cours..."), None, QtGui.QApplication.UnicodeUTF8))
                    except AttributeError, x:
                        print x
                        continue
                        
            #Vérifi si l'installation est terminée:
            if variables.installe[obj[2]]:
                print "Terminé:" + str(obj[2])
                
                self.listWidgetTelechargement.takeItem(id) #Removes the line from the list (Widget)S
                
                modif_etat(obj[2], val_etat = 1) #Puts the game's state to 'installed'
                self.maj_liste() #Updates the main list games
                del variables.installe[obj[2]]
                del self.listeTelechargement[id]

                return #Jumped the time iteration, to avoid problems after removing elements on the list
Exemple #6
0
        try:
            self.listeTelechargement[id][0].annule()
            self.listeTelechargement[id][0]._Thread__stop()
        except TypeError, x:
            print x
            
        #Removes the file: (an exception is raised if the download haven't started yet, because the file doesn't exist)
        try:
            supprime_archive(self.listeTelechargement[id][1])
        except OSError, x:
            print x
            
        del variables.installe[self.listeTelechargement[id][2]] #Vire la variable d'installation du jeu (nom_jeu)
            
        #Modif l'etat pour que le dépot comprenne que l'installation a été annulée
        modif_etat(self.listeTelechargement[id][2], val_etat=4)
        
        self.maj_liste() #Updates the main games' list
            
        self.listWidgetTelechargement.takeItem(id) #Removes the line from list (Widget)
        del self.listeTelechargement[id] #Removes the instance from list (Table)
        #print self.listeTelechargement
            
    def NouvTelechargement(self, adresse_telecharge, nom_archive, nom_jeu, commande, version, icone, titre):
	'''The user has launched a new download, it's added to the list'''
        item = QtGui.QListWidgetItem()

        item.setIcon(QtGui.QIcon(icone))
        item.setText(titre)
        
        self.listWidgetTelechargement.addItem(item)