File indexing completed on 2024-05-05 12:57:18
0001 /* 0002 * Copyright (C) 2010-2015 by Stephen Allewell 0003 * steve.allewell@gmail.com 0004 * 0005 * This program is free software; you can redistribute it and/or modify 0006 * it under the terms of the GNU General Public License as published by 0007 * the Free Software Foundation; either version 2 of the License, or 0008 * (at your option) any later version. 0009 */ 0010 0011 #ifndef Commands_H 0012 #define Commands_H 0013 0014 #include <QPoint> 0015 #include <QRect> 0016 #include <QString> 0017 #include <QUndoCommand> 0018 #include <QVariant> 0019 0020 #include "DocumentPalette.h" 0021 #include "PrinterConfiguration.h" 0022 #include "Stitch.h" 0023 #include "StitchData.h" 0024 0025 class BackgroundImage; 0026 class Document; 0027 class DocumentFloss; 0028 class Editor; 0029 class Floss; 0030 class MainWindow; 0031 class Palette; 0032 class Pattern; 0033 class Preview; 0034 0035 class FilePropertiesCommand : public QUndoCommand 0036 { 0037 public: 0038 explicit FilePropertiesCommand(Document *); 0039 virtual ~FilePropertiesCommand() = default; 0040 0041 virtual void redo() Q_DECL_OVERRIDE; 0042 virtual void undo() Q_DECL_OVERRIDE; 0043 0044 private: 0045 Document *m_document; 0046 }; 0047 0048 class ImportImageCommand : public QUndoCommand 0049 { 0050 public: 0051 explicit ImportImageCommand(Document *); 0052 virtual ~ImportImageCommand() = default; 0053 0054 virtual void redo() Q_DECL_OVERRIDE; 0055 virtual void undo() Q_DECL_OVERRIDE; 0056 0057 private: 0058 Document *m_document; 0059 }; 0060 0061 class PaintStitchesCommand : public QUndoCommand 0062 { 0063 public: 0064 explicit PaintStitchesCommand(Document *); 0065 virtual ~PaintStitchesCommand() = default; 0066 0067 virtual void redo() Q_DECL_OVERRIDE; 0068 virtual void undo() Q_DECL_OVERRIDE; 0069 0070 private: 0071 Document *m_document; 0072 }; 0073 0074 class PaintKnotsCommand : public QUndoCommand 0075 { 0076 public: 0077 explicit PaintKnotsCommand(Document *); 0078 virtual ~PaintKnotsCommand() = default; 0079 0080 virtual void redo() Q_DECL_OVERRIDE; 0081 virtual void undo() Q_DECL_OVERRIDE; 0082 0083 private: 0084 Document *m_document; 0085 }; 0086 0087 class DrawLineCommand : public QUndoCommand 0088 { 0089 public: 0090 explicit DrawLineCommand(Document *); 0091 virtual ~DrawLineCommand() = default; 0092 0093 virtual void redo() Q_DECL_OVERRIDE; 0094 virtual void undo() Q_DECL_OVERRIDE; 0095 0096 private: 0097 Document *m_document; /**< pointer to the associated Document */ 0098 }; 0099 0100 class EraseStitchesCommand : public QUndoCommand 0101 { 0102 public: 0103 explicit EraseStitchesCommand(Document *); 0104 virtual ~EraseStitchesCommand() = default; 0105 0106 virtual void redo() Q_DECL_OVERRIDE; 0107 virtual void undo() Q_DECL_OVERRIDE; 0108 0109 private: 0110 Document *m_document; 0111 }; 0112 0113 class DrawRectangleCommand : public QUndoCommand 0114 { 0115 public: 0116 explicit DrawRectangleCommand(Document *document); 0117 virtual ~DrawRectangleCommand() = default; 0118 0119 virtual void redo() Q_DECL_OVERRIDE; 0120 virtual void undo() Q_DECL_OVERRIDE; 0121 0122 private: 0123 Document *m_document; /**< pointer to the associated Document */ 0124 }; 0125 0126 class FillRectangleCommand : public QUndoCommand 0127 { 0128 public: 0129 explicit FillRectangleCommand(Document *document); 0130 virtual ~FillRectangleCommand() = default; 0131 0132 virtual void redo() Q_DECL_OVERRIDE; 0133 virtual void undo() Q_DECL_OVERRIDE; 0134 0135 private: 0136 Document *m_document; /**< pointer to the associated Document */ 0137 }; 0138 0139 class DrawEllipseCommand : public QUndoCommand 0140 { 0141 public: 0142 explicit DrawEllipseCommand(Document *document); 0143 virtual ~DrawEllipseCommand() = default; 0144 0145 virtual void redo() Q_DECL_OVERRIDE; 0146 virtual void undo() Q_DECL_OVERRIDE; 0147 0148 private: 0149 Document *m_document; /**< pointer to the associated Document */ 0150 }; 0151 0152 class FillEllipseCommand : public QUndoCommand 0153 { 0154 public: 0155 explicit FillEllipseCommand(Document *document); 0156 virtual ~FillEllipseCommand() = default; 0157 0158 virtual void redo() Q_DECL_OVERRIDE; 0159 virtual void undo() Q_DECL_OVERRIDE; 0160 0161 private: 0162 Document *m_document; /**< pointer to the associated Document */ 0163 }; 0164 0165 class FillPolygonCommand : public QUndoCommand 0166 { 0167 public: 0168 explicit FillPolygonCommand(Document *); 0169 virtual ~FillPolygonCommand() = default; 0170 0171 virtual void redo() Q_DECL_OVERRIDE; 0172 virtual void undo() Q_DECL_OVERRIDE; 0173 0174 private: 0175 Document *m_document; 0176 }; 0177 0178 class AddStitchCommand : public QUndoCommand 0179 { 0180 public: 0181 AddStitchCommand(Document *, const QPoint &, Stitch::Type, int, QUndoCommand *); 0182 virtual ~AddStitchCommand(); 0183 0184 virtual void redo() Q_DECL_OVERRIDE; 0185 virtual void undo() Q_DECL_OVERRIDE; 0186 0187 private: 0188 Document *m_document; 0189 QPoint m_cell; 0190 Stitch::Type m_type; 0191 int m_colorIndex; 0192 StitchQueue *m_original; 0193 }; 0194 0195 class DeleteStitchCommand : public QUndoCommand 0196 { 0197 public: 0198 DeleteStitchCommand(Document *, const QPoint &, Stitch::Type, int, QUndoCommand *); 0199 virtual ~DeleteStitchCommand(); 0200 0201 virtual void redo() Q_DECL_OVERRIDE; 0202 virtual void undo() Q_DECL_OVERRIDE; 0203 0204 private: 0205 Document *m_document; 0206 QPoint m_cell; 0207 Stitch::Type m_type; 0208 int m_colorIndex; 0209 StitchQueue *m_original; 0210 }; 0211 0212 class AddBackstitchCommand : public QUndoCommand 0213 { 0214 public: 0215 AddBackstitchCommand(Document *, const QPoint &, const QPoint &, int); 0216 virtual ~AddBackstitchCommand() = default; 0217 0218 virtual void redo() Q_DECL_OVERRIDE; 0219 virtual void undo() Q_DECL_OVERRIDE; 0220 0221 private: 0222 Document *m_document; 0223 QPoint m_start; 0224 QPoint m_end; 0225 int m_colorIndex; 0226 }; 0227 0228 class DeleteBackstitchCommand : public QUndoCommand 0229 { 0230 public: 0231 DeleteBackstitchCommand(Document *, const QPoint &, const QPoint &, int); 0232 virtual ~DeleteBackstitchCommand(); 0233 0234 virtual void redo() Q_DECL_OVERRIDE; 0235 virtual void undo() Q_DECL_OVERRIDE; 0236 0237 private: 0238 Document *m_document; 0239 QPoint m_start; 0240 QPoint m_end; 0241 int m_colorIndex; 0242 Backstitch *m_backstitch; 0243 }; 0244 0245 class AddKnotCommand : public QUndoCommand 0246 { 0247 public: 0248 AddKnotCommand(Document *, const QPoint &, int, QUndoCommand *); 0249 virtual ~AddKnotCommand() = default; 0250 0251 virtual void redo() Q_DECL_OVERRIDE; 0252 virtual void undo() Q_DECL_OVERRIDE; 0253 0254 private: 0255 Document *m_document; 0256 QPoint m_snap; 0257 int m_colorIndex; 0258 }; 0259 0260 class DeleteKnotCommand : public QUndoCommand 0261 { 0262 public: 0263 DeleteKnotCommand(Document *, const QPoint &, int, QUndoCommand *); 0264 virtual ~DeleteKnotCommand(); 0265 0266 virtual void redo() Q_DECL_OVERRIDE; 0267 virtual void undo() Q_DECL_OVERRIDE; 0268 0269 private: 0270 Document *m_document; 0271 QPoint m_snap; 0272 int m_colorIndex; 0273 Knot *m_knot; 0274 }; 0275 0276 class SetPropertyCommand : public QUndoCommand 0277 { 0278 public: 0279 SetPropertyCommand(Document *, const QString &, const QVariant &, QUndoCommand *parent = nullptr); 0280 virtual ~SetPropertyCommand() = default; 0281 0282 virtual void redo() Q_DECL_OVERRIDE; 0283 virtual void undo() Q_DECL_OVERRIDE; 0284 0285 private: 0286 Document *m_document; 0287 QString m_name; 0288 QVariant m_value; 0289 QVariant m_oldValue; 0290 }; 0291 0292 class AddBackgroundImageCommand : public QUndoCommand 0293 { 0294 public: 0295 AddBackgroundImageCommand(Document *, QSharedPointer<BackgroundImage>, MainWindow *); 0296 virtual ~AddBackgroundImageCommand() = default; 0297 0298 virtual void redo() Q_DECL_OVERRIDE; 0299 virtual void undo() Q_DECL_OVERRIDE; 0300 0301 private: 0302 Document *m_document; 0303 QSharedPointer<BackgroundImage> m_backgroundImage; 0304 MainWindow *m_mainWindow; 0305 }; 0306 0307 class FitBackgroundImageCommand : public QUndoCommand 0308 { 0309 public: 0310 FitBackgroundImageCommand(Document *, QSharedPointer<BackgroundImage>, const QRect &); 0311 virtual ~FitBackgroundImageCommand() = default; 0312 0313 virtual void redo() Q_DECL_OVERRIDE; 0314 virtual void undo() Q_DECL_OVERRIDE; 0315 0316 private: 0317 Document *m_document; 0318 QSharedPointer<BackgroundImage> m_backgroundImage; 0319 QRect m_rect; 0320 }; 0321 0322 class ShowBackgroundImageCommand : public QUndoCommand 0323 { 0324 public: 0325 ShowBackgroundImageCommand(Document *, QSharedPointer<BackgroundImage>, bool); 0326 virtual ~ShowBackgroundImageCommand() = default; 0327 0328 virtual void redo() Q_DECL_OVERRIDE; 0329 virtual void undo() Q_DECL_OVERRIDE; 0330 0331 private: 0332 Document *m_document; 0333 QSharedPointer<BackgroundImage> m_backgroundImage; 0334 bool m_visible; 0335 }; 0336 0337 class RemoveBackgroundImageCommand : public QUndoCommand 0338 { 0339 public: 0340 RemoveBackgroundImageCommand(Document *, QSharedPointer<BackgroundImage>, MainWindow *); 0341 virtual ~RemoveBackgroundImageCommand(); 0342 0343 virtual void redo() Q_DECL_OVERRIDE; 0344 virtual void undo() Q_DECL_OVERRIDE; 0345 0346 private: 0347 Document *m_document; 0348 QSharedPointer<BackgroundImage> m_backgroundImage; 0349 MainWindow *m_mainWindow; 0350 }; 0351 0352 class AddDocumentFlossCommand : public QUndoCommand 0353 { 0354 public: 0355 AddDocumentFlossCommand(Document *, int, DocumentFloss *, QUndoCommand *parent = nullptr); 0356 virtual ~AddDocumentFlossCommand() = default; 0357 0358 virtual void redo() Q_DECL_OVERRIDE; 0359 virtual void undo() Q_DECL_OVERRIDE; 0360 0361 private: 0362 Document *m_document; 0363 int m_key; 0364 DocumentFloss *m_documentFloss; 0365 }; 0366 0367 class RemoveDocumentFlossCommand : public QUndoCommand 0368 { 0369 public: 0370 RemoveDocumentFlossCommand(Document *, int, DocumentFloss *, QUndoCommand *parent = nullptr); 0371 virtual ~RemoveDocumentFlossCommand(); 0372 0373 virtual void redo() Q_DECL_OVERRIDE; 0374 virtual void undo() Q_DECL_OVERRIDE; 0375 0376 private: 0377 Document *m_document; 0378 int m_key; 0379 DocumentFloss *m_documentFloss; 0380 }; 0381 0382 class ReplaceDocumentFlossCommand : public QUndoCommand 0383 { 0384 public: 0385 ReplaceDocumentFlossCommand(Document *, int, DocumentFloss *); 0386 virtual ~ReplaceDocumentFlossCommand(); 0387 0388 virtual void redo() Q_DECL_OVERRIDE; 0389 virtual void undo() Q_DECL_OVERRIDE; 0390 0391 private: 0392 Document *m_document; 0393 int m_key; 0394 DocumentFloss *m_documentFloss; 0395 }; 0396 0397 class ClearUnusedFlossesCommand : public QUndoCommand 0398 { 0399 public: 0400 explicit ClearUnusedFlossesCommand(Document *); 0401 virtual ~ClearUnusedFlossesCommand() = default; 0402 0403 virtual void redo() Q_DECL_OVERRIDE; 0404 virtual void undo() Q_DECL_OVERRIDE; 0405 0406 private: 0407 Document *m_document; 0408 }; 0409 0410 class ResizeDocumentCommand : public QUndoCommand 0411 { 0412 public: 0413 ResizeDocumentCommand(Document *, int, int, QUndoCommand *parent = nullptr); 0414 virtual ~ResizeDocumentCommand() = default; 0415 0416 void redo() Q_DECL_OVERRIDE; 0417 void undo() Q_DECL_OVERRIDE; 0418 0419 private: 0420 Document *m_document; 0421 int m_width; 0422 int m_height; 0423 int m_originalWidth; 0424 int m_originalHeight; 0425 int m_xOffset; 0426 int m_yOffset; 0427 QPoint m_snapOffset; 0428 }; 0429 0430 class CropToPatternCommand : public QUndoCommand 0431 { 0432 public: 0433 explicit CropToPatternCommand(Document *); 0434 virtual ~CropToPatternCommand() = default; 0435 0436 void redo() Q_DECL_OVERRIDE; 0437 void undo() Q_DECL_OVERRIDE; 0438 0439 private: 0440 Document *m_document; 0441 unsigned m_originalWidth; 0442 unsigned m_originalHeight; 0443 int m_xOffset; 0444 int m_yOffset; 0445 QRect m_extents; 0446 }; 0447 0448 class CropToSelectionCommand : public QUndoCommand 0449 { 0450 public: 0451 CropToSelectionCommand(Document *, const QRect &); 0452 virtual ~CropToSelectionCommand() = default; 0453 0454 void redo() Q_DECL_OVERRIDE; 0455 void undo() Q_DECL_OVERRIDE; 0456 0457 private: 0458 Document *m_document; 0459 QRect m_selectionArea; 0460 QByteArray m_originalPattern; 0461 }; 0462 0463 class InsertColumnsCommand : public QUndoCommand 0464 { 0465 public: 0466 InsertColumnsCommand(Document *, const QRect &); 0467 virtual ~InsertColumnsCommand() = default; 0468 0469 void redo() Q_DECL_OVERRIDE; 0470 void undo() Q_DECL_OVERRIDE; 0471 0472 private: 0473 Document *m_document; 0474 QRect m_selectionArea; 0475 }; 0476 0477 class InsertRowsCommand : public QUndoCommand 0478 { 0479 public: 0480 InsertRowsCommand(Document *, const QRect &); 0481 virtual ~InsertRowsCommand() = default; 0482 0483 void redo() Q_DECL_OVERRIDE; 0484 void undo() Q_DECL_OVERRIDE; 0485 0486 private: 0487 Document *m_document; 0488 QRect m_selectionArea; 0489 }; 0490 0491 class ExtendPatternCommand : public QUndoCommand 0492 { 0493 public: 0494 ExtendPatternCommand(Document *, int, int, int, int); 0495 virtual ~ExtendPatternCommand() = default; 0496 0497 void redo() Q_DECL_OVERRIDE; 0498 void undo() Q_DECL_OVERRIDE; 0499 0500 private: 0501 Document *m_document; 0502 int m_top; 0503 int m_left; 0504 int m_right; 0505 int m_bottom; 0506 }; 0507 0508 class CentrePatternCommand : public QUndoCommand 0509 { 0510 public: 0511 explicit CentrePatternCommand(Document *); 0512 virtual ~CentrePatternCommand() = default; 0513 0514 void redo() Q_DECL_OVERRIDE; 0515 void undo() Q_DECL_OVERRIDE; 0516 0517 private: 0518 Document *m_document; 0519 int m_xOffset; 0520 int m_yOffset; 0521 }; 0522 0523 class UpdateDocumentPaletteCommand : public QUndoCommand 0524 { 0525 public: 0526 UpdateDocumentPaletteCommand(Document *, const DocumentPalette &); 0527 virtual ~UpdateDocumentPaletteCommand() = default; 0528 0529 void redo() Q_DECL_OVERRIDE; 0530 void undo() Q_DECL_OVERRIDE; 0531 0532 private: 0533 Document *m_document; 0534 DocumentPalette m_palette; 0535 }; 0536 0537 class ChangeSchemeCommand : public QUndoCommand 0538 { 0539 public: 0540 ChangeSchemeCommand(Document *, const QString &, QUndoCommand *parent = nullptr); 0541 virtual ~ChangeSchemeCommand() = default; 0542 0543 void redo() Q_DECL_OVERRIDE; 0544 void undo() Q_DECL_OVERRIDE; 0545 0546 private: 0547 Document *m_document; 0548 QString m_schemeName; 0549 QByteArray m_originalPalette; 0550 }; 0551 0552 class EditorReadDocumentSettingsCommand : public QUndoCommand 0553 { 0554 public: 0555 explicit EditorReadDocumentSettingsCommand(Editor *); 0556 virtual ~EditorReadDocumentSettingsCommand() = default; 0557 0558 void redo() Q_DECL_OVERRIDE; 0559 void undo() Q_DECL_OVERRIDE; 0560 0561 private: 0562 Editor *m_editor; 0563 }; 0564 0565 class PreviewReadDocumentSettingsCommand : public QUndoCommand 0566 { 0567 public: 0568 explicit PreviewReadDocumentSettingsCommand(Preview *); 0569 virtual ~PreviewReadDocumentSettingsCommand() = default; 0570 0571 void redo() Q_DECL_OVERRIDE; 0572 void undo() Q_DECL_OVERRIDE; 0573 0574 private: 0575 Preview *m_preview; 0576 }; 0577 0578 class PaletteReplaceColorCommand : public QUndoCommand 0579 { 0580 public: 0581 PaletteReplaceColorCommand(Document *document, int, int); 0582 virtual ~PaletteReplaceColorCommand() = default; 0583 0584 void redo() Q_DECL_OVERRIDE; 0585 void undo() Q_DECL_OVERRIDE; 0586 0587 private: 0588 Document *m_document; 0589 int m_originalIndex; 0590 int m_replacementIndex; 0591 QList<Stitch *> m_stitches; 0592 QList<Backstitch *> m_backstitches; 0593 QList<Knot *> m_knots; 0594 }; 0595 0596 class PaletteSwapColorCommand : public QUndoCommand 0597 { 0598 public: 0599 PaletteSwapColorCommand(Document *, int, int); 0600 virtual ~PaletteSwapColorCommand() = default; 0601 0602 void redo() Q_DECL_OVERRIDE; 0603 void undo() Q_DECL_OVERRIDE; 0604 0605 private: 0606 Document *m_document; 0607 int m_originalIndex; 0608 int m_swappedIndex; 0609 }; 0610 0611 class UpdatePrinterConfigurationCommand : public QUndoCommand 0612 { 0613 public: 0614 UpdatePrinterConfigurationCommand(Document *, const PrinterConfiguration &); 0615 virtual ~UpdatePrinterConfigurationCommand() = default; 0616 0617 void redo() Q_DECL_OVERRIDE; 0618 void undo() Q_DECL_OVERRIDE; 0619 0620 private: 0621 Document *m_document; 0622 PrinterConfiguration m_printerConfiguration; 0623 }; 0624 0625 class EditCutCommand : public QUndoCommand 0626 { 0627 public: 0628 EditCutCommand(Document *document, 0629 const QRect &selectionArea, 0630 int colorMask, 0631 const QList<Stitch::Type> &stitchMasks, 0632 bool excludeBackstitches, 0633 bool excludeKnots); 0634 virtual ~EditCutCommand(); 0635 0636 void redo() Q_DECL_OVERRIDE; 0637 void undo() Q_DECL_OVERRIDE; 0638 0639 private: 0640 Document *m_document; 0641 QRect m_selectionArea; 0642 int m_colorMask; 0643 QList<Stitch::Type> m_stitchMasks; 0644 bool m_excludeBackstitches; 0645 bool m_excludeKnots; 0646 0647 Pattern *m_originalPattern; 0648 }; 0649 0650 class EditPasteCommand : public QUndoCommand 0651 { 0652 public: 0653 EditPasteCommand(Document *document, Pattern *pattern, const QPoint &cell, bool merge, const QString &); 0654 virtual ~EditPasteCommand() = default; 0655 0656 void redo() Q_DECL_OVERRIDE; 0657 void undo() Q_DECL_OVERRIDE; 0658 0659 private: 0660 Document *m_document; 0661 Pattern *m_pastePattern; 0662 QPoint m_cell; 0663 bool m_merge; 0664 0665 QByteArray m_originalPattern; 0666 }; 0667 0668 class MirrorSelectionCommand : public QUndoCommand 0669 { 0670 public: 0671 MirrorSelectionCommand(Document *, 0672 const QRect &, 0673 int, 0674 const QList<Stitch::Type> &, 0675 bool, 0676 bool, 0677 Qt::Orientation, 0678 bool, 0679 const QByteArray &, 0680 Pattern *, 0681 const QPoint &, 0682 bool merge); 0683 virtual ~MirrorSelectionCommand(); 0684 0685 virtual void redo() Q_DECL_OVERRIDE; 0686 virtual void undo() Q_DECL_OVERRIDE; 0687 0688 private: 0689 Document *m_document; 0690 QRect m_selectionArea; 0691 int m_colorMask; 0692 QList<Stitch::Type> m_stitchMasks; 0693 bool m_excludeBackstitches; 0694 bool m_excludeKnots; 0695 Qt::Orientation m_orientation; 0696 bool m_copies; 0697 QByteArray m_originalPatternData; 0698 Pattern *m_invertedPattern; 0699 QPoint m_pasteCell; 0700 bool m_merge; 0701 }; 0702 0703 class RotateSelectionCommand : public QUndoCommand 0704 { 0705 public: 0706 RotateSelectionCommand(Document *, 0707 const QRect &, 0708 int, 0709 const QList<Stitch::Type> &, 0710 bool, 0711 bool, 0712 StitchData::Rotation, 0713 bool, 0714 const QByteArray &, 0715 Pattern *, 0716 const QPoint &, 0717 bool); 0718 virtual ~RotateSelectionCommand(); 0719 0720 void redo() Q_DECL_OVERRIDE; 0721 void undo() Q_DECL_OVERRIDE; 0722 0723 private: 0724 Document *m_document; 0725 QRect m_selectionArea; 0726 int m_colorMask; 0727 QList<Stitch::Type> m_stitchMasks; 0728 bool m_excludeBackstitches; 0729 bool m_excludeKnots; 0730 StitchData::Rotation m_rotation; 0731 bool m_copies; 0732 QByteArray m_originalPatternData; 0733 Pattern *m_rotatedPattern; 0734 QPoint m_pasteCell; 0735 bool m_merge; 0736 }; 0737 0738 class AlphabetCommand : public QUndoCommand 0739 { 0740 public: 0741 explicit AlphabetCommand(Document *); 0742 virtual ~AlphabetCommand(); 0743 0744 void redo() Q_DECL_OVERRIDE; 0745 void undo() Q_DECL_OVERRIDE; 0746 0747 void push(QUndoCommand *); 0748 QUndoCommand *pop(); 0749 0750 int childCount() const; 0751 0752 private: 0753 Document *m_document; 0754 QList<QUndoCommand *> m_children; 0755 }; 0756 0757 class ConfigurationCommand : public QUndoCommand 0758 { 0759 public: 0760 explicit ConfigurationCommand(MainWindow *mainWindow); 0761 virtual ~ConfigurationCommand() = default; 0762 0763 void redo() Q_DECL_OVERRIDE; 0764 void undo() Q_DECL_OVERRIDE; 0765 0766 private: 0767 MainWindow *m_mainWindow; 0768 }; 0769 0770 #endif // Commands_H