- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/UIElements/Views/Qt4/QtToolBar.cpp
r8859b5 rc01fec 28 28 */ 29 29 30 31 32 33 30 // include config.h 34 31 #ifdef HAVE_CONFIG_H … … 36 33 #endif 37 34 38 39 35 #include "QtToolBar.hpp" 40 36 41 37 #include "CodePatterns/MemDebug.hpp" 42 38 39 #include "CodePatterns/Observer/Notification.hpp" 40 41 #include "Actions/ActionQueue.hpp" 42 43 43 QtToolBar::QtToolBar(QWidget * _parent) : 44 QToolBar(_parent) 44 QToolBar(_parent), 45 Observer("QToolBar"), 46 ActionQueue_observing(false), 47 undoaction(addActionItem("undo", "undo the last Action", "edit-undo")), 48 redoaction(addActionItem("redo", "redo the last Action", "edit-redo")) 45 49 { 46 addActionItem("undo", "undo the last Action", "edit-undo"); 47 addActionItem("redo", "redo the last Action", "edit-redo"); 50 // gray out undo/redo buttons initially 51 undoaction->setEnabled(false); 52 redoaction->setEnabled(false); 53 54 // sign in 55 MoleCuilder::ActionQueue::getInstance().signOn(this, MoleCuilder::ActionQueue::ActionQueued); 56 ActionQueue_observing = true; 48 57 } 49 58 … … 51 60 QtToolBar::~QtToolBar() 52 61 { 62 // sign off 63 if (ActionQueue_observing) 64 MoleCuilder::ActionQueue::getInstance().signOff(this, MoleCuilder::ActionQueue::ActionQueued); 53 65 } 54 66 55 67 56 void QtToolBar::addActionItem(const std::string &token, const std::string &description, const std::string &icon_name) 68 QAction * QtToolBar::addActionItem( 69 const std::string &token, 70 const std::string &description, 71 const std::string &icon_name) 57 72 { 58 73 QAction *action = addAction(QString(description.c_str())); … … 63 78 plumbing.push_back(pipe); 64 79 present_actions.insert( token ); 80 return action; 65 81 } 66 82 … … 72 88 } 73 89 90 void QtToolBar::update(Observable *publisher) 91 { 92 ASSERT(0, "QtToolBar::update() - this should never be called, we are only subscribed to channels."); 93 } 94 95 void QtToolBar::subjectKilled(Observable *publisher) 96 { 97 ActionQueue_observing = false; 98 } 99 100 void QtToolBar::recieveNotification(Observable *publisher, Notification_ptr notification) 101 { 102 if (dynamic_cast<MoleCuilder::ActionQueue *>(publisher) != NULL) { 103 switch(notification->getChannelNo()) { 104 case MoleCuilder::ActionQueue::ActionQueued: 105 undoaction->setEnabled(MoleCuilder::ActionQueue::getInstance().canUndo()); 106 redoaction->setEnabled(MoleCuilder::ActionQueue::getInstance().canRedo()); 107 break; 108 default: 109 ASSERT(0, "QtToolBar::recieveNotification() - cannot get here, not subscribed to channel " 110 +toString(notification->getChannelNo())); 111 break; 112 } 113 } else { 114 ASSERT(0, "QtToolBar::recieveNotification() - cannot get here, we are only subscribed to ActionQueue."); 115 } 116 }
Note:
See TracChangeset
for help on using the changeset viewer.