File indexing completed on 2024-06-02 03:49:22

0001 /*
0002     File                 : SpreadsheetDock.h
0003     Project              : LabPlot
0004     Description          : widget for spreadsheet properties
0005     --------------------------------------------------------------------
0006     SPDX-FileCopyrightText: 2010-2015 Alexander Semke <alexander.semke@web.de>
0007     SPDX-FileCopyrightText: 2012-2013 Stefan Gerlach <stefan.gerlach@uni-konstanz.de>
0008 
0009     SPDX-License-Identifier: GPL-2.0-or-later
0010 */
0011 
0012 #ifndef SPREADSHEETDOCK_H
0013 #define SPREADSHEETDOCK_H
0014 #include "backend/core/AspectTreeModel.h"
0015 #include "kdefrontend/dockwidgets/BaseDock.h"
0016 #include "ui_spreadsheetdock.h"
0017 
0018 class KConfig;
0019 class Spreadsheet;
0020 class AbstractAspect;
0021 class AspectTreeModel;
0022 
0023 class SpreadsheetDock : public BaseDock {
0024     Q_OBJECT
0025 
0026 public:
0027     explicit SpreadsheetDock(QWidget*);
0028     void setSpreadsheets(QList<Spreadsheet*>);
0029 
0030 private:
0031     Ui::SpreadsheetDock ui;
0032     QList<Spreadsheet*> m_spreadsheetList;
0033     Spreadsheet* m_spreadsheet{nullptr};
0034 
0035     void load();
0036     void loadConfig(KConfig&);
0037 
0038 private Q_SLOTS:
0039     // SLOTs for changes triggered in SpreadsheetDock
0040     void rowCountChanged(int);
0041     void columnCountChanged(int);
0042     void commentsShownChanged(bool);
0043     void linkingChanged(bool);
0044     void linkedSpreadsheetChanged(const QModelIndex& index);
0045 
0046     // SLOTs for changes triggered in Spreadsheet
0047     void spreadsheetRowCountChanged(int);
0048     void spreadsheetColumnCountChanged(int);
0049     void spreadsheetShowCommentsChanged(bool);
0050     void spreadsheetLinkingChanged(bool);
0051     void spreadsheetLinkedSpreadsheetChanged(const Spreadsheet*);
0052 
0053     // save/load template
0054     void loadConfigFromTemplate(KConfig&);
0055     void saveConfigAsTemplate(KConfig&);
0056 
0057 Q_SIGNALS:
0058     void info(const QString&);
0059 
0060     friend class SpreadsheetTest;
0061 };
0062 
0063 #endif // SPREADSHEETDOCK_H