16
16
# this program; if not, write to the Free Software Foundation, Inc.,
17
17
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19
from gi.repository import Gtk
19
from gi.repository import Gtk, GObject
21
21
from navhistory import NavigationHistory, NavigationItem
22
22
from softwarecenter.ui.gtk3.widgets.backforward import BackForwardButton
26
26
def get_viewmanager():
27
27
return _viewmanager
29
class ViewManager(object):
29
class ViewManager(GObject.GObject):
32
"view-changed" : (GObject.SignalFlags.RUN_LAST,
34
(GObject.TYPE_PYOBJECT, ),
31
38
def __init__(self, notebook_view, options=None):
39
GObject.GObject.__init__(self)
32
40
self.notebook_view = notebook_view
33
41
self.search_entry = SearchEntry()
34
42
self.search_entry.connect(
90
98
def set_active_view(self, view_id):
91
99
if not self.all_views:
101
self.emit('view-changed', view_id)
93
102
page_id = self.all_views[view_id]
94
103
view_widget = self.get_view_widget(view_id)
96
view_page = view_widget.get_current_page()
97
view_state = view_widget.state
105
# it *seems* that this shouldn't be called here if we want the history
106
# to work, but I'm not familiar with the code, so I'll leave it here
108
# view_page = view_widget.get_current_page()
109
# view_state = view_widget.state
99
111
if (self.search_entry.get_text() !=
100
112
view_widget.state.search_term):
101
113
self.search_entry.set_text_with_no_signal(
102
114
view_widget.state.search_term)
104
callback = view_widget.get_callback_for_page(view_page,
116
# callback = view_widget.get_callback_for_page(view_page,
107
nav_item = NavigationItem(self, view_widget, view_page,
108
view_state.copy(), callback)
109
self.navhistory.append(nav_item)
119
# nav_item = NavigationItem(self, view_widget, view_page,
120
# view_state.copy(), callback)
121
# self.navhistory.append(nav_item)
111
123
self.notebook_view.set_current_page(page_id)