mirror of
https://github.com/YACReader/yacreader
synced 2025-07-18 21:14:33 -04:00
Support drag&drop for setting a custom cover in the properties dialog
This commit is contained in:
@ -21,7 +21,8 @@ HEADERS += \
|
||||
$$PWD/yacreader_library_list_widget.h \
|
||||
$$PWD/yacreader_library_item_widget.h \
|
||||
$$PWD/yacreader_treeview.h \
|
||||
$$PWD/yacreader_busy_widget.h
|
||||
$$PWD/yacreader_busy_widget.h \
|
||||
$$PWD/yacreader_cover_label.h
|
||||
!CONFIG(no_opengl){
|
||||
HEADERS += $$PWD/yacreader_gl_flow_config_widget.h
|
||||
}
|
||||
@ -50,8 +51,8 @@ SOURCES += \
|
||||
$$PWD/yacreader_library_list_widget.cpp \
|
||||
$$PWD/yacreader_library_item_widget.cpp \
|
||||
$$PWD/yacreader_treeview.cpp \
|
||||
$$PWD/yacreader_busy_widget.cpp
|
||||
|
||||
$$PWD/yacreader_busy_widget.cpp \
|
||||
$$PWD/yacreader_cover_label.cpp
|
||||
!CONFIG(no_opengl){
|
||||
SOURCES += $$PWD/yacreader_gl_flow_config_widget.cpp
|
||||
}
|
||||
|
31
custom_widgets/yacreader_cover_label.cpp
Normal file
31
custom_widgets/yacreader_cover_label.cpp
Normal file
@ -0,0 +1,31 @@
|
||||
#include "yacreader_cover_label.h"
|
||||
#include "yacreader_global_gui.h"
|
||||
|
||||
YACReader::CoverLabel::CoverLabel(QWidget *parent)
|
||||
: QLabel(parent)
|
||||
{
|
||||
setAcceptDrops(true);
|
||||
}
|
||||
|
||||
void YACReader::CoverLabel::dragEnterEvent(QDragEnterEvent *event)
|
||||
{
|
||||
if (event->mimeData()->hasUrls() && !YACReader::imagePathFromMimeData(event->mimeData()).isEmpty()) {
|
||||
event->acceptProposedAction();
|
||||
}
|
||||
}
|
||||
|
||||
void YACReader::CoverLabel::dragMoveEvent(QDragMoveEvent *event)
|
||||
{
|
||||
if (event->mimeData()->hasUrls()) {
|
||||
event->acceptProposedAction();
|
||||
}
|
||||
}
|
||||
|
||||
void YACReader::CoverLabel::dropEvent(QDropEvent *event)
|
||||
{
|
||||
QString path = YACReader::imagePathFromMimeData(event->mimeData());
|
||||
if (!path.isEmpty()) {
|
||||
emit imageDropped(path);
|
||||
event->acceptProposedAction();
|
||||
}
|
||||
}
|
29
custom_widgets/yacreader_cover_label.h
Normal file
29
custom_widgets/yacreader_cover_label.h
Normal file
@ -0,0 +1,29 @@
|
||||
#ifndef DROP_LABEL_H
|
||||
#define DROP_LABEL_H
|
||||
|
||||
#include <QLabel>
|
||||
#include <QDragEnterEvent>
|
||||
#include <QDropEvent>
|
||||
#include <QMimeData>
|
||||
|
||||
namespace YACReader {
|
||||
|
||||
class CoverLabel : public QLabel
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit CoverLabel(QWidget *parent = nullptr);
|
||||
|
||||
protected:
|
||||
void dragEnterEvent(QDragEnterEvent *event) override;
|
||||
void dragMoveEvent(QDragMoveEvent *event) override;
|
||||
void dropEvent(QDropEvent *event) override;
|
||||
|
||||
signals:
|
||||
void imageDropped(const QString &path);
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif // DROP_LABEL_H
|
Reference in New Issue
Block a user