Files
GUI/src/forms/TopBarWidget.cpp

119 lines
4.4 KiB
C++
Raw Normal View History

2021-12-17 09:18:13 +08:00
#include "TopBarWidget.h"
2021-12-17 09:18:13 +08:00
#include <QLabel>
#include <QHBoxLayout>
#include <QDateTime>
#include <QToolButton>
#include "components/RollingMessageWidget.h"
2021-12-17 10:24:05 +08:00
#include "event/EventCenter.h"
#include "errorhandle/GUIErrorLW.h"
2022-01-12 17:06:08 +08:00
#include "json/jsonobject.h"
2024-04-25 15:47:12 +08:00
#include "models/User.h"
2021-12-17 09:18:13 +08:00
TopBarWidget::TopBarWidget(QWidget *parent, Qt::WindowFlags f) : QWidget(parent, f) {
auto layout = new QHBoxLayout(this);
2021-12-17 10:24:05 +08:00
layout->setMargin(0);
auto logo = new QLabel(this);
2021-12-17 09:18:13 +08:00
logo->setObjectName("logo");
layout->addWidget(logo);
auto company = new QLabel(this);
2021-12-17 09:18:13 +08:00
company->setObjectName("company");
layout->addWidget(company);
2021-12-17 10:24:05 +08:00
company->setText(tr("浙江衡玖医疗科技"));
auto spacerLine0 = new QWidget(this);
2021-12-17 10:24:05 +08:00
spacerLine0->setFixedWidth(2);
2022-07-14 14:41:54 +08:00
spacerLine0->setObjectName("verSpaceLine");
2021-12-17 10:24:05 +08:00
layout->addWidget(spacerLine0);
2024-04-25 15:47:12 +08:00
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");
2021-12-17 09:18:13 +08:00
layout->addWidget(lbl_msglogo);
2021-12-17 10:24:05 +08:00
auto widgetMsg = new QWidget(this);
2022-01-12 17:06:08 +08:00
layout->addWidget(widgetMsg,1);
widgetMsg->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Preferred);
layout->addSpacerItem(new QSpacerItem(10, 10, QSizePolicy::Expanding));
auto statusBarWidget = new QWidget(this);
2021-12-17 09:18:13 +08:00
layout->addWidget(statusBarWidget);
auto hosp = new QLabel(this);
2022-01-12 17:06:08 +08:00
hosp->setText(JsonObject::Instance()->institutionName());
auto nowDate = new QLabel(this);
2021-12-17 09:18:13 +08:00
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);
2021-12-17 09:18:13 +08:00
lockIcon->setText("");
auto status_layout = new QHBoxLayout(statusBarWidget);
2021-12-17 09:18:13 +08:00
status_layout->setMargin(0);
2022-01-12 17:06:08 +08:00
2021-12-17 09:18:13 +08:00
status_layout->addWidget(hosp);
status_layout->addWidget(nowDate);
2024-04-25 15:47:12 +08:00
auto spacerLine2 = new QWidget(this);
spacerLine2->setFixedWidth(2);
spacerLine2->setObjectName("verSpaceLine");
layout->addWidget(spacerLine2);
2021-12-17 09:18:13 +08:00
layout->addWidget(lockIcon);
layout->addWidget(linkIcon);
layout->addWidget(readyIcon);
2021-12-17 10:24:05 +08:00
auto l = new QVBoxLayout(widgetMsg);
2021-12-17 09:18:13 +08:00
l->setMargin(0);
auto w = new RollingMessageWidget(this);
2023-09-08 11:42:42 +08:00
// w->setMessageList(GUIErrorLW::getWARNMessages());
2022-07-12 16:13:09 +08:00
w->setObjectName("borderWidget");
2021-12-17 09:18:13 +08:00
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")));
});
2024-04-25 15:47:12 +08:00
connect(EventCenter::Default(), &EventCenter::LoginSuccess, [=](QObject*, QObject* msg) {
username->setText(User::Current()->getUserName());
2021-12-17 10:24:05 +08:00
});
2024-05-06 17:44:21 +08:00
connect(EventCenter::Default(), &EventCenter::CurrentUserNameChanged, [=](QObject*, QObject* msg)
{
username->setText(User::Current()->getUserName());
});
2023-09-20 10:11:07 +08:00
connect(w,&RollingMessageWidget::RollingTimerTriggr,[=](){
2023-09-20 10:11:07 +08:00
auto anony = JsonObject::Instance()->getAnonymousMode();
nowDate->setText(QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss")+(anony?"<strong style=\"color:darkgoldenrod\"> Anonymized</strong>":""));
});
2021-12-17 09:18:13 +08:00
}