diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 736d855..e31373e 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -8,6 +8,8 @@ Added the default arrow cursor. * Added a color sampler which can copy colors from images to the clipboard in hex format (Images -> Sample Color) +* Added notification when attempting to paste from an empty or + unusable clipboard Fixed diff --git a/beeref/view.py b/beeref/view.py index 5fcad5e..e1d1d85 100644 --- a/beeref/view.py +++ b/beeref/view.py @@ -621,7 +621,10 @@ class BeeGraphicsView(MainControlsMixin, item.setScale(1 / self.get_scale()) self.undo_stack.push(commands.InsertItems(self.scene, [item], pos)) return - logger.info('No image data or text in clipboard') + + msg = 'No image data or text in clipboard' + logger.info(msg) + widgets.BeeNotification(self, msg) def on_action_open_settings_dir(self): dirname = os.path.dirname(self.settings.fileName()) diff --git a/tests/test_view.py b/tests/test_view.py index 1885ce6..edb4c51 100644 --- a/tests/test_view.py +++ b/tests/test_view.py @@ -560,12 +560,16 @@ def test_on_action_paste_when_text(img_mock, text_mock, clear_mock, view): @patch('beeref.scene.BeeGraphicsScene.clearSelection') @patch('PyQt6.QtGui.QClipboard.text') @patch('PyQt6.QtGui.QClipboard.image') -def test_on_action_paste_when_empty(img_mock, text_mock, clear_mock, view): +@patch('beeref.widgets.BeeNotification') +def test_on_action_paste_when_empty( + notification_mock, img_mock, text_mock, clear_mock, view): view.cancel_active_modes = MagicMock() img_mock.return_value = QtGui.QImage() text_mock.return_value = '' view.on_action_paste() assert len(view.scene.items()) == 0 + notification_mock.assert_called_once_with( + view, 'No image data or text in clipboard') clear_mock.assert_not_called() view.cancel_active_modes.assert_called_once_with()