diff options
Diffstat (limited to 'src/plugins/vcsbase')
-rw-r--r-- | src/plugins/vcsbase/CMakeLists.txt | 39 | ||||
-rw-r--r-- | src/plugins/vcsbase/submiteditorfile.cpp | 6 | ||||
-rw-r--r-- | src/plugins/vcsbase/submitfieldwidget.cpp | 2 | ||||
-rw-r--r-- | src/plugins/vcsbase/vcsbaseclient.cpp | 6 | ||||
-rw-r--r-- | src/plugins/vcsbase/vcsbaseclient.h | 4 | ||||
-rw-r--r-- | src/plugins/vcsbase/vcsbaseclientsettings.cpp | 8 | ||||
-rw-r--r-- | src/plugins/vcsbase/vcsbaseclientsettings.h | 4 | ||||
-rw-r--r-- | src/plugins/vcsbase/vcsbaseeditor.cpp | 10 | ||||
-rw-r--r-- | src/plugins/vcsbase/vcsbaseeditorconfig.cpp | 2 | ||||
-rw-r--r-- | src/plugins/vcsbase/vcsbaseplugin.cpp | 2 | ||||
-rw-r--r-- | src/plugins/vcsbase/vcsbaseplugin.h | 4 | ||||
-rw-r--r-- | src/plugins/vcsbase/vcsbasesubmiteditor.cpp | 4 | ||||
-rw-r--r-- | src/plugins/vcsbase/vcscommand.cpp | 2 | ||||
-rw-r--r-- | src/plugins/vcsbase/vcscommand.h | 2 | ||||
-rw-r--r-- | src/plugins/vcsbase/vcsoutputwindow.cpp | 103 | ||||
-rw-r--r-- | src/plugins/vcsbase/vcsoutputwindow.h | 9 | ||||
-rw-r--r-- | src/plugins/vcsbase/vcsplugin.cpp | 2 | ||||
-rw-r--r-- | src/plugins/vcsbase/wizard/vcscommandpage.cpp | 4 |
18 files changed, 130 insertions, 83 deletions
diff --git a/src/plugins/vcsbase/CMakeLists.txt b/src/plugins/vcsbase/CMakeLists.txt new file mode 100644 index 0000000000..b6d234b4f2 --- /dev/null +++ b/src/plugins/vcsbase/CMakeLists.txt @@ -0,0 +1,39 @@ +add_qtc_plugin(VcsBase + PLUGIN_DEPENDS Core CppTools DiffEditor ProjectExplorer TextEditor + PLUGIN_RECOMMENDS CodePaster + SOURCES + baseannotationhighlighter.cpp baseannotationhighlighter.h + basevcseditorfactory.cpp basevcseditorfactory.h + basevcssubmiteditorfactory.cpp basevcssubmiteditorfactory.h + cleandialog.cpp cleandialog.h cleandialog.ui + commonsettingspage.cpp commonsettingspage.h commonsettingspage.ui + commonvcssettings.cpp commonvcssettings.h + diffandloghighlighter.cpp diffandloghighlighter.h + nicknamedialog.cpp nicknamedialog.h nicknamedialog.ui + submiteditorfile.cpp submiteditorfile.h + submiteditorwidget.cpp submiteditorwidget.h submiteditorwidget.ui + submitfieldwidget.cpp submitfieldwidget.h + submitfilemodel.cpp submitfilemodel.h + vcsbase.qrc + vcsbase_global.h + vcsbaseclient.cpp vcsbaseclient.h + vcsbaseclientsettings.cpp vcsbaseclientsettings.h + vcsbaseconstants.h + vcsbasediffeditorcontroller.cpp vcsbasediffeditorcontroller.h + vcsbaseeditor.cpp vcsbaseeditor.h + vcsbaseeditorconfig.cpp vcsbaseeditorconfig.h + vcsbaseoptionspage.cpp vcsbaseoptionspage.h + vcsbaseplugin.cpp vcsbaseplugin.h + vcsbasesubmiteditor.cpp vcsbasesubmiteditor.h + vcscommand.cpp vcscommand.h + vcsoutputwindow.cpp vcsoutputwindow.h + vcsplugin.cpp vcsplugin.h + wizard/vcscommandpage.cpp wizard/vcscommandpage.h + wizard/vcsconfigurationpage.cpp wizard/vcsconfigurationpage.h + wizard/vcsjsextension.cpp wizard/vcsjsextension.h +) + +extend_qtc_plugin(VcsBase + CONDITION WITH_TESTS + DEFINES SRC_DIR="${IDE_SOURCE_TREE}" +) diff --git a/src/plugins/vcsbase/submiteditorfile.cpp b/src/plugins/vcsbase/submiteditorfile.cpp index 9136118bf7..e7e5d01e15 100644 --- a/src/plugins/vcsbase/submiteditorfile.cpp +++ b/src/plugins/vcsbase/submiteditorfile.cpp @@ -68,7 +68,7 @@ Core::IDocument::OpenResult SubmitEditorFile::open(QString *errorString, const Q if (!m_editor->setFileContents(text.toUtf8())) return OpenResult::CannotHandle; - setFilePath(FileName::fromString(fileName)); + setFilePath(FilePath::fromString(fileName)); setModified(fileName != realFileName); return OpenResult::Success; } @@ -93,7 +93,7 @@ void SubmitEditorFile::setModified(bool modified) bool SubmitEditorFile::save(QString *errorString, const QString &fileName, bool autoSave) { - const FileName fName = fileName.isEmpty() ? filePath() : FileName::fromString(fileName); + const FilePath fName = fileName.isEmpty() ? filePath() : FilePath::fromString(fileName); FileSaver saver(fName.toString(), QIODevice::WriteOnly | QIODevice::Truncate | QIODevice::Text); saver.write(m_editor->fileContents()); @@ -101,7 +101,7 @@ bool SubmitEditorFile::save(QString *errorString, const QString &fileName, bool return false; if (autoSave) return true; - setFilePath(FileName::fromUserInput(fName.toFileInfo().absoluteFilePath())); + setFilePath(FilePath::fromUserInput(fName.toFileInfo().absoluteFilePath())); setModified(false); if (!errorString->isEmpty()) return false; diff --git a/src/plugins/vcsbase/submitfieldwidget.cpp b/src/plugins/vcsbase/submitfieldwidget.cpp index 000ba51426..b92579be43 100644 --- a/src/plugins/vcsbase/submitfieldwidget.cpp +++ b/src/plugins/vcsbase/submitfieldwidget.cpp @@ -286,7 +286,7 @@ void SubmitFieldWidget::createField(const QString &f) if (d->completer) fe.lineEdit->setCompleter(d->completer); - connect(fe.combo, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), + connect(fe.combo, QOverload<int>::of(&QComboBox::currentIndexChanged), this, &SubmitFieldWidget::slotComboIndexChanged); connect(fe.clearButton, &QAbstractButton::clicked, this, &SubmitFieldWidget::slotRemove); diff --git a/src/plugins/vcsbase/vcsbaseclient.cpp b/src/plugins/vcsbase/vcsbaseclient.cpp index bda0b6379b..4e772f3b2c 100644 --- a/src/plugins/vcsbase/vcsbaseclient.cpp +++ b/src/plugins/vcsbase/vcsbaseclient.cpp @@ -110,7 +110,7 @@ VcsBaseClientSettings &VcsBaseClientImpl::settings() const return *d->m_clientSettings; } -FileName VcsBaseClientImpl::vcsBinary() const +FilePath VcsBaseClientImpl::vcsBinary() const { return settings().binaryPath(); } @@ -178,7 +178,7 @@ QString VcsBaseClientImpl::stripLastNewline(const QString &in) } SynchronousProcessResponse -VcsBaseClientImpl::vcsFullySynchronousExec(const QString &workingDir, const FileName &binary, +VcsBaseClientImpl::vcsFullySynchronousExec(const QString &workingDir, const FilePath &binary, const QStringList &args, unsigned flags, int timeoutS, QTextCodec *codec) const { @@ -643,7 +643,7 @@ QString VcsBaseClient::vcsEditorTitle(const QString &vcsCmd, const QString &sour { return vcsBinary().toFileInfo().baseName() + QLatin1Char(' ') + vcsCmd + QLatin1Char(' ') + - FileName::fromString(sourceId).fileName(); + FilePath::fromString(sourceId).fileName(); } void VcsBaseClient::statusParser(const QString &text) diff --git a/src/plugins/vcsbase/vcsbaseclient.h b/src/plugins/vcsbase/vcsbaseclient.h index 9f365af6df..0706d53861 100644 --- a/src/plugins/vcsbase/vcsbaseclient.h +++ b/src/plugins/vcsbase/vcsbaseclient.h @@ -64,7 +64,7 @@ public: VcsBaseClientSettings &settings() const; - virtual Utils::FileName vcsBinary() const; + virtual Utils::FilePath vcsBinary() const; int vcsTimeoutS() const; enum JobOutputBindMode { @@ -105,7 +105,7 @@ public: vcsFullySynchronousExec(const QString &workingDir, const QStringList &args, unsigned flags = 0, int timeoutS = -1, QTextCodec *codec = nullptr) const; Utils::SynchronousProcessResponse - vcsFullySynchronousExec(const QString &workingDir, const Utils::FileName &binary, const QStringList &args, + vcsFullySynchronousExec(const QString &workingDir, const Utils::FilePath &binary, const QStringList &args, unsigned flags = 0, int timeoutS = -1, QTextCodec *codec = nullptr) const; diff --git a/src/plugins/vcsbase/vcsbaseclientsettings.cpp b/src/plugins/vcsbase/vcsbaseclientsettings.cpp index 7d30181959..96571e5782 100644 --- a/src/plugins/vcsbase/vcsbaseclientsettings.cpp +++ b/src/plugins/vcsbase/vcsbaseclientsettings.cpp @@ -175,7 +175,7 @@ public: QHash<QString, SettingValue> m_valueHash; QVariantHash m_defaultValueHash; QString m_settingsGroup; - mutable FileName m_binaryFullPath; + mutable FilePath m_binaryFullPath; }; } // namespace Internal @@ -351,11 +351,11 @@ QVariant::Type VcsBaseClientSettings::valueType(const QString &key) const return QVariant::Invalid; } -FileName VcsBaseClientSettings::binaryPath() const +FilePath VcsBaseClientSettings::binaryPath() const { if (d->m_binaryFullPath.isEmpty()) { - const FileNameList searchPaths - = Utils::transform(searchPathList(), [](const QString &s) { return FileName::fromString(s); }); + const FilePathList searchPaths + = Utils::transform(searchPathList(), [](const QString &s) { return FilePath::fromString(s); }); d->m_binaryFullPath = Environment::systemEnvironment().searchInPath( stringValue(binaryPathKey), searchPaths); } diff --git a/src/plugins/vcsbase/vcsbaseclientsettings.h b/src/plugins/vcsbase/vcsbaseclientsettings.h index 137d4391d8..e722a56564 100644 --- a/src/plugins/vcsbase/vcsbaseclientsettings.h +++ b/src/plugins/vcsbase/vcsbaseclientsettings.h @@ -35,7 +35,7 @@ QT_BEGIN_NAMESPACE class QSettings; QT_END_NAMESPACE -namespace Utils { class FileName; } +namespace Utils { class FilePath; } namespace VcsBase { namespace Internal { class VcsBaseClientSettingsPrivate; } @@ -77,7 +77,7 @@ public: void setValue(const QString &key, const QVariant &v); QVariant::Type valueType(const QString &key) const; - Utils::FileName binaryPath() const; + Utils::FilePath binaryPath() const; QStringList searchPathList() const; diff --git a/src/plugins/vcsbase/vcsbaseeditor.cpp b/src/plugins/vcsbase/vcsbaseeditor.cpp index 6fcfd09eae..c6b5ed8fbe 100644 --- a/src/plugins/vcsbase/vcsbaseeditor.cpp +++ b/src/plugins/vcsbase/vcsbaseeditor.cpp @@ -724,7 +724,7 @@ void VcsBaseEditorWidget::init() case OtherContent: break; case LogOutput: - connect(d->entriesComboBox(), static_cast<void (QComboBox::*)(int)>(&QComboBox::activated), + connect(d->entriesComboBox(), QOverload<int>::of(&QComboBox::activated), this, &VcsBaseEditorWidget::slotJumpToEntry); connect(this, &QPlainTextEdit::textChanged, this, &VcsBaseEditorWidget::slotPopulateLogBrowser); @@ -737,7 +737,7 @@ void VcsBaseEditorWidget::init() break; case DiffOutput: // Diff: set up diff file browsing - connect(d->entriesComboBox(), static_cast<void (QComboBox::*)(int)>(&QComboBox::activated), + connect(d->entriesComboBox(), QOverload<int>::of(&QComboBox::activated), this, &VcsBaseEditorWidget::slotJumpToEntry); connect(this, &QPlainTextEdit::textChanged, this, &VcsBaseEditorWidget::slotPopulateDiffBrowser); @@ -868,7 +868,7 @@ void VcsBaseEditorWidget::slotPopulateDiffBrowser() lastFileName = file; // ignore any headers d->m_entrySections.push_back(d->m_entrySections.empty() ? 0 : lineNumber); - entriesComboBox->addItem(FileName::fromString(file).fileName()); + entriesComboBox->addItem(FilePath::fromString(file).fileName()); } } } @@ -979,11 +979,11 @@ void VcsBaseEditorWidget::contextMenuEvent(QContextMenuEvent *e) // the user has "Open With" and choose the right diff editor so that // fileNameFromDiffSpecification() works. QAction *applyAction = menu->addAction(tr("Apply Chunk...")); - applyAction->setData(qVariantFromValue(Internal::DiffChunkAction(chunk, false))); + applyAction->setData(QVariant::fromValue(Internal::DiffChunkAction(chunk, false))); connect(applyAction, &QAction::triggered, this, &VcsBaseEditorWidget::slotApplyDiffChunk); // Revert a chunk from a VCS diff, which might be linked to reloading the diff. QAction *revertAction = menu->addAction(tr("Revert Chunk...")); - revertAction->setData(qVariantFromValue(Internal::DiffChunkAction(chunk, true))); + revertAction->setData(QVariant::fromValue(Internal::DiffChunkAction(chunk, true))); connect(revertAction, &QAction::triggered, this, &VcsBaseEditorWidget::slotApplyDiffChunk); // Custom diff actions addDiffActions(menu, chunk); diff --git a/src/plugins/vcsbase/vcsbaseeditorconfig.cpp b/src/plugins/vcsbase/vcsbaseeditorconfig.cpp index f3f96e3b3f..ee40e2649a 100644 --- a/src/plugins/vcsbase/vcsbaseeditorconfig.cpp +++ b/src/plugins/vcsbase/vcsbaseeditorconfig.cpp @@ -175,7 +175,7 @@ QComboBox *VcsBaseEditorConfig::addComboBox(const QStringList &options, auto cb = new QComboBox; foreach (const ComboBoxItem &item, items) cb->addItem(item.displayText, item.value); - connect(cb, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), + connect(cb, QOverload<int>::of(&QComboBox::currentIndexChanged), this, &VcsBaseEditorConfig::argumentsChanged); d->m_toolBar->addWidget(cb); d->m_optionMappings.append(OptionMapping(options, cb)); diff --git a/src/plugins/vcsbase/vcsbaseplugin.cpp b/src/plugins/vcsbase/vcsbaseplugin.cpp index 2d70846c34..298fdf61b3 100644 --- a/src/plugins/vcsbase/vcsbaseplugin.cpp +++ b/src/plugins/vcsbase/vcsbaseplugin.cpp @@ -791,7 +791,7 @@ void VcsBasePlugin::setProcessEnvironment(QProcessEnvironment *e, // Run a process synchronously, returning Utils::SynchronousProcessResponse // response struct and using the VcsBasePlugin flags as applicable SynchronousProcessResponse VcsBasePlugin::runVcs(const QString &workingDir, - const FileName &binary, + const FilePath &binary, const QStringList &arguments, int timeOutS, unsigned flags, diff --git a/src/plugins/vcsbase/vcsbaseplugin.h b/src/plugins/vcsbase/vcsbaseplugin.h index 1bbe0c29b4..e1bfa15ded 100644 --- a/src/plugins/vcsbase/vcsbaseplugin.h +++ b/src/plugins/vcsbase/vcsbaseplugin.h @@ -41,7 +41,7 @@ class QTextCodec; QT_END_NAMESPACE namespace Utils { -class FileName; +class FilePath; class SynchronousProcessResponse; } // namespace Utils @@ -170,7 +170,7 @@ public: static QString source(Core::IDocument *document); static Utils::SynchronousProcessResponse runVcs(const QString &workingDir, - const Utils::FileName &binary, + const Utils::FilePath &binary, const QStringList &arguments, int timeOutS, unsigned flags = 0, diff --git a/src/plugins/vcsbase/vcsbasesubmiteditor.cpp b/src/plugins/vcsbase/vcsbasesubmiteditor.cpp index d66759cd17..3017ae03b9 100644 --- a/src/plugins/vcsbase/vcsbasesubmiteditor.cpp +++ b/src/plugins/vcsbase/vcsbasesubmiteditor.cpp @@ -569,7 +569,7 @@ VcsBaseSubmitEditor::PromptSubmitResult const QString commitName = plugin->commitDisplayName(); mb.setWindowTitle(tr("Close %1 %2 Editor") .arg(plugin->versionControl()->displayName(), commitName)); - mb.setIconPixmap(QMessageBox::standardIcon(QMessageBox::Question)); + mb.setIcon(QMessageBox::Question); QString message; if (canCommit) { message = tr("What do you want to do with these changes?"); @@ -741,7 +741,7 @@ void VcsBaseSubmitEditor::filterUntrackedFilesOfProject(const QString &repositor const QDir repoDir(repositoryDirectory); for (QStringList::iterator it = untrackedFiles->begin(); it != untrackedFiles->end(); ) { const QString path = repoDir.absoluteFilePath(*it); - if (ProjectExplorer::SessionManager::projectForFile(FileName::fromString(path))) + if (ProjectExplorer::SessionManager::projectForFile(FilePath::fromString(path))) ++it; else it = untrackedFiles->erase(it); diff --git a/src/plugins/vcsbase/vcscommand.cpp b/src/plugins/vcsbase/vcscommand.cpp index 6422eb2997..a659b13fec 100644 --- a/src/plugins/vcsbase/vcscommand.cpp +++ b/src/plugins/vcsbase/vcscommand.cpp @@ -77,7 +77,7 @@ const QProcessEnvironment VcsCommand::processEnvironment() const return env; } -SynchronousProcessResponse VcsCommand::runCommand(const FileName &binary, +SynchronousProcessResponse VcsCommand::runCommand(const FilePath &binary, const QStringList &arguments, int timeoutS, const QString &workingDirectory, const ExitCodeInterpreter &interpreter) diff --git a/src/plugins/vcsbase/vcscommand.h b/src/plugins/vcsbase/vcscommand.h index bc7ad022e4..191b72b980 100644 --- a/src/plugins/vcsbase/vcscommand.h +++ b/src/plugins/vcsbase/vcscommand.h @@ -45,7 +45,7 @@ public: const QProcessEnvironment processEnvironment() const override; - Utils::SynchronousProcessResponse runCommand(const Utils::FileName &binary, + Utils::SynchronousProcessResponse runCommand(const Utils::FilePath &binary, const QStringList &arguments, int timeoutS, const QString &workDirectory = QString(), const Utils::ExitCodeInterpreter &interpreter = Utils::defaultExitCodeInterpreter) override; diff --git a/src/plugins/vcsbase/vcsoutputwindow.cpp b/src/plugins/vcsbase/vcsoutputwindow.cpp index 1207d0279a..07113e7fd9 100644 --- a/src/plugins/vcsbase/vcsoutputwindow.cpp +++ b/src/plugins/vcsbase/vcsoutputwindow.cpp @@ -33,24 +33,26 @@ #include <utils/fileutils.h> #include <utils/outputformatter.h> #include <utils/qtcprocess.h> +#include <texteditor/behaviorsettings.h> +#include <texteditor/fontsettings.h> +#include <texteditor/texteditorsettings.h> #include <utils/theme/theme.h> -#include <QPlainTextEdit> -#include <QTextCharFormat> +#include <QAction> #include <QContextMenuEvent> -#include <QTextBlock> +#include <QDir> +#include <QFileInfo> #include <QMenu> -#include <QAction> -#include <QTextBlockUserData> - +#include <QPlainTextEdit> +#include <QPoint> #include <QPointer> -#include <QTextCodec> -#include <QDir> #include <QRegExp> +#include <QTextBlock> +#include <QTextBlockUserData> +#include <QTextCharFormat> +#include <QTextCodec> #include <QTextStream> #include <QTime> -#include <QPoint> -#include <QFileInfo> using namespace Utils; @@ -75,6 +77,8 @@ namespace Internal { const char C_VCS_OUTPUT_PANE[] = "Vcs.OutputPane"; +const char zoomSettingsKey[] = "Vcs/OutputPane/Zoom"; + // Store repository along with text blocks class RepositoryUserData : public QTextBlockUserData { @@ -86,7 +90,7 @@ private: const QString m_repository; }; -// A plain text edit with a special context menu containing "Clear" and +// A plain text edit with a special context menu containing "Clear" // and functions to append specially formatted entries. class OutputWindowPlainTextEdit : public Core::OutputWindow { @@ -94,27 +98,23 @@ public: explicit OutputWindowPlainTextEdit(QWidget *parent = nullptr); ~OutputWindowPlainTextEdit() override; - void appendLines(QString const& s, const QString &repository = QString()); - void appendLinesWithStyle(QString const& s, enum VcsOutputWindow::MessageStyle style, const QString &repository = QString()); + void appendLines(const QString &s, const QString &repository = QString()); + void appendLinesWithStyle(const QString &s, VcsOutputWindow::MessageStyle style, + const QString &repository = QString()); protected: void contextMenuEvent(QContextMenuEvent *event) override; private: - void setFormat(enum VcsOutputWindow::MessageStyle style); + void setFormat(VcsOutputWindow::MessageStyle style); QString identifierUnderCursor(const QPoint &pos, QString *repository = nullptr) const; Utils::OutputFormat m_format; - const QTextCharFormat m_defaultFormat; - QTextCharFormat m_errorFormat; - QTextCharFormat m_warningFormat; - QTextCharFormat m_commandFormat; - QTextCharFormat m_messageFormat; - OutputFormatter *m_formatter; + OutputFormatter *m_formatter = nullptr; }; OutputWindowPlainTextEdit::OutputWindowPlainTextEdit(QWidget *parent) : - Core::OutputWindow(Core::Context(C_VCS_OUTPUT_PANE), parent) + Core::OutputWindow(Core::Context(C_VCS_OUTPUT_PANE), zoomSettingsKey, parent) { setReadOnly(true); setUndoRedoEnabled(false); @@ -163,7 +163,7 @@ QString OutputWindowPlainTextEdit::identifierUnderCursor(const QPoint &widgetPos // Retrieve repository if desired if (repository) if (QTextBlockUserData *data = cursor.block().userData()) - *repository = static_cast<const RepositoryUserData*>(data)->repository(); + *repository = static_cast<const RepositoryUserData *>(data)->repository(); // Find first non-space character of word and find first non-space character past const int startPos = firstWordCharacter(block, cursorPos); int endPos = cursorPos; @@ -182,7 +182,7 @@ void OutputWindowPlainTextEdit::contextMenuEvent(QContextMenuEvent *event) // Check for a file, expand via repository if relative QFileInfo fi(token); if (!repository.isEmpty() && !fi.isFile() && fi.isRelative()) - fi = QFileInfo(repository + QLatin1Char('/') + token); + fi = QFileInfo(repository + '/' + token); if (fi.isFile()) { menu->addSeparator(); openAction = menu->addAction(VcsOutputWindow::tr("Open \"%1\""). @@ -209,16 +209,16 @@ void OutputWindowPlainTextEdit::contextMenuEvent(QContextMenuEvent *event) delete menu; } -void OutputWindowPlainTextEdit::appendLines(QString const& s, const QString &repository) +void OutputWindowPlainTextEdit::appendLines(const QString &s, const QString &repository) { if (s.isEmpty()) return; const int previousLineCount = document()->lineCount(); - const QChar newLine(QLatin1Char('\n')); + const QChar newLine('\n'); const QChar lastChar = s.at(s.size() - 1); - const bool appendNewline = (lastChar != QLatin1Char('\r') && lastChar != newLine); + const bool appendNewline = (lastChar != '\r' && lastChar != newLine); m_formatter->appendMessage(appendNewline ? s + newLine : s, m_format); // Scroll down @@ -232,20 +232,21 @@ void OutputWindowPlainTextEdit::appendLines(QString const& s, const QString &rep } } -void OutputWindowPlainTextEdit::appendLinesWithStyle(QString const& s, enum VcsOutputWindow::MessageStyle style, const QString &repository) +void OutputWindowPlainTextEdit::appendLinesWithStyle(const QString &s, + VcsOutputWindow::MessageStyle style, + const QString &repository) { setFormat(style); if (style == VcsOutputWindow::Command) { - const QString timeStamp = QTime::currentTime().toString(QLatin1String("\nHH:mm ")); + const QString timeStamp = QTime::currentTime().toString("\nHH:mm "); appendLines(timeStamp + s, repository); - } - else { + } else { appendLines(s, repository); } } -void OutputWindowPlainTextEdit::setFormat(enum VcsOutputWindow::MessageStyle style) +void OutputWindowPlainTextEdit::setFormat(VcsOutputWindow::MessageStyle style) { m_formatter->setBoldFontEnabled(style == VcsOutputWindow::Command); @@ -286,9 +287,23 @@ static VcsOutputWindowPrivate *d = nullptr; VcsOutputWindow::VcsOutputWindow() { d = new VcsOutputWindowPrivate; - d->passwordRegExp = QRegExp(QLatin1String("://([^@:]+):([^@]+)@")); + d->passwordRegExp = QRegExp("://([^@:]+):([^@]+)@"); Q_ASSERT(d->passwordRegExp.isValid()); m_instance = this; + + auto updateBehaviorSettings = [] { + d->widget.setWheelZoomEnabled( + TextEditor::TextEditorSettings::behaviorSettings().m_scrollWheelZooming); + }; + + updateBehaviorSettings(); + setupContext(Internal::C_VCS_OUTPUT_PANE, &d->widget); + + connect(this, &IOutputPane::zoomIn, &d->widget, &Core::OutputWindow::zoomIn); + connect(this, &IOutputPane::zoomOut, &d->widget, &Core::OutputWindow::zoomOut); + connect(this, &IOutputPane::resetZoom, &d->widget, &Core::OutputWindow::resetZoom); + connect(TextEditor::TextEditorSettings::instance(), &TextEditor::TextEditorSettings::behaviorSettingsChanged, + this, updateBehaviorSettings); } static QString filterPasswordFromUrls(const QString &input) @@ -296,7 +311,7 @@ static QString filterPasswordFromUrls(const QString &input) int pos = 0; QString result = input; while ((pos = d->passwordRegExp.indexIn(result, pos)) >= 0) { - QString tmp = result.left(pos + 3) + d->passwordRegExp.cap(1) + QLatin1String(":***@"); + QString tmp = result.left(pos + 3) + d->passwordRegExp.cap(1) + ":***@"; int newStart = tmp.count(); tmp += result.midRef(pos + d->passwordRegExp.matchedLength()); result = tmp; @@ -318,11 +333,6 @@ QWidget *VcsOutputWindow::outputWidget(QWidget *parent) return &d->widget; } -QList<QWidget *> VcsOutputWindow::toolBarWidgets() const -{ - return {}; -} - QString VcsOutputWindow::displayName() const { return tr("Version Control"); @@ -397,7 +407,7 @@ void VcsOutputWindow::appendSilently(const QString &text) append(text, None, true); } -void VcsOutputWindow::append(const QString &text, enum MessageStyle style, bool silently) +void VcsOutputWindow::append(const QString &text, MessageStyle style, bool silently) { d->widget.appendLinesWithStyle(text, style, d->repository); @@ -415,8 +425,7 @@ void VcsOutputWindow::appendWarning(const QString &text) append(text, Warning, false); } -// Helper to format arguments for log windows hiding common password -// options. +// Helper to format arguments for log windows hiding common password options. static inline QString formatArguments(const QStringList &args) { const char passwordOptionC[] = "--password"; @@ -429,12 +438,12 @@ static inline QString formatArguments(const QStringList &args) const QString arg = filterPasswordFromUrls(args.at(i)); if (i) str << ' '; - if (arg.startsWith(QString::fromLatin1(passwordOptionC) + QLatin1Char('='))) { + if (arg.startsWith(QString::fromLatin1(passwordOptionC) + '=')) { str << QtcProcess::quoteArg("--password=********"); continue; } str << QtcProcess::quoteArg(arg); - if (arg == QLatin1String(passwordOptionC)) { + if (arg == passwordOptionC) { str << ' ' << QtcProcess::quoteArg("********"); i++; } @@ -443,15 +452,15 @@ static inline QString formatArguments(const QStringList &args) } QString VcsOutputWindow::msgExecutionLogEntry(const QString &workingDir, - const FileName &executable, + const FilePath &executable, const QStringList &arguments) { const QString args = formatArguments(arguments); const QString nativeExecutable = QtcProcess::quoteArg(executable.toUserOutput()); if (workingDir.isEmpty()) - return tr("Running: %1 %2").arg(nativeExecutable, args) + QLatin1Char('\n'); + return tr("Running: %1 %2").arg(nativeExecutable, args) + '\n'; return tr("Running in %1: %2 %3"). - arg(QDir::toNativeSeparators(workingDir), nativeExecutable, args) + QLatin1Char('\n'); + arg(QDir::toNativeSeparators(workingDir), nativeExecutable, args) + '\n'; } void VcsOutputWindow::appendShellCommandLine(const QString &text) @@ -460,7 +469,7 @@ void VcsOutputWindow::appendShellCommandLine(const QString &text) } void VcsOutputWindow::appendCommand(const QString &workingDirectory, - const FileName &binary, + const FilePath &binary, const QStringList &args) { appendShellCommandLine(msgExecutionLogEntry(workingDirectory, binary, args)); diff --git a/src/plugins/vcsbase/vcsoutputwindow.h b/src/plugins/vcsbase/vcsoutputwindow.h index 1f78cd515f..d54b4e6306 100644 --- a/src/plugins/vcsbase/vcsoutputwindow.h +++ b/src/plugins/vcsbase/vcsoutputwindow.h @@ -29,7 +29,7 @@ #include <coreplugin/ioutputpane.h> -namespace Utils { class FileName; } +namespace Utils { class FilePath; } namespace VcsBase { namespace Internal { class VcsPlugin; } @@ -41,7 +41,6 @@ class VCSBASE_EXPORT VcsOutputWindow : public Core::IOutputPane public: QWidget *outputWidget(QWidget *parent) override; - QList<QWidget *> toolBarWidgets() const override; QString displayName() const override; int priorityInStatusBar() const override; @@ -67,7 +66,7 @@ public: // 'Executing <dir>: <cmd> <args>'. Hides well-known password option // arguments. static QString msgExecutionLogEntry(const QString &workingDir, - const Utils::FileName &executable, + const Utils::FilePath &executable, const QStringList &arguments); enum MessageStyle { @@ -89,7 +88,7 @@ public slots: // Append text with a certain style (none by default), // and maybe pop up (silent by default) - static void append(const QString &text, enum MessageStyle style = None, bool silently = false); + static void append(const QString &text, MessageStyle style = None, bool silently = false); // Silently append text, do not pop up. static void appendSilently(const QString &text); @@ -108,7 +107,7 @@ public slots: // Append a standard-formatted entry for command execution // (see msgExecutionLogEntry). static void appendCommand(const QString &workingDirectory, - const Utils::FileName &binary, + const Utils::FilePath &binary, const QStringList &args); // Append a blue message text and pop up. diff --git a/src/plugins/vcsbase/vcsplugin.cpp b/src/plugins/vcsbase/vcsplugin.cpp index 201f2a3b43..efb70f1696 100644 --- a/src/plugins/vcsbase/vcsplugin.cpp +++ b/src/plugins/vcsbase/vcsplugin.cpp @@ -98,7 +98,7 @@ bool VcsPlugin::initialize(const QStringList &arguments, QString *errorMessage) JsonWizardFactory::registerPageFactory(new Internal::VcsConfigurationPageFactory); JsonWizardFactory::registerPageFactory(new Internal::VcsCommandPageFactory); - JsExpander::registerQObjectForJs(QLatin1String("Vcs"), new VcsJsExtension); + JsExpander::registerGlobalObject<VcsJsExtension>("Vcs"); Utils::MacroExpander *expander = Utils::globalMacroExpander(); expander->registerVariable(Constants::VAR_VCS_NAME, diff --git a/src/plugins/vcsbase/wizard/vcscommandpage.cpp b/src/plugins/vcsbase/wizard/vcscommandpage.cpp index 6ad605f586..f40138c1a3 100644 --- a/src/plugins/vcsbase/wizard/vcscommandpage.cpp +++ b/src/plugins/vcsbase/wizard/vcscommandpage.cpp @@ -287,7 +287,7 @@ void VcsCommandPage::delayedInitialize() } Core::ShellCommand *command - = vc->createInitialCheckoutCommand(repo, FileName::fromString(base), + = vc->createInitialCheckoutCommand(repo, FilePath::fromString(base), name, extraArgs); foreach (const JobData &job, m_additionalJobs) { @@ -310,7 +310,7 @@ void VcsCommandPage::delayedInitialize() const QString dir = wiz->expander()->expand(job.workDirectory); const int timeoutS = command->defaultTimeoutS() * job.timeOutFactor; - command->addJob(FileName::fromUserInput(commandString), args, timeoutS, dir); + command->addJob(FilePath::fromUserInput(commandString), args, timeoutS, dir); } start(command); |