File indexing completed on 2025-02-09 06:04:33

0001 /***************************************************************************
0002  * SPDX-FileCopyrightText: 2022 S. MANKOWSKI stephane@mankowski.fr
0003  * SPDX-FileCopyrightText: 2022 G. DE BURE support@mankowski.fr
0004  * SPDX-License-Identifier: GPL-3.0-or-later
0005  ***************************************************************************/
0006 /** @file
0007  * A dashboard.
0008  *
0009  * @author Stephane MANKOWSKI
0010  */
0011 #include "skgdashboardpluginwidget.h"
0012 
0013 #include <qdom.h>
0014 
0015 #include "skgdocument.h"
0016 #include "skginterfaceplugin.h"
0017 #include "skgmainpanel.h"
0018 #include "skgservices.h"
0019 #include "skgtraces.h"
0020 #include "skgdashboardwidget.h"
0021 
0022 
0023 SKGDashboardPluginWidget::SKGDashboardPluginWidget(QWidget* iParent, SKGDocument* iDocument)
0024     : SKGTabPage(iParent, iDocument), m_widget(nullptr)
0025 {
0026     SKGTRACEINFUNC(1)
0027     auto verticalLayout = new QVBoxLayout(this);
0028     verticalLayout->setSpacing(2);
0029     verticalLayout->setObjectName(QStringLiteral("verticalLayout"));
0030     m_widget = new SKGDashboardWidget(this, iDocument);
0031     verticalLayout->addWidget(m_widget);
0032 }
0033 
0034 SKGDashboardPluginWidget::~SKGDashboardPluginWidget()
0035 {
0036     SKGTRACEINFUNC(1)
0037     m_widget = nullptr;
0038 }
0039 
0040 QString SKGDashboardPluginWidget::getState()
0041 {
0042     SKGTRACEINFUNC(10)
0043     QDomDocument doc(QStringLiteral("SKGML"));
0044     QDomElement root = doc.createElement(QStringLiteral("parameters"));
0045     doc.appendChild(root);
0046 
0047     root.setAttribute(QStringLiteral("zoomPosition"), SKGServices::intToString(zoomPosition()));
0048     root.setAttribute(QStringLiteral("board"), m_widget->getState());
0049     return doc.toString();
0050 }
0051 
0052 void SKGDashboardPluginWidget::setState(const QString& iState)
0053 {
0054     SKGTRACEINFUNC(10)
0055 
0056     QDomDocument doc(QStringLiteral("SKGML"));
0057     doc.setContent(iState);
0058     QDomElement root = doc.documentElement();
0059 
0060     // Compliance with old mode
0061     auto board = root.attribute(QStringLiteral("board"));
0062     if (board.isEmpty()) {
0063         board = iState;
0064     }
0065 
0066     m_widget->setState(board);
0067 
0068     QString zoomPositionS = root.attribute(QStringLiteral("zoomPosition"));
0069     if (zoomPositionS.isEmpty()) {
0070         zoomPositionS = '0';
0071     }
0072     setZoomPosition(SKGServices::stringToInt(zoomPositionS));
0073 }
0074 
0075 QString SKGDashboardPluginWidget::getDefaultStateAttribute()
0076 {
0077     return QStringLiteral("SKGDASHBOARD_DEFAULT_PARAMETERS");
0078 }
0079 
0080 void SKGDashboardPluginWidget::refresh()
0081 {
0082     SKGTRACEINFUNC(1)
0083 }
0084 
0085 QWidget* SKGDashboardPluginWidget::zoomableWidget()
0086 {
0087     return SKGTabPage::zoomableWidget();
0088 }
0089 
0090 QList< QWidget* > SKGDashboardPluginWidget::printableWidgets()
0091 {
0092     return m_widget->printableWidgets();
0093 }