From 65136180cd72d9b4c624b1047e4d850e04979cf1 Mon Sep 17 00:00:00 2001 From: Jakob Gahde Date: Sun, 4 Aug 2024 14:51:54 +0200 Subject: [PATCH] Fix member call on null pointer in ClipboardManager --- core_lib/src/managers/clipboardmanager.cpp | 9 ++++++--- core_lib/src/managers/clipboardmanager.h | 2 -- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/core_lib/src/managers/clipboardmanager.cpp b/core_lib/src/managers/clipboardmanager.cpp index a6ad45da96..cfb1ffb140 100644 --- a/core_lib/src/managers/clipboardmanager.cpp +++ b/core_lib/src/managers/clipboardmanager.cpp @@ -17,6 +17,7 @@ GNU General Public License for more details. #include "clipboardmanager.h" #include +#include #include @@ -32,15 +33,17 @@ ClipboardManager::~ClipboardManager() void ClipboardManager::setFromSystemClipboard(const QPointF& pos, const Layer* layer) { + const QClipboard *clipboard = QGuiApplication::clipboard(); + // We intentially do not call resetStates here because we can only store image changes to the clipboard // otherwise we break pasting for vector. // Only bitmap is supported currently... // Only update clipboard data if it was stored by other applications - if (layer->type() != Layer::BITMAP || mClipboard->ownsClipboard()) { + if (layer->type() != Layer::BITMAP || clipboard->ownsClipboard()) { return; } - QImage image = mClipboard->image(QClipboard::Clipboard); + QImage image = clipboard->image(QClipboard::Clipboard); if (!image.isNull()) { mBitmapImage = BitmapImage(pos.toPoint()-QPoint(image.size().width()/2, image.size().height()/2), image); } @@ -60,7 +63,7 @@ void ClipboardManager::copyBitmapImage(BitmapImage* bitmapImage, QRectF selectio mBitmapImage = bitmapImage->copy(); } - mClipboard->setImage(*mBitmapImage.image()); + QGuiApplication::clipboard()->setImage(*mBitmapImage.image()); } void ClipboardManager::copyVectorImage(const VectorImage* vectorImage) diff --git a/core_lib/src/managers/clipboardmanager.h b/core_lib/src/managers/clipboardmanager.h index 8a2f26f744..04d3b82eea 100644 --- a/core_lib/src/managers/clipboardmanager.h +++ b/core_lib/src/managers/clipboardmanager.h @@ -75,8 +75,6 @@ class ClipboardManager: public BaseManager VectorImage mVectorImage; std::map mFrames; Layer::LAYER_TYPE mFramesType = Layer::LAYER_TYPE::UNDEFINED; - - QClipboard* mClipboard = nullptr; }; #endif // CLIPBOARDMANAGER_H