-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathselectitem.cpp
78 lines (71 loc) · 2.03 KB
/
selectitem.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#include "selectitem.h"
#include "ui_selectitem.h"
#include "settings.h"
#include <QPushButton>
#include <QJsonDocument>
#include <QJsonObject>
#include <QPixmap>
#include <QNetworkAccessManager>
#include <QNetworkRequest>
#include <QMenu>
#include <QAction>
#include <QMouseEvent>
SelectItem::SelectItem(QString id, QWidget *parent) :
QWidget(parent),ui(new Ui::SelectItem),id(id),
detail(new CarDetail(this))
{
ui->setupUi(this);
}
SelectItem::~SelectItem()
{
delete ui;
}
void SelectItem::mousePressEvent(QMouseEvent *e)
{
if(e->buttons().testFlag(Qt::LeftButton))
{
PressTime=QTime::currentTime();
}
}
void SelectItem::mouseReleaseEvent(QMouseEvent *e)
{
if(e->buttons().testFlag(Qt::LeftButton))
{
if(PressTime.secsTo(QTime::currentTime()))
{
detail->setId(id.toLong());
connect(detail,&CarDetail::accepted,static_cast<QWidget *>(this->parent()),&QWidget::close);
detail->exec();
}
}
}
void SelectItem::load()
{
QNetworkRequest request(QUrl(Settings::CarDetailpage+"?id="+id));
NAM.get(request);
connect(&NAM,&QNetworkAccessManager::finished,this,&SelectItem::onLoaded);
}
void SelectItem::onLoaded(QNetworkReply *r)
{
disconnect(&NAM,0,0,0);
QString ImageUrl;
QByteArray reply=r->readAll();
r->deleteLater();
QJsonObject JObj=QJsonDocument::fromJson(reply).object();
ImageUrl=JObj["Image"].toString();
ui->NameLable->setText(JObj["Name"].toString());
ui->DescriptionLabel->setText(JObj["Description"].toString());
ui->DetailLable1->setText(JObj["Detail1"].toString());
ui->DetailLable2->setText(JObj["Detail2"].toString());
ui->DetailLable3->setText(JObj["Detail3"].toString());
QNetworkRequest request(ImageUrl);
NAM.get(request);
connect(&NAM,&QNetworkAccessManager::finished,this,&SelectItem::onImageLoaded);
}
void SelectItem::onImageLoaded(QNetworkReply *r)
{
disconnect(&NAM,0,0,0);
pix.loadFromData(r->readAll());
r->deleteLater();
ui->ImageLable->setPixmap(pix);
}