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); QTC_ASSERT(m_toolBar, return);
QString description = m_document->description(); const QString description = m_document->description();
m_descriptionWidget->setPlainText(description); m_descriptionWidget->setPlainText(description);
m_descriptionWidget->setVisible(m_showDescription && !description.isEmpty()); m_descriptionWidget->setVisible(m_showDescription && !description.isEmpty());
const QString actionText = m_showDescription ? tr("Hide Change Description")
: tr("Show Change Description");
GuardLocker guard(m_ignoreChanges); GuardLocker guard(m_ignoreChanges);
m_toggleDescriptionAction->setChecked(m_showDescription); m_toggleDescriptionAction->setChecked(m_showDescription);
m_toggleDescriptionAction->setToolTip(m_showDescription ? tr("Hide Change Description") m_toggleDescriptionAction->setToolTip(actionText);
: tr("Show Change Description")); m_toggleDescriptionAction->setText(actionText);
m_toggleDescriptionAction->setText(m_showDescription ? tr("Hide Change Description")
: tr("Show Change Description"));
m_toggleDescriptionAction->setVisible(!description.isEmpty()); m_toggleDescriptionAction->setVisible(!description.isEmpty());
} }

View File

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

View File

@@ -66,9 +66,9 @@ protected:
void setReloader(const std::function<void ()> &reloader); void setReloader(const std::function<void ()> &reloader);
void reloadFinished(bool success); void reloadFinished(bool success);
void setStartupFile(const QString &startupFile);
void setDiffFiles(const QList<FileData> &diffFileList, void setDiffFiles(const QList<FileData> &diffFileList,
const Utils::FilePath &baseDirectory = {}, const Utils::FilePath &baseDirectory = {});
const QString &startupFile = {});
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,13 +139,11 @@ 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, const FilePath &directory)
const QString &startupFile)
{ {
m_diffFiles = data; m_diffFiles = data;
if (!directory.isEmpty()) if (!directory.isEmpty())
m_baseDirectory = directory; m_baseDirectory = directory;
m_startupFile = startupFile;
emit documentChanged(); emit documentChanged();
} }
@@ -164,6 +162,11 @@ void DiffEditorDocument::setBaseDirectory(const FilePath &directory)
m_baseDirectory = directory; m_baseDirectory = directory;
} }
void DiffEditorDocument::setStartupFile(const QString &startupFile)
{
m_startupFile = startupFile;
}
QString DiffEditorDocument::startupFile() const QString DiffEditorDocument::startupFile() const
{ {
return m_startupFile; return m_startupFile;

View File

@@ -38,11 +38,11 @@ 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, const Utils::FilePath &directory);
const QString &startupFile = {});
QList<FileData> diffFiles() const; QList<FileData> diffFiles() const;
Utils::FilePath baseDirectory() const; Utils::FilePath baseDirectory() const;
void setBaseDirectory(const Utils::FilePath &directory); void setBaseDirectory(const Utils::FilePath &directory);
void setStartupFile(const QString &startupFile);
QString startupFile() const; QString startupFile() const;
void setDescription(const QString &description); void setDescription(const QString &description);

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(), startupFile()); setDiffFiles(async.result(), workingDirectory());
}; };
const auto onProcessDiffError = [this, storage](const AsyncTask<QList<FileData>> &) { const auto onProcessDiffError = [this, storage](const AsyncTask<QList<FileData>> &) {
setDiffFiles({}, workingDirectory(), startupFile()); setDiffFiles({}, workingDirectory());
}; };
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(), startupFile()); setDiffFiles(async.result(), workingDirectory());
}; };
const auto onProcessDiffError = [this, storage](const AsyncTask<QList<FileData>> &) { const auto onProcessDiffError = [this, storage](const AsyncTask<QList<FileData>> &) {
setDiffFiles({}, workingDirectory(), startupFile()); setDiffFiles({}, workingDirectory());
}; };
const Group root { const Group root {

View File

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

View File

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