#include "userweight.h"
#include "ui_userweight.h"
#include<QMessageBox>
#include<QTimer>
#include<QLineEdit>
#include<QScrollBar>
#include<qnchatmessage.h>
userweight::userweight(QString classnum,QString account,QWidget *parent) :
QWidget(parent),
ui(new Ui::userweight)
{
ui->setupUi(this);
m_classNum = classnum.toStdString();
m_account = account.toStdString();
this->setWindowTitle(account);
ui->name->setText(account);
ui->userTreeWidget->headerItem()->setHidden(true);
int fd = SockUtil::co_createSocket();
m_sock = make_shared<int>(fd);
if(!initSocket())
{
cout << "网络错误" << endl;
SockUtil::co_offline_close(*m_sock.get(),m_classNum,m_account);
return ;
}
getTouXiangData touxiang;
memcpy(touxiang.m_classNum,m_classNum.c_str(),m_classNum.length());
memcpy(touxiang.m_account,m_account.c_str(),m_account.length());
SockUtil::co_write(*m_sock.get(),&touxiang,touxiang.m_dataLength);
getTouXiangRes touxiangRes;
SockUtil::co_read(*m_sock.get(),&touxiangRes,touxiangRes.m_dataLength);
ui->pic->setPixmap(QPixmap(touxiangRes.m_touxiang));
m_touXiangPath = touxiangRes.m_touxiang;
ui->userTreeWidget->setFrameShape(QListWidget::NoFrame);
ui->userTreeWidget->setStyleSheet("QTreeWidget{background:rgb(238, 247, 255);}"
"QTreeWidget::item:hover{background-color:rgb(200, 230, 250);}"
"QTreeWidget::item:selected{background-color:rgb(170, 210, 250);}"
"QTreeWidget{outline:0px;}"
"QTreeWidget::item{background-color:rgb(225, 240, 250);}");
ui->userTreeWidget->verticalScrollBar()->setStyleSheet("QScrollArea{border:0px solid;"
"border-radius: 2px;}"
"QScrollBar:vertical{width: 4px;border:0px solid;"
"border-radius: 2px;margin: 0px,0px,0px,0px;"
"background-color: transparent;background:#e1f0fa;}"
"QScrollBar:vertical:hover{width: 8px;"
"border:0px solid;margin: 0px,0px,0px,0px;background:#e1f0fa;}"
"QScrollBar::handle:vertical{width:8px;background:#c0ddee;"
"border-radius: 8px;height: 80px;}"
"QScrollBar::handle:vertical:hover{background:#c0ddee;"
"border-radius: 8px;}"
"QScrollBar::add-line:vertical{height:11px;background-color: transparent;"
"subcontrol-position:bottom;border:0px solid;"
"border-radius: 8px;}"
"QScrollBar::sub-line:vertical{height:11px;"
"background-color: transparent;subcontrol-position:top;"
"border:0px solid;border-radius: 2px;}"
"QScrollBar::add-page:vertical{background-color: #e1f0fa;"
"border:0px solid;border-radius: 2px;}"
"QScrollBar::sub-page:vertical{background-color: #e1f0fa;"
"border:0px solid;border-radius: 2px;}"
"QScrollBar::up-arrow:vertical{"
"border:0px solid;border-radius: 3px;}"
"QScrollBar::down-arrow:vertical {"
"border:0px solid;border-radius: 3px;}");
ui->messageListWidget->setStyleSheet("QListWidget{background:rgb(238, 247, 255);border:0px;}"
"QListWidget::item:hover{background-color:rgb(200, 230, 250);}"
"QListWidget::item:selected{background-color:rgb(170, 210, 250);}"
"QListWidget{outline:0px;}"
"QListWidget::item{background-color:rgb(225, 240, 250);}");
ui->messageListWidget->verticalScrollBar()->setStyleSheet("QScrollArea{border:0px solid;"
"border-radius: 2px;}"
"QScrollBar:vertical{width: 4px;border:0px solid;"
"border-radius: 2px;margin: 0px,0px,0px,0px;"
"background-color: transparent;background:#e1f0fa;}"
"QScrollBar:vertical:hover{width: 4px;"
"border:0px solid;margin: 0px,0px,0px,0px;background:#e1f0fa;}"
"QScrollBar::handle:vertical{width:4px;background:#c0ddee;"
"border-radius: 2px;height: 40px;}"
"QScrollBar::handle:vertical:hover{background:#c0ddee;"
"border-radius: 2px;}"
"QScrollBar::add-line:vertical{height:11px;background-color: transparent;"
"subcontrol-position:bottom;border:0px solid;"
"border-radius: 2px;}"
"QScrollBar::sub-line:vertical{height:11px;"
"background-color: transparent;subcontrol-position:top;"
"border:0px solid;border-radius: 2px;}"
"QScrollBar::add-page:vertical{background-color: #e1f0fa;"
"border:0px solid;border-radius: 2px;}"
"QScrollBar::sub-page:vertical{background-color: #e1f0fa;"
"border:0px solid;border-radius: 2px;}"
"QScrollBar::up-arrow:vertical{"
"border:0px solid;border-radius: 3px;}"
"QScrollBar::down-arrow:vertical {"
"border:0px solid;border-radius: 3px;}");
void(userweight::*doubleClicked)(QModelIndex pos) = &userweight::listWidgetDoubleClicked;
connect(ui->messageListWidget,&QListWidget::doubleClicked,this,doubleClicked);
connect(ui->userTreeWidget,SIGNAL(itemDoubleClicked(QTreeWidgetItem*,int)), this,SLOT(slotDoubleClickItem(QTreeWidgetItem* ,int)));
m_inform = new inform(*m_sock.get(),m_classNum,m_account);
void(inform::*Touxiang)(string touXiangPath) = &inform::touXiangPath;
connect(userweight::m_inform,Touxiang,this,&userweight::changeTouXiang);
sendOnline();
initUserTreeWidget();
initMessageTreeWidget();
QTimer *timer =new QTimer(this);
connect(timer,SIGNAL(timeout()),this,SLOT(initMessageTreeWidget()));
timer->start(1000);
QTimer *timerOnline =new QTimer(this);
connect(timerOnline,SIGNAL(timeout()),this,SLOT(check