119 lines
4.4 KiB
C++
119 lines
4.4 KiB
C++
#include "TopBarWidget.h"
|
|
|
|
#include <QLabel>
|
|
#include <QHBoxLayout>
|
|
#include <QDateTime>
|
|
#include <QToolButton>
|
|
|
|
#include "components/RollingMessageWidget.h"
|
|
#include "event/EventCenter.h"
|
|
#include "errorhandle/GUIErrorLW.h"
|
|
#include "json/jsonobject.h"
|
|
#include "models/User.h"
|
|
|
|
TopBarWidget::TopBarWidget(QWidget *parent, Qt::WindowFlags f) : QWidget(parent, f) {
|
|
auto layout = new QHBoxLayout(this);
|
|
layout->setMargin(0);
|
|
auto logo = new QLabel(this);
|
|
logo->setObjectName("logo");
|
|
layout->addWidget(logo);
|
|
auto company = new QLabel(this);
|
|
company->setObjectName("company");
|
|
layout->addWidget(company);
|
|
company->setText(tr("浙江衡玖医疗科技"));
|
|
auto spacerLine0 = new QWidget(this);
|
|
spacerLine0->setFixedWidth(2);
|
|
spacerLine0->setObjectName("verSpaceLine");
|
|
layout->addWidget(spacerLine0);
|
|
auto spacerLine1 = new QWidget(this);
|
|
spacerLine1->setFixedWidth(2);
|
|
spacerLine1->setObjectName("verSpaceLine");
|
|
auto userlogo = new QLabel(this);
|
|
userlogo->setObjectName("userlogo");
|
|
layout->addWidget(userlogo);
|
|
auto username = new QLabel(this);
|
|
username->setObjectName("username");
|
|
layout->addWidget(username);
|
|
layout->addWidget(spacerLine1);
|
|
auto lbl_msglogo = new QLabel(this);
|
|
lbl_msglogo->setObjectName("msglogo");
|
|
layout->addWidget(lbl_msglogo);
|
|
|
|
auto widgetMsg = new QWidget(this);
|
|
layout->addWidget(widgetMsg,1);
|
|
widgetMsg->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Preferred);
|
|
layout->addSpacerItem(new QSpacerItem(10, 10, QSizePolicy::Expanding));
|
|
auto statusBarWidget = new QWidget(this);
|
|
layout->addWidget(statusBarWidget);
|
|
auto hosp = new QLabel(this);
|
|
hosp->setText(JsonObject::Instance()->institutionName());
|
|
auto nowDate = new QLabel(this);
|
|
nowDate->setText(QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss"));
|
|
auto linkIcon = new QLabel(this);
|
|
linkIcon->setObjectName("link");
|
|
QPixmap pixmap(":/icons/link_r.png");
|
|
linkIcon->setPixmap(pixmap);
|
|
connect(EventCenter::Default(), &EventCenter::ReconConnectionUpdated,[linkIcon](QObject*, QObject* msg)
|
|
{
|
|
bool* isConnected = (bool*)msg;
|
|
QPixmap pixmap(*isConnected ? ":/icons/link_g.png" : ":/icons/link_r.png");
|
|
linkIcon->setPixmap(QPixmap(pixmap));
|
|
});
|
|
|
|
auto readyIcon = new QToolButton(this);
|
|
readyIcon->setIcon(QIcon(":/icons/dicom/echo_suc.png"));
|
|
readyIcon->setObjectName("ready");
|
|
connect(readyIcon, &QToolButton::clicked,[=](){
|
|
emit warnBtnClicked();
|
|
});
|
|
connect(EventCenter::Default(), &EventCenter::UsctStateUpdated,[readyIcon](QObject*, QObject* msg)
|
|
{
|
|
bool state = *(bool*)msg;
|
|
QIcon icon(state ? ":/icons/dicom/echo_suc.png" :":/icons/dicom/echo_fail.png" );
|
|
readyIcon->setIcon(icon);
|
|
});
|
|
|
|
auto lockIcon = new QLabel(this);
|
|
lockIcon->setText("");
|
|
auto status_layout = new QHBoxLayout(statusBarWidget);
|
|
status_layout->setMargin(0);
|
|
|
|
status_layout->addWidget(hosp);
|
|
status_layout->addWidget(nowDate);
|
|
|
|
auto spacerLine2 = new QWidget(this);
|
|
spacerLine2->setFixedWidth(2);
|
|
spacerLine2->setObjectName("verSpaceLine");
|
|
layout->addWidget(spacerLine2);
|
|
layout->addWidget(lockIcon);
|
|
layout->addWidget(linkIcon);
|
|
layout->addWidget(readyIcon);
|
|
|
|
|
|
auto l = new QVBoxLayout(widgetMsg);
|
|
l->setMargin(0);
|
|
auto w = new RollingMessageWidget(this);
|
|
|
|
// w->setMessageList(GUIErrorLW::getWARNMessages());
|
|
w->setObjectName("borderWidget");
|
|
l->addWidget(w);
|
|
connect(EventCenter::Default(), &EventCenter::ResponseDeviceTemperature, [=](QObject*, QObject* msg) {
|
|
if (!msg) return;
|
|
QString* s = (QString*)msg;
|
|
lockIcon->setText(QString("%1%2").arg(*s).arg(tr("°C")));
|
|
});
|
|
connect(EventCenter::Default(), &EventCenter::LoginSuccess, [=](QObject*, QObject* msg) {
|
|
username->setText(User::Current()->getUserName());
|
|
});
|
|
|
|
connect(EventCenter::Default(), &EventCenter::CurrentUserNameChanged, [=](QObject*, QObject* msg)
|
|
{
|
|
username->setText(User::Current()->getUserName());
|
|
});
|
|
|
|
connect(w,&RollingMessageWidget::RollingTimerTriggr,[=](){
|
|
auto anony = JsonObject::Instance()->getAnonymousMode();
|
|
nowDate->setText(QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss")+(anony?"<strong style=\"color:darkgoldenrod\"> Anonymized</strong>":""));
|
|
});
|
|
}
|