wPictureItem.cpp 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. #include "wPictureItem.h"
  2. #include "ui_wPictureItem.h"
  3. #include "CAppInfo.h"
  4. #include "awMsgBox.h"
  5. #include <QFile>
  6. wPictureItem::wPictureItem(QString sUrl, QWidget *parent) :
  7. QWidget(parent),
  8. ui(new Ui::wPictureItem),
  9. m_sUrl(sUrl)
  10. {
  11. ui->setupUi(this);
  12. setStyleSheet(g_appInfoPtr->m_sQssStr);
  13. qRegisterMetaType<CDownLoadFileInfo>("CDownLoadFileInfo");
  14. connect(g_httpBllPtr.get(), &CHttpBll::sgnDownLoadFile, this, &wPictureItem::onDownLoadFile);
  15. this->installEventFilter(this);
  16. }
  17. wPictureItem::~wPictureItem()
  18. {
  19. delete ui;
  20. }
  21. void wPictureItem::setUI(int nLeft, int nTop, int nWidth, int nHeight)
  22. {
  23. setGeometry(nLeft, nTop, nWidth, nHeight);
  24. ui->label_picture->setGeometry(0, 0, nWidth, nHeight);
  25. ui->widget_operation->setGeometry(0, 0, nWidth, nHeight);
  26. ui->btn_delete->setGeometry(width() - g_appInfoPtr->m_fRate*16, 0, g_appInfoPtr->m_fRate*16, g_appInfoPtr->m_fRate*16);
  27. ui->btn_view->setGeometry((width() - g_appInfoPtr->m_fRate*16)/2, (height() - g_appInfoPtr->m_fRate*11)/2,
  28. g_appInfoPtr->m_fRate*16, g_appInfoPtr->m_fRate*11);
  29. ui->widget_operation->setVisible(false);
  30. QString sLocalFile = g_appInfoPtr->m_FileCacheMap[m_sUrl];
  31. if(sLocalFile.isEmpty() || !QFile::exists(sLocalFile))
  32. {
  33. QString sFileName = m_sUrl.right(m_sUrl.length() - m_sUrl.lastIndexOf("/") - 1);
  34. sFileName = g_appInfoPtr->m_sCacheFileDir + sFileName;
  35. CHttpRequestPackage hrp;
  36. hrp.sUri = m_sUrl;
  37. hrp.sCommonStr = sFileName;
  38. hrp.sCommonStr1 = __FILE__;
  39. hrp.nRequestType = RequestType::rtDownLoadFile;
  40. hrp.nRetryCount = 3;
  41. g_httpBllPtr->downLoad(hrp);
  42. }
  43. else
  44. {
  45. ui->label_picture->setPixmap(QPixmap(sLocalFile).scaled(ui->label_picture->width(), ui->label_picture->height(), Qt::IgnoreAspectRatio));
  46. }
  47. }
  48. bool wPictureItem::eventFilter(QObject *obj, QEvent *ev)
  49. {
  50. if(ev->type() == QEvent::Enter)
  51. {
  52. ui->widget_operation->setVisible(true);
  53. }
  54. else if(ev->type() == QEvent::Leave)
  55. {
  56. ui->widget_operation->setVisible(false);
  57. }
  58. return QWidget::eventFilter(obj, ev);
  59. }
  60. QString wPictureItem::getUrl()
  61. {
  62. return m_sUrl;
  63. }
  64. void wPictureItem::onDownLoadFile(CDownLoadFileInfo downLoadFileInfo)
  65. {
  66. QString sFileName = m_sUrl.right(m_sUrl.length() - m_sUrl.lastIndexOf("/") - 1);
  67. sFileName = g_appInfoPtr->m_sCacheFileDir + sFileName;
  68. if (downLoadFileInfo.sFileName == sFileName &&
  69. downLoadFileInfo.sModuleName == __FILE__)
  70. {
  71. if (downLoadFileInfo.nCode == 200)
  72. {
  73. g_appInfoPtr->m_FileCacheMap[m_sUrl] = sFileName;
  74. ui->label_picture->setPixmap(QPixmap(sFileName).scaled(ui->label_picture->width(), ui->label_picture->height(), Qt::IgnoreAspectRatio));
  75. }
  76. else
  77. {
  78. if(downLoadFileInfo.sMessage.isEmpty())
  79. {
  80. ShowMsg(QString::fromLocal8Bit("下载失败"), g_appInfoPtr->m_pAnsBgWidget, MSG_ICON_TYPE::mit_error);
  81. }
  82. else
  83. {
  84. ShowMsg(downLoadFileInfo.sMessage, g_appInfoPtr->m_pAnsBgWidget, MSG_ICON_TYPE::mit_error);
  85. }
  86. }
  87. }
  88. }
  89. void wPictureItem::on_btn_delete_clicked()
  90. {
  91. emit delFile(m_sUrl);
  92. }
  93. void wPictureItem::on_btn_view_clicked()
  94. {
  95. emit viewPhoto(m_sUrl);
  96. }