diff options
Diffstat (limited to 'src/qtpass.cpp')
-rw-r--r-- | src/qtpass.cpp | 38 |
1 files changed, 16 insertions, 22 deletions
diff --git a/src/qtpass.cpp b/src/qtpass.cpp index 7590d711..f9991e55 100644 --- a/src/qtpass.cpp +++ b/src/qtpass.cpp @@ -1,6 +1,7 @@ #include "qtpass.h" #include "mainwindow.h" #include "qtpasssettings.h" +#include "util.h" #include <QApplication> #include <QClipboard> #include <QDialog> @@ -135,11 +136,12 @@ void QtPass::setMainWindow(void) { QtPassSettings::getPass()->GitInit(); }); - connect( - m_mainWindow, &MainWindow::generateGPGKeyPair, [=](const QString &batch) { - QtPassSettings::getPass()->GenerateGPGKeys(batch); - m_mainWindow->showStatusMessage(tr("Generating GPG key pair"), 60000); - }); + connect(m_mainWindow, &MainWindow::generateGPGKeyPair, m_mainWindow, + [=](const QString &batch) { + QtPassSettings::getPass()->GenerateGPGKeys(batch); + m_mainWindow->showStatusMessage(tr("Generating GPG key pair"), + 60000); + }); } void QtPass::connectPassSignalHandlers(Pass *pass) { @@ -266,10 +268,7 @@ void QtPass::processError(QProcess::ProcessError error) { void QtPass::processErrorExit(int exitCode, const QString &p_error) { if (!p_error.isEmpty()) { QString output; - QString error = p_error; - error.replace(QRegularExpression("<"), "<"); - error.replace(QRegularExpression(">"), ">"); - error.replace(QRegularExpression(" "), " "); + QString error = p_error.toHtmlEscaped(); if (exitCode == 0) { // https://github.com/IJHack/qtpass/issues/111 output = "<span style=\"color: darkgray;\">" + error + "</span><br />"; @@ -277,10 +276,8 @@ void QtPass::processErrorExit(int exitCode, const QString &p_error) { output = "<span style=\"color: red;\">" + error + "</span><br />"; } - output.replace( - QRegularExpression("((?:https?|ftp|ssh|sftp|ftps|webdav|webdavs)://\\S+)"), - R"(<a href="\1">\1</a>)"); - output.replace(QRegularExpression("\n"), "<br />"); + output.replace(Util::protocolRegex(), R"(<a href="\1">\1</a>)"); + output.replace(QStringLiteral("\n"), "<br />"); m_mainWindow->flashText(output, false, true); } @@ -335,14 +332,10 @@ void QtPass::passShowHandlerFinished(QString output) { void QtPass::showInTextBrowser(QString output, QString prefix, QString postfix) { - output.replace(QRegularExpression("<"), "<"); - output.replace(QRegularExpression(">"), ">"); - output.replace(QRegularExpression(" "), " "); - - output.replace( - QRegularExpression("((?:https?|ftp|ssh|sftp|ftps|webdav|webdavs)://\\S+)"), - R"(<a href="\1">\1</a>)"); - output.replace(QRegularExpression("\n"), "<br />"); + output = output.toHtmlEscaped(); + + output.replace(Util::protocolRegex(), R"(<a href="\1">\1</a>)"); + output.replace(QStringLiteral("\n"), "<br />"); output = prefix + output + postfix; m_mainWindow->flashText(output, false, true); @@ -374,7 +367,8 @@ void QtPass::clearClipboard() { QClipboard *clipboard = QApplication::clipboard(); bool cleared = false; if (this->clippedText == clipboard->text(QClipboard::Selection)) { - clipboard->clear(QClipboard::Clipboard); + clipboard->clear(QClipboard::Selection); + clipboard->setText(QString(""), QClipboard::Selection); cleared = true; } if (this->clippedText == clipboard->text(QClipboard::Clipboard)) { |