Example #1
0
    def on_partition_list_delete_activate(self, button):
        selection = self.partition_list.get_selection()

        if not selection:
            return

        model, tree_iter = selection.get_selected()

        if tree_iter == None:
            return

        # No es pot crear una taula de particions nova quan hi ha
        # particions actives.  Les particions actives són aquelles
        # que s'estan utilitzant, com ara un sistema de fitxers muntat
        # o un espai d'intercanvi habilitat.
        # Utilitzeu les opcions del menú Partició, com ara «Desmunta»
        # o «Partició d'intercanvi inactiva», per desactivar totes
        # les particions d'aquest dispositiu abans de crear una taula
        # de particions nova.

        parent_iter = model.iter_parent(tree_iter)

        part_type = model[tree_iter][10]

        if part_type == pm.PARTITION_LOGICAL:
            parent_iter = model.iter_parent(parent_iter)

        disk_path = model[parent_iter][0]

        logical_partition = False

        row = model[tree_iter]

        size_available = row[6]
        partition_path = row[8]

        print("You will delete from disk [%s] partition [%s]" % (disk_path, partition_path))

        if self.disks == None:
            # just call get_devices once
            self.disks = pm.get_devices()

        disk = self.disks[disk_path]

        partitions = pm.get_partitions(disk)

        part = partitions[partition_path]

        if pm.check_mounted(part):
            # Should we ask first?
            subp = subprocess.Popen(["umount", part.path], stdout=subprocess.PIPE)

        # Is it worth to show some warning message here?
        pm.delete_partition(disk, part)

        # Update treeview
        self.fill_partition_list()