def on_drag_data_received(self, iconview, dragcontext, x, y, selectiondata, info, time): assert selectiondata.get_target().name() in URI_TARGET_NAMES names = unpack_urilist(selectiondata.get_data()) files = [LocalFile(uri) for uri in names if uri.startswith('file://')] action = dragcontext.get_selected_action() logger.debug('Drag received %s, %s', action, files) if action == Gdk.DragAction.MOVE: self._move_files(files) elif action == Gdk.DragAction.ASK: menu = Gtk.Menu() item = Gtk.MenuItem.new_with_mnemonic( _('_Move Here')) # T: popup menu action on drag-drop of a file item.connect('activate', lambda o: self._move_files(files)) menu.append(item) item = Gtk.MenuItem.new_with_mnemonic( _('_Copy Here')) # T: popup menu action on drag-drop of a file item.connect('activate', lambda o: self._copy_files(files)) menu.append(item) menu.append(Gtk.SeparatorMenuItem()) item = Gtk.MenuItem.new_with_mnemonic( _('Cancel')) # T: popup menu action on drag-drop of a file # cancel action needs no action menu.append(item) menu.show_all() gtk_popup_at_pointer(menu) else: # Assume Gdk.DragAction.COPY or Gdk.DragAction.DEFAULT # on windows we get "0" which is not mapped to any action self._copy_files(files)
def on_button_press_event(self, treeview, event): ''' Displays a context-menu on right button click Opens the link of a tablecell on CTRL pressed and left button click ''' if event.type == Gdk.EventType.BUTTON_PRESS and event.button == 1 and event.get_state( ) & Gdk.ModifierType.CONTROL_MASK: # With CTRL + LEFT-Mouse-Click link of cell is opened cellvalue = self.fetch_cell_by_event(event, treeview) linkvalue = self.get_linkurl(cellvalue) if linkvalue: self.emit('link-clicked', {'href': str(linkvalue)}) return if event.type == Gdk.EventType.BUTTON_PRESS and event.button == 3: # Right button opens context menu self._keep_toolbar_open = True cellvalue = self.fetch_cell_by_event(event, treeview) linkvalue = self.get_linkurl(cellvalue) linkitem_is_activated = (linkvalue is not None) menu = Gtk.Menu() for stock, handler, data, tooltip in ( (Gtk.STOCK_ADD, self.on_add_row, None, _('Add row')), # T: menu item (Gtk.STOCK_DELETE, self.on_delete_row, None, _('Delete row')), # T: menu item (Gtk.STOCK_COPY, self.on_clone_row, None, _('Clone row')), # T: menu item (None, None, None, None), # T: menu item (Gtk.STOCK_JUMP_TO, self.on_open_link, linkvalue, _('Open cell content link')), # T: menu item (None, None, None, None), (Gtk.STOCK_GO_UP, self.on_move_row, -1, _('Row up')), # T: menu item (Gtk.STOCK_GO_DOWN, self.on_move_row, 1, _('Row down')), # T: menu item (None, None, None, None), (Gtk.STOCK_PREFERENCES, self.on_change_columns, None, _('Change columns')) # T: menu item ): if stock is None: menu.append(Gtk.SeparatorMenuItem()) else: item = Gtk.ImageMenuItem(stock) item.set_always_show_image(True) item.set_label(_(tooltip)) if data: item.connect_after('activate', handler, data) else: item.connect_after('activate', handler) if handler == self.on_open_link: item.set_sensitive(linkitem_is_activated) menu.append(item) menu.show_all() gtk_popup_at_pointer(menu, event)
def on_button_popup_menu(self, button): menu = Gtk.Menu() uiactions = UIActions( self, self.notebook, button.zim_path, self.navigation, ) uiactions.populate_menu_with_actions(PAGE_ACTIONS, menu) gtk_popup_at_pointer(menu) return True
def do_plus_button_popup_menu(self, button, event): '''Handler for button-release-event, triggers popup menu for plus button.''' if event.button == 3: menu = Gtk.Menu() item = Gtk.CheckMenuItem( _('Show full Page Name')) # T: menu item for context menu item.set_active(self.uistate['show_full_page_name']) item.connect('activate', lambda o: self.toggle_show_full_page_name()) menu.append(item) menu.show_all() gtk_popup_at_pointer(menu) return True
def on_button_press_event(self, iconview, event): # print('on_button_press_event') if event.button == 3: popup_menu = Gtk.Menu() x = int(event.x) y = int(event.y) time = event.time pathinfo = iconview.get_path_at_pos(x, y) if pathinfo is not None: iconview.grab_focus() gtk_popup_at_pointer(popup_menu, event) self.do_populate_popup(popup_menu, pathinfo) # FIXME should use a signal here return True return False
def do_bookmarks_popup_menu(self, button, event): '''Handler for button-release-event, triggers popup menu for bookmarks.''' if event.button != 3: return False path = button.zim_path _button_width = button.size_request().width direction = 'left' if (int(event.x) <= _button_width / 2) else 'right' def set_save_bookmark(path): self._saved_bookmark = path if button.get_label() in (path, self._get_short_page_name(path)): rename_button_text = _('Set New Name') # T: button label else: rename_button_text = _('Back to Original Name') # T: button label # main popup menu main_menu = Gtk.Menu() main_menu_items = ( (_('Remove'), lambda o: self.delete(path)), # T: menu item (_('Remove All'), lambda o: self.delete_all(True)), # T: menu item ('separator', ''), (_('Copy'), lambda o: set_save_bookmark(path)), # T: menu item (_('Paste'), lambda o: self.move_bookmark( self._saved_bookmark, path, direction)), # T: menu item ('separator', ''), (_('Open in New Window'), lambda o: self.navigation.open_page(Path(path), new_window=True) ), # T: menu item ('separator', ''), (rename_button_text, lambda o: self.rename_bookmark(button)), (_('Set to Current Page'), lambda o: self.change_bookmark(path)) ) # T: menu item for name, func in main_menu_items: if name == 'separator': item = Gtk.SeparatorMenuItem() else: item = Gtk.MenuItem.new_with_mnemonic(name) item.connect('activate', func) main_menu.append(item) main_menu.show_all() gtk_popup_at_pointer(main_menu) return True
def delete_all(self, ask_confirmation=False): ''' Remove all bookmarks. :param ask_confirmation: to confirm deleting. ''' def _delete_all(): self.paths = [] self.paths_names = {} self._reload_bar() if ask_confirmation: # Prevent accidental deleting of all bookmarks. menu = Gtk.Menu() item = Gtk.MenuItem.new_with_mnemonic( _('Do you want to delete all bookmarks?') ) # T: message for bookmark plugin item.connect('activate', lambda o: _delete_all()) menu.append(item) menu.show_all() gtk_popup_at_pointer(menu) else: _delete_all()
def on_button_popup_menu(self, button): menu = self.get_button_popup(button) gtk_popup_at_pointer(menu) return True
def do_toolbar_popup(self, toolbar, x, y, button): '''Show the context menu for the toolbar''' menu = self.uimanager.get_widget('/toolbar_popup') gtk_popup_at_pointer(menu)