def __init__(self, parent, DVDDEVICE): 
       self.dvdpickui = Gtk.Builder()
       self.dvdpickui.add_from_file("transmageddon-dvdtrack-chooser.ui")
       dvdscroll = self.dvdpickui.get_object("dvdscroll")
       cancelbutton = self.dvdpickui.get_object("cancelbutton")
       selectbutton = self.dvdpickui.get_object("selectbutton")

       self.cachedir=GLib.get_user_cache_dir()+"/transmageddon"
       CheckDir = os.path.isdir(self.cachedir)
       if CheckDir == (False):
           os.mkdir(self.cachedir)
       sys.path.append(self.cachedir)

       self.dvdpickui.connect_signals(self) # Initialize User Interface
       self.dvdtrack=None # this will hold the selected DVD track value
       self.isdvd=False
       self.dvdtitle=False
       self.dvdpath=DVDDEVICE

       store = Gtk.ListStore(str, int)

       # use lsdvd tool to get DVD track information
       self.Title = False
       self.Tracks = False
       self.dvdread(self.dvdpath)
       scounter=0
       longesttime = 0
       self.listoftracks=[]
       languages=[]
       while scounter < len(self.Tracks):
           tcounter=0
           language=""
           langcodes=[]
           self.ix=int(self.Tracks[scounter]['ix'])
           while tcounter <  len(self.Tracks[scounter]['audio']):
               if self.Tracks[scounter]['audio']:
                   if GstTag.tag_check_language_code(self.Tracks[scounter]['audio'][tcounter]['langcode']):
                       if self.Tracks[scounter]['audio'][tcounter]['langcode'] not in langcodes:
                           langcodes.append(self.Tracks[scounter]['audio'][tcounter]['langcode'])
                           language=language + GstTag.tag_get_language_name(self.Tracks[scounter]['audio'][tcounter]['langcode']) + ", "
               tcounter=tcounter+1

           languages.append(language)
           
           # create a string to push into the listview
           self.listoftracks.append(_("Title:") + " " + str(scounter) + ", " + _("Languages:") + " " + languages[scounter] + " " + _("Length:") + " " + str(round((self.Tracks[scounter]['length']/60), 2)) + " " + _("Minutes"))
           scounter=scounter+1

       x=1
       for act in self.listoftracks:
           store.append([act,x])
           x=x+1
                           
       self.dvdtrackview = Gtk.TreeView(store)
       self.dvdtrackview.set_reorderable(False)
       self.dvdtrackview.set_headers_visible(False)

       dvdscroll.add(self.dvdtrackview)
       self.create_columns(self.dvdtrackview)        
       self.dvdwindow = self.dvdpickui.get_object("dvdpickui")
       self.dvdwindow.set_modal(True)
       self.dvdwindow.set_transient_for(parent)

       self.dvdwindow.show_all()
Beispiel #2
0
    def __init__(self, parent, DVDDEVICE):
        self.dvdpickui = Gtk.Builder()
        self.dvdpickui.add_from_file("transmageddon-dvdtrack-chooser.ui")
        dvdscroll = self.dvdpickui.get_object("dvdscroll")
        cancelbutton = self.dvdpickui.get_object("cancelbutton")
        selectbutton = self.dvdpickui.get_object("selectbutton")

        self.cachedir = GLib.get_user_cache_dir() + "/transmageddon"
        CheckDir = os.path.isdir(self.cachedir)
        if CheckDir == (False):
            os.mkdir(self.cachedir)
        sys.path.append(self.cachedir)

        self.dvdpickui.connect_signals(self)  # Initialize User Interface
        self.dvdtrack = None  # this will hold the selected DVD track value
        self.isdvd = False
        self.dvdtitle = False
        self.dvdpath = DVDDEVICE

        store = Gtk.ListStore(str, int)

        # use lsdvd tool to get DVD track information
        self.Title = False
        self.Tracks = False
        self.dvdread(self.dvdpath)
        scounter = 0
        longesttime = 0
        self.listoftracks = []
        languages = []
        while scounter < len(self.Tracks):
            tcounter = 0
            language = ""
            langcodes = []
            self.ix = int(self.Tracks[scounter]['ix'])
            while tcounter < len(self.Tracks[scounter]['audio']):
                if self.Tracks[scounter]['audio']:
                    if GstTag.tag_check_language_code(
                            self.Tracks[scounter]['audio'][tcounter]
                        ['langcode']):
                        if self.Tracks[scounter]['audio'][tcounter][
                                'langcode'] not in langcodes:
                            langcodes.append(self.Tracks[scounter]['audio']
                                             [tcounter]['langcode'])
                            language = language + GstTag.tag_get_language_name(
                                self.Tracks[scounter]['audio'][tcounter]
                                ['langcode']) + ", "
                tcounter = tcounter + 1

            languages.append(language)

            # create a string to push into the listview
            minutes = round((self.Tracks[scounter]['length'] / 60), 2)
            self.listoftracks.append(
                _("Title:") + " " + str(scounter) + ", " + _("Languages:") +
                " " + languages[scounter] + " " + _("Length:") + " " +
                str(minutes) + " " +
                gettext.ngettext("Minute", "Minutes", minutes))
            scounter = scounter + 1

        x = 1
        for act in self.listoftracks:
            store.append([act, x])
            x = x + 1

        self.dvdtrackview = Gtk.TreeView(store)
        self.dvdtrackview.set_reorderable(False)
        self.dvdtrackview.set_headers_visible(False)

        dvdscroll.add(self.dvdtrackview)
        self.create_columns(self.dvdtrackview)
        self.dvdwindow = self.dvdpickui.get_object("dvdpickui")
        self.dvdwindow.set_modal(True)
        self.dvdwindow.set_transient_for(parent)

        self.dvdwindow.show_all()