Beispiel #1
0
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);
}
Beispiel #2
0
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();
    }        
}
Beispiel #3
0
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);
}
Beispiel #4
0
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);
}
Beispiel #5
0
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();
}
Beispiel #7
0
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;
}