void TimeGuard::closeEvent(QCloseEvent *event) { // TODO save that info to file static bool messageShown = false; if(closeFromTrayMenu) { closeFromTrayMenu = false; if(!loggedAsAdmin) adminLoginDialog->exec(); if(loggedAsAdmin) emit programQuit(); else event->ignore(); } else if(!messageShown) { trayIcon->showMessage(tr("Program is still working"), tr("Program has been minimized to tray. " "Click icon to maximize it")); messageShown = true; } }
///////////////////////////////////////////////////////////////////////////// //#include <pmessage.hpp> SIGNED MyMainFrame::Message(const PegMessage &msg) { bool ok; switch(msg.wType) { //case PM_ADD: // addWindow( (PegWindow*)msg.pSource ); // break; case PM_DRAW: Invalidate(); Draw(); break; case HM_SYS_KEYBOARD: toggleKeypad(); break; //case HM_SYS_RESUME: // break; case HM_SYS_ZOOM: if(m_allowResizeKey) setFullScreenApp(!m_fullScreen); break; case HM_SYS_CLEAR: if(m_activeWin && m_activeWin->onClearKeyPressed()) removeWindow(m_activeWin); break; case PM_FIRST_START: if(m_activeWin) Presentation()->MoveFocusTree(m_activeWin); break; case SIGNAL(DEF_MENU_QUIT, PSF_CLICKED): programQuit(); break; case MYMF_SEND_SIGNAL: ((MyWindow*)msg.pSource)->onSignal(msg.iData); break; default: ok = false; if(m_activeWin) m_otherWin.Insert(m_activeWin); ent ptr2; CPListIterator it2(&m_otherWin); for(ptr2 = it2.Head(); ptr2!=NULL; ptr2 = it2.Next()) { ent ptr; CPListIterator it( ((MyWindow*)ptr2)->handledSignalsList() ); for(ptr = it.Head(); ptr!=NULL; ptr = it.Next()) { if( msg.wType == *((WORD*)ptr) ) { prepareSignal((MyWindow*)ptr2, msg.wType); ok=true; break; } } } m_otherWin.Remove(m_activeWin); if(!ok) return PegWindow::Message(msg); } return 0; }