コード例 #1
0
ファイル: quickmenu.py プロジェクト: waqarini/orange3
    def popup(self, pos=None, searchText=""):
        """
        Popup the menu at `pos` (in screen coordinates). 'Search' text field
        is initialized with `searchText` if provided.

        """
        if pos is None:
            pos = QPoint()

        self.__clearCurrentItems()

        self.__search.setText(searchText)
        patt = QRegExp("(^|\W)" + searchText)
        patt.setCaseSensitivity(False)
        self.__suggestPage.setFilterRegExp(patt)

        self.ensurePolished()

        if self.testAttribute(Qt.WA_Resized) and self.sizeGripEnabled():
            size = self.size()
        else:
            size = self.sizeHint()

        desktop = QApplication.desktop()
        screen_geom = desktop.availableGeometry(pos)

        # Adjust the size to fit inside the screen.
        if size.height() > screen_geom.height():
            size.setHeight(screen_geom.height())
        if size.width() > screen_geom.width():
            size.setWidth(screen_geom.width())

        geom = QRect(pos, size)

        if geom.top() < screen_geom.top():
            geom.setTop(screen_geom.top())

        if geom.left() < screen_geom.left():
            geom.setLeft(screen_geom.left())

        bottom_margin = screen_geom.bottom() - geom.bottom()
        right_margin = screen_geom.right() - geom.right()
        if bottom_margin < 0:
            # Falls over the bottom of the screen, move it up.
            geom.translate(0, bottom_margin)

        # TODO: right to left locale
        if right_margin < 0:
            # Falls over the right screen edge, move the menu to the
            # other side of pos.
            geom.translate(-size.width(), 0)

        self.setGeometry(geom)

        self.show()

        if searchText:
            self.setFocusProxy(self.__search)
        else:
            self.setFocusProxy(None)
コード例 #2
0
ファイル: quickmenu.py プロジェクト: 675801717/orange3
    def popup(self, pos=None, searchText=""):
        """
        Popup the menu at `pos` (in screen coordinates). 'Search' text field
        is initialized with `searchText` if provided.

        """
        if pos is None:
            pos = QPoint()

        self.__clearCurrentItems()

        self.__search.setText(searchText)
        patt = QRegExp("(^|\W)"+searchText)
        patt.setCaseSensitivity(False)
        self.__suggestPage.setFilterRegExp(patt)

        self.ensurePolished()

        if self.testAttribute(Qt.WA_Resized) and self.sizeGripEnabled():
            size = self.size()
        else:
            size = self.sizeHint()

        desktop = QApplication.desktop()
        screen_geom = desktop.availableGeometry(pos)

        # Adjust the size to fit inside the screen.
        if size.height() > screen_geom.height():
            size.setHeight(screen_geom.height())
        if size.width() > screen_geom.width():
            size.setWidth(screen_geom.width())

        geom = QRect(pos, size)

        if geom.top() < screen_geom.top():
            geom.setTop(screen_geom.top())

        if geom.left() < screen_geom.left():
            geom.setLeft(screen_geom.left())

        bottom_margin = screen_geom.bottom() - geom.bottom()
        right_margin = screen_geom.right() - geom.right()
        if bottom_margin < 0:
            # Falls over the bottom of the screen, move it up.
            geom.translate(0, bottom_margin)

        # TODO: right to left locale
        if right_margin < 0:
            # Falls over the right screen edge, move the menu to the
            # other side of pos.
            geom.translate(-size.width(), 0)

        self.setGeometry(geom)

        self.show()

        if searchText:
            self.setFocusProxy(self.__search)
        else:
            self.setFocusProxy(None)
コード例 #3
0
 def __init__(self, parent=None):
     super(RomanSpinBox, self).__init__(parent)
     regex = QRegExp(r"^M?M?M?(?:CM|CD|D?C?C?C?)"
                     r"(?:XC|XL|L?X?X?X?)(?:IX|IV|V?I?I?I?)$")
     regex.setCaseSensitivity(Qt.CaseInsensitive)
     self.validator = QRegExpValidator(regex, self)
     self.setRange(1, 3999)
     self.lineEdit().textEdited.connect(self.fixCase)
