def _update_files(self, update_index=False): display_untracked = prefs.display_untracked() state = gitcmds.worktree_state(head=self.head, update_index=update_index, display_untracked=display_untracked, paths=self.filter_paths) self.staged = state.get('staged', []) self.modified = state.get('modified', []) self.unmerged = state.get('unmerged', []) self.untracked = state.get('untracked', []) self.upstream_changed = state.get('upstream_changed', []) self.staged_deleted = state.get('staged_deleted', set()) self.unstaged_deleted = state.get('unstaged_deleted', set()) self.submodules = state.get('submodules', set()) sel = selection_model() if self.is_empty(): sel.reset() else: sel.update(self) if selection_model().is_empty(): self.set_diff_text('')
def update_status(self): # Give observers a chance to respond self.notify_message_observers(self.message_about_to_update) # This allows us to defer notification until the # we finish processing data staged_only = self.read_only() head = self.head notify_enabled = self.notification_enabled self.notification_enabled = False # Set these early since they are used to calculate 'upstream_changed'. self.set_trackedbranch(gitcmds.tracked_branch()) self.set_currentbranch(gitcmds.current_branch()) (self.staged, self.modified, self.unmerged, self.untracked, self.upstream_changed) = gitcmds.worktree_state(head=head, staged_only=staged_only) # NOTE: the model's unstaged list holds an aggregate of the # the modified, unmerged, and untracked file lists. self.set_unstaged(self.modified + self.unmerged + self.untracked) self.set_remotes(self.git.remote().splitlines()) local_branches, remote_branches, tags = gitcmds.all_refs(split=True) self.set_local_branches(local_branches) self.set_remote_branches(remote_branches) self.set_tags(tags) self.set_revision('') self.set_local_branch('') self.set_remote_branch('') # Re-enable notifications and emit changes self.notification_enabled = notify_enabled self.read_font_sizes() self.notify_observers('staged', 'unstaged') self.notify_message_observers(self.message_updated)