fe0b5835000ea02566874cbad4094a86a4d08526
[pierogi] / macros / pirmacro.h
1 #ifndef PIRMACRO_H
2 #define PIRMACRO_H
3
4 #include <QObject>
5 #include <QTreeWidgetItem>
6 #include <QString>
7
8 class PIRMacroCommandItem;
9 class QListWidget;
10
11 #include <list>
12 typedef std::list<PIRMacroCommandItem *> CommandSequence;
13
14 class PIRMacro: public QObject, public QTreeWidgetItem
15 {
16   Q_OBJECT
17
18 public:
19   PIRMacro(
20     QTreeWidgetItem *parent,
21     QString n,
22     char k);
23
24   QString getName();
25
26   char getKeyMapping();
27
28   void appendCommand(
29     PIRMacroCommandItem *c);
30
31   void populateList(
32     QListWidget *lw);
33
34   bool executeMacro();
35
36 signals:
37   void macroCompleted();
38
39 private slots:
40   void startNextCommand();
41
42 private:
43   QString name;
44   char keyMapping;
45   CommandSequence commands;
46   CommandSequence::iterator currentCommand;
47
48   static bool macroRunning; // only one macro can run at a time!
49 };
50
51 #endif // PIRMACRO_H