Exemplo n.º 1
0
 def __init__(self, core):
     QObject.__init__(self, core)
     self._path = None
     self._projectFiles = None
     self._thread = None
     self._scanStatus = None
     self._core = core
     self.open(os.path.abspath('.'))
     core.fileFilter().regExpChanged.connect(self._onFileFilterChanged)
Exemplo n.º 2
0
 def __init__(self, core):
     QObject.__init__(self, core)
     self._path = None
     self._projectFiles = None
     self._thread = None
     self._scanStatus = None
     self._core = core
     self.open(os.path.abspath('.'))
     core.fileFilter().regExpChanged.connect(self._onFileFilterChanged)
Exemplo n.º 3
0
 def filterAcceptsRow(self, source_row, source_parent):
     """ Main method. Check if file matches filter
     """
     if source_parent == QModelIndex():
         return True
     return not core.fileFilter().regExp().match(
         source_parent.child(source_row, 0).data().toString())
Exemplo n.º 4
0
    def run(self):
        results = []

        filterRe = core.fileFilter().regExp()

        basename = os.path.basename(self._path)
        lastUpdateTime = time.time()

        self.status.emit('Scanning {}: {} files found'.format(basename, len(results)))

        for root, dirnames, filenames in os.walk(self._path):
            if self._stop:
                break

            # remove not interesting directories
            for dirname in dirnames[:]:
                if filterRe.match(dirname):
                    dirnames.remove(dirname)

            for filename in filenames:
                if not filterRe.match(filename):
                    results.append(os.path.relpath(os.path.join(root, filename), self._path))
            if time.time() - lastUpdateTime > STATUS_UPDATE_TIMEOUT_SEC:
                self.status.emit('Scanning {}: {} files found'.format(basename, len(results)))
                lastUpdateTime = time.time()

        if not self._stop:
            self.status.emit('Scanning {} done: {} files found'.format(basename, len(results)))
            self.itemsReady.emit(self._path, results)
Exemplo n.º 5
0
    def run(self):
        results = []

        filterRe = core.fileFilter().regExp()

        basename = os.path.basename(self._path)
        lastUpdateTime = time.time()

        self.status.emit('Scanning {}: {} files found'.format(
            basename, len(results)))

        for root, dirnames, filenames in os.walk(self._path):
            if self._stop:
                break

            # remove not interesting directories
            for dirname in dirnames[:]:
                if filterRe.match(dirname):
                    dirnames.remove(dirname)

            for filename in filenames:
                if not filterRe.match(filename):
                    results.append(
                        os.path.relpath(os.path.join(root, filename),
                                        self._path))
            if time.time() - lastUpdateTime > STATUS_UPDATE_TIMEOUT_SEC:
                self.status.emit('Scanning {}: {} files found'.format(
                    basename, len(results)))
                lastUpdateTime = time.time()

        if not self._stop:
            self.status.emit('Scanning {} done: {} files found'.format(
                basename, len(results)))
            self.itemsReady.emit(self._path, results)
Exemplo n.º 6
0
 def _filterHidden(paths):
     """Remove hidden and ignored files from the list
     """
     return [
         path for path in paths
         if not os.path.basename(path).startswith('.')
         and not core.fileFilter().regExp().match(path)
     ]
Exemplo n.º 7
0
    def _getFilesToScan(self):
        """Get list of files for search.
        """
        files = set()

        if self._mask:
            regExPatterns = [fnmatch.translate(pat) for pat in self._mask]
            maskRegExpPattern = '(' + ')|('.join(regExPatterns) + ')'
            maskRegExp = re.compile(maskRegExpPattern)
        else:
            maskRegExp = None

        if self._inOpenedFiles:
            files = iter(self._openedFiles.keys())
            if maskRegExp:
                basenames = [os.path.basename(f) for f in files]
                files = [f for f in basenames if maskRegExp.match(f)]
            return files
        else:
            path = self._searchPath
            return self._getFiles(path, maskRegExp, core.fileFilter().regExp())
Exemplo n.º 8
0
    def _getFilesToScan(self):
        """Get list of files for search.
        """
        files = set()

        if self._mask:
            regExPatterns = [fnmatch.translate(pat) for pat in self._mask]
            maskRegExpPattern = '(' + ')|('.join(regExPatterns) + ')'
            maskRegExp = re.compile(maskRegExpPattern)
        else:
            maskRegExp = None

        if self._inOpenedFiles:
            files = iter(self._openedFiles.keys())
            if maskRegExp:
                basenames = [os.path.basename(f) for f in files]
                files = [f for f in basenames if maskRegExp.match(f)]
            return files
        else:
            path = self._searchPath
            return self._getFiles(path, maskRegExp, core.fileFilter().regExp())
Exemplo n.º 9
0
 def _filterHidden(paths):
     """Remove hidden and ignored files from the list
     """
     return [path for path in paths
             if not os.path.basename(path).startswith('.') and
             not core.fileFilter().regExp().match(path)]
Exemplo n.º 10
0
 def __init__(self, parent):
     QSortFilterProxyModel.__init__(self, parent)
     core.fileFilter().regExpChanged.connect(self.invalidate)
Exemplo n.º 11
0
 def filterAcceptsRow(self, sourceRow, sourceParent):
     """ Main method. Check if file matches filter
     """
     if  sourceParent == QModelIndex():
         return True
     return not core.fileFilter().regExp().match(sourceParent.child( sourceRow, 0 ).data() )
Exemplo n.º 12
0
 def __init__(self, parent):
     QSortFilterProxyModel.__init__(self, parent)
     core.fileFilter().regExpChanged.connect(self.invalidate)