0
0
mirror of https://github.com/keepassxreboot/keepassxc.git synced 2024-09-20 12:22:16 +02:00

Do not delete MacPasteboard instance on exit, resolves #1543

This commit is contained in:
Janek Bevendorff 2018-03-02 23:32:24 +01:00
parent 199f0932bf
commit ee8499f65c
3 changed files with 14 additions and 5 deletions

View File

@ -20,8 +20,9 @@
#include <QMacPasteboardMime>
#include <QTextCodec>
#include <QObject>
class MacPasteboard : public QMacPasteboardMime
class MacPasteboard : public QObject, public QMacPasteboardMime
{
public:
explicit MacPasteboard() : QMacPasteboardMime(MIME_ALL) {}

View File

@ -24,14 +24,19 @@
#include "core/Config.h"
Clipboard* Clipboard::m_instance(nullptr);
#ifdef Q_OS_MAC
QPointer<MacPasteboard> Clipboard::m_pasteboard(nullptr);
#endif
Clipboard::Clipboard(QObject* parent)
: QObject(parent)
, m_timer(new QTimer(this))
#ifdef Q_OS_MAC
, m_pasteboard(new MacPasteboard)
#endif
{
#ifdef Q_OS_MAC
if (!m_pasteboard) {
m_pasteboard = new MacPasteboard();
}
#endif
m_timer->setSingleShot(true);
connect(m_timer, SIGNAL(timeout()), SLOT(clearClipboard()));
connect(qApp, SIGNAL(aboutToQuit()), SLOT(clearCopiedText()));

View File

@ -21,6 +21,7 @@
#include <QObject>
#ifdef Q_OS_MAC
#include "core/MacPasteboard.h"
#include <QPointer>
#endif
class QTimer;
@ -47,7 +48,9 @@ private:
QTimer* m_timer;
#ifdef Q_OS_MAC
QScopedPointer<MacPasteboard> m_pasteboard;
// This object lives for the whole program lifetime and we cannot delete it on exit,
// so ignore leak warnings. See https://bugreports.qt.io/browse/QTBUG-54832
static QPointer<MacPasteboard> m_pasteboard;
#endif
QString m_lastCopied;
};