Beispiel #1
0
    def __init__(self, parent=None, width=None, height=None, tester=False):
        """If tester is active, edition cappabilities are available"""
        if not parent:
            parent = context.get_mainwindow()
        size = context.get_mainwindow().get_size()
        width = int(size[0] / 2.2)
        height = int(size[1] / 2.0)
        hprop = size[1] / 1080.0
        gtk.Window.__init__(self)
        self.set_transient_for(parent)
        self.set_destroy_with_parent(True)
        self.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_TOOLBAR)
        self.set_title("Profile Selector")
        self.set_position(gtk.WIN_POS_CENTER_ALWAYS)
        self.set_default_size(width, height)
        self.set_skip_taskbar_hint(True)
        self.set_keep_above(True)

        strip = Header(size=size, title="Profile Selector")

        self.notebook = gtk.Notebook()
        self.notebook.set_show_tabs(False)

        box = gtk.VBox()
        box.pack_start(strip, False, False, int(0))
        strip.show()
        box.pack_start(self.notebook, True, True, 0)
        self.add(box)
        self.list = ListProfileBox(self, size, tester)
        self.profile = None
        self.track = None

        tab1 = gtk.Label("Profile Selector")
        self.append_tab(self.list, tab1)
        self.show_all()
Beispiel #2
0
    def __init__(self, parent=None, width = None, height=None, tester=False):
        """If tester is active, edition cappabilities are available"""
        if not parent:
            parent = context.get_mainwindow()
        size = context.get_mainwindow().get_size()
        width = int(size[0]/2.2)
        height = int(size[1]/2.0)
        hprop = size[1]/1080.0
        gtk.Window.__init__(self)
        self.set_transient_for(parent)
        self.set_destroy_with_parent(True)
        self.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_TOOLBAR)
        self.set_title("Profile Selector")
        self.set_position(gtk.WIN_POS_CENTER_ALWAYS)
        self.set_default_size(width,height)
        self.set_skip_taskbar_hint(True)
        self.set_keep_above(True)

        strip = Header(size=size,title="Profile Selector")

        self.notebook = gtk.Notebook()
        self.notebook.set_show_tabs(False)

        box = gtk.VBox()
        box.pack_start(strip, False, False, int(0))
        strip.show()
        box.pack_start(self.notebook, True, True, 0)
        self.add(box)        
        self.list=ListProfileBox(self, size, tester)
        self.profile=None
        self.track=None       

        tab1 = gtk.Label("Profile Selector")
        self.append_tab(self.list,tab1)
        self.show_all()
Beispiel #3
0
    def __init__(self,package = None, parent = None):

        parent = context.get_mainwindow()
        size = parent.get_size()
            
        self.par = parent
        altura = size[1]
        anchura = size[0]        
        k1 = anchura / 1920.0                                      
        k2 = altura / 1080.0
        self.wprop = k1
        self.hprop = k2

        gui = gtk.Builder()
        gui.add_from_file(get_ui_path('metadata.glade'))

        dialog = gui.get_object("metadatadialog")
        dialog.set_property("width-request",int(anchura/2.2))
        dialog.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_SPLASHSCREEN)
        dialog.set_keep_above(True)

        #NEW HEADER
        strip = Header(size=size, title="Edit Metadata")
        dialog.vbox.pack_start(strip, True, True, 0)
        dialog.vbox.reorder_child(strip,0)
        strip.show()

        if parent != None:
            dialog.set_transient_for(parent.get_toplevel())

        
        table = gui.get_object('infobox')
        dialog.vbox.set_child_packing(table, True, True, int(self.hprop*25), gtk.PACK_END)    
        title = gui.get_object('title')
        sl = gui.get_object('slabel')
        cl = gui.get_object('clabel')
        talign = gui.get_object('table_align')

        modification = "bold "+str(int(k2*25))+"px"        
        title.modify_font(pango.FontDescription(modification))
        title.hide()
        talign.set_padding(int(k2*40),int(k2*40),0,0)
        mod2 = str(int(k1*35))+"px"        
        sl.modify_font(pango.FontDescription(mod2))
        cl.modify_font(pango.FontDescription(mod2))


        self.fill_metadata(table, package)
        talign.set_padding(int(self.hprop*25), int(self.hprop*10), int(self.hprop*25), int(self.hprop*25))
        dialog.vbox.set_child_packing(dialog.action_area, True, True, int(self.hprop*25), gtk.PACK_END)   

        # Close Metadata dialog and update
        if dialog.run() == -8:
            self.update_metadata(table,package)

        dialog.destroy()
Beispiel #4
0
     def __init__(self, parent=None):
         if not parent:
             parent = context.get_mainwindow()
         Gtk.AboutDialog.__init__(self)
#         GObject.GObject.__init__(self)
         if parent:
             self.set_transient_for(parent)
         
         size=context.get_mainwindow().get_size()
         k = size[0]/1920.0
         self.set_resizable(True)
         self.set_default_size(int(0.3*size[0]),int(0.4*size[1]))
         self.set_title(_("About Galicaster {version}").format(version = __version__))
         
         strip = Header(size=size, title=_("About"))
         self.vbox.pack_start(strip, False, True, 0)
         self.vbox.reorder_child(strip,0)
         strip.show()
         self.set_type_hint(Gdk.WindowTypeHint.TOOLBAR)
         
         #self.set_decorated(True)
         self.set_position(Gtk.WindowPosition.CENTER_ON_PARENT)

         self.set_program_name(PROGRAM)
         self.set_version(__version__)
         self.set_website(WEB)
         self.set_website_label(_("Galicaster Website"))
         self.set_authors(AUTHORS)
         self.set_documenters(DOCS)
         self.set_artists(ARTISTS)
         self.set_copyright(COPY)
         self.set_license(LICENSE)
         pixbuf = GdkPixbuf.Pixbuf.new_from_file(get_image_path('logo.svg')) 
         pixbuf = pixbuf.scale_simple(
              int(pixbuf.get_width()*k),
              int(pixbuf.get_height()*k),
              GdkPixbuf.InterpType.BILINEAR)

         #self.set_logo(pixbuf)

         #ADD TELTEK LOGO
         box=self.get_content_area()
         company_logo=Gtk.Image()
         pixbuf = GdkPixbuf.Pixbuf.new_from_file(get_image_path('teltek.svg')) 
         pixbuf = pixbuf.scale_simple(
              int(pixbuf.get_width()*k),
              int(pixbuf.get_height()*k),
            GdkPixbuf.InterpType.BILINEAR)

         company_logo.set_from_pixbuf(pixbuf)

         box.pack_end(company_logo,True,True,0)
         company_logo.show()
Beispiel #5
0
    def __init__(self, parent=None):
        if not parent:
            parent = context.get_mainwindow()
        gtk.AboutDialog.__init__(self)
        if parent:
            self.set_transient_for(parent)

        size = context.get_mainwindow().get_size()
        k = size[0] / 1920.0
        self.set_resizable(True)
        self.set_default_size(int(0.3 * size[0]), int(0.4 * size[1]))
        self.set_title(
            _("About Galicaster {version}").format(version=__version__))

        strip = Header(size=size, title=_("About"))
        self.vbox.pack_start(strip, False, True, 0)
        self.vbox.reorder_child(strip, 0)
        strip.show()
        self.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_TOOLBAR)

        #self.set_decorated(True)
        self.set_position(gtk.WIN_POS_CENTER_ON_PARENT)

        self.set_program_name(PROGRAM)
        self.set_version(__version__)
        self.set_website(WEB)
        self.set_website_label(_("Galicaster Website"))
        self.set_authors(AUTHORS)
        self.set_documenters(DOCS)
        self.set_artists(ARTISTS)
        self.set_copyright(COPY)
        self.set_license(LICENSE)
        pixbuf = gtk.gdk.pixbuf_new_from_file(get_image_path('logo.svg'))
        pixbuf = pixbuf.scale_simple(int(pixbuf.get_width() * k),
                                     int(pixbuf.get_height() * k),
                                     gtk.gdk.INTERP_BILINEAR)

        #self.set_logo(pixbuf)

        #ADD TELTEK LOGO
        box = self.get_content_area()
        company_logo = gtk.Image()
        pixbuf = gtk.gdk.pixbuf_new_from_file(get_image_path('teltek.svg'))
        pixbuf = pixbuf.scale_simple(int(pixbuf.get_width() * k),
                                     int(pixbuf.get_height() * k),
                                     gtk.gdk.INTERP_BILINEAR)

        company_logo.set_from_pixbuf(pixbuf)

        box.pack_end(company_logo, True, True, 0)
        company_logo.show()
Beispiel #6
0
    def __init__(self, package=None, parent=None):

        parent = context.get_mainwindow()
        size = parent.get_size()

        self.par = parent
        altura = size[1]
        anchura = size[0]
        k1 = anchura / 1920.0
        k2 = altura / 1080.0
        self.wprop = k1
        self.hprop = k2

        gui = gtk.Builder()
        gui.add_from_file(get_ui_path('metadata.glade'))

        dialog = gui.get_object("metadatadialog")
        dialog.set_property("width-request", int(anchura / 2.2))
        dialog.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_TOOLBAR)
        dialog.set_keep_above(True)

        #NEW HEADER
        strip = Header(size=size, title="Edit Metadata")
        dialog.vbox.pack_start(strip, True, True, 0)
        dialog.vbox.reorder_child(strip, 0)

        if parent != None:
            dialog.set_transient_for(parent.get_toplevel())

        table = gui.get_object('infobox')
        dialog.vbox.set_child_packing(table, True, True, int(self.hprop * 25),
                                      gtk.PACK_END)
        title = gui.get_object('title')
        sl = gui.get_object('slabel')
        cl = gui.get_object('clabel')
        talign = gui.get_object('table_align')

        modification = "bold " + str(int(k2 * 25)) + "px"
        title.modify_font(pango.FontDescription(modification))
        title.hide()
        talign.set_padding(int(k2 * 40), int(k2 * 40), 0, 0)
        mod2 = str(int(k1 * 35)) + "px"
        sl.modify_font(pango.FontDescription(mod2))
        cl.modify_font(pango.FontDescription(mod2))

        self.fill_metadata(table, package)
        talign.set_padding(int(self.hprop * 25), int(self.hprop * 10),
                           int(self.hprop * 25), int(self.hprop * 25))
        dialog.vbox.set_child_packing(dialog.action_area, True, True,
                                      int(self.hprop * 25), gtk.PACK_END)
        dialog.show_all()

        return_value = dialog.run()
        if return_value == -8:
            self.update_metadata(table, package)
        dialog.destroy()
Beispiel #7
0
    def __init__(self, parent=None, width=None, height=None):
        if not parent:
            parent = context.get_mainwindow()
        size = context.get_mainwindow().get_size()
        width = int(size[0] / 2.2)
        height = int(size[1] / 2.0)
        Gtk.Window.__init__(self, type=Gtk.WindowType.POPUP)
        self.set_transient_for(parent)
        self.set_destroy_with_parent(True)
        self.set_type_hint(Gdk.WindowTypeHint.TOOLBAR)
        self.set_title(_("Profile Selector"))
        self.set_position(Gtk.WindowPosition.CENTER_ALWAYS)
        self.set_default_size(width, height)
        self.set_skip_taskbar_hint(True)
        self.set_modal(True)
        self.set_keep_above(False)
        self.parent = parent

        strip = Header(size=size, title=_("Profile Selector"))

        self.notebook = Gtk.Notebook()
        self.notebook.set_show_tabs(False)

        box = Gtk.VBox()
        box.pack_start(strip, False, False, int(0))
        strip.show()
        box.pack_start(self.notebook, True, True, 0)
        self.add(box)
        self.list = ListProfileBox(self, size)
        self.profile = None
        self.track = None

        tab1 = Gtk.Label(label=_("Profile Selector"))
        self.append_tab(self.list, tab1)
        parent.get_style_context().add_class('shaded')
        self.show_all()
        self.present()
    def __init__(self, parent=None, width = None, height=None):
        if not parent:
            parent = context.get_mainwindow()
        size = context.get_mainwindow().get_size()
        width = int(size[0]/2.2)
        height = int(size[1]/2.0)
        Gtk.Window.__init__(self, type=Gtk.WindowType.POPUP)
        self.set_transient_for(parent)
        self.set_destroy_with_parent(True)
        self.set_type_hint(Gdk.WindowTypeHint.TOOLBAR)
        self.set_title(_("Profile Selector"))
        self.set_position(Gtk.WindowPosition.CENTER_ALWAYS)
        self.set_default_size(width,height)
        self.set_skip_taskbar_hint(True)
        self.set_modal(True)
        self.set_keep_above(False)
        self.parent = parent

        strip = Header(size=size,title=_("Profile Selector"))

        self.notebook = Gtk.Notebook()
        self.notebook.set_show_tabs(False)

        box = Gtk.VBox()
        box.pack_start(strip, False, False, int(0))
        strip.show()
        box.pack_start(self.notebook, True, True, 0)
        self.add(box)
        self.list=ListProfileBox(self, size)
        self.profile=None
        self.track=None

        tab1 = Gtk.Label(label=_("Profile Selector"))
        self.append_tab(self.list,tab1)
        parent.get_style_context().add_class('shaded')
        self.show_all()
        self.present()
Beispiel #9
0
    def __init__(self, number = None,): 

        if number == None:
            number = HOW_MANY
        
        parent = context.get_mainwindow()
        size = parent.get_size()

        altura = size[1]
        anchura = size[0]
        
        k1 = anchura / 1920.0                                      
        k2 = altura / 1080.0

        gui = gtk.Builder()
        gui.add_from_file(get_ui_path('next.glade'))
        dialog = gui.get_object("dialog")
        table = gui.get_object("infobox")
        title = gui.get_object("titlelabel")
        okl = gui.get_object("oklabel")
        okb = gui.get_object("okbutton")

        width = int(size[0]/2.5)
        dialog.set_default_size(width,-1)
        dialog.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_TOOLBAR)
        dialog.set_skip_taskbar_hint(True)
        dialog.set_modal(True)
        dialog.set_keep_above(False)

        strip = Header(size=size, title=_("Next Recordings"))
        title.hide()

        dialog.vbox.pack_start(strip, False, True, 0)
        dialog.vbox.reorder_child(strip,0)
        strip.show()

        modification = "bold "+str(int(k2*30))+"px"
        title.modify_font(pango.FontDescription(modification))        
        okl.modify_font(pango.FontDescription(modification))

        # mediapackages
        mps=context.get_repository().get_next_mediapackages()
        row=1

        self.dialog=dialog
        if parent != None:
            dialog.set_transient_for(parent.get_toplevel())

                                        
        for mp in mps:           
            t = self.big_label(mp.title, int(k1*30))
            t.set_width_chars(int(k1*50))
            t.set_line_wrap(True)
            # allocation = t.get_allocation()
            t.set_size_request( int(k1* 400) , -1 ) # FIXEME
            #Hack by http://tadeboro.blogspot.com/2009/05/wrapping-adn-resizing-gtklabel.html

            rec_time = mp.getLocalDate()
            if rec_time.date() == datetime.date.today():
                upcoming = "Today"
            elif rec_time.date() == ( datetime.date.today()+datetime.timedelta(1) ):
                upcoming = "Tomorrow"
            else:
                upcoming = mp.getDate().strftime("%d %b %Y") 
                # day_number month_abr year full
                
            d = self.big_label(upcoming,int(k1*30))
            d.set_width_chars(20)

            h = self.big_label(rec_time.time().strftime("%H:%M"),int(k1*30))
            h.set_width_chars(12) 

            #l = self.big_label("Record Now", int(k1*30))

            b = gtk.Button(_("Record Now"))
            l = b.get_child()
            tamanho = pango.FontDescription(str(int(k1*25))+"px")
            l.modify_font(tamanho)
            b.set_alignment(0.5,0.5)
            b.set_property("tooltip-text",_("Record Now"))
            b.connect("button-press-event",self.send_start, mp.identifier)
            b.set_property("width-request", int (k1*180))
            b.set_property("height-request", int (k2*70))

            table.attach(t,0,1,row-1,row,gtk.EXPAND|gtk.FILL,False,0,0)
            table.attach(d,1,2,row-1,row,gtk.EXPAND|gtk.FILL,False,0,0)
            table.attach(h,2,3,row-1,row,gtk.EXPAND|gtk.FILL,False,0,0)
            table.attach(b,3,4,row-1,row,gtk.EXPAND|gtk.FILL,False,0,0)
            t.show()
            h.show()
            d.show()
            b.show()
            row += 1
            if row >= number+1 :
                break  

        okb.connect("button-press-event",self.destroy)
        dialog.run()

        return None
Beispiel #10
0
    def __init__(
        self,
        number=None,
    ):

        if number == None:
            number = HOW_MANY

        parent = context.get_mainwindow()
        size = parent.get_size()

        altura = size[1]
        anchura = size[0]

        k1 = anchura / 1920.0
        k2 = altura / 1080.0

        gui = gtk.Builder()
        gui.add_from_file(get_ui_path('next.glade'))
        dialog = gui.get_object("dialog")
        table = gui.get_object("infobox")
        title = gui.get_object("titlelabel")
        okl = gui.get_object("oklabel")
        okb = gui.get_object("okbutton")

        width = int(size[0] / 2.5)
        dialog.set_default_size(width, -1)
        dialog.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_TOOLBAR)
        dialog.set_skip_taskbar_hint(True)
        dialog.set_modal(True)
        dialog.set_keep_above(True)

        strip = Header(size=size, title="Next Recordings")
        title.hide()

        dialog.vbox.pack_start(strip, False, True, 0)
        dialog.vbox.reorder_child(strip, 0)
        strip.show()

        modification = "bold " + str(int(k2 * 30)) + "px"
        title.modify_font(pango.FontDescription(modification))
        okl.modify_font(pango.FontDescription(modification))

        # mediapackages
        mps = context.get_repository().get_next_mediapackages()
        row = 1

        self.dialog = dialog
        if parent != None:
            dialog.set_transient_for(parent.get_toplevel())

        for mp in mps:
            t = self.big_label(mp.title, int(k1 * 30))
            t.set_width_chars(int(k1 * 50))
            t.set_line_wrap(True)
            # allocation = t.get_allocation()
            t.set_size_request(int(k1 * 400), -1)  # FIXEME
            #Hack by http://tadeboro.blogspot.com/2009/05/wrapping-adn-resizing-gtklabel.html

            rec_time = mp.getLocalDate()
            if rec_time.date() == datetime.date.today():
                upcoming = "Today"
            elif rec_time.date() == (datetime.date.today() +
                                     datetime.timedelta(1)):
                upcoming = "Tomorrow"
            else:
                upcoming = mp.getDate().strftime("%d %b %Y")
                # day_number month_abr year full

            d = self.big_label(upcoming, int(k1 * 30))
            d.set_width_chars(20)

            h = self.big_label(rec_time.time().strftime("%H:%M"), int(k1 * 30))
            h.set_width_chars(12)

            #l = self.big_label("Record Now", int(k1*30))

            b = gtk.Button("Record Now")
            l = b.get_child()
            tamanho = pango.FontDescription(str(int(k1 * 25)) + "px")
            l.modify_font(tamanho)
            b.set_alignment(0.5, 0.5)
            b.set_property("tooltip-text", "Record Now")
            b.connect("button-press-event", self.send_start, mp.identifier)
            b.set_property("width-request", int(k1 * 180))
            b.set_property("height-request", int(k2 * 70))

            table.attach(t, 0, 1, row - 1, row, gtk.EXPAND | gtk.FILL, False,
                         0, 0)
            table.attach(d, 1, 2, row - 1, row, gtk.EXPAND | gtk.FILL, False,
                         0, 0)
            table.attach(h, 2, 3, row - 1, row, gtk.EXPAND | gtk.FILL, False,
                         0, 0)
            table.attach(b, 3, 4, row - 1, row, gtk.EXPAND | gtk.FILL, False,
                         0, 0)
            t.show()
            h.show()
            d.show()
            b.show()
            row += 1
            if row >= number + 1:
                break

        okb.connect("button-press-event", self.destroy)

        dialog.run()

        return None
Beispiel #11
0
    def __init__(self,
                 package=None,
                 parent=None,
                 title=_("Edit Metadata"),
                 subtitle=_("Edit Metadata"),
                 ok_label=_("Save"),
                 ko_label=_("Cancel"),
                 empty_series_label=NO_SERIES):
        """
        """

        parent = context.get_mainwindow()
        size = parent.get_size()

        self.par = parent
        altura = size[1]
        anchura = size[0]
        k1 = anchura / 1920.0
        k2 = altura / 1080.0
        self.wprop = k1
        self.hprop = k2

        ocservice = context.get_ocservice()
        self.series_list = []
        if ocservice:
            self.series_list = context.get_ocservice().series

        self.empty_series_label = empty_series_label

        gui = Gtk.Builder()
        gui.add_from_file(get_ui_path('metadata.glade'))

        dialog = gui.get_object("metadatadialog")

        # Set up the dialog's label
        gui.get_object("title").set_text(subtitle)

        # Set up the button text
        gui.get_object("slabel").set_label(ok_label)
        gui.get_object("clabel").set_label(ko_label)

        dialog.set_property("width-request", int(anchura / 2.2))
        #dialog.set_type_hint(Gdk.WindowTypeHint.TOOLBAR)
        #dialog.set_modal(True)
        #dialog.set_keep_above(False)

        #NEW HEADER
        strip = Header(size=size, title=title)
        dialog.vbox.pack_start(strip, True, True, 0)
        dialog.vbox.reorder_child(strip, 0)

        if parent != None:
            # FIXME: The keyboard plugin uses Ubuntu Onboard.
            # https://bugs.launchpad.net/onboard/+bug/1627819
            # There is a bug with this plugin where the "dock to edges"
            # option does not work with the "force to top" one, causing
            # Onboard to appear behind when Galicaster is on fullscreen.
            # THIS affects #321. A better solution should be implemented.
            from galicaster import plugins
            if not parent.is_fullscreen or 'galicaster.plugins.keyboard' not in plugins.loaded:
                dialog.set_transient_for(parent.get_toplevel())
            dialog.set_position(Gtk.WindowPosition.CENTER_ALWAYS)
            dialog_style_context = dialog.get_style_context()
            window_classes = parent.get_style_context().list_classes()
            for style_class in window_classes:
                dialog_style_context.add_class(style_class)

        table = gui.get_object('infobox')
        dialog.vbox.set_child_packing(table, True, True, int(self.hprop * 25),
                                      Gtk.PackType.END)
        title = gui.get_object('title')
        talign = gui.get_object('table_align')

        title.hide()

        # Get "blocked" and "mandatory" parameters
        blocked = set()
        mandatory = set()
        try:
            for term in context.get_conf().get('metadata', 'blocked').split():
                try:
                    blocked.add(EQUIV[term])
                except KeyError:
                    blocked.add(term)
        except (KeyError, AttributeError):
            # 'blocked' was not defined in configuration
            pass

        try:
            for term in context.get_conf().get('metadata',
                                               'mandatory').split():
                try:
                    mandatory.add(EQUIV[term])
                except KeyError:
                    mandatory.add(term)
        except (KeyError, AttributeError):
            # 'mandatory' was not defined in configuration
            pass

        self.mandatory = {}
        ok_button = gui.get_object("savebutton")
        self.fill_metadata(table, package, ok_button, blocked, mandatory)

        self.check_mandatory(None, ok_button, check_all=True)

        talign.set_padding(int(self.hprop * 25), int(self.hprop * 10),
                           int(self.hprop * 25), int(self.hprop * 25))
        dialog.vbox.set_child_packing(dialog.action_area, True, True,
                                      int(self.hprop * 25), Gtk.PackType.END)
        dialog.show_all()

        parent.get_style_context().add_class('shaded')
        self.return_value = dialog.run()
        if self.return_value == -8:
            self.update_metadata(table, package)
        parent.get_style_context().remove_class('shaded')
        dialog.destroy()
Beispiel #12
0
def create_ui():
    """
    Creates the No Audio Dialog interface
    """
    parent =  context.get_mainwindow().get_toplevel()
    ui = gtk.Dialog("Warning", parent)

    #Properties
    ui.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_TOOLBAR)
    ui.set_skip_taskbar_hint(True)
    ui.set_modal(False)
    ui.set_accept_focus(False)
    ui.set_destroy_with_parent(True)


    size = parent.get_size()
    ui.set_property('width-request',int(size[0]/3)) 
    if size[0] < 1300:
        ui.set_property('width-request',int(size[0]/2.3)) 
    wprop = size[0]/1920.0
    hprop = size[1]/1080.0
    ui.set_position(gtk.WIN_POS_CENTER_ON_PARENT)
    ui.action_area.set_layout(gtk.BUTTONBOX_SPREAD)

    #Buttons
    conf = context.get_conf()
    keep_closed_feature = conf.get_boolean('audio','keepclosed') or False
    if keep_closed_feature:
        keep_button = ui.add_button("Keep Closed",1)
        keep_button.connect("clicked",activate_hidden, ui)
    hide_button = ui.add_button("Close",2)
    hide_button.connect("clicked",lambda l:ui.hide())
    for child in ui.action_area.get_children():
        child.set_property("width-request", int(wprop*170) )
        child.set_property("height-request", int(hprop*70) )
        child.set_can_focus(False)

    #Taskbar with logo
    strip = Header(size=size, title="Warning")
    ui.vbox.pack_start(strip, False, True, 0)
    strip.show()

    #Labels
    label1 = gtk.Label("No Audio!!")
    label2 = gtk.Label("Pick up the microphone\nPress the mute button")
    desc1 = "bold " + str(int(hprop*64))+"px"
    desc2 = "bold " + str(int(hprop*24))+"px"
    font1=pango.FontDescription(desc1)
    font2=pango.FontDescription(desc2)
    label1.modify_font(font1)
    label2.modify_font(font2)
    label1.set_alignment(0.5,0.5)
    label2.set_alignment(0.5,0.5)
    # Warning icon
    box = gtk.HBox(spacing=0) # between image and text
    image = gtk.Image()
    image.set_from_icon_name(gtk.STOCK_DIALOG_WARNING, gtk.ICON_SIZE_DIALOG)
    image.set_pixel_size(int(wprop*80))
    box.pack_start(image,True,True,0)
    box.pack_start(label1,True,True,0)  
    image.show()
    box.show()
    #ui.vbox.pack_start(box, True, False, int(hprop*5))
    another_box = gtk.VBox(spacing=int(hprop*20))
    another_box.pack_start(box, True, False, 0)
    another_box.pack_start(label2, True, False, 0)
    another_box.show()
    ui.action_area.set_property('spacing',int(hprop*20))
    ui.vbox.pack_start(another_box, False, False, 10)
    #ui.vbox.pack_start(box, True, False, 0)
    #ui.vbox.pack_start(label2, True, False, 0)
    resize_buttons(ui.action_area,int(wprop*25),True)
    ui.vbox.set_child_packing(ui.action_area, True, True, int(hprop*25), gtk.PACK_END)
    
    label1.show()
    label2.show()
    return ui
Beispiel #13
0
    def create_framed_lines(self, buttons, text, icon, parent): # TODO get commom code with create_ui
        """Creates frames arround groups of buttons"""
        dialog = gtk.Dialog(text.get("title","Galicaster"),parent,0)
        dialog.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_TOOLBAR)
        dialog.set_skip_taskbar_hint(True)
        dialog.set_modal(True)

        #Taskbar
        strip = Header(size=self.size, title=text.get("title","Galicaster"))
        dialog.vbox.pack_start(strip, True, True, 0)
        strip.show()

        dialog.set_property('width-request',int(self.size[0]/1.8)) # relative to screen size       
                    
        if parent != None:
            dialog.set_position(gtk.WIN_POS_CENTER_ON_PARENT)
            dialog.set_transient_for(parent)
            dialog.set_destroy_with_parent(True)
        else:
            dialog.set_position(gtk.WIN_POS_CENTER_ALWAYS)
        dialog.set_resizable(False)

        # SPACING
        # dialog.vbox.set_property('spacing',int(self.hprop*10)) # vertical

        #Content and spacing
        bigbox = gtk.VBox(0)
        box = gtk.HBox(spacing=int(self.wprop*10)) # between image and text
        bigbox.pack_start(box, True, True, 
                          int(self.hprop*10))
                          #0)
        bigbox.set_border_width(int(self.wprop*10))
        dialog.vbox.set_child_packing(dialog.action_area, True, True, int(self.hprop*15), gtk.PACK_END)

        label = gtk.Label(text["main"])
        font=self.set_font(str(int(self.hprop*30))+"px")
        label.set_attributes(font)
        label.set_alignment(0,0.5)


        image = gtk.Image()
        image.set_from_icon_name(icon, gtk.ICON_SIZE_DIALOG)
        image.set_pixel_size(int(self.wprop*80))
        box.pack_start(image,True,True,0)
        box.pack_start(label,True,True,0)  
   
        if text.has_key("text"):
            if text["text"] != None:
                stext= gtk.Label(text["text"])
                font=self.set_font(str(int(self.hprop*20))+"px")
                stext.set_attributes(font)
                stext.set_alignment(0.5,0.5)                
                stext.set_line_wrap(True)
                bigbox.pack_start(stext)

 
        # Show
        dialog.vbox.pack_start(bigbox, True , True ,int(self.hprop*10))
        bigbox.show_all()

        options = gtk.HBox()

        has_ingest = False
        for element in buttons:
            if type(element) is str:
                if element.count("Ingest"):
                    has_ingest = True

        if has_ingest:
            ingest = gtk.Frame("Ingest")
            ingest.set_label_align(0.5,0.5)
            ing_align = gtk.Alignment(0.5,0.5,0.6,0.6)
            ing_align.set_padding(0,0,int(self.wprop*10),int(self.wprop*10))
            ing_buttons =  gtk.VButtonBox()
            ing_buttons.set_layout(gtk.BUTTONBOX_SPREAD)
            ing_align.add(ing_buttons)
            ingest.add(ing_align)


        export = gtk.Frame("Export")
        exp_align = gtk.Alignment(0.5,0.5,0.7,0.7)
        exp_align.set_padding(0,0,int(self.wprop*10),int(self.wprop*10))
        export.set_label_align(0.5,0.5)
        export_box = gtk.Table(2,2,homogeneous=True)       
        exp_align.add(export_box)
        export.add(exp_align)

        cancel_frame = gtk.Frame(" ")
        cancel_align = gtk.Alignment(0.5,0.5,0.7,0.7)
        cancel_buttons = gtk.VButtonBox()
        cancel_align.add(cancel_buttons)
        cancel_frame.add(cancel_align)
        cancel_frame.set_shadow_type(gtk.SHADOW_NONE)

        index_down=0
        index_up=0
        for element in buttons:
            if type(element) is str:
                response = buttons[buttons.index(element)+1]
                button = gtk.Button(element)
                #PATCH
                if element == "Cancel Export to Zip Nightly":
                    button.set_label("Cancel Zip Nightly")
                if element == "Cancel Side by Side Nightly":
                    button.set_label("Cancel SbS Nightly")

                button.connect("clicked",self.force_response,response)
                if element.count("Ingest"):
                    ing_buttons.pack_start(button, True, True, int(self.hprop*20))
                elif element ==("Cancel"):
                    cancel_buttons.pack_start(button, True, True,int(self.hprop*20))
                else:
                    if element.count("Nightly"):
                        export_box.attach(button,index_down,index_down+1,1,2,gtk.FILL|gtk.EXPAND,0,
                                          int(self.wprop*5),int(self.hprop*5))
                        index_down+=1
                    else:
                        export_box.attach(button,index_up,index_up+1,0,1,gtk.EXPAND|gtk.FILL,0,
                                          int(self.wprop*5),int(self.hprop*5))
                        index_up+=1

        if has_ingest:
            options.pack_start(ingest, True, False, 0)

        options.pack_start(export, True, False, 0)
        options.pack_start(cancel_frame, True, False,  0)

        dialog.vbox.pack_start(options, False, False , 0)
        options.show_all()

        self.resize_buttons(options, 22, True)
        return dialog
Beispiel #14
0
    def create_ui(self, buttons, text, icon, parent, modifier = None, another = False):
        """Creates the dialog window and sets its configuration"""
  
        #dialog                
        dialog = gtk.Dialog(text.get("title","Galicaster"), parent, 0, buttons)
        dialog.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_TOOLBAR)
        
        dialog.set_skip_taskbar_hint(True)
        dialog.set_modal(True)
        dialog.set_keep_above(True)
        #Taskbar
        strip = Header(size=self.size, title=text.get("title","Galicaster"))
        dialog.vbox.pack_start(strip, True, True, 0)
        strip.show()

        dialog.set_property('width-request',int(self.size[0]/2.5)) 
        # relative to screen size       
        if self.size[0]<1300:
            dialog.set_property('width-request',int(self.size[0]/2.2))
        if another:
             dialog.set_property('width-request',int(self.size[0]/1.5)) 

        # dialog.vbox.set_property('spacing',int(self.hprop*20)) # vertical            
        # dialog.set_property('border-width',30) # full
        if parent != None:
            dialog.set_position(gtk.WIN_POS_CENTER_ON_PARENT)    
            dialog.set_transient_for(parent)
            dialog.set_destroy_with_parent(True)
        else:
            dialog.set_position(gtk.WIN_POS_CENTER_ALWAYS)
        dialog.set_resizable(False)
        

        # Content and spacing
        bigbox = gtk.VBox(0)
        box = gtk.HBox(spacing=int(self.wprop*40)) # between image and text
        bigbox.pack_start(box, True, True, 
                          int(self.hprop*10))
                          #0)
        bigbox.set_border_width(int(self.wprop*10))
        dialog.vbox.set_child_packing(dialog.action_area, True, True, int(self.hprop*25), gtk.PACK_END)
      
        # Primary Text and icon
        label = gtk.Label(text["main"])
        font=self.set_font(str(int(self.hprop*30))+"px")
        label.set_attributes(font)
        label.set_alignment(0,0.5)

        image = gtk.Image()
        image.set_from_icon_name(icon, gtk.ICON_SIZE_DIALOG)
        image.set_pixel_size(int(self.wprop*80))
        box.pack_start(image,True,True,0)
        box.pack_start(label,True,True,0)  
        
        # Secondary text
        if text.has_key("text"):
            if text["text"] != None:
                stext= gtk.Label(text["text"])
                font=self.set_font(str(int(self.hprop*20))+"px")
                stext.set_attributes(font)
                if not modifier:
                    stext.set_alignment(0.5,0.5)                
                    stext.set_ellipsize(pango.ELLIPSIZE_END)
                else:
                    stext.set_alignment(0,0.5)                
                    stext.set_line_wrap(True)
                bigbox.pack_start(stext, True, True, 0)
                bigbox.set_border_width(int(self.wprop*40))
        
        dialog.vbox.pack_start(bigbox, True , True , 0)
        bigbox.show_all()

        # Action Area
        dialog.action_area.set_layout(gtk.BUTTONBOX_SPREAD)

        self.resize_buttons(dialog.action_area, 35)

        # Show
                        
        image.show()
        label.show()        
        box.show()
        #frame.show()
        #align.show()

        return dialog
    def __init__(self, _logger=None, title="Get My Info", client=None):
        """
        """
        self.id = ""
        self.user_name = ""
        self.user_email = ""
        self.series_id = ""
        self.series_title = ""
        self.searching = False
        self.details = None

        self.__logger = _logger
        self.__oc_client = client

        self.series_filter = config.get(CONFIG_SERIES_FILTER,
                                        DEFAULT_SERIES_FILTER)

        regexp = config.get(CONFIG_REGEXP, DEFAULT_REGEXP)
        self.__logger.info("REGEXP = " + regexp)
        self.__regexp = re.compile(regexp)

        parent = context.get_mainwindow()
        size = parent.get_size()

        self.par = parent
        altura = size[1]
        anchura = size[0]
        k1 = anchura / 1920.0
        k2 = altura / 1080.0
        self.wprop = k1
        self.hprop = k2

        gui = Gtk.Builder()
        gui.add_from_file(get_ui_path('set_user.glade'))

        self.dialog = gui.get_object("setuserdialog")
        self.dialog.set_property("width-request", int(anchura / 2.2))
        self.dialog.set_type_hint(Gdk.WindowTypeHint.TOOLBAR)
        self.dialog.set_modal(True)
        self.dialog.set_keep_above(False)

        # user select button
        self.user_button = Gtk.Button()

        #NEW HEADER
        strip = Header(size=size, title=title)
        self.dialog.vbox.pack_start(strip, True, True, 0)
        self.dialog.vbox.reorder_child(strip, 0)

        self.search_field = gui.get_object("inp_search")
        #search_field.connect('key-press-event', self.on_key_press)
        self.search_field.connect('key-release-event', self.on_key_release)
        #self.search_field.connect('search-changed', self.search_changed)
        #self.search_field.connect('stop-search', self.search_stopped)

        self.result = gui.get_object("grd_result")

        if parent != None:
            # FIXME: The keyboard plugin uses Ubuntu Onboard.
            # https://bugs.launchpad.net/onboard/+bug/1627819
            # There is a bug with this plugin where the "dock to edges"
            # option does not work with the "force to top" one, causing
            # Onboard to appear behind when Galicaster is on fullscreen.
            # THIS affects #321. A better solution should be implemented.
            from galicaster import plugins
            if not parent.is_fullscreen or 'galicaster.plugins.keyboard' not in plugins.loaded:
                self.dialog.set_transient_for(parent.get_toplevel())
            self.dialog.set_position(Gtk.WindowPosition.CENTER_ALWAYS)
            dialog_style_context = self.dialog.get_style_context()
            window_classes = parent.get_style_context().list_classes()
            for style_class in window_classes:
                dialog_style_context.add_class(style_class)

        self.dialog.show_all()

        parent.get_style_context().add_class('shaded')
        self.return_value = self.dialog.run()

        parent.get_style_context().remove_class('shaded')
        self.dialog.destroy()
Beispiel #16
0
    def __init__(self, package = None, series_list = None, parent = None,
                 title=_("Edit Metadata"), subtitle=_("Edit Metadata"), ok_label = _("Save"), ko_label = _("Cancel"),
                 empty_series_label = NO_SERIES):
        """
        """

        parent = context.get_mainwindow()
        size = parent.get_size()
            
        self.par = parent
        altura = size[1]
        anchura = size[0]        
        k1 = anchura / 1920.0                                      
        k2 = altura / 1080.0
        self.wprop = k1
        self.hprop = k2

        self.series_list = series_list
        self.empty_series_label = empty_series_label

        gui = gtk.Builder()
        gui.add_from_file(get_ui_path('metadata.glade'))

        dialog = gui.get_object("metadatadialog")

        # Set up the dialog's label
        gui.get_object("title").set_text(subtitle)

        # Set up the button text
        gui.get_object("slabel").set_label(ok_label)
        gui.get_object("clabel").set_label(ko_label)

        dialog.set_property("width-request",int(anchura/2.2))
        dialog.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_TOOLBAR)
        dialog.set_modal(True)
        dialog.set_keep_above(False)

        #NEW HEADER
        strip = Header(size=size, title=title)
        dialog.vbox.pack_start(strip, True, True, 0)
        dialog.vbox.reorder_child(strip,0)

        if parent != None:
            dialog.set_transient_for(parent.get_toplevel())
        
        table = gui.get_object('infobox')
        dialog.vbox.set_child_packing(table, True, True, int(self.hprop*25), gtk.PACK_END)    
        title = gui.get_object('title')
        sl = gui.get_object('slabel')
        cl = gui.get_object('clabel')
        talign = gui.get_object('table_align')

        modification = "bold "+str(int(k2*25))+"px"        
        title.modify_font(pango.FontDescription(modification))
        title.hide()
        talign.set_padding(int(k2*40),int(k2*40),0,0)
        mod2 = str(int(k1*35))+"px"        
        sl.modify_font(pango.FontDescription(mod2))
        cl.modify_font(pango.FontDescription(mod2))

        # Get "blocked" and "mandatory" parameters
        blocked = set()
        mandatory = set()
        try:
            for term in context.get_conf().get('metadata', 'blocked').split():
                try:
                    blocked.add(EQUIV[term])
                except KeyError:
                    blocked.add(term)
        except (KeyError, AttributeError):
            # 'blocked' was not defined in configuration
            pass
        
        try:
            for term in context.get_conf().get('metadata', 'mandatory').split():
                try:
                    mandatory.add(EQUIV[term])
                except KeyError:
                    mandatory.add(term)
        except (KeyError, AttributeError):
            # 'mandatory' was not defined in configuration
            pass

        self.mandatory = {}
        ok_button = gui.get_object("savebutton")
        self.fill_metadata(table, package, ok_button, blocked, mandatory)
        
        self.check_mandatory(None, ok_button, check_all = True)

        talign.set_padding(int(self.hprop*25), int(self.hprop*10), int(self.hprop*25), int(self.hprop*25))
        dialog.vbox.set_child_packing(dialog.action_area, True, True, int(self.hprop*25), gtk.PACK_END)   
        dialog.show_all()

        self.return_value = dialog.run()
        if self.return_value == -8:
            self.update_metadata(table,package)
        dialog.destroy()
    def configure_ui(self, text, message_type, gui, parent, another=None):
        """Imports the dialog from the corresponding GLADE and adds some configuration
        Args:
            text (Dict{Str:str}): a dictionary with the text to be filled
            message_type (str): one of the above constants that leads to the appropriate GLADE
            gui (Gtk.Builder): the builder with the GLADE info
            parent (Gtk.Window): the Main Window of the application
            another (Bool): True if dialog_width is small. Otherwise false.
        Returns:
            Gtk.Dialog: the dialog with the main body configured
        """

        image = gui.get_object("image")
        if image:
            image.set_pixel_size(int(self.wprop*80))

        title = 'Galicaster'

        # For MP Info PopUP
        series_shown = False

        for label, content in text.iteritems():

            if label == 'title':
                title = content

            elif label == 'main':
                if message_type != INFO:
                    main = gui.get_object("main")
                    if main:
                        main.set_label(text.get('main', ''))
                else:
                    help_message = "{}\n{}".format(text.get('main', ''), text.get('text', ''))
                    textbuffer = gui.get_object('textbuffer')
                    textbuffer.set_text(help_message)

            elif isinstance(label, str) and content:
                text_label = gui.get_object(label)
                if text_label:
                    text_label.set_label(content)
                    text_label.show()
                title_label = gui.get_object('{}_label'.format(label))
                if title_label:
                    title_label.show()
                if label.find('series')>=0 and not series_shown:
                    series_frame = gui.get_object('series_frame')
                    series_frame.show()
                    series_shown = True

        dialog = gui.get_object("dialog")

        dialog.set_type_hint(Gdk.WindowTypeHint.TOOLBAR)
        dialog.set_skip_taskbar_hint(True)
        dialog.set_keep_above(False)

        #HEADER
        strip = Header(size=self.size, title=title)
        dialog.vbox.pack_start(strip, True, True, 0)
        dialog.vbox.reorder_child(strip, 0)

        dialog.set_property('width-request', int(self.size[0]/2.5))
        # relative to screen size
        if self.size[0]<1300:
            dialog.set_property('width-request', int(self.size[0]/2.2))
        if another:
            dialog.set_property('width-request', int(self.size[0]/1.5))

        if parent != None:
            dialog_style_context = dialog.get_style_context()
            window_classes = parent.get_style_context().list_classes()
            for style_class in window_classes:
                dialog_style_context.add_class(style_class)
            dialog.set_position(Gtk.WindowPosition.CENTER_ALWAYS)
        else:
            dialog.set_position(Gtk.WindowPosition.CENTER_ALWAYS)

        strip.show()

        return dialog
Beispiel #18
0
def create_ui():
    """
    Creates the No Audio Dialog interface
    """
    parent = context.get_mainwindow().get_toplevel()
    ui = gtk.Dialog("Warning", parent)

    # Properties
    ui.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_TOOLBAR)
    ui.set_skip_taskbar_hint(True)
    ui.set_modal(False)
    ui.set_accept_focus(False)
    ui.set_destroy_with_parent(True)

    size = parent.get_size()
    ui.set_property("width-request", int(size[0] / 3))
    if size[0] < 1300:
        ui.set_property("width-request", int(size[0] / 2.3))
    wprop = size[0] / 1920.0
    hprop = size[1] / 1080.0
    ui.set_position(gtk.WIN_POS_CENTER_ON_PARENT)
    ui.action_area.set_layout(gtk.BUTTONBOX_SPREAD)

    # Buttons
    conf = context.get_conf()
    keep_closed_feature = conf.get_boolean("audio", "keepclosed") or False
    if keep_closed_feature:
        keep_button = ui.add_button("Keep Closed", 1)
        keep_button.connect("clicked", activate_hidden, ui)
    hide_button = ui.add_button("Close", 2)
    hide_button.connect("clicked", lambda l: ui.hide())
    for child in ui.action_area.get_children():
        child.set_property("width-request", int(wprop * 170))
        child.set_property("height-request", int(hprop * 70))
        child.set_can_focus(False)

    # Taskbar with logo
    strip = Header(size=size, title="Warning")
    ui.vbox.pack_start(strip, False, True, 0)
    strip.show()

    # Labels
    label1 = gtk.Label("No Audio!!")
    label2 = gtk.Label("Pick up the microphone\nPress the mute button")
    desc1 = "bold " + str(int(hprop * 64)) + "px"
    desc2 = "bold " + str(int(hprop * 24)) + "px"
    font1 = pango.FontDescription(desc1)
    font2 = pango.FontDescription(desc2)
    label1.modify_font(font1)
    label2.modify_font(font2)
    label1.set_alignment(0.5, 0.5)
    label2.set_alignment(0.5, 0.5)
    # Warning icon
    box = gtk.HBox(spacing=0)  # between image and text
    image = gtk.Image()
    image.set_from_icon_name(gtk.STOCK_DIALOG_WARNING, gtk.ICON_SIZE_DIALOG)
    image.set_pixel_size(int(wprop * 80))
    box.pack_start(image, True, True, 0)
    box.pack_start(label1, True, True, 0)
    image.show()
    box.show()
    # ui.vbox.pack_start(box, True, False, int(hprop*5))
    another_box = gtk.VBox(spacing=int(hprop * 20))
    another_box.pack_start(box, True, False, 0)
    another_box.pack_start(label2, True, False, 0)
    another_box.show()
    ui.action_area.set_property("spacing", int(hprop * 20))
    ui.vbox.pack_start(another_box, False, False, 10)
    # ui.vbox.pack_start(box, True, False, 0)
    # ui.vbox.pack_start(label2, True, False, 0)
    resize_buttons(ui.action_area, int(wprop * 25), True)
    ui.vbox.set_child_packing(ui.action_area, True, True, int(hprop * 25), gtk.PACK_END)

    label1.show()
    label2.show()
    return ui
Beispiel #19
0
     def __init__(self, parent=None):
         if not parent:
             parent = context.get_mainwindow()
         gtk.AboutDialog.__init__(self)
         if parent:
             self.set_transient_for(parent)
         
         size=context.get_mainwindow().get_size()
         k = size[0]/1920.0
         self.set_resizable(True)
         self.set_default_size(int(0.3*size[0]),int(0.4*size[1]))
         self.set_title("About Galicaster "+__version__)
         
         strip = Header(size=size, title="About")
         self.vbox.pack_start(strip, False, True, 0)
         self.vbox.reorder_child(strip,0)
         strip.show()
         self.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_TOOLBAR)
         
         #self.set_decorated(True)
         self.set_position(gtk.WIN_POS_CENTER_ON_PARENT)

         self.set_program_name(PROGRAM)
         self.set_version(__version__)
         self.set_website(WEB)
         self.set_website_label("Galicaster Website")
         self.set_authors(AUTHORS)
         self.set_documenters(DOCS)
         self.set_artists(ARTISTS)
         self.set_copyright("\n".join((COPY1,COPY2)))
         self.set_license(LICENSE)
         pixbuf = gtk.gdk.pixbuf_new_from_file(get_image_path('logo.svg')) 
         pixbuf = pixbuf.scale_simple(
              int(pixbuf.get_width()*k),
              int(pixbuf.get_height()*k),
              gtk.gdk.INTERP_BILINEAR)

         #self.set_logo(pixbuf)

         #ADD TELTEK LOGO
         box=self.get_content_area()
         company_logo=gtk.Image()
         pixbuf = gtk.gdk.pixbuf_new_from_file(get_image_path('teltek.svg')) 
         pixbuf = pixbuf.scale_simple(
              int(pixbuf.get_width()*k),
              int(pixbuf.get_height()*k),
            gtk.gdk.INTERP_BILINEAR)

         company_logo.set_from_pixbuf(pixbuf)

         box.pack_end(company_logo,True,True,0)
         company_logo.show()

         #ADD THANKS
         #thanks=gtk.Button("Thanks")
         #buttons=self.get_action_area()
         #thanks.connect("clicked",self.show_thanks)
         #buttons.pack_start(thanks)
         #buttons.reorder_child(thanks,0)
         #thanks.show()
         
         self.run()
         self.destroy()
Beispiel #20
0
    def create_framed_lines(self, buttons, text, icon,
                            parent):  # TODO get commom code with create_ui
        """Creates frames arround groups of buttons"""
        dialog = gtk.Dialog(text.get("title", "Galicaster"), parent, 0)
        dialog.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_TOOLBAR)
        dialog.set_skip_taskbar_hint(True)
        dialog.set_modal(True)

        #Taskbar
        strip = Header(size=self.size, title=text.get("title", "Galicaster"))
        dialog.vbox.pack_start(strip, True, True, 0)
        strip.show()

        dialog.set_property('width-request',
                            int(self.size[0] / 1.8))  # relative to screen size

        if parent != None:
            dialog.set_position(gtk.WIN_POS_CENTER_ON_PARENT)
            dialog.set_transient_for(parent)
            dialog.set_destroy_with_parent(True)
        else:
            dialog.set_position(gtk.WIN_POS_CENTER_ALWAYS)
        dialog.set_resizable(False)

        # SPACING
        # dialog.vbox.set_property('spacing',int(self.hprop*10)) # vertical

        #Content and spacing
        bigbox = gtk.VBox(0)
        box = gtk.HBox(spacing=int(self.wprop * 10))  # between image and text
        bigbox.pack_start(box, True, True, int(self.hprop * 10))
        #0)
        bigbox.set_border_width(int(self.wprop * 10))
        dialog.vbox.set_child_packing(dialog.action_area, True, True,
                                      int(self.hprop * 15), gtk.PACK_END)

        label = gtk.Label(text["main"])
        font = self.set_font(str(int(self.hprop * 30)) + "px")
        label.set_attributes(font)
        label.set_alignment(0, 0.5)

        image = gtk.Image()
        image.set_from_icon_name(icon, gtk.ICON_SIZE_DIALOG)
        image.set_pixel_size(int(self.wprop * 80))
        box.pack_start(image, True, True, 0)
        box.pack_start(label, True, True, 0)

        if text.has_key("text"):
            if text["text"] != None:
                stext = gtk.Label(text["text"])
                font = self.set_font(str(int(self.hprop * 20)) + "px")
                stext.set_attributes(font)
                stext.set_alignment(0.5, 0.5)
                stext.set_line_wrap(True)
                bigbox.pack_start(stext)

        # Show
        dialog.vbox.pack_start(bigbox, True, True, int(self.hprop * 10))
        bigbox.show_all()

        options = gtk.HBox()

        has_ingest = False
        for element in buttons:
            if type(element) is str:
                if "Ingest" in element:
                    has_ingest = True
                    break

        has_export = False
        for element in buttons:
            if type(element) is str:
                if "Export" in element or "Side" in element:
                    has_export = True
                    break

        if has_ingest:
            ingest = gtk.Frame(_("Ingest"))
            ingest.set_label_align(0.5, 0.5)
            ing_align = gtk.Alignment(0.5, 0.5, 0.6, 0.6)
            ing_align.set_padding(0, 0, int(self.wprop * 10),
                                  int(self.wprop * 10))
            ing_buttons = gtk.VButtonBox()
            ing_buttons.set_layout(gtk.BUTTONBOX_SPREAD)
            ing_align.add(ing_buttons)
            ingest.add(ing_align)

        if has_export:
            export = gtk.Frame(_("Export"))
            exp_align = gtk.Alignment(0.5, 0.5, 0.7, 0.7)
            exp_align.set_padding(0, 0, int(self.wprop * 10),
                                  int(self.wprop * 10))
            export.set_label_align(0.5, 0.5)
            export_box = gtk.Table(2, 2, homogeneous=True)
            exp_align.add(export_box)
            export.add(exp_align)

        cancel_frame = gtk.Frame(" ")
        cancel_align = gtk.Alignment(0.5, 0.5, 0.7, 0.7)
        cancel_buttons = gtk.VButtonBox()
        cancel_align.add(cancel_buttons)
        cancel_frame.add(cancel_align)
        cancel_frame.set_shadow_type(gtk.SHADOW_NONE)

        index_down = 0
        index_up = 0
        for element in buttons:
            if type(element) is str:
                response = buttons[buttons.index(element) + 1]
                button = gtk.Button(OPERATION_NAMES[element])

                #PATCH
                if element == "Cancel Export to Zip Nightly":
                    button.set_label(OPERATION_NAMES[element])
                if element == "Cancel Side by Side Nightly":
                    button.set_label(OPERATION_NAMES[element])

                button.connect("clicked", self.force_response, response)
                if "Ingest" in element:
                    ing_buttons.pack_start(button, True, True,
                                           int(self.hprop * 20))
                elif element == ("Cancel"):
                    cancel_buttons.pack_start(button, True, True,
                                              int(self.hprop * 20))
                elif "Export" in element or "Side" in element:
                    if "Nightly" in element:
                        export_box.attach(button, index_down, index_down + 1,
                                          1, 2, gtk.FILL | gtk.EXPAND, 0,
                                          int(self.wprop * 5),
                                          int(self.hprop * 5))
                        index_down += 1
                    else:
                        export_box.attach(button, index_up, index_up + 1, 0, 1,
                                          gtk.EXPAND | gtk.FILL, 0,
                                          int(self.wprop * 5),
                                          int(self.hprop * 5))
                        index_up += 1

        if has_ingest:
            options.pack_start(ingest, True, False, 0)
        if has_export:
            options.pack_start(export, True, False, 0)
        options.pack_start(cancel_frame, True, False, 0)

        dialog.vbox.pack_start(options, False, False, 0)
        options.show_all()

        self.resize_buttons(options, 22, True)
        return dialog
Beispiel #21
0
    def create_ui(self,
                  buttons,
                  text,
                  icon,
                  parent,
                  modifier=None,
                  another=False):
        """Creates the dialog window and sets its configuration"""

        #dialog
        dialog = gtk.Dialog(text.get("title", "Galicaster"), parent, 0,
                            buttons)
        dialog.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_TOOLBAR)

        dialog.set_skip_taskbar_hint(True)
        dialog.set_modal(True)
        dialog.set_keep_above(False)
        #Taskbar
        strip = Header(size=self.size, title=text.get("title", "Galicaster"))
        dialog.vbox.pack_start(strip, True, True, 0)
        strip.show()

        dialog.set_property('width-request', int(self.size[0] / 2.5))
        # relative to screen size
        if self.size[0] < 1300:
            dialog.set_property('width-request', int(self.size[0] / 2.2))
        if another:
            dialog.set_property('width-request', int(self.size[0] / 1.5))

        # dialog.vbox.set_property('spacing',int(self.hprop*20)) # vertical
        # dialog.set_property('border-width',30) # full
        if parent != None:
            dialog.set_position(gtk.WIN_POS_CENTER_ON_PARENT)
            dialog.set_transient_for(parent)
            dialog.set_destroy_with_parent(True)
        else:
            dialog.set_position(gtk.WIN_POS_CENTER_ALWAYS)
        dialog.set_resizable(False)

        # Content and spacing
        bigbox = gtk.VBox(0)
        box = gtk.HBox(spacing=int(self.wprop * 40))  # between image and text
        bigbox.pack_start(box, True, True, int(self.hprop * 10))
        #0)
        bigbox.set_border_width(int(self.wprop * 10))
        dialog.vbox.set_child_packing(dialog.action_area, True, True,
                                      int(self.hprop * 25), gtk.PACK_END)

        # Primary Text and icon
        label = gtk.Label(text["main"])
        font = self.set_font(str(int(self.hprop * 30)) + "px")
        label.set_attributes(font)
        label.set_alignment(0, 0.5)

        image = gtk.Image()
        image.set_from_icon_name(icon, gtk.ICON_SIZE_DIALOG)
        image.set_pixel_size(int(self.wprop * 80))
        box.pack_start(image, True, True, 0)
        box.pack_start(label, True, True, 0)

        # Secondary text
        if text.has_key("text"):
            if text["text"] != None:
                stext = gtk.Label(text["text"])
                font = self.set_font(str(int(self.hprop * 20)) + "px")
                stext.set_attributes(font)
                if not modifier:
                    stext.set_alignment(0.5, 0.5)
                    stext.set_ellipsize(pango.ELLIPSIZE_END)
                else:
                    stext.set_alignment(0, 0.5)
                    stext.set_line_wrap(True)
                bigbox.pack_start(stext, True, True, 0)
                bigbox.set_border_width(int(self.wprop * 40))

        dialog.vbox.pack_start(bigbox, True, True, 0)
        bigbox.show_all()

        # Action Area
        dialog.action_area.set_layout(gtk.BUTTONBOX_SPREAD)

        self.resize_buttons(dialog.action_area, 35)

        # Show

        image.show()
        label.show()
        box.show()
        #frame.show()
        #align.show()

        return dialog
Beispiel #22
0
    def configure_ui(self, text, message_type, gui, parent, another=None):
        """Imports the dialog from the corresponding GLADE and adds some configuration
        Args:
            text (Dict{Str:str}): a dictionary with the text to be filled
            message_type (str): one of the above constants that leads to the appropriate GLADE
            gui (Gtk.Builder): the builder with the GLADE info
            parent (Gtk.Window): the Main Window of the application
            another (Bool): True if dialog_width is small. Otherwise false.
        Returns:
            Gtk.Dialog: the dialog with the main body configured
        """

        image = gui.get_object("image")
        if image:
            image.set_pixel_size(int(self.wprop * 80))

        title = 'Galicaster'

        # For MP Info PopUP
        series_shown = False

        for label, content in text.iteritems():

            if label == 'title':
                title = content

            elif label == 'main':
                if message_type != INFO:
                    main = gui.get_object("main")
                    if main:
                        main.set_label(text.get('main', ''))
                else:
                    help_message = "{}\n{}".format(text.get('main', ''),
                                                   text.get('text', ''))
                    textbuffer = gui.get_object('textbuffer')
                    textbuffer.set_text(help_message)

            elif isinstance(label, str) and content:
                text_label = gui.get_object(label)
                if text_label:
                    text_label.set_label(content)
                    text_label.show()
                title_label = gui.get_object('{}_label'.format(label))
                if title_label:
                    title_label.show()
                if label.find('series') >= 0 and not series_shown:
                    series_frame = gui.get_object('series_frame')
                    series_frame.show()
                    series_shown = True

        dialog = gui.get_object("dialog")

        dialog.set_type_hint(Gdk.WindowTypeHint.TOOLBAR)
        dialog.set_skip_taskbar_hint(True)
        dialog.set_keep_above(False)

        #HEADER
        strip = Header(size=self.size, title=title)
        dialog.vbox.pack_start(strip, True, True, 0)
        dialog.vbox.reorder_child(strip, 0)

        dialog.set_property('width-request', int(self.size[0] / 2.5))
        # relative to screen size
        if self.size[0] < 1300:
            dialog.set_property('width-request', int(self.size[0] / 2.2))
        if another:
            dialog.set_property('width-request', int(self.size[0] / 1.5))

        if parent != None:
            dialog_style_context = dialog.get_style_context()
            window_classes = parent.get_style_context().list_classes()
            for style_class in window_classes:
                dialog_style_context.add_class(style_class)
            dialog.set_position(Gtk.WindowPosition.CENTER_ALWAYS)
        else:
            dialog.set_position(Gtk.WindowPosition.CENTER_ALWAYS)

        strip.show()

        return dialog
Beispiel #23
0
    def create_framed_lines(self, buttons, text, icon, parent): # TODO get commom code with create_ui
        """Creates frames arround groups of buttons"""
        dialog = Gtk.Dialog(text.get("title","Galicaster"),parent,0)
        dialog.set_type_hint(Gdk.WindowTypeHint.TOOLBAR)
        dialog.set_skip_taskbar_hint(True)
        dialog.set_modal(True)

        #Taskbar
        strip = Header(size=self.size, title=text.get("title","Galicaster"))
        dialog.vbox.pack_start(strip, True, True, 0)
        strip.show()

        dialog.set_property('width-request',int(self.size[0]/1.8)) # relative to screen size       
                    
        if parent != None:
            dialog_style_context = dialog.get_style_context()
            window_classes = parent.get_style_context().list_classes()
            for style_class in window_classes:
                dialog_style_context.add_class(style_class)
            dialog.set_position(Gtk.WindowPosition.CENTER_ON_PARENT)
            dialog.set_transient_for(parent)
            dialog.set_destroy_with_parent(True)
        else:
            dialog.set_position(Gtk.WindowPosition.CENTER_ALWAYS)
        dialog.set_resizable(False)

        # SPACING
        # dialog.vbox.set_property('spacing',int(self.hprop*10)) # vertical

        #Content and spacing
        bigbox = Gtk.VBox(0)
        box = Gtk.HBox(spacing=int(self.wprop*10)) # between image and text
        bigbox.pack_start(box, True, True, 
                          int(self.hprop*10))
                          #0)
        bigbox.set_border_width(int(self.wprop*10))
        dialog.vbox.set_child_packing(dialog.action_area, True, True, int(self.hprop*15), Gtk.PackType.END)

        label = Gtk.Label(label=text["main"])
        label.set_alignment(0,0.5)


        image = Gtk.Image()
        image.set_from_icon_name(icon, Gtk.IconSize.DIALOG)
        image.set_pixel_size(int(self.wprop*80))
        box.pack_start(image,True,True,0)
        box.pack_start(label,True,True,0)  
   
        if text.has_key("text"):
            if text["text"] != None:
                stext= Gtk.Label(label=text["text"])
                stext.set_alignment(0.5,0.5)                
                stext.set_line_wrap(True)
                bigbox.pack_start(stext, True, True, 0)

 
        # Show
        dialog.vbox.pack_start(bigbox, True , True ,int(self.hprop*10))
        bigbox.show_all()

        options = Gtk.HBox()

        has_ingest = False
        for element in buttons:
            if type(element) is str:
                if "Ingest" in element:
                    has_ingest = True
                    break

        has_export = False
        for element in buttons:
            if type(element) is str:
                if "Export" in element or "Side" in element:
                    has_export = True
                    break

        if has_ingest:
            ingest = Gtk.Frame.new(_("Ingest"))
            ingest.set_label_align(0.5,0.5)
            ing_align = Gtk.Alignment.new(0.5,0.5,0.6,0.6)
            ing_align.set_padding(0,0,int(self.wprop*10),int(self.wprop*10))
            ing_buttons =  Gtk.VButtonBox()
            ing_buttons.set_layout(Gtk.ButtonBoxStyle.SPREAD)
            ing_align.add(ing_buttons)
            ingest.add(ing_align)


        if has_export:
            export = Gtk.Frame.new(_("Export"))
            exp_align = Gtk.Alignment.new(0.5,0.5,0.7,0.7)
            exp_align.set_padding(0,0,int(self.wprop*10),int(self.wprop*10))
            export.set_label_align(0.5,0.5)
            export_box = Gtk.Table(2,2,homogeneous=True)       
            exp_align.add(export_box)
            export.add(exp_align)

        cancel_frame = Gtk.Frame.new(" ")
        cancel_align = Gtk.Alignment.new(0.5,0.5,0.7,0.7)
        cancel_buttons = Gtk.VButtonBox()
        cancel_align.add(cancel_buttons)
        cancel_frame.add(cancel_align)
        cancel_frame.set_shadow_type(Gtk.ShadowType.NONE)

        index_down=0
        index_up=0
        for element in buttons:
            if type(element) is str:
                response = buttons[buttons.index(element)+1]
                button = Gtk.Button(OPERATION_NAMES[element])

                #PATCH
                if element == "Cancel Export to Zip Nightly":
                    button.set_label(OPERATION_NAMES[element])
                if element == "Cancel Side by Side Nightly":
                    button.set_label(OPERATION_NAMES[element])

                button.connect("clicked",self.force_response,response)
                if "Ingest" in element:
                    ing_buttons.pack_start(button, True, True, int(self.hprop*20))
                elif element ==("Cancel"):
                    cancel_buttons.pack_start(button, True, True,int(self.hprop*20))
                elif "Export" in element or "Side" in element:
                    if "Nightly" in element:
                        export_box.attach(button,index_down,index_down+1,1,2,Gtk.AttachOptions.FILL|Gtk.AttachOptions.EXPAND,0,
                                          int(self.wprop*5),int(self.hprop*5))
                        index_down+=1
                    else:
                        export_box.attach(button,index_up,index_up+1,0,1,Gtk.AttachOptions.EXPAND|Gtk.AttachOptions.FILL,0,
                                          int(self.wprop*5),int(self.hprop*5))
                        index_up+=1

        if has_ingest:
            options.pack_start(ingest, True, False, 0)
        if has_export:
            options.pack_start(export, True, False, 0)
        options.pack_start(cancel_frame, True, False,  0)

        dialog.vbox.pack_start(options, False, False , 0)
        options.show_all()

        self.resize_buttons(options, 22, True)
        return dialog