File: deleteDialog.py

package info (click to toggle)
snapper-gui 0git.960a94834f-3
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 260 kB
  • sloc: python: 728; makefile: 4
file content (61 lines) | stat: -rw-r--r-- 2,564 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
from snappergui import snapper
import pkg_resources
from gi.repository import Gtk
from pwd import getpwuid


class deleteDialog(object):
    """docstring for deleteDialog"""
    def __init__(self, parent, config, snapshots):
        super(deleteDialog, self).__init__()
        builder = Gtk.Builder()
        builder.add_from_file(pkg_resources.resource_filename("snappergui",
                                                              "glade/deleteSnapshot.glade"))

        self.dialog = builder.get_object("dialogDelete")
        self.dialog.set_transient_for(parent)
        self.deletetreeview = builder.get_object("deletetreeview")
        builder.connect_signals(self)

        self.snapshots_list = snapshots
        self.to_delete = snapshots

        parents = []
        self.deleteTreeStore = Gtk.TreeStore(bool, int, str,  str)
        for snapshot in snapshots:
            snapinfo = snapper.GetSnapshot(config,snapshot)
            #self.deleteTreeStore.append(self.get_row(snapinfo))
            if (snapinfo[1] == 1): # Pre Snapshot
                parents.append(self.deleteTreeStore.append(None, self.get_row(snapinfo)))
            elif (snapinfo[1] == 2): # Post snappshot
                parent_node = None
                for parent in parents:
                    if (self.deleteTreeStore.get_value(parent, 1) == snapinfo[2]):
                        parent_node = parent
                        break
                self.deleteTreeStore.append(parent_node, )
            else:  # Single snapshot
                self.deleteTreeStore.append(None , self.get_row(snapinfo))
        self.deletetreeview.set_model(self.deleteTreeStore)
        self.deletetreeview.expand_all()

    def get_row(self, snapshot):
        return [True, snapshot[0], getpwuid(snapshot[4])[0], snapshot[5]]

    def run(self):
        response = self.dialog.run()
        self.dialog.destroy()
        return response

    def on_toggle_delete_snapshot(self,widget,path):
        treeiter = self.deleteTreeStore.get_iter(path)
        self.deleteTreeStore.set_value(treeiter,
                                       False,
                                       not(self.deleteTreeStore.get_value(treeiter, False)))
        snapshot_num = self.deleteTreeStore.get_value(treeiter, True)
        if self.deleteTreeStore.get_value(treeiter,False):
            if snapshot_num not in self.to_delete:
                self.to_delete.append(snapshot_num)
        else:
            if snapshot_num in self.to_delete:
                self.to_delete.remove(snapshot_num)