diff options
-rw-r--r-- | .github/workflows/build_cmake.yml | 4 | ||||
-rw-r--r-- | plugins/fossil/commiteditor.cpp | 2 | ||||
-rw-r--r-- | plugins/fossil/commiteditor.h | 2 | ||||
-rw-r--r-- | plugins/fossil/fossilclient.cpp | 17 | ||||
-rw-r--r-- | plugins/fossil/fossilclient.h | 6 | ||||
-rw-r--r-- | plugins/fossil/fossilcommitwidget.cpp | 5 | ||||
-rw-r--r-- | plugins/fossil/fossilcommitwidget.h | 5 | ||||
-rw-r--r-- | plugins/fossil/fossilplugin.cpp | 34 |
8 files changed, 26 insertions, 49 deletions
diff --git a/.github/workflows/build_cmake.yml b/.github/workflows/build_cmake.yml index 38a37dc..6ddc72b 100644 --- a/.github/workflows/build_cmake.yml +++ b/.github/workflows/build_cmake.yml @@ -6,8 +6,8 @@ env: PLUGIN_NAME: Fossil QT_VERSION: 6.4.2 MACOS_DEPLOYMENT_TARGET: 10.14 - QT_CREATOR_VERSION: 9.0.0 - QT_CREATOR_SNAPSHOT: NO + QT_CREATOR_VERSION: 10.0.0-beta1 + QT_CREATOR_SNAPSHOT: latest CMAKE_VERSION: 3.21.1 NINJA_VERSION: 1.10.2 diff --git a/plugins/fossil/commiteditor.cpp b/plugins/fossil/commiteditor.cpp index 4ed3370..9b02ab7 100644 --- a/plugins/fossil/commiteditor.cpp +++ b/plugins/fossil/commiteditor.cpp @@ -47,7 +47,7 @@ FossilCommitWidget *CommitEditor::commitWidget() return static_cast<FossilCommitWidget *>(widget()); } -void CommitEditor::setFields(const QString &repositoryRoot, const BranchInfo &branch, +void CommitEditor::setFields(const Utils::FilePath &repositoryRoot, const BranchInfo &branch, const QStringList &tags, const QString &userName, const QList<VcsBase::VcsBaseClient::StatusItem> &repoStatus) { diff --git a/plugins/fossil/commiteditor.h b/plugins/fossil/commiteditor.h index cb8bbfa..531628f 100644 --- a/plugins/fossil/commiteditor.h +++ b/plugins/fossil/commiteditor.h @@ -43,7 +43,7 @@ class CommitEditor : public VcsBase::VcsBaseSubmitEditor public: CommitEditor(); - void setFields(const QString &repositoryRoot, const BranchInfo &branch, + void setFields(const Utils::FilePath &repositoryRoot, const BranchInfo &branch, const QStringList &tags, const QString &userName, const QList<VcsBase::VcsBaseClient::StatusItem> &repoStatus); diff --git a/plugins/fossil/fossilclient.cpp b/plugins/fossil/fossilclient.cpp index f6bd4a6..04050d8 100644 --- a/plugins/fossil/fossilclient.cpp +++ b/plugins/fossil/fossilclient.cpp @@ -717,9 +717,10 @@ void FossilClient::commit(const FilePath &repositoryRoot, const QStringList &fil QStringList(extraOptions) << "-M" << commitMessageFile); } -VcsBaseEditorWidget *FossilClient::annotate(const FilePath &workingDir, const QString &file, const QString &revision, - int lineNumber, const QStringList &extraOptions) +void FossilClient::annotate(const FilePath &workingDir, const QString &file, int lineNumber, + const QString &revision, const QStringList &extraOptions, int firstLine) { + Q_UNUSED(firstLine) // 'fossil annotate' command has a variant 'fossil blame'. // blame command attributes a committing username to source lines, // annotate shows line numbers @@ -735,17 +736,16 @@ VcsBaseEditorWidget *FossilClient::annotate(const FilePath &workingDir, const QS vcsCmdString.toLatin1().constData(), id); auto *fossilEditor = qobject_cast<FossilEditorWidget *>(editor); - QTC_ASSERT(fossilEditor, return editor); + QTC_ASSERT(fossilEditor, return); if (!fossilEditor->editorConfig()) { if (VcsBaseEditorConfig *editorConfig = createAnnotateEditor(fossilEditor)) { editorConfig->setBaseArguments(extraOptions); // editor has been just created, createVcsEditor() didn't set a configuration widget yet - connect(editorConfig, &VcsBaseEditorConfig::commandExecutionRequested, - [=]() { - const int line = VcsBaseEditor::lineNumberOfCurrentEditor(); - return this->annotate(workingDir, file, revision, line, editorConfig->arguments()); - } ); + connect(editorConfig, &VcsBaseEditorConfig::commandExecutionRequested, this, [=] { + const int line = VcsBaseEditor::lineNumberOfCurrentEditor(); + annotate(workingDir, file, line, revision, editorConfig->arguments()); + }); fossilEditor->setEditorConfig(editorConfig); } } @@ -770,7 +770,6 @@ VcsBaseEditorWidget *FossilClient::annotate(const FilePath &workingDir, const QS editor->setDefaultLineNumber(lineNumber); enqueueJob(createCommand(workingDir, fossilEditor), args); - return fossilEditor; } bool FossilClient::isVcsFileOrDirectory(const FilePath &filePath) const diff --git a/plugins/fossil/fossilclient.h b/plugins/fossil/fossilclient.h index bc5d0bd..70aff0f 100644 --- a/plugins/fossil/fossilclient.h +++ b/plugins/fossil/fossilclient.h @@ -92,9 +92,9 @@ public: const QStringList &extraOptions = {}) final; void commit(const Utils::FilePath &repositoryRoot, const QStringList &files, const QString &commitMessageFile, const QStringList &extraOptions = {}) final; - VcsBase::VcsBaseEditorWidget *annotate(const Utils::FilePath &workingDir, const QString &file, - const QString &revision = {}, int lineNumber = -1, - const QStringList &extraOptions = {}) final; + void annotate(const Utils::FilePath &workingDir, const QString &file, + int lineNumber = -1, const QString &revision = {}, + const QStringList &extraOptions = {}, int firstLine = -1) final; void log(const Utils::FilePath &workingDir, const QStringList &files = {}, const QStringList &extraOptions = {}, bool enableAnnotationContextMenu = false) final; void logCurrentFile(const Utils::FilePath &workingDir, const QStringList &files = {}, diff --git a/plugins/fossil/fossilcommitwidget.cpp b/plugins/fossil/fossilcommitwidget.cpp index beef90f..f45fcac 100644 --- a/plugins/fossil/fossilcommitwidget.cpp +++ b/plugins/fossil/fossilcommitwidget.cpp @@ -31,6 +31,7 @@ #include <texteditor/texteditorconstants.h> #include <utils/completingtextedit.h> +#include <utils/filepath.h> #include <utils/qtcassert.h> #include <QDir> @@ -95,10 +96,10 @@ FossilCommitWidget::FossilCommitWidget() : m_commitPanel(new QWidget) this, &FossilCommitWidget::branchChanged); } -void FossilCommitWidget::setFields(const QString &repoPath, const BranchInfo &branch, +void FossilCommitWidget::setFields(const Utils::FilePath &repoPath, const BranchInfo &branch, const QStringList &tags, const QString &userName) { - m_commitPanelUi.localRootLineEdit->setText(QDir::toNativeSeparators(repoPath)); + m_commitPanelUi.localRootLineEdit->setText(repoPath.toUserOutput()); m_commitPanelUi.currentBranchLineEdit->setText(branch.name); const QString tagsText = tags.join(", "); m_commitPanelUi.currentTagsLineEdit->setText(tagsText); diff --git a/plugins/fossil/fossilcommitwidget.h b/plugins/fossil/fossilcommitwidget.h index aa84e4e..21180d2 100644 --- a/plugins/fossil/fossilcommitwidget.h +++ b/plugins/fossil/fossilcommitwidget.h @@ -33,6 +33,7 @@ QT_BEGIN_NAMESPACE class QValidator; QT_END_NAMESPACE +namespace Utils { class FilePath; } namespace Fossil { namespace Internal { @@ -50,8 +51,8 @@ class FossilCommitWidget : public VcsBase::SubmitEditorWidget public: FossilCommitWidget(); - void setFields(const QString &repoPath, const BranchInfo &newBranch, const QStringList &tags, - const QString &userName); + void setFields(const Utils::FilePath &repoPath, const BranchInfo &newBranch, + const QStringList &tags, const QString &userName); QString newBranch() const; QStringList tags() const; diff --git a/plugins/fossil/fossilplugin.cpp b/plugins/fossil/fossilplugin.cpp index 643a213..007e02a 100644 --- a/plugins/fossil/fossilplugin.cpp +++ b/plugins/fossil/fossilplugin.cpp @@ -172,7 +172,7 @@ public: const QStringList &extraArgs) final; void updateActions(VcsBase::VcsBasePluginPrivate::ActionState) override; - bool submitEditorAboutToClose() override; + bool activateCommit() override; // File menu action slots void addCurrentFile(); @@ -196,7 +196,6 @@ public: void configureRepository(); void commit(); void showCommitWidget(const QList<VcsBase::VcsBaseClient::StatusItem> &status); - void commitFromEditor() override; void diffFromEditorSelected(const QStringList &files); void createRepository(); @@ -258,7 +257,6 @@ public: QAction *m_menuAction = nullptr; Utils::FilePath m_submitRepository; - bool m_submitActionTriggered = false; // To be connected to the VcsTask's success signal to emit the repository/ // files changed signals according to the variant's type: @@ -415,7 +413,7 @@ void FossilPluginPrivate::annotateCurrentFile() const VcsBase::VcsBasePluginState state = currentState(); QTC_ASSERT(state.hasFile(), return); const int lineNumber = VcsBase::VcsBaseEditor::lineNumberOfCurrentEditor(state.currentFile()); - m_client.annotate(state.currentFileTopLevel(), state.relativeCurrentFile(), {}, lineNumber); + m_client.annotate(state.currentFileTopLevel(), state.relativeCurrentFile(), lineNumber); } void FossilPluginPrivate::diffCurrentFile() @@ -730,7 +728,7 @@ void FossilPluginPrivate::showCommitWidget(const QList<VcsBase::VcsBaseClient::S QStringList tags = m_client.synchronousTagQuery(m_submitRepository, currentRevision.id); // Fossil includes branch name in tag list -- remove. tags.removeAll(currentBranch.name); - commitEditor->setFields(m_submitRepository.toString(), currentBranch, tags, currentUser, status); + commitEditor->setFields(m_submitRepository, currentBranch, tags, currentUser, status); connect(commitEditor, &VcsBase::VcsBaseSubmitEditor::diffSelectedFiles, this, &FossilPluginPrivate::diffFromEditorSelected); @@ -786,35 +784,13 @@ void FossilPluginPrivate::createRepository() } } -void FossilPluginPrivate::commitFromEditor() -{ - // Close the submit editor - m_submitActionTriggered = true; - QTC_ASSERT(submitEditor(), return); - Core::EditorManager::closeDocuments({submitEditor()->document()}); -} - -bool FossilPluginPrivate::submitEditorAboutToClose() +bool FossilPluginPrivate::activateCommit() { CommitEditor *commitEditor = qobject_cast<CommitEditor *>(submitEditor()); QTC_ASSERT(commitEditor, return true); Core::IDocument *editorDocument = commitEditor->document(); QTC_ASSERT(editorDocument, return true); - bool promptOnSubmit = false; - const VcsBase::VcsBaseSubmitEditor::PromptSubmitResult response - = commitEditor->promptSubmit(this, &promptOnSubmit, !m_submitActionTriggered); - m_submitActionTriggered = false; - - switch (response) { - case VcsBase::VcsBaseSubmitEditor::SubmitCanceled: - return false; - case VcsBase::VcsBaseSubmitEditor::SubmitDiscarded: - return true; - default: - break; - } - QStringList files = commitEditor->checkedFiles(); if (!files.empty()) { //save the commit message @@ -982,7 +958,7 @@ bool FossilPluginPrivate::vcsCreateRepository(const FilePath &directory) void FossilPluginPrivate::vcsAnnotate(const FilePath &filePath, int line) { - m_client.annotate(filePath.absolutePath(), filePath.fileName(), {}, line); + m_client.annotate(filePath.absolutePath(), filePath.fileName(), line); } void FossilPluginPrivate::vcsDescribe(const FilePath &source, const QString &id) |