DiffEditor: Simplify internals

Don't pass startupFile arg on every setDiffFiles.
Provide a setStartupFile() separate setter inside
DiffEditorDocument and call it directly from
DiffEditorController::setStartupFile().

Correct updateDescription() implementation.

Change-Id: Ie489431632bdabc61e2c692d09caf7b2e3990764
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
Jarek Kobus
2022-12-14 09:10:46 +01:00
parent ac7a582ca9
commit 042087ab1d
8 changed files with 27 additions and 33 deletions

View File

@@ -381,16 +381,16 @@ void DiffEditor::updateDescription()
{
QTC_ASSERT(m_toolBar, return);
QString description = m_document->description();
const QString description = m_document->description();
m_descriptionWidget->setPlainText(description);
m_descriptionWidget->setVisible(m_showDescription && !description.isEmpty());
const QString actionText = m_showDescription ? tr("Hide Change Description")
: tr("Show Change Description");
GuardLocker guard(m_ignoreChanges);
m_toggleDescriptionAction->setChecked(m_showDescription);
m_toggleDescriptionAction->setToolTip(m_showDescription ? tr("Hide Change Description")
: tr("Show Change Description"));
m_toggleDescriptionAction->setText(m_showDescription ? tr("Hide Change Description")
: tr("Show Change Description"));
m_toggleDescriptionAction->setToolTip(actionText);
m_toggleDescriptionAction->setText(actionText);
m_toggleDescriptionAction->setVisible(!description.isEmpty());
}

View File

@@ -77,10 +77,9 @@ DiffEditorController *DiffEditorController::controller(Core::IDocument *document
}
void DiffEditorController::setDiffFiles(const QList<FileData> &diffFileList,
const FilePath &workingDirectory,
const QString &startupFile)
const FilePath &workingDirectory)
{
m_document->setDiffFiles(diffFileList, workingDirectory, startupFile);
m_document->setDiffFiles(diffFileList, workingDirectory);
}
void DiffEditorController::setDescription(const QString &description)
@@ -143,6 +142,11 @@ void DiffEditorController::reloadFinished(bool success)
m_isReloading = false;
}
void DiffEditorController::setStartupFile(const QString &startupFile)
{
m_document->setStartupFile(startupFile);
}
void DiffEditorController::requestChunkActions(QMenu *menu, int fileIndex, int chunkIndex,
const ChunkSelection &selection)
{

View File

@@ -66,9 +66,9 @@ protected:
void setReloader(const std::function<void ()> &reloader);
void reloadFinished(bool success);
void setStartupFile(const QString &startupFile);
void setDiffFiles(const QList<FileData> &diffFileList,
const Utils::FilePath &baseDirectory = {},
const QString &startupFile = {});
const Utils::FilePath &baseDirectory = {});
void setDescription(const QString &description);
QString description() const;
void forceContextLineCount(int lines);

View File

@@ -139,13 +139,11 @@ QString DiffEditorDocument::makePatch(int fileIndex, int chunkIndex,
lastChunk && fileData.lastChunkAtTheEndOfFile);
}
void DiffEditorDocument::setDiffFiles(const QList<FileData> &data, const FilePath &directory,
const QString &startupFile)
void DiffEditorDocument::setDiffFiles(const QList<FileData> &data, const FilePath &directory)
{
m_diffFiles = data;
if (!directory.isEmpty())
m_baseDirectory = directory;
m_startupFile = startupFile;
emit documentChanged();
}
@@ -164,6 +162,11 @@ void DiffEditorDocument::setBaseDirectory(const FilePath &directory)
m_baseDirectory = directory;
}
void DiffEditorDocument::setStartupFile(const QString &startupFile)
{
m_startupFile = startupFile;
}
QString DiffEditorDocument::startupFile() const
{
return m_startupFile;

View File

@@ -38,11 +38,11 @@ public:
Core::PatchAction patchAction, bool addPrefix = false,
const QString &overriddenFileName = {}) const;
void setDiffFiles(const QList<FileData> &data, const Utils::FilePath &directory,
const QString &startupFile = {});
void setDiffFiles(const QList<FileData> &data, const Utils::FilePath &directory);
QList<FileData> diffFiles() const;
Utils::FilePath baseDirectory() const;
void setBaseDirectory(const Utils::FilePath &directory);
void setStartupFile(const QString &startupFile);
QString startupFile() const;
void setDescription(const QString &description);

View File

@@ -256,10 +256,10 @@ private:
setupDiffProcessor(async, storage->m_stagedOutput + storage->m_unstagedOutput);
};
const auto onProcessDiffDone = [this, storage](const AsyncTask<QList<FileData>> &async) {
setDiffFiles(async.result(), workingDirectory(), startupFile());
setDiffFiles(async.result(), workingDirectory());
};
const auto onProcessDiffError = [this, storage](const AsyncTask<QList<FileData>> &) {
setDiffFiles({}, workingDirectory(), startupFile());
setDiffFiles({}, workingDirectory());
};
const Group root {
@@ -474,10 +474,10 @@ Tasking::Group ShowController::reloadRecipe()
setupDiffProcessor(async, storage->m_diffOutput);
};
const auto onProcessDiffDone = [this, storage](const AsyncTask<QList<FileData>> &async) {
setDiffFiles(async.result(), workingDirectory(), startupFile());
setDiffFiles(async.result(), workingDirectory());
};
const auto onProcessDiffError = [this, storage](const AsyncTask<QList<FileData>> &) {
setDiffFiles({}, workingDirectory(), startupFile());
setDiffFiles({}, workingDirectory());
};
const Group root {

View File

@@ -50,7 +50,6 @@ public:
Environment m_processEnvironment;
FilePath m_vcsBinary;
int m_vscTimeoutS;
QString m_startupFile;
QPointer<VcsCommand> m_command;
QFutureWatcher<QList<FileData>> *m_processWatcher = nullptr;
};
@@ -76,7 +75,7 @@ void VcsBaseDiffEditorControllerPrivate::processingFinished()
m_processWatcher->deleteLater();
m_processWatcher = nullptr;
q->setDiffFiles(fileDataList, q->workingDirectory(), q->startupFile());
q->setDiffFiles(fileDataList, q->workingDirectory());
q->reloadFinished(success);
}
@@ -186,16 +185,6 @@ FilePath VcsBaseDiffEditorController::workingDirectory() const
return d->m_directory;
}
void VcsBaseDiffEditorController::setStartupFile(const QString &startupFile)
{
d->m_startupFile = startupFile;
}
QString VcsBaseDiffEditorController::startupFile() const
{
return d->m_startupFile;
}
void VcsBase::VcsBaseDiffEditorController::setWorkingDirectory(const FilePath &workingDir)
{
d->m_directory = workingDir;

View File

@@ -46,8 +46,6 @@ protected:
virtual void processCommandOutput(const QString &output);
Utils::FilePath workingDirectory() const;
void setStartupFile(const QString &startupFile);
QString startupFile() const;
private:
friend class VcsBaseDiffEditorControllerPrivate;