コード例 #4
0
ファイル: featureform.py プロジェクト: skeenp/Roam
 def findcontrol(self, name):
     regex = QRegExp("^{}$".format(QRegExp.escape(name)))
     regex.setCaseSensitivity(Qt.CaseInsensitive)
     try:
         widget = self.findChildren(QWidget, regex)[0]
     except IndexError:
         widget = None
     return widget
コード例 #5
0
 def findcontrol(self, name):
     regex = QRegExp("^{}$".format(name))
     regex.setCaseSensitivity(Qt.CaseInsensitive)
     try:
         widget = self.findChildren(QWidget, regex)[0]
     except IndexError:
         widget = None
     return widget
コード例 #6
0
 def __init__(self, parent=None):
     super(RomanSpinBox, self).__init__(parent)
     regex = QRegExp(r"^M?M?M?(?:CM|CD|D?C?C?C?)"
                     r"(?:XC|XL|L?X?X?X?)(?:IX|IV|V?I?I?I?)$")
     regex.setCaseSensitivity(Qt.CaseInsensitive)
     self.validator = QRegExpValidator(regex, self)
     self.setRange(1, 3999)
     self.lineEdit().textEdited.connect(self.fixCase)
コード例 #7
0
 def end_pattern(self):
     regexp = QRegExp(self.__pattern)
     if 'I' in self.__flags:
         regexp.setCaseSensitivity(Qt.CaseInsensitive)
     rule = (regexp, 0, self.get_style(self.__style), )
     self._grammar.append(rule)
     del self.__pattern
     del self.__group
     del self.__flags
     del self.__style
コード例 #8
0
 def init(self):
     if self.typeid in (typeId.Int16, typeId.Int32, typeId.Int64):
         exp = "^(\+|-)?\d+$"
     elif self.typeid in (typeId.UInt16, typeId.UInt32, typeId.UInt64):
         exp = "^\d+$"
     else:
         exp = "^.+$"
     regexp = QRegExp(exp)
     regexp.setCaseSensitivity(Qt.CaseInsensitive)
     self.setRegExp(regexp)
コード例 #9
0
def hasEnvironmentEntry(key):
    """
    Module function to check, if the environment contains an entry.
    
    @param key key of the requested environment entry (string)
    @return flag indicating the presence of the requested entry (boolean)
    """
    filter = QRegExp("^%s[ \t]*=" % key)
    if isWindowsPlatform():
        filter.setCaseSensitivity(Qt.CaseInsensitive)
    
    entries = QProcess.systemEnvironment().filter(filter)
    return entries.count() > 0
コード例 #10
0
def hasEnvironmentEntry(key):
    """
    Module function to check, if the environment contains an entry.
    
    @param key key of the requested environment entry (string)
    @return flag indicating the presence of the requested entry (boolean)
    """
    filter = QRegExp("^%s[ \t]*=" % key)
    if isWindowsPlatform():
        filter.setCaseSensitivity(Qt.CaseInsensitive)
    
    entries = QProcess.systemEnvironment().filter(filter)
    return entries.count() > 0
コード例 #11
0
 def _textAndFindFlags(self, backward=False):
     text = self.findComboBox.currentText()
     flags = QTextDocument.FindFlags()
     if backward:
         flags |= QTextDocument.FindBackward
     if not self.ignoreCaseCheckBox.isChecked():
         flags |= QTextDocument.FindCaseSensitively
     if self.flagsComboBox.currentIndex() == self.FULL_WORD:
         flags |= QTextDocument.FindWholeWords
     elif self.flagsComboBox.currentIndex() == self.STARTS_WITH:
         text = QRegExp("\\b%s" % text)
         caseSensitive = not self.ignoreCaseCheckBox.isChecked() and Qt.CaseSensitive or Qt.CaseInsensitive
         text.setCaseSensitivity(caseSensitive)
     return text, flags
コード例 #12
0
ファイル: generic_highlighter.py プロジェクト: nt6/KhtEditor
 def end_pattern(self):
     regexp = QRegExp(self.__pattern)
     if 'I' in self.__flags:
         regexp.setCaseSensitivity(Qt.CaseInsensitive)
     rule = (
         regexp,
         0,
         self.get_style(self.__style),
     )
     self._grammar.append(rule)
     del self.__pattern
     del self.__group
     del self.__flags
     del self.__style
