File indexing completed on 2024-05-12 03:47:26
0001 /* 0002 File : abstractcolumncommands.h 0003 Project : LabPlot 0004 Description : Commands to be called by AbstractColumn to modify AbstractColumnPrivate 0005 -------------------------------------------------------------------- 0006 SPDX-FileCopyrightText: 2007-2009 Tilman Benkert <thzs@gmx.net> 0007 SPDX-FileCopyrightText: 2010 Knut Franke <knut.franke@gmx.de> 0008 SPDX-FileCopyrightText: 2014-2021 Alexander Semke <alexander.semke@web.de> 0009 SPDX-License-Identifier: GPL-2.0-or-later 0010 */ 0011 0012 #ifndef ABSTRACTCOLUMNCOMMANDS_H 0013 #define ABSTRACTCOLUMNCOMMANDS_H 0014 0015 #include "AbstractColumnPrivate.h" 0016 #include <QUndoCommand> 0017 0018 class AbstractColumnClearMasksCmd : public QUndoCommand { 0019 public: 0020 explicit AbstractColumnClearMasksCmd(AbstractColumnPrivate*, QUndoCommand* parent = nullptr); 0021 ~AbstractColumnClearMasksCmd() override; 0022 0023 void redo() override; 0024 void undo() override; 0025 void finalize() const; 0026 0027 private: 0028 AbstractColumnPrivate* m_col; 0029 IntervalAttribute<bool> m_masking; 0030 bool m_copied; 0031 }; 0032 0033 class AbstractColumnSetMaskedCmd : public QUndoCommand { 0034 public: 0035 explicit AbstractColumnSetMaskedCmd(AbstractColumnPrivate*, const Interval<int>& interval, bool masked, QUndoCommand* parent = nullptr); 0036 ~AbstractColumnSetMaskedCmd() override; 0037 0038 void redo() override; 0039 void undo() override; 0040 void finalize() const; 0041 0042 private: 0043 AbstractColumnPrivate* m_col; 0044 Interval<int> m_interval; 0045 bool m_masked; 0046 IntervalAttribute<bool> m_masking; 0047 bool m_copied; 0048 }; 0049 0050 class AbstractColumnInsertRowsCmd : public QUndoCommand { 0051 public: 0052 explicit AbstractColumnInsertRowsCmd(AbstractColumn*, int before, int count, QUndoCommand* parent = nullptr); 0053 ~AbstractColumnInsertRowsCmd() override; 0054 0055 void redo() override; 0056 void undo() override; 0057 0058 protected: 0059 AbstractColumnPrivate* m_col; 0060 int m_before; 0061 int m_count; 0062 }; 0063 0064 class AbstractColumnRemoveRowsCmd : public QUndoCommand { 0065 public: 0066 explicit AbstractColumnRemoveRowsCmd(AbstractColumn* col, int first, int count, QUndoCommand* parent = nullptr); 0067 ~AbstractColumnRemoveRowsCmd() override; 0068 0069 void redo() override; 0070 void undo() override; 0071 0072 protected: 0073 AbstractColumnPrivate* m_col; 0074 int m_first; 0075 int m_count; 0076 IntervalAttribute<bool> m_masking; 0077 }; 0078 0079 class AbstractColumnSetHeatmapFormatCmd : public QUndoCommand { 0080 public: 0081 explicit AbstractColumnSetHeatmapFormatCmd(AbstractColumnPrivate*, const AbstractColumn::HeatmapFormat&, QUndoCommand* parent = nullptr); 0082 ~AbstractColumnSetHeatmapFormatCmd() override; 0083 0084 void redo() override; 0085 void undo() override; 0086 0087 private: 0088 AbstractColumnPrivate* m_col; 0089 AbstractColumn::HeatmapFormat m_format; 0090 }; 0091 0092 class AbstractColumnRemoveHeatmapFormatCmd : public QUndoCommand { 0093 public: 0094 explicit AbstractColumnRemoveHeatmapFormatCmd(AbstractColumnPrivate*, QUndoCommand* parent = nullptr); 0095 ~AbstractColumnRemoveHeatmapFormatCmd() override; 0096 0097 void redo() override; 0098 void undo() override; 0099 0100 private: 0101 AbstractColumnPrivate* m_col; 0102 AbstractColumn::HeatmapFormat m_format; 0103 }; 0104 0105 #endif // ifndef ABSTRACTCOLUMNCOMMANDS_H