void CMainWindow::on_actionOpenDatabase_activated() { if (anyDbOpened) { // ask if user is sure to close current DB and create new one // if YES - close current DB and open File dialog to create new DB file with given name int result = dbOpenedAlert(); switch(result) { case QMessageBox::Yes: db->closeDB(); anyDbOpened = false; openDBFile(); break; case QMessageBox::No: break; } } else { // open File dialog to open DB file with given name openDBFile(); } setControlsState(anyDbOpened); }
void PediaMainForm::handleLookupFinished(const EventType& event) { setControlsState(true); const LookupFinishedEventData& data=reinterpret_cast<const LookupFinishedEventData&>(event.data); switch (data.outcome) { case data.outcomeArticleBody: updateAfterLookup(); break; case data.outcomeList: Application::popupForm(searchResultsForm); break; case data.outcomeDatabaseSwitched: // recalc about info and show about screen setDisplayMode(showAbout); termInputField_.replace(""); update(); break; case data.outcomeAvailableLangs: assert(!app().preferences().availableLangs.empty()); if (app().preferences().availableLangs.empty()) { // this shouldn't happen but if it does, we want to break // to avoid infinite loop (changeDatabase() will issue request // to get available langs whose result we handle here break; } changeDatabase(); break; case data.outcomeNotFound: termInputField_.select(); // No break is intentional. default: update(); } LookupManager* lookupManager=app().getLookupManager(); assert(lookupManager); lookupManager->handleLookupFinishedInForm(data); if (app().inStressMode()) { EvtResetAutoOffTimer(); randomArticle(); } }
void CMainWindow::on_actionCloseDatabase_activated() { int result = dbOpenedAlert(); switch(result) { case QMessageBox::Yes: db->closeDB(); anyDbOpened = false; this->setWindowTitle(appname + no_opened_db); break; case QMessageBox::No: break; } setControlsState(anyDbOpened); }
bool PediaMainForm::handleWindowEnter(const struct _WinEnterEventType& data) { const FormType* form = *this; if (data.enterWindow==static_cast<const void*>(form)) { LookupManager* lookupManager = app().getLookupManager(); if (lookupManager) { if (updateDefinitionOnEntry_) { updateDefinitionOnEntry_ = false; updateAfterLookup(); } setControlsState(!lookupManager->lookupInProgress()); } } return iPediaForm::handleWindowEnter(data); }
CMainWindow::CMainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::CMainWindow) { ui->setupUi(this); this->resize(QSize(1024,768)); appname = trUtf8("Manage-a-Car - "); no_opened_db = trUtf8("<no opened database>"); db_filename.clear(); this->setWindowTitle(appname + no_opened_db); db = new CDatabase; anyDbOpened = false; setControlsState(anyDbOpened); }
void BoxOfficeMainForm::handleLookupFinished(const EventType& event) { bool closeForm = false; setControlsState(true); MoriartyApplication& app = application(); LookupManager* lookupManager = app.lookupManager; assert(NULL!=lookupManager); const LookupFinishedEventData& data=reinterpret_cast<const LookupFinishedEventData&>(event.data); if (lookupResultBoxOfficeData == data.result) { updateAfterLookup(*lookupManager); MoriartyApplication::touchModule(moduleIdBoxOffice); } else closeForm = true; lookupManager->handleLookupFinishedInForm(data); update(); if (closeForm && lookupManager->boxOfficeData.empty()) application().runMainForm(); }
bool PediaMainForm::handleEvent(EventType& event) { if (showArticle == displayMode_ && articleRenderer_.handleEventInForm(event)) return true; if (showArticle != displayMode_ && infoRenderer_.visible() && infoRenderer_.handleEventInForm(event)) return true; bool handled=false; if (ignoreEvents_) return false; switch (event.eType) { case keyDownEvent: handled=handleKeyPress(event); break; case ctlSelectEvent: handleControlSelect(event); break; case penUpEvent: if (penUpsToEat_ > 0) { --penUpsToEat_; handled = true; } break; case LookupManager::lookupFinishedEvent: handleLookupFinished(event); handled = true; break; case LookupManager::lookupStartedEvent: setControlsState(false); // No break is intentional. case LookupManager::lookupProgressEvent: update(redrawProgressIndicator); handled = true; break; case iPediaApplication::appRegisterEvent: Application::popupForm(registrationForm); handled = true; break; case iPediaApplication::appRegistrationFinished: if (showAbout == displayMode_) prepareAbout(); update(); handled = true; break; case iPediaApplication::appLangNotAvailable: // for whatever reason server told us that the language // we were using is not available. That shouldn't happen // because we only use langauges that server gives us, but // it might becaues e.g. we might disable a given language on the // server and the client might have outdated list of available // languages. In this case we switch to "en" (English) which // should always be available FrmAlert(langNotAvailableAlert); LookupManager* lookupManager = app().getLookupManager(true); if (lookupManager && !lookupManager->lookupInProgress()) lookupManager->switchDatabase("en"); handled = true; break; case iPediaApplication::appForceUpgrade: { UInt16 buttonId = FrmAlert(forceUpgradeAlert); if (0==buttonId) { // this is "Update" button so take them to a web page if ( errNone != WebBrowserCommand(false, 0, sysAppLaunchCmdGoToURL, updateCheckURL ,NULL) ) FrmAlert(noWebBrowserAlert); } handled = true; } break; case iPediaApplication::appRandomWord: randomArticle(); handled = true; break; case penDownEvent: lastPenDownTimestamp_=TimGetTicks(); break; default: handled = iPediaForm::handleEvent(event); } return handled; }