File indexing completed on 2025-09-14 03:43:08

0001 /*
0002     File                 : MatrixDock.h
0003     Project              : LabPlot
0004     Description          : widget for matrix properties
0005     --------------------------------------------------------------------
0006     SPDX-FileCopyrightText: 2015 Alexander Semke <alexander.semke@web.de>
0007 
0008     SPDX-License-Identifier: GPL-2.0-or-later
0009 */
0010 
0011 #ifndef MATRIXDOCK_H
0012 #define MATRIXDOCK_H
0013 
0014 #include "backend/matrix/Matrix.h"
0015 #include "kdefrontend/dockwidgets/BaseDock.h"
0016 #include "ui_matrixdock.h"
0017 
0018 class Matrix;
0019 class KConfig;
0020 
0021 class MatrixDock : public BaseDock {
0022     Q_OBJECT
0023 
0024 public:
0025     explicit MatrixDock(QWidget*);
0026     void setMatrices(QList<Matrix*>);
0027 
0028 private:
0029     Ui::MatrixDock ui;
0030     QList<Matrix*> m_matrixList;
0031     Matrix* m_matrix{nullptr};
0032 
0033     void load();
0034     void loadConfig(KConfig&);
0035 
0036 private Q_SLOTS:
0037     // SLOTs for changes triggered in MatrixDock
0038 
0039     void rowCountChanged(int);
0040     void columnCountChanged(int);
0041 
0042     void xStartChanged(const QString&);
0043     void xEndChanged(const QString&);
0044     void yStartChanged(const QString&);
0045     void yEndChanged(const QString&);
0046 
0047     void numericFormatChanged(int);
0048     void precisionChanged(int);
0049     void headerFormatChanged(int);
0050 
0051     // SLOTs for changes triggered in Matrix
0052     void matrixXStartChanged(double);
0053     void matrixXEndChanged(double);
0054     void matrixYStartChanged(double);
0055     void matrixYEndChanged(double);
0056 
0057     void matrixRowCountChanged(int);
0058     void matrixColumnCountChanged(int);
0059 
0060     void matrixNumericFormatChanged(char);
0061     void matrixPrecisionChanged(int);
0062     void matrixHeaderFormatChanged(Matrix::HeaderFormat);
0063 
0064     // save/load template
0065     void loadConfigFromTemplate(KConfig&);
0066     void saveConfigAsTemplate(KConfig&);
0067 
0068 Q_SIGNALS:
0069     void info(const QString&);
0070 };
0071 
0072 #endif // MATRIXDOCK_H