コード例 #13
0
 def _textAndFindFlags(self, backward=False):
     text = self.findComboBox.currentText()
     flags = QTextDocument.FindFlags()
     if backward:
         flags |= QTextDocument.FindBackward
     if not self.ignoreCaseCheckBox.isChecked():
         flags |= QTextDocument.FindCaseSensitively
     if self.flagsComboBox.currentIndex() == self.FULL_WORD:
         flags |= QTextDocument.FindWholeWords
     elif self.flagsComboBox.currentIndex() == self.STARTS_WITH:
         text = QRegExp("\\b%s" % text)
         caseSensitive = not self.ignoreCaseCheckBox.isChecked(
         ) and Qt.CaseSensitive or Qt.CaseInsensitive
         text.setCaseSensitivity(caseSensitive)
     return text, flags
コード例 #14
0
    def replaceAll(self):
        textEdit = self.textEdit

        count = 0

        if textEdit is not None and len(self.findComboBox.currentText()) > 0:
            findText = self.findComboBox.currentText()
            replaceText = self.replaceComboBox.currentText()
            caseSensitive = not self.ignoreCaseCheckBox.isChecked(
            ) and Qt.CaseSensitive or Qt.CaseInsensitive
            flagsIndex = self.flagsComboBox.currentIndex()
            if flagsIndex == self.STARTS_WITH:
                pattern = "\\b%s"
            elif flagsIndex == self.FULL_WORD:
                pattern = "\\b%s\\b"
            else:
                pattern = "%s"
            rx = QRegExp(pattern % findText)
            rx.setCaseSensitivity(caseSensitive)

            current = textEdit.toPlainText()
            pos = 0
            while pos >= 0:
                pos = rx.indexIn(current, pos)
                if pos >= 0:
                    pos += 1
                    count += 1
            replaced = current.replace(rx, replaceText)

            textEdit.selectAll()
            cursor = textEdit.textCursor()
            cursor.beginEditBlock()
            cursor.insertText(replaced)
            cursor.endEditBlock()

        if textEdit is not None:
            if not count:
                QApplication.beep()
                self.feedbackLabel.setText(self.tr("Not found"))
            else:
                self.feedbackLabel.setText(self.tr("%s replaced" % count))

            self.writeSettings()
コード例 #15
0
    def replaceAll(self):
        textEdit = self.textEdit
        
        count = 0
        
        if textEdit is not None and len(self.findComboBox.currentText()) > 0:
            findText = self.findComboBox.currentText()
            replaceText = self.replaceComboBox.currentText()
            caseSensitive = not self.ignoreCaseCheckBox.isChecked() and Qt.CaseSensitive or Qt.CaseInsensitive
            flagsIndex = self.flagsComboBox.currentIndex()
            if flagsIndex == self.STARTS_WITH:
                pattern = "\\b%s"
            elif flagsIndex == self.FULL_WORD:
                pattern = "\\b%s\\b"
            else:
                pattern = "%s"
            rx = QRegExp(pattern % findText)
            rx.setCaseSensitivity(caseSensitive)

            current = textEdit.toPlainText()
            pos = 0
            while pos >= 0:
                pos = rx.indexIn(current, pos)
                if pos >= 0:
                    pos += 1
                    count += 1 
            replaced = current.replace(rx, replaceText)

            textEdit.selectAll()
            cursor = textEdit.textCursor()
            cursor.beginEditBlock()
            cursor.insertText(replaced)
            cursor.endEditBlock()

        if textEdit is not None:
            if not count:
                QApplication.beep()
                self.feedbackLabel.setText(self.tr("Not found"))
            else:
                self.feedbackLabel.setText(self.tr("%s replaced" % count))
                
            self.writeSettings()
コード例 #16
0
def getEnvironmentEntry(key, default = None):
    """
    Module function to get an environment entry.
    
    @param key key of the requested environment entry (string)
    @param default value to be returned, if the environment doesn't contain
        the requested entry (string)
    @return the requested entry or the default value, if the entry wasn't 
        found (string or None)
    """
    filter = QRegExp("^%s[ \t]*=" % key)
    if isWindowsPlatform():
        filter.setCaseSensitivity(Qt.CaseInsensitive)
    
    entries = QProcess.systemEnvironment().filter(filter)
    if entries.count() == 0:
        return default
    
    # if there are multiple entries, just consider the first one
    ename, val = unicode(entries[0]).split("=", 1)
    return val.strip()
