Ejemplo n.º 1
0
	def slot_ouvrir(__, start=False):
		if not start: __.archive = unicode(qt.QFileDialog.getOpenFileName(__, "Ouvrir archive", __.path*bool(not __.archive)+__.archive, "*.fuz"), "cp1252")
		__.Struct.Archive_name.setText(__.archive)
		if __.archive:
			__.archive_ind = ".".join(__.archive.split(".")[:-1]) + ".zid"
			type_ = int(file(__.archive, "r").read(1))

			__.Status_bar.showMessage("Indexation du contenu")
			if type_:
				if not file_exists(__.archive_ind):
					create_index_dir(__.archive)
				__.Status_bar.showMessage("Création de l'arborescence")
				__.arborescence = __.tri_arborescence(get_arborescence(file(__.archive, "rb")))

				__.show_dirs_in_dir(0, 1, False)
				__.show_files_in_dir(0)
				__.Struct.Name.setText(__.arborescence[0][0][0][-1])

			else:
				if not file_exists(__.archive_ind):
					create_index_file(__.archive)
					__.Status_bar.showMessage("Indexation terminée")
				__.Struct.Name.setText(".".join(get_name(__.archive).split(".")[:-1]))
				__.show_files()
			__.Status_bar.showMessage("Ouverture de l'archive terminée")
Ejemplo n.º 2
0
    def slot_ouvrir(__, start=False):
        if not start:
            __.archive = unicode(
                qt.QFileDialog.getOpenFileName(
                    __, "Ouvrir archive",
                    __.path * bool(not __.archive) + __.archive, "*.fuz"),
                "cp1252")
        __.Struct.Archive_name.setText(__.archive)
        if __.archive:
            __.archive_ind = ".".join(__.archive.split(".")[:-1]) + ".zid"
            type_ = int(file(__.archive, "r").read(1))

            __.Status_bar.showMessage("Indexation du contenu")
            if type_:
                if not file_exists(__.archive_ind):
                    create_index_dir(__.archive)
                __.Status_bar.showMessage("Création de l'arborescence")
                __.arborescence = __.tri_arborescence(
                    get_arborescence(file(__.archive, "rb")))

                __.show_dirs_in_dir(0, 1, False)
                __.show_files_in_dir(0)
                __.Struct.Name.setText(__.arborescence[0][0][0][-1])

            else:
                if not file_exists(__.archive_ind):
                    create_index_file(__.archive)
                    __.Status_bar.showMessage("Indexation terminée")
                __.Struct.Name.setText(".".join(
                    get_name(__.archive).split(".")[:-1]))
                __.show_files()
            __.Status_bar.showMessage("Ouverture de l'archive terminée")
Ejemplo n.º 3
0
 def slot_fusionner(__, fonction=fusion):
     __.Status_bar.showMessage("Fusion en cours")
     liste = []
     for i in range(__.Struct2.List_dossier.count()):
         liste.append(
             unicode(__.Struct2.List_dossier.item(i).text(), "cp1252")[:-1])
     for i in range(__.Struct2.List_fichier.count()):
         liste.append(
             unicode(__.Struct2.List_fichier.item(i).text(), "cp1252"))
     if liste:
         path = unicode(__.Path.text(), "cp1252")
         name = unicode(__.Struct2.Archive_name.text(), "cp1252")
         if path and name:
             if path[-1] != "/": path += "/"
             path += name
         elif path and not name:
             if path[-1] != "/": path += "/"
             path += get_name(liste[0])
         elif not path and name:
             path = get_path(liste[0]) + name
         else:
             if liste[0].count("."):
                 path = ".".join(liste[0].split(".")[:-1])
             else:
                 path = liste[0][:]
         if get_ext(path) != "fuz": path += ".fuz"
         fonction(liste, False, path)
     __.Status_bar.showMessage("Fusion terminée")
Ejemplo n.º 4
0
	def slot_extraire_all(__):
		if __.archive:
			__.Status_bar.showMessage("Defusion en cours")
			path  = unicode(__.Path.text(), "cp1252")
			if not path: path = get_path(__.archive)
			if __.Struct.Name.text() != get_name(__.archive)[ :  -4]: name = unicode(__.Struct.Name.text(), "cp1252")
			else: name = ""
			defusion(__.archive, False,False,path+name)
			__.Status_bar.showMessage("Defusion terminée")
		else: __.Status_bar.showMessage("Aucune archive ouverte")
Ejemplo n.º 5
0
 def slot_extraire_all(__):
     if __.archive:
         __.Status_bar.showMessage("Defusion en cours")
         path = unicode(__.Path.text(), "cp1252")
         if not path: path = get_path(__.archive)
         if __.Struct.Name.text() != get_name(__.archive)[:-4]:
             name = unicode(__.Struct.Name.text(), "cp1252")
         else:
             name = ""
         defusion(__.archive, False, False, path + name)
         __.Status_bar.showMessage("Defusion terminée")
     else:
         __.Status_bar.showMessage("Aucune archive ouverte")
Ejemplo n.º 6
0
 def get_contenu(__, index_dir):
     liste_contenu = []
     fichier = file(__.archive_ind, "rb")
     fichier.read(1)
     nbr_c = base_int(fichier.read(1))
     fichier.read(1)
     arborescence = get_arborescence(file(__.archive, "rb"))
     num_dossier = base_int(fichier.read(nbr_c))
     nbr_fichier = base_int(fichier.readline()[:-1], 254)
     while num_dossier != index_dir:
         for i in range(nbr_fichier * 3):
             fichier.readline()
         num_dossier = base_int(fichier.read(nbr_c))
         nbr_fichier = base_int(fichier.readline()[:-1], 254)
     liste_contenu.append([arborescence[0][num_dossier], []])
     liste_fichier = []
     for i in range(nbr_fichier):
         nom = fichier.readline()[:-1]
         start = base_int(fichier.readline()[:-1], 254)
         stop = base_int(fichier.readline()[:-1], 254)
         liste_contenu[-1][1].append([nom, start, stop])
     dossier = arborescence[0][base_int(
         fichier.read(nbr_c))][:-1].split("/")
     nbr_fichier = base_int(fichier.readline()[:-1], 254)
     lim = len(liste_contenu[0][0])
     path = get_path(__.archive)
     lim_start = len(path)
     index_slash = len(liste_contenu[0][0][:-1].split("/")) - 1
     name = get_name(liste_contenu[0][0][:-1])
     liste_contenu[0][0] = path + name
     lim_end = lim_start + lim
     while dossier[index_slash] == name:
         liste_contenu.append([path + "/".join(dossier[index_slash:]), []])
         for i in range(nbr_fichier):
             nom = fichier.readline()[:-1]
             start = base_int(fichier.readline()[:-1], 254)
             stop = base_int(fichier.readline()[:-1], 254)
             liste_contenu[-1][1].append([nom, start, stop])
         dossier = arborescence[0][base_int(
             fichier.read(nbr_c))][:-1].split("/")
         if len(dossier) <= index_slash: break
         nbr_fichier = base_int(fichier.readline()[:-1], 254)
     return liste_contenu
Ejemplo n.º 7
0
	def get_contenu(__, index_dir):
		liste_contenu = []
		fichier = file(__.archive_ind, "rb")
		fichier.read(1)
		nbr_c = base_int(fichier.read(1))
		fichier.read(1)
		arborescence = get_arborescence(file(__.archive, "rb"))
		num_dossier = base_int(fichier.read(nbr_c))
		nbr_fichier = base_int(fichier.readline()[:-1], 254)
		while num_dossier != index_dir:
			for i in range(nbr_fichier * 3): fichier.readline()
			num_dossier = base_int(fichier.read(nbr_c))
			nbr_fichier = base_int(fichier.readline()[:-1], 254)
		liste_contenu.append([arborescence[0][num_dossier], []])
		liste_fichier = []
		for i in range(nbr_fichier):
			nom = fichier.readline()[:-1]
			start = base_int(fichier.readline()[:-1], 254)
			stop = base_int(fichier.readline()[:-1], 254)
			liste_contenu[-1][1].append([nom, start, stop])
		dossier = arborescence[0][base_int(fichier.read(nbr_c))][:-1].split("/")
		nbr_fichier = base_int(fichier.readline()[:-1], 254)
		lim = len(liste_contenu[0][0])
		path = get_path(__.archive)
		lim_start = len(path)
		index_slash = len(liste_contenu[0][0][:-1].split("/")) - 1
		name = get_name(liste_contenu[0][0][:-1])
		liste_contenu[0][0] = path + name
		lim_end = lim_start + lim
		while dossier[index_slash] == name:
			liste_contenu.append([path + "/".join(dossier[index_slash:]), []])
			for i in range(nbr_fichier):
				nom = fichier.readline()[:-1]
				start = base_int(fichier.readline()[:-1], 254)
				stop = base_int(fichier.readline()[:-1], 254)
				liste_contenu[-1][1].append([nom, start, stop])
			dossier = arborescence[0][base_int(fichier.read(nbr_c))][:-1].split("/")
			if len(dossier) <= index_slash: break
			nbr_fichier = base_int(fichier.readline()[:-1], 254)
		return liste_contenu
Ejemplo n.º 8
0
	def slot_fusionner(__, fonction=fusion):
		__.Status_bar.showMessage("Fusion en cours")
		liste = []
		for i in range(__.Struct2.List_dossier.count()): liste.append(unicode(__.Struct2.List_dossier.item(i).text(), "cp1252")[:-1])
		for i in range(__.Struct2.List_fichier.count()): liste.append(unicode(__.Struct2.List_fichier.item(i).text(), "cp1252"))
		if liste:
			path = unicode(__.Path.text(), "cp1252")
			name = unicode(__.Struct2.Archive_name.text(), "cp1252")
			if path and name:
				if path[-1] != "/": path += "/"
				path += name
			elif path and not name:
				if path[-1] != "/": path += "/"
				path += get_name(liste[0])
			elif not path and name:
				path = get_path(liste[0]) + name
			else:
				if liste[0].count("."): path = ".".join(liste[0].split(".")[:-1])
				else: path = liste[0][:]
			if get_ext(path) != "fuz": path += ".fuz"
			fonction(liste, False, path)
		__.Status_bar.showMessage("Fusion terminée")