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 }