eric6/Project/ProjectBrowserModel.py

branch
maintenance
changeset 8273
698ae46f40a4
parent 8176
31965986ecd1
parent 8259
2bbec88047dd
--- a/eric6/Project/ProjectBrowserModel.py	Fri Apr 02 11:59:41 2021 +0200
+++ b/eric6/Project/ProjectBrowserModel.py	Sat May 01 14:27:20 2021 +0200
@@ -9,6 +9,7 @@
 
 import os
 import re
+import contextlib
 
 from PyQt5.QtCore import QDir, QModelIndex, pyqtSignal, QFileSystemWatcher, Qt
 from PyQt5.QtGui import QColor
@@ -37,7 +38,7 @@
 ProjectBrowserProtocolsType = 7
 
 
-class ProjectBrowserItemMixin(object):
+class ProjectBrowserItemMixin:
     """
     Class implementing common methods of project browser items.
     
@@ -169,9 +170,11 @@
         @param order sort order (Qt.SortOrder) (for special sorting)
         @return true, if this item is less than other (boolean)
         """
-        if issubclass(other.__class__, BrowserFileItem):
-            if Preferences.getUI("BrowsersListFoldersFirst"):
-                return order == Qt.SortOrder.AscendingOrder
+        if (
+            issubclass(other.__class__, BrowserFileItem) and
+            Preferences.getUI("BrowsersListFoldersFirst")
+        ):
+            return order == Qt.SortOrder.AscendingOrder
         
         return BrowserItem.lessThan(self, other, column, order)
 
@@ -233,7 +236,7 @@
         
         @param parent reference to parent object (Project.Project)
         """
-        super(ProjectBrowserModel, self).__init__(parent, nopopulate=True)
+        super().__init__(parent, nopopulate=True)
         
         rootData = self.tr("Name")
         self.rootItem = BrowserItem(None, rootData)
@@ -342,15 +345,15 @@
         
         qdir = QDir(parentItem.dirName())
         
-        if Preferences.getProject("BrowsersListHiddenFiles"):
-            fileFilter = QDir.Filters(
+        fileFilter = (
+            QDir.Filters(
                 QDir.Filter.AllEntries |
                 QDir.Filter.Hidden |
                 QDir.Filter.NoDotAndDotDot
             )
-        else:
-            fileFilter = QDir.Filters(
-                QDir.Filter.AllEntries | QDir.Filter.NoDotAndDotDot)
+            if Preferences.getProject("BrowsersListHiddenFiles") else
+            QDir.Filters(QDir.Filter.AllEntries | QDir.Filter.NoDotAndDotDot)
+        )
         entryInfoList = qdir.entryInfoList(fileFilter)
         
         if len(entryInfoList) > 0:
@@ -368,16 +371,17 @@
                 states = self.project.vcs.vcsAllRegisteredStates(states, dname)
             
             for f in entryInfoList:
-                if f.isDir():
-                    node = ProjectBrowserDirectoryItem(
+                node = (
+                    ProjectBrowserDirectoryItem(
                         parentItem,
                         Utilities.toNativeSeparators(f.absoluteFilePath()),
                         parentItem.getProjectTypes()[0], False)
-                else:
-                    node = ProjectBrowserFileItem(
+                    if f.isDir() else
+                    ProjectBrowserFileItem(
                         parentItem,
                         Utilities.toNativeSeparators(f.absoluteFilePath()),
                         parentItem.getProjectTypes()[0])
+                )
                 if self.project.vcs is not None:
                     fname = f.absoluteFilePath()
                     if (
@@ -436,28 +440,24 @@
         for key in keys:
             # Show the entry in bold in the others browser to make it more
             # distinguishable
-            if key == "OTHERS":
-                bold = True
-            else:
-                bold = False
-            
-            if key == "SOURCES":
-                sourceLanguage = self.project.getProjectLanguage()
-            else:
-                sourceLanguage = ""
+            bold = key == "OTHERS"
+            sourceLanguage = (
+                self.project.getProjectLanguage() if key == "SOURCES" else ""
+            )
             
             for fn in self.project.pdata[key]:
                 fname = os.path.join(self.project.ppath, fn)
                 parentItem, dt = self.findParentItemByName(
                     self.projectBrowserTypes[key], fn)
-                if os.path.isdir(fname):
-                    itm = ProjectBrowserDirectoryItem(
+                itm = (
+                    ProjectBrowserDirectoryItem(
                         parentItem, fname, self.projectBrowserTypes[key],
                         False, bold)
-                else:
-                    itm = ProjectBrowserFileItem(
+                    if os.path.isdir(fname) else
+                    ProjectBrowserFileItem(
                         parentItem, fname, self.projectBrowserTypes[key],
                         False, bold, sourceLanguage=sourceLanguage)
+                )
                 self._addItem(itm, parentItem)
                 if self.project.vcs is not None:
                     if (
@@ -549,18 +549,16 @@
         """
         # Show the entry in bold in the others browser to make it more
         # distinguishable
-        if typeString == "OTHERS":
-            bold = True
-        else:
-            bold = False
+        bold = typeString == "OTHERS"
         
         fname = os.path.join(self.project.ppath, name)
         parentItem, dt = self.findParentItemByName(
             self.projectBrowserTypes[typeString], name)
-        if parentItem == self.rootItem:
-            parentIndex = QModelIndex()
-        else:
-            parentIndex = self.createIndex(parentItem.row(), 0, parentItem)
+        parentIndex = (
+            QModelIndex()
+            if parentItem == self.rootItem else
+            self.createIndex(parentItem.row(), 0, parentItem)
+        )
         if os.path.isdir(fname):
             itm = ProjectBrowserDirectoryItem(
                 parentItem, fname, self.projectBrowserTypes[typeString],
@@ -625,10 +623,7 @@
         @return index of the item found (QModelIndex)
         """
         itm = self.findItem(name)
-        if itm is None:
-            index = QModelIndex()
-        else:
-            index = self.createIndex(itm.row(), 0, itm)
+        index = self.createIndex(itm.row(), 0, itm) if itm else QModelIndex()
         return index
     
     def itemIndexByNameAndLine(self, name, lineno):
@@ -654,15 +649,13 @@
                     else:
                         break
                 for child in itm.children():
-                    try:
+                    with contextlib.suppress(AttributeError):
                         start, end = child.boundaries()
                         if end == -1:
                             end = 1000000   # assume end of file
                         if start <= lineno <= end:
                             itm = child
                             break
-                    except AttributeError:
-                        pass
                 else:
                     itm = None
                 if itm:
@@ -696,15 +689,15 @@
             # just ignore the situation we don't have a reference to the item
             return
         
-        if Preferences.getProject("BrowsersListHiddenFiles"):
-            fileFilter = QDir.Filters(
+        fileFilter = (
+            QDir.Filters(
                 QDir.Filter.AllEntries |
                 QDir.Filter.Hidden |
                 QDir.Filter.NoDotAndDotDot
             )
-        else:
-            fileFilter = QDir.Filters(
-                QDir.Filter.AllEntries | QDir.Filter.NoDotAndDotDot)
+            if Preferences.getProject("BrowsersListHiddenFiles") else
+            QDir.Filters(QDir.Filter.AllEntries | QDir.Filter.NoDotAndDotDot)
+        )
         
         for itm in self.watchedItems[path]:
             oldCnt = itm.childCount()
@@ -729,17 +722,18 @@
                 cnt = itm.childCount()
                 self.beginInsertRows(
                     self.createIndex(itm.row(), 0, itm), cnt, cnt)
-                if f.isDir():
-                    node = ProjectBrowserDirectoryItem(
+                node = (
+                    ProjectBrowserDirectoryItem(
                         itm,
                         Utilities.toNativeSeparators(f.absoluteFilePath()),
                         itm.getProjectTypes()[0],
                         False)
-                else:
-                    node = ProjectBrowserFileItem(
+                    if f.isDir() else
+                    ProjectBrowserFileItem(
                         itm,
                         Utilities.toNativeSeparators(f.absoluteFilePath()),
                         itm.getProjectTypes()[0])
+                )
                 self._addItem(node, itm)
                 if self.project.vcs is not None:
                     self.project.vcs.clearStatusCache()
@@ -831,10 +825,11 @@
         """
         fname = os.path.basename(name)
         parentItem = self.findParentItemByName(0, name)[0]
-        if parentItem == self.rootItem:
-            parentIndex = QModelIndex()
-        else:
-            parentIndex = self.createIndex(parentItem.row(), 0, parentItem)
+        parentIndex = (
+            QModelIndex()
+            if parentItem == self.rootItem else
+            self.createIndex(parentItem.row(), 0, parentItem)
+        )
         childItem = self.findChildItem(fname, 0, parentItem)
         if childItem is not None:
             self.beginRemoveRows(parentIndex, childItem.row(), childItem.row())

eric ide

mercurial