Example #1
0
    def _local_init(self):
        """
        Performs basic initialization, including setting up widgets and the
        glade interface.

        Local initialization function.
        This is called by the base class of EditPrimary, and overridden here.

        """
        self.width_key = 'interface.person-width'
        self.height_key = 'interface.person-height'
        self.pname = self.obj.get_primary_name()
        self.should_guess_gender = (not self.obj.get_gramps_id()
                                    and self.obj.get_gender()
                                    == gen.lib.Person.UNKNOWN)

        self.top = Glade()

        self.set_window(self.top.toplevel, None, self.get_menu_title())

        self.obj_photo = self.top.get_object("personPix")
        self.frame_photo = self.top.get_object("frame5")
        self.eventbox = self.top.get_object("eventbox1")
        self.singsurnfr = SingSurn(self.top)
        self.multsurnfr = self.top.get_object("hboxmultsurnames")
        self.singlesurn_active = True
        self.surntab = SurnameTab(self.dbstate,
                                  self.uistate,
                                  self.track,
                                  self.obj.get_primary_name(),
                                  on_change=self._changed_name)

        self.set_contexteventbox(self.top.get_object("eventboxtop"))
Example #2
0
    def _local_init(self):
        self.width_key = 'interface.source-width'
        self.height_key = 'interface.source-height'
        assert (self.obj)

        self.glade = Glade()
        self.set_window(self.glade.toplevel, None, self.get_menu_title())
Example #3
0
    def __init__(self, dbstate, parent=None):
        """
        Create the top level window from the glade description, and extracts
        the GTK widgets that are needed.
        """
        CLIDbManager.__init__(self, dbstate)
        self.glade = Glade()
        self.top = self.glade.toplevel

        if parent:
            self.top.set_transient_for(parent)

        for attr in [
                'connect', 'cancel', 'new', 'remove', 'dblist', 'rename',
                'repair', 'rcs', 'msg'
        ]:
            setattr(self, attr, self.glade.get_object(attr))

        self.model = None
        self.column = None
        self.lock_file = None
        self.data_to_delete = None

        self.selection = self.dblist.get_selection()
        self.dblist.set_rules_hint(True)

        self.__connect_signals()
        self.__build_interface()
        self._populate_model()
    def _local_init(self):
        self.width_key = 'interface.repo-width'
        self.height_key = 'interface.repo-height'

        self.glade = Glade()

        self.set_window(self.glade.toplevel, None, self.get_menu_title())
Example #5
0
    def _local_init(self):
        self.width_key = 'interface.attribute-width'
        self.height_key = 'interface.attribute-height'
        self.top = Glade()

        self.set_window(self.top.toplevel, self.top.get_object('title'),
                        _('Attribute Editor'))
Example #6
0
    def __init__(self, uistate):

        ManagedWindow.ManagedWindow.__init__(self, uistate, [], self)
        
        xml = Glade()
        window = xml.toplevel
        self.set_window(window, 
                        xml.get_object("title"), 
                        _("Tip of the Day"), 
                        _("Tip of the Day"))
        
        self.tip = xml.get_object("tip")
        self.use = xml.get_object('usetips')
        self.use.set_active(config.get('behavior.use-tips'))
        image = xml.get_object('image')
        image.set_from_file(os.path.join(const.IMAGE_DIR, 'splash.jpg'))

        next = xml.get_object('next')
        next.connect("clicked", self.next_tip_cb)
        close = xml.get_object('close')
        close.connect("clicked", self.close_cb)
        
        try:
            tparser = TipParser()
        except (IOError,ExpatError), e:
            self.close()
            ErrorDialog(
                _("Failed to display tip of the day"),
                _("Unable to read the tips from external file.\n\n%s")%e)
            return
    def __init__(self, msg1, msg2, label_msg1, label_msg2, parent=None):
        self.xml = Glade(toplevel='questiondialog')

        self.top = self.xml.toplevel
        self.top.set_icon(ICON)
        self.top.set_title("%s - Gramps" % msg1)

        label1 = self.xml.get_object('qd_label1')
        label1.set_text('<span weight="bold" size="larger">%s</span>' % msg1)
        label1.set_use_markup(True)

        label2 = self.xml.get_object('qd_label2')
        # see https://github.com/emesene/emesene/issues/723
        label2.connect('activate-link', on_activate_link)
        label2.set_text(msg2)
        label2.set_use_markup(True)

        self.xml.get_object('okbutton').set_label(label_msg1)
        self.xml.get_object('okbutton').set_use_underline(True)
        self.xml.get_object('no').set_label(label_msg2)
        self.xml.get_object('no').set_use_underline(True)

        if parent:
            self.top.set_transient_for(parent)
        self.top.show()
Example #8
0
    def _local_init(self):
        self.width_key = 'interface.media-ref-width'
        self.height_key = 'interface.media-ref-height'
        self.top = Glade()

        self.set_window(self.top.toplevel, self.top.get_object('title'),
                        _('Media Reference Editor'))
        self.define_warn_box(self.top.get_object("warn_box"))
        self.top.get_object("label427").set_text(_("Y coordinate|Y"))
        self.top.get_object("label428").set_text(_("Y coordinate|Y"))

        tblref = self.top.get_object('table50')
        self.notebook_ref = self.top.get_object('notebook_ref')
        self.track_ref_for_deletion("notebook_ref")
        #recreate start page as GrampsTab
        self.notebook_ref.remove_page(0)
        self.reftab = RefTab(self.dbstate, self.uistate, self.track,
                             _('General'), tblref)
        self.track_ref_for_deletion("reftab")
        tblref = self.top.get_object('table2')
        self.notebook_shared = self.top.get_object('notebook_shared')
        #recreate start page as GrampsTab
        self.notebook_shared.remove_page(0)
        self.track_ref_for_deletion("notebook_shared")
        self.primtab = RefTab(self.dbstate, self.uistate, self.track,
                              _('_General'), tblref)
        self.track_ref_for_deletion("primtab")
        self.rect_pixbuf = None
Example #9
0
    def _local_init(self):
        self.width_key = 'interface.name-width'
        self.height_key = 'interface.name-height'

        self.top = Glade()

        self.set_window(self.top.toplevel, None, _("Name Editor"))

        tblgnam = self.top.get_object('table23')
        notebook = self.top.get_object('notebook')
        hbox_surn = self.top.get_object('hboxmultsurnames')
        hbox_surn.set_size_request(
            -1, int(config.get('interface.surname-box-height')))
        hbox_surn.pack_start(
            SurnameTab(self.dbstate,
                       self.uistate,
                       self.track,
                       self.obj,
                       top_label=None))
        #recreate start page as GrampsTab
        notebook.remove_page(0)
        self.gennam = GeneralNameTab(self.dbstate, self.uistate, self.track,
                                     _('_General'), tblgnam)

        self.original_group_as = self.obj.get_group_as()
        self.original_group_set = not (self.original_group_as == '')
        srn = self.obj.get_primary_surname().get_surname()
        self._get_global_grouping(srn)

        self.group_over = self.top.get_object('group_over')
        self.group_over.connect('toggled', self.on_group_over_toggled)
        self.group_over.set_sensitive(not self.db.readonly)

        self.toggle_dirty = False
Example #10
0
    def __init__(self,
                 msg1,
                 msg2,
                 btnmsg1,
                 task1,
                 btnmsg2,
                 task2,
                 parent=None):
        self.xml = Glade(toplevel='optiondialog')

        self.top = self.xml.toplevel
        self.top.set_icon(ICON)
        self.top.set_title("%s - Gramps" % msg1)

        label1 = self.xml.get_object('od_label1')
        label1.set_text('<span weight="bold" size="larger">%s</span>' % msg1)
        label1.set_use_markup(True)

        label2 = self.xml.get_object('od_label2')
        label2.set_text(msg2)
        label2.set_use_markup(True)

        self.xml.get_object('option1').set_label(btnmsg1)
        self.xml.get_object('option2').set_label(btnmsg2)
        if parent:
            self.top.set_transient_for(parent)
        self.top.show()
        self.response = self.top.run()
        if self.response == gtk.RESPONSE_NO:
            if task1:
                task1()
        else:
            if task2:
                task2()
        self.top.destroy()
Example #11
0
    def __init__(self, msg1, msg2, task1, task2, parent=None):
        self.xml = Glade(toplevel='savedialog')

        self.top = self.xml.toplevel
        self.top.set_icon(ICON)
        self.top.set_title("%s - Gramps" % msg1)

        self.dontask = self.xml.get_object('dontask')
        self.task1 = task1
        self.task2 = task2

        label1 = self.xml.get_object('sd_label1')
        label1.set_text('<span weight="bold" size="larger">%s</span>' % msg1)
        label1.set_use_markup(True)

        label2 = self.xml.get_object('sd_label2')
        label2.set_text(msg2)
        label2.set_use_markup(True)
        if parent:
            self.top.set_transient_for(parent)
        self.top.show()
        response = self.top.run()
        if response == gtk.RESPONSE_NO:
            self.task1()
        elif response == gtk.RESPONSE_YES:
            self.task2()

        config.set('interface.dont-ask', self.dontask.get_active())
        self.top.destroy()
Example #12
0
    def __build_window(self):
        """Build the window from Glade.
        """
        from glade import Glade
        glade_xml = Glade()
        self._window = glade_xml.toplevel
        #self._window.set_transient_for(parent)

        # remember active widgets for future use
        self._swin = glade_xml.get_object('swin')
        self._drawing_area = glade_xml.get_object('drawingarea')
        self._first_button = glade_xml.get_object('first')
        self._prev_button = glade_xml.get_object('prev')
        self._next_button = glade_xml.get_object('next')
        self._last_button = glade_xml.get_object('last')
        self._pages_entry = glade_xml.get_object('entry')
        self._pages_label = glade_xml.get_object('label')
        self._zoom_fit_width_button = glade_xml.get_object('zoom_fit_width')
        self._zoom_fit_width_button.set_stock_id('gramps-zoom-fit-width')
        self._zoom_best_fit_button = glade_xml.get_object('zoom_best_fit')
        self._zoom_best_fit_button.set_stock_id('gramps-zoom-best-fit')
        self._zoom_in_button = glade_xml.get_object('zoom_in')
        self._zoom_in_button.set_stock_id('gramps-zoom-in')
        self._zoom_out_button = glade_xml.get_object('zoom_out')
        self._zoom_out_button.set_stock_id('gramps-zoom-out')

        # connect the signals
        glade_xml.connect_signals(self)
Example #13
0
    def __init__(self, dbstate, uistate, options_class, name, callback=None):
        self.dbstate = dbstate
        self.uistate = uistate

        tool.Tool.__init__(self, dbstate, options_class, name)
        ManagedWindow.ManagedWindow.__init__(self, uistate, [], self)
        self.qual = 0

        self.filterDialog = Glade(toplevel="filters")
        self.filterDialog.connect_signals({
            "on_apply_clicked": self.on_apply_clicked,
            "on_editor_clicked": self.filter_editor_clicked,
            "on_help_clicked": self.on_help_clicked,
            "destroy_passed_object": self.close,
            "on_write_table": self.__dummy,
        })

        window = self.filterDialog.toplevel
        window.show()
        self.filters = self.filterDialog.get_object("filter_list")
        self.label = _('Event comparison filter selection')
        self.set_window(window, self.filterDialog.get_object('title'),
                        self.label)

        self.on_filters_changed('Person')
        uistate.connect('filters-changed', self.on_filters_changed)

        self.show()
Example #14
0
    def _local_init(self):
        """Local initialization function.
        
        Perform basic initialization, including setting up widgets
        and the glade interface. It is called by the base class L{EditPrimary},
        and overridden here.
        
        """
        self.width_key = 'interface.note-width'
        self.height_key = 'interface.note-height'
        
        self.top = Glade()

        win = self.top.toplevel
        self.set_window(win, None, self.get_menu_title())


        vboxnote =  self.top.get_object('vbox131')
        notebook = self.top.get_object('note_notebook')
        #recreate start page as GrampsTab
        notebook.remove_page(0)
        self.ntab = NoteTab(self.dbstate, self.uistate, self.track, 
                              _('_Note'), vboxnote)
        self.track_ref_for_deletion("ntab")
        
        self.build_interface()
Example #15
0
    def init_gui(self):
        # Draw dialog and make it handle everything

        self.glade = Glade()

        self.auto1 = self.glade.get_object("original")
        self.auto2 = self.glade.get_object("new")

        # Need to display localized event names
        etype = EventType()
        event_names = sorted(etype.get_standard_names(), key=locale.strxfrm)

        AutoComp.fill_combo(self.auto1, event_names)
        AutoComp.fill_combo(self.auto2, event_names)

        etype.set_from_xml_str(self.options.handler.options_dict['fromtype'])
        self.auto1.child.set_text(str(etype))

        etype.set_from_xml_str(self.options.handler.options_dict['totype'])
        self.auto2.child.set_text(str(etype))

        window = self.glade.toplevel
        self.set_window(window, self.glade.get_object('title'), self.title)

        self.glade.connect_signals({
            "on_close_clicked": self.close,
            "on_apply_clicked": self.on_apply_clicked,
            "on_delete_event": self.close,
        })

        self.show()
Example #16
0
 def _local_init(self):
     self.width_key = 'interface.address-width'
     self.height_key = 'interface.address-height'
     
     self.top = Glade()
     self.set_window(self.top.toplevel,
                     self.top.get_object("title"),
                     _('Address Editor'))
Example #17
0
    def _local_init(self):
        self.width_key = 'interface.url-width'
        self.height_key = 'interface.url-height'

        self.top = Glade()
        self.jump = self.top.get_object('jump')

        self.set_window(self.top.toplevel, self.top.get_object("title"),
                        _('Internet Address Editor'))
Example #18
0
    def _local_init(self):
        self.width_key = 'interface.lds-width'
        self.height_key = 'interface.lds-height'

        self.top = Glade()
        self.set_window(self.top.toplevel, self.top.get_object('title'),
                        _('LDS Ordinance Editor'))
        self.share_btn = self.top.get_object('share_place')
        self.add_del_btn = self.top.get_object('add_del_place')
Example #19
0
 def _local_init(self):
     self.width_key = 'interface.person-ref-width'
     self.height_key = 'interface.person-ref-height'
     
     self.top = Glade()
             
     self.set_window(self.top.toplevel,
                     self.top.get_object("title"),
                     _('Person Reference Editor'))
     self.person_label = self.top.get_object('person')
Example #20
0
 def display(self, obj):
     obj.hide()
     self.glade = Glade()
     top = self.glade.toplevel
     msg = self.glade.get_object('msg')
     buf = msg.get_buffer()
     for i in self.get_formatted_log():
         buf.insert_at_cursor(i + '\n')
     top.run()
     top.destroy()
Example #21
0
    def _local_init(self):
        self.width_key = 'interface.event-width'
        self.height_key = 'interface.event-height'

        self.top = Glade()
        self.set_window(self.top.toplevel, None, self.get_menu_title())

        self.place = self.top.get_object('place')
        self.share_btn = self.top.get_object('select_place')
        self.add_del_btn = self.top.get_object('add_del_place')
Example #22
0
def check_in(dbase, filename, callback, cursor_func=None):
    """
    Checks in the specified file into RCS
    """
    init = ["rcs", '-x,v', '-i', '-U', '-q', '-t-"Gramps database"']
    ci_cmd = ["ci", '-x,v', "-q", "-f"]
    archive_name = filename + ",v"

    glade = Glade(toplevel='comment')
    top = glade.toplevel
    text = glade.get_object('description')
    top.run()
    comment = text.get_text()
    top.destroy()

    if not os.path.isfile(archive_name):
        cmd = init + [archive_name]
        proc = subprocess.Popen(cmd, stderr=subprocess.PIPE)
        status = proc.wait()
        message = "\n".join(proc.stderr.readlines())
        proc.stderr.close()
        del proc

        if status != 0:
            ErrorDialog(
                _("Archiving failed"),
                _("An attempt to create the archive failed "
                  "with the following message:\n\n%s") % message)

    if cursor_func:
        cursor_func(_("Creating data to be archived..."))

    plugin_manager = GuiPluginManager.get_instance()
    for plugin in plugin_manager.get_export_plugins():
        if plugin.get_extension() == "gramps":
            export_function = plugin.get_export_function()
            export_function(dbase, filename, None, callback)

    if cursor_func:
        cursor_func(_("Saving archive..."))

    cmd = ci_cmd + ['-m%s' % comment, filename, archive_name]
    proc = subprocess.Popen(cmd, stderr=subprocess.PIPE)

    status = proc.wait()
    message = "\n".join(proc.stderr.readlines())
    proc.stderr.close()
    del proc

    if status != 0:
        ErrorDialog(
            _("Archiving failed"),
            _("An attempt to archive the data failed "
              "with the following message:\n\n%s") % message)
Example #23
0
def importData(database, filename, callback=None):
    """
    Try to handle ANSEL encoded files that are not really ANSEL encoded
    """

    if DbMixin not in database.__class__.__bases__:
        database.__class__.__bases__ = (DbMixin,) +  \
                                        database.__class__.__bases__

    try:
        ifile = open(filename, "r")
    except IOError:
        return

    ansel = False
    gramps = False
    for index in range(50):
        line = ifile.readline().split()
        if len(line) == 0:
            break
        if len(line) > 2 and line[1][0:4] == 'CHAR' and line[2] == "ANSEL":
            ansel = True
        if len(line) > 2 and line[1][0:4] == 'SOUR' and line[2] == "GRAMPS":
            gramps = True
    ifile.close()

    if not gramps and ansel:
        top = Glade()
        code = top.get_object('codeset')
        code.set_active(0)
        dialog = top.toplevel
        dialog.run()
        enc = ['ANSEL', 'ANSEL', 'ANSI', 'ASCII', 'UTF-8']
        code_set = enc[code.get_active()]
        dialog.destroy()
    else:
        code_set = ""

    assert (isinstance(code_set, basestring))

    try:
        ifile = open(filename, "rU")
        stage_one = libgedcom.GedcomStageOne(ifile)
        stage_one.parse()

        if code_set:
            stage_one.set_encoding(code_set)
        ifile.seek(0)
        gedparse = libgedcom.GedcomParser(
            database, ifile, filename, callback, stage_one,
            config.get('preferences.default-source'))
    except IOError, msg:
        ErrorDialog(_("%s could not be opened\n") % filename, str(msg))
        return
Example #24
0
 def _local_init(self):
     self.top = Glade()
     self.set_window(self.top.toplevel, self.top.get_object("title"),
                     _('Link Editor'))
     self.table = self.top.get_object('table27')
     self.uri_list = gtk.combo_box_new_text()
     for text in [
             _("Internet Address"),  # 0 this order range above
             _("Event"),  # 1 
             _("Family"),  # 2 
             _("Media"),  # 3
             _("Note"),  # 4
             _("Person"),  # 5
             _("Place"),  # 6
             _("Repository"),  # 7
             _("Source"),  # 8
     ]:
         self.uri_list.append_text(text)
     self.table.attach(self.uri_list, 1, 2, 0, 1)
     self.pick_item = self.top.get_object('button1')
     #self.edit_item = self.top.get_object('button2')
     self.selected = self.top.get_object('label1')
     self.url_link = self.top.get_object('entry1')
     self.uri_list.connect("changed", self._on_type_changed)
     self.pick_item.connect("clicked", self._on_pick_one)
     #self.edit_item.connect("clicked", self._on_edit_one)
     if self.url.startswith("gramps://"):
         object_class, prop, value = self.url[9:].split("/", 2)
         if object_class == "Event":
             self.uri_list.set_active(EVENT)
         elif object_class == "Family":
             self.uri_list.set_active(FAMILY)
         elif object_class == "Media":
             self.uri_list.set_active(MEDIA)
         elif object_class == "Note":
             self.uri_list.set_active(NOTE)
         elif object_class == "Person":
             self.uri_list.set_active(PERSON)
         elif object_class == "Place":
             self.uri_list.set_active(PLACE)
         elif object_class == "Repository":
             self.uri_list.set_active(REPOSITORY)
         elif object_class == "Source":
             self.uri_list.set_active(SOURCE)
         # set texts:
         self.selected.set_text(self.display_link(object_class, prop,
                                                  value))
         self.url_link.set_text("gramps://%s/%s/%s" %
                                (object_class, prop, value))
     else:
         self.uri_list.set_active(WEB)
         self.url_link.set_text(self.url)
     self.url_link.connect("changed", self.update_ui)
Example #25
0
    def _local_init(self):
        self.width_key = 'interface.child-ref-width'
        self.height_key = 'interface.child-ref-height'

        self.top = Glade()
        self.set_window(self.top.toplevel, self.top.get_object("title"),
                        self.name, _('Child Reference Editor'))

        self.ok_button = self.top.get_object('ok')
        self.edit_button = self.top.get_object('edit')
        self.name_label = self.top.get_object('name')
        self.name_label.set_text(self.name)
Example #26
0
    def __init__(self, name, style, parent):
        """
        Create the StyleEditor.

        name - name of the style that is to be edited
        style - style object that is to be edited
        parent - StyleListDisplay object that called the editor
        """
        self.current_p = None
        self.current_name = None

        self.style = StyleSheet(style)
        self.parent = parent
        self.top = Glade(toplevel='editor')
        self.window = self.top.toplevel

        self.top.connect_signals({
            "on_save_style_clicked": self.on_save_style_clicked,
            "destroy_passed_object": self.__close,
            "on_ok_clicked": dummy_callback,
            "on_add_clicked": dummy_callback,
            "on_delete_clicked": dummy_callback,
            "on_button_press": dummy_callback,
            "on_edit_clicked": dummy_callback,
        })

        self.pname = self.top.get_object('pname')
        self.pdescription = self.top.get_object('pdescription')

        ManagedWindow.set_titles(self.window, self.top.get_object('title'),
                                 _('Style editor'))
        self.top.get_object("label6").set_text(_("point size|pt"))

        titles = [(_('Paragraph'), 0, 130)]
        self.plist = ListModel.ListModel(self.top.get_object("ptree"), titles,
                                         self.change_display)

        self.top.get_object('color').connect('color-set', self.fg_color_set)
        self.top.get_object('bgcolor').connect('color-set', self.bg_color_set)
        self.top.get_object("style_name").set_text(name)

        names = self.style.get_paragraph_style_names()
        names.reverse()
        for p_name in names:
            self.plist.add([p_name], self.style.get_paragraph_style(p_name))
        self.plist.select_row(0)

        if self.parent:
            self.window.set_transient_for(parent.window)
        self.window.run()
        self.window.destroy()
Example #27
0
    def display(self):
        # get the main window from glade
        topDialog = Glade()

        # set gramps style title for the window
        window = topDialog.toplevel
        self.set_window(window, topDialog.get_object("title"),
                        _("Database Owner Editor"))

        # move help button to the left side
        action_area = topDialog.get_object("action_area")
        help_button = topDialog.get_object("help_button")
        action_area.set_child_secondary(help_button, True)

        # connect signals
        topDialog.connect_signals({
            "on_ok_button_clicked": self.on_ok_button_clicked,
            "on_cancel_button_clicked": self.close,
            "on_help_button_clicked": self.on_help_button_clicked,
            "on_eventbox_button_press_event": self.on_button_press_event,
            "on_menu_activate": self.on_menu_activate,
            "on_delete_event": self.close,
        })

        # fetch the popup menu
        self.menu = topDialog.get_object("popup_menu")
        #topDialog.connect_signals({"on_menu_activate": self.on_menu_activate})

        # get current db owner and attach it to the entries of the window
        self.owner = self.db.get_researcher()

        self.entries = []
        entry = [
            ("name", self.owner.set_name, self.owner.get_name),
            ("address", self.owner.set_address, self.owner.get_address),
            ("locality", self.owner.set_locality, self.owner.get_locality),
            ("city", self.owner.set_city, self.owner.get_city),
            ("state", self.owner.set_state, self.owner.get_state),
            ("country", self.owner.set_country, self.owner.get_country),
            ("zip", self.owner.set_postal_code, self.owner.get_postal_code),
            ("phone", self.owner.set_phone, self.owner.get_phone),
            ("email", self.owner.set_email, self.owner.get_email),
        ]

        for (name, set_fn, get_fn) in entry:
            self.entries.append(
                MonitoredEntry(topDialog.get_object(name), set_fn, get_fn,
                               self.db.readonly))
        # ok, let's see what we've done
        self.show()
Example #28
0
    def __init__(self, booklist, nodelete=0, dosave=0):
        """
        Create a BookListDisplay object that displays the books in BookList.

        booklist:   books that are displayed
        nodelete:   if not 0 then the Delete button is hidden
        dosave:     if 1 then the book list is saved on hitting OK
        """

        self.booklist = booklist
        self.dosave = dosave
        self.xml = Glade()
        self.top = self.xml.toplevel
        self.unsaved_changes = False

        ManagedWindow.set_titles(self.top, self.xml.get_object('title'),
                                 _('Available Books'))

        if nodelete:
            delete_button = self.xml.get_object("delete_button")
            delete_button.hide()
        self.xml.connect_signals({
            "on_booklist_cancel_clicked": self.on_booklist_cancel_clicked,
            "on_booklist_ok_clicked": self.on_booklist_ok_clicked,
            "on_booklist_delete_clicked": self.on_booklist_delete_clicked,
            "on_book_ok_clicked": self.do_nothing,
            "destroy_passed_object": self.do_nothing,
            "on_setup_clicked": self.do_nothing,
            "on_down_clicked": self.do_nothing,
            "on_up_clicked": self.do_nothing,
            "on_remove_clicked": self.do_nothing,
            "on_add_clicked": self.do_nothing,
            "on_edit_clicked": self.do_nothing,
            "on_open_clicked": self.do_nothing,
            "on_save_clicked": self.do_nothing,
            "on_clear_clicked": self.do_nothing
        })

        title_label = self.xml.get_object('title')
        title_label.set_text(Utils.title(_('Book List')))
        title_label.set_use_markup(True)

        self.blist = ListModel.ListModel(
            self.xml.get_object("list"),
            [('Name', -1, 10)],
        )
        self.redraw()
        self.selection = None
        self.top.run()
Example #29
0
    def _local_init(self):
        self.width_key = 'interface.place-width'
        self.height_key = 'interface.place-height'
        
        self.top = Glade()

        self.set_window(self.top.toplevel, None,
                        self.get_menu_title())
        tblmloc =  self.top.get_object('table19')
        notebook = self.top.get_object('notebook3')
        #recreate start page as GrampsTab
        notebook.remove_page(0)
        self.mloc = MainLocTab(self.dbstate, self.uistate, self.track, 
                              _('_Location'), tblmloc)
        self.track_ref_for_deletion("mloc")
Example #30
0
    def __init__(self,default_metric,default_name,default_orientation,
                 margins=[2.54,2.54,2.54,2.54], custom=[29.7,21.0]):
        gtk.HBox.__init__(self)
        glade_xml = Glade()

        self.paper_table = glade_xml.get_object('paper_table')

        
        # get all the widgets
        widgets = ('pwidth', 'pheight', 'lmargin', 'rmargin', 'tmargin',
                   'bmargin', 'lunits1', 'lunits2', 'lunits3', 'lunits4',
                   'lunits5', 'lunits6', 'metric')
        
        for w in widgets:
            setattr(self, w, glade_xml.get_object(w))
        
        # insert custom widgets
        self.papersize_menu = PaperComboBox(default_name)
        self.orientation_menu = OrientationComboBox(default_orientation)
        self.metric.set_active(default_metric)
        
        # connect all widgets
        format_table = glade_xml.get_object('format_table')
        format_table.attach(self.papersize_menu, 1, 3, 0, 1,
                            yoptions=gtk.SHRINK)
        format_table.attach(self.orientation_menu, 1, 3, 3, 4,
                            yoptions=gtk.SHRINK)

        # connect signals
        self.papersize_menu.connect('changed',self.size_changed)
        self.metric.connect('toggled',self.units_changed)

        # set initial values
        self.paper_unit = 'cm'
        self.paper_unit_multiplier = 1.0

        self.pwidth.set_text("%.2f" % custom[0])
        self.pheight.set_text("%.2f" % custom[1])
        self.lmargin.set_text("%.2f" % margins[0])
        self.rmargin.set_text("%.2f" % margins[1])
        self.tmargin.set_text("%.2f" % margins[2])
        self.bmargin.set_text("%.2f" % margins[3])
        
        self.paper_table.show_all()
        self.paper_table.reparent(self)

        self.units_changed(self.metric)
        self.size_changed(None)