Add context menu to grid view

This commit is contained in:
Kovid Goyal 2013-08-02 10:36:32 +05:30
parent d97ca53593
commit 0b70899dfd
2 changed files with 14 additions and 0 deletions

View File

@ -96,6 +96,11 @@ class AlternateViews(object):
rows = {r.row() for r in self.main_view.selectionModel().selectedIndexes()}
self.current_view.select_rows(rows)
def set_context_menu(self, menu):
for view in self.views.itervalues():
if view is not self.main_view:
view.set_context_menu(menu)
class CoverCache(dict):
@ -210,6 +215,7 @@ class GridView(QListView):
self.ignore_render_requests = Event()
self.render_thread = None
self.update_item.connect(self.re_render, type=Qt.QueuedConnection)
self.context_menu = None
def shown(self):
if self.render_thread is None:
@ -301,3 +307,10 @@ class GridView(QListView):
sm = self.selectionModel()
sm.setCurrentIndex(self.model().index(row, 0), sm.NoUpdate)
def set_context_menu(self, menu):
self.context_menu = menu
def contextMenuEvent(self, event):
if self.context_menu is not None:
self.context_menu.popup(event.globalPos())
event.accept()

View File

@ -696,6 +696,7 @@ class BooksView(QTableView): # {{{
def set_context_menu(self, menu, edit_collections_action):
self.setContextMenuPolicy(Qt.DefaultContextMenu)
self.context_menu = menu
self.alternate_views.set_context_menu(menu)
self.edit_collections_action = edit_collections_action
def contextMenuEvent(self, event):