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 }