forked from qt-creator/qt-creator
DiffEditorController: Simplify API
Get rid of VcsBaseDiffEditorController::setWorkingDirectory() and rename DiffEditorController::setBaseDirectory() into setWorkingDirectory(). Don't pass workingDirectory inside setDiffFiles(). Change-Id: I6a3a02d5e3ddc23977ed2908cd8d7b8ed51a9ee0 Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
@@ -32,14 +32,14 @@ bool DiffEditorController::isReloading() const
|
|||||||
return m_isReloading;
|
return m_isReloading;
|
||||||
}
|
}
|
||||||
|
|
||||||
FilePath DiffEditorController::baseDirectory() const
|
FilePath DiffEditorController::workingDirectory() const
|
||||||
{
|
{
|
||||||
return m_document->baseDirectory();
|
return m_document->workingDirectory();
|
||||||
}
|
}
|
||||||
|
|
||||||
void DiffEditorController::setBaseDirectory(const FilePath &directory)
|
void DiffEditorController::setWorkingDirectory(const FilePath &directory)
|
||||||
{
|
{
|
||||||
m_document->setBaseDirectory(directory);
|
m_document->setWorkingDirectory(directory);
|
||||||
}
|
}
|
||||||
|
|
||||||
int DiffEditorController::contextLineCount() const
|
int DiffEditorController::contextLineCount() const
|
||||||
@@ -76,10 +76,9 @@ DiffEditorController *DiffEditorController::controller(Core::IDocument *document
|
|||||||
return doc ? doc->controller() : nullptr;
|
return doc ? doc->controller() : nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
void DiffEditorController::setDiffFiles(const QList<FileData> &diffFileList,
|
void DiffEditorController::setDiffFiles(const QList<FileData> &diffFileList)
|
||||||
const FilePath &workingDirectory)
|
|
||||||
{
|
{
|
||||||
m_document->setDiffFiles(diffFileList, workingDirectory);
|
m_document->setDiffFiles(diffFileList);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DiffEditorController::setDescription(const QString &description)
|
void DiffEditorController::setDescription(const QString &description)
|
||||||
|
@@ -30,8 +30,8 @@ public:
|
|||||||
void requestReload();
|
void requestReload();
|
||||||
bool isReloading() const;
|
bool isReloading() const;
|
||||||
|
|
||||||
Utils::FilePath baseDirectory() const;
|
Utils::FilePath workingDirectory() const;
|
||||||
void setBaseDirectory(const Utils::FilePath &directory);
|
void setWorkingDirectory(const Utils::FilePath &directory);
|
||||||
int contextLineCount() const;
|
int contextLineCount() const;
|
||||||
bool ignoreWhitespace() const;
|
bool ignoreWhitespace() const;
|
||||||
|
|
||||||
@@ -67,8 +67,7 @@ protected:
|
|||||||
void reloadFinished(bool success);
|
void reloadFinished(bool success);
|
||||||
|
|
||||||
void setStartupFile(const QString &startupFile);
|
void setStartupFile(const QString &startupFile);
|
||||||
void setDiffFiles(const QList<FileData> &diffFileList,
|
void setDiffFiles(const QList<FileData> &diffFileList);
|
||||||
const Utils::FilePath &baseDirectory = {});
|
|
||||||
void setDescription(const QString &description);
|
void setDescription(const QString &description);
|
||||||
QString description() const;
|
QString description() const;
|
||||||
void forceContextLineCount(int lines);
|
void forceContextLineCount(int lines);
|
||||||
|
@@ -139,11 +139,9 @@ QString DiffEditorDocument::makePatch(int fileIndex, int chunkIndex,
|
|||||||
lastChunk && fileData.lastChunkAtTheEndOfFile);
|
lastChunk && fileData.lastChunkAtTheEndOfFile);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DiffEditorDocument::setDiffFiles(const QList<FileData> &data, const FilePath &directory)
|
void DiffEditorDocument::setDiffFiles(const QList<FileData> &data)
|
||||||
{
|
{
|
||||||
m_diffFiles = data;
|
m_diffFiles = data;
|
||||||
if (!directory.isEmpty())
|
|
||||||
m_baseDirectory = directory;
|
|
||||||
emit documentChanged();
|
emit documentChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -152,14 +150,14 @@ QList<FileData> DiffEditorDocument::diffFiles() const
|
|||||||
return m_diffFiles;
|
return m_diffFiles;
|
||||||
}
|
}
|
||||||
|
|
||||||
FilePath DiffEditorDocument::baseDirectory() const
|
FilePath DiffEditorDocument::workingDirectory() const
|
||||||
{
|
{
|
||||||
return m_baseDirectory;
|
return m_workingDirectory;
|
||||||
}
|
}
|
||||||
|
|
||||||
void DiffEditorDocument::setBaseDirectory(const FilePath &directory)
|
void DiffEditorDocument::setWorkingDirectory(const FilePath &directory)
|
||||||
{
|
{
|
||||||
m_baseDirectory = directory;
|
m_workingDirectory = directory;
|
||||||
}
|
}
|
||||||
|
|
||||||
void DiffEditorDocument::setStartupFile(const QString &startupFile)
|
void DiffEditorDocument::setStartupFile(const QString &startupFile)
|
||||||
@@ -226,8 +224,8 @@ bool DiffEditorDocument::setContents(const QByteArray &contents)
|
|||||||
|
|
||||||
FilePath DiffEditorDocument::fallbackSaveAsPath() const
|
FilePath DiffEditorDocument::fallbackSaveAsPath() const
|
||||||
{
|
{
|
||||||
if (!m_baseDirectory.isEmpty())
|
if (!m_workingDirectory.isEmpty())
|
||||||
return m_baseDirectory;
|
return m_workingDirectory;
|
||||||
return FileUtils::homePath();
|
return FileUtils::homePath();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -301,7 +299,8 @@ Core::IDocument::OpenResult DiffEditorDocument::open(QString *errorString, const
|
|||||||
setTemporary(false);
|
setTemporary(false);
|
||||||
emit temporaryStateChanged();
|
emit temporaryStateChanged();
|
||||||
setFilePath(filePath.absoluteFilePath());
|
setFilePath(filePath.absoluteFilePath());
|
||||||
setDiffFiles(fileDataList, filePath.absoluteFilePath());
|
setWorkingDirectory(filePath.absoluteFilePath());
|
||||||
|
setDiffFiles(fileDataList);
|
||||||
}
|
}
|
||||||
endReload(ok);
|
endReload(ok);
|
||||||
if (!ok && readResult == TextFileFormat::ReadEncodingError)
|
if (!ok && readResult == TextFileFormat::ReadEncodingError)
|
||||||
@@ -386,7 +385,7 @@ void DiffEditorDocument::beginReload()
|
|||||||
m_state = Reloading;
|
m_state = Reloading;
|
||||||
emit changed();
|
emit changed();
|
||||||
QSignalBlocker blocker(this);
|
QSignalBlocker blocker(this);
|
||||||
setDiffFiles({}, {});
|
setDiffFiles({});
|
||||||
setDescription({});
|
setDescription({});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -38,10 +38,10 @@ public:
|
|||||||
Core::PatchAction patchAction, bool addPrefix = false,
|
Core::PatchAction patchAction, bool addPrefix = false,
|
||||||
const QString &overriddenFileName = {}) const;
|
const QString &overriddenFileName = {}) const;
|
||||||
|
|
||||||
void setDiffFiles(const QList<FileData> &data, const Utils::FilePath &directory);
|
void setDiffFiles(const QList<FileData> &data);
|
||||||
QList<FileData> diffFiles() const;
|
QList<FileData> diffFiles() const;
|
||||||
Utils::FilePath baseDirectory() const;
|
Utils::FilePath workingDirectory() const;
|
||||||
void setBaseDirectory(const Utils::FilePath &directory);
|
void setWorkingDirectory(const Utils::FilePath &directory);
|
||||||
void setStartupFile(const QString &startupFile);
|
void setStartupFile(const QString &startupFile);
|
||||||
QString startupFile() const;
|
QString startupFile() const;
|
||||||
|
|
||||||
@@ -82,7 +82,7 @@ private:
|
|||||||
|
|
||||||
DiffEditorController *m_controller = nullptr;
|
DiffEditorController *m_controller = nullptr;
|
||||||
QList<FileData> m_diffFiles;
|
QList<FileData> m_diffFiles;
|
||||||
Utils::FilePath m_baseDirectory;
|
Utils::FilePath m_workingDirectory;
|
||||||
QString m_startupFile;
|
QString m_startupFile;
|
||||||
QString m_description;
|
QString m_description;
|
||||||
int m_contextLineCount = 3;
|
int m_contextLineCount = 3;
|
||||||
|
@@ -142,9 +142,9 @@ void DiffEditorWidgetController::patch(PatchAction patchAction, int fileIndex, i
|
|||||||
? fileData.fileInfo[LeftSide].patchBehaviour
|
? fileData.fileInfo[LeftSide].patchBehaviour
|
||||||
: fileData.fileInfo[RightSide].patchBehaviour;
|
: fileData.fileInfo[RightSide].patchBehaviour;
|
||||||
|
|
||||||
const FilePath workingDirectory = m_document->baseDirectory().isEmpty()
|
const FilePath workingDirectory = m_document->workingDirectory().isEmpty()
|
||||||
? FilePath::fromString(fileName).absolutePath()
|
? FilePath::fromString(fileName).absolutePath()
|
||||||
: m_document->baseDirectory();
|
: m_document->workingDirectory();
|
||||||
const FilePath absFilePath = workingDirectory.resolvePath(fileName).absoluteFilePath();
|
const FilePath absFilePath = workingDirectory.resolvePath(fileName).absoluteFilePath();
|
||||||
|
|
||||||
auto textDocument = qobject_cast<TextEditor::TextDocument *>(
|
auto textDocument = qobject_cast<TextEditor::TextDocument *>(
|
||||||
@@ -158,7 +158,7 @@ void DiffEditorWidgetController::patch(PatchAction patchAction, int fileIndex, i
|
|||||||
if (patchBehaviour == DiffFileInfo::PatchFile) {
|
if (patchBehaviour == DiffFileInfo::PatchFile) {
|
||||||
if (textDocument && !EditorManager::saveDocument(textDocument))
|
if (textDocument && !EditorManager::saveDocument(textDocument))
|
||||||
return;
|
return;
|
||||||
const int strip = m_document->baseDirectory().isEmpty() ? -1 : 0;
|
const int strip = m_document->workingDirectory().isEmpty() ? -1 : 0;
|
||||||
|
|
||||||
const QString patch = m_document->makePatch(fileIndex, chunkIndex, {}, patchAction);
|
const QString patch = m_document->makePatch(fileIndex, chunkIndex, {}, patchAction);
|
||||||
|
|
||||||
@@ -205,7 +205,7 @@ void DiffEditorWidgetController::jumpToOriginalFile(const QString &fileName,
|
|||||||
if (!m_document)
|
if (!m_document)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
const FilePath filePath = m_document->baseDirectory().resolvePath(fileName);
|
const FilePath filePath = m_document->workingDirectory().resolvePath(fileName);
|
||||||
if (filePath.exists() && !filePath.isDir())
|
if (filePath.exists() && !filePath.isDir())
|
||||||
EditorManager::openEditorAt({filePath, lineNumber, columnNumber});
|
EditorManager::openEditorAt({filePath, lineNumber, columnNumber});
|
||||||
}
|
}
|
||||||
|
@@ -256,10 +256,10 @@ private:
|
|||||||
setupDiffProcessor(async, storage->m_stagedOutput + storage->m_unstagedOutput);
|
setupDiffProcessor(async, storage->m_stagedOutput + storage->m_unstagedOutput);
|
||||||
};
|
};
|
||||||
const auto onProcessDiffDone = [this, storage](const AsyncTask<QList<FileData>> &async) {
|
const auto onProcessDiffDone = [this, storage](const AsyncTask<QList<FileData>> &async) {
|
||||||
setDiffFiles(async.result(), workingDirectory());
|
setDiffFiles(async.result());
|
||||||
};
|
};
|
||||||
const auto onProcessDiffError = [this, storage](const AsyncTask<QList<FileData>> &) {
|
const auto onProcessDiffError = [this, storage](const AsyncTask<QList<FileData>> &) {
|
||||||
setDiffFiles({}, workingDirectory());
|
setDiffFiles({});
|
||||||
};
|
};
|
||||||
|
|
||||||
const Group root {
|
const Group root {
|
||||||
@@ -474,10 +474,10 @@ Tasking::Group ShowController::reloadRecipe()
|
|||||||
setupDiffProcessor(async, storage->m_diffOutput);
|
setupDiffProcessor(async, storage->m_diffOutput);
|
||||||
};
|
};
|
||||||
const auto onProcessDiffDone = [this, storage](const AsyncTask<QList<FileData>> &async) {
|
const auto onProcessDiffDone = [this, storage](const AsyncTask<QList<FileData>> &async) {
|
||||||
setDiffFiles(async.result(), workingDirectory());
|
setDiffFiles(async.result());
|
||||||
};
|
};
|
||||||
const auto onProcessDiffError = [this, storage](const AsyncTask<QList<FileData>> &) {
|
const auto onProcessDiffError = [this, storage](const AsyncTask<QList<FileData>> &) {
|
||||||
setDiffFiles({}, workingDirectory());
|
setDiffFiles({});
|
||||||
};
|
};
|
||||||
|
|
||||||
const Group root {
|
const Group root {
|
||||||
@@ -915,7 +915,7 @@ void GitClient::stage(DiffEditor::DiffEditorController *diffController,
|
|||||||
if (!patchFile.open())
|
if (!patchFile.open())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
const FilePath baseDir = diffController->baseDirectory();
|
const FilePath baseDir = diffController->workingDirectory();
|
||||||
QTextCodec *codec = EditorManager::defaultTextCodec();
|
QTextCodec *codec = EditorManager::defaultTextCodec();
|
||||||
const QByteArray patchData = codec
|
const QByteArray patchData = codec
|
||||||
? codec->fromUnicode(patch) : patch.toLocal8Bit();
|
? codec->fromUnicode(patch) : patch.toLocal8Bit();
|
||||||
|
@@ -46,7 +46,6 @@ public:
|
|||||||
void commandFinished(bool success);
|
void commandFinished(bool success);
|
||||||
|
|
||||||
VcsBaseDiffEditorController *q;
|
VcsBaseDiffEditorController *q;
|
||||||
FilePath m_directory;
|
|
||||||
Environment m_processEnvironment;
|
Environment m_processEnvironment;
|
||||||
FilePath m_vcsBinary;
|
FilePath m_vcsBinary;
|
||||||
int m_vscTimeoutS;
|
int m_vscTimeoutS;
|
||||||
@@ -75,7 +74,7 @@ void VcsBaseDiffEditorControllerPrivate::processingFinished()
|
|||||||
m_processWatcher->deleteLater();
|
m_processWatcher->deleteLater();
|
||||||
m_processWatcher = nullptr;
|
m_processWatcher = nullptr;
|
||||||
|
|
||||||
q->setDiffFiles(fileDataList, q->workingDirectory());
|
q->setDiffFiles(fileDataList);
|
||||||
q->reloadFinished(success);
|
q->reloadFinished(success);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -180,17 +179,6 @@ void VcsBaseDiffEditorController::processCommandOutput(const QString &output)
|
|||||||
d->processDiff(output);
|
d->processDiff(output);
|
||||||
}
|
}
|
||||||
|
|
||||||
FilePath VcsBaseDiffEditorController::workingDirectory() const
|
|
||||||
{
|
|
||||||
return d->m_directory;
|
|
||||||
}
|
|
||||||
|
|
||||||
void VcsBase::VcsBaseDiffEditorController::setWorkingDirectory(const FilePath &workingDir)
|
|
||||||
{
|
|
||||||
d->m_directory = workingDir;
|
|
||||||
setBaseDirectory(workingDir);
|
|
||||||
}
|
|
||||||
|
|
||||||
void VcsBaseDiffEditorController::setVcsTimeoutS(int value)
|
void VcsBaseDiffEditorController::setVcsTimeoutS(int value)
|
||||||
{
|
{
|
||||||
d->m_vscTimeoutS = value;
|
d->m_vscTimeoutS = value;
|
||||||
|
@@ -36,7 +36,6 @@ public:
|
|||||||
void setProcessEnvironment(const Utils::Environment &value);
|
void setProcessEnvironment(const Utils::Environment &value);
|
||||||
void setVcsBinary(const Utils::FilePath &path);
|
void setVcsBinary(const Utils::FilePath &path);
|
||||||
void setVcsTimeoutS(int value);
|
void setVcsTimeoutS(int value);
|
||||||
void setWorkingDirectory(const Utils::FilePath &workingDir);
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void setupCommand(Utils::QtcProcess &process, const QStringList &args) const;
|
void setupCommand(Utils::QtcProcess &process, const QStringList &args) const;
|
||||||
@@ -45,8 +44,6 @@ protected:
|
|||||||
void runCommand(const QList<QStringList> &args, RunFlags flags, QTextCodec *codec = nullptr);
|
void runCommand(const QList<QStringList> &args, RunFlags flags, QTextCodec *codec = nullptr);
|
||||||
virtual void processCommandOutput(const QString &output);
|
virtual void processCommandOutput(const QString &output);
|
||||||
|
|
||||||
Utils::FilePath workingDirectory() const;
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
friend class VcsBaseDiffEditorControllerPrivate;
|
friend class VcsBaseDiffEditorControllerPrivate;
|
||||||
VcsBaseDiffEditorControllerPrivate *d;
|
VcsBaseDiffEditorControllerPrivate *d;
|
||||||
|
Reference in New Issue
Block a user