From 2992e10ffa9996fe5d13c81b21becd6b8b77177c Mon Sep 17 00:00:00 2001 From: thez3ro Date: Tue, 29 May 2018 22:35:00 +0200 Subject: [PATCH] all fields are protected --- src/gui/Clipboard.cpp | 34 ++++++++++------------------------ src/gui/Clipboard.h | 4 ++-- src/gui/DatabaseWidget.cpp | 12 ++---------- src/gui/DatabaseWidget.h | 1 - 4 files changed, 14 insertions(+), 37 deletions(-) diff --git a/src/gui/Clipboard.cpp b/src/gui/Clipboard.cpp index de9ba6d534..9f4d7ed628 100644 --- a/src/gui/Clipboard.cpp +++ b/src/gui/Clipboard.cpp @@ -1,4 +1,5 @@ /* + * Copyright (C) 2017 KeePassXC Team * Copyright (C) 2012 Felix Geyer * * This program is free software: you can redistribute it and/or modify @@ -43,7 +44,7 @@ Clipboard::Clipboard(QObject* parent) connect(qApp, SIGNAL(aboutToQuit()), SLOT(clearCopiedText())); } -void Clipboard::setText(const QString& text, bool secret) +void Clipboard::setText(const QString& text) { QClipboard* clipboard = QApplication::clipboard(); @@ -53,24 +54,14 @@ void Clipboard::setText(const QString& text, bool secret) mime->setData("application/x-nspasteboard-concealed-type", text.toUtf8()); clipboard->setMimeData(mime, QClipboard::Clipboard); #else - if (secret) { - const QString secretStr = "secret"; - QByteArray secretBa = secretStr.toUtf8(); - mime->setText(text); - mime->setData("x-kde-passwordManagerHint", secretBa); - clipboard->setMimeData(mime, QClipboard::Clipboard); - - if (clipboard->supportsSelection()) { - QMimeData* mimeSelection = new QMimeData(); - mimeSelection->setText(text); - mimeSelection->setData("x-kde-passwordManagerHint", secretBa); - clipboard->setMimeData(mimeSelection, QClipboard::Selection); - } - } else { - clipboard->setText(text, QClipboard::Clipboard); - if (clipboard->supportsSelection()) { - clipboard->setText(text, QClipboard::Selection); - } + const QString secretStr = "secret"; + QByteArray secretBa = secretStr.toUtf8(); + mime->setText(text); + mime->setData("x-kde-passwordManagerHint", secretBa); + clipboard->setMimeData(mime, QClipboard::Clipboard); + + if (clipboard->supportsSelection()) { + clipboard->setMimeData(mime, QClipboard::Selection); } #endif @@ -83,11 +74,6 @@ void Clipboard::setText(const QString& text, bool secret) } } -void Clipboard::setSecretText(const QString& text) -{ - setText(text, true); -} - void Clipboard::clearCopiedText() { if (m_timer->isActive()) { diff --git a/src/gui/Clipboard.h b/src/gui/Clipboard.h index b087d6fd86..062d360f09 100644 --- a/src/gui/Clipboard.h +++ b/src/gui/Clipboard.h @@ -1,4 +1,5 @@ /* + * Copyright (C) 2017 KeePassXC Team * Copyright (C) 2012 Felix Geyer * * This program is free software: you can redistribute it and/or modify @@ -31,8 +32,7 @@ class Clipboard : public QObject Q_OBJECT public: - void setText(const QString& text, bool secret = false); - void setSecretText(const QString& text); + void setText(const QString& text); static Clipboard* instance(); diff --git a/src/gui/DatabaseWidget.cpp b/src/gui/DatabaseWidget.cpp index aee90d63b7..fde356fd5c 100644 --- a/src/gui/DatabaseWidget.cpp +++ b/src/gui/DatabaseWidget.cpp @@ -547,7 +547,7 @@ void DatabaseWidget::copyPassword() return; } - setClipboardSecretTextAndMinimize(currentEntry->resolveMultiplePlaceholders(currentEntry->password())); + setClipboardTextAndMinimize(currentEntry->resolveMultiplePlaceholders(currentEntry->password())); } void DatabaseWidget::copyURL() @@ -592,14 +592,6 @@ void DatabaseWidget::setClipboardTextAndMinimize(const QString& text) } } -void DatabaseWidget::setClipboardSecretTextAndMinimize(const QString& text) -{ - clipboard()->setSecretText(text); - if (config()->get("MinimizeOnCopy").toBool()) { - window()->showMinimized(); - } -} - void DatabaseWidget::performAutoType() { Entry* currentEntry = m_entryView->currentEntry(); @@ -939,7 +931,7 @@ void DatabaseWidget::entryActivationSignalReceived(Entry* entry, EntryModel::Mod setClipboardTextAndMinimize(entry->resolveMultiplePlaceholders(entry->username())); break; case EntryModel::Password: - setClipboardSecretTextAndMinimize(entry->resolveMultiplePlaceholders(entry->password())); + setClipboardTextAndMinimize(entry->resolveMultiplePlaceholders(entry->password())); break; case EntryModel::Url: if (!entry->url().isEmpty()) { diff --git a/src/gui/DatabaseWidget.h b/src/gui/DatabaseWidget.h index b9f2570a67..78b162c3a3 100644 --- a/src/gui/DatabaseWidget.h +++ b/src/gui/DatabaseWidget.h @@ -208,7 +208,6 @@ private slots: private: void setClipboardTextAndMinimize(const QString& text); - void setClipboardSecretTextAndMinimize(const QString& text); void setIconFromParent(); void replaceDatabase(Database* db);