diff --git a/src/calibre/gui2/library.py b/src/calibre/gui2/library.py index 7b2ac8e20a..45d3744ad2 100644 --- a/src/calibre/gui2/library.py +++ b/src/calibre/gui2/library.py @@ -8,7 +8,7 @@ from math import cos, sin, pi from PyQt4.QtGui import QTableView, QAbstractItemView, QColor, \ QItemDelegate, QPainterPath, QLinearGradient, QBrush, \ QPen, QStyle, QPainter, QLineEdit, \ - QPalette, QImage, QApplication + QPalette, QImage, QApplication, QMenu from PyQt4.QtCore import QAbstractTableModel, QVariant, Qt, QString, \ SIGNAL, QObject, QSize, QModelIndex @@ -559,7 +559,18 @@ class BooksView(TableView): if col > -1: self.setItemDelegateForColumn(col, self.rating_delegate) + def set_context_menu(self, edit_metadata, send_to_device, convert, view): + self.setContextMenuPolicy(Qt.DefaultContextMenu) + self.context_menu = QMenu(self) + self.context_menu.addAction(edit_metadata) + self.context_menu.addAction(send_to_device) + self.context_menu.addAction(convert) + self.context_menu.addAction(view) + def contextMenuEvent(self, event): + self.context_menu.popup(event.globalPos()) + event.accept() + def sortByColumn(self, colname, order): try: idx = self._model.column_map.index(colname) diff --git a/src/calibre/gui2/main.py b/src/calibre/gui2/main.py index 7cb2d00fee..0f49b97beb 100644 --- a/src/calibre/gui2/main.py +++ b/src/calibre/gui2/main.py @@ -218,8 +218,9 @@ class Main(MainWindow, Ui_MainWindow): QObject.connect(self.config_button, SIGNAL('clicked(bool)'), self.do_config) QObject.connect(self.advanced_search_button, SIGNAL('clicked(bool)'), self.do_advanced_search) - + ####################### Library view ######################## + self.library_view.set_context_menu(self.action_edit, self.action_sync, self.action_convert, self.action_view) QObject.connect(self.library_view, SIGNAL('files_dropped(PyQt_PyObject)'), self.files_dropped) for func, target in [