File indexing completed on 2024-05-12 03:48:24

0001 /*
0002     File                 : CantorWorksheetView.h
0003     Project              : LabPlot
0004     Description          : View class for CantorWorksheet
0005     --------------------------------------------------------------------
0006     SPDX-FileCopyrightText: 2015 Garvit Khatri <garvitdelhi@gmail.com>
0007     SPDX-FileCopyrightText: 2016-2023 Alexander Semke <alexander.semke@web.de>
0008     SPDX-License-Identifier: GPL-2.0-or-later
0009 */
0010 
0011 #ifndef CANTORWORKSHEETVIEW_H
0012 #define CANTORWORKSHEETVIEW_H
0013 
0014 #include <QWidget>
0015 #ifdef HAVE_CANTOR_LIBS
0016 #include <cantor/session.h>
0017 #endif
0018 
0019 class QActionGroup;
0020 class QMenu;
0021 class QToolBar;
0022 
0023 class CantorWorksheet;
0024 class Column;
0025 
0026 namespace KParts {
0027 class ReadWritePart;
0028 }
0029 
0030 class CantorWorksheetView : public QWidget {
0031     Q_OBJECT
0032 
0033 public:
0034     explicit CantorWorksheetView(CantorWorksheet*);
0035     ~CantorWorksheetView() override;
0036 
0037 public Q_SLOTS:
0038     void createContextMenu(QMenu*);
0039     void fillColumnContextMenu(QMenu*, Column*);
0040     void fillToolBar(QToolBar*);
0041 
0042 private Q_SLOTS:
0043     void triggerAction(QAction*);
0044 
0045 private:
0046     CantorWorksheet* m_worksheet;
0047     KParts::ReadWritePart* m_part{nullptr};
0048 
0049     QActionGroup* m_actionGroup{nullptr};
0050     QAction* m_evaluateEntryAction{nullptr};
0051     QAction* m_removeCurrentEntryAction{nullptr};
0052     QAction* m_restartBackendAction{nullptr};
0053     QAction* m_evaluateWorsheetAction{nullptr};
0054     QAction* m_zoomIn{nullptr};
0055     QAction* m_zoomOut{nullptr};
0056     QAction* m_find{nullptr};
0057     QAction* m_replace{nullptr};
0058     QAction* m_statisticsAction{nullptr};
0059     Column* m_contextMenuColumn{nullptr};
0060 
0061     QMenu* m_addNewMenu{nullptr};
0062     QMenu* m_plotDataMenu{nullptr};
0063     QMenu* m_linearAlgebraMenu{nullptr};
0064     QMenu* m_calculateMenu{nullptr};
0065     QMenu* m_settingsMenu{nullptr};
0066 
0067     void initActions();
0068     void initMenus();
0069 
0070 private Q_SLOTS:
0071     void statusChanged(Cantor::Session::Status);
0072     void plotData(QAction*);
0073     void showStatistics();
0074 };
0075 
0076 #endif // CANTORWORKSHEETVIEW_H