Example #1
0
    def installer_jouer(self):
        """Quand on clique sur le bouton installer/jouer..."""
        # Trouve le nom du jeu actuellement sélectionné (depot)
        nom_jeu = self.nom_jeu_depot()
        no_description = self.trouve_index(nom_jeu)
        # print '>>>',  no_description

        # Trouve l'adresse de téléchargement
        adresse_telecharge = self.detail_jeux(no_description, type_info="telecharge")

        # Répère le nom de l'archive du jeu:
        nom_archive = adresse_telecharge.split("/")[-1]

        # Si le nom de l'archive est de type "fichier.tar.gz?cmd", on enleve une partie pour s'arreter à l'extension du fichier
        if "?" in nom_archive:
            nom_archive = nom_archive.split("?")
            nom_archive = nom_archive[0]

        # Si l'archive existe déjà, on ne la re-télécharge pas
        # print (config(info=2) + '/jeux/') + variables.nom_archive
        if self.etat_actuel == 0 and os.path.exists((config(info=2) + "/jeux/") + nom_archive) == True:
            # Si l'archive est plus petite que 500 Ko, on re-télécharge:
            if int(os.stat((config(info=2) + "/jeux/") + nom_archive).st_size) / 1024 > 500:
                print "L'archive du jeu existe déjà, elle ne sera pas téléchargé"
                self.etat_actuel = 2

        # print self.etat_actuel
        commande = self.trouve_commande(dossier=nom_jeu)

        # Si le jeu n'est pas encore installé, on lance le téléchargement, il sera installé ensuite:
        if self.etat_actuel == 0:
            if adresse_telecharge != 0:

                self.boutton_supprimer.setEnabled(False)
                self.boutton_installer.setEnabled(False)
                self.boutton_maj.setEnabled(False)

                # Répère la version afin de garder en mémoire la version du jeu installé, afin de permettre plus tard la mise à jour:
                version = self.detail_jeux(no_description, type_info="version")

                # Récupère le nom de l'icone, il sera affiche dans l'onglet de téléchargement:
                icone = (
                    config(info=2)
                    + "/"
                    + config(info=14)
                    + "/icos/"
                    + self.detail_jeux(no_description, type_info="icone")
                )

                # Récupère le titre du jeu qui sera affiché dans la QlistWidget
                titre = self.liste_jeux[0][no_description]["value"][0][0]["value"]

                # Envoi la fenêtre de téléchargement:
                # self.telecharge_ui(adresse_telecharge, nom_archive, nom_jeu, commande, version)
                self.NouvTelechargement(adresse_telecharge, nom_archive, nom_jeu, commande, version, icone, titre)
            else:
                print _("Impossible de trouver l'adresse de telechargement")

        # Si le jeu est déjà installé, on le lance:
        if self.etat_actuel == 1:
            th_lance = lance(nom_jeu, commande)
            th_lance.start()
            # Affiche la boite de dialogue "En cours de lancement" pendent 3 secondes:
            self.MessageLancement = diff.MessageLancement(3, self)
            self.MessageLancement.show()

        # Si le jeu est déjà téléchargé, on l'installe
        if self.etat_actuel == 2:
            # Répère la version afin de garder en mémoire la version du jeu installé, afin de permettre plus tard la mise à jour:
            nom_version = self.detail_jeux(no_description, type_info="nom")
            version = nom_version.split(" ")
            version = version[len(version) - 1]

            # Lance l'installation:
            # nom_archive: le nom réel de l'archive, nom_jeu: répertoire où sera extrait le jeu.
            th_i = installe(nom_archive, nom_jeu, commande, version)
            th_i.start()
Example #2
0
    def lance(self, Qitem="", Djeu="", Darguments=""):
        """On lance un jeu ici (jeu séléctionné dans la liste de jeux principale ou défini par la variable Djeu), avec si besoin des arguments"""
        if Djeu == "":  # Si on ne défini pas de jeu, on prend l'objet séléctionné dans la liste de jeux principale
            jeu_actuel = self.nom_jeu_pr()
        else:
            for i in range(len(self.liste_jeux_f)):
                if Djeu == self.liste_jeux_f[i]:
                    jeu_actuel = Djeu
                    break
                # print self.liste_jeux_f[i]

        # print '>', jeu_actuel, Darguments, Djeu

        diff.ecrit_historique(str(jeu_actuel) + _("lance"))

        # On lance la fonction qui va bien au module 'Dlog', si il existe
        try:
            self.trouve_module("Dlog", 1).lance(jeu_actuel)
        except:
            pass  # Mieux vaut ignorer les exception, sinon on ne peut plus lancer les jeux

        # Bloque l'interface graphique quelques secondes avant de lancer le jeu:
        # Si le jeu met un peu de temps à se lancer, l'utilisateur ne pourra pas lancer (bêtement) plusieurs fois le jeu
        self.listWidget.setEnabled(False)
        self.bloque_ui = 1

        # Si c'est un fichier .desktop, on lance le jeu comme il faut:
        if ".desktop" in jeu_actuel:
            cmd = self.lit_fichier_desktop(fichier=jeu_actuel, type_info="Exec")
            # print '>Commande: ', str(cmd), '/', str(jeu_actuel), self.listWidget.currentRow()

            # Si le raccourcis utilise une variable path pour définir le réperoire du jeu
            dir_jeu = self.lit_fichier_desktop(fichier=jeu_actuel, type_info="Path")

            ##Supprime les espaces dans la ligne de commande et les remplace par '\ '
            # if ' ' in cmd:
            # if '\ ' in cmd:
            # pass
            # else:
            # cmd=cmd.replace(' ', '\ ')

            # Ajoute les arguments de lancement défini par l'utilisateur (si il y en a)
            cmd = cmd + " " + Darguments + " " + str(self.trouve_args(jeu_actuel))

            th_lance = lance(jeu_actuel, cmd, dir_jeu, raccourci=1)
            th_lance.start()

        # Sinon, c'est un jeu installé depuis le dépot, on le lance donc différemment:
        else:
            # On récupère la commande du jeu:
            cmd = self.trouve_commande(dossier=jeu_actuel)

            # Ajoute les arguments (si il y en a)
            cmd = cmd + " " + str(self.trouve_args(jeu_actuel)) + " " + Darguments

            # On lance le jeu avec la class lance() dans installe.py:
            th_lance = lance(jeu_actuel, cmd)
            th_lance.start()

        print ("- " + jeu_actuel + ">" + cmd)

        # Affiche la sortie dans une boite de dialogue (en fonction de la configuration):
        if int(config(info=7)) == 1:
            self.affiche_sortie_jeu()

        # Affiche la boite de dialogue "En cours de lancement" pendent 3 secondes:
        self.MessageLancement = diff.MessageLancement(3, self)
        self.MessageLancement.show()
Example #3
0
 def lance(self, repertoire, cmd, raccourci):
     '''Lance le jeu'''
     from installe import lance
     th_lance = lance(repertoire, cmd, "", raccourci)
     th_lance.start()
Example #4
0
File: djl.py Project: freemind/Djl
 def lance(self, repertoire, cmd, raccourci):
     '''Lance le jeu'''
     from installe import lance
     th_lance = lance(repertoire, cmd, "", raccourci)
     th_lance.start()
Example #5
0
    def lance(self, Qitem='', Djeu='', Darguments=''):
        '''On lance un jeu ici (jeu séléctionné dans la liste de jeux principale ou défini par la variable Djeu), avec si besoin des arguments'''

        # if self.tabWidget.currentIndex() == 1: #liste principale
        # self.lance()
        # elif self.tabWidget.currentIndex() == 2: #depot
        # self.maj_description()
        # self.installer_jouer()

        if self.int_etendue:
            # Si on ne défini pas de jeu, on prend l'objet séléctionné dans la liste
            # de jeux principale
            if Djeu == '':
                if self.tabWidget.currentIndex() == 1:  # liste principale
                    jeu_actuel = self.nom_jeu_pr()
                elif self.tabWidget.currentIndex() == 2:  # depot
                    jeu_actuel = self.nom_jeu_depot()
                else:
                    jeu_actuel = self.nom_jeu_pr()
            else:
                for i in range(len(self.liste_jeux_f)):
                    if Djeu == self.liste_jeux_f[i]:
                        jeu_actuel = Djeu
                        break
        else:  # Si on utilise l'interface simple...
            jeu_actuel = self.nom_jeu_pr()

        # print '>', jeu_actuel, Darguments, Djeu

        diff.ecrit_historique(str(jeu_actuel) + i18n.traduc("lance"))

        # On lance la fonction qui va bien au module 'Dlog', si il existe
        try:
            self.trouve_module('Dlog', 1).lance(jeu_actuel)
        except:
            pass  # Mieux vaut ignorer les exception, sinon on ne peut plus lancer les jeux

        # Bloque l'interface graphique quelques secondes avant de lancer le jeu:
        # Si le jeu met un peu de temps à se lancer, l'utilisateur ne pourra pas
        # lancer (bêtement) plusieurs fois le jeu
        self.listWidget.setEnabled(False)
        self.bloque_ui = 1

        # Si c'est un fichier .desktop, on lance le jeu comme il faut:
        if '.desktop' in jeu_actuel:
            cmd = self.lit_fichier_desktop(fichier=jeu_actuel,
                                           type_info='Exec')
            # print '>Commande: ', str(cmd), '/', str(jeu_actuel), self.listWidget.currentRow()

            # Si le raccourcis utilise une variable path pour définir le réperoire du jeu
            dir_jeu = self.lit_fichier_desktop(fichier=jeu_actuel,
                                               type_info='Path')

            # Supprime les espaces dans la ligne de commande et les remplace par '\ '
            # if ' ' in cmd:
            # if '\ ' in cmd:
            # pass
            # else:
            #cmd=cmd.replace(' ', '\ ')

            # Ajoute les arguments de lancement défini par l'utilisateur (si il y en a)
            cmd = cmd + ' ' + Darguments + ' ' + str(
                self.trouve_args(jeu_actuel))

            th_lance = lance(jeu_actuel, cmd, dir_jeu, raccourci=1)
            th_lance.start()

        # Sinon, c'est un jeu installé depuis le dépot, on le lance donc différemment:
        else:
            # On récupère la commande du jeu:
            cmd = self.trouve_commande(dossier=jeu_actuel)

            # Ajoute les arguments (si il y en a)
            cmd = cmd + ' ' + str(
                self.trouve_args(jeu_actuel)) + ' ' + Darguments

            # On lance le jeu avec la class lance() dans installe.py:
            th_lance = lance(jeu_actuel, cmd)
            th_lance.start()

        print("- " + jeu_actuel + ">" + cmd)

        # Affiche la sortie dans une boite de dialogue (en fonction de la configuration):
        if int(config(info=7)) == 1:
            self.affiche_sortie_jeu()

        # Affiche la boite de dialogue "En cours de lancement" pendent 3 secondes:
        self.MessageLancement = diff.MessageLancement(3, self)
        self.MessageLancement.show()