📄 recoversettings.cpp
字号:
}
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 + -