frmupload.cpp 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  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. connect(TCHttpService::getInstance(), &TCHttpService::signal_uploadFileSec, this, &FrmUpload::slot_uploadFileSec);
  13. }
  14. FrmUpload::~FrmUpload()
  15. {
  16. delete ui;
  17. }
  18. void FrmUpload::slot_uploadFileSec(QString url)
  19. {
  20. QClipboard* clipboard = QApplication::clipboard();
  21. if (copyState == 0) {
  22. clipboard->setText(QString("![](%1)").arg(url));
  23. }
  24. else {
  25. clipboard->setText(url);
  26. }
  27. }
  28. bool FrmUpload::eventFilter(QObject *watched, QEvent *event)
  29. {
  30. static bool mousePressed = false;
  31. if (watched == ui->frmUpload) {
  32. QMouseEvent* mouseEvent = static_cast<QMouseEvent*>(event);
  33. if (mouseEvent->type() == QMouseEvent::MouseButtonPress && mouseEvent->button() == Qt::LeftButton) {
  34. mousePressed = true;
  35. return true;
  36. }
  37. else if (mouseEvent->type() == QMouseEvent::MouseButtonRelease && mouseEvent->button() == Qt::LeftButton && mousePressed == true) {
  38. QStringList fileList = QFileDialog::getOpenFileNames(this, "选择图片", "C:\\", "Files (*);;"
  39. "PNG (*.png);;"
  40. "JPG (*.jpg);;"
  41. "JPEG (*.jpeg);;"
  42. "SVG (*.svg)");
  43. uploadFiles(fileList);
  44. mousePressed = false;
  45. return true;
  46. }
  47. else {
  48. return false;
  49. }
  50. }
  51. return QWidget::eventFilter(watched, event);
  52. }
  53. void FrmUpload::dragEnterEvent(QDragEnterEvent *event)
  54. {
  55. if (event->mimeData()->hasUrls()) {
  56. event->acceptProposedAction();
  57. }
  58. else {
  59. event->ignore();
  60. }
  61. }
  62. void FrmUpload::dropEvent(QDropEvent *event)
  63. {
  64. QStringList uploadList;
  65. const QMimeData* mimeData = event->mimeData();
  66. if (!mimeData->hasUrls()) {
  67. return;
  68. }
  69. QList<QUrl> urlList = mimeData->urls();
  70. #if !DEBUG
  71. foreach (QUrl url, urlList) {
  72. qDebug() << url.toLocalFile();
  73. }
  74. #endif
  75. foreach (QUrl url, urlList) {
  76. QFileInfo fileInfo(url.toLocalFile());
  77. if (fileInfo.isDir()) {
  78. continue;
  79. }
  80. else {
  81. // QImageReader reader(url.toLocalFile());
  82. // if (!reader.imageFormat()) {
  83. // uploadList << url.toLocalFile();
  84. // TCHttpService::getInstance()->apiMd5(fileInfo.absoluteFilePath());
  85. }
  86. }
  87. }
  88. void FrmUpload::initFrom()
  89. {
  90. ui->frmUpload->setMinimumSize(QSize(400, 200));
  91. ui->btnHTML->setText("HTML");
  92. ui->btnFastUpload->setText("剪贴板上传");
  93. ui->btnMarkdown->setText("Markdown");
  94. ui->btnUrl->setText("URL");
  95. ui->btnUBB->setText("UBB");
  96. }
  97. void FrmUpload::initWidget()
  98. {
  99. ui->frmUpload->installEventFilter(this);
  100. this->setAcceptDrops(true);
  101. // ui->frmUpload->setAcceptDrops(true);
  102. }
  103. void FrmUpload::uploadFiles(QStringList fileList)
  104. {
  105. if (!TCHttpService::getInstance()->getOnlineState())
  106. return;
  107. foreach (QString p, fileList) {
  108. qDebug() << "upload:" << p;
  109. TCHttpService::getInstance()->apiUpload(p);
  110. }
  111. // TCHttpService::getInstance()->apiMyfileCount();
  112. // TCHttpService::getInstance()->apiMyfileNormal();
  113. }