def getNetworkType(self): """得到网络是静态还是动态类型""" netType = None DNSType = None statusOutput = commands.getstatusoutput("cat %s" % common.NETWORK_CONFIG_UBUNTU) if statusOutput[0] == 0: output = QString(statusOutput[1]) if output.contains("dhcp"): netType = "dhcp" else: netType = "static" if output.contains("dns-nameservers"): DNSType = "customDNS" else: DNSType = "AUTODNS" return [netType, DNSType]
def getNetworkType(self): """得到网络是静态还是动态类型""" netType = None DNSType = None statusOutput = commands.getstatusoutput("cat %s" % self.bridgeNetworkconfigFile) if statusOutput[0] == 0: output = QString(statusOutput[1]) if output.contains("dhcp"): netType = "dhcp" else: netType = "static" if output.contains("DNS"): DNSType = "customDNS" else: DNSType = "AUTODNS" return [netType, DNSType]
def setFilter(self, f): if not self.cursor_: return previousF = QString(self.cursor_.mainFilter()) newF = QString(None) if previousF.isEmpty(): newF = f elif previousF.contains(f): return else: newF = previousF + " AND " + f self.cursor_.setMainFilter(newF)
def function_arguments(fun): try: args = robjects.r('do.call(argsAnywhere, list("%s"))' % fun) args = QString(str(args)) if args.contains("function"): regexp = QRegExp(r"function\s\(") start = regexp.lastIndexIn(args) regexp = QRegExp(r"\)") end = regexp.lastIndexIn(args) args = args[start:end+1].replace("function ", "") # removed fun else: args = args.replace("\n\n", "").remove("NULL") except Exception: # if something goes wrong, ignore it! args = QString() return args
def match(self, context): if not context.isValid(): return query = context.query() # Don't use query.startsWith('vim ') because we want the # list of all sessions to show up once inserted 'vim'. # The space between plugin keywork and text query must be # handled manually. if not query.startsWith('vim', Qt.CaseInsensitive): return try: if query[3] != ' ': return except IndexError: pass query = query[4:] query = query.trimmed() for _, _, sessions in os.walk(DEFAULT_SESSION_DIRECTORY): for session in sessions: match = Plasma.QueryMatch(self.runner) # Skip lock files. if session.endswith('.lock'): continue # Trim .vim extension. session = QString(session[:-4]) # Search is case insensitive. if session.contains(query, Qt.CaseInsensitive): match.setText(session) match.setSubtext('Open Vim session') match.setType(Plasma.QueryMatch.ExactMatch) match.setIcon(KIcon('vim')) match.setData(session) if session.compare(query, Qt.CaseInsensitive) == 0: match.setRelevance(1.0) else: match.setRelevance(0.8) context.addMatch(session, match)
def filterAcceptsRow( self, source_row, source_parent ): ''' Re-implementation of QSortFilterProxyModel's' filterAcceptsRow( self, source_row, source_parent ) function. It uses not only 'name' of the item, but also tags of item/modul. ''' result = False useIndex = self.sourceModel().index(source_row, 0, source_parent) name = self.sourceModel().data(useIndex, Qt.DisplayRole).toString() if ( name.contains(self.filterRegExp()) ): result = True else: # searching in tags mod = self.sourceModel().data(useIndex, Qt.UserRole+1).toPyObject() for tag in mod.tags(): tag = QString(tag) if ( tag.contains(self.filterRegExp()) ): result = True break return result
def filterAcceptsRow(self, source_row, source_parent): ''' Re-implementation of QSortFilterProxyModel's' filterAcceptsRow( self, source_row, source_parent ) function. It uses not only 'name' of the item, but also tags of item/modul. ''' result = False useIndex = self.sourceModel().index(source_row, 0, source_parent) name = self.sourceModel().data(useIndex, Qt.DisplayRole).toString() if (name.contains(self.filterRegExp())): result = True else: # searching in tags mod = self.sourceModel().data(useIndex, Qt.UserRole + 1).toPyObject() for tag in mod.tags(): tag = QString(tag) if (tag.contains(self.filterRegExp())): result = True break return result
def getLinuxOperationSystemType(): """得到linux操作系统的类型""" statusOutput = commands.getstatusoutput("head -n 1 /etc/issue") LogRecord.instance().logger.info(u"/etc/issue文件内容:%s" % statusOutput[1]) if statusOutput[0] == 0: output = QString(statusOutput[1]) if output.contains("Ubuntu 12.04"): return "Ubuntu 12.04" if output.contains("Ubuntu 13.04"): return "Ubuntu 13.04" elif output.contains("CentOS release 6.5"): return "CentOS 6.5" elif output.contains("CentOS release 7.0"): return "CentOS 7.0" elif output.contains("Ubuntu 14.04"): return "Ubuntu 14.04" elif output.contains("Ubuntu"): return "Ubuntu" elif output.contains("MCOS-cClassroom-student"): return "CentOS 7.0" elif output.contains("CentOS"): return "CentOS" return None
def keyPressEvent(self, e): if self.isReadOnly(): return if self.c.popup().isVisible(): if e.key() in [Qt.Key_Enter, Qt.Key_Return]: e.ignore() return if e.key() in [Qt.Key_Tab]: e.ignore() return if e.key() in [Qt.Key_Down, Qt.Key_Up] and not self.is_multiline(): e.ignore() return QPlainTextEdit.keyPressEvent(self, e) ctrlOrShift = e.modifiers() and (Qt.ControlModifier or Qt.ShiftModifier) if self.c is None or (ctrlOrShift and e.text().isEmpty()): return eow = QString("~!@#$%^&*()_+{}|:\"<>?,./;'[]\\-=") hasModifier = (e.modifiers() != Qt.NoModifier) and not ctrlOrShift completionPrefix = self.textUnderCursor() if hasModifier or e.text().isEmpty() or completionPrefix.length() < 1 or eow.contains(e.text().right(1)): self.c.popup().hide() return if completionPrefix != self.c.completionPrefix(): self.c.setCompletionPrefix(completionPrefix) self.c.popup().setCurrentIndex(self.c.completionModel().index(0, 0)) cr = self.cursorRect() cr.setWidth(self.c.popup().sizeHintForColumn(0) + self.c.popup().verticalScrollBar().sizeHint().width()) self.c.complete(cr)