コード例 #17
0
def getEnvironmentEntry(key, default = None):
    """
    Module function to get an environment entry.
    
    @param key key of the requested environment entry (string)
    @param default value to be returned, if the environment doesn't contain
        the requested entry (string)
    @return the requested entry or the default value, if the entry wasn't 
        found (string or None)
    """
    filter = QRegExp("^%s[ \t]*=" % key)
    if isWindowsPlatform():
        filter.setCaseSensitivity(Qt.CaseInsensitive)
    
    entries = QProcess.systemEnvironment().filter(filter)
    if entries.count() == 0:
        return default
    
    # if there are multiple entries, just consider the first one
    ename, val = unicode(entries[0]).split("=", 1)
    return val.strip()
コード例 #18
0
ファイル: groups_list.py プロジェクト: maximerobin/Ufwi
    def applyFilter(self, filterby, filter):
        self.filter = filter
        self.filter_by = filterby
        if filter == u'' or filterby == '':
            self.filtered_edw_list = copy(self.edw_list)
        else:
            self.filtered_edw_list = []
            rx = QRegExp(filter)
            rx.setCaseSensitivity(Qt.CaseInsensitive)

            for edw in self.edw_list:
                grp_name = unicode(edw.getVal(filterby))
                if rx.indexIn(grp_name) != -1:
                    self.filtered_edw_list.append(edw)
        self.refreshGroups()

        # refresh the cell display
        for table in self.grouped_tables.itervalues():
            table.refresh(None)
            table.disable_display = False
            table.refreshDisplay()
コード例 #19
0
	def search(self, pattern, **kwargs):
		"""
		Searchs given pattern text in the document.

		Usage::

			>>> scriptEditor = Umbra.componentsManager.getInterface("factory.scriptEditor")
			True
			>>> codeEditor = scriptEditor.getCurrentEditor()
			True
			>>> codeEditor.search(searchPattern, caseSensitive=True, wholeWord=True, regularExpressions=True, \
backwardSearch=True, wrapAround=True)
			True

		:param pattern: Pattern to search for.
		:type pattern: unicode
		:param \*\*kwargs: Search settings.
		:type \*\*kwargs: dict
		:return: Method success.
		:rtype: bool
		"""

		settings = foundations.dataStructures.Structure(**{"caseSensitive" : False,
								"wholeWord" : False,
								"regularExpressions" : False,
								"backwardSearch" : False,
								"wrapAround" : True})
		settings.update(kwargs)

		self.__searchPattern = pattern

		if settings.regularExpressions:
			pattern = QRegExp(pattern)
			pattern.setCaseSensitivity(Qt.CaseSensitive if settings.caseSensitive else Qt.CaseInsensitive)

		flags = QTextDocument.FindFlags()
		if settings.caseSensitive:
			flags = flags | QTextDocument.FindCaseSensitively
		if settings.wholeWord:
			flags = flags | QTextDocument.FindWholeWords
		if settings.backwardSearch:
			flags = flags | QTextDocument.FindBackward

		cursor = self.document().find(pattern, self.textCursor(), flags)
		if not cursor.isNull():
			self.setTextCursor(cursor)
			return True
		else:
			if settings.wrapAround:
				self.storeTextCursorAnchor()
				cursor = self.textCursor()
				if settings.backwardSearch:
					cursor.movePosition(QTextCursor.End, QTextCursor.MoveAnchor)
				else:
					cursor.movePosition(QTextCursor.Start, QTextCursor.MoveAnchor)
				self.setTextCursor(cursor)
				settings.wrapAround = False
				if self.search(pattern, **settings):
					return True
				else:
					self.restoreTextCursorAnchor()
コード例 #20
0
ファイル: quickmenu.py プロジェクト: waqarini/orange3
 def __on_textEdited(self, text):
     patt = QRegExp("(^|\W)" + text)
     patt.setCaseSensitivity(False)
     self.__suggestPage.setFilterRegExp(patt)
     self.__pages.setCurrentPage(self.__suggestPage)
コード例 #21
0
ファイル: quickmenu.py プロジェクト: 675801717/orange3
 def __on_textEdited(self, text):
     patt = QRegExp("(^|\W)" + text)
     patt.setCaseSensitivity(False)
     self.__suggestPage.setFilterRegExp(patt)
     self.__pages.setCurrentPage(self.__suggestPage)