greenhouse/find-object/src/ImageDropWidget.cpp
apoorva fabea45044 Add 'find-object/' from commit '635efcd6220cabc258b88c54b1ae4279035bbe31'
git-subtree-dir: find-object
git-subtree-mainline: 9bd639e88c266d990f53b2799ba476d34cfc9c89
git-subtree-split: 635efcd6220cabc258b88c54b1ae4279035bbe31
2023-02-25 14:20:22 +05:30

67 lines
1.2 KiB
C++

/*
* ImageDropWidget.cpp
*
* Created on: Dec 22, 2014
* Author: mathieu
*/
#include <ImageDropWidget.h>
#include <find_object/Settings.h>
#include <QtGui/QDragEnterEvent>
#include <QtCore/QRegExp>
#include <QtCore/QUrl>
#include <QMimeData>
namespace find_object {
ImageDropWidget::ImageDropWidget(QWidget *parent, Qt::WindowFlags flags) :
QWidget(parent, flags)
{
setAcceptDrops(true);
}
ImageDropWidget::~ImageDropWidget()
{
}
void ImageDropWidget::dragEnterEvent(QDragEnterEvent *event)
{
if (event->mimeData()->hasUrls())
{
event->acceptProposedAction();
}
}
void ImageDropWidget::dropEvent(QDropEvent *event)
{
QStringList fileNames;
QStringList extensions = Settings::getGeneral_imageFormats().split(" ");
QList<QUrl> urls = event->mimeData()->urls();
for(int i=0; i<urls.size(); ++i)
{
QString path = urls.at(i).toLocalFile();
for(int j=0; j<extensions.size(); ++j)
{
QRegExp reg(extensions[j]);
reg.setPatternSyntax(QRegExp::Wildcard);
if(reg.exactMatch(path))
{
fileNames.push_back(path);
break;
}
}
}
if(fileNames.size())
{
Q_EMIT imagesReceived(fileNames);
}
event->acceptProposedAction();
}
}