GeoView : bottombar and sidebar management. better resizing and some cleaning.
svn: r16392
This commit is contained in:
		| @@ -317,6 +317,7 @@ class GeoView(HtmlView): | |||||||
|         self.other_action = None |         self.other_action = None | ||||||
|         self.active_signal = None |         self.active_signal = None | ||||||
|         self.mru_signal = None |         self.mru_signal = None | ||||||
|  |         self.widget = None | ||||||
|         self.nav_group = 0 |         self.nav_group = 0 | ||||||
|         self.mru_active = DISABLED |         self.mru_active = DISABLED | ||||||
|         self.invalidpath = const.ROOT_DIR.find("(") |         self.invalidpath = const.ROOT_DIR.find("(") | ||||||
| @@ -439,8 +440,6 @@ class GeoView(HtmlView): | |||||||
|                                                "without_coord.html") |                                                "without_coord.html") | ||||||
|         self.endinit = False |         self.endinit = False | ||||||
|         self.generic_filter = None |         self.generic_filter = None | ||||||
|         self.hpaned = gtk.HBox() # for filters |  | ||||||
|         self.filter.pack_start(self.hpaned, True, True) |  | ||||||
|         self.signal_map = {'place-add': self._place_changed, |         self.signal_map = {'place-add': self._place_changed, | ||||||
|                            'place-update' : self._place_changed} |                            'place-update' : self._place_changed} | ||||||
|         self.context_id = 0 |         self.context_id = 0 | ||||||
| @@ -453,6 +452,9 @@ class GeoView(HtmlView): | |||||||
|         self.crosspath = urlparse.urlunsplit( |         self.crosspath = urlparse.urlunsplit( | ||||||
|             ('file', '', URL_SEP.join(fpath.split(os.sep)), '', '') |             ('file', '', URL_SEP.join(fpath.split(os.sep)), '', '') | ||||||
|             ) |             ) | ||||||
|  |         self.side = None | ||||||
|  |         self.bottom = None | ||||||
|  |         self.add_filter(PlaceSidebarFilter) | ||||||
|         return HtmlView.build_widget(self) |         return HtmlView.build_widget(self) | ||||||
|  |  | ||||||
|     def can_configure(self): |     def can_configure(self): | ||||||
| @@ -482,6 +484,10 @@ class GeoView(HtmlView): | |||||||
|                           self.config_crosshair) |                           self.config_crosshair) | ||||||
|         self._config.connect("preferences.network-test", |         self._config.connect("preferences.network-test", | ||||||
|                           self.config_network_test) |                           self.config_network_test) | ||||||
|  |         self._config.connect("bottombar.visible", | ||||||
|  |                           self._size_request_for_bars) | ||||||
|  |         self._config.connect("sidebar.visible", | ||||||
|  |                           self._size_request_for_bars) | ||||||
|  |  | ||||||
|     def config_update_int(self, obj, constant): |     def config_update_int(self, obj, constant): | ||||||
|         """ |         """ | ||||||
| @@ -618,7 +624,6 @@ class GeoView(HtmlView): | |||||||
|         """ |         """ | ||||||
|         self.displaytype = "places" |         self.displaytype = "places" | ||||||
|         self._set_lock_unlock(True) |         self._set_lock_unlock(True) | ||||||
|         self.filter_toggle(None, None, None, None) |  | ||||||
|         self._geo_places() |         self._geo_places() | ||||||
|          |          | ||||||
|     def top_widget(self): |     def top_widget(self): | ||||||
| @@ -650,7 +655,7 @@ class GeoView(HtmlView): | |||||||
|         self.placebox.child.set_completion(completion) |         self.placebox.child.set_completion(completion) | ||||||
|         box = gtk.HBox() |         box = gtk.HBox() | ||||||
|         box.pack_start(self.clear, False, False, padding=2) |         box.pack_start(self.clear, False, False, padding=2) | ||||||
|         box.pack_start(self.placebox, False, False, padding=2) |         box.pack_start(self.placebox, True, True, padding=2) | ||||||
|         box.pack_start(self.pages_selection, False, False, padding=2) |         box.pack_start(self.pages_selection, False, False, padding=2) | ||||||
|         box.pack_start(self.nocoord, False, False, padding=2) |         box.pack_start(self.nocoord, False, False, padding=2) | ||||||
|         box.pack_start(self.years, False, False, padding=2) |         box.pack_start(self.years, False, False, padding=2) | ||||||
| @@ -663,13 +668,9 @@ class GeoView(HtmlView): | |||||||
|         font.set_weight(pango.WEIGHT_HEAVY) |         font.set_weight(pango.WEIGHT_HEAVY) | ||||||
|         font.set_style(pango.STYLE_NORMAL) |         font.set_style(pango.STYLE_NORMAL) | ||||||
|         self.heading.modify_font(font) |         self.heading.modify_font(font) | ||||||
|         self.box1.pack_start(box, False, False, padding=2) |         self.box1.pack_start(box, True, True, padding=2) | ||||||
|         self.box1.pack_start(self.heading, False, False, padding=2) |         self.box1.pack_start(self.heading, True, True, padding=2) | ||||||
|         self.box1.show_all() |         self.box1.show_all() | ||||||
|         if self.displaytype == "places": |  | ||||||
|             self.wspace.add_filter(PlaceSidebarFilter) |  | ||||||
|         elif self.displaytype == "event": |  | ||||||
|             self.wspace.add_filter(EventSidebarFilter) |  | ||||||
|         return self.box1 |         return self.box1 | ||||||
|  |  | ||||||
|     def _entry_key_event(self, widget, event): |     def _entry_key_event(self, widget, event): | ||||||
| @@ -888,6 +889,10 @@ class GeoView(HtmlView): | |||||||
|         self.nocoord.hide() |         self.nocoord.hide() | ||||||
|         self.box.connect("size-allocate", self._size_request_for_map) |         self.box.connect("size-allocate", self._size_request_for_map) | ||||||
|  |  | ||||||
|  |     def _size_request_for_bars(self, widget, event, data, data1): | ||||||
|  |         if self.widget is not None: | ||||||
|  |             self._size_request_for_map(self.widget,None,None) | ||||||
|  |  | ||||||
|     def _size_request_for_map(self, widget, event, data=None): |     def _size_request_for_map(self, widget, event, data=None): | ||||||
|         # pylint: disable-msg=W0613 |         # pylint: disable-msg=W0613 | ||||||
|         """ |         """ | ||||||
| @@ -895,22 +900,38 @@ class GeoView(HtmlView): | |||||||
|         """ |         """ | ||||||
|         if not self.javascript_ready: |         if not self.javascript_ready: | ||||||
|             return |             return | ||||||
|         # VBox -> NoteBook -> HPaned -> HBox |         # VPane -> Hpane -> NoteBook -> HPaned -> VBox -> Window | ||||||
|         # We need to get the visible size |         # We need to get the HPaned size and the VPaned size. | ||||||
|         position = widget.parent.parent.get_position() |         self.box1_size = self.box1.get_allocation() | ||||||
|         # We need to get the gramps size (gtk.window). |         self.header_size = self.box1_size.height  | ||||||
|         gws = widget.parent.parent.parent.get_allocation() |         self.height = ( widget.parent.get_allocation().height - self.header_size -  | ||||||
|         tgws = widget.parent.parent.get_allocation() |                         widget.parent.get_child2().get_allocation().height - 30 ) | ||||||
|         # We need to get the HPaned size. |         self.width = ( widget.parent.parent.get_allocation().width - | ||||||
|         self.header_size = self.box1.get_allocation().height # + 20 |                        widget.parent.parent.get_child2().get_allocation().width - 30 ) | ||||||
|         self.height = tgws.height - self.header_size - ( 6 * 4 ) |         if not self._config.get('sidebar.visible'): | ||||||
|         if not config.get('interface.filter'): |             if self.side is not None: | ||||||
|             self.width = gws.width - ( 2 * 10 ) |                 self.width = widget.parent.parent.get_allocation().width - 24 | ||||||
|  |             else: | ||||||
|  |                 self.side = widget | ||||||
|  |                 self.width = widget.parent.parent.get_allocation().width - 300 | ||||||
|             _LOG.debug("No sidebar : map width=%d" % self.width ) |             _LOG.debug("No sidebar : map width=%d" % self.width ) | ||||||
|         else: |         else: | ||||||
|             self.width = position - ( 2 * 10 ) |  | ||||||
|             _LOG.debug("Sidebar : map width=%d" % self.width ) |             _LOG.debug("Sidebar : map width=%d" % self.width ) | ||||||
|         self.width = 1024 if self.width < 0 else self.width |         if not self._config.get('bottombar.visible'): | ||||||
|  |             if self.bottom is not None: | ||||||
|  |                 self.height = ( widget.parent.get_allocation().height - self.header_size - 24 ) | ||||||
|  |             else: | ||||||
|  |                 self.bottom = widget | ||||||
|  |                 self.height = ( widget.parent.get_allocation().height - self.header_size - 400 ) | ||||||
|  |             _LOG.debug("No bottombar : map height=%d" % self.height ) | ||||||
|  |         else: | ||||||
|  |             _LOG.debug("bottombar : map height=%d" % self.height ) | ||||||
|  |         self.widget = widget | ||||||
|  |         self.height = 10 if self.height < 10 else self.height | ||||||
|  |         self.width = 10 if self.width < 10 else self.width | ||||||
|  |         self.box1_size.width = self.width | ||||||
|  |         self.box1_size.height = self.height | ||||||
|  |         self.box1.set_allocation(self.box1_size) | ||||||
|         if self.javascript_ready: |         if self.javascript_ready: | ||||||
|             _LOG.debug("New size : width=%d and height=%d" % |             _LOG.debug("New size : width=%d and height=%d" % | ||||||
|                        (self.width, self.height)) |                        (self.width, self.height)) | ||||||
| @@ -937,7 +958,6 @@ class GeoView(HtmlView): | |||||||
|         self.mru_signal = hobj.connect('mru-changed', self.update_mru_menu) |         self.mru_signal = hobj.connect('mru-changed', self.update_mru_menu) | ||||||
|         self.update_mru_menu(hobj.mru) |         self.update_mru_menu(hobj.mru) | ||||||
|         self._goto_active_person() |         self._goto_active_person() | ||||||
|         self.filter.hide() # hide the filter |  | ||||||
|         self.active = True |         self.active = True | ||||||
|         self._test_network() |         self._test_network() | ||||||
|  |  | ||||||
| @@ -1462,7 +1482,6 @@ class GeoView(HtmlView): | |||||||
|         self.back_action.set_sensitive(not hobj.at_front()) |         self.back_action.set_sensitive(not hobj.at_front()) | ||||||
|         self.other_action.set_sensitive(not self.dbstate.db.readonly) |         self.other_action.set_sensitive(not self.dbstate.db.readonly) | ||||||
|         self.uistate.modify_statusbar(self.dbstate) |         self.uistate.modify_statusbar(self.dbstate) | ||||||
|         #PageView.change_page(self) |  | ||||||
|         self.uistate.clear_filter_results() |         self.uistate.clear_filter_results() | ||||||
|         self._set_lock_unlock(config.get('geoview.lock')) |         self._set_lock_unlock(config.get('geoview.lock')) | ||||||
|         self._savezoomandposition(500) # every 500 millisecondes |         self._savezoomandposition(500) # every 500 millisecondes | ||||||
| @@ -1486,6 +1505,7 @@ class GeoView(HtmlView): | |||||||
|         self.displaytype = "places" |         self.displaytype = "places" | ||||||
|         self.remove_filter() |         self.remove_filter() | ||||||
|         self.add_filter(PlaceSidebarFilter) |         self.add_filter(PlaceSidebarFilter) | ||||||
|  |         self.widget.parent.parent.get_child2().show() | ||||||
|         self._geo_places() |         self._geo_places() | ||||||
|  |  | ||||||
|     def _person_places(self, handle=None): # pylint: disable-msg=W0613 |     def _person_places(self, handle=None): # pylint: disable-msg=W0613 | ||||||
| @@ -1493,9 +1513,9 @@ class GeoView(HtmlView): | |||||||
|         Specifies the person places. |         Specifies the person places. | ||||||
|         """ |         """ | ||||||
|         self.displaytype = "person" |         self.displaytype = "person" | ||||||
|         self.remove_filter() |  | ||||||
|         if not self.uistate.get_active('Person'): |         if not self.uistate.get_active('Person'): | ||||||
|             return |             return | ||||||
|  |         self.widget.parent.parent.get_child2().hide() | ||||||
|         self._geo_places() |         self._geo_places() | ||||||
|  |  | ||||||
|     def _family_places(self, hanle=None): # pylint: disable-msg=W0613  |     def _family_places(self, hanle=None): # pylint: disable-msg=W0613  | ||||||
| @@ -1503,9 +1523,9 @@ class GeoView(HtmlView): | |||||||
|         Specifies the family places to display with mapstraction. |         Specifies the family places to display with mapstraction. | ||||||
|         """ |         """ | ||||||
|         self.displaytype = "family" |         self.displaytype = "family" | ||||||
|         self.remove_filter() |  | ||||||
|         if not self.uistate.get_active('Person'): |         if not self.uistate.get_active('Person'): | ||||||
|             return |             return | ||||||
|  |         self.widget.parent.parent.get_child2().hide() | ||||||
|         self._geo_places() |         self._geo_places() | ||||||
|  |  | ||||||
|     def _event_places(self, hanle=None): # pylint: disable-msg=W0613 |     def _event_places(self, hanle=None): # pylint: disable-msg=W0613 | ||||||
| @@ -1515,6 +1535,7 @@ class GeoView(HtmlView): | |||||||
|         self.displaytype = "event" |         self.displaytype = "event" | ||||||
|         self.remove_filter() |         self.remove_filter() | ||||||
|         self.add_filter(EventSidebarFilter) |         self.add_filter(EventSidebarFilter) | ||||||
|  |         self.widget.parent.parent.get_child2().show() | ||||||
|         self._geo_places() |         self._geo_places() | ||||||
|  |  | ||||||
|     def _new_database(self, database): |     def _new_database(self, database): | ||||||
| @@ -1572,6 +1593,7 @@ class GeoView(HtmlView): | |||||||
|             image.set_from_stock('geo-free-zoom', gtk.ICON_SIZE_MENU) |             image.set_from_stock('geo-free-zoom', gtk.ICON_SIZE_MENU) | ||||||
|         image.show() |         image.show() | ||||||
|         self.savezoom.add(image) |         self.savezoom.add(image) | ||||||
|  |         self._geo_places() | ||||||
|  |  | ||||||
|     def _save_zoom(self, button): # pylint: disable-msg=W0613 |     def _save_zoom(self, button): # pylint: disable-msg=W0613 | ||||||
|         """ |         """ | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user