Allow to copy in Qt Quick GUI

This commit is contained in:
Martchus 2018-06-16 15:37:55 +02:00
parent 68c3133498
commit fa8e6a76db
3 changed files with 27 additions and 0 deletions

View File

@ -172,6 +172,14 @@ Kirigami.ScrollablePage {
fieldsListView.model.index(index, 0),
model.isPassword ? 0 : 1, 0x0100 + 1)
}
Controls.MenuItem {
icon.name: "edit-copy"
text: qsTr("Copy password")
onClicked: showPassiveNotification(
nativeInterface.copyToClipboard(
model.actualValue) ? qsTr("Copied") : qsTr(
"Unable to access clipboard"))
}
Controls.MenuItem {
icon.name: "edit-delete"
text: qsTr("Delete field")

View File

@ -8,8 +8,12 @@
#include <c++utilities/io/catchiofailure.h>
#include <c++utilities/io/path.h>
#ifndef QT_NO_CLIPBOARD
#include <QClipboard>
#endif
#include <QDir>
#include <QFileInfo>
#include <QGuiApplication>
#include <QIcon>
#include <QSettings>
#include <QStringBuilder>
@ -191,6 +195,20 @@ QStringList Controller::pasteEntries(const QModelIndex &destinationParent, int r
return successfullyMovedEntries;
}
bool Controller::copyToClipboard(const QString &text) const
{
#ifndef QT_NO_CLIPBOARD
auto *clipboard(QGuiApplication::clipboard());
if (!clipboard) {
return false;
}
clipboard->setText(text);
return true;
#else
return false;
#endif
}
void Controller::resetFileStatus()
{
setFileOpen(false);

View File

@ -50,6 +50,7 @@ public:
QString currentAccountName() const;
Q_INVOKABLE void cutEntry(const QModelIndex &entryIndex);
Q_INVOKABLE QStringList pasteEntries(const QModelIndex &destinationParent, int row = -1);
Q_INVOKABLE bool copyToClipboard(const QString &text) const;
bool canPaste() const;
const QStringList &recentFiles() const;