Wire up the grid view button

This commit is contained in:
Kovid Goyal 2013-08-01 13:43:25 +05:30
parent 0889f6f0c6
commit fe363c95f5
2 changed files with 14 additions and 1 deletions

View File

@ -293,6 +293,7 @@ class LayoutMixin(object): # {{{
self.status_bar = StatusBar(self) self.status_bar = StatusBar(self)
stylename = unicode(self.style().objectName()) stylename = unicode(self.style().objectName())
self.grid_view_button = GridViewButton(self) self.grid_view_button = GridViewButton(self)
self.grid_view_button.toggled.connect(self.toggle_grid_view)
for x in button_order: for x in button_order:
button = self.grid_view_button if x == 'gv' else getattr(self, x+'_splitter').button button = self.grid_view_button if x == 'gv' else getattr(self, x+'_splitter').button
@ -339,6 +340,9 @@ class LayoutMixin(object): # {{{
self.library_view.currentIndex()) self.library_view.currentIndex())
self.library_view.setFocus(Qt.OtherFocusReason) self.library_view.setFocus(Qt.OtherFocusReason)
def toggle_grid_view(self, show):
self.library_view.alternate_views.show_view('grid' if show else None)
def bd_cover_changed(self, id_, cdata): def bd_cover_changed(self, id_, cdata):
self.library_view.model().db.set_cover(id_, cdata) self.library_view.model().db.set_cover(id_, cdata)
if self.cover_flow: if self.cover_flow:

View File

@ -11,7 +11,8 @@ from PyQt4.Qt import QListView
class AlternateViews(object): class AlternateViews(object):
def __init__(self, main_view): def __init__(self, main_view):
self.views = {} self.views = {None:main_view}
self.stack_positions = {None:0}
self.current_view = self.main_view = main_view self.current_view = self.main_view = main_view
self.stack = None self.stack = None
@ -21,9 +22,17 @@ class AlternateViews(object):
def add_view(self, key, view): def add_view(self, key, view):
self.views[key] = view self.views[key] = view
self.stack_positions[key] = self.stack.count()
self.stack.addWidget(view) self.stack.addWidget(view)
self.stack.setCurrentIndex(0) self.stack.setCurrentIndex(0)
def show_view(self, key=None):
view = self.views[key]
if view is self.current_view:
return
self.stack.setCurrentIndex(self.stack_positions[key])
self.current_view = view
class GridView(QListView): class GridView(QListView):
pass pass