# eric7.Project.ProjectBrowserModel

Module implementing the browser model.

### Global Attributes

ProjectBrowserFormType
ProjectBrowserInterfaceType
ProjectBrowserItemDirectory
ProjectBrowserItemFile
ProjectBrowserItemSimpleDirectory
ProjectBrowserNoType
ProjectBrowserOthersType
ProjectBrowserProtocolsType
ProjectBrowserResourceType
ProjectBrowserSourceType
ProjectBrowserTranslationType

### Classes

ProjectBrowserDirectoryItem | Class implementing the data structure for project browser directory items.
ProjectBrowserFileItem | Class implementing the data structure for project browser file items.
ProjectBrowserItemMixin | Class implementing common methods of project browser items.
ProjectBrowserModel | Class implementing the project browser model.
ProjectBrowserSimpleDirectoryItem | Class implementing the data structure for project browser simple directory items.

### Functions

None

## ProjectBrowserDirectoryItem

Class implementing the data structure for project browser directory items.

### Derived from

BrowserDirectoryItem, ProjectBrowserItemMixin

### Class Attributes

None

### Class Methods

None

### Methods

ProjectBrowserDirectoryItem | Constructor

### Static Methods

None

#### ProjectBrowserDirectoryItem (Constructor)

ProjectBrowserDirectoryItem(parent, dinfo, projectType, full=True, bold=False)

Constructor

parent
  parent item
dinfo
  dinfo is the string for the directory (string)
projectType
  type of file/directory in the project
full
  flag indicating full pathname should be displayed (boolean)
bold
  flag indicating a highlighted font (boolean)

Up

## ProjectBrowserFileItem

Class implementing the data structure for project browser file items.

### Derived from

BrowserFileItem, ProjectBrowserItemMixin

### Class Attributes

None

### Class Methods

None

### Methods

ProjectBrowserFileItem | Constructor

### Static Methods

None

#### ProjectBrowserFileItem (Constructor)

ProjectBrowserFileItem(parent, finfo, projectType, full=True, bold=False, sourceLanguage="")

Constructor

parent
  parent item
finfo
  the string for the file (string)
projectType
  type of file/directory in the project
full
  flag indicating full pathname should be displayed (boolean)
bold
  flag indicating a highlighted font (boolean)
sourceLanguage
  source code language of the project (string)

Up

## ProjectBrowserItemMixin

Class implementing common methods of project browser items.

It is meant to be used as a mixin class.

### Derived from

None

### Class Attributes

None

### Class Methods

None

### Methods

ProjectBrowserItemMixin | Constructor
addProjectType | Public method to add a type to the list.
addVcsStatus | Public method to add the VCS status.
getProjectTypes | Public method to get the project type.
getTextColor | Public method to get the items text color.
setVcsState | Public method to set the items VCS state.
setVcsStatus | Public method to set the VCS status.

### Static Methods

None

#### ProjectBrowserItemMixin (Constructor)

ProjectBrowserItemMixin(type_, bold=False)

Constructor

type_
  type of file/directory in the project
bold
  flag indicating a highlighted font

#### ProjectBrowserItemMixin.addProjectType

addProjectType(type_)

Public method to add a type to the list.

type_
  type to add to the list

#### ProjectBrowserItemMixin.addVcsStatus

addVcsStatus(vcsStatus)

Public method to add the VCS status.

vcsStatus
  VCS status text (string)

#### ProjectBrowserItemMixin.getProjectTypes

getProjectTypes()

Public method to get the project type.

Return:
  project type

#### ProjectBrowserItemMixin.getTextColor

getTextColor()

Public method to get the items text color.

Return:
  text color (QColor)

#### ProjectBrowserItemMixin.setVcsState

setVcsState(state)

Public method to set the items VCS state.

state
  VCS state (one of A, C, M, U or " ") (string)

#### ProjectBrowserItemMixin.setVcsStatus

setVcsStatus(vcsStatus)

Public method to set the VCS status.

vcsStatus
  VCS status text (string)

Up

## ProjectBrowserModel

Class implementing the project browser model.

### Signals

vcsStateChanged(str)
  emitted after the VCS state has changed

### Derived from

BrowserModel

### Class Attributes

None

### Class Methods

None

### Methods

ProjectBrowserModel | Constructor
__addVCSStatus | Private method used to set the vcs status of a node.
__changeParentsVCSState | Private method to recursively change the parents VCS state.
__updateVCSStatus | Private method used to update the vcs status of a node.
addNewItem | Public method to add a new item to the model.
changeVCSStates | Public slot to record the (non normal) VCS states.
data | Public method to get data of an item.
directoryChanged | Public slot to handle the directoryChanged signal of the watcher.
findChildItem | Public method to find a child item given some text.
findItem | Public method to find an item given its name.
findParentItemByName | Public method to find an item given its name.
itemIndexByName | Public method to find an item's index given its name.
itemIndexByNameAndLine | Public method to find an item's index given its name.
populateItem | Public method to populate an item's subtree.
populateProjectDirectoryItem | Public method to populate a directory item's subtree.
preferencesChanged | Public method used to handle a change in preferences.
projectClosed | Public method called after a project has been closed.
projectOpened | Public method used to populate the model after a project has been opened.
projectPropertiesChanged | Public method to react on a change of the project properties.
removeItem | Public method to remove a named item.
renameItem | Public method to rename an item.
repopulateItem | Public method to repopulate an item.
startFileSystemMonitoring | Public method to (re)start monitoring the project file system.
stopFileSystemMonitoring | Public method to stop monitoring the project file system.
updateVCSStatus | Public method used to update the vcs status of a node.

### Static Methods

None

#### ProjectBrowserModel (Constructor)

ProjectBrowserModel(parent)

Constructor

parent
  reference to parent object (Project.Project)

#### ProjectBrowserModel.__addVCSStatus

__addVCSStatus(item, name)

Private method used to set the vcs status of a node.

item
  item to work on
name
  filename belonging to this item (string)

#### ProjectBrowserModel.__changeParentsVCSState

__changeParentsVCSState(path, itemCache)

Private method to recursively change the parents VCS state.

path
  pathname of parent item (string)
itemCache
  reference to the item cache used to store references to named items

#### ProjectBrowserModel.__updateVCSStatus

__updateVCSStatus(item, name, recursive=True)

Private method used to update the vcs status of a node.

item
  item to work on
name
  filename belonging to this item (string)
recursive
  flag indicating a recursive update (boolean)

#### ProjectBrowserModel.addNewItem

addNewItem(typeString, name, additionalTypeStrings=None)

Public method to add a new item to the model.

typeString
  string denoting the type of the new item (string)
name
  name of the new item (string)
additionalTypeStrings
  names of additional types (list of string)

#### ProjectBrowserModel.changeVCSStates

changeVCSStates(statesList)

Public slot to record the (non normal) VCS states.

statesList
  list of VCS state entries (list of strings) giving the states in the first column and the path relative to the project directory starting with the third column. The allowed status flags are:
  - "A" path was added but not yet comitted
  - "M" path has local changes
  - "O" path was removed
  - "R" path was deleted and then re-added
  - "U" path needs an update
  - "Z" path contains a conflict
  - " " path is back at normal

#### ProjectBrowserModel.data

data(index, role)

Public method to get data of an item.

index
  index of the data to retrieve (QModelIndex)
role
  role of data (Qt.ItemDataRole)

Return:
  requested data

#### ProjectBrowserModel.directoryChanged

directoryChanged(path)

Public slot to handle the directoryChanged signal of the watcher.

path
  path of the directory (string)

#### ProjectBrowserModel.findChildItem

findChildItem(text, column, parentItem=None)

Public method to find a child item given some text.

text
  text to search for (string)
column
  column to search in (integer)
parentItem
  reference to parent item

Return:
  reference to the item found

#### ProjectBrowserModel.findItem

findItem(name)

Public method to find an item given its name.

name
  name of the item (string)

Return:
  reference to the item found

#### ProjectBrowserModel.findParentItemByName

findParentItemByName(type_, name, dontSplit=False)

Public method to find an item given its name.

Note: This method creates all necessary parent items, if they don't exist.

type_
  type of the item
name
  name of the item (string)
dontSplit
  flag indicating the name should not be split (boolean)

Return:
  reference to the item found and the new display name (string)

#### ProjectBrowserModel.itemIndexByName

itemIndexByName(name)

Public method to find an item's index given its name.

name
  name of the item (string)

Return:
  index of the item found (QModelIndex)

#### ProjectBrowserModel.itemIndexByNameAndLine

itemIndexByNameAndLine(name, lineno)

Public method to find an item's index given its name.

name
  name of the item (string)
lineno
  one based line number of the item (integer)

Return:
  index of the item found (QModelIndex)

#### ProjectBrowserModel.populateItem

populateItem(parentItem, repopulate=False)

Public method to populate an item's subtree.

parentItem
  reference to the item to be populated
repopulate
  flag indicating a repopulation (boolean)

#### ProjectBrowserModel.populateProjectDirectoryItem

populateProjectDirectoryItem(parentItem, repopulate=False)

Public method to populate a directory item's subtree.

parentItem
  reference to the directory item to be populated
repopulate
  flag indicating a repopulation (boolean)

#### ProjectBrowserModel.preferencesChanged

preferencesChanged()

Public method used to handle a change in preferences.

#### ProjectBrowserModel.projectClosed

projectClosed()

Public method called after a project has been closed.

#### ProjectBrowserModel.projectOpened

projectOpened()

Public method used to populate the model after a project has been opened.

#### ProjectBrowserModel.projectPropertiesChanged

projectPropertiesChanged()

Public method to react on a change of the project properties.

#### ProjectBrowserModel.removeItem

removeItem(name)

Public method to remove a named item.

name
  file or directory name of the item (string).

#### ProjectBrowserModel.renameItem

renameItem(name, newFilename)

Public method to rename an item.

name
  the old display name (string)
newFilename
  new filename of the item (string)

#### ProjectBrowserModel.repopulateItem

repopulateItem(name)

Public method to repopulate an item.

name
  name of the file relative to the project root (string)

#### ProjectBrowserModel.startFileSystemMonitoring

startFileSystemMonitoring()

Public method to (re)start monitoring the project file system.

#### ProjectBrowserModel.stopFileSystemMonitoring

stopFileSystemMonitoring()

Public method to stop monitoring the project file system.

#### ProjectBrowserModel.updateVCSStatus

updateVCSStatus(name, recursive=True)

Public method used to update the vcs status of a node.

name
  filename belonging to this item (string)
recursive
  flag indicating a recursive update (boolean)

Up

## ProjectBrowserSimpleDirectoryItem

Class implementing the data structure for project browser simple directory items.

### Derived from

BrowserItem, ProjectBrowserItemMixin

### Class Attributes

None

### Class Methods

None

### Methods

ProjectBrowserSimpleDirectoryItem | Constructor
dirName | Public method returning the directory name.
lessThan | Public method to check, if the item is less than the other one.
name | Public method to return the name of the item.
setName | Public method to set the directory name.

### Static Methods

None

#### ProjectBrowserSimpleDirectoryItem (Constructor)

ProjectBrowserSimpleDirectoryItem(parent, projectType, text, path="")

Constructor

parent
  parent item
projectType
  type of file/directory in the project
text
  text to be displayed (string)
path
  path of the directory (string)

#### ProjectBrowserSimpleDirectoryItem.dirName

dirName()

Public method returning the directory name.

Return:
  directory name (string)

#### ProjectBrowserSimpleDirectoryItem.lessThan

lessThan(other, column, order)

Public method to check, if the item is less than the other one.

other
  reference to item to compare against (BrowserItem)
column
  column number to use for the comparison (integer)
order
  sort order (Qt.SortOrder) (for special sorting)

Return:
  true, if this item is less than other (boolean)

#### ProjectBrowserSimpleDirectoryItem.name

name()

Public method to return the name of the item.

Return:
  name of the item (string)

#### ProjectBrowserSimpleDirectoryItem.setName

setName(dinfo, full=True)

Public method to set the directory name.

dinfo
  dinfo is the string for the directory (string)
full
  flag indicating full pathname should be displayed (boolean)

Up