frmupload.cpp 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. #include "frmupload.h"
  2. #include "ui_frmupload.h"
  3. #include <QtDebug>
  4. #include <QImageReader>
  5. FrmUpload::FrmUpload(QWidget *parent)
  6. : QWidget(parent)
  7. , ui(new Ui::FrmUpload)
  8. {
  9. ui->setupUi(this);
  10. initFrom();
  11. initWidget();
  12. }
  13. FrmUpload::~FrmUpload()
  14. {
  15. delete ui;
  16. }
  17. bool FrmUpload::eventFilter(QObject *watched, QEvent *event)
  18. {
  19. static bool mousePressed = false;
  20. if (watched == ui->frmUpload) {
  21. QMouseEvent* mouseEvent = static_cast<QMouseEvent*>(event);
  22. if (mouseEvent->type() == QMouseEvent::MouseButtonPress && mouseEvent->button() == Qt::LeftButton) {
  23. mousePressed = true;
  24. return true;
  25. }
  26. else if (mouseEvent->type() == QMouseEvent::MouseButtonRelease && mouseEvent->button() == Qt::LeftButton && mousePressed == true) {
  27. QStringList fileList = QFileDialog::getOpenFileNames(this, "选择图片", "C:\\", "Files (*);;"
  28. "PNG (*.png);;"
  29. "JPG (*.jpg);;"
  30. "JPEG (*.jpeg);;"
  31. "SVG (*.svg)");
  32. uploadFiles(fileList);
  33. mousePressed = false;
  34. return true;
  35. }
  36. else {
  37. return false;
  38. }
  39. }
  40. return QWidget::eventFilter(watched, event);
  41. }
  42. void FrmUpload::dragEnterEvent(QDragEnterEvent *event)
  43. {
  44. if (event->mimeData()->hasUrls()) {
  45. event->acceptProposedAction();
  46. }
  47. else {
  48. event->ignore();
  49. }
  50. }
  51. void FrmUpload::dropEvent(QDropEvent *event)
  52. {
  53. QStringList uploadList;
  54. const QMimeData* mimeData = event->mimeData();
  55. if (!mimeData->hasUrls()) {
  56. return;
  57. }
  58. QList<QUrl> urlList = mimeData->urls();
  59. #if DEBUG
  60. foreach (QUrl url, urlList) {
  61. qDebug() << url.toLocalFile();
  62. }
  63. #endif
  64. foreach (QUrl url, urlList) {
  65. QFileInfo fileInfo(url.toLocalFile());
  66. if (fileInfo.isDir()) {
  67. continue;
  68. }
  69. else {
  70. // QImageReader reader(url.toLocalFile());
  71. // if (!reader.imageFormat()) {
  72. // uploadList << url.toLocalFile();
  73. // TCHttpService::getInstance()->apiMd5(fileInfo.absoluteFilePath());
  74. }
  75. }
  76. }
  77. void FrmUpload::initFrom()
  78. {
  79. ui->frmUpload->setMinimumSize(QSize(400, 200));
  80. }
  81. void FrmUpload::initWidget()
  82. {
  83. ui->frmUpload->installEventFilter(this);
  84. this->setAcceptDrops(true);
  85. // ui->frmUpload->setAcceptDrops(true);
  86. }
  87. void FrmUpload::uploadFiles(QStringList fileList)
  88. {
  89. }