📄 uidlg.cpp
字号:
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_BRIEFCASE);
lstSources.addItem(SOURCE_BRIEFCASE, s1, AfxGetApp()->LoadIcon(IDI_BRIEFCASE));
}
refreshSourcePanes();
lstSources.Invalidate();
}
void CuiDlg::OnContextMenu(CWnd* /*pWnd*/, CPoint point)
{
// TODO: handle 2nd event and close the popup
CPoint mPointCurrent;
::GetCursorPos(&mPointCurrent);
CMenu mPopupMenu;
// mPopupMenu.LoadMenu(IDR_MENU_CONTEXT);
CMenu *pContextMenu = mPopupMenu.GetSubMenu(0);
/*pContextMenu->TrackPopupMenu(TPM_LEFTALIGN |
TPM_LEFTBUTTON | TPM_RIGHTBUTTON | TPM_RETURNCMD |
TPM_NONOTIFY,
mPointCurrent.x, mPointCurrent.y, GetActiveWindow(),
NULL); */
pContextMenu->TrackPopupMenu(TPM_LEFTALIGN |
TPM_RETURNCMD | TPM_NONOTIFY,
point.x, point.y, GetActiveWindow(),
NULL);
}
bool isToday(SYSTEMTIME time) {
SYSTEMTIME st;
GetLocalTime(&st);
if (time.wYear == st.wYear &&
time.wMonth == st.wMonth &&
time.wDay == st.wDay) {
return true;
}
else {
return false;
}
}
wstring CuiDlg::getFormattedDateAndTime(long lastSync) {
SYSTEMTIME timeDest; wchar_t data[80];
wchar_t formatDate[80]; wchar_t formatTime[80];
wstring result;
CTime timeSyncContacts(lastSync);
timeSyncContacts.GetAsSystemTime(timeDest);
GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SLONGDATE, data, 80);
if (isToday(timeDest)) {
CString s1;
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_TODAY);
wcscpy(formatDate, s1);
} else {
result = reformatDate(data);
GetDateFormat(LOCALE_USER_DEFAULT, NULL, &timeDest, result.c_str(), formatDate, 80);
}
GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_STIMEFORMAT, data, 80);
result = reformatTime(data);
GetTimeFormat(LOCALE_USER_DEFAULT, NULL, &timeDest, result.c_str(), formatTime, 80);
result = formatDate;
result += TEXT(" ");
result += formatTime;
return result;
}
void CuiDlg::refreshSourcePane( int id ){
CString s1;
ClientSettings* cs = getRegConfig();
bool enable;
unsigned long lastSync=0;
wstring date_time;
if(id == SOURCE_MAIL){
lastSync=0;
enable = strcmp(cs->getConfigSourcesParameter("mail","sync"), "none") != 0;
if(!doesFunambolAccountExist()) {
enable = false;
}
lstSources.enableItem(id, enable);
lastSync = cs->getConfigSourcesLastTimestamp("mail");
if(syncSourceMailState == SYNCSOURCE_STATE_NOT_SYNCED){
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_LAST_SYNC_FAILED);
}
else if( syncSourceMailState == SYNCSOURCE_STATE_CANCELED){
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_LAST_SYNC_CANCELED);
}
else if(lastSync == 0) {
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_NOT_SYNCHRONIZED);
}
else {
date_time = getFormattedDateAndTime(lastSync);
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_SYNCHRONIZED); s1+= TEXT(" ");
s1 += date_time.c_str();
}
lstSources.setText(SOURCE_MAIL, s1);
}
if(id == SOURCE_CONTACTS){
lastSync=0;
enable = strcmp(cs->getConfigSourcesParameter("contact","sync"), "none") != 0;
lstSources.enableItem(id, enable);
lastSync = cs->getConfigSourcesLastTimestamp("contact");
if(syncSourceContactState == SYNCSOURCE_STATE_NOT_SYNCED){
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_LAST_SYNC_FAILED);
}
else if( syncSourceContactState == SYNCSOURCE_STATE_CANCELED){
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_LAST_SYNC_CANCELED);
}
else if(lastSync == 0) {
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_NOT_SYNCHRONIZED);
}
else
{
wstring date_time = getFormattedDateAndTime(lastSync);
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_SYNCHRONIZED); s1+= TEXT(" ");
s1 += date_time.c_str();
}
lstSources.setText(SOURCE_CONTACTS, s1);
}
if(id == SOURCE_CALENDAR){
lastSync=0;
enable = strcmp(cs->getConfigSourcesParameter("calendar","sync"), "none") != 0;
lstSources.enableItem(id, enable);
lastSync = cs->getConfigSourcesLastTimestamp("calendar");
if(syncSourceCalendarState == SYNCSOURCE_STATE_NOT_SYNCED){
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_LAST_SYNC_FAILED);
}
else if( syncSourceCalendarState == SYNCSOURCE_STATE_CANCELED){
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_LAST_SYNC_CANCELED);
}
else if(lastSync == 0) {
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_NOT_SYNCHRONIZED);
}
else
{
date_time = getFormattedDateAndTime(lastSync);
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_SYNCHRONIZED); s1+= TEXT(" ");
s1 += date_time.c_str();
}
lstSources.setText(SOURCE_CALENDAR, s1);
}
if(id == SOURCE_TASKS){
lastSync=0;
enable = strcmp(cs->getConfigSourcesParameter("task","sync"), "none") != 0;
lstSources.enableItem(id, enable);
lastSync = cs->getConfigSourcesLastTimestamp("task");
if(syncSourceTaskState == SYNCSOURCE_STATE_NOT_SYNCED){
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_LAST_SYNC_FAILED);
}
else if( syncSourceTaskState == SYNCSOURCE_STATE_CANCELED){
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_LAST_SYNC_CANCELED);
}
else if(lastSync == 0) {
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_NOT_SYNCHRONIZED);
}
else
{
date_time = getFormattedDateAndTime(lastSync);
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_SYNCHRONIZED); s1+= TEXT(" ");
s1 += date_time.c_str();
}
lstSources.setText(SOURCE_TASKS, s1);
}
if(id == SOURCE_BRIEFCASE){
lastSync=0;
enable = strcmp(cs->getConfigSourcesParameter("briefcase","sync"), "none") != 0;
lstSources.enableItem(id, enable);
lastSync = cs->getConfigSourcesLastTimestamp("briefcase");
if(syncSourceBriefcaseState == SYNCSOURCE_STATE_NOT_SYNCED){
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_LAST_SYNC_FAILED);
}
else if( syncSourceBriefcaseState == SYNCSOURCE_STATE_CANCELED){
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_LAST_SYNC_CANCELED);
}
else if(lastSync == 0) {
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_NOT_SYNCHRONIZED);
}
else
{
date_time = getFormattedDateAndTime(lastSync);
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_SYNCHRONIZED); s1+= TEXT(" ");
s1 += date_time.c_str();
}
lstSources.setText(SOURCE_BRIEFCASE, s1);
}
#if defined(WIN32_PLATFORM_PSPC)
if(id == SOURCE_NOTES){
lastSync=0;
enable = strcmp(cs->getConfigSourcesParameter("note","sync"), "none") != 0;
lstSources.enableItem(id, enable);
lastSync = cs->getConfigSourcesLastTimestamp("note");
if(syncSourceNoteState == SYNCSOURCE_STATE_NOT_SYNCED){
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_LAST_SYNC_FAILED);
}
else if( syncSourceNoteState == SYNCSOURCE_STATE_CANCELED){
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_LAST_SYNC_CANCELED);
}
else if(lastSync == 0) {
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_NOT_SYNCHRONIZED);
}
else
{
date_time = getFormattedDateAndTime(lastSync);
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_SYNCHRONIZED); s1+= TEXT(" ");
s1 += date_time.c_str();
}
lstSources.setText(SOURCE_NOTES, s1);
}
#endif
EnableSyncButton(isSyncEnabled());
lstSources.resetSourceIcon(id);
}
void CuiDlg::refreshSourcePanes(){
refreshSourcePane(SOURCE_MAIL);
refreshSourcePane(SOURCE_CONTACTS);
refreshSourcePane(SOURCE_CALENDAR);
refreshSourcePane(SOURCE_TASKS);
//ClientSettings* cs = getRegConfig();
//if(! cs->getIsPortal()){
if (showNoteSource) {
#if defined(WIN32_PLATFORM_PSPC)
refreshSourcePane(SOURCE_NOTES);
#endif
}
if (showBriefcaseSource) {
refreshSourcePane(SOURCE_BRIEFCASE);
}
lstSources.resetSourceIcons();
}
void CuiDlg::SelectSource( int index ){
if(index < 0)
return;
try{
CString s1,s2;
bool refreshPane = false;
ClientSettings* cs = getRegConfig();
int id = lstSources.indexToId(index);
if(id == SOURCE_MAIL){
if(!doesFunambolAccountExist()){
refreshSourcePane(SOURCE_MAIL);
}
else{
// check if source is enabled
if( ( strcmp(cs->getConfigSourcesParameter("mail","sync"), "none") != 0) ){
// start sync with this source
lstSources.setState(SOURCE_MAIL, ITEM_STATE_TO_SYNC);
setFirstSourceToSync(SOURCE_MAIL);
refreshSourcePane(SOURCE_MAIL);
StartSync(_T("manual mail"));
}
else{
if(!doesFunambolAccountExist())
return;
// ask if to enable source
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_TEXT_ENABLE_SYNC_FOR); s1+=" ";
s2.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_EMAIL); s1+=s2;
s2.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_TEXT_ITEMS_LOWER); s2+="?";
s1+=s2;
int retMsgBox =TimedMessageBox(GetSafeHwnd(), s1, getLocalizationUtils()->getLocalizationString(IDS_FUNAMBOL_ALERT),
MB_YESNO | MB_ICONQUESTION | MB_SETFOREGROUND, 10 * 1000);
if(retMsgBox == IDYES){
refreshPane = true;
cs->setConfigSourcesParameter("mail","sync","two-way");
getRegConfig()->setDirty(CS_DIRTY_SOURCE_MAIL);
getRegConfig()->saveDirty();
}
}
}
};
if(id == SOURCE_CONTACTS){
// check if source is enabled
if( strcmp(cs->getConfigSourcesParameter("contact","sync"), "none") != 0 ){
// start sync with this source
lstSources.setState(SOURCE_CONTACTS, ITEM_STATE_TO_SYNC);
setFirstSourceToSync(SOURCE_CONTACTS);
refreshSourcePane(SOURCE_MAIL);
StartSync(_T("manual contact"));
}
else{
// ask if to enable source
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_TEXT_ENABLE_SYNC_FOR); s1+=" ";
s2.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_CONTACTS); s1+=s2;
s2.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_TEXT_ITEMS_LOWER); s2+="?";
s1+=s2;
int retMsgBox =TimedMessageBox(GetSafeHwnd(), s1, getLocalizationUtils()->getLocalizationString(IDS_FUNAMBOL_ALERT),
MB_YESNO | MB_ICONQUESTION | MB_SETFOREGROUND, 10 * 1000);
if(retMsgBox == IDYES){
refreshPane = true;
cs->setConfigSourcesParameter("contact","sync","two-way");
getRegConfig()->setDirty(CS_DIRTY_SOURCE_CONTACTS);
getRegConfig()->saveDirty();
}
}
};
if(id == SOURCE_CALENDAR){
// check if source is enabled
if( strcmp(cs->getConfigSourcesParameter("calendar","sync"), "none") != 0 ){
// start sync with this source
lstSources.setState(SOURCE_CALENDAR, ITEM_STATE_TO_SYNC);
setFirstSourceToSync(SOURCE_CALENDAR);
refreshSourcePane(SOURCE_MAIL);
StartSync(_T("manual calendar"));
}
else{
// ask if to enable source
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_TEXT_ENABLE_SYNC_FOR); s1+=" ";
s2.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_CALENDAR); s1+=s2;
s2.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_TEXT_ITEMS_LOWER); s2+="?";
s1+=s2;
int retMsgBox =TimedMessageBox(GetSafeHwnd(), s1, getLocalizationUtils()->getLocalizationString(IDS_FUNAMBOL_ALERT),
MB_YESNO | MB_ICONQUESTION | MB_SETFOREGROUND, 10 * 1000);
if(retMsgBox == IDYES){
refreshPane = true;
cs->setConfigSourcesParameter("calendar","sync","two-way");
getRegConfig()->setDirty(CS_DIRTY_SOURCE_CALENDAR);
getRegConfig()->saveDirty();
}
}
};
if(id == SOURCE_TASKS){
// check if source is enabled
if( strcmp(cs->getConfigSourcesParameter("task","sync"), "none") != 0 ){
// start sync with this source
lstSources.setState(SOURCE_TASKS, ITEM_STATE_TO_SYNC);
setFirstSourceToSync(SOURCE_TASKS);
refreshSourcePane(SOURCE_MAIL);
StartSync(_T("manual task"));
}
else{
// ask if to enable source
s1.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_TEXT_ENABLE_SYNC_FOR); s1+=" ";
s2.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_TASKS); s1+=s2;
s2.LoadString(getLocalizationUtils()->getLocaleResource(), IDS_TEXT_ITEMS_LOWER); s2+="?";
s1+=s2;
int retMsgBox =TimedMessageBox(GetSafeHwnd(), s1, getLocalizationUtils()->getLocalizationString(IDS_FUNAMBOL_ALERT),
MB_YESNO | MB_ICONQUESTION | MB_SETFOREGROUND, 10 * 1000);
if(retMsgBox == IDYES){
refreshPane = true;
cs->setConfigSourcesParameter("task","sync","two-way");
getRegConfig()->setDirty(CS_DIRTY_SOURCE_TASKS);
getRegConfig()->saveDirty();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -