1 #include "pirmacromanager.h"
3 #include "pirmacropack.h"
4 #include "pirreversemultitap.h"
6 #include "pirmacrocommanditem.h"
7 #include "mainwindow.h"
12 PIRMacroManager::PIRMacroManager(
16 keyboardController(0),
20 userPack = new PIRMacroPack("User Defined Macros");
21 multitapPack = new PIRReverseMultitap(mw);
25 // For testing, set the multitap pack as the keyboard controller:
26 // keyboardController = multitapPack;
28 // And more testing, userpack as button controller:
29 // buttonsController = userPack;
33 PIRMacroManager::~PIRMacroManager()
35 // The UI currently owns the macro packs...
37 // delete multitapPack;
41 PIRMacroPack *PIRMacroManager::getUserPack()
47 PIRMacroPack *PIRMacroManager::getMultitapPack()
53 void PIRMacroManager::setKeyboardController(
56 keyboardController = pack;
60 void PIRMacroManager::setButtonsController(
63 buttonsController = pack;
67 void PIRMacroManager::handleKeypress(
70 if (keyboardController)
72 keyboardController->executeKey(key);
76 executeStandardKey(key);
81 bool PIRMacroManager::hasMacroButton(
82 unsigned int buttonID)
84 if (buttonsController)
85 return buttonsController->hasButton(buttonID);
91 QString PIRMacroManager::getMacroButtonText(
92 unsigned int buttonID)
94 if (buttonsController)
95 return buttonsController->buttonText(buttonID);
97 return "No Macro Found";
101 void PIRMacroManager::executeMacroButton(
102 unsigned int buttonID)
104 if (buttonsController)
105 buttonsController->executeButton(buttonID);
109 void PIRMacroManager::storeSettings()
111 if (userPack) userPack->storeSettings();
115 void PIRMacroManager::retrieveSettings()
117 // Pull in any user-defined macros:
118 QSettings settings("pietrzak.org", "Pierogi");
119 int size = settings.beginReadArray("userMacros");
123 unsigned int macroButtonID;
125 PIRMacroCommandItem *macroCommand;
129 unsigned int keysetID;
130 QString commandKeysetName;
131 QString commandKeysetMakeStr;
132 QString commandKeysetDisplayName;
133 PIRKeyName commandKeyID;
134 unsigned int commandPause;
138 settings.setArrayIndex(index);
139 macroName = settings.value("macroName").toString();
140 macroKey = settings.value("macroKey").toInt();
141 macroButtonID = settings.value("macroButtonID").toInt();
143 macro = new PIRMacro(
144 userPack, macroName, macroKey, macroButtonID, mainWindow);
147 commandName = "commandType";
148 commandName.append(QString::number(commandIndex));
149 while (settings.contains(commandName))
151 commandType = settings.value(commandName).toInt();
152 switch(CommandItemType(commandType))
154 case KeysetCommand_Type:
155 commandName = "commandKeysetName";
156 commandName.append(QString::number(commandIndex));
157 commandKeysetName = settings.value(commandName).toString();
159 commandName = "commandKeysetMake";
160 commandName.append(QString::number(commandIndex));
161 commandKeysetMakeStr = settings.value(commandName).toString();
163 commandName = "commandKeysetDisplayName";
164 commandName.append(QString::number(commandIndex));
165 commandKeysetDisplayName = settings.value(commandName).toString();
167 if (mainWindow->findKeysetID(
168 commandKeysetMakeStr,
172 macroCommand = new PIRKeysetCommandItem(
173 commandKeysetDisplayName,
177 macro->appendCommand(macroCommand);
182 case KeyCommand_Type:
183 commandName = "commandKeyID";
184 commandName.append(QString::number(commandIndex));
185 commandKeyID = PIRKeyName(settings.value(commandName).toInt());
187 macroCommand = new PIRKeyCommandItem(commandKeyID, mainWindow);
189 macro->appendCommand(macroCommand);
193 case PauseCommand_Type:
194 commandName = "commandPause";
195 commandName.append(QString::number(commandIndex));
196 commandPause = settings.value(commandName).toInt();
198 macroCommand = new PIRPauseCommandItem(commandPause);
200 macro->appendCommand(macroCommand);
209 commandName = "commandType";
210 commandName.append(QString::number(commandIndex));
220 // This needs to be done differently!!!
221 void PIRMacroManager::setKbdFocus(
226 keyboardController = userPack;
230 keyboardController = multitapPack;
235 void PIRMacroManager::setBtnFocus(
240 buttonsController = userPack;
244 buttonsController = multitapPack;
249 void PIRMacroManager::executeStandardKey(
255 mainWindow->switchToTab(0);
259 mainWindow->switchToTab(1);
263 mainWindow->switchToTab(2);
267 mainWindow->switchToTab(3);
271 mainWindow->switchToTab(4);
275 mainWindow->switchToTab(5);
279 mainWindow->switchToTab(6);
283 mainWindow->switchToTab(7);
287 mainWindow->switchToTab(8);
291 mainWindow->switchToTab(9);