MCPcopy Create free account
hub / github.com/KDE/kdevelop / updateState

Method updateState

kdevplatform/vcs/models/vcsfilechangesmodel.cpp:145–179  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

143}
144
145int VcsFileChangesModel::updateState(QStandardItem *parent, const KDevelop::VcsStatusInfo &status)
146{
147 Q_D(VcsFileChangesModel);
148
149 if(status.state()==VcsStatusInfo::ItemUnknown || status.state()==VcsStatusInfo::ItemUpToDate) {
150 removeUrl(parent->index(), status.url());
151 return -1;
152 } else {
153 QStandardItem* item = fileItemForUrl(parent, status.url());
154 if(!item) {
155 QString path = ICore::self()->projectController()->prettyFileName(status.url(), KDevelop::IProjectController::FormatPlain);
156 QMimeType mime = status.url().isLocalFile()
157 ? QMimeDatabase().mimeTypeForFile(status.url().toLocalFile(), QMimeDatabase::MatchExtension)
158 : QMimeDatabase().mimeTypeForUrl(status.url());
159 QIcon icon = QIcon::fromTheme(mime.iconName());
160 item = new QStandardItem(icon, path);
161 auto itStatus = new VcsStatusInfoItem(status);
162
163 if(d->allowSelection) {
164 item->setCheckable(true);
165 item->setCheckState(status.state() == VcsStatusInfo::ItemUnknown ? Qt::Unchecked : Qt::Checked);
166 }
167
168 parent->appendRow({ item, itStatus });
169 } else {
170 QStandardItem *parent = item->parent();
171 if(parent == nullptr)
172 parent = invisibleRootItem();
173 auto statusInfoItem = static_cast<VcsStatusInfoItem*>(parent->child(item->row(), 1));
174 statusInfoItem->setStatus(status);
175 }
176
177 return item->row();
178 }
179}
180
181QVariant VcsFileChangesModel::data(const QModelIndex &index, int role) const
182{

Callers 2

setCommitCandidatesMethod · 0.45

Calls 13

projectControllerMethod · 0.80
isLocalFileMethod · 0.80
toLocalFileMethod · 0.80
appendRowMethod · 0.80
stateMethod · 0.45
indexMethod · 0.45
urlMethod · 0.45
prettyFileNameMethod · 0.45
iconNameMethod · 0.45
parentMethod · 0.45
childMethod · 0.45
rowMethod · 0.45

Tested by 1