void PerforceSubmitEditor::updateFields() { PerforceSubmitEditorWidget *widget = submitEditorWidget(); widget->setData(m_entries.value(QLatin1String("Change")).trimmed(), m_entries.value(QLatin1String("Client")).trimmed(), m_entries.value(QLatin1String("User")).trimmed()); const QString newLine = QString(QLatin1Char('\n')); QStringList lines = m_entries.value(QLatin1String("Description")).split(newLine); lines.removeFirst(); // that is the line break after 'Description:' lines.removeLast(); // that is the empty line at the end const QRegExp leadingTabPattern = QRegExp(QLatin1String("^\\t")); QTC_ASSERT(leadingTabPattern.isValid(), /**/); lines.replaceInStrings(leadingTabPattern, QString()); widget->setDescriptionText(lines.join(newLine)); lines = m_entries.value(QLatin1String("Files")).split(newLine); // split up "file#add" and store complete spec line as user data foreach (const QString &specLine, lines) { const QStringList list = specLine.split(QLatin1Char('#')); if (list.size() == 2) { const QString file = list.at(0).trimmed(); const QString state = list.at(1).trimmed(); m_fileModel->addFile(file, state).at(0)->setData(specLine, FileSpecRole); } } }
void PerforceSubmitEditor::updateEntries() { const QString newLine = QString(QLatin1Char('\n')); const QString tab = QString(QLatin1Char('\t')); QStringList lines = submitEditorWidget()->descriptionText().split(newLine); while (!lines.empty() && lines.last().isEmpty()) lines.removeLast(); // Description lines.replaceInStrings(QRegExp(QLatin1String("^")), tab); m_entries.insert(QLatin1String("Description"), newLine + lines.join(newLine) + QLatin1String("\n\n")); QString files = newLine; // Re-build the file spec '<tab>file#add' from the user data const int count = m_fileModel->rowCount(); for (int r = 0; r < count; r++) { const QStandardItem *item = m_fileModel->item(r, 0); if (item->checkState() == Qt::Checked) { files += item->data(FileSpecRole).toString(); files += newLine; } } files += newLine; m_entries.insert(QLatin1String("Files"), files); }
void GitSubmitEditor::setCommitData(const CommitData &d) { submitEditorWidget()->setPanelData(d.panelData); submitEditorWidget()->setPanelInfo(d.panelInfo); m_model = new VCSBase::SubmitFileModel(this); addStateFileListToModel(d.stagedFiles, true, StagedFile, m_model); addStateFileListToModel(d.unstagedFiles, false, UnstagedFile, m_model); if (!d.untrackedFiles.empty()) { const QString untrackedSpec = QLatin1String("untracked"); const QVariant fileTypeData(UntrackedFile); const QStringList::const_iterator cend = d.untrackedFiles.constEnd(); for (QStringList::const_iterator it = d.untrackedFiles.constBegin(); it != cend; ++it) m_model->addFile(*it, untrackedSpec, false).front()->setData(fileTypeData, FileTypeRole); } setFileModel(m_model); }