-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathreturnwindow.cpp
More file actions
158 lines (146 loc) · 5.17 KB
/
Copy pathreturnwindow.cpp
File metadata and controls
158 lines (146 loc) · 5.17 KB
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
#include "returnwindow.h"
ReturnWindow::ReturnWindow(QWidget *parent) : QMdiSubWindow(parent)
{
setWindowFlags(Qt::FramelessWindowHint);
this->setGeometry(150*dpi,170*dpi,859*dpi,533*dpi);
this->setStyleSheet("background-color:#ffffff;border:none");
QStringList columnLabels;
QFont labelFont("微软雅黑",12);
columnLabels<<"已借书籍"<<"借书时间"<<"期望归还时间"<<" ";
borrowTable=new QTableWidget(20,4,this);
borrowTable->setHorizontalHeaderLabels(columnLabels);
borrowTable->setFocusPolicy(Qt::NoFocus);
borrowTable->setStyleSheet("background-color: #ffffff");
borrowTable->setGeometry(40*dpi,20*dpi,800*dpi,600*dpi);
borrowTable->setColumnWidth(0,370*dpi);
borrowTable->setColumnWidth(1,110*dpi);
borrowTable->setColumnWidth(2,110*dpi);
borrowTable->setEnabled(true);
borrowTable->setEditTriggers(QAbstractItemView::NoEditTriggers);
borrowTable->setSelectionMode(QAbstractItemView::NoSelection);
borrowTable->horizontalHeader()->setStyleSheet("QHeaderView::section{background-color:white;border:0px;border-style:solid");
borrowTable->horizontalHeader()->setFont(labelFont);
borrowTable->horizontalHeader()->setFixedHeight(30*dpi);
borrowTable->verticalHeader()->hide();
borrowTable->setFont(QFont("微软雅黑",10));
for(int row=0;row<20;row++)
borrowTable->setRowHeight(row,40*dpi);
for(int i=0;i<20;i++)
{
returnBtn[i]=new ToolButton(this);
returnBtn[i]->setGeometry(650*dpi,10+40*i*dpi,30*dpi,30*dpi);
returnBtn[i]->setText("归还/续借/挂失");
returnBtn[i]->setVisible(false);
connect(returnBtn[i],SIGNAL(clicked()),this,SLOT(bookHandling()));
returnBtn[i]->setObjectName(QString::number(i));
}
for(int i=0;i<20;i++)
{
for(int j=0;j<3;j++)
{
item[i][j]=new QTableWidgetItem;
item[i][j]->setText("");
}
}
for(int i=0;i<20;i++)
{
borrowTable->setItem(i,0,item[i][0]);
borrowTable->setItem(i,1,item[i][1]);
borrowTable->setItem(i,2,item[i][2]);
borrowTable->setCellWidget(i,3,returnBtn[i]);
}
borrowTable->setVisible(true);
reportWindow = new ReportReasonWindow(this);
reportWindow->setModal(true);
reportWindow->setVisible(false);
connect(reportWindow,SIGNAL(success()),this,SLOT(bookLost()));
//选择操作模式:归还续借、挂失
handleWindow=new BookHandleWindow(this);
handleWindow->setVisible(false);
connect(handleWindow,SIGNAL(returnPatternConfirmed()),this,SLOT(bookReturning()));
connect(handleWindow,SIGNAL(renewPatternConfirmed()),this,SLOT(bookRenewing()));
connect(handleWindow,SIGNAL(lossPatternConfirmed()),this,SLOT(getReason()));
}
ReturnWindow::~ReturnWindow()
{
for(int i=0;i<20;i++)
{
delete returnBtn[i];
for(int j=0;j<3;j++)
delete item[i][j];
}
delete handleWindow;
delete reportWindow;
delete borrowTable;
}
void ReturnWindow::paintEvent(QPaintEvent *paintEvent)
{
int l=activereader->getIntByTag("bor_num");
for(int row=0;row<activereader->getIntByTag("bor_num");row++)
{
Book* borrowedBook=search(activereader->bor_list[row].id,5)[0];
item[row][0]->setText(borrowedBook->getStringByTag("title"));
item[row][1]->setText((activereader->bor_list)[row].st.toString("yyyy-MM-dd"));
item[row][2]->setText((activereader->bor_list)[row].exp.toString("yyyy-MM-dd"));
borrowTable->setItem(row,0,item[row][0]);
borrowTable->setItem(row,1,item[row][1]);
borrowTable->setItem(row,2,item[row][2]);
}
for(int i=l;i<20;i++)
{
item[i][0]->setText("");
item[i][1]->setText("");
item[i][2]->setText("");
borrowTable->setItem(i,0,item[i][0]);
borrowTable->setItem(i,1,item[i][1]);
borrowTable->setItem(i,2,item[i][2]);
}
for(int i=0;i<l;i++)
returnBtn[i]->setVisible(true);
for(int i=l;i<20;i++)
returnBtn[i]->setVisible(false);
popUp=new MessageBox(this);
popUp->setGeometry(this->width()/3,this->height()/4,popUp->width(),popUp->height());
popUp->setVisible(false);
}
void ReturnWindow::bookHandling()
{
ToolButton* clickedButton=qobject_cast<ToolButton*>(sender());
int i=(clickedButton->objectName()).toInt();
order=i;
handleWindow->setVisible(true);
}
void ReturnWindow::bookReturning()
{
handleWindow->setVisible(true);
returning(order,activereader,systemDate);
popUp->setText("归还成功");
popUp->setVisible(true);
saveXml();
saveXml2();
update();
}
void ReturnWindow::bookRenewing()
{
int state=renew(order,activereader,systemDate);
if(state==2)
popUp->setText("抱歉,图书已被预订");
else if(state==1)
popUp->setText("图书超期,无法续借");
else if(state==3)
popUp->setText("无需续借");
else
popUp->setText("续借成功");
saveXml();
saveXml2();
popUp->setVisible(true);
}
void ReturnWindow::bookLost()
{
report(order,activereader,reportWindow->getReasons().join(","));
saveXml();
saveXml2();
}
void ReturnWindow::getReason(){
reportWindow->setVisible(true);
}