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"
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)
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"