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:
Jarek Kobus
2022-12-14 22:16:49 +01:00
parent ce161d0b16
commit 5aedb4ba56
8 changed files with 33 additions and 51 deletions

View File

@@ -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)

View File

@@ -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);

View File

@@ -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({});
} }

View File

@@ -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;

View File

@@ -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});
} }

View File

@@ -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();

View File

@@ -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;

View File

@@ -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;