⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 recoversettings.cpp

📁 funambol windows mobile plugin source code, the source code is taken from the funambol site
💻 CPP
📖 第 1 页 / 共 2 页
字号:
        }
        sourceToSync.push_back(NOTES_NAME);
        nCheckedSources++;
        ((CuiDlg*)AfxGetMainWnd())->getSourceListCtrl().setState(SOURCE_NOTES, ITEM_STATE_TO_SYNC);
    }
    #endif

    if(checkBriefcase.GetCheck() == BST_CHECKED) {
        if(firstSourceToSyncId == -1){ //not set
            firstSourceToSyncId = SOURCE_BRIEFCASE;
        }
        sourceToSync.push_back(FILES_NAME);
        nCheckedSources++;
        ((CuiDlg*)AfxGetMainWnd())->getSourceListCtrl().setState(SOURCE_BRIEFCASE, ITEM_STATE_TO_SYNC);
    }

    if(nCheckedSources != 0){
        wstring sourceList = getCommandLine(sourceToSync);

        command += sourceList;

        // hide recover window
        ShowWindow(SW_HIDE);

        // start recover sync
        int check  = checkStartSync();
        if(check == 0) {
            BOOL toSync = TRUE;
            if (command.find(L"refresh-from-server") != wstring::npos) {
                if (checkRefreshFromServer(GetSafeHwnd(), sourceToSync) != 0)
                    toSync = FALSE;
            }

            if (toSync) {
                // set first source to sync
                ((CuiDlg*)AfxGetMainWnd())->setFirstSourceToSync(firstSourceToSyncId);
                // start sync
                ((CuiDlg*)AfxGetMainWnd())->refreshSourcePane(SOURCE_MAIL);
                ((CuiDlg*)AfxGetMainWnd())->StartSync(command.c_str());
            }
        }
    }
  EndDialog(RECOVER_SYNC_STARTED);
}



#if defined(WIN32_PLATFORM_PSPC)
void CRecoverSettings::OnBnClickedRecoverNotes()
{
    EnableRecoverButton(isCheckboxChecked());
}
#endif


void CRecoverSettings::EnableRecoverButton(bool bEnable){
    HWND hwndMB = SHFindMenuBar (this->GetSafeHwnd());
    TBBUTTONINFO tbi;
    if (!hwndMB)
        return;

    memset (&tbi, 0, sizeof (tbi));
    tbi.cbSize = sizeof (tbi);
    tbi.dwMask = TBIF_STATE;
    ::SendMessage (hwndMB, TB_GETBUTTONINFO, IDOK, (LPARAM)&tbi);

    if(bEnable)
        tbi.fsState = TBSTATE_ENABLED;
    else
        tbi.fsState &= ~TBSTATE_ENABLED;

    ::SendMessage (hwndMB, TB_SETBUTTONINFO, IDOK, (LPARAM)&tbi);
}

void CRecoverSettings::OnBnClickedRecoverMail()
{
    EnableRecoverButton(isCheckboxChecked());
    //refreshSyncType();
}

void CRecoverSettings::OnBnClickedRecoverCalendar()
{
    EnableRecoverButton(isCheckboxChecked());
    //refreshSyncType();
}

void CRecoverSettings::OnBnClickedRecoverContacts()
{
    EnableRecoverButton(isCheckboxChecked());
    //refreshSyncType();
}

void CRecoverSettings::OnBnClickedRecoverTasks()
{
    EnableRecoverButton(isCheckboxChecked());
    //refreshSyncType();
}

void CRecoverSettings::OnBnClickedRecoverBriefcase()
{
    EnableRecoverButton(isCheckboxChecked());
    //refreshSyncType();
}

bool CRecoverSettings::isCheckboxChecked()
{
    bool value = false;
    value = (checkContacts.GetCheck() == BST_CHECKED) ||
            (checkCalendar.GetCheck() == BST_CHECKED) ||
            (checkTasks.GetCheck() == BST_CHECKED)    ||
            (checkBriefcase.GetCheck() == BST_CHECKED) ||
            (checkMail.GetCheck() == BST_CHECKED);

    #if defined(WIN32_PLATFORM_PSPC)
        value |= (checkNotes.GetCheck() == BST_CHECKED);
    #endif

    return value;
}

// TODO: REMOVEME
#if 0
void CRecoverSettings::refreshSyncType(){
    bool value = false;
    CString s1;
    value = (checkContacts.GetCheck() == BST_UNCHECKED) &&
        (checkCalendar.GetCheck() == BST_UNCHECKED) &&
        (checkTasks.GetCheck() == BST_UNCHECKED)    &&
        (checkBriefcase.GetCheck() == BST_UNCHECKED);

    #if defined(WIN32_PLATFORM_PSPC)
        value &= (checkNotes.GetCheck() == BST_UNCHECKED);
    #endif

    if( (checkMail.GetCheck() == BST_CHECKED) && value){
        lstSyncType.ResetContent();
        s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_RECOVER_SYNCTYPE2); lstSyncType.AddString(s1);
        lstSyncType.SetCurSel(0);
    }
    else{
        if(lstSyncType.GetCount() <= 1){
            lstSyncType.ResetContent();
            s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_RECOVER_SYNCTYPE2); lstSyncType.AddString(s1);
            s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_RECOVER_SYNCTYPE3); lstSyncType.AddString(s1);
            lstSyncType.SetCurSel(1);
        }
        }
}
#endif

#if defined(_DEVICE_RESOLUTION_AWARE) && !defined(WIN32_PLATFORM_WFSP)
void CRecoverSettings::OnSize(UINT /*nType*/, int /*cx*/, int /*cy*/)
{
    int resId;
    CString s1,s2;

    switch(DRA::GetDisplayMode())
    {
    case DRA::Landscape:
        resId = IDD_UI_RECOVER_WIDE; break;
    case DRA::Portrait:
        resId = IDD_UI_RECOVER; break;
    case DRA::Square:
        resId = IDD_UI_RECOVER_SQUARE; break;
    default:
        resId = IDD_UI_BRIEFCASE; break;
    };

    DRA::RelayoutDialog( AfxGetInstanceHandle(), this->m_hWnd, MAKEINTRESOURCE(resId));

    s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_RECOVER_CONTACTS);	SetDlgItemText(IDC_RECOVER_CONTACTS, s1);
    s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_RECOVER_CALENDAR);	SetDlgItemText(IDC_RECOVER_CALENDAR, s1);
    s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_RECOVER_TASKS);   	SetDlgItemText(IDC_RECOVER_TASKS, s1);
    s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_RECOVER_ITEMS);   	SetDlgItemText(IDC_RECOVER_STATIC, s1);
    s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_RECOVER_BRIEFCASE);   SetDlgItemText(IDC_RECOVER_BRIEFCASE, s1);
    s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_DIRECTION);           SetDlgItemText(IDC_RECOVER_STATIC_DIRECTION, s1);

    s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_RECOVER_MAIL);  s1+=" "; s2.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_RECOVER_EMAIL_SYNCTYPE);
    s1+=s2;
    SetDlgItemText(IDC_RECOVER_MAIL, s1);
}
#endif

wstring getCommandLine(vector<const wchar_t*> sources) {

    wstring sourceList;
    vector<const wchar_t*>::iterator sourcesIterator;
    int i = 1;
    for (sourcesIterator = sources.begin();
            sourcesIterator != sources.end();
            sourcesIterator++) {

        sourceList.append(*sourcesIterator);
        if (sources.size() - i != 0) {
            sourceList.append(TEXT(","));
        }
        i++;
    }

    return sourceList;
}

int checkRefreshFromServer(HWND wndUI, vector<const wchar_t*> sources) {

    wstring sourceList;
    int i = 1, ret = 0;
    wchar_t t[512];
    vector<const wchar_t*>::iterator sourcesIterator;

    for (sourcesIterator = sources.begin();
            sourcesIterator != sources.end();
            sourcesIterator++) {

        sourceList.append(getFriendlyName(*sourcesIterator));

        if (sources.size() - i == 1) {
            sourceList.append(TEXT(" and "));
        } else if (sources.size() - i != 0) {
            sourceList.append(TEXT(", "));
        }
        i++;
    }

    wsprintf(t, getLocalizationUtils()->getLocalizationString(IDS_RS_ARMSG1),
             sourceList.c_str());

    HwndFunctions::closePreviousMsgBox();
    int val = TimedMessageBox(wndUI, t, getLocalizationUtils()->getLocalizationString(IDS_FUNAMBOL_ALERT),
                         MB_YESNO | MB_ICONQUESTION | MB_SETFOREGROUND, ASK_REFRESH_TIMEOUT * 1000); // default ASK_TIMEOUT = 10

    if (val == IDYES) {
        LOG.debug("User said yes to delete local %S and refresh.", sourceList.c_str());
    }
    else {
        LOG.debug("User said no to delete local %S and refresh." , sourceList.c_str());
        ret = -1;
    }

    return ret;
}


void CRecoverSettings::OnLbnSelchangeRecoverListSynctype(){
    ClientSettings* cs = getRegConfig();

    // if replace server data is selected
    if(lstSyncType.GetCurSel() == 1){
        checkMail.SetCheck(BST_UNCHECKED);
        checkMail.EnableWindow(FALSE);
    }
    else{
        if( strcmp(cs->getConfigSourcesParameter("mail", "sync"),"none") &&
            doesFunambolAccountExist())
           checkMail.EnableWindow(TRUE);
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -