Exemple #1
0
    def context_menu(self, position):
        menu = QMenu()

        def copy_key(index):
            text = self.model.keyForIndex(index).toString()
            QApplication.clipboard().setText(str(text))

        def copy_value(index):
            text = self.model.valueForIndex(index).toString()
            QApplication.clipboard().setText(str(text))

        def delete_key(index):
            name = self.model.keyForIndex(index).toString()
            self.remove_key(str(name))

        menu.addAction('Copy Key', lambda: copy_key(self.view.currentIndex()))
        menu.addAction('Copy Value', lambda: copy_value(self.view.currentIndex()))
        menu.addAction('Delete', lambda: delete_key(self.view.currentIndex()))

        idx = self.view.currentIndex()
        row = idx.row()
        idx = self.model.createIndex(row, 1)
        data_value = str(self.model.data(idx).toString())
        # Add context menu actions for all applicable variable types.
        data_categories = map(lambda x: variable_types[str(x.toString())], self.model.data(idx, role=QtCore.Qt.UserRole).toList())
        for i in data_categories:
            self.handler.add_plugin_actions(self, menu, i.category, data_value)

        menu.exec_(self.view.viewport().mapToGlobal(position))
Exemple #2
0
 def hide_unused_category_names(self):
     filters = list(self.filters)
     used_categories = set()
     for i in range(self.model.rowCount()):
         categories = [str(x.toString()) for x in self.model.dataAt(i, 1, QtCore.Qt.UserRole).toList()]
         used_categories.update(categories)
     filters = filter(lambda x: x in used_categories, filters)
     filters.insert(0, 'None')
     self.filter_category.clear()
     self.filter_category.addItems(filters)