def copy_to_clipboard(self, indexes): ''' Copy the selected path to the clipboard ''' mimeData = QMimeData() text = '' for index in indexes: if index.isValid(): item = self.itemFromIndex(index) prev = '%s\n' % text if text else '' text = '%sfile://%s' % (prev, item.path) mimeData.setData('text/plain', text.encode('utf-8')) QApplication.clipboard().setMimeData(mimeData)
def copy_to_clipboard(self, indexes): ''' Copy the selected path to the clipboard. ''' mimeData = QMimeData() text = '' for index in indexes: if index.isValid(): item = self.itemFromIndex(index) prev = '%s\n' % text if text else '' text = '%s%s' % (prev, item.path) mimeData.setData('text/plain', text.encode('utf-8')) QApplication.clipboard().setMimeData(mimeData)
def paste_from_clipboard(self): ''' Copy the file or folder to new position... ''' if QApplication.clipboard().mimeData().hasText( ) and self._current_path: text = QApplication.clipboard().mimeData().text() if self.current_path and text.startswith('grpc://'): basename = os.path.basename(text) dest_path = os.path.join(self._current_path, basename) try: nm.nmd().file.copy(text, dest_path) self.reload_current_path(clear_cache=True) except Exception: import traceback print(traceback.format_exc())
def paste_from_clipboard(self): ''' Copy the file or folder to new position... ''' if QApplication.clipboard().mimeData().hasText() and self.currentPath: text = QApplication.clipboard().mimeData().text() if text.startswith('file://'): path = text.replace('file://', '') basename = os.path.basename(text) ok = True if os.path.exists(os.path.join(self.currentPath, basename)): basename, ok = QInputDialog.getText(None, 'File exists', 'New name (or override):', QLineEdit.Normal, basename) if ok and basename: if os.path.isdir(path): shutil.copytree(path, os.path.join(self.currentPath, basename)) elif os.path.isfile(path): shutil.copy2(path, os.path.join(self.currentPath, basename)) self.reloadCurrentPath()
def paste_from_clipboard(self): ''' Copy the file or folder to new position... ''' if QApplication.clipboard().mimeData().hasText( ) and self._current_path: text = QApplication.clipboard().mimeData().text() if self.current_path and text.startswith('grpc://'): basename = os.path.basename(text) dest_path = os.path.join(self._current_path, basename) try: if text == dest_path: dest_path = self._autorename(dest_path) rospy.logdebug("Autorename destination from %s to %s" % (text, dest_path)) rospy.logdebug("Copy %s to %s" % (text, dest_path)) nm.nmd().file.copy(text, dest_path) self.reload_current_path(clear_cache=True) except Exception as err: MessageBox.warning(None, "Copy failed", "Copy failed: %s" % utf8(err)) import traceback print(traceback.format_exc())
def _copy_text_to_clipboard(self): # Get tab indented text for all selected items def get_distance(item, ancestor, distance=0): parent = item.parent() if parent == None: return distance else: return get_distance(parent, ancestor, distance + 1) text = '' for i in self.get_all_items(): if i in self.selectedItems(): text += ('\t' * (get_distance(i, None))) + i.text(0) + '\n' # Copy the text to the clipboard clipboard = QApplication.clipboard() clipboard.setText(text)
def _rightclick_menu(self, event): """ Dynamically builds the rightclick menu based on the unique column data from the passed in datamodel and then launches it modally :param event: the mouse event object, ''QMouseEvent'' """ severities = {} for severity, label in Message.SEVERITY_LABELS.items(): if severity in self._model.get_unique_severities(): severities[severity] = label nodes = sorted(self._model.get_unique_nodes()) topics = sorted(self._model.get_unique_topics()) # menutext entries turned into menutext = [] menutext.append([ self.tr('Exclude'), [[self.tr('Severity'), severities], [self.tr('Node'), nodes], [self.tr('Topic'), topics], [self.tr('Selected Message(s)')]] ]) menutext.append([ self.tr('Highlight'), [[self.tr('Severity'), severities], [self.tr('Node'), nodes], [self.tr('Topic'), topics], [self.tr('Selected Message(s)')]] ]) menutext.append([self.tr('Copy Selected')]) menutext.append([self.tr('Browse Selected')]) menu = QMenu() submenus = [] subsubmenus = [] for item in menutext: if len(item) > 1: submenus.append(QMenu(item[0], menu)) for subitem in item[1]: if len(subitem) > 1: subsubmenus.append(QMenu(subitem[0], submenus[-1])) if isinstance(subitem[1], dict): for key in sorted(subitem[1].keys()): action = subsubmenus[-1].addAction( subitem[1][key]) action.setData(key) else: for subsubitem in subitem[1]: subsubmenus[-1].addAction(subsubitem) submenus[-1].addMenu(subsubmenus[-1]) else: submenus[-1].addAction(subitem[0]) menu.addMenu(submenus[-1]) else: menu.addAction(item[0]) action = menu.exec_(event.globalPos()) if action is None or action == 0: return elif action.text() == self.tr('Browse Selected'): self._show_browsers() elif action.text() == self.tr('Copy Selected'): rowlist = [] for current in self.table_view.selectionModel().selectedIndexes(): rowlist.append(self._proxy_model.mapToSource(current).row()) copytext = self._model.get_selected_text(rowlist) if copytext is not None: clipboard = QApplication.clipboard() clipboard.setText(copytext) elif action.text() == self.tr('Selected Message(s)'): if action.parentWidget().title() == self.tr('Highlight'): self._process_highlight_exclude_filter(action.text(), 'Message', False) elif action.parentWidget().title() == self.tr('Exclude'): self._process_highlight_exclude_filter(action.text(), 'Message', True) else: raise RuntimeError( "Menu format corruption in ConsoleWidget._rightclick_menu()" ) else: # This processes the dynamic list entries (severity, node and topic) try: roottitle = action.parentWidget().parentWidget().title() except: raise RuntimeError( "Menu format corruption in ConsoleWidget._rightclick_menu()" ) if roottitle == self.tr('Highlight'): self._process_highlight_exclude_filter( action.text(), action.parentWidget().title(), False) elif roottitle == self.tr('Exclude'): self._process_highlight_exclude_filter( action.text(), action.parentWidget().title(), True) else: raise RuntimeError( "Unknown Root Action %s selected in ConsoleWidget._rightclick_menu()" % roottitle)
def actionPaste(self): # Also called by handleOS_SIGUSR1_2 textArea = self.gui.speechInputFld currCursor = textArea.textCursor() currCursor.insertText(QApplication.clipboard().text())
def _rightclick_menu(self, event): """ Dynamically builds the rightclick menu based on the unique column data from the passed in datamodel and then launches it modally :param event: the mouse event object, ''QMouseEvent'' """ severities = self._datamodel.get_unique_col_data(1) nodes = self._datamodel.get_unique_col_data(2) topics = self._datamodel.get_unique_col_data(4) temp = [] for topic in topics: if topic.find(', ') == -1: temp.append(topic) else: temp = temp + topic.split(', ') topics = list(set(temp)) columns = list(self._datamodel.message_members()) for index in range(len(columns)): columns[index] = [columns[index][1:].capitalize()] # menutext entries turned into menutext = [] menutext.append([self.tr('Exclude'), [[self.tr('Severity'), severities], [self.tr('Node'), nodes], [self.tr('Topic'), topics], [self.tr('Selected Message(s)')]]]) menutext.append([self.tr('Highlight'), [[self.tr('Severity'), severities], [self.tr('Node'), nodes], [self.tr('Topic'), topics], [self.tr('Selected Message(s)')]]]) menutext.append([self.tr('Copy Selected')]) menutext.append([self.tr('Browse Selected')]) menu = QMenu() submenus = [] subsubmenus = [] for item in menutext: if len(item) > 1: submenus.append(QMenu(item[0], menu)) for subitem in item[1]: if len(subitem) > 1: subsubmenus.append(QMenu(subitem[0], submenus[-1])) for subsubitem in subitem[1]: subsubmenus[-1].addAction(subsubitem) submenus[-1].addMenu(subsubmenus[-1]) else: submenus[-1].addAction(subitem[0]) menu.addMenu(submenus[-1]) else: menu.addAction(item[0]) action = menu.exec_(event.globalPos()) if action is None or action == 0: return elif action.text() == self.tr('Browse Selected'): self._show_browsers() elif action.text() == self.tr('Copy Selected'): rowlist = [] for current in self.table_view.selectionModel().selectedIndexes(): rowlist.append(self._proxymodel.mapToSource(current).row()) copytext = self._datamodel.get_selected_text(rowlist) if copytext is not None: clipboard = QApplication.clipboard() clipboard.setText(copytext) elif action.text() == self.tr('Selected Message(s)'): if action.parentWidget().title() == self.tr('Highlight'): self._process_highlight_exclude_filter(action.text(), 'Message', False) elif action.parentWidget().title() == self.tr('Exclude'): self._process_highlight_exclude_filter(action.text(), 'Message', True) else: raise RuntimeError("Menu format corruption in ConsoleWidget._rightclick_menu()") else: # This processes the dynamic list entries (severity, node and topic) try: roottitle = action.parentWidget().parentWidget().title() except: raise RuntimeError("Menu format corruption in ConsoleWidget._rightclick_menu()") if roottitle == self.tr('Highlight'): self._process_highlight_exclude_filter(action.text(), action.parentWidget().title(), False) elif roottitle == self.tr('Exclude'): self._process_highlight_exclude_filter(action.text(), action.parentWidget().title(), True) else: raise RuntimeError("Unknown Root Action %s selected in ConsoleWidget._rightclick_menu()" % roottitle) self.update_status()
def _rightclick_menu(self, event): """ Dynamically builds the rightclick menu based on the unique column data from the passed in datamodel and then launches it modally :param event: the mouse event object, ''QMouseEvent'' """ severities = {} for severity, label in Message.SEVERITY_LABELS.items(): if severity in self._model.get_unique_severities(): severities[severity] = label nodes = sorted(self._model.get_unique_nodes()) topics = sorted(self._model.get_unique_topics()) # menutext entries turned into menutext = [] menutext.append([self.tr('Exclude'), [[self.tr('Severity'), severities], [self.tr('Node'), nodes], [self.tr('Topic'), topics], [self.tr('Selected Message(s)')]]]) menutext.append([self.tr('Highlight'), [[self.tr('Severity'), severities], [self.tr('Node'), nodes], [self.tr('Topic'), topics], [self.tr('Selected Message(s)')]]]) menutext.append([self.tr('Copy Selected')]) menutext.append([self.tr('Browse Selected')]) menu = QMenu() submenus = [] subsubmenus = [] for item in menutext: if len(item) > 1: submenus.append(QMenu(item[0], menu)) for subitem in item[1]: if len(subitem) > 1: subsubmenus.append(QMenu(subitem[0], submenus[-1])) if isinstance(subitem[1], dict): for key in sorted(subitem[1].keys()): action = subsubmenus[-1].addAction(subitem[1][key]) action.setData(key) else: for subsubitem in subitem[1]: subsubmenus[-1].addAction(subsubitem) submenus[-1].addMenu(subsubmenus[-1]) else: submenus[-1].addAction(subitem[0]) menu.addMenu(submenus[-1]) else: menu.addAction(item[0]) action = menu.exec_(event.globalPos()) if action is None or action == 0: return elif action.text() == self.tr('Browse Selected'): self._show_browsers() elif action.text() == self.tr('Copy Selected'): rowlist = [] for current in self.table_view.selectionModel().selectedIndexes(): rowlist.append(self._proxy_model.mapToSource(current).row()) copytext = self._model.get_selected_text(rowlist) if copytext is not None: clipboard = QApplication.clipboard() clipboard.setText(copytext) elif action.text() == self.tr('Selected Message(s)'): if action.parentWidget().title() == self.tr('Highlight'): self._process_highlight_exclude_filter(action.text(), 'Message', False) elif action.parentWidget().title() == self.tr('Exclude'): self._process_highlight_exclude_filter(action.text(), 'Message', True) else: raise RuntimeError("Menu format corruption in ConsoleWidget._rightclick_menu()") else: # This processes the dynamic list entries (severity, node and topic) try: roottitle = action.parentWidget().parentWidget().title() except: raise RuntimeError("Menu format corruption in ConsoleWidget._rightclick_menu()") if roottitle == self.tr('Highlight'): self._process_highlight_exclude_filter(action.text(), action.parentWidget().title(), False) elif roottitle == self.tr('Exclude'): self._process_highlight_exclude_filter(action.text(), action.parentWidget().title(), True) else: raise RuntimeError("Unknown Root Action %s selected in ConsoleWidget._rightclick_menu()" % roottitle)
def _on_add_param_clipboard_tag(self): lines = QApplication.clipboard().mimeData().text().splitlines() name = "" if len(lines) == 1: name = lines[0] self._insert_text('<param name="%s" value="value" />' % name, 22 + len(name), 5)