/
MaximU
/
application
Обзор
Документация
Войти
/
MaximU
/
application
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
embeddablewidget.cpp
159 строк
4 KB
user
Исправлено условие обновления виджетов.
14 июл 2026, 18:37
14 июл 2026, 18:37
948b1ab
Код
Авторство
О чём код?
#include "embeddablewidget.h" #include <QCloseEvent> #include "workerthread.h" /*! * \brief Конструктор. * \param parent Родительский виджет. * \param updateCodes Список кодов результата выполнения операции, при котором выполняется обновление. */ EmbeddableWidget::EmbeddableWidget(QWidget *parent, QSet<int> updateCodes) : QWidget(parent, Qt::Window) { mUpdateViewCodes = updateCodes; } /*! * \brief Деструктор. */ EmbeddableWidget::~EmbeddableWidget() { } /*! * \brief Вполняется при попытке закрытия программы. Запрашивает разрешение на закрытие виджета. * \param event Событие закрытия. */ void EmbeddableWidget::closeEvent(QCloseEvent *event) { setEmbedded(true); event->ignore(); } /*! * \brief Сохраняет настройки приложения в ini-файле. * \param settings Объект сохранения настроек. */ void EmbeddableWidget::writeSettings(QSettings &settings) { Q_UNUSED(settings) } /*! * \brief Восстанавливает настройки приложения из ini-файла. * \param settings Объект сохранения настроек. */ void EmbeddableWidget::readSettings(QSettings &settings) { Q_UNUSED(settings) } /*! * \brief Сохраняет настройки в ini-файле и вызывет функцию writeSettings производного класса. * \param settings Объект сохранения настроек. */ void EmbeddableWidget::writeSettings1(QSettings &settings) { settings.setValue("embedded", isEmbedded()); setEmbedded(false); settings.setValue("geometry", saveGeometry()); writeSettings(settings); } /*! * \brief Восстанавливает настройки из ini-файла и вызывет функцию readSettings производного класса. * \param settings Объект сохранения настроек. */ void EmbeddableWidget::readSettings1(QSettings &settings) { setEmbedded(false); restoreGeometry(settings.value("geometry").toByteArray()); if (settings.value("embedded", true).toBool()) { setEmbedded(true); } else { show(); } readSettings(settings); } /*! * \brief Устанавливает метку окна. * \param label Метка окна. */ void EmbeddableWidget::setLabel(const QString &label) { mLabel = label; } /*! * \brief Возвращает метку окна. * \return Метка окна. */ QString EmbeddableWidget::label() { return mLabel; } /*! * \brief Выполняет встройку/вынесение окна. * \param embedded Признак встроенности/вынесенности. */ void EmbeddableWidget::setEmbedded(bool embedded) { if (embedded != mEmbedded) { if (embedded) { mWindowStateBeforeEmbedding = windowState(); mGeometryBeforeEmbedding = geometry(); } emit embedMe(embedded); mEmbedded = embedded; if (!mEmbedded) { setGeometry(mGeometryBeforeEmbedding); setWindowState(mWindowStateBeforeEmbedding); show(); } } } /*! * \brief Выполняет вынесение окна. * \param disembed Признак вынесенности. */ void EmbeddableWidget::setDisembedded(bool disembed) { setEmbedded(!disembed); } /*! * \brief Возвращает признак встроенности/вынесенности. * \return Признак встроенности/вынесенности. */ bool EmbeddableWidget::isEmbedded() { return mEmbedded; } /*! * \brief Выполняет обновление отображения при совпадении кода результата операции. * \param results Список кодов результата выполнения операции. */ void EmbeddableWidget::checkUpdateView(const QSet<int> &results) { if (mUpdateViewCodes.intersects(results) || mUpdateViewCodes.isEmpty()) { updateView(results); } }