Mercurial > hg > svgui
comparison widgets/CommandHistory.cpp @ 502:73a58a4dfebd
* Add vestigial Activity Log
| author | Chris Cannam | 
|---|---|
| date | Tue, 24 Feb 2009 14:01:42 +0000 | 
| parents | 80e279e4f9fe | 
| children | 133b378d8efe | 
   comparison
  equal
  deleted
  inserted
  replaced
| 501:08e1ccfe289c | 502:73a58a4dfebd | 
|---|---|
| 45 m_menuLimit(15), | 45 m_menuLimit(15), | 
| 46 m_savedAt(0), | 46 m_savedAt(0), | 
| 47 m_currentCompound(0), | 47 m_currentCompound(0), | 
| 48 m_executeCompound(false), | 48 m_executeCompound(false), | 
| 49 m_currentBundle(0), | 49 m_currentBundle(0), | 
| 50 m_bundling(false), | |
| 50 m_bundleTimer(0), | 51 m_bundleTimer(0), | 
| 51 m_bundleTimeout(5000) | 52 m_bundleTimeout(3000) | 
| 52 { | 53 { | 
| 53 m_undoAction = new QAction(QIcon(":/icons/undo.png"), tr("&Undo"), this); | 54 m_undoAction = new QAction(QIcon(":/icons/undo.png"), tr("&Undo"), this); | 
| 54 m_undoAction->setShortcut(tr("Ctrl+Z")); | 55 m_undoAction->setShortcut(tr("Ctrl+Z")); | 
| 55 m_undoAction->setStatusTip(tr("Undo the last editing operation")); | 56 m_undoAction->setStatusTip(tr("Undo the last editing operation")); | 
| 56 connect(m_undoAction, SIGNAL(triggered()), this, SLOT(undo())); | 57 connect(m_undoAction, SIGNAL(triggered()), this, SLOT(undo())); | 
| 176 | 177 | 
| 177 // Emit even if we aren't executing the command, because | 178 // Emit even if we aren't executing the command, because | 
| 178 // someone must have executed it for this to make any sense | 179 // someone must have executed it for this to make any sense | 
| 179 emit commandExecuted(); | 180 emit commandExecuted(); | 
| 180 emit commandExecuted(command); | 181 emit commandExecuted(command); | 
| 181 | 182 if (!m_bundling) emit activity(command->getName()); | 
| 183 | |
| 182 updateActions(); | 184 updateActions(); | 
| 183 } | 185 } | 
| 184 | 186 | 
| 185 void | 187 void | 
| 186 CommandHistory::addToBundle(Command *command, bool execute) | 188 CommandHistory::addToBundle(Command *command, bool execute) | 
| 207 #endif | 209 #endif | 
| 208 | 210 | 
| 209 // need to addCommand before setting m_currentBundle, as addCommand | 211 // need to addCommand before setting m_currentBundle, as addCommand | 
| 210 // with bundle false will reset m_currentBundle to 0 | 212 // with bundle false will reset m_currentBundle to 0 | 
| 211 MacroCommand *mc = new BundleCommand(command->getName()); | 213 MacroCommand *mc = new BundleCommand(command->getName()); | 
| 214 m_bundling = true; | |
| 212 addCommand(mc, false); | 215 addCommand(mc, false); | 
| 216 m_bundling = false; | |
| 213 m_currentBundle = mc; | 217 m_currentBundle = mc; | 
| 214 m_currentBundleName = command->getName(); | 218 m_currentBundleName = command->getName(); | 
| 215 } | 219 } | 
| 216 | 220 | 
| 217 #ifdef DEBUG_COMMAND_HISTORY | 221 #ifdef DEBUG_COMMAND_HISTORY | 
| 241 { | 245 { | 
| 242 #ifdef DEBUG_COMMAND_HISTORY | 246 #ifdef DEBUG_COMMAND_HISTORY | 
| 243 std::cerr << "CommandHistory::closeBundle" << std::endl; | 247 std::cerr << "CommandHistory::closeBundle" << std::endl; | 
| 244 #endif | 248 #endif | 
| 245 | 249 | 
| 250 if (m_currentBundle) emit activity(m_currentBundle->getName()); | |
| 246 m_currentBundle = 0; | 251 m_currentBundle = 0; | 
| 247 m_currentBundleName = ""; | 252 m_currentBundleName = ""; | 
| 248 } | 253 } | 
| 249 | 254 | 
| 250 void | 255 void | 
| 332 | 337 | 
| 333 Command *command = m_undoStack.top(); | 338 Command *command = m_undoStack.top(); | 
| 334 command->unexecute(); | 339 command->unexecute(); | 
| 335 emit commandExecuted(); | 340 emit commandExecuted(); | 
| 336 emit commandUnexecuted(command); | 341 emit commandUnexecuted(command); | 
| 342 emit activity(tr("Undo %1").arg(command->getName())); | |
| 337 | 343 | 
| 338 m_redoStack.push(command); | 344 m_redoStack.push(command); | 
| 339 m_undoStack.pop(); | 345 m_undoStack.pop(); | 
| 340 | 346 | 
| 341 clipCommands(); | 347 clipCommands(); | 
| 357 | 363 | 
| 358 Command *command = m_redoStack.top(); | 364 Command *command = m_redoStack.top(); | 
| 359 command->execute(); | 365 command->execute(); | 
| 360 emit commandExecuted(); | 366 emit commandExecuted(); | 
| 361 emit commandExecuted(command); | 367 emit commandExecuted(command); | 
| 368 emit activity(tr("Redo %1").arg(command->getName())); | |
| 362 | 369 | 
| 363 m_undoStack.push(command); | 370 m_undoStack.push(command); | 
| 364 m_redoStack.pop(); | 371 m_redoStack.pop(); | 
| 365 // no need to clip | 372 // no need to clip | 
| 366 | 373 | 
