void QtControlWidget::closeEvent(QCloseEvent* event) { typedef IShellListener::Events::ShellEventType::ListenerList ListenerList; ShellEvent::Pointer shellEvent(new ShellEvent(Shell::Pointer(controller->shell))); ListenerList closedListeners(controller->shellEvents.shellClosed.GetListeners()); for (ListenerList::iterator listener = closedListeners.begin(); listener != closedListeners.end(); ++listener) { (*listener)->Execute(shellEvent); if (!shellEvent->doit) { //event->accept(); return; } } event->accept(); }
void QtMainWindowControl::closeEvent(QCloseEvent* event) { if (!controller->shell) return QMainWindow::changeEvent(event); typedef IShellListener::Events::ShellEventType::ListenerList ListenerList; ShellEvent::Pointer shellEvent(new ShellEvent(Shell::Pointer(controller->shell))); ListenerList closedListeners(controller->shellEvents.shellClosed.GetListeners()); for (ListenerList::iterator listener = closedListeners.begin(); listener != closedListeners.end(); ++listener) { (*listener)->Execute(shellEvent); if (!shellEvent->doit) { event->ignore(); return; } } QMainWindow::closeEvent(event); }