예제 #1
0
파일: djl_main.py 프로젝트: freemind/Djl
from installe import lance, msg_erreur, modif_etat, erreur_x11, installe
from variables import variables, home, dossier_racine

from config import config  # Lis le fichier de configuration
import diff  # Fonctions diverses utilisés par l'interface principale
import interface  # Dessin de l'interface principale
import i18n  # Récupère le texte sur le fichiers de traduction
import rss  # Agrégateur RSS
import depot  # Interface du dépot
import modules  # Gestionnaire de modules

# Envoi l'installation de l'internationalisation:
i18n.i18n_init()

# Modifi le user-agent:
urllib.URLopener.version = "djl" + interface.version() + "/Linux"

# Change le nom du processus.
import ctypes

libc = ctypes.CDLL("libc.so.6")
libc.prctl(15, "djl", 0, 0, 0)

# Définition des serveurs de mise à jours pour djl:
# Version de développement:
variables.SERVEUR_DEV = ["http://djl-linux.org/dev", "http://djl.jeuxlinux.fr/dev"]
# Version_stable
variables.SERVEUR_STABLE = ["http://djl-linux.org", "http://djl.jeuxlinux.fr", "http://djl.tuxfamily.org"]

# Serveur pour le téléchargement des librairies:
variables.SERVEUR_LIBRAIRIES = "http://djl-linux.org"
예제 #2
0
파일: djl_main.py 프로젝트: freemind/Djl
    def __init__(self, app):
        """Initialisation de djl."""
        QtGui.QMainWindow.__init__(self)
        self.app = app

        # print "Id X de djl:", self.winId()
        print ("Composition de l'affichage: " + str(QtGui.QX11Info.isCompositingManagerRunning()))

        # Configure l'interface utilisateur.
        self.setupUi(self)
        self.GestionThemes()

        if config(info=10) == "1":
            self.int_etendue = 1
        else:
            self.int_etendue = 0
        #        self.ech_fenetre() #Futur 1.2.13

        try:
            QtCore.QCoreApplication.setApplicationName("djl")
            QtCore.QCoreApplication.setApplicationVersion(str(interface.version()))
        except:
            pass

        # Affiche ou non l'icone dans la boite à miniatures suivant la configuration:
        if int(config(info=3)) == 1 and QtGui.QSystemTrayIcon.isSystemTrayAvailable():
            self.barre_icone()
            # Nombre d'ajouts dans le menu, sera incrémenté au fur et à mesure que l'on en ajoute dans le menu
            self.nb_menu_mini = 0
            self.Mapper = QtCore.QSignalMapper(self)  # Pour le sous-menu de lancement des jeux
            self.Mapper.connect(self.Mapper, QtCore.SIGNAL("mapped(int)"), self.lance_minitature)

        # On s'assure que le répertoire pour héberger le dépot existe:
        self.cree_reps()

        # Récupère la langue qui sera utilisé pour le WS ou le mini navigateur (pour envoyer des entrée)
        self.lang = config(info=9, sec=1)

        # Serveurs pour les mises à jours (en fonction du fait que l'on utilise ou non la version de développement
        if variables.version_dev == 1:
            self.serveur_maj = variables.SERVEUR_DEV[:]
        else:
            self.serveur_maj = variables.SERVEUR_STABLE[:]

        # On créé le dépot, soit depuis l'internet, soit depuis le fichier en dur
        self.SetupUi_Depot()
        self.methode_depot = 1  # Methode pour sauver et charger le depot (methode perso: 2, pickle: 1) #temp
        self.charge_depot()  # Utilise le mode automatique, si le dépot existe en dur, il est utilisé au lancement (plus rapide)
        #        self.connexion_SOAP() #Charge directement le dépot en ligne au démarrage (très lent)
        self.Thread_depot()  # Charge le dépot en ligne au démarrage (Dans un thread séparé, pour pas ralentir le lancement) #temp

        # Variable qui défini si l'on utilise l'interface étendu ou pas:
        if self.int_etendue == 1:
            # Va cherche les propriétés de la fenêtre principale (taille, position)
            self.readSettings()
        else:  # Si c'est l'interface minimale, on force l'utilisation d'une petite fenêtre
            taillex, tailley = 250, 400
            self.resize(
                QtCore.QSize(QtCore.QRect(800, 600, taillex, tailley).size()).expandedTo(self.minimumSizeHint())
            )
            # x, y = 1280, 1024-40 #Taille de l'écran
            # ecran = QtGui.QX11Info.appScreen()
            ##x, y = QtGui.QX11Info.appDpiX(ecran), QtGui.QX11Info.appDpiY(ecran)
            # print x, y
            ##print QtGui.QX11Info.display()
            # print QtGui.QDesktopWidget.numScreens()
            # self.move((QtCore.QVariant(QtCore.QPoint(x-taillex-5, y-tailley-5))).toPoint())

        #########################################
        # Liste des jeux:
        # Dès le démarrage, on vérifi si on peut écrire dans le répertoire de djl:
        variables.type_maj = 0
        try:
            open(os.getcwd() + "/test.tmp", "w")
            open(os.getcwd() + "/../test.tmp", "w")
        except IOError:
            variables.type_maj = 1

        try:
            os.remove(os.getcwd() + "/test.tmp")
            os.remove(os.getcwd() + "/../test.tmp")
        except OSError:
            variables.type_maj = 1

        if variables.type_maj == 1:
            self.action_maj.setEnabled(False)

            print _("Impossible d'ecrire dans le repertoire de djl, il ne sera donc pas mis a jour.")
            diff.ecrit_historique(_("Impossible d'ecrire dans le repertoire de djl, il ne sera donc pas mis a jour."))
            # print _("Impossible d'ecrire dans le repertoire de djl, la mise a jour sera installee dans ~/.djl/src")
            # diff.ecrit_historique(_("Impossible d'ecrire dans le repertoire de djl, la mise a jour sera installee dans ~/.djl/src"))

        # Défini si djl est lancé (afin de n'activer certaine fonctions qu'une seule fois après son lancement)
        self.djl_lance = 0

        # Variables pour bloquer l'interface principale après que l'on ai lancé un jeu, afin d'éviter que l'utilisateur lance (bétement) plusieurs fois le jeu si il met du temps à démarrer
        self.bloque_ui = 0
        self.boucle_bloque_ui = 0

        # Créé la liste des jeux installés
        # (sauf si l'onglet par défaut est le dépôt, car il rafraichira lui même la liste après avoir téléchargé les informations du dépôt).
        if config(info=5) != "2" or self.int_etendue == 0:
            self.liste_jeux_installe()

            # Le second les raccourcis .desktop standards
            self.liste_raccourcis()

        self.djl_lance = 1

        if self.int_etendue == 1:  # Si c'est l'interface étendue Future, djl 1.2.13, enlever la condition
            # Si passe à un, on fait clignoter l'icone du client IRC pour dire qu'il y a un message privé
            self.clignote_IRC = 0
            self.clignote_IRC_var = 0
            # Envoi l'affichage du client IRC
            self.setupUiIRC()
            # On init le client IRC
            self.init_IRC()

            # Envoi l'affichage du depot:
            # self.SetupUi_Depot()
            # Selectionne le premier jeu de la liste dans le dépot, sinon c'est le dernier ajouté par defaut.
            self.widget_liste_jeux.setCurrentRow(0)

            # Envoi l'affichage du gestionnnaire des modules:
            self.Init_modules()

            # Envoi l'affichage des flux RSS:
            self.SetupUi_RSS()
            # Demande le rafraichissement des flux RSS
            self.maj_RSS()

            # On se place dans l'onglet défini par l'utilisateur:
            self.tabWidget.setCurrentIndex(int(config(info=5)))
            # Endif//

        # Au démarrage, vire les éventuels fichiers indésirables, sinon djl peut bloquer:
        diff.supprime_fichier(config(info=2) + str(config(info=14)) + ".directory")

        # Vérifi au démarrage si une mise à jour est disponible suivant la configuration:
        # A condition que l'utilisateur ait les droits nécessaires:
        # if int(config(info=4)) == 1 and self.connecte_ws == 1 and variables.type_maj == 0:
        if int(config(info=4)) == 1 and variables.type_maj == 0:
            # La mise à jour se fera depuis la prochaine itération de la boucle self.timer
            self.t_maj = 1
        else:
            self.t_maj = 0

        variables.instance = self  # Ajoute l'intance de la classe principale de djl dans les variables.

        # Lance la boucle principale de djl.
        self.timer = QtCore.QBasicTimer()
        self.timer.start(200, self)
예제 #3
0
from installe import lance, msg_erreur, modif_etat, erreur_x11, installe
from variables import variables, home, dossier_racine

from config import config  # Lis le fichier de configuration
import diff  # Fonctions diverses utilisés par l'interface principale
import interface  # Dessin de l'interface principale
import i18n  # Récupère le texte sur le fichiers de traduction
import rss  # Agrégateur RSS
import depot  # Interface du dépot
import modules  # Gestionnaire de modules

# Envoi l'installation de l'internationalisation:
# i18n.i18n_init()

# Modifi le user-agent:
urllib.URLopener.version = "djl" + interface.version() + "/Linux"

# Change le nom du processus.
import ctypes
libc = ctypes.CDLL('libc.so.6')
libc.prctl(15, 'djl', 0, 0, 0)

# Définition des serveurs de mise à jours pour djl:
# Version de développement:
variables.SERVEUR_DEV = [
    "http://djl-linux.org/dev", "http://djl.jeuxlinux.fr/dev"
]
# Version_stable
variables.SERVEUR_STABLE = [
    "http://djl-linux.org", "http://djl.jeuxlinux.fr",
    "http://djl.tuxfamily.org"