File indexing completed on 2024-05-12 03:47:46
0001 /* 0002 File : SignallingUndoCommand.h 0003 Project : SciDAVis / LabPlot 0004 Description : An undo command calling a method/signal/slot on a 0005 QObject on redo/undo. 0006 -------------------------------------------------------------------- 0007 SPDX-FileCopyrightText: 2010 Knut Franke <Knut.Franke*gmx.net (use @ for *)> 0008 SPDX-License-Identifier: GPL-2.0-or-later 0009 */ 0010 0011 #ifndef SIGNALLING_UNDO_COMMAND_H 0012 #define SIGNALLING_UNDO_COMMAND_H 0013 0014 #include <QByteArray> 0015 #include <QUndoCommand> 0016 0017 class SignallingUndoCommand : public QUndoCommand { 0018 public: 0019 SignallingUndoCommand(const QString& text, 0020 QObject* receiver, 0021 const char* redoMethod, 0022 const char* undoMethod, 0023 QGenericArgument val0 = QGenericArgument(), 0024 QGenericArgument val1 = QGenericArgument(), 0025 QGenericArgument val2 = QGenericArgument(), 0026 QGenericArgument val3 = QGenericArgument()); 0027 ~SignallingUndoCommand() override; 0028 0029 void redo() override; 0030 void undo() override; 0031 0032 private: 0033 QGenericArgument arg(int index); 0034 QByteArray m_redo, m_undo; 0035 QObject* m_receiver; 0036 int m_argument_count; 0037 int* m_argument_types; 0038 void** m_argument_data; 0039 }; 0040 0041 #endif // ifndef SIGNALLING_UNDO_COMMAND_H