Revision control

++ // Copyright (C) 2016 The Qt Company Ltd.
++ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
++
++ #ifndef SPREADSHEET_H
++ #define SPREADSHEET_H
++
++ #include <QMainWindow>
++
++ QT_BEGIN_NAMESPACE
++ class QAction;
++ class QLabel;
++ class QLineEdit;
++ class QToolBar;
++ class QTableWidgetItem;
++ class QTableWidget;
++ QT_END_NAMESPACE
++
++ class SpreadSheet : public QMainWindow
++ {
++ Q_OBJECT
++ public:
++ SpreadSheet(int rows, int cols, QWidget *parent = nullptr);
++
++ public slots:
++ void updateStatus(QTableWidgetItem *item);
++ void updateColor(QTableWidgetItem *item);
++ void updateLineEdit(QTableWidgetItem *item);
++ void returnPressed();
++ void selectColor();
++ void selectFont();
++ void clear();
++ void showAbout();
++
++ void print();
++
++ void actionSum();
++ void actionSubtract();
++ void actionAdd();
++ void actionMultiply();
++ void actionDivide();
++
++ protected:
++ void setupContextMenu();
++ void setupContents();
++
++ void setupMenuBar();
++ void createActions();
++
++ void actionMath_helper(const QString &title, const QString &op);
++ bool runInputDialog(const QString &title,
++ const QString &c1Text,
++ const QString &c2Text,
++ const QString &opText,
++ const QString &outText,
++ QString *cell1, QString *cell2, QString *outCell);
++ private:
++ QToolBar *toolBar;
++ QAction *colorAction;
++ QAction *fontAction;
++ QAction *firstSeparator;
++ QAction *cell_sumAction;
++ QAction *cell_addAction;
++ QAction *cell_subAction;
++ QAction *cell_mulAction;
++ QAction *cell_divAction;
++ QAction *secondSeparator;
++ QAction *clearAction;
++ QAction *aboutSpreadSheet;
++ QAction *exitAction;
++
++ QAction *printAction;
++
++ QLabel *cellLabel;
++ QTableWidget *table;
++ QLineEdit *formulaInput;
++
++ };
++
++ void decode_pos(const QString &pos, int *row, int *col);
++ QString encode_pos(int row, int col);
++
++
++ #endif // SPREADSHEET_H
++