Added a frist drag and drop support from Safari

preferencesAboutTextFull
shibakaneki 13 years ago
parent 652d966eb8
commit 0cd15a38c3
  1. 3
      src/board/UBLibraryController.cpp
  2. 5
      src/gui/UBDownloadWidget.cpp
  3. 40
      src/gui/UBLibraryWidget.cpp

@ -149,6 +149,9 @@ void UBLibraryController::importImageOnLibrary(QImage& pImage)
QDateTime now = QDateTime::currentDateTime();
QString filePath = mPicturesStandardDirectoryPath.toLocalFile() + "/" + tr("ImportedImage") + "-" + now.toString("dd-MM-yyyy hh-mm-ss") + ".png";
filePath = UBFileSystemUtils::normalizeFilePath(filePath);
qDebug() << "Importing image file from: " << filePath;
pImage.save(filePath);
UBApplication::showMessage(tr("Added 1 Image to Library"));
}

@ -66,11 +66,6 @@ UBDownloadWidget::UBDownloadWidget(QWidget *parent, const char *name):QWidget(pa
*/
UBDownloadWidget::~UBDownloadWidget()
{
if(NULL != mpItem)
{
delete mpItem;
mpItem = NULL;
}
if(NULL != mpCancelBttn)
{
delete mpCancelBttn;

@ -351,13 +351,29 @@ void UBLibraryWidget::dropEvent(QDropEvent *event)
else
{
bool bDropAccepted = false;
if (pMimeData->hasImage())
// We must check the URLs first because an image dropped from the web can contains the image datas, as well as the URLs
// and if we want to display the download widget in order to make the user wait for the end of the download, we need
// to check the URLs first!
if (pMimeData->hasUrls())
{
qDebug() << "hasImage";
QImage image = qvariant_cast<QImage>(pMimeData->imageData());
mLibraryController->importImageOnLibrary(image);
bDropAccepted = true;
qDebug() << "hasUrls";
QList<QUrl> urlList = pMimeData->urls();
for (int i = 0; i < urlList.size() && i < 32; ++i)
{
QString filePath;
#ifdef Q_WS_MACX
filePath = QUrl(urlList.at(i)).toString();
#else
filePath = QUrl(urlList.at(i).path()).toLocalFile();
#endif
mLibraryController->importItemOnLibrary(filePath);
bDropAccepted = true;
}
}
// When an HTML is present, it means that we dropped something from the web. Normally, the HTML contains the element
// of the webpage and has a 'src' attribute containing the URL of the web ressource. Here we are looking for this
// 'src' attribute, get its value and download the ressource from this URL.
else if (pMimeData->hasHtml())
{
qDebug() << "hasHtml";
@ -377,16 +393,12 @@ void UBLibraryWidget::dropEvent(QDropEvent *event)
mLibraryController->importItemOnLibrary(filePath);
bDropAccepted = true;
}
else if (pMimeData->hasUrls())
else if (pMimeData->hasImage())
{
qDebug() << "hasUrls";
QList<QUrl> urlList = pMimeData->urls();
for (int i = 0; i < urlList.size() && i < 32; ++i)
{
QString filePath = QUrl(urlList.at(i).path()).toLocalFile();
mLibraryController->importItemOnLibrary(filePath);
bDropAccepted = true;
}
qDebug() << "hasImage";
QImage image = qvariant_cast<QImage>(pMimeData->imageData());
mLibraryController->importImageOnLibrary(image);
bDropAccepted = true;
}
else
{

Loading…
Cancel
Save