/
pi_coder
/
ByteMachine
Обзор
Документация
Войти
/
pi_coder
/
ByteMachine
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/status_bar.cpp
95 строк
3 KB
pimenov-and
Добавлены формы настроек узла GeneratNode и строки состояния
21 июл 2026, 20:22
21 июл 2026, 20:22
b503e03
Код
Авторство
О чём код?
//////////////////////////////////////////////////////////////// // ByteMachine // Статус-бар //////////////////////////////////////////////////////////////// #include "status_bar.h" #include "colors.h" #include "project.h" #include <QFont> #include <QPainter> //============================================================== // Конструктор с параметром //============================================================== StatusBar::StatusBar(QWidget *parent) : QStatusBar{parent} { setConnections(); #ifdef Q_OS_WASM QFont font{"Segoe UI", 10}; setFont(font); #endif // Q_OS_WASM } //============================================================== // Деструктор //============================================================== StatusBar::~StatusBar() { } //============================================================== // Функция вызывается при перерисовке //============================================================== void StatusBar::paintEvent(QPaintEvent*) { QPainter painter{this}; #ifdef Q_OS_WASM painter.setFont(font()); #endif // Q_OS_WASM fillBackground(&painter); drawNumberOfNodes(&painter); drawVersionArea(&painter); } //============================================================== // Задание соединений //============================================================== void StatusBar::setConnections() { connect(project(), &Project::sigAddNode, this, [this]() { this->update(); }); connect(project(), &Project::sigRemoveNode, this, [this]() { this->update(); }); } //============================================================== // Заливка фона //============================================================== void StatusBar::fillBackground(QPainter *painter) const { Q_ASSERT(painter != nullptr); painter->fillRect(rect(), Colors::statusBarBackColor(ColorThemes::Light)); } //============================================================== // Вывод количества узлов //============================================================== void StatusBar::drawNumberOfNodes(QPainter *painter) const { Q_ASSERT(painter != nullptr); painter->setPen(Colors::statusBarTextColor(ColorThemes::Light)); constexpr qint32 textFlags = Qt::AlignLeft | Qt::AlignVCenter; const QString text = QString{"%1: %2"}.arg(tr("Number of nodes")). arg(project()->nodeCount()); const QRect textRect{5, 0, width() - 8, height()}; painter->drawText(textRect, textFlags, text); } //============================================================== // Вывод области с брендом //============================================================== void StatusBar::drawVersionArea(QPainter *painter) const { constexpr qint32 areaWidth = 160; const QRect rect{width() - areaWidth, 0, areaWidth, height()}; painter->fillRect(rect, Colors::statusBarVersionAreaBackColor(ColorThemes::Light)); /* constexpr qint32 textFlags = Qt::AlignHCenter | Qt::AlignVCenter; painter->setPen(Colors::statusBarTextColor(ColorThemes::Light)); const QString version = QString{"ByteMachine %1"}.arg(APP_VERSION); painter->drawText(rect, textFlags, version); */ }