diff --git a/src/gui/aboutdialog.py b/src/gui/aboutdialog.py index c88a7ab72..0ef2b6262 100644 --- a/src/gui/aboutdialog.py +++ b/src/gui/aboutdialog.py @@ -44,6 +44,7 @@ except ImportError: # Gtk modules # #------------------------------------------------------------------------- +from gi.repository import GObject from gi.repository import Gtk from gi.repository import GdkPixbuf diff --git a/src/gui/configure.py b/src/gui/configure.py index ed1e283a3..de1fabc3c 100644 --- a/src/gui/configure.py +++ b/src/gui/configure.py @@ -168,7 +168,7 @@ class ConfigureDialog(ManagedWindow): self.__config = configmanager ManagedWindow.__init__(self, uistate, [], configobj) self.set_window( - Gtk.Dialog(dialogtitle, flags=Gtk.DialogFlags.NO_SEPARATOR, + Gtk.Dialog(dialogtitle, buttons=(Gtk.STOCK_CLOSE, Gtk.ResponseType.CLOSE)), None, dialogtitle, None) self.panel = Gtk.Notebook() @@ -307,8 +307,8 @@ class ConfigureDialog(ManagedWindow): image.set_from_stock(Gtk.STOCK_OPEN, Gtk.IconSize.BUTTON) image.show() btn.add(image) - hbox.pack_start(entry, expand=True, fill=True) - hbox.pack_start(btn, expand=False, fill=False) + hbox.pack_start(entry, True, True, 0) + hbox.pack_start(btn, False, False, 0) table.attach(lwidget, 1, 2, index, index+1, yoptions=0, xoptions=Gtk.AttachOptions.FILL) table.attach(hbox, 2, 3, index, index+1, yoptions=0) @@ -418,7 +418,7 @@ class ConfigureDialog(ManagedWindow): callback = self.update_spinner lwidget = BasicLabel("%s: " % label) adj = Gtk.Adjustment(config.get(constant), range[0], range[1], 1, 0, 0) - spinner = Gtk.SpinButton(adj) + spinner = Gtk.SpinButton(adjustment=adj, climb_rate=0.0, digits=0) spinner.connect('value-changed', callback, constant) table.attach(lwidget, 1, 2, index, index+1, yoptions=0, xoptions=Gtk.AttachOptions.FILL) @@ -875,8 +875,8 @@ class GrampsPreferences(ConfigureDialog): hbox = Gtk.HBox() btn = Gtk.Button("%s..." % _('Edit') ) btn.connect('clicked', self.cb_name_dialog) - hbox.pack_start(self.fmt_obox, expand=True, fill=True) - hbox.pack_start(btn, expand=False, fill=False) + hbox.pack_start(self.fmt_obox, True, True, 0) + hbox.pack_start(btn, False, False, 0) table.attach(lwidget, 0, 1, row, row+1, yoptions=0) table.attach(hbox, 1, 3, row, row+1, yoptions=0) row += 1 diff --git a/src/gui/ddtargets.py b/src/gui/ddtargets.py index 6004ed099..4359a6eee 100644 --- a/src/gui/ddtargets.py +++ b/src/gui/ddtargets.py @@ -90,6 +90,13 @@ class _DdType: return Gtk.TargetEntry.new(self.drag_type, self.target_flags, self.app_id) + def target_data(self): + """ + Return the target information as a list in the format required by + Gtk3 functions. + """ + return [self.drag_type, self.target_flags, self.app_id] + class _DdTargets(object): """A single class that manages all the drag and drop targets.""" diff --git a/src/gui/editors/displaytabs/addressmodel.py b/src/gui/editors/displaytabs/addressmodel.py index 293fda5be..80906f11f 100644 --- a/src/gui/editors/displaytabs/addressmodel.py +++ b/src/gui/editors/displaytabs/addressmodel.py @@ -52,7 +52,7 @@ class AddressModel(Gtk.ListStore): """ AddressModel derives from the ListStore, defining te items in the list """ - GObject.GObject.__init__(self, str, str, str, str, str, str, object) + Gtk.ListStore.__init__(self, str, str, str, str, str, str, object) self.db = dbase for obj in obj_list: self.append(row=[ diff --git a/src/gui/editors/displaytabs/attrmodel.py b/src/gui/editors/displaytabs/attrmodel.py index 152909bff..adeac16c7 100644 --- a/src/gui/editors/displaytabs/attrmodel.py +++ b/src/gui/editors/displaytabs/attrmodel.py @@ -42,7 +42,7 @@ from gi.repository import Gtk class AttrModel(Gtk.ListStore): def __init__(self, attr_list, db): - GObject.GObject.__init__(self, str, str, object) + Gtk.ListStore.__init__(self, str, str, object) self.db = db for attr in attr_list: self.append(row=[ diff --git a/src/gui/editors/displaytabs/backrefmodel.py b/src/gui/editors/displaytabs/backrefmodel.py index 00a0ea5f7..474b6c201 100644 --- a/src/gui/editors/displaytabs/backrefmodel.py +++ b/src/gui/editors/displaytabs/backrefmodel.py @@ -49,7 +49,7 @@ class BackRefModel(Gtk.ListStore): dispstr = _('%(part1)s - %(part2)s') def __init__(self, sref_list, db): - GObject.GObject.__init__(self, str, str, str, str, str) + Gtk.ListStore.__init__(self, str, str, str, str, str) self.db = db self.sref_list = sref_list self.count = 0 diff --git a/src/gui/editors/displaytabs/childmodel.py b/src/gui/editors/displaytabs/childmodel.py index fc10c852a..4e9646a0a 100644 --- a/src/gui/editors/displaytabs/childmodel.py +++ b/src/gui/editors/displaytabs/childmodel.py @@ -47,7 +47,7 @@ from gen.utils import get_birth_or_fallback, get_death_or_fallback class ChildModel(Gtk.ListStore): def __init__(self, child_ref_list, db): - GObject.GObject.__init__(self, int, str, str, str, str, str, + Gtk.ListStore.__init__(self, int, str, str, str, str, str, str, str, str, str, str, str, str, object) self.db = db for index, child_ref in enumerate(child_ref_list): diff --git a/src/gui/editors/displaytabs/citationrefmodel.py b/src/gui/editors/displaytabs/citationrefmodel.py index e9fb4d2e8..04972bf75 100644 --- a/src/gui/editors/displaytabs/citationrefmodel.py +++ b/src/gui/editors/displaytabs/citationrefmodel.py @@ -36,7 +36,7 @@ from gi.repository import Gtk class CitationRefModel(Gtk.ListStore): def __init__(self, citation_list, db): - GObject.GObject.__init__(self, str, str, str, str, object) + Gtk.ListStore.__init__(self, str, str, str, str, object) self.db = db for handle in citation_list: citation = self.db.get_citation_from_handle(handle) diff --git a/src/gui/editors/displaytabs/datamodel.py b/src/gui/editors/displaytabs/datamodel.py index 30f355894..929ca2420 100644 --- a/src/gui/editors/displaytabs/datamodel.py +++ b/src/gui/editors/displaytabs/datamodel.py @@ -42,7 +42,7 @@ from gi.repository import Gtk class DataModel(Gtk.ListStore): def __init__(self, attr_list, db): - GObject.GObject.__init__(self, str, str) + Gtk.ListStore.__init__(self, str, str) self.db = db for key,value in attr_list.items(): diff --git a/src/gui/editors/displaytabs/embeddedlist.py b/src/gui/editors/displaytabs/embeddedlist.py index 83e81c079..09330d942 100644 --- a/src/gui/editors/displaytabs/embeddedlist.py +++ b/src/gui/editors/displaytabs/embeddedlist.py @@ -176,14 +176,15 @@ class EmbeddedList(ButtonTab): """ if self._DND_EXTRA: - dnd_types = [ self._DND_TYPE.target(), self._DND_EXTRA.target() ] + dnd_types = [self._DND_TYPE.target_data(), + self._DND_EXTRA.target_data()] else: - dnd_types = [ self._DND_TYPE.target() ] + dnd_types = [self._DND_TYPE.target_data()] self.tree.enable_model_drag_dest(dnd_types, Gdk.DragAction.COPY) self.tree.enable_model_drag_source(Gdk.ModifierType.BUTTON1_MASK, - [self._DND_TYPE.target()], + [self._DND_TYPE.target_data()], Gdk.DragAction.COPY) self.tree.connect('drag_data_get', self.drag_data_get) if not self.dbstate.db.readonly: diff --git a/src/gui/editors/displaytabs/gallerytab.py b/src/gui/editors/displaytabs/gallerytab.py index ea4cd2a03..888c1bf52 100644 --- a/src/gui/editors/displaytabs/gallerytab.py +++ b/src/gui/editors/displaytabs/gallerytab.py @@ -35,6 +35,8 @@ import urlparse # GTK libraries # #------------------------------------------------------------------------- +from gi.repository import Gdk +from gi.repository import GdkPixbuf from gi.repository import Gtk from gi.repository import Pango import os @@ -197,8 +199,8 @@ class GalleryTab(ButtonTab, DbGUIElement): text_renderer.set_property('wrap-mode', Pango.WrapMode.WORD_CHAR) text_renderer.set_property('wrap-width', const.THUMBSCALE) text_renderer.set_property('alignment', Pango.Alignment.CENTER) - self.iconlist.pack_end(text_renderer) - self.iconlist.set_attributes(text_renderer, text=1) + self.iconlist.pack_end(text_renderer, True) + self.iconlist.add_attribute(text_renderer, "text", 1) # set basic properties of the icon view self.iconlist.set_margin(padding) @@ -218,7 +220,7 @@ class GalleryTab(ButtonTab, DbGUIElement): # put everything together scroll.add(self.iconlist) - self.pack_end(scroll, True) + self.pack_end(scroll, True, True, 0) def _update_internal_list(self, *obj): newlist = [] diff --git a/src/gui/editors/displaytabs/ldsmodel.py b/src/gui/editors/displaytabs/ldsmodel.py index c9ea2441e..7f85f88bd 100644 --- a/src/gui/editors/displaytabs/ldsmodel.py +++ b/src/gui/editors/displaytabs/ldsmodel.py @@ -51,7 +51,7 @@ class LdsModel(Gtk.ListStore): _HANDLE_COL = 5 def __init__(self, lds_list, db): - GObject.GObject.__init__(self, str, str, str, str, str, object) + Gtk.ListStore.__init__(self, str, str, str, str, str, object) self.db = db for lds_ord in lds_list: diff --git a/src/gui/editors/displaytabs/locationmodel.py b/src/gui/editors/displaytabs/locationmodel.py index 99a411e8b..db687b61b 100644 --- a/src/gui/editors/displaytabs/locationmodel.py +++ b/src/gui/editors/displaytabs/locationmodel.py @@ -42,7 +42,7 @@ from gi.repository import Gtk class LocationModel(Gtk.ListStore): def __init__(self, obj_list, db): - GObject.GObject.__init__(self, str, str, str, str, str, str, object) + Gtk.ListStore.__init__(self, str, str, str, str, str, str, object) self.db = db for obj in obj_list: self.append(row=[obj.street, obj.locality, obj.city, obj.county, diff --git a/src/gui/editors/displaytabs/notemodel.py b/src/gui/editors/displaytabs/notemodel.py index 374395f60..bae78c9a3 100644 --- a/src/gui/editors/displaytabs/notemodel.py +++ b/src/gui/editors/displaytabs/notemodel.py @@ -35,7 +35,7 @@ from gi.repository import Gtk class NoteModel(Gtk.ListStore): def __init__(self, note_list, db): - GObject.GObject.__init__(self, str, str, object) + Gtk.ListStore.__init__(self, str, str, object) self.db = db for handle in note_list: note = self.db.get_note_from_handle(handle) diff --git a/src/gui/editors/displaytabs/personrefmodel.py b/src/gui/editors/displaytabs/personrefmodel.py index ce475dbeb..99cc1b0ca 100644 --- a/src/gui/editors/displaytabs/personrefmodel.py +++ b/src/gui/editors/displaytabs/personrefmodel.py @@ -42,7 +42,7 @@ from gen.display.name import displayer as name_displayer class PersonRefModel(Gtk.ListStore): def __init__(self, obj_list, db): - GObject.GObject.__init__(self, str, str, str, object) + Gtk.ListStore.__init__(self, str, str, str, object) self.db = db for obj in obj_list: p = self.db.get_person_from_handle(obj.ref) diff --git a/src/gui/editors/displaytabs/reporefmodel.py b/src/gui/editors/displaytabs/reporefmodel.py index 9ee55873f..0a3bcf4a9 100644 --- a/src/gui/editors/displaytabs/reporefmodel.py +++ b/src/gui/editors/displaytabs/reporefmodel.py @@ -42,7 +42,7 @@ from gi.repository import Gtk class RepoRefModel(Gtk.ListStore): def __init__(self, ref_list, db): - GObject.GObject.__init__(self, str, str, str, str, object) + Gtk.ListStore.__init__(self, str, str, str, str, object) self.db = db for ref in ref_list: repo = self.db.get_repository_from_handle(ref.ref) diff --git a/src/gui/editors/displaytabs/surnamemodel.py b/src/gui/editors/displaytabs/surnamemodel.py index b54ad9b98..ff1a55b54 100644 --- a/src/gui/editors/displaytabs/surnamemodel.py +++ b/src/gui/editors/displaytabs/surnamemodel.py @@ -45,7 +45,7 @@ class SurnameModel(Gtk.ListStore): def __init__(self, surn_list, db): #setup model for the treeview - GObject.GObject.__init__(self, str, str, str, str, + Gtk.ListStore.__init__(self, str, str, str, str, bool, object) for surn in surn_list: # fill the liststore diff --git a/src/gui/editors/displaytabs/webmodel.py b/src/gui/editors/displaytabs/webmodel.py index 7f80d1c1e..cf11a26fa 100644 --- a/src/gui/editors/displaytabs/webmodel.py +++ b/src/gui/editors/displaytabs/webmodel.py @@ -42,7 +42,7 @@ class WebModel(Gtk.ListStore): """ def __init__(self, obj_list, dbase): - GObject.GObject.__init__(self, str, str, str, object) + Gtk.ListStore.__init__(self, str, str, str, object) self.db = dbase for obj in obj_list: self.append(row=[str(obj.type), obj.path, obj.desc, obj]) diff --git a/src/gui/editors/editevent.py b/src/gui/editors/editevent.py index 5104f6930..9487895de 100644 --- a/src/gui/editors/editevent.py +++ b/src/gui/editors/editevent.py @@ -210,7 +210,7 @@ class EditEvent(EditPrimary): self._setup_notebook_tabs(notebook) notebook.show_all() - self.top.get_object('vbox').pack_start(notebook, True) + self.top.get_object('vbox').pack_start(notebook, True, True, 0) self.track_ref_for_deletion("citation_list") self.track_ref_for_deletion("note_list") diff --git a/src/gui/editors/editprimary.py b/src/gui/editors/editprimary.py index 22c43bb31..785250426 100644 --- a/src/gui/editors/editprimary.py +++ b/src/gui/editors/editprimary.py @@ -147,7 +147,7 @@ class EditPrimary(ManagedWindow, DbGUIElement): def _add_tab(self, notebook, page): self.__tabs.append(page) - notebook.insert_page(page, page.get_tab_widget()) + notebook.insert_page(page, page.get_tab_widget(), -1) page.label.set_use_underline(True) return page diff --git a/src/gui/editors/editreference.py b/src/gui/editors/editreference.py index 3bee635cf..c5ff55249 100644 --- a/src/gui/editors/editreference.py +++ b/src/gui/editors/editreference.py @@ -158,7 +158,7 @@ class EditReference(ManagedWindow, DbGUIElement): def _add_tab(self, notebook,page): self.__tabs.append(page) - notebook.insert_page(page, page.get_tab_widget()) + notebook.insert_page(page, page.get_tab_widget(), -1) page.label.set_use_underline(True) return page diff --git a/src/gui/editors/editsecondary.py b/src/gui/editors/editsecondary.py index 73fb91e0b..e7310df07 100644 --- a/src/gui/editors/editsecondary.py +++ b/src/gui/editors/editsecondary.py @@ -102,7 +102,7 @@ class EditSecondary(ManagedWindow, DbGUIElement): def _add_tab(self, notebook,page): self.__tabs.append(page) - notebook.insert_page(page, page.get_tab_widget()) + notebook.insert_page(page, page.get_tab_widget(), -1) page.label.set_use_underline(True) return page diff --git a/src/gui/editors/objectentries.py b/src/gui/editors/objectentries.py index 5f6792f71..f726c238f 100644 --- a/src/gui/editors/objectentries.py +++ b/src/gui/editors/objectentries.py @@ -36,6 +36,7 @@ _LOG = logging.getLogger(".objectentries") # GTK/Gnome modules # #------------------------------------------------------------------------- +from gi.repository import Gdk from gi.repository import Gtk from gi.repository import Pango @@ -133,7 +134,7 @@ class ObjEntry(object): self.label.set_use_markup(True) else: self.label.set_text(name) - self.label.set_ellipsize(Pango.ELLIPSIZE_END) + self.label.set_ellipsize(Pango.EllipsizeMode.END) def _init_dnd(self): """inheriting objects must set this diff --git a/src/gui/filters/sidebar/_sidebarfilter.py b/src/gui/filters/sidebar/_sidebarfilter.py index 534d4dceb..4cf52710f 100644 --- a/src/gui/filters/sidebar/_sidebarfilter.py +++ b/src/gui/filters/sidebar/_sidebarfilter.py @@ -219,7 +219,8 @@ class SidebarFilter(DbGUIElement): """ hbox = Gtk.HBox() hbox.pack_start(widget, True, True, 0) - hbox.pack_start(widgets.SimpleButton(Gtk.STOCK_EDIT, self.edit_filter), False, False) + hbox.pack_start(widgets.SimpleButton(Gtk.STOCK_EDIT, self.edit_filter), + False, False, 0) self.add_entry(text, hbox) def edit_filter(self, obj): diff --git a/src/gui/glade/editevent.glade b/src/gui/glade/editevent.glade index 72a227a62..ae5653529 100644 --- a/src/gui/glade/editevent.glade +++ b/src/gui/glade/editevent.glade @@ -1,6 +1,5 @@ - @@ -247,9 +246,15 @@ - + True What type of event this is. Eg 'Burial', 'Graduation', ... . + True + + + False + + 1 diff --git a/src/gui/managedwindow.py b/src/gui/managedwindow.py index 78abe6827..7a488150a 100644 --- a/src/gui/managedwindow.py +++ b/src/gui/managedwindow.py @@ -460,7 +460,7 @@ class ManagedWindow(object): else : assert self.window, "ManagedWindow: self.window does not exist!" - self.set_transient_for(self.parent_window) + self.window.set_transient_for(self.parent_window) self.opened = True self.window.show_all() diff --git a/src/gui/plug/quick/_quicktable.py b/src/gui/plug/quick/_quicktable.py index 6cee8f02b..0a671b237 100644 --- a/src/gui/plug/quick/_quicktable.py +++ b/src/gui/plug/quick/_quicktable.py @@ -339,7 +339,7 @@ class QuickTable(SimpleTable): #treeview.enable_model_drag_dest(DdTargets.all_targets(), # Gdk.DragAction.DEFAULT) treeview.connect('drag_data_get', self.object_drag_data_get) - treeview.set_grid_lines(Gtk.TREE_VIEW_GRID_LINES_BOTH) + treeview.set_grid_lines(Gtk.TreeViewGridLines.BOTH) #treeview.connect('row-activated', on_table_doubleclick, self) #treeview.connect('cursor-changed', on_table_click, self) treeview.connect('button-press-event', self.button_press_event) diff --git a/src/gui/plug/quick/_textbufdoc.py b/src/gui/plug/quick/_textbufdoc.py index 9a6415d26..d98841ea3 100644 --- a/src/gui/plug/quick/_textbufdoc.py +++ b/src/gui/plug/quick/_textbufdoc.py @@ -69,7 +69,7 @@ class DisplayBuf(ManagedWindow): document.text_view.set_buffer(document.buffer) self.window.connect('response', self.close) scrolled_window.add(document.text_view) - self.window.vbox.add(scrolled_window) + self.window.vbox.pack_start(scrolled_window, True, True, 0) self.window.show_all() def build_menu_names(self, obj): diff --git a/src/gui/views/navigationview.py b/src/gui/views/navigationview.py index fabf0924b..e8091d62b 100644 --- a/src/gui/views/navigationview.py +++ b/src/gui/views/navigationview.py @@ -39,6 +39,7 @@ _LOG = logging.getLogger('.navigationview') # gtk # #---------------------------------------------------------------- +from gi.repository import Gdk from gi.repository import Gtk #---------------------------------------------------------------- diff --git a/src/gui/widgets/buttons.py b/src/gui/widgets/buttons.py index 87942579e..97d88883f 100644 --- a/src/gui/widgets/buttons.py +++ b/src/gui/widgets/buttons.py @@ -38,6 +38,7 @@ _LOG = logging.getLogger(".widgets.buttons") # #------------------------------------------------------------------------- from gi.repository import GObject +from gi.repository import Gdk from gi.repository import Gtk #-------------------------------------------------------------------------