File indexing completed on 2024-04-28 04:20:03
0001 /* 0002 SPDX-FileCopyrightText: 2022 Friedrich W. H. Kossebau <kossebau@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.1-or-later 0005 */ 0006 0007 #include "imageselectwidget.hpp" 0008 0009 // own 0010 #include "imageselecttool.hpp" 0011 // Qt 0012 #include <QDragEnterEvent> 0013 #include <QDragLeaveEvent> 0014 #include <QDragMoveEvent> 0015 #include <QDropEvent> 0016 0017 namespace Kodaskanna 0018 { 0019 namespace ImageSource 0020 { 0021 0022 ImageSelectWidget::ImageSelectWidget(ImageSelectTool *imageSelectTool, QWidget *parent) 0023 : QWidget(parent) 0024 , m_imageSelectTool(imageSelectTool) 0025 { 0026 m_ui.setupUi(this); 0027 setAcceptDrops(true); 0028 0029 connect(m_ui.openFileButton, &QPushButton::clicked, this, &ImageSelectWidget::openFile); 0030 connect(m_ui.pasteFromClipboardButton, &QPushButton::clicked, this, &ImageSelectWidget::pasteFromClipboard); 0031 } 0032 0033 ImageSelectWidget::~ImageSelectWidget() = default; 0034 0035 void ImageSelectWidget::dragEnterEvent(QDragEnterEvent *dragEnterEvent) 0036 { 0037 if (m_imageSelectTool->canHandleMimeData(dragEnterEvent->mimeData())) { 0038 dragEnterEvent->accept(); 0039 } else { 0040 dragEnterEvent->ignore(); 0041 } 0042 } 0043 0044 void ImageSelectWidget::dragMoveEvent(QDragMoveEvent *dragMoveEvent) 0045 { 0046 if (m_imageSelectTool->canHandleMimeData(dragMoveEvent->mimeData())) { 0047 dragMoveEvent->accept(); 0048 } else { 0049 dragMoveEvent->ignore(); 0050 } 0051 } 0052 0053 void ImageSelectWidget::dragLeaveEvent(QDragLeaveEvent *dragLeaveEvent) 0054 { 0055 dragLeaveEvent->accept(); 0056 } 0057 0058 void ImageSelectWidget::dropEvent(QDropEvent *dropEvent) 0059 { 0060 if (m_imageSelectTool->handleDroppedMimeData(dropEvent->mimeData())) { 0061 dropEvent->accept(); 0062 } else { 0063 dropEvent->ignore(); 0064 } 0065 } 0066 0067 void ImageSelectWidget::openFile() 0068 { 0069 m_imageSelectTool->openFile(); 0070 } 0071 0072 void ImageSelectWidget::pasteFromClipboard() 0073 { 0074 m_imageSelectTool->pasteFromClipboard(); 0075 } 0076 0077 } 0078 }