From 09a1a03baff001ef9aef7310f918e79c8c1f6e97 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Sun, 22 Sep 2013 19:18:39 +0000 Subject: minor code cleaning git-svn-id: http://svn.miranda-ng.org/main/trunk@6187 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/BasicHistory/src/BasicHistory.cpp | 31 +- plugins/BasicHistory/src/BinaryExport.cpp | 22 +- plugins/BasicHistory/src/DatExport.cpp | 24 +- plugins/BasicHistory/src/EventList.cpp | 262 ++--- plugins/BasicHistory/src/ExportManager.cpp | 86 +- plugins/BasicHistory/src/HistoryWindow.cpp | 971 ++++++++----------- plugins/BasicHistory/src/Options.cpp | 1326 +++++++++++--------------- plugins/BasicHistory/src/PlainHtmlExport.cpp | 8 - plugins/BasicHistory/src/RichHtmlExport.cpp | 240 ++--- plugins/BasicHistory/src/Scheduler.cpp | 714 +++++--------- plugins/BasicHistory/src/Searcher.cpp | 143 +-- plugins/BasicHistory/src/version.h | 26 +- 12 files changed, 1490 insertions(+), 2363 deletions(-) diff --git a/plugins/BasicHistory/src/BasicHistory.cpp b/plugins/BasicHistory/src/BasicHistory.cpp index 12a75bb37a..bb2a360756 100644 --- a/plugins/BasicHistory/src/BasicHistory.cpp +++ b/plugins/BasicHistory/src/BasicHistory.cpp @@ -131,8 +131,7 @@ void InitTaskMenuItems() std::vector::iterator taskIt = Options::instance->taskOptions.begin(); std::vector::iterator it = taskMenus.begin(); - for(; it != taskMenus.end() && taskIt != Options::instance->taskOptions.end(); ++it, ++taskIt) - { + for (; it != taskMenus.end() && taskIt != Options::instance->taskOptions.end(); ++it, ++taskIt) { memset(&mi, 0, sizeof(mi)); mi.cbSize = sizeof(mi); mi.flags = CMIM_FLAGS | CMIM_NAME | CMIF_CHILDPOPUP | CMIF_ROOTHANDLE | CMIF_TCHAR | CMIF_KEEPUNTRANSLATED; @@ -141,8 +140,7 @@ void InitTaskMenuItems() Menu_ModifyItem((HGENMENU)*it, &mi); } - for(; it != taskMenus.end(); ++it) - { + for (; it != taskMenus.end(); ++it) { memset(&mi, 0, sizeof(mi)); mi.cbSize = sizeof(mi); mi.flags = CMIM_FLAGS | CMIF_CHILDPOPUP | CMIF_ROOTHANDLE | CMIF_TCHAR | CMIF_KEEPUNTRANSLATED | CMIF_HIDDEN; @@ -151,8 +149,7 @@ void InitTaskMenuItems() } int pos = (int)taskMenus.size(); - for(; taskIt != Options::instance->taskOptions.end(); ++taskIt) - { + for (; taskIt != Options::instance->taskOptions.end(); ++taskIt) { memset(&mi, 0, sizeof(mi)); mi.cbSize = sizeof(mi); mi.flags = CMIF_CHILDPOPUP | CMIF_ROOTHANDLE | CMIF_TCHAR | CMIF_KEEPUNTRANSLATED; @@ -164,8 +161,7 @@ void InitTaskMenuItems() taskMenus.push_back(menu); } } - else if (hTaskMainMenu != NULL) - { + else if (hTaskMainMenu != NULL) { CLISTMENUITEM mi = { sizeof(mi) }; mi.flags = CMIM_FLAGS | CMIF_ROOTPOPUP | CMIF_HIDDEN; Menu_ModifyItem(hTaskMainMenu, &mi); @@ -223,26 +219,20 @@ int ModulesLoaded(WPARAM wParam, LPARAM lParam) InitMenuItems(); TCHAR ftpExe[MAX_PATH]; - if (SUCCEEDED(SHGetFolderPath(NULL, CSIDL_PROGRAM_FILES, NULL, SHGFP_TYPE_CURRENT, ftpExe))) - { + if (SUCCEEDED(SHGetFolderPath(NULL, CSIDL_PROGRAM_FILES, NULL, SHGFP_TYPE_CURRENT, ftpExe))) { _tcscat_s(ftpExe, _T("\\WinSCP\\WinSCP.exe")); DWORD atr = GetFileAttributes(ftpExe); - if (atr == INVALID_FILE_ATTRIBUTES || atr & FILE_ATTRIBUTE_DIRECTORY) - { + if (atr == INVALID_FILE_ATTRIBUTES || atr & FILE_ATTRIBUTE_DIRECTORY) { #ifdef _WIN64 - if (SUCCEEDED(SHGetFolderPath(NULL, CSIDL_PROGRAM_FILESX86, NULL, SHGFP_TYPE_CURRENT, ftpExe))) - { + if (SUCCEEDED(SHGetFolderPath(NULL, CSIDL_PROGRAM_FILESX86, NULL, SHGFP_TYPE_CURRENT, ftpExe))) { _tcscat_s(ftpExe, _T("\\WinSCP\\WinSCP.exe")); atr = GetFileAttributes(ftpExe); if (!(atr == INVALID_FILE_ATTRIBUTES || atr & FILE_ATTRIBUTE_DIRECTORY)) - { Options::instance->ftpExePathDef = ftpExe; - } } #endif } - else - Options::instance->ftpExePathDef = ftpExe; + else Options::instance->ftpExePathDef = ftpExe; } TCHAR* log = _T("%miranda_logpath%\\BasicHistory\\ftplog.txt"); @@ -310,17 +300,14 @@ extern "C" int __declspec(dllexport) Unload(void) EventList::Deinit(); - if (Options::instance != NULL) - { + if (Options::instance != NULL) { Options::instance->Unload(); delete Options::instance; Options::instance = NULL; } if (hEventIcons != NULL) - { delete [] hEventIcons; - } return 0; } diff --git a/plugins/BasicHistory/src/BinaryExport.cpp b/plugins/BasicHistory/src/BinaryExport.cpp index 76239cb098..0e1636af2f 100644 --- a/plugins/BasicHistory/src/BinaryExport.cpp +++ b/plugins/BasicHistory/src/BinaryExport.cpp @@ -65,11 +65,9 @@ bool BinaryExport::ReadString(std::wstring &str) int size = 1024; int pos = 0; int totalSize = 0; - while(1) - { + while(true) { buf.resize(size); - if (IMP_FILE.peek() == 0) - { + if (IMP_FILE.peek() == 0) { IMP_FILE.get(); break; } @@ -96,6 +94,7 @@ bool BinaryExport::ReadString(std::wstring &str) if (totalSize == 0) return true; + int sizeW = MultiByteToWideChar(codepage, 0, (char*)buf.c_str(), totalSize, NULL, 0); str.resize(sizeW); MultiByteToWideChar(codepage, 0, (char*)buf.c_str(), totalSize, (wchar_t*)str.c_str(), sizeW); @@ -133,8 +132,7 @@ void BinaryExport::WriteGroup(bool isMe, const std::wstring &time, const std::ws void BinaryExport::WriteMessage(bool isMe, const std::wstring &longDate, const std::wstring &shortDate, const std::wstring &user, const std::wstring &message, const DBEVENTINFO& dbei) { - if (dbei.timestamp >= lTime) - { + if (dbei.timestamp >= lTime) { BinaryFileMessageHeader header; header.eventType = dbei.eventType; header.flags = dbei.flags & (~(0x800)); @@ -150,8 +148,10 @@ bool ReadHeader(BinaryFileHeader& header, std::istream* stream) stream->read((char*)&header, sizeof(BinaryFileHeader)); if (!stream->good()) return false; + if (memcmp(header.signature, "BHBF", 4) != 0) return false; + if (header.version != 0 || header.codepage == 12000 || header.codepage == 12001) return false; @@ -163,6 +163,7 @@ int BinaryExport::IsContactInFile(const std::vector& contacts) BinaryFileHeader header; if (!ReadHeader(header, IImport::stream)) return -2; + codepage = header.codepage; std::wstring filterName; std::wstring myName; @@ -188,14 +189,11 @@ int BinaryExport::IsContactInFile(const std::vector& contacts) return -2; IMP_FILE.seekg(0, std::ios_base::beg); - for(int i = 0; i < (int)contacts.size(); ++i) - { + for (int i = 0; i < (int)contacts.size(); ++i) { std::wstring pn = GetProtocolName(contacts[i]); std::wstring id = GetContactId(contacts[i]); if (pn == proto1 && id == id1) - { return i; - } } return -1; @@ -206,11 +204,11 @@ bool BinaryExport::GetEventList(std::vector& eventList BinaryFileHeader header; if (!ReadHeader(header, IImport::stream)) return false; + codepage = header.codepage; IMP_FILE.seekg(header.dataStart, std::ios_base::beg); BinaryFileMessageHeader messageHeader; - while(1) - { + while(true) { IMP_FILE.read((char*)&messageHeader, sizeof(BinaryFileMessageHeader)); if (IMP_FILE.eof()) break; diff --git a/plugins/BasicHistory/src/DatExport.cpp b/plugins/BasicHistory/src/DatExport.cpp index 7518567a71..491f446560 100644 --- a/plugins/BasicHistory/src/DatExport.cpp +++ b/plugins/BasicHistory/src/DatExport.cpp @@ -55,14 +55,11 @@ DatExport::~DatExport() { } - int DatExport::WriteString(const std::wstring &str) { int conv = WideCharToMultiByte(CP_UTF8, 0, str.c_str(), (int)str.length() + 1, NULL, 0, NULL, NULL); if (conv > (int)memBuf.size()) - { memBuf.resize(conv); - } conv = WideCharToMultiByte(CP_UTF8, 0, str.c_str(), (int)str.length() + 1, (char*)memBuf.c_str(), conv, NULL, NULL); return conv; @@ -102,16 +99,14 @@ void DatExport::WriteMessage(bool isMe, const std::wstring &longDate, const std: header.timestamp = dbei.timestamp; header.szModule = 0; header.pBlob = 0; - if (dbei.flags & 0x800) - { + if (dbei.flags & 0x800) { //Imported header.flags |= DBEF_UTF; header.cbBlob = WriteString(message); EXP_FILE.write((char*)&header, header.cbSize); EXP_FILE.write(memBuf.c_str(), header.cbBlob); } - else - { + else { //Internal header.cbBlob = dbei.cbBlob; EXP_FILE.write((char*)&header, header.cbSize); @@ -126,6 +121,7 @@ bool ReadHeader(MCHeader& header, std::istream* stream) stream->read((char*)&header, sizeof(MCHeader)); if (!stream->good()) return false; + if (memcmp(header.signature, "HB", 2) != 0) return false; @@ -139,9 +135,7 @@ int DatExport::IsContactInFile(const std::vector& contacts) return -2; if (contacts.size() == 1) - { hContact = contacts[0]; - } IMP_FILE.seekg(0, std::ios_base::beg); return -3; @@ -152,6 +146,7 @@ bool DatExport::GetEventList(std::vector& eventList) MCHeader header; if (!ReadHeader(header, IImport::stream)) return false; + dataSize = header.dataSize; DBEVENTINFO86 messageHeader; DBEVENTINFO info = {0}; @@ -159,8 +154,7 @@ bool DatExport::GetEventList(std::vector& eventList) info.szModule = GetContactProto(hContact); TCHAR _str[MAXSELECTSTR + 8]; // for safety reason std::multimap sortedEvents; - while(dataSize > 0) - { + while(dataSize > 0) { messageHeader.cbSize = 0; IMP_FILE.read((char*)&messageHeader, sizeof(DBEVENTINFO86)); if (!IMP_FILE.good()) @@ -170,18 +164,14 @@ bool DatExport::GetEventList(std::vector& eventList) return false; if (messageHeader.cbSize > sizeof(DBEVENTINFO86)) - { IMP_FILE.seekg(messageHeader.cbSize - sizeof(DBEVENTINFO86), std::ios_base::cur); - } IImport::ExternalMessage exMsg; exMsg.eventType = messageHeader.eventType; exMsg.flags = messageHeader.flags; exMsg.timestamp = messageHeader.timestamp; if (messageHeader.cbBlob > memBuf.size()) - { memBuf.resize(messageHeader.cbBlob); - } IMP_FILE.read((char*)memBuf.c_str(), messageHeader.cbBlob); if (!IMP_FILE.good()) @@ -201,10 +191,8 @@ bool DatExport::GetEventList(std::vector& eventList) memBuf.resize(0); memBuf.shrink_to_fit(); - for(std::multimap::iterator it = sortedEvents.begin(); it != sortedEvents.end(); ++it) - { + for (std::multimap::iterator it = sortedEvents.begin(); it != sortedEvents.end(); ++it) eventList.push_back(it->second); - } return true; } diff --git a/plugins/BasicHistory/src/EventList.cpp b/plugins/BasicHistory/src/EventList.cpp index b72eeaa144..44ba5db4cc 100644 --- a/plugins/BasicHistory/src/EventList.cpp +++ b/plugins/BasicHistory/src/EventList.cpp @@ -54,7 +54,6 @@ EventList::EventList(HANDLE _hContact, int filter) SetDefFilter(filter); } - EventList::~EventList() { mir_free(gdbei.pBlob); @@ -63,15 +62,12 @@ EventList::~EventList() bool EventList::CanShowHistory(DBEVENTINFO* dbei) { - if (deltaTime != 0) - { - if (deltaTime > 0) - { + if (deltaTime != 0) { + if (deltaTime > 0) { if (now - deltaTime < dbei->timestamp) return false; } - else - { + else { if (now + deltaTime > dbei->timestamp) return false; } @@ -80,56 +76,42 @@ bool EventList::CanShowHistory(DBEVENTINFO* dbei) if (hContact == NULL || defFilter == 1) return true; - else if (defFilter < 1) - { - switch( dbei->eventType ) - { + if (defFilter < 1) { + switch(dbei->eventType) { case EVENTTYPE_MESSAGE: case EVENTTYPE_URL: case EVENTTYPE_FILE: return true; default: - { - DBEVENTTYPEDESCR* et = ( DBEVENTTYPEDESCR* )CallService(MS_DB_EVENT_GETTYPE, ( WPARAM )dbei->szModule, ( LPARAM )dbei->eventType ); - if ( et && ( et->flags & DETF_HISTORY )) - { - return true; - } - } + DBEVENTTYPEDESCR* et = ( DBEVENTTYPEDESCR* )CallService(MS_DB_EVENT_GETTYPE, ( WPARAM )dbei->szModule, ( LPARAM )dbei->eventType ); + if ( et && ( et->flags & DETF_HISTORY )) + return true; } return false; } - else - { - if (filterMap.find(dbei->eventType) != filterMap.end()) - { - if (onlyInFilter) - { - return !(dbei->flags & DBEF_SENT); - } - else if (onlyOutFilter) - { - return (dbei->flags & DBEF_SENT) != 0; - } - return true; - } - return false; + + if (filterMap.find(dbei->eventType) != filterMap.end()) { + if (onlyInFilter) + return !(dbei->flags & DBEF_SENT); + + if (onlyOutFilter) + return (dbei->flags & DBEF_SENT) != 0; + + return true; } + return false; } bool EventList::CanShowHistory(const IImport::ExternalMessage& message) { - if (deltaTime != 0) - { - if (deltaTime > 0) - { + if (deltaTime != 0) { + if (deltaTime > 0) { if (now - deltaTime < message.timestamp) return false; } - else - { + else { if (now + deltaTime > message.timestamp) return false; } @@ -138,10 +120,8 @@ bool EventList::CanShowHistory(const IImport::ExternalMessage& message) if (hContact == NULL || defFilter == 1) return true; - else if (defFilter < 1) - { - switch(message.eventType ) - { + if (defFilter < 1) { + switch(message.eventType ) { case EVENTTYPE_MESSAGE: case EVENTTYPE_URL: case EVENTTYPE_FILE: @@ -150,22 +130,17 @@ bool EventList::CanShowHistory(const IImport::ExternalMessage& message) return false; } - else - { - if (filterMap.find(message.eventType) != filterMap.end()) - { - if (onlyInFilter) - { - return !(message.flags & DBEF_SENT); - } - else if (onlyOutFilter) - { - return (message.flags & DBEF_SENT) != 0; - } - return true; - } - return false; + + if (filterMap.find(message.eventType) != filterMap.end()) { + if (onlyInFilter) + return !(message.flags & DBEF_SENT); + + if (onlyOutFilter) + return (message.flags & DBEF_SENT) != 0; + + return true; } + return false; } void EventList::InitFilters() @@ -173,51 +148,34 @@ void EventList::InitFilters() filterMap.clear(); onlyInFilter = false; onlyOutFilter = false; - if (defFilter >= 2) - { + if (defFilter >= 2) { defFilter = 0; - for(int i = 0; i < (int)Options::instance->customFilters.size(); ++i) - { - if (filterName == Options::instance->customFilters[i].name) - { + for (int i = 0; i < (int)Options::instance->customFilters.size(); ++i) { + if (filterName == Options::instance->customFilters[i].name) { defFilter = i + 2; if (Options::instance->customFilters[i].onlyIncomming && !Options::instance->customFilters[i].onlyOutgoing) - { onlyInFilter = true; - } else if (Options::instance->customFilters[i].onlyOutgoing && !Options::instance->customFilters[i].onlyIncomming) - { onlyOutFilter = true; - } - for(std::vector::iterator it = Options::instance->customFilters[i].events.begin(); it != Options::instance->customFilters[i].events.end(); ++it) - { + for (std::vector::iterator it = Options::instance->customFilters[i].events.begin(); it != Options::instance->customFilters[i].events.end(); ++it) filterMap[*it] = true; - } - break; } } } - else - filterName = L""; + else filterName = L""; } void EventList::SetDefFilter(int filter) { defFilter = filter; if (filter >= 2 && filter - 2 < (int)Options::instance->customFilters.size()) - { filterName = Options::instance->customFilters[filter - 2].name; - } else if (filter == 1) - { filterName = TranslateT("All events"); - } else - { filterName = TranslateT("Default history events"); - } } int EventList::GetFilterNr() @@ -239,15 +197,12 @@ void EventList::GetTempList(std::list& tempList, bool noFilter, ti.isExternal = false; ei.isExternal = false; HANDLE hDbEvent = db_event_first(_hContact); - while ( hDbEvent != NULL ) - { + while (hDbEvent != NULL) { if (isWndLocal && !IsWindow( hWnd )) break; ei.hEvent = hDbEvent; - if (GetEventData(ei, data)) - { - if (noFilter || CanShowHistory(&gdbei)) - { + if (GetEventData(ei, data)) { + if (noFilter || CanShowHistory(&gdbei)) { ti.hEvent = hDbEvent; ti.timestamp = data.timestamp; tempList.push_back(ti); @@ -256,18 +211,14 @@ void EventList::GetTempList(std::list& tempList, bool noFilter, hDbEvent = db_event_next(hDbEvent); } - if (!noExt) - { + if (!noExt) { std::list::iterator itL = tempList.begin(); ti.isExternal = true; - for(int i = 0; i < (int)importedMessages.size(); ++i) - { - if (noFilter || CanShowHistory(importedMessages[i])) - { + for (int i = 0; i < (int)importedMessages.size(); ++i) { + if (noFilter || CanShowHistory(importedMessages[i])) { DWORD ts = importedMessages[i].timestamp; while(itL != tempList.end() && itL->timestamp < ts)++itL; - if (itL == tempList.end() || itL->timestamp > ts) - { + if (itL == tempList.end() || itL->timestamp > ts) { ti.exIdx = i; ti.timestamp = ts; tempList.insert(itL, ti); @@ -282,20 +233,16 @@ void EventList::RefreshEventList() InitNames(); InitFilters(); - if (useImportedMessages) - { + if (useImportedMessages) { std::vector messages; EnterCriticalSection(&criticalSection); std::map::iterator it = contactFileMap.find(hContact); - if (it != contactFileMap.end()) - { + if (it != contactFileMap.end()) { ExportManager imp(hWnd, hContact, 1); imp.SetAutoImport(it->second.file); if (!imp.Import(it->second.type, messages, NULL)) - { messages.clear(); - } } LeaveCriticalSection(&criticalSection); @@ -308,8 +255,7 @@ void EventList::RefreshEventList() std::list revTempList; std::list& nrTempList = tempList; bool isNewOnTop = Options::instance->groupNewOnTop; - if (isNewOnTop) - { + if (isNewOnTop) { revTempList.insert(revTempList.begin(), tempList.rbegin(), tempList.rend()); nrTempList = revTempList; } @@ -321,11 +267,9 @@ void EventList::RefreshEventList() int maxMess = Options::instance->groupMessagesNumber; int limitator = 0; EventIndex ei; - for(std::list::iterator itL = nrTempList.begin(); itL != nrTempList.end(); ++itL) - { + for (std::list::iterator itL = nrTempList.begin(); itL != nrTempList.end(); ++itL) { DWORD tm = isNewOnTop ? lastTime - itL->timestamp : itL->timestamp - lastTime; - if (isFlat || tm < groupTime && limitator < maxMess) - { + if (isFlat || tm < groupTime && limitator < maxMess) { lastTime = itL->timestamp; ei.isExternal = itL->isExternal; ei.hEvent = itL->hEvent; @@ -335,12 +279,10 @@ void EventList::RefreshEventList() eventList.back().push_back(ei); ++limitator; } - else - { + else { limitator = 0; lastTime = itL->timestamp; - if (!eventList.back().empty()) - { + if (!eventList.back().empty()) { ei = eventList.back().front(); AddGroup(ei); eventList.push_back(std::deque()); @@ -351,8 +293,7 @@ void EventList::RefreshEventList() } } - if (!eventList.back().empty()) - { + if (!eventList.back().empty()) { ei = eventList.back().front(); AddGroup(ei); } @@ -362,30 +303,22 @@ bool EventList::SearchInContact(HANDLE hContact, TCHAR *strFind, ComparatorInter { InitFilters(); - if (useImportedMessages) - { + if (useImportedMessages) { std::vector messages; EnterCriticalSection(&criticalSection); std::map::iterator it = contactFileMap.find(hContact); - if (it != contactFileMap.end()) - { + if (it != contactFileMap.end()) { ExportManager imp(hWnd, hContact, 1); imp.SetAutoImport(it->second.file); if (!imp.Import(it->second.type, messages, NULL)) - { messages.clear(); - } } LeaveCriticalSection(&criticalSection); - for(int i = 0; i < (int)importedMessages.size(); ++i) - { + for (int i = 0; i < (int)importedMessages.size(); ++i) if (compFun->Compare((importedMessages[i].flags & DBEF_SENT) != 0, importedMessages[i].message, strFind)) - { return true; - } - } } std::list tempList; @@ -394,17 +327,13 @@ bool EventList::SearchInContact(HANDLE hContact, TCHAR *strFind, ComparatorInter EventIndex ei; EventData ed; TCHAR str[MAXSELECTSTR + 8]; // for safety reason - for(std::list::iterator itL = tempList.begin(); itL != tempList.end(); ++itL) - { + for (std::list::iterator itL = tempList.begin(); itL != tempList.end(); ++itL) { ei.isExternal = itL->isExternal; ei.hEvent = itL->hEvent; - if (GetEventData(ei, ed)) - { + if (GetEventData(ei, ed)) { GetEventMessage(ei, str); if (compFun->Compare(ed.isMe, str, strFind)) - { return true; - } } } @@ -414,21 +343,17 @@ bool EventList::SearchInContact(HANDLE hContact, TCHAR *strFind, ComparatorInter void EventList::InitNames() { TCHAR str[200]; - if (hContact) - { + if (hContact) { _tcscpy_s(contactName, 256, (TCHAR*)CallService(MS_CLIST_GETCONTACTDISPLAYNAME, (WPARAM) hContact, GCDNF_TCHAR )); mir_sntprintf(str,200,TranslateT("History for %s"),contactName); } - else - { + else { _tcscpy_s(contactName, 256, TranslateT("System")); mir_sntprintf(str,200,TranslateT("History")); } if (isWnd) - { SetWindowText(hWnd,str); - } _tcscpy_s(myName, GetMyName().c_str()); } @@ -448,10 +373,9 @@ void EventList::AddGroup(const EventIndex& ev) else user = contactName; GetEventMessage(ev, eventText, 256); - for(i = 0; eventText[i] != 0 && eventText[i] != _T('\r') && eventText[i] != _T('\n'); ++i); + for (i = 0; eventText[i] != 0 && eventText[i] != _T('\r') && eventText[i] != _T('\n'); ++i); eventText[i] = 0; - if (i > Options::instance->groupMessageLen) - { + if (i > Options::instance->groupMessageLen) { eventText[Options::instance->groupMessageLen - 3] = '.'; eventText[Options::instance->groupMessageLen - 2] = '.'; eventText[Options::instance->groupMessageLen - 1] = '.'; @@ -466,33 +390,24 @@ void EventList::AddGroup(const EventIndex& ev) std::wstring EventList::GetContactName() { if (hContact) - { return (TCHAR*)CallService(MS_CLIST_GETCONTACTDISPLAYNAME, (WPARAM) hContact, GCDNF_TCHAR ); - } - else - { - return TranslateT("System"); - } + + return TranslateT("System"); } void GetInfo(CONTACTINFO& ci, std::wstring& str) { - if (!CallService(MS_CONTACT_GETCONTACTINFO, 0, (LPARAM) & ci)) - { - if (ci.type == CNFT_ASCIIZ) - { + if (!CallService(MS_CONTACT_GETCONTACTINFO, 0, (LPARAM)&ci)) { + if (ci.type == CNFT_ASCIIZ) { str = ci.pszVal; mir_free(ci.pszVal); - } - else if (ci.type == CNFT_DWORD) - { + else if (ci.type == CNFT_DWORD) { TCHAR buf[20]; _ltot_s(ci.dVal, buf, 10 ); str = buf; } - else if (ci.type == CNFT_WORD) - { + else if (ci.type == CNFT_WORD) { TCHAR buf[20]; _ltot_s(ci.wVal, buf, 10 ); str = buf; @@ -511,9 +426,7 @@ std::wstring EventList::GetMyName() ci.dwFlag = CNF_DISPLAY | CNF_TCHAR; GetInfo(ci, myName); if (myName.empty()) - { return TranslateT("Me"); - } return myName; } @@ -522,11 +435,9 @@ inline std::wstring GetProtocolName(HANDLE hContact) { char* ac = (char *)CallService(MS_PROTO_GETCONTACTBASEACCOUNT, (WPARAM)hContact, 0); std::wstring proto1; - if (ac != NULL) - { + if (ac != NULL) { PROTOACCOUNT* acnt = ProtoGetAccount(ac); - if (acnt != NULL && acnt->szModuleName != NULL) - { + if (acnt != NULL && acnt->szModuleName != NULL) { wchar_t* proto = mir_a2u(acnt->szProtoName); proto1 = proto; mir_free(proto); @@ -616,16 +527,14 @@ static void GetAuthRequestDescription( DBEVENTINFO *dbei, TCHAR* buf, int cbBuf return; reason = (char*)dbei->pBlob + pos; TCHAR *newNick, *newFirstName, *newLastName, *newJid, *newReason; - if (dbei->flags & DBEF_UTF) - { + if (dbei->flags & DBEF_UTF) { newNick = mir_utf8decodeT( nick ); newFirstName = mir_utf8decodeT( firstName ); newLastName = mir_utf8decodeT( lastName ); newJid = mir_utf8decodeT( jid ); newReason = mir_utf8decodeT( reason ); } - else - { + else { newNick = mir_a2t( nick ); newFirstName = mir_a2t( firstName ); newLastName = mir_a2t( lastName ); @@ -633,8 +542,7 @@ static void GetAuthRequestDescription( DBEVENTINFO *dbei, TCHAR* buf, int cbBuf newReason = mir_a2t( reason ); } - if (newFirstName[0] != 0) - { + if (newFirstName[0] != 0) { allName += newFirstName; if (newLastName[0] != 0) allName += _T(" "); @@ -644,8 +552,7 @@ static void GetAuthRequestDescription( DBEVENTINFO *dbei, TCHAR* buf, int cbBuf allName += newLastName; if (!allName.empty()) allName += _T(", "); - if (newJid[0] != 0) - { + if (newJid[0] != 0) { allName += newJid; allName += _T(", "); } @@ -662,7 +569,7 @@ static void GetAuthRequestDescription( DBEVENTINFO *dbei, TCHAR* buf, int cbBuf void EventList::GetObjectDescription( DBEVENTINFO *dbei, TCHAR* str, int cbStr ) { - switch( dbei->eventType ) { + switch(dbei->eventType) { case EVENTTYPE_AUTHREQUEST: GetAuthRequestDescription( dbei, str, cbStr ); break; @@ -674,8 +581,7 @@ void EventList::GetObjectDescription( DBEVENTINFO *dbei, TCHAR* str, int cbStr ) bool EventList::GetEventIcon(bool isMe, int eventType, int &id) { - switch(eventType) - { + switch(eventType) { case EVENTTYPE_MESSAGE: id = isMe ? 1 : 0; return true; @@ -701,10 +607,8 @@ void EventList::ImportMessages(const std::vector& mess { DWORD lastTime = 0; importedMessages.clear(); - for(int i = 0; i < (int)messages.size(); ++i) - { - if (messages[i].timestamp >= lastTime) - { + for (int i = 0; i < (int)messages.size(); ++i) { + if (messages[i].timestamp >= lastTime) { importedMessages.push_back(messages[i]); lastTime = messages[i].timestamp; } @@ -725,7 +629,7 @@ void EventList::MargeMessages(const std::vector& messa dbei.szModule = GetContactProto(hContact); CallService(MS_DB_SETSAFETYMODE, (WPARAM)FALSE, 0); - for(std::list::iterator it = tempList.begin(); it != tempList.end(); ++it) { + for (std::list::iterator it = tempList.begin(); it != tempList.end(); ++it) { if (it->isExternal) { IImport::ExternalMessage& msg = importedMessages[it->exIdx]; dbei.flags = msg.flags & (~(DBEF_FIRST)); @@ -802,8 +706,7 @@ HICON EventList::GetEventCoreIcon(const EventIndex& ev) void EventList::RebuildGroup(int selected) { std::deque newGroup; - for(size_t i = 0; i < eventList[selected].size(); ++i) - { + for (size_t i = 0; i < eventList[selected].size(); ++i) { EventIndex& ev = eventList[selected][i]; if (!ev.isExternal) { // If event exist, we add it to new group @@ -869,9 +772,7 @@ bool EventList::IsImportedHistory(HANDLE hContact) EnterCriticalSection(&criticalSection); std::map::iterator it = contactFileMap.find(hContact); if (it != contactFileMap.end()) - { count = true; - } LeaveCriticalSection(&criticalSection); return count; @@ -881,8 +782,7 @@ void EventList::DeleteImporter(HANDLE hContact) { EnterCriticalSection(&criticalSection); std::map::iterator it = contactFileMap.find(hContact); - if (it != contactFileMap.end()) - { + if (it != contactFileMap.end()) { DeleteFile(it->second.file.c_str()); contactFileMap.erase(it); } diff --git a/plugins/BasicHistory/src/ExportManager.cpp b/plugins/BasicHistory/src/ExportManager.cpp index f7cb30b8dd..8107e09621 100644 --- a/plugins/BasicHistory/src/ExportManager.cpp +++ b/plugins/BasicHistory/src/ExportManager.cpp @@ -60,21 +60,15 @@ std::wstring GetFile(const TCHAR* ext, HWND hwnd, bool open) ofn.lpstrTitle = open ? TranslateT("Import") : TranslateT("Export"); ofn.nMaxFile = 1024; ofn.lpstrDefExt = ext; - if (open) - { + if (open) { ofn.Flags = OFN_PATHMUSTEXIST | OFN_EXPLORER | OFN_NOCHANGEDIR | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY; if (GetOpenFileName(&ofn)) - { return stzFilePath; - } } - else - { + else { ofn.Flags = OFN_NOREADONLYRETURN | OFN_PATHMUSTEXIST | OFN_EXPLORER | OFN_OVERWRITEPROMPT | OFN_NOCHANGEDIR; if (GetSaveFileName(&ofn)) - { return stzFilePath; - } } return L""; @@ -83,8 +77,7 @@ std::wstring GetFile(const TCHAR* ext, HWND hwnd, bool open) std::wstring ReplaceExt(const std::wstring& file, const TCHAR* ext) { size_t pos = file.find(_T("")); - if (pos < file.length()) - { + if (pos < file.length()) { std::wstring fileName = file.substr(0, pos); fileName += ext; fileName += file.substr(pos + 5); @@ -100,8 +93,7 @@ bool ExportManager::Export(IExport::ExportType type) UINT cp; std::wstring encoding; bool isBin = false; - switch(type) - { + switch(type) { case IExport::Txt: exp = new TxtExport(); cp = Options::instance->codepageTxt; @@ -142,16 +134,13 @@ bool ExportManager::Export(IExport::ExportType type) if (file.empty()) fileName = GetFile(exp->GetExt(), hwnd, false); else - { fileName = ReplaceExt(file, exp->GetExt()); - } if (fileName.empty()) return false; std::wofstream* stream; - if (!isBin) - { + if (!isBin) { stream = new std::wofstream (fileName.c_str()); if (!stream->is_open()) return false; @@ -160,8 +149,7 @@ bool ExportManager::Export(IExport::ExportType type) stream->imbue(filelocale); exp->SetStream(stream); } - else - { + else { std::ofstream* cstream = new std::ofstream (fileName.c_str(), std::ios_base::binary); if (!cstream->is_open()) return false; @@ -175,13 +163,11 @@ bool ExportManager::Export(IExport::ExportType type) RefreshEventList(); exp->WriteFooter(); - if (!isBin) - { + if (!isBin) { stream->close(); delete stream; } - else - { + else { std::ofstream* cstream = (std::ofstream*)stream; cstream->close(); delete cstream; @@ -194,8 +180,7 @@ bool ExportManager::Export(IExport::ExportType type) const TCHAR* ExportManager::GetExt(IImport::ImportType type) { IImport* imp = NULL; - switch(type) - { + switch(type) { case IImport::Binary: imp = new BinaryExport(); break; @@ -214,8 +199,7 @@ const TCHAR* ExportManager::GetExt(IImport::ImportType type) int ExportManager::Import(IImport::ImportType type, const std::vector& contacts) { IImport* imp = NULL; - switch(type) - { + switch(type) { case IImport::Binary: imp = new BinaryExport(); break; @@ -252,8 +236,7 @@ int ExportManager::Import(IImport::ImportType type, const std::vector& c bool ExportManager::Import(IImport::ImportType type, std::vector& eventList, std::wstring* err, bool* differentContact, std::vector* contacts) { IImport* imp = NULL; - switch(type) - { + switch(type) { case IImport::Binary: imp = new BinaryExport(); break; @@ -268,9 +251,7 @@ bool ExportManager::Import(IImport::ImportType type, std::vectorGetExt(), hwnd, true); else - { fileName = ReplaceExt(file, imp->GetExt()); - } std::ifstream* stream = new std::ifstream (fileName.c_str(), std::ios_base::binary); if (!stream->is_open()) @@ -281,29 +262,25 @@ bool ExportManager::Import(IImport::ImportType type, std::vectorIsContactInFile(v); - if (contInFile == -1) - { + if (contInFile == -1) { ret = false; if (err != NULL) *err = TranslateT("File do not contain selected contact"); - if (contacts != NULL && differentContact != NULL) - { + + if (contacts != NULL && differentContact != NULL) { contInFile = imp->IsContactInFile(*contacts); - if (contInFile >= 0) - { + if (contInFile >= 0) { *differentContact = true; hContact = (*contacts)[contInFile]; } } } - else if (contInFile == 0 || contInFile == -3) - { + else if (contInFile == 0 || contInFile == -3) { ret = imp->GetEventList(eventList); if (!ret && err != NULL) *err = TranslateT("File is corrupted"); } - else - { + else { ret = false; if (err != NULL) *err = TranslateT("File is corrupted"); @@ -318,6 +295,7 @@ void ExportManager::AddGroup(bool isMe, const std::wstring &time, const std::wst { if (exp == NULL) return; + exp->WriteGroup(isMe, time, user, eventText); TCHAR str[MAXSELECTSTR + 8]; // for safety reason str[0] = 0; @@ -327,31 +305,25 @@ void ExportManager::AddGroup(bool isMe, const std::wstring &time, const std::wst EventData data; std::deque revDeq; std::deque& deq = eventList.back(); - if (!oldOnTop && Options::instance->messagesNewOnTop) - { + if (!oldOnTop && Options::instance->messagesNewOnTop) { revDeq.insert(revDeq.begin(), deq.rbegin(), deq.rend()); deq = revDeq; } - for(std::deque::iterator it = deq.begin(); it != deq.end(); ++it) - { + for (std::deque::iterator it = deq.begin(); it != deq.end(); ++it) { EventIndex hDbEvent = *it; - if (GetEventData(hDbEvent, data)) - { + if (GetEventData(hDbEvent, data)) { lastMe = data.isMe; TCHAR* formatDate = Options::instance->messagesShowSec ? _T("d s") : _T("d t"); TCHAR* longFormatDate = Options::instance->messagesShowSec ? _T("d s") : _T("d t"); - if (!Options::instance->messagesShowDate) - { - if (isFirst) - { + if (!Options::instance->messagesShowDate) { + if (isFirst) { isFirst = false; formatDate = Options::instance->messagesShowSec ? _T("s") : _T("t"); time_t tt = data.timestamp; localtime_s(&lastTime, &tt); } - else - { + else { time_t tt = data.timestamp; tm t; localtime_s(&t, &tt); @@ -377,9 +349,7 @@ void ExportManager::AddGroup(bool isMe, const std::wstring &time, const std::wst continue; if (hDbEvent.isExternal) - { GetExtEventDBei(hDbEvent); - } exp->WriteMessage(lastMe, longDate, shortDate, user, strMessage, gdbei); } @@ -388,13 +358,9 @@ void ExportManager::AddGroup(bool isMe, const std::wstring &time, const std::wst void ExportManager::DeleteExportedEvents() { - for(size_t j = 0; j < eventList.size(); ++j) - { - for(size_t i = 0; i < eventList[j].size(); ++i) - { + for (size_t j = 0; j < eventList.size(); ++j) + for (size_t i = 0; i < eventList[j].size(); ++i) DeleteEvent(eventList[j][i]); - } - } } void ExportManager::SetDeleteWithoutExportEvents(int _deltaTime, DWORD _now) diff --git a/plugins/BasicHistory/src/HistoryWindow.cpp b/plugins/BasicHistory/src/HistoryWindow.cpp index 6c34d6838e..589265cab1 100644 --- a/plugins/BasicHistory/src/HistoryWindow.cpp +++ b/plugins/BasicHistory/src/HistoryWindow.cpp @@ -80,7 +80,7 @@ HistoryWindow::~HistoryWindow() { if (eventIcons != NULL) { - for(int i = 0; i < iconsNum; ++i) + for (int i = 0; i < iconsNum; ++i) if (eventIcons[i] != NULL) Skin_ReleaseIcon(eventIcons[i]); @@ -119,14 +119,14 @@ void HistoryWindow::Deinit() { bool destroyed = true; std::vector keys; - for(std::map::iterator it = windows.begin(); it != windows.end(); ++it) + for (std::map::iterator it = windows.begin(); it != windows.end(); ++it) { if (!it->second->isDestroyed) { keys.push_back(it->first); } } - for(std::vector::iterator it = keys.begin(); it != keys.end(); ++it) + for (std::vector::iterator it = keys.begin(); it != keys.end(); ++it) { std::map::iterator it1 = windows.find(*it); if (it1 != windows.end()) @@ -138,18 +138,18 @@ void HistoryWindow::Deinit() } std::vector keys1; - for(std::vector::iterator it = freeWindows.begin(); it != freeWindows.end(); ++it) + for (std::vector::iterator it = freeWindows.begin(); it != freeWindows.end(); ++it) { if (!(*it)->isDestroyed) { keys1.push_back(*it); } } - for(std::vector::iterator it = keys1.begin(); it != keys1.end(); ++it) + for (std::vector::iterator it = keys1.begin(); it != keys1.end(); ++it) { DestroyWindow((*it)->hWnd); } - for(std::vector::iterator it = freeWindows.begin(); it != freeWindows.end(); ++it) + for (std::vector::iterator it = freeWindows.begin(); it != freeWindows.end(); ++it) { if (!(*it)->isDestroyed) { @@ -160,14 +160,14 @@ void HistoryWindow::Deinit() if (destroyed) { - for(std::map::iterator it = windows.begin(); it != windows.end(); ++it) + for (std::map::iterator it = windows.begin(); it != windows.end(); ++it) { delete it->second; } windows.clear(); - for(std::vector::iterator it = freeWindows.begin(); it != freeWindows.end(); ++it) + for (std::vector::iterator it = freeWindows.begin(); it != freeWindows.end(); ++it) { delete *it; } @@ -231,7 +231,7 @@ void HistoryWindow::Close(HistoryWindow* historyWindow) } else { - for(std::vector::iterator it = freeWindows.begin(); it != freeWindows.end(); ++it) + for (std::vector::iterator it = freeWindows.begin(); it != freeWindows.end(); ++it) { if (*it == historyWindow) { @@ -254,7 +254,7 @@ void HistoryWindow::RebuildEvents(HANDLE hContact) } } - for(std::vector::iterator it = freeWindows.begin(); it != freeWindows.end(); ++it) + for (std::vector::iterator it = freeWindows.begin(); it != freeWindows.end(); ++it) { if ((*it)->hContact == hContact && !(*it)->isDestroyed) { @@ -294,7 +294,7 @@ void HistoryWindow::Focus() int HistoryWindow::FontsChanged(WPARAM wParam, LPARAM lParam) { - for(std::map::iterator it = windows.begin(); it != windows.end(); ++it) + for (std::map::iterator it = windows.begin(); it != windows.end(); ++it) { if (!it->second->isDestroyed) { @@ -302,7 +302,7 @@ int HistoryWindow::FontsChanged(WPARAM wParam, LPARAM lParam) } } - for(std::vector::iterator it = freeWindows.begin(); it != freeWindows.end(); ++it) + for (std::vector::iterator it = freeWindows.begin(); it != freeWindows.end(); ++it) { if (!(*it)->isDestroyed) { @@ -345,7 +345,7 @@ void OptionsGroupChanged() void HistoryWindow::OptionsGroupChanged() { - for(std::map::iterator it = windows.begin(); it != windows.end(); ++it) + for (std::map::iterator it = windows.begin(); it != windows.end(); ++it) { if (!it->second->isDestroyed) { @@ -354,7 +354,7 @@ void HistoryWindow::OptionsGroupChanged() } } - for(std::vector::iterator it = freeWindows.begin(); it != freeWindows.end(); ++it) + for (std::vector::iterator it = freeWindows.begin(); it != freeWindows.end(); ++it) { if (!(*it)->isDestroyed) { @@ -371,7 +371,7 @@ void OptionsMainChanged() void HistoryWindow::OptionsMainChanged() { - for(std::map::iterator it = windows.begin(); it != windows.end(); ++it) + for (std::map::iterator it = windows.begin(); it != windows.end(); ++it) { if (!it->second->isDestroyed) { @@ -379,7 +379,7 @@ void HistoryWindow::OptionsMainChanged() } } - for(std::vector::iterator it = freeWindows.begin(); it != freeWindows.end(); ++it) + for (std::vector::iterator it = freeWindows.begin(); it != freeWindows.end(); ++it) { if (!(*it)->isDestroyed) { @@ -406,7 +406,7 @@ void OptionsSearchingChanged() void HistoryWindow::OptionsSearchingChanged() { - for(std::map::iterator it = windows.begin(); it != windows.end(); ++it) + for (std::map::iterator it = windows.begin(); it != windows.end(); ++it) { if (!it->second->isDestroyed) { @@ -415,7 +415,7 @@ void HistoryWindow::OptionsSearchingChanged() } } - for(std::vector::iterator it = freeWindows.begin(); it != freeWindows.end(); ++it) + for (std::vector::iterator it = freeWindows.begin(); it != freeWindows.end(); ++it) { if (!(*it)->isDestroyed) { @@ -435,7 +435,7 @@ INT_PTR HistoryWindow::DeleteAllUserHistory(WPARAM wParam, LPARAM) if (!count) return FALSE; - for(std::map::iterator it = windows.begin(); it != windows.end(); ++it) + for (std::map::iterator it = windows.begin(); it != windows.end(); ++it) { if (!it->second->isDestroyed) { @@ -453,7 +453,7 @@ INT_PTR HistoryWindow::DeleteAllUserHistory(WPARAM wParam, LPARAM) } } - for(std::vector::iterator it = freeWindows.begin(); it != freeWindows.end(); ++it) + for (std::vector::iterator it = freeWindows.begin(); it != freeWindows.end(); ++it) { if (!(*it)->isDestroyed) { @@ -495,27 +495,15 @@ INT_PTR HistoryWindow::DeleteAllUserHistory(WPARAM wParam, LPARAM) bool HistoryWindow::IsInList(HWND hWnd) { - for(std::map::iterator it = windows.begin(); it != windows.end(); ++it) - { + for (std::map::iterator it = windows.begin(); it != windows.end(); ++it) if (!it->second->isDestroyed) - { if (it->second->hWnd == hWnd) - { return true; - } - } - } - for(std::vector::iterator it = freeWindows.begin(); it != freeWindows.end(); ++it) - { + for (std::vector::iterator it = freeWindows.begin(); it != freeWindows.end(); ++it) if (!(*it)->isDestroyed) - { if ((*it)->hWnd == hWnd) - { return true; - } - } - } return false; } @@ -525,12 +513,11 @@ void ClickLink(HWND hwnd, ENLINK *penLink) TCHAR buf[1024]; if (penLink->msg != WM_LBUTTONUP) return; - if (penLink->chrg.cpMin >= 0 && penLink->chrg.cpMax > penLink->chrg.cpMin) - { + + if (penLink->chrg.cpMin >= 0 && penLink->chrg.cpMax > penLink->chrg.cpMin) { // selection int len = penLink->chrg.cpMax - penLink->chrg.cpMin; - if (len < 1023) - { + if (len < 1023) { TEXTRANGE tr; CHARRANGE sel; @@ -608,24 +595,35 @@ void __stdcall ShowMessageWindow(void* arg) INT_PTR CALLBACK HistoryWindow::DlgProcHistory(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { + HistoryWindow* historyWindow = (HistoryWindow*)GetWindowLongPtr(hwndDlg, GWLP_USERDATA); + LPNMHDR pNmhdr; + switch (msg) { + case WM_INITDIALOG: + TranslateDialogDefault(hwndDlg); + historyWindow = (HistoryWindow*)lParam; + historyWindow->hWnd = hwndDlg; + historyWindow->isWnd = true; + SetWindowLongPtr(hwndDlg, GWLP_USERDATA, (LONG_PTR)lParam); + historyWindow->Initialise(); + DlgReturn(TRUE); + case WM_GETMINMAXINFO: - ((MINMAXINFO*)lParam)->ptMinTrackSize.x=500; - ((MINMAXINFO*)lParam)->ptMinTrackSize.y=380; + ((MINMAXINFO*)lParam)->ptMinTrackSize.x = 500; + ((MINMAXINFO*)lParam)->ptMinTrackSize.y = 380; case WM_SIZE: { - UTILRESIZEDIALOG urd={0}; - urd.cbSize=sizeof(urd); - urd.hwndDlg=hwndDlg; - urd.hInstance=hInst; - urd.lpTemplate=MAKEINTRESOURCEA(IDD_HISTORY); - urd.lParam=0; - urd.pfnResizer=HistoryWindow::HistoryDlgResizer; - CallService(MS_UTILS_RESIZEDIALOG,0,(LPARAM)&urd); + UTILRESIZEDIALOG urd = { sizeof(urd) }; + urd.hwndDlg = hwndDlg; + urd.hInstance = hInst; + urd.lpTemplate = MAKEINTRESOURCEA(IDD_HISTORY); + urd.pfnResizer = HistoryWindow::HistoryDlgResizer; + CallService(MS_UTILS_RESIZEDIALOG, 0, (LPARAM)&urd); ListView_SetColumnWidth(GetDlgItem(hwndDlg,IDC_LIST), 0, LVSCW_AUTOSIZE_USEHEADER); - DlgReturn(TRUE); } + DlgReturn(TRUE); + case WM_COMMAND: switch ( LOWORD( wParam )) { case IDOK: @@ -634,528 +632,414 @@ INT_PTR CALLBACK HistoryWindow::DlgProcHistory(HWND hwndDlg, UINT msg, WPARAM wP DlgReturn(TRUE); case IDM_FIND: - { - HistoryWindow* historyWindow =(HistoryWindow*)GetWindowLongPtr(hwndDlg,GWLP_USERDATA); - historyWindow->searcher.Find(); - DlgReturn(TRUE); - } + historyWindow->searcher.Find(); + DlgReturn(TRUE); case IDM_CONFIG: { OPENOPTIONSDIALOG opd = {0}; - opd.cbSize = sizeof(OPENOPTIONSDIALOG); + opd.cbSize = sizeof(opd); opd.pszPage = LPGEN("History"); Options_Open(&opd); - DlgReturn(TRUE); } + DlgReturn(TRUE); case IDM_DELETE: - { - HistoryWindow* historyWindow =(HistoryWindow*)GetWindowLongPtr(hwndDlg,GWLP_USERDATA); - historyWindow->Delete(0); - DlgReturn(TRUE); - } + historyWindow->Delete(0); + DlgReturn(TRUE); case IDC_FIND_TEXT: if (HIWORD(wParam) == EN_CHANGE) - { - HistoryWindow* historyWindow =(HistoryWindow*)GetWindowLongPtr(hwndDlg,GWLP_USERDATA); historyWindow->searcher.ClearFind(); - } - DlgReturn(TRUE); case IDC_SHOWHIDE: - { - if (HIWORD( wParam ) == BN_CLICKED) - { - HistoryWindow* historyWindow =(HistoryWindow*)GetWindowLongPtr(hwndDlg,GWLP_USERDATA); - if (Button_GetCheck(GetDlgItem(hwndDlg,IDC_SHOWHIDE)) & BST_CHECKED) - { - SendDlgItemMessage( hwndDlg, IDC_SHOWHIDE, BM_SETIMAGE, IMAGE_ICON, (LPARAM)historyWindow->minusIco); - SendDlgItemMessage( hwndDlg, IDC_SHOWHIDE, BUTTONADDTOOLTIP, (WPARAM)LPGENT("Hide Contacts"), BATF_TCHAR); - historyWindow->isContactList = true; - ShowWindow(GetDlgItem(hwndDlg,IDC_LIST_CONTACTS), SW_SHOW); - ShowWindow(historyWindow->splitterYhWnd, SW_SHOW); - } - else - { - SendDlgItemMessage( hwndDlg, IDC_SHOWHIDE, BM_SETIMAGE, IMAGE_ICON, (LPARAM)historyWindow->plusIco); - SendDlgItemMessage( hwndDlg, IDC_SHOWHIDE, BUTTONADDTOOLTIP, (WPARAM)LPGENT("Show Contacts"), BATF_TCHAR); - historyWindow->isContactList = false; - ShowWindow(GetDlgItem(hwndDlg,IDC_LIST_CONTACTS), SW_HIDE); - ShowWindow(historyWindow->splitterYhWnd, SW_HIDE); - } - - SendMessage(hwndDlg, WM_SIZE, 0, 0); + if (HIWORD( wParam ) == BN_CLICKED) { + if (Button_GetCheck(GetDlgItem(hwndDlg,IDC_SHOWHIDE)) & BST_CHECKED) { + SendDlgItemMessage( hwndDlg, IDC_SHOWHIDE, BM_SETIMAGE, IMAGE_ICON, (LPARAM)historyWindow->minusIco); + SendDlgItemMessage( hwndDlg, IDC_SHOWHIDE, BUTTONADDTOOLTIP, (WPARAM)LPGENT("Hide Contacts"), BATF_TCHAR); + historyWindow->isContactList = true; + ShowWindow(GetDlgItem(hwndDlg,IDC_LIST_CONTACTS), SW_SHOW); + ShowWindow(historyWindow->splitterYhWnd, SW_SHOW); + } + else { + SendDlgItemMessage( hwndDlg, IDC_SHOWHIDE, BM_SETIMAGE, IMAGE_ICON, (LPARAM)historyWindow->plusIco); + SendDlgItemMessage( hwndDlg, IDC_SHOWHIDE, BUTTONADDTOOLTIP, (WPARAM)LPGENT("Show Contacts"), BATF_TCHAR); + historyWindow->isContactList = false; + ShowWindow(GetDlgItem(hwndDlg,IDC_LIST_CONTACTS), SW_HIDE); + ShowWindow(historyWindow->splitterYhWnd, SW_HIDE); } - DlgReturn(TRUE); + SendMessage(hwndDlg, WM_SIZE, 0, 0); } + + DlgReturn(TRUE); } break; + case WM_NOTIFY: - { - LPNMHDR pNmhdr; + pNmhdr = (LPNMHDR)lParam; + switch(pNmhdr->idFrom) { + case IDC_LIST_CONTACTS: + if (pNmhdr->code == CLN_LISTREBUILT) { + if (historyWindow != NULL) + historyWindow->ReloadContacts(); - pNmhdr = (LPNMHDR)lParam; - switch(pNmhdr->idFrom) - { - case IDC_LIST_CONTACTS: - if (pNmhdr->code == CLN_LISTREBUILT) - { - HistoryWindow* historyWindow =(HistoryWindow*)GetWindowLongPtr(hwndDlg,GWLP_USERDATA); - if (historyWindow != NULL) - { - historyWindow->ReloadContacts(); - } + DlgReturn(TRUE); + } + else if (pNmhdr->code == CLN_MYSELCHANGED) { + if (historyWindow->ContactChanged()) { + MSGFILTER* msgFilter = (MSGFILTER *) lParam; + if (msgFilter->msg == WM_LBUTTONDOWN) + SendMessage(pNmhdr->hwndFrom, WM_LBUTTONUP, msgFilter->wParam, msgFilter->lParam); + } - DlgReturn(TRUE); - } - else if (pNmhdr->code == CLN_MYSELCHANGED) - { - HistoryWindow* historyWindow =(HistoryWindow*)GetWindowLongPtr(hwndDlg,GWLP_USERDATA); - if (historyWindow->ContactChanged()) - { - MSGFILTER* msgFilter = (MSGFILTER *) lParam; - if (msgFilter->msg == WM_LBUTTONDOWN) - { - SendMessage(pNmhdr->hwndFrom, WM_LBUTTONUP, msgFilter->wParam, msgFilter->lParam); - } - } + DlgReturn(TRUE); + } + else if (pNmhdr->code == CLN_OPTIONSCHANGED) { + ResetCList(hwndDlg); + return FALSE; + } + //fall through + case IDC_SHOWHIDE: + case IDC_FIND_TEXT: + case IDC_EDIT: + if (pNmhdr->code == EN_LINK) { + ClickLink(GetDlgItem(hwndDlg, IDC_EDIT), (ENLINK *) lParam); + return FALSE; + } + if (pNmhdr->code == EN_SELCHANGE) + historyWindow->searcher.ClearFind(); + else if (pNmhdr->code == EN_MSGFILTER) { + MSGFILTER* msgFilter = (MSGFILTER *) lParam; + if (msgFilter->msg == WM_KEYDOWN || msgFilter->msg == WM_SYSKEYDOWN) + { + if (historyWindow->DoHotkey(msgFilter->msg, msgFilter->lParam, msgFilter->wParam, pNmhdr->idFrom)) DlgReturn(TRUE); + } + else if (msgFilter->msg == WM_RBUTTONDOWN || msgFilter->msg == WM_RBUTTONDBLCLK || msgFilter->msg == WM_NCRBUTTONUP || msgFilter->msg == WM_NCRBUTTONDBLCLK || msgFilter->msg == WM_NCRBUTTONDOWN) + DlgReturn(TRUE); + + if (msgFilter->msg == WM_RBUTTONUP) { + POINT clicked; + LPNMITEMACTIVATE nmlv = (LPNMITEMACTIVATE)lParam; + HWND window = historyWindow->editWindow; + POINTL p; + POINT scrool; + LVHITTESTINFO info = {0}; + p.x = clicked.x = info.pt.x = GET_X_LPARAM(msgFilter->lParam); + p.y = clicked.y = info.pt.y = GET_Y_LPARAM(msgFilter->lParam); + ClientToScreen(window, &clicked); + SetFocus(window); + int selChar = SendMessage(window, EM_CHARFROMPOS, 0, (LPARAM)&p); + CHARRANGE chrg; + SendMessage(window,EM_EXGETSEL,0,(LPARAM)&chrg); + SendMessage(window,EM_GETSCROLLPOS,0,(LPARAM)&scrool); + if (selChar < chrg.cpMin || selChar > chrg.cpMax) + chrg.cpMin = chrg.cpMax = selChar; + + if (chrg.cpMin == chrg.cpMax) { + CHARRANGE chrgNew; + chrgNew.cpMin = chrg.cpMin; + chrgNew.cpMax = chrg.cpMax + 1; + SendMessage(window,EM_EXSETSEL,0,(LPARAM)&chrgNew); } - else if (pNmhdr->code == CLN_OPTIONSCHANGED) - { - ResetCList(hwndDlg); - return FALSE; - } - - //fall through - //case IDC_LIST_CONTACTS: - case IDC_SHOWHIDE: - case IDC_FIND_TEXT: - case IDC_EDIT: - if ( pNmhdr->code == EN_LINK ) - { - ClickLink(GetDlgItem(hwndDlg, IDC_EDIT), (ENLINK *) lParam); - return FALSE; - } - else if ( pNmhdr->code == EN_SELCHANGE) - { - HistoryWindow* historyWindow =(HistoryWindow*)GetWindowLongPtr(hwndDlg,GWLP_USERDATA); - historyWindow->searcher.ClearFind(); - } - else if (pNmhdr->code == EN_MSGFILTER) - { - MSGFILTER* msgFilter = (MSGFILTER *) lParam; - if (msgFilter->msg == WM_KEYDOWN || msgFilter->msg == WM_SYSKEYDOWN) - { - HistoryWindow* historyWindow =(HistoryWindow*)GetWindowLongPtr(hwndDlg,GWLP_USERDATA); - if (historyWindow->DoHotkey(msgFilter->msg, msgFilter->lParam, msgFilter->wParam, pNmhdr->idFrom)) - DlgReturn(TRUE); + CHARFORMAT2 chf; + memset(&chf, 0, sizeof(CHARFORMAT2)); + chf.cbSize = sizeof(CHARFORMAT2); + chf.dwMask = CFM_LINK; + SendMessage(window, EM_GETCHARFORMAT, SCF_SELECTION, (LPARAM)&chf); + if (chrg.cpMin == chrg.cpMax) + SendMessage(window,EM_EXSETSEL,0,(LPARAM)&chrg); + + HMENU hPopupMenu = CreatePopupMenu(); + if (hPopupMenu != NULL) { + if (chf.dwEffects & CFE_LINK) { + AppendMenu(hPopupMenu, MF_STRING, IDM_OPENNEW, TranslateT("Open in &new window")); + AppendMenu(hPopupMenu, MF_STRING, IDM_OPENEXISTING, TranslateT("&Open in existing window")); + AppendMenu(hPopupMenu, MF_STRING, IDM_COPYLINK, TranslateT("&Copy link")); } - else if (msgFilter->msg == WM_RBUTTONDOWN || msgFilter->msg == WM_RBUTTONDBLCLK || msgFilter->msg == WM_NCRBUTTONUP || msgFilter->msg == WM_NCRBUTTONDBLCLK || msgFilter->msg == WM_NCRBUTTONDOWN) - { - DlgReturn(TRUE); + else { + AppendMenu(hPopupMenu, MF_STRING, IDM_COPY, TranslateT("Copy")); + AppendMenu(hPopupMenu, MF_STRING, IDM_DELETE, TranslateT("Delete")); + AppendMenu(hPopupMenu, MFT_SEPARATOR, 0, NULL); + AppendMenu(hPopupMenu, MF_STRING, IDM_MESSAGE, TranslateT("Send Message")); + AppendMenu(hPopupMenu, MF_STRING, IDM_QUOTE, TranslateT("Reply &Quoted")); + AppendMenu(hPopupMenu, MF_STRING, IDM_DELETEGROUP, TranslateT("Delete Group")); + AppendMenu(hPopupMenu, MF_STRING, IDM_DELETEUSER, TranslateT("Delete All User History")); } - else if (msgFilter->msg == WM_RBUTTONUP) - { - HistoryWindow* historyWindow =(HistoryWindow*)GetWindowLongPtr(hwndDlg,GWLP_USERDATA); - POINT clicked; - LPNMITEMACTIVATE nmlv = (LPNMITEMACTIVATE)lParam; - HWND window = historyWindow->editWindow; - POINTL p; - POINT scrool; - LVHITTESTINFO info = {0}; - p.x = clicked.x = info.pt.x = GET_X_LPARAM(msgFilter->lParam); - p.y = clicked.y = info.pt.y = GET_Y_LPARAM(msgFilter->lParam); - ClientToScreen(window, &clicked); - SetFocus(window); - int selChar = SendMessage(window, EM_CHARFROMPOS, 0, (LPARAM)&p); - CHARRANGE chrg; - SendMessage(window,EM_EXGETSEL,0,(LPARAM)&chrg); - SendMessage(window,EM_GETSCROLLPOS,0,(LPARAM)&scrool); - if (selChar < chrg.cpMin || selChar > chrg.cpMax) - { - chrg.cpMin = chrg.cpMax = selChar; - } - if (chrg.cpMin == chrg.cpMax) - { - CHARRANGE chrgNew; - chrgNew.cpMin = chrg.cpMin; - chrgNew.cpMax = chrg.cpMax + 1; - SendMessage(window,EM_EXSETSEL,0,(LPARAM)&chrgNew); - } - CHARFORMAT2 chf; - memset(&chf, 0, sizeof(CHARFORMAT2)); - chf.cbSize = sizeof(CHARFORMAT2); - chf.dwMask = CFM_LINK; - SendMessage(window, EM_GETCHARFORMAT, SCF_SELECTION, (LPARAM)&chf); - if (chrg.cpMin == chrg.cpMax) - SendMessage(window,EM_EXSETSEL,0,(LPARAM)&chrg); - - HMENU hPopupMenu = CreatePopupMenu(); - if (hPopupMenu != NULL) - { - if (chf.dwEffects & CFE_LINK) - { - AppendMenu(hPopupMenu, MF_STRING, IDM_OPENNEW, TranslateT("Open in &new window")); - AppendMenu(hPopupMenu, MF_STRING, IDM_OPENEXISTING, TranslateT("&Open in existing window")); - AppendMenu(hPopupMenu, MF_STRING, IDM_COPYLINK, TranslateT("&Copy link")); + int selected = TrackPopupMenu(hPopupMenu, TPM_RETURNCMD, clicked.x, clicked.y, 0, hwndDlg, 0); + switch (selected) { + case IDM_COPY: + if (chrg.cpMax == chrg.cpMin && historyWindow->currentGroup.size() > 0) { + size_t start = 0; + while(start < historyWindow->currentGroup.size() && chrg.cpMin >= historyWindow->currentGroup[start].endPos) ++start; + if (start < historyWindow->currentGroup.size()) { + CHARRANGE chrgNew; + chrgNew.cpMin = 0; + if (start > 0) + chrgNew.cpMin = historyWindow->currentGroup[start - 1].endPos; + chrgNew.cpMax = historyWindow->currentGroup[start].endPos; + SendMessage(window,EM_EXSETSEL,0,(LPARAM)&chrgNew); + SendMessage(window,WM_COPY,0,0); + SendMessage(window,EM_EXSETSEL,0,(LPARAM)&chrg); } - else - { - AppendMenu(hPopupMenu, MF_STRING, IDM_COPY, TranslateT("Copy")); - AppendMenu(hPopupMenu, MF_STRING, IDM_DELETE, TranslateT("Delete")); - AppendMenu(hPopupMenu, MFT_SEPARATOR, 0, NULL); - AppendMenu(hPopupMenu, MF_STRING, IDM_MESSAGE, TranslateT("Send Message")); - AppendMenu(hPopupMenu, MF_STRING, IDM_QUOTE, TranslateT("Reply &Quoted")); - AppendMenu(hPopupMenu, MF_STRING, IDM_DELETEGROUP, TranslateT("Delete Group")); - AppendMenu(hPopupMenu, MF_STRING, IDM_DELETEUSER, TranslateT("Delete All User History")); + } + else SendMessage(window,WM_COPY,0,0); + break; + + case IDM_MESSAGE: + CallFunctionAsync(ShowMessageWindow, new ShowMessageData(historyWindow->hContact)); + break; + + case IDM_QUOTE: + if (historyWindow->currentGroup.size() > 0) { + std::wstring quote; + if (chrg.cpMax == chrg.cpMin) { + size_t start = 0; + while(start < historyWindow->currentGroup.size() && chrg.cpMin >= historyWindow->currentGroup[start].endPos) ++start; + if (start < historyWindow->currentGroup.size()) + historyWindow->FormatQuote(quote, historyWindow->currentGroup[start], historyWindow->currentGroup[start].description); } - - int selected = TrackPopupMenu(hPopupMenu, TPM_RETURNCMD, clicked.x, clicked.y, 0, hwndDlg, 0); - switch (selected) - { - case IDM_COPY: - { - if (chrg.cpMax == chrg.cpMin && historyWindow->currentGroup.size() > 0) - { - size_t start = 0; - while(start < historyWindow->currentGroup.size() && chrg.cpMin >= historyWindow->currentGroup[start].endPos) ++start; - if (start < historyWindow->currentGroup.size()) - { - CHARRANGE chrgNew; - chrgNew.cpMin = 0; - if (start > 0) - chrgNew.cpMin = historyWindow->currentGroup[start - 1].endPos; - chrgNew.cpMax = historyWindow->currentGroup[start].endPos; - SendMessage(window,EM_EXSETSEL,0,(LPARAM)&chrgNew); - SendMessage(window,WM_COPY,0,0); - SendMessage(window,EM_EXSETSEL,0,(LPARAM)&chrg); - } - } - else - { - SendMessage(window,WM_COPY,0,0); + else { + size_t start = 0; + while(start < historyWindow->currentGroup.size() && chrg.cpMin >= historyWindow->currentGroup[start].endPos) ++start; + size_t end = 0; + while(end < historyWindow->currentGroup.size() && chrg.cpMax > historyWindow->currentGroup[end].endPos) ++end; + if (end >= historyWindow->currentGroup.size()) + end = historyWindow->currentGroup.size() - 1; + if (start == end && start < historyWindow->currentGroup.size()) { + int iStart = historyWindow->currentGroup[start].startPos; + if (chrg.cpMin > iStart) + iStart = chrg.cpMin; + int iEnd = historyWindow->currentGroup[start].endPos; + if (chrg.cpMax < iEnd) + iEnd = chrg.cpMax; + if (iEnd > iStart) { + TEXTRANGE tr; + tr.chrg.cpMin = iStart; + tr.chrg.cpMax = iEnd; + tr.lpstrText = new TCHAR[iEnd - iStart + 1]; + SendMessage(historyWindow->editWindow, EM_GETTEXTRANGE, 0, (LPARAM) & tr); + historyWindow->FormatQuote(quote, historyWindow->currentGroup[start], tr.lpstrText); + delete [] tr.lpstrText; } } - break; - case IDM_MESSAGE: - //CallService(MS_MSG_SENDMESSAGE, (WPARAM)historyWindow->hContact, 0); - CallFunctionAsync(ShowMessageWindow, new ShowMessageData(historyWindow->hContact)); - break; - case IDM_QUOTE: - { - if (historyWindow->currentGroup.size() > 0) - { - std::wstring quote; - if (chrg.cpMax == chrg.cpMin) - { - size_t start = 0; - while(start < historyWindow->currentGroup.size() && chrg.cpMin >= historyWindow->currentGroup[start].endPos) ++start; - if (start < historyWindow->currentGroup.size()) - { - historyWindow->FormatQuote(quote, historyWindow->currentGroup[start], historyWindow->currentGroup[start].description); - } - } - else - { - size_t start = 0; - while(start < historyWindow->currentGroup.size() && chrg.cpMin >= historyWindow->currentGroup[start].endPos) ++start; - size_t end = 0; - while(end < historyWindow->currentGroup.size() && chrg.cpMax > historyWindow->currentGroup[end].endPos) ++end; - if (end >= historyWindow->currentGroup.size()) - end = historyWindow->currentGroup.size() - 1; - if (start == end && start < historyWindow->currentGroup.size()) - { - int iStart = historyWindow->currentGroup[start].startPos; - if (chrg.cpMin > iStart) - iStart = chrg.cpMin; - int iEnd = historyWindow->currentGroup[start].endPos; - if (chrg.cpMax < iEnd) - iEnd = chrg.cpMax; - if (iEnd > iStart) - { - TEXTRANGE tr; - tr.chrg.cpMin = iStart; - tr.chrg.cpMax = iEnd; - tr.lpstrText = new TCHAR[iEnd - iStart + 1]; - SendMessage(historyWindow->editWindow, EM_GETTEXTRANGE, 0, (LPARAM) & tr); - historyWindow->FormatQuote(quote, historyWindow->currentGroup[start], tr.lpstrText); - delete [] tr.lpstrText; - } - } - else - { - while(start <= end) - { - historyWindow->FormatQuote(quote, historyWindow->currentGroup[start], historyWindow->currentGroup[start].description); - ++start; - } - } - } - - if (!quote.empty()) - { - CallFunctionAsync(ShowMessageWindow, new ShowMessageData(historyWindow->hContact, quote)); - } - } - } - break; - case IDM_DELETE: - historyWindow->Delete(0); - break; - case IDM_DELETEGROUP: - historyWindow->Delete(1); - break; - case IDM_DELETEUSER: - historyWindow->Delete(2); - break; - case IDM_OPENNEW: - case IDM_OPENEXISTING: - case IDM_COPYLINK: - { - int start = chrg.cpMin, end = chrg.cpMin; - CHARRANGE chrgNew; - chrgNew.cpMin = start-1; - chrgNew.cpMax = start; - do - { - memset(&chf, 0, sizeof(CHARFORMAT2)); - chf.cbSize = sizeof(CHARFORMAT2); - chf.dwMask = CFM_LINK; - int sel = SendMessage(window,EM_EXSETSEL,0,(LPARAM)&chrgNew); - if (sel != chrgNew.cpMax) - break; - SendMessage(window, EM_GETCHARFORMAT, SCF_SELECTION, (LPARAM)&chf); - --chrgNew.cpMin; - --chrgNew.cpMax; - --start; - } while(start >= 0 && chf.dwEffects & CFE_LINK); - - ++start; - chrgNew.cpMin = end; - chrgNew.cpMax = end + 1; - do - { - memset(&chf, 0, sizeof(CHARFORMAT2)); - chf.cbSize = sizeof(CHARFORMAT2); - chf.dwMask = CFM_LINK; - int sel = SendMessage(window,EM_EXSETSEL,0,(LPARAM)&chrgNew); - if (sel != chrgNew.cpMax) - break; - SendMessage(window, EM_GETCHARFORMAT, SCF_SELECTION, (LPARAM)&chf); - ++chrgNew.cpMin; - ++chrgNew.cpMax; - ++end; - } while(chf.dwEffects & CFE_LINK); - - --end; - if (selected == IDM_COPYLINK) - { - chrgNew.cpMin = start; - chrgNew.cpMax = end; - SendMessage(window,EM_EXSETSEL,0,(LPARAM)&chrgNew); - SendMessage(window,WM_COPY,0,0); - SendMessage(window,EM_EXSETSEL,0,(LPARAM)&chrg); - } - else - { - ENLINK link; - link.chrg.cpMin = start; - link.chrg.cpMax = end; - link.msg = WM_LBUTTONUP; - link.nmhdr.code = selected; - SendMessage(window,EM_EXSETSEL,0,(LPARAM)&chrg); - ClickLink(window, &link); + else { + while(start <= end) { + historyWindow->FormatQuote(quote, historyWindow->currentGroup[start], historyWindow->currentGroup[start].description); + ++start; } } - break; } - DestroyMenu(hPopupMenu); + if (!quote.empty()) + CallFunctionAsync(ShowMessageWindow, new ShowMessageData(historyWindow->hContact, quote)); } - SendMessage(window,EM_SETSCROLLPOS,0,(LPARAM)&scrool); - DlgReturn(TRUE); - } - } - break; - case IDC_LIST: - if ( pNmhdr->code == LVN_ITEMCHANGED) - { - NMLISTVIEW *nmlv = (NMLISTVIEW*)lParam; - HistoryWindow* historyWindow =(HistoryWindow*)GetWindowLongPtr(hwndDlg,GWLP_USERDATA); - if ((nmlv->uChanged & LVIF_STATE) && (nmlv->uNewState & LVIS_SELECTED) && historyWindow->selected != nmlv->iItem && nmlv->iItem >= 0) - { - historyWindow->SelectEventGroup(nmlv->iItem); - DlgReturn(TRUE); - } - } - else if ( pNmhdr->code == LVN_KEYDOWN) - { - LPNMLVKEYDOWN nmlv = (LPNMLVKEYDOWN)lParam; - HistoryWindow* historyWindow =(HistoryWindow*)GetWindowLongPtr(hwndDlg,GWLP_USERDATA); - if (historyWindow->DoHotkey(WM_KEYDOWN, 0, nmlv->wVKey, IDC_LIST)) - DlgReturn(TRUE); - } - else if (pNmhdr->code == NM_RCLICK) - { - HistoryWindow* historyWindow =(HistoryWindow*)GetWindowLongPtr(hwndDlg,GWLP_USERDATA); - POINT clicked; - LPNMITEMACTIVATE nmlv = (LPNMITEMACTIVATE)lParam; - HWND window = historyWindow->listWindow; - LVHITTESTINFO info = {0}; - clicked.x = info.pt.x = nmlv->ptAction.x; - clicked.y = info.pt.y = nmlv->ptAction.y; - ClientToScreen(window, &clicked); - int newSel = SendMessage(window, LVM_SUBITEMHITTEST, 0, (LPARAM)&info); - int curSel = historyWindow->selected; - - if (newSel >= 0) - { - HMENU hPopupMenu = CreatePopupMenu(); - if (hPopupMenu != NULL) + break; + case IDM_DELETE: + historyWindow->Delete(0); + break; + case IDM_DELETEGROUP: + historyWindow->Delete(1); + break; + case IDM_DELETEUSER: + historyWindow->Delete(2); + break; + case IDM_OPENNEW: + case IDM_OPENEXISTING: + case IDM_COPYLINK: { - AppendMenu(hPopupMenu, MF_STRING, IDM_COPY, TranslateT("Copy")); - AppendMenu(hPopupMenu, MF_STRING, IDM_DELETEGROUP, TranslateT("Delete Group")); - AppendMenu(hPopupMenu, MFT_SEPARATOR, 0, NULL); - AppendMenu(hPopupMenu, MF_STRING, IDM_MESSAGE, TranslateT("Send Message")); - AppendMenu(hPopupMenu, MF_STRING, IDM_DELETEUSER, TranslateT("Delete All User History")); - - int selected = TrackPopupMenu(hPopupMenu, TPM_RETURNCMD, clicked.x, clicked.y, 0, hwndDlg, 0); - switch (selected) + int start = chrg.cpMin, end = chrg.cpMin; + CHARRANGE chrgNew; + chrgNew.cpMin = start-1; + chrgNew.cpMax = start; + do { - case IDM_COPY: - { - CHARRANGE chrg; - SendMessage(historyWindow->editWindow,EM_EXGETSEL,0,(LPARAM)&chrg); - CHARRANGE chrgNew; - chrgNew.cpMin = 0; - chrgNew.cpMax = -1; - SendMessage(historyWindow->editWindow,EM_EXSETSEL,0,(LPARAM)&chrgNew); - SendMessage(historyWindow->editWindow,WM_COPY,0,0); - SendMessage(historyWindow->editWindow,EM_EXSETSEL,0,(LPARAM)&chrg); - } - break; - case IDM_MESSAGE: - CallService(MS_MSG_SENDMESSAGE, (WPARAM)historyWindow->hContact, 0); - break; - case IDM_DELETEGROUP: - historyWindow->Delete(1); - break; - case IDM_DELETEUSER: - historyWindow->Delete(2); - break; + memset(&chf, 0, sizeof(CHARFORMAT2)); + chf.cbSize = sizeof(CHARFORMAT2); + chf.dwMask = CFM_LINK; + int sel = SendMessage(window,EM_EXSETSEL,0,(LPARAM)&chrgNew); + if (sel != chrgNew.cpMax) + break; + SendMessage(window, EM_GETCHARFORMAT, SCF_SELECTION, (LPARAM)&chf); + --chrgNew.cpMin; + --chrgNew.cpMax; + --start; + } while(start >= 0 && chf.dwEffects & CFE_LINK); + + ++start; + chrgNew.cpMin = end; + chrgNew.cpMax = end + 1; + do + { + memset(&chf, 0, sizeof(CHARFORMAT2)); + chf.cbSize = sizeof(CHARFORMAT2); + chf.dwMask = CFM_LINK; + int sel = SendMessage(window,EM_EXSETSEL,0,(LPARAM)&chrgNew); + if (sel != chrgNew.cpMax) + break; + SendMessage(window, EM_GETCHARFORMAT, SCF_SELECTION, (LPARAM)&chf); + ++chrgNew.cpMin; + ++chrgNew.cpMax; + ++end; + } while(chf.dwEffects & CFE_LINK); + + --end; + if (selected == IDM_COPYLINK) { + chrgNew.cpMin = start; + chrgNew.cpMax = end; + SendMessage(window,EM_EXSETSEL,0,(LPARAM)&chrgNew); + SendMessage(window,WM_COPY,0,0); + SendMessage(window,EM_EXSETSEL,0,(LPARAM)&chrg); + } + else { + ENLINK link; + link.chrg.cpMin = start; + link.chrg.cpMax = end; + link.msg = WM_LBUTTONUP; + link.nmhdr.code = selected; + SendMessage(window,EM_EXSETSEL,0,(LPARAM)&chrg); + ClickLink(window, &link); } - - DestroyMenu(hPopupMenu); } + break; } - - DlgReturn(TRUE); + + DestroyMenu(hPopupMenu); } + SendMessage(window,EM_SETSCROLLPOS,0,(LPARAM)&scrool); + DlgReturn(TRUE); + } + } + break; - break; - case IDC_TOOLBAR: - if ( pNmhdr->code == TBN_DROPDOWN) - { - LPNMTOOLBAR lpnmTB= (LPNMTOOLBAR)lParam; - HistoryWindow* historyWindow =(HistoryWindow*)GetWindowLongPtr(hwndDlg,GWLP_USERDATA); - if (lpnmTB->iItem == IDM_FIND) - { - historyWindow->FindToolbarClicked(lpnmTB); - } - else if (lpnmTB->iItem == IDM_CONFIG) - { - historyWindow->ConfigToolbarClicked(lpnmTB); - } - else if (lpnmTB->iItem == IDM_DELETE) - { - historyWindow->DeleteToolbarClicked(lpnmTB); + case IDC_LIST: + if (pNmhdr->code == LVN_ITEMCHANGED) { + NMLISTVIEW *nmlv = (NMLISTVIEW*)lParam; + if ((nmlv->uChanged & LVIF_STATE) && (nmlv->uNewState & LVIS_SELECTED) && historyWindow->selected != nmlv->iItem && nmlv->iItem >= 0) { + historyWindow->SelectEventGroup(nmlv->iItem); + DlgReturn(TRUE); + } + } + else if (pNmhdr->code == LVN_KEYDOWN) { + LPNMLVKEYDOWN nmlv = (LPNMLVKEYDOWN)lParam; + if (historyWindow->DoHotkey(WM_KEYDOWN, 0, nmlv->wVKey, IDC_LIST)) + DlgReturn(TRUE); + } + else if (pNmhdr->code == NM_RCLICK) { + POINT clicked; + LPNMITEMACTIVATE nmlv = (LPNMITEMACTIVATE)lParam; + HWND window = historyWindow->listWindow; + LVHITTESTINFO info = {0}; + clicked.x = info.pt.x = nmlv->ptAction.x; + clicked.y = info.pt.y = nmlv->ptAction.y; + ClientToScreen(window, &clicked); + int newSel = SendMessage(window, LVM_SUBITEMHITTEST, 0, (LPARAM)&info); + int curSel = historyWindow->selected; + + if (newSel >= 0) { + HMENU hPopupMenu = CreatePopupMenu(); + if (hPopupMenu != NULL) { + AppendMenu(hPopupMenu, MF_STRING, IDM_COPY, TranslateT("Copy")); + AppendMenu(hPopupMenu, MF_STRING, IDM_DELETEGROUP, TranslateT("Delete Group")); + AppendMenu(hPopupMenu, MFT_SEPARATOR, 0, NULL); + AppendMenu(hPopupMenu, MF_STRING, IDM_MESSAGE, TranslateT("Send Message")); + AppendMenu(hPopupMenu, MF_STRING, IDM_DELETEUSER, TranslateT("Delete All User History")); + + int selected = TrackPopupMenu(hPopupMenu, TPM_RETURNCMD, clicked.x, clicked.y, 0, hwndDlg, 0); + switch (selected) { + case IDM_COPY: + { + CHARRANGE chrg; + SendMessage(historyWindow->editWindow,EM_EXGETSEL,0,(LPARAM)&chrg); + CHARRANGE chrgNew; + chrgNew.cpMin = 0; + chrgNew.cpMax = -1; + SendMessage(historyWindow->editWindow,EM_EXSETSEL,0,(LPARAM)&chrgNew); + SendMessage(historyWindow->editWindow,WM_COPY,0,0); + SendMessage(historyWindow->editWindow,EM_EXSETSEL,0,(LPARAM)&chrg); + } + break; + case IDM_MESSAGE: + CallService(MS_MSG_SENDMESSAGE, (WPARAM)historyWindow->hContact, 0); + break; + case IDM_DELETEGROUP: + historyWindow->Delete(1); + break; + case IDM_DELETEUSER: + historyWindow->Delete(2); + break; } - - DlgReturn(TBDDRET_DEFAULT); - } - else if ( pNmhdr->code == NM_KEYDOWN) - { - LPNMKEY nmlv = (LPNMKEY)lParam; - HistoryWindow* historyWindow =(HistoryWindow*)GetWindowLongPtr(hwndDlg,GWLP_USERDATA); - if (historyWindow->DoHotkey(WM_KEYDOWN, 0, nmlv->nVKey, IDC_TOOLBAR)) - DlgReturn(TRUE); + + DestroyMenu(hPopupMenu); } - break; + } + + DlgReturn(TRUE); } break; + + case IDC_TOOLBAR: + if (pNmhdr->code == TBN_DROPDOWN) { + LPNMTOOLBAR lpnmTB= (LPNMTOOLBAR)lParam; + if (lpnmTB->iItem == IDM_FIND) + historyWindow->FindToolbarClicked(lpnmTB); + else if (lpnmTB->iItem == IDM_CONFIG) + historyWindow->ConfigToolbarClicked(lpnmTB); + else if (lpnmTB->iItem == IDM_DELETE) + historyWindow->DeleteToolbarClicked(lpnmTB); + + DlgReturn(TBDDRET_DEFAULT); + } + else if (pNmhdr->code == NM_KEYDOWN) { + LPNMKEY nmlv = (LPNMKEY)lParam; + if (historyWindow->DoHotkey(WM_KEYDOWN, 0, nmlv->nVKey, IDC_TOOLBAR)) + DlgReturn(TRUE); + } } + break; + case WM_CTLCOLORDLG: - { - HistoryWindow* historyWindow =(HistoryWindow*)GetWindowLongPtr(hwndDlg,GWLP_USERDATA); - DlgReturn((LONG_PTR)historyWindow->bkBrush); - } + DlgReturn((LONG_PTR)historyWindow->bkBrush); + case WM_CTLCOLORSTATIC: - { - HistoryWindow* historyWindow =(HistoryWindow*)GetWindowLongPtr(hwndDlg,GWLP_USERDATA); + { HWND curhWnd = (HWND)lParam; if (historyWindow->splitterXhWnd == curhWnd || historyWindow->splitterYhWnd == curhWnd) - { DlgReturn((LONG_PTR)historyWindow->bkBrush); - } break; - } + } case WM_CTLCOLOREDIT: - { - HistoryWindow* historyWindow =(HistoryWindow*)GetWindowLongPtr(hwndDlg,GWLP_USERDATA); + { HWND curhWnd = (HWND)lParam; - if (historyWindow->findWindow == curhWnd) - { + if (historyWindow->findWindow == curhWnd) { HDC edithdc = (HDC)wParam; LOGFONT font; SetTextColor(edithdc, Options::instance->GetFont(Options::Find, &font)); SetBkColor(edithdc, Options::instance->GetColor(Options::FindBackground)); DlgReturn((LONG_PTR)historyWindow->bkFindBrush); } - - break; } + break; + case DM_SPLITTERMOVED: - { - HistoryWindow* historyWindow =(HistoryWindow*)GetWindowLongPtr(hwndDlg,GWLP_USERDATA); - historyWindow->SplitterMoved((HWND)lParam, wParam, true); - break; - } - case WM_INITDIALOG: - { - TranslateDialogDefault(hwndDlg); - HistoryWindow* historyWindow = (HistoryWindow*)lParam; - historyWindow->hWnd = hwndDlg; - historyWindow->isWnd = true; - SetWindowLongPtr(hwndDlg,GWLP_USERDATA,(LONG_PTR)lParam); - historyWindow->Initialise(); - } - DlgReturn(TRUE); + historyWindow->SplitterMoved((HWND)lParam, wParam, true); + break; case DM_HREBUILD: - { - HistoryWindow* historyWindow =(HistoryWindow*)GetWindowLongPtr(hwndDlg,GWLP_USERDATA); - if (!historyWindow->isLoading) - { - historyWindow->isLoading = true; - historyWindow->ReloadContacts(); - mir_forkthread(HistoryWindow::FillHistoryThread, historyWindow); - } + if (!historyWindow->isLoading) { + historyWindow->isLoading = true; + historyWindow->ReloadContacts(); + mir_forkthread(HistoryWindow::FillHistoryThread, historyWindow); } DlgReturn(TRUE); case WM_DESTROY: - { - HistoryWindow* historyWindow =(HistoryWindow*)GetWindowLongPtr(hwndDlg,GWLP_USERDATA); - historyWindow->Destroy(); - } + historyWindow->Destroy(); DlgReturn(TRUE); } return FALSE; @@ -1232,7 +1116,7 @@ void HistoryWindow::Initialise() { allIconNumber = iconsNum + 3; eventIcons = new HICON[allIconNumber]; - for(int i = 0; i < iconsNum; ++i) { + for (int i = 0; i < iconsNum; ++i) { eventIcons[i] = Skin_GetIconByHandle( iconList[i].hIcolib ); ImageList_AddIcon(himlSmall, eventIcons[i]); } @@ -1571,7 +1455,7 @@ void HistoryWindow::SelectEventGroup(int sel) deq = revDeq; } COLORREF backColor = GetSysColor(COLOR_WINDOW); - for(std::deque::iterator it = deq.begin(); it != deq.end(); ++it) + for (std::deque::iterator it = deq.begin(); it != deq.end(); ++it) { EventIndex hDbEvent = *it; if (GetEventData(hDbEvent, data)) @@ -1966,7 +1850,7 @@ void HistoryWindow::FindToolbarClicked(LPNMTOOLBAR lpnmTB) int filter = GetFilterNr(); AppendMenu(hFilterMenu, filter == 0 ? MF_STRING | MF_CHECKED : MF_STRING, IDM_FILTERDEF, TranslateT("Default history events")); AppendMenu(hFilterMenu, filter == 1 ? MF_STRING | MF_CHECKED : MF_STRING, IDM_FILTERALL, TranslateT("All events")); - for(size_t i = 0 ; i < Options::instance->customFilters.size(); ++i) + for (size_t i = 0 ; i < Options::instance->customFilters.size(); ++i) { UINT flags = MF_STRING; if (filter - 2 == i) @@ -2145,7 +2029,7 @@ void HistoryWindow::DoImport(IImport::ImportType type) std::wstring err; std::vector contacts; - for(HANDLE _hContact = db_find_first(); _hContact != NULL; _hContact = db_find_next(_hContact)) + for (HANDLE _hContact = db_find_first(); _hContact != NULL; _hContact = db_find_next(_hContact)) contacts.push_back(_hContact); bool changeContact = false; @@ -2261,7 +2145,7 @@ void HistoryWindow::Delete(int what) bool areImpMessages = false; bool rebuild = false; - for(size_t i = start; i < end; ++i) { + for (size_t i = start; i < end; ++i) { EventIndex& ev = eventList[selected][i]; DeleteEvent(ev); areImpMessages |= ev.isExternal; @@ -2355,10 +2239,8 @@ void HistoryWindow::FormatQuote(std::wstring& quote, const MessageData& md, cons do { int nf = (int)msg.find_first_of(_T("\r\n"), f); - if (nf >= 0 && nf < (int)msg.length()) - { - if (nf - f >= 0 ) - { + if (nf >= 0 && nf < (int)msg.length()) { + if (nf - f >= 0) { quote += _T(">"); quote += msg.substr(f, nf - f); quote += _T("\n"); @@ -2368,17 +2250,15 @@ void HistoryWindow::FormatQuote(std::wstring& quote, const MessageData& md, cons if (msg[nf] == _T('\r') && f < (int)msg.length() && msg[f] == _T('\n')) ++f; } - else if (msg.length() - f > 0) - { + else if (msg.length() - f > 0) { quote += _T(">"); quote += msg.substr(f, msg.length() - f); quote += _T("\n"); f = -1; } - else - f = -1; + else f = -1; } - while(f > 0 && f < (int)msg.length()); + while(f > 0 && f < (int)msg.length()); } HANDLE HistoryWindow::GetNextContact(HANDLE hContact, int adder) @@ -2386,16 +2266,12 @@ HANDLE HistoryWindow::GetNextContact(HANDLE hContact, int adder) HWND contactList = GetDlgItem(hWnd,IDC_LIST_CONTACTS); bool find = false; HANDLE _hContact; - if (adder > 0) - { - if (hContact != NULL) - { + if (adder > 0) { + if (hContact != NULL) { _hContact = db_find_next(hContact); - while(_hContact) - { + while(_hContact) { HANDLE hItem = (HANDLE)SendMessage(contactList, CLM_FINDCONTACT, (WPARAM)_hContact, 0); - if (hItem != NULL) - { + if (hItem != NULL) { find = true; break; } @@ -2403,21 +2279,17 @@ HANDLE HistoryWindow::GetNextContact(HANDLE hContact, int adder) _hContact = db_find_next(_hContact); } - if (!find && EventList::GetContactMessageNumber(NULL)) - { + if (!find && EventList::GetContactMessageNumber(NULL)) { _hContact = NULL; find = true; } } - if (!find) - { + if (!find) { _hContact = db_find_first(); - while(_hContact && _hContact != hContact) - { + while(_hContact && _hContact != hContact) { HANDLE hItem = (HANDLE)SendMessage(contactList, CLM_FINDCONTACT, (WPARAM)_hContact, 0); - if (hItem != NULL) - { + if (hItem != NULL) { find = true; break; } @@ -2426,77 +2298,58 @@ HANDLE HistoryWindow::GetNextContact(HANDLE hContact, int adder) } } } - else - { + else { HANDLE lastContact = NULL; _hContact = db_find_first(); - while(_hContact && _hContact != hContact) - { + while(_hContact && _hContact != hContact) { HANDLE hItem = (HANDLE)SendMessage(contactList, CLM_FINDCONTACT, (WPARAM)_hContact, 0); if (hItem != NULL) - { lastContact = _hContact; - } _hContact = db_find_next(_hContact); } - if (hContact != NULL) - { - if (lastContact == NULL && !EventList::GetContactMessageNumber(NULL)) - { + if (hContact != NULL) { + if (lastContact == NULL && !EventList::GetContactMessageNumber(NULL)) { _hContact = db_find_next(hContact); - while(_hContact) - { + while(_hContact) { HANDLE hItem = (HANDLE)SendMessage(contactList, CLM_FINDCONTACT, (WPARAM)_hContact, 0); if (hItem != NULL) - { lastContact = _hContact; - } _hContact = db_find_next(_hContact); } } - if (lastContact != NULL || EventList::GetContactMessageNumber(NULL)) - { + if (lastContact != NULL || EventList::GetContactMessageNumber(NULL)) { _hContact = lastContact; find = true; } } - else if (lastContact != NULL) - { + else if (lastContact != NULL) { _hContact = lastContact; find = true; } } if (find) - { return _hContact; - } - else - { - return hContact; - } + + return hContact; } void HistoryWindow::SelectContact(HANDLE _hContact) { - if (hContact != _hContact) - { + if (hContact != _hContact) { HWND contactList = GetDlgItem(hWnd,IDC_LIST_CONTACTS); - if (_hContact != NULL) - { + if (_hContact != NULL) { HANDLE hItem = (HANDLE)SendMessage(contactList, CLM_FINDCONTACT, (WPARAM)_hContact, 0); - if (hItem != NULL) - { + if (hItem != NULL) { SendMessage(contactList, CLM_ENSUREVISIBLE, (WPARAM)hItem, 0); SendMessage(contactList, CLM_SELECTITEM, (WPARAM)hItem, 0); } } - else - { + else { SendMessage(contactList, CLM_ENSUREVISIBLE, (WPARAM)hSystem, 0); SendMessage(contactList, CLM_SELECTITEM, (WPARAM)hSystem, 0); } diff --git a/plugins/BasicHistory/src/Options.cpp b/plugins/BasicHistory/src/Options.cpp index d73c6feba9..4c8f129016 100644 --- a/plugins/BasicHistory/src/Options.cpp +++ b/plugins/BasicHistory/src/Options.cpp @@ -32,7 +32,8 @@ struct EventNamesType { int id; TCHAR* name; -} EventNames[] = +} +EventNames[] = { EVENTTYPE_MESSAGE, LPGENT("Message"), EVENTTYPE_FILE, LPGENT("File transfer"), @@ -250,8 +251,7 @@ void Options::Load(void) strncpy_s(fid.dbSettingsGroup, "BasicHistory_Fonts", SIZEOF(fid.dbSettingsGroup)); _tcsncpy_s(fid.backgroundGroup, _T("History"), SIZEOF(fid.backgroundGroup)); _tcsncpy_s(fid.group, LPGENT("History"), SIZEOF(fid.group)); - for(int i = 0; i < g_fontsSize; ++i) - { + for (int i = 0; i < g_fontsSize; ++i) { fid.order = i; _tcsncpy_s(fid.deffontsettings.szFace, g_FontOptionsList[i].szDefFace, LF_FACESIZE); fid.deffontsettings.size = g_FontOptionsList[i].defSize; @@ -267,8 +267,7 @@ void Options::Load(void) strncpy_s(cid.dbSettingsGroup, "BasicHistory_Fonts", SIZEOF(fid.dbSettingsGroup)); _tcsncpy_s(cid.group, LPGENT("History"), SIZEOF(fid.group)); - for(int i = 0; i < g_colorsSize; ++i) - { + for (int i = 0; i < g_colorsSize; ++i) { _tcsncpy_s(cid.name, g_ColorOptionsList[i].tszName, SIZEOF(cid.name)); mir_snprintf(cid.setting, SIZEOF(cid.setting), "Color%d", i); cid.order = i; @@ -277,8 +276,7 @@ void Options::Load(void) } hid.dwFlags = HKD_TCHAR; - for(int i = 0; i < g_hotkeysSize; ++i) - { + for (int i = 0; i < g_hotkeysSize; ++i) { hid.pszName = g_HotkeyOptionsList[i].pszName; hid.ptszDescription = g_HotkeyOptionsList[i].ptszDescription; hid.ptszSection = g_HotkeyOptionsList[i].ptszSection; @@ -321,14 +319,12 @@ void Options::Load(void) defFilter = db_get_b(0, MODULE, "defFilter", defFilter); int filtersCount = db_get_dw(0, MODULE, "customFiltersCount", 0); - for(int i = 0; i < filtersCount; ++i) - { + for (int i = 0; i < filtersCount; ++i) { char buf[256]; FilterOptions fo; mir_snprintf(buf, SIZEOF(buf), "filterName_%d", i); DBVARIANT nameV; - if (!db_get_ws(0, MODULE, buf, &nameV)) - { + if (!db_get_ws(0, MODULE, buf, &nameV)) { fo.name = nameV.pwszVal; db_free(&nameV); } @@ -341,14 +337,11 @@ void Options::Load(void) fo.onlyOutgoing = true; mir_snprintf(buf, SIZEOF(buf), "filterEvents_%d", i); DBVARIANT eventsV; - if (!db_get_s(0, MODULE, buf, &eventsV)) - { + if (!db_get_s(0, MODULE, buf, &eventsV)) { int k = 0; char* id = eventsV.pszVal; - while(eventsV.pszVal[k]) - { - if (eventsV.pszVal[k] == ';') - { + while(eventsV.pszVal[k]) { + if (eventsV.pszVal[k] == ';') { eventsV.pszVal[k] = 0; fo.events.push_back(strtol(id, NULL, 16)); id = eventsV.pszVal + k + 1; @@ -363,18 +356,14 @@ void Options::Load(void) customFilters.insert(customFilters.end(), fo); } - if (defFilter > 1) - { + if (defFilter > 1) { defFilter = 0; DBVARIANT defFilterStrV; - if (!db_get_ws(0, MODULE, "defFilterStr", &defFilterStrV)) - { + if (!db_get_ws(0, MODULE, "defFilterStr", &defFilterStrV)) { std::wstring filterName = defFilterStrV.pwszVal; - for(int i = 0; i < (int)customFilters.size(); ++i) - { - if (filterName == customFilters[i].name) - { + for (int i = 0; i < (int)customFilters.size(); ++i) { + if (filterName == customFilters[i].name) { defFilter = i + 2; break; } @@ -387,62 +376,43 @@ void Options::Load(void) codepageHtml1 = db_get_dw(0, MODULE, "codepageHtml1", CP_UTF8); codepageHtml2 = db_get_dw(0, MODULE, "codepageHtml2", CP_UTF8); DBVARIANT encodingV; - if (!db_get_ws(0, MODULE, "encodingTxt", &encodingV)) - { + if (!db_get_ws(0, MODULE, "encodingTxt", &encodingV)) { encodingTxt = encodingV.pwszVal; db_free(&encodingV); } - else - { - encodingTxt = _T("UTF-8"); - } - if (!db_get_ws(0, MODULE, "encodingHtml1", &encodingV)) - { + else encodingTxt = _T("UTF-8"); + + if (!db_get_ws(0, MODULE, "encodingHtml1", &encodingV)) { encodingHtml1 = encodingV.pwszVal; db_free(&encodingV); } - else - { - encodingHtml1 = _T("UTF-8"); - } - if (!db_get_ws(0, MODULE, "encodingHtml2", &encodingV)) - { + else encodingHtml1 = _T("UTF-8"); + + if (!db_get_ws(0, MODULE, "encodingHtml2", &encodingV)) { encodingHtml2 = encodingV.pwszVal; db_free(&encodingV); } - else - { - encodingHtml2 = _T("UTF-8"); - } + else encodingHtml2 = _T("UTF-8"); exportHtml1ShowDate = db_get_b(0, MODULE, "exportHtml1ShowDate", 1) ? true : false; exportHtml2ShowDate = db_get_b(0, MODULE, "exportHtml2ShowDate", 0) ? true : false; exportHtml2UseSmileys = db_get_b(0, MODULE, "exportHtml2UseSmileys", 1) ? true : false; - if (!db_get_ws(0, MODULE, "extCssHtml2", &encodingV)) - { + if (!db_get_ws(0, MODULE, "extCssHtml2", &encodingV)) { extCssHtml2 = encodingV.pwszVal; db_free(&encodingV); } - else - { - extCssHtml2 = _T(""); - } + else extCssHtml2 = _T(""); - if (!db_get_ws(0, MODULE, "ftpLogPath", &encodingV)) - { + if (!db_get_ws(0, MODULE, "ftpLogPath", &encodingV)) { ftpLogPath = encodingV.pwszVal; db_free(&encodingV); } - if (!db_get_ws(0, MODULE, "ftpExePath", &encodingV)) - { + if (!db_get_ws(0, MODULE, "ftpExePath", &encodingV)) { ftpExePath = encodingV.pwszVal; db_free(&encodingV); } - else - { - ftpExePath = ftpExePathDef; - } + else ftpExePath = ftpExePathDef; LoadTasks(); } @@ -475,11 +445,14 @@ void Options::Save() db_set_b(0, MODULE, "groupShowTime", groupShowTime ? 1 : 0); db_set_b(0, MODULE, "groupShowName", groupShowName ? 1 : 0); db_set_b(0, MODULE, "groupShowMessage", groupShowMessage ? 1 : 0); - if (groupMessageLen < 5) groupMessageLen = 5; + if (groupMessageLen < 5) + groupMessageLen = 5; db_set_dw(0, MODULE, "groupMessageLen", groupMessageLen); - if (groupTime < 1) groupTime = 1; + if (groupTime < 1) + groupTime = 1; db_set_dw(0, MODULE, "groupTime", groupTime); - if (groupMessagesNumber < 1) groupMessagesNumber = 1; + if (groupMessagesNumber < 1) + groupMessagesNumber = 1; db_set_dw(0, MODULE, "groupMessagesNumber", groupMessagesNumber); db_set_b(0, MODULE, "messagesNewOnTop", messagesNewOnTop ? 1 : 0); db_set_b(0, MODULE, "messagesShowDate", messagesShowDate ? 1 : 0); @@ -497,21 +470,20 @@ void Options::Save() db_set_b(0, MODULE, "searchAllContacts", searchAllContacts ? 1 : 0); db_set_b(0, MODULE, "schedulerAlerts", schedulerAlerts ? 1 : 0); db_set_b(0, MODULE, "schedulerHistoryAlerts", schedulerHistoryAlerts ? 1 : 0); - if (defFilter < 0 || defFilter - 2 >= (int)customFilters.size()) defFilter = 0; + if (defFilter < 0 || defFilter - 2 >= (int)customFilters.size()) + defFilter = 0; db_set_b(0, MODULE, "defFilter", defFilter < 2 ? defFilter : 2); if (defFilter >= 2) db_set_ws(0, MODULE, "defFilterStr", customFilters[defFilter - 2].name.c_str()); db_set_dw(0, MODULE, "customFiltersCount", (DWORD)customFilters.size()); - for(int i = 0 ; i < (int)customFilters.size(); ++i) - { + for (int i = 0 ; i < (int)customFilters.size(); ++i) { char buf[256]; mir_snprintf(buf, SIZEOF(buf), "filterName_%d", i); db_set_ws(0, MODULE, buf, customFilters[i].name.c_str()); mir_snprintf(buf, SIZEOF(buf), "filterInOut_%d", i); db_set_b(0, MODULE, buf, customFilters[i].onlyIncomming ? 1 : (customFilters[i].onlyOutgoing ? 2 : 0)); std::string events; - for(std::vector::iterator it = customFilters[i].events.begin(); it != customFilters[i].events.end(); ++it) - { + for (std::vector::iterator it = customFilters[i].events.begin(); it != customFilters[i].events.end(); ++it) { _itoa_s(*it, buf, 16); events += buf; events += ";"; @@ -533,13 +505,9 @@ void Options::Save() db_set_ws(0, MODULE, "extCssHtml2", extCssHtml2.c_str()); db_set_ws(0, MODULE, "ftpLogPath", ftpLogPath.c_str()); if (ftpExePath != ftpExePathDef) - { db_set_ws(0, MODULE, "ftpExePath", ftpExePath.c_str()); - } else - { db_unset(0, MODULE, "ftpExePath"); - } } void Options::SaveTasks(std::list* tasks) @@ -549,7 +517,7 @@ void Options::SaveTasks(std::list* tasks) taskOptions.clear(); int i = 0; char buf[256]; - for(std::list::iterator it = tasks->begin(); it != tasks->end(); ++it) { + for (std::list::iterator it = tasks->begin(); it != tasks->end(); ++it) { mir_snprintf(buf, SIZEOF(buf), "Task_compress_%d", i); db_set_b(0, MODULE, buf, it->compress); mir_snprintf(buf, SIZEOF(buf), "Task_useFtp_%d", i); @@ -601,7 +569,7 @@ void Options::SaveTasks(std::list* tasks) for (HANDLE hContact = db_find_first(); hContact; hContact = db_find_next(hContact)) db_unset(hContact, MODULE, buf); - for(size_t j = 0; j < it->contacts.size(); ++j) + for (size_t j = 0; j < it->contacts.size(); ++j) db_set_b(it->contacts[j], MODULE, buf, 1); it->orderNr = i++; @@ -610,7 +578,7 @@ void Options::SaveTasks(std::list* tasks) db_set_dw(0, MODULE, "Task_count", i); - for(i = (int)tasks->size(); i < oldTaskNr; ++i) { + for (i = (int)tasks->size(); i < oldTaskNr; ++i) { mir_snprintf(buf, SIZEOF(buf), "Task_compress_%d", i); db_unset(NULL, MODULE, buf); mir_snprintf(buf, SIZEOF(buf), "Task_useFtp_%d", i); @@ -674,8 +642,7 @@ void Options::LoadTasks() { int taskCount = db_get_dw(0, MODULE, "Task_count", 0); char buf[256]; - for(int i = 0; i < taskCount; ++i) - { + for (int i = 0; i < taskCount; ++i) { TaskOptions to; mir_snprintf(buf, SIZEOF(buf), "Task_compress_%d", i); to.compress = db_get_b(0, MODULE, buf, to.compress) != 0; @@ -716,32 +683,27 @@ void Options::LoadTasks() to.lastExport |= ((unsigned long long int)db_get_dw(0, MODULE, buf, le >> 32)) << 32; mir_snprintf(buf, SIZEOF(buf), "Task_ftpName_%d", i); DBVARIANT var; - if (!db_get_ws(0, MODULE, buf, &var)) - { + if (!db_get_ws(0, MODULE, buf, &var)) { to.ftpName = var.ptszVal; db_free(&var); } mir_snprintf(buf, SIZEOF(buf), "Task_filterName_%d", i); - if (!db_get_ws(0, MODULE, buf, &var)) - { + if (!db_get_ws(0, MODULE, buf, &var)) { to.filterName = var.ptszVal; db_free(&var); } mir_snprintf(buf, SIZEOF(buf), "Task_filePath_%d", i); - if (!db_get_ws(0, MODULE, buf, &var)) - { + if (!db_get_ws(0, MODULE, buf, &var)) { to.filePath = var.ptszVal; db_free(&var); } mir_snprintf(buf, SIZEOF(buf), "Task_taskName_%d", i); - if (!db_get_ws(0, MODULE, buf, &var)) - { + if (!db_get_ws(0, MODULE, buf, &var)) { to.taskName = var.ptszVal; db_free(&var); } mir_snprintf(buf, SIZEOF(buf), "Task_zipPassword_%d", i); - if (!db_get_s(0, MODULE, buf, &var)) - { + if (!db_get_s(0, MODULE, buf, &var)) { to.zipPassword = var.pszVal; db_free(&var); } @@ -767,35 +729,27 @@ void SetEventCB(HWND hwndCB, int eventId) { int cpCount = SIZEOF(EventNames); int selCpIdx = -1; - for(int i = 0; i < cpCount; ++i) - { + for (int i = 0; i < cpCount; ++i) if (EventNames[i].id == eventId) selCpIdx = i; - } - if (selCpIdx == -1) - { + if (selCpIdx == -1) { TCHAR buf[24]; mir_sntprintf(buf, SIZEOF(buf), _T("%d"), eventId); ComboBox_SetText(hwndCB, buf); } - else - { - ComboBox_SetCurSel(hwndCB, selCpIdx); - } + else ComboBox_SetCurSel(hwndCB, selCpIdx); } int GetEventCB(HWND hwndCB, bool errorReport, int &eventId) { int selCpIdx = ComboBox_GetCurSel(hwndCB); - if (selCpIdx < 0) - { + if (selCpIdx < 0) { TCHAR text[24]; ComboBox_GetText(hwndCB, text, 24); TCHAR * stopOn = NULL; long cp = _tcstol(text, &stopOn, 10); - if (errorReport && (stopOn == text || *stopOn != '\0' || cp < 0)) - { + if (errorReport && (stopOn == text || *stopOn != '\0' || cp < 0)) { MessageBox(GetParent(hwndCB), TranslateT("Invalid event number"), TranslateT("Error"), MB_OK | MB_ICONERROR); SetFocus(hwndCB); return -1; @@ -821,34 +775,25 @@ void ReloadEventLB(HWND hwndLB, const FilterOptions &sel) { while(ListBox_GetCount(hwndLB) > 0) ListBox_DeleteString(hwndLB, 0); + if (sel.onlyIncomming && !sel.onlyOutgoing) - { ListBox_AddString(hwndLB, TranslateT("Incoming events")); - } else if (sel.onlyOutgoing && !sel.onlyIncomming) - { ListBox_AddString(hwndLB, TranslateT("Outgoing events")); - } - for(std::vector::const_iterator it = sel.events.begin(); it != sel.events.end(); ++it) - { + for (std::vector::const_iterator it = sel.events.begin(); it != sel.events.end(); ++it) { int cpCount = SIZEOF(EventNames); int selCpIdx = -1; - for(int i = 0; i < cpCount; ++i) - { + for (int i = 0; i < cpCount; ++i) if (EventNames[i].id == *it) selCpIdx = i; - } - if (selCpIdx == -1) - { + + if (selCpIdx == -1) { TCHAR buf[24]; mir_sntprintf(buf, SIZEOF(buf), _T("%d"), *it); ListBox_AddString(hwndLB, buf); } - else - { - ListBox_AddString(hwndLB, TranslateTS(EventNames[selCpIdx].name)); - } + else ListBox_AddString(hwndLB, TranslateTS(EventNames[selCpIdx].name)); } } @@ -857,8 +802,7 @@ bool CheckFile(HWND hwndEdit) TCHAR buf[MAX_PATH]; Edit_GetText(hwndEdit, buf, MAX_PATH); DWORD atr = GetFileAttributes(buf); - if (atr == INVALID_FILE_ATTRIBUTES || atr & FILE_ATTRIBUTE_DIRECTORY) - { + if (atr == INVALID_FILE_ATTRIBUTES || atr & FILE_ATTRIBUTE_DIRECTORY) { MessageBox(GetParent(hwndEdit), TranslateT("File do not exist. Enter correct file path."), TranslateT("Invalid file"), MB_OK | MB_ICONERROR); SetFocus(hwndEdit); return false; @@ -886,14 +830,12 @@ bool OpenFileDlg(HWND hwndDlg, HWND hwndEdit, const TCHAR* defName, const TCHAR* TCHAR stzFilePath[1024]; Edit_GetText(hwndEdit, stzFilePath, 1023); - if (stzFilePath[0] == 0) - { + if (stzFilePath[0] == 0) { _tcscpy_s(stzFilePath, defName); len = _tcslen(stzFilePath) + 1; stzFilePath[len] = 0; } - else - { + else { len = _tcslen(stzFilePath) + 1; stzFilePath[len] = 0; } @@ -907,20 +849,16 @@ bool OpenFileDlg(HWND hwndDlg, HWND hwndEdit, const TCHAR* defName, const TCHAR* ofn.lpstrTitle = title; ofn.nMaxFile = 1024; ofn.lpstrDefExt = ext; - if (open) - { + if (open) { ofn.Flags = OFN_PATHMUSTEXIST | OFN_EXPLORER | OFN_NOCHANGEDIR | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY; - if (GetOpenFileName(&ofn)) - { + if (GetOpenFileName(&ofn)) { Edit_SetText(hwndEdit, stzFilePath); return true; } } - else - { + else { ofn.Flags = OFN_NOREADONLYRETURN | OFN_PATHMUSTEXIST | OFN_EXPLORER | OFN_NOCHANGEDIR; - if (GetSaveFileName(&ofn)) - { + if (GetSaveFileName(&ofn)) { Edit_SetText(hwndEdit, stzFilePath); return true; } @@ -931,11 +869,10 @@ bool OpenFileDlg(HWND hwndDlg, HWND hwndEdit, const TCHAR* defName, const TCHAR* INT_PTR CALLBACK Options::DlgProcOptsMain(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { - switch(msg) - { - case WM_INITDIALOG: + switch(msg) { + case WM_INITDIALOG: + TranslateDialogDefault(hwndDlg); { - TranslateDialogDefault(hwndDlg); SetWindowLongPtr(hwndDlg, GWLP_USERDATA, (LONG_PTR)FALSE); CheckDlgButton(hwndDlg, IDC_SHOWCONTACTS, instance->showContacts ? 1 : 0); CheckDlgButton(hwndDlg, IDC_SHOWCONTACTGROUPS, instance->showContactGroups ? 1 : 0); @@ -947,10 +884,8 @@ INT_PTR CALLBACK Options::DlgProcOptsMain(HWND hwndDlg, UINT msg, WPARAM wParam, HWND ftpLog = GetDlgItem(hwndDlg, IDC_WINSCPLOG); ComboBox_AddString(events, TranslateT("Incoming events")); ComboBox_AddString(events, TranslateT("Outgoing events")); - for(int i = 0 ; i < SIZEOF(EventNames); ++i) - { + for (int i = 0 ; i < SIZEOF(EventNames); ++i) ComboBox_AddString(events, TranslateTS(EventNames[i].name)); - } ComboBox_AddString(defFilter, TranslateT("Default history events")); ComboBox_AddString(defFilter, TranslateT("All events")); @@ -959,8 +894,7 @@ INT_PTR CALLBACK Options::DlgProcOptsMain(HWND hwndDlg, UINT msg, WPARAM wParam, instance->customFiltersTemp.clear(); instance->customFiltersTemp.insert(instance->customFiltersTemp.begin(), instance->customFilters.begin(), instance->customFilters.end()); - for(std::vector::iterator it = instance->customFiltersTemp.begin(); it != instance->customFiltersTemp.end(); ++it) - { + for (std::vector::iterator it = instance->customFiltersTemp.begin(); it != instance->customFiltersTemp.end(); ++it) { ComboBox_AddString(defFilter, it->name.c_str()); ListBox_AddString(listFilter, it->name.c_str()); } @@ -975,35 +909,31 @@ INT_PTR CALLBACK Options::DlgProcOptsMain(HWND hwndDlg, UINT msg, WPARAM wParam, Edit_SetText(ftp, instance->ftpExePath.c_str()); Edit_SetText(ftpLog, instance->ftpLogPath.c_str()); SetWindowLongPtr(hwndDlg, GWLP_USERDATA, (LONG_PTR)TRUE); - return TRUE; } - case WM_COMMAND: + return TRUE; + + case WM_COMMAND: { BOOL init = (BOOL)GetWindowLongPtr(hwndDlg, GWLP_USERDATA); - if (HIWORD(wParam) == BN_CLICKED) - { + if (HIWORD(wParam) == BN_CLICKED) { HWND listFilter = GetDlgItem(hwndDlg, IDC_LIST_FILTERS); HWND listEvents = GetDlgItem(hwndDlg, IDC_LIST_EVENTS); HWND nameFilter = GetDlgItem(hwndDlg, IDC_FILTER_NAME); HWND defFilter = GetDlgItem(hwndDlg, IDC_DEFFILTER); HWND eventCB = GetDlgItem(hwndDlg, IDC_EVENT); - switch(LOWORD(wParam)) - { + switch(LOWORD(wParam)) { case IDC_ADD_FILTER: { TCHAR name[24]; Edit_GetText(nameFilter, name, 24); - if (name[0] == 0) - { + if (name[0] == 0) { MessageBox(hwndDlg, TranslateT("Enter filter name"), TranslateT("Error"), MB_ICONERROR); return TRUE; } - + FilterOptions fo(name); - for(std::vector::iterator it = instance->customFiltersTemp.begin(); it != instance->customFiltersTemp.end(); ++it) - { - if (it->name == fo.name) - { + for (std::vector::iterator it = instance->customFiltersTemp.begin(); it != instance->customFiltersTemp.end(); ++it) { + if (it->name == fo.name) { MessageBox(hwndDlg, TranslateT("Filter name exists"), TranslateT("Error"), MB_ICONERROR); return TRUE; } @@ -1022,24 +952,22 @@ INT_PTR CALLBACK Options::DlgProcOptsMain(HWND hwndDlg, UINT msg, WPARAM wParam, EnableWindow(GetDlgItem(hwndDlg, IDC_DELETE_EVENT), FALSE); } break; + case IDC_DELETE_FILTER: { int sel = ListBox_GetCurSel(listFilter); if (sel < 0) return TRUE; - for(size_t i = sel; i < instance->customFiltersTemp.size() - 1; ++i) - { + + for (size_t i = sel; i < instance->customFiltersTemp.size() - 1; ++i) instance->customFiltersTemp[i] = instance->customFiltersTemp[i + 1]; - } instance->customFiltersTemp.resize(instance->customFiltersTemp.size() - 1); ListBox_DeleteString(listFilter, sel); ComboBox_DeleteString(defFilter, sel + 2); if (ComboBox_GetCurSel(defFilter) < 0) - { ComboBox_SetCurSel(defFilter, 0); - } - + ClearLB(listEvents); EnableWindow(GetDlgItem(hwndDlg, IDC_DELETE_FILTER), FALSE); EnableWindow(GetDlgItem(hwndDlg, IDC_EVENT), FALSE); @@ -1047,19 +975,20 @@ INT_PTR CALLBACK Options::DlgProcOptsMain(HWND hwndDlg, UINT msg, WPARAM wParam, EnableWindow(GetDlgItem(hwndDlg, IDC_DELETE_EVENT), FALSE); } break; + case IDC_ADD_EVENT: { int sel = ListBox_GetCurSel(listFilter); if (sel < 0) return TRUE; + int eventId; int selCB = GetEventCB(eventCB, true, eventId); if (selCB < 0) return TRUE; - if (selCB == 1) - { - if (instance->customFiltersTemp[sel].onlyIncomming) - { + + if (selCB == 1) { + if (instance->customFiltersTemp[sel].onlyIncomming) { MessageBox(hwndDlg, TranslateT("Event already exists"), TranslateT("Error"), MB_ICONERROR); return TRUE; } @@ -1069,23 +998,19 @@ INT_PTR CALLBACK Options::DlgProcOptsMain(HWND hwndDlg, UINT msg, WPARAM wParam, else instance->customFiltersTemp[sel].onlyIncomming = true; } - else if (selCB == 2) - { - if (instance->customFiltersTemp[sel].onlyOutgoing) - { + else if (selCB == 2) { + if (instance->customFiltersTemp[sel].onlyOutgoing) { MessageBox(hwndDlg, TranslateT("Event already exists"), TranslateT("Error"), MB_ICONERROR); return TRUE; } - + if (instance->customFiltersTemp[sel].onlyIncomming) instance->customFiltersTemp[sel].onlyIncomming = false; else instance->customFiltersTemp[sel].onlyOutgoing = true; } - else - { - if (std::find(instance->customFiltersTemp[sel].events.begin(), instance->customFiltersTemp[sel].events.end(), eventId) != instance->customFiltersTemp[sel].events.end()) - { + else { + if (std::find(instance->customFiltersTemp[sel].events.begin(), instance->customFiltersTemp[sel].events.end(), eventId) != instance->customFiltersTemp[sel].events.end()) { MessageBox(hwndDlg, TranslateT("Event already exists"), TranslateT("Error"), MB_ICONERROR); return TRUE; } @@ -1098,29 +1023,28 @@ INT_PTR CALLBACK Options::DlgProcOptsMain(HWND hwndDlg, UINT msg, WPARAM wParam, EnableWindow(GetDlgItem(hwndDlg, IDC_DELETE_EVENT), FALSE); } break; + case IDC_DELETE_EVENT: { int sel = ListBox_GetCurSel(listFilter); if (sel < 0) return TRUE; + int eventSel = ListBox_GetCurSel(listEvents); if (eventSel < 0) return TRUE; + int stId = 0; if (instance->customFiltersTemp[sel].onlyIncomming || instance->customFiltersTemp[sel].onlyOutgoing) ++stId; - if (eventSel >= stId) - { + if (eventSel >= stId) { --eventSel; - for(int i = eventSel; i < (int)instance->customFiltersTemp[sel].events.size() - 1; ++i) - { + for (int i = eventSel; i < (int)instance->customFiltersTemp[sel].events.size() - 1; ++i) instance->customFiltersTemp[sel].events[i] = instance->customFiltersTemp[sel].events[i + 1]; - } instance->customFiltersTemp[sel].events.resize(instance->customFiltersTemp[sel].events.size() - 1); } - else - { + else { instance->customFiltersTemp[sel].onlyIncomming = false; instance->customFiltersTemp[sel].onlyOutgoing = false; } @@ -1129,24 +1053,19 @@ INT_PTR CALLBACK Options::DlgProcOptsMain(HWND hwndDlg, UINT msg, WPARAM wParam, EnableWindow(GetDlgItem(hwndDlg, IDC_DELETE_EVENT), FALSE); } break; + case IDC_WINSCP_BROWSE: if (!OpenFileDlg(hwndDlg, GetDlgItem(hwndDlg, IDC_WINSCP), _T("WinSCP.exe"), _T("exe"), TranslateT("Browse WinSCP file"), true)) - { return TRUE; - } - break; + case IDC_WINSCPLOG_BROWSE: if (!OpenFileDlg(hwndDlg, GetDlgItem(hwndDlg, IDC_WINSCPLOG), _T("ftplog.txt"), _T("txt"), TranslateT("Save WinSCP log file"), false)) - { return TRUE; - } - break; } } - else if (HIWORD(wParam) == CBN_SELCHANGE && LOWORD(wParam) == IDC_LIST_FILTERS) - { + else if (HIWORD(wParam) == CBN_SELCHANGE && LOWORD(wParam) == IDC_LIST_FILTERS) { HWND listFilter = GetDlgItem(hwndDlg, IDC_LIST_FILTERS); HWND listEvents = GetDlgItem(hwndDlg, IDC_LIST_EVENTS); int sel = ListBox_GetCurSel(listFilter); @@ -1159,8 +1078,7 @@ INT_PTR CALLBACK Options::DlgProcOptsMain(HWND hwndDlg, UINT msg, WPARAM wParam, EnableWindow(GetDlgItem(hwndDlg, IDC_ADD_EVENT), sel >= 0); EnableWindow(GetDlgItem(hwndDlg, IDC_DELETE_EVENT), FALSE); } - else if (HIWORD(wParam) == CBN_SELCHANGE && LOWORD(wParam) == IDC_LIST_EVENTS) - { + else if (HIWORD(wParam) == CBN_SELCHANGE && LOWORD(wParam) == IDC_LIST_EVENTS) { HWND listEvents = GetDlgItem(hwndDlg, IDC_LIST_EVENTS); int sel = ListBox_GetCurSel(listEvents); EnableWindow(GetDlgItem(hwndDlg, IDC_DELETE_EVENT), sel >= 0); @@ -1170,35 +1088,32 @@ INT_PTR CALLBACK Options::DlgProcOptsMain(HWND hwndDlg, UINT msg, WPARAM wParam, SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); return TRUE; } - case WM_NOTIFY: - { - if (((LPNMHDR)lParam)->code == PSN_APPLY) - { - HWND ftp = GetDlgItem(hwndDlg, IDC_WINSCP); - TCHAR buf[MAX_PATH]; - Edit_GetText(ftp, buf, MAX_PATH); - if (buf[0] != 0 && !CheckFile(ftp)) - { - SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); - SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, PSNRET_INVALID_NOCHANGEPAGE); - return TRUE; - } - instance->ftpExePath = buf; - Edit_GetText(GetDlgItem(hwndDlg, IDC_WINSCPLOG), buf, MAX_PATH); - instance->ftpLogPath = buf; - - instance->showContacts = IsDlgButtonChecked(hwndDlg, IDC_SHOWCONTACTS) ? true : false; - instance->showContactGroups = IsDlgButtonChecked(hwndDlg, IDC_SHOWCONTACTGROUPS) ? true : false; - instance->noFindBorder = IsDlgButtonChecked(hwndDlg, IDC_FINDNOBORDER) ? true : false; - instance->defFilter = ComboBox_GetCurSel(GetDlgItem(hwndDlg, IDC_DEFFILTER)); - instance->customFilters.clear(); - instance->customFilters.insert(instance->customFilters.begin(), instance->customFiltersTemp.begin(), instance->customFiltersTemp.end()); - Options::instance->Save(); - OptionsMainChanged(); + case WM_NOTIFY: + if (((LPNMHDR)lParam)->code == PSN_APPLY) { + HWND ftp = GetDlgItem(hwndDlg, IDC_WINSCP); + TCHAR buf[MAX_PATH]; + Edit_GetText(ftp, buf, MAX_PATH); + if (buf[0] != 0 && !CheckFile(ftp)) { + SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, PSNRET_INVALID_NOCHANGEPAGE); + return TRUE; } - return TRUE; + + instance->ftpExePath = buf; + Edit_GetText(GetDlgItem(hwndDlg, IDC_WINSCPLOG), buf, MAX_PATH); + instance->ftpLogPath = buf; + + instance->showContacts = IsDlgButtonChecked(hwndDlg, IDC_SHOWCONTACTS) ? true : false; + instance->showContactGroups = IsDlgButtonChecked(hwndDlg, IDC_SHOWCONTACTGROUPS) ? true : false; + instance->noFindBorder = IsDlgButtonChecked(hwndDlg, IDC_FINDNOBORDER) ? true : false; + instance->defFilter = ComboBox_GetCurSel(GetDlgItem(hwndDlg, IDC_DEFFILTER)); + instance->customFilters.clear(); + instance->customFilters.insert(instance->customFilters.begin(), instance->customFiltersTemp.begin(), instance->customFiltersTemp.end()); + Options::instance->Save(); + OptionsMainChanged(); } + return TRUE; } return FALSE; @@ -1217,11 +1132,10 @@ public: INT_PTR CALLBACK Options::DlgProcOptsGroupList(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { - switch(msg) - { - case WM_INITDIALOG: + switch(msg) { + case WM_INITDIALOG: + TranslateDialogDefault(hwndDlg); { - TranslateDialogDefault(hwndDlg); OptsData* optsData = new OptsData(); SetWindowLongPtr(hwndDlg, GWLP_USERDATA, (LONG_PTR)optsData); @@ -1239,20 +1153,18 @@ INT_PTR CALLBACK Options::DlgProcOptsGroupList(HWND hwndDlg, UINT msg, WPARAM wP SetDlgItemInt(hwndDlg, IDC_LIMITMESSAGES, instance->groupMessagesNumber, FALSE); optsData->init = true; - return TRUE; } - case WM_COMMAND: + return TRUE; + + case WM_COMMAND: { OptsData* optsData = (OptsData*)GetWindowLongPtr(hwndDlg, GWLP_USERDATA); - if (HIWORD(wParam) == BN_CLICKED && LOWORD(wParam) == IDC_SHOWMESSAGE) - { - if (IsDlgButtonChecked(hwndDlg, IDC_SHOWMESSAGE)) - { + if (HIWORD(wParam) == BN_CLICKED && LOWORD(wParam) == IDC_SHOWMESSAGE) { + if (IsDlgButtonChecked(hwndDlg, IDC_SHOWMESSAGE)) { EnableWindow(GetDlgItem(hwndDlg, IDC_MESSAGELEN), TRUE); EnableWindow(GetDlgItem(hwndDlg, IDC_MESSAGELEN_DESC), TRUE); } - else - { + else { EnableWindow(GetDlgItem(hwndDlg, IDC_MESSAGELEN), FALSE); EnableWindow(GetDlgItem(hwndDlg, IDC_MESSAGELEN_DESC), FALSE); } @@ -1261,25 +1173,22 @@ INT_PTR CALLBACK Options::DlgProcOptsGroupList(HWND hwndDlg, UINT msg, WPARAM wP SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); return TRUE; } - case WM_NOTIFY: - { - if (((LPNMHDR)lParam)->code == PSN_APPLY) - { - instance->groupNewOnTop = IsDlgButtonChecked(hwndDlg, IDC_NEWONTOP) ? true : false; - instance->groupShowEvents = IsDlgButtonChecked(hwndDlg, IDC_SHOWEVENTS) ? true : false; - instance->groupShowTime = IsDlgButtonChecked(hwndDlg, IDC_SHOWTIME) ? true : false; - instance->groupShowName = IsDlgButtonChecked(hwndDlg, IDC_SHOWNAME) ? true : false; - instance->groupShowMessage = IsDlgButtonChecked(hwndDlg, IDC_SHOWMESSAGE) ? true : false; - BOOL success; - instance->groupMessageLen = GetDlgItemInt(hwndDlg, IDC_MESSAGELEN, &success, FALSE); - instance->groupTime = GetDlgItemInt(hwndDlg, IDC_GROUPTIME, &success, FALSE); - instance->groupMessagesNumber = GetDlgItemInt(hwndDlg, IDC_LIMITMESSAGES, &success, FALSE); - - Options::instance->Save(); - OptionsGroupChanged(); - } - return TRUE; + case WM_NOTIFY: + if (((LPNMHDR)lParam)->code == PSN_APPLY) { + instance->groupNewOnTop = IsDlgButtonChecked(hwndDlg, IDC_NEWONTOP) ? true : false; + instance->groupShowEvents = IsDlgButtonChecked(hwndDlg, IDC_SHOWEVENTS) ? true : false; + instance->groupShowTime = IsDlgButtonChecked(hwndDlg, IDC_SHOWTIME) ? true : false; + instance->groupShowName = IsDlgButtonChecked(hwndDlg, IDC_SHOWNAME) ? true : false; + instance->groupShowMessage = IsDlgButtonChecked(hwndDlg, IDC_SHOWMESSAGE) ? true : false; + BOOL success; + instance->groupMessageLen = GetDlgItemInt(hwndDlg, IDC_MESSAGELEN, &success, FALSE); + instance->groupTime = GetDlgItemInt(hwndDlg, IDC_GROUPTIME, &success, FALSE); + instance->groupMessagesNumber = GetDlgItemInt(hwndDlg, IDC_LIMITMESSAGES, &success, FALSE); + + Options::instance->Save(); + OptionsGroupChanged(); } + return TRUE; } return FALSE; @@ -1287,44 +1196,38 @@ INT_PTR CALLBACK Options::DlgProcOptsGroupList(HWND hwndDlg, UINT msg, WPARAM wP INT_PTR CALLBACK Options::DlgProcOptsMessages(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { - switch(msg) - { - case WM_INITDIALOG: - { - TranslateDialogDefault(hwndDlg); - - CheckDlgButton(hwndDlg, IDC_NEWONTOP, instance->messagesNewOnTop ? 1 : 0); - CheckDlgButton(hwndDlg, IDC_SHOWDATE, instance->messagesShowDate ? 1 : 0); - CheckDlgButton(hwndDlg, IDC_SHOWSECOND, instance->messagesShowSec ? 1 : 0); - CheckDlgButton(hwndDlg, IDC_SHOWNAME, instance->messagesShowName ? 1 : 0); - CheckDlgButton(hwndDlg, IDC_SHOWEVENTS, instance->messagesShowEvents ? 1 : 0); - CheckDlgButton(hwndDlg, IDC_SHOWSMILEYS, instance->messagesUseSmileys ? 1 : 0); - if (!g_SmileyAddAvail) - EnableWindow(GetDlgItem(hwndDlg, IDC_SHOWSMILEYS), FALSE); - return TRUE; - } - case WM_COMMAND: - { - if (HIWORD(wParam) == BN_CLICKED) - SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); - return TRUE; - } - case WM_NOTIFY: - { - if (((LPNMHDR)lParam)->code == PSN_APPLY) - { - instance->messagesNewOnTop = IsDlgButtonChecked(hwndDlg, IDC_NEWONTOP) ? true : false; - instance->messagesShowDate = IsDlgButtonChecked(hwndDlg, IDC_SHOWDATE) ? true : false; - instance->messagesShowSec = IsDlgButtonChecked(hwndDlg, IDC_SHOWSECOND) ? true : false; - instance->messagesShowName = IsDlgButtonChecked(hwndDlg, IDC_SHOWNAME) ? true : false; - instance->messagesShowEvents = IsDlgButtonChecked(hwndDlg, IDC_SHOWEVENTS) ? true : false; - instance->messagesUseSmileys = IsDlgButtonChecked(hwndDlg, IDC_SHOWSMILEYS) ? true : false; - - Options::instance->Save(); - OptionsMessageChanged(); - } - return TRUE; + switch(msg) { + case WM_INITDIALOG: + TranslateDialogDefault(hwndDlg); + + CheckDlgButton(hwndDlg, IDC_NEWONTOP, instance->messagesNewOnTop ? 1 : 0); + CheckDlgButton(hwndDlg, IDC_SHOWDATE, instance->messagesShowDate ? 1 : 0); + CheckDlgButton(hwndDlg, IDC_SHOWSECOND, instance->messagesShowSec ? 1 : 0); + CheckDlgButton(hwndDlg, IDC_SHOWNAME, instance->messagesShowName ? 1 : 0); + CheckDlgButton(hwndDlg, IDC_SHOWEVENTS, instance->messagesShowEvents ? 1 : 0); + CheckDlgButton(hwndDlg, IDC_SHOWSMILEYS, instance->messagesUseSmileys ? 1 : 0); + if (!g_SmileyAddAvail) + EnableWindow(GetDlgItem(hwndDlg, IDC_SHOWSMILEYS), FALSE); + return TRUE; + + case WM_COMMAND: + if (HIWORD(wParam) == BN_CLICKED) + SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + return TRUE; + + case WM_NOTIFY: + if (((LPNMHDR)lParam)->code == PSN_APPLY) { + instance->messagesNewOnTop = IsDlgButtonChecked(hwndDlg, IDC_NEWONTOP) ? true : false; + instance->messagesShowDate = IsDlgButtonChecked(hwndDlg, IDC_SHOWDATE) ? true : false; + instance->messagesShowSec = IsDlgButtonChecked(hwndDlg, IDC_SHOWSECOND) ? true : false; + instance->messagesShowName = IsDlgButtonChecked(hwndDlg, IDC_SHOWNAME) ? true : false; + instance->messagesShowEvents = IsDlgButtonChecked(hwndDlg, IDC_SHOWEVENTS) ? true : false; + instance->messagesUseSmileys = IsDlgButtonChecked(hwndDlg, IDC_SHOWSMILEYS) ? true : false; + + Options::instance->Save(); + OptionsMessageChanged(); } + return TRUE; } return FALSE; @@ -1332,61 +1235,49 @@ INT_PTR CALLBACK Options::DlgProcOptsMessages(HWND hwndDlg, UINT msg, WPARAM wPa INT_PTR CALLBACK Options::DlgProcOptsSearching(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { - switch(msg) - { - case WM_INITDIALOG: - { - TranslateDialogDefault(hwndDlg); - - CheckDlgButton(hwndDlg, IDC_FORLIST, instance->searchForInList ? 1 : 0); - CheckDlgButton(hwndDlg, IDC_FORMES, instance->searchForInMess ? 1 : 0); - CheckDlgButton(hwndDlg, IDC_MATCHCASE, instance->searchMatchCase ? 1 : 0); - CheckDlgButton(hwndDlg, IDC_MATCHWHOLE, instance->searchMatchWhole ? 1 : 0); - CheckDlgButton(hwndDlg, IDC_ONLYIN, instance->searchOnlyIn ? 1 : 0); - CheckDlgButton(hwndDlg, IDC_ONLYOUT, instance->searchOnlyOut ? 1 : 0); - CheckDlgButton(hwndDlg, IDC_ONLYGROUP, instance->searchOnlyGroup ? 1 : 0); - CheckDlgButton(hwndDlg, IDC_ALLCONTACTS, instance->searchAllContacts ? 1 : 0); - return TRUE; + switch(msg) { + case WM_INITDIALOG: + TranslateDialogDefault(hwndDlg); + + CheckDlgButton(hwndDlg, IDC_FORLIST, instance->searchForInList ? 1 : 0); + CheckDlgButton(hwndDlg, IDC_FORMES, instance->searchForInMess ? 1 : 0); + CheckDlgButton(hwndDlg, IDC_MATCHCASE, instance->searchMatchCase ? 1 : 0); + CheckDlgButton(hwndDlg, IDC_MATCHWHOLE, instance->searchMatchWhole ? 1 : 0); + CheckDlgButton(hwndDlg, IDC_ONLYIN, instance->searchOnlyIn ? 1 : 0); + CheckDlgButton(hwndDlg, IDC_ONLYOUT, instance->searchOnlyOut ? 1 : 0); + CheckDlgButton(hwndDlg, IDC_ONLYGROUP, instance->searchOnlyGroup ? 1 : 0); + CheckDlgButton(hwndDlg, IDC_ALLCONTACTS, instance->searchAllContacts ? 1 : 0); + return TRUE; + + case WM_COMMAND: + if (HIWORD(wParam) == BN_CLICKED && LOWORD(wParam) == IDC_ONLYIN) { + if (IsDlgButtonChecked(hwndDlg, IDC_ONLYIN) && IsDlgButtonChecked(hwndDlg, IDC_ONLYOUT)) + CheckDlgButton(hwndDlg, IDC_ONLYOUT, 0); } - case WM_COMMAND: - { - if (HIWORD(wParam) == BN_CLICKED && LOWORD(wParam) == IDC_ONLYIN) - { - if (IsDlgButtonChecked(hwndDlg, IDC_ONLYIN) && IsDlgButtonChecked(hwndDlg, IDC_ONLYOUT)) - { - CheckDlgButton(hwndDlg, IDC_ONLYOUT, 0); - } - } - else if (HIWORD(wParam) == BN_CLICKED && LOWORD(wParam) == IDC_ONLYOUT) - { - if (IsDlgButtonChecked(hwndDlg, IDC_ONLYOUT) && IsDlgButtonChecked(hwndDlg, IDC_ONLYIN)) - { - CheckDlgButton(hwndDlg, IDC_ONLYIN, 0); - } - } - - if (HIWORD(wParam) == BN_CLICKED) - SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); - return TRUE; + else if (HIWORD(wParam) == BN_CLICKED && LOWORD(wParam) == IDC_ONLYOUT) { + if (IsDlgButtonChecked(hwndDlg, IDC_ONLYOUT) && IsDlgButtonChecked(hwndDlg, IDC_ONLYIN)) + CheckDlgButton(hwndDlg, IDC_ONLYIN, 0); } - case WM_NOTIFY: - { - if (((LPNMHDR)lParam)->code == PSN_APPLY) - { - instance->searchForInList = IsDlgButtonChecked(hwndDlg, IDC_FORLIST) ? true : false; - instance->searchForInMess = IsDlgButtonChecked(hwndDlg, IDC_FORMES) ? true : false; - instance->searchMatchCase = IsDlgButtonChecked(hwndDlg, IDC_MATCHCASE) ? true : false; - instance->searchMatchWhole = IsDlgButtonChecked(hwndDlg, IDC_MATCHWHOLE) ? true : false; - instance->searchOnlyIn = IsDlgButtonChecked(hwndDlg, IDC_ONLYIN) ? true : false; - instance->searchOnlyOut = IsDlgButtonChecked(hwndDlg, IDC_ONLYOUT) ? true : false; - instance->searchOnlyGroup = IsDlgButtonChecked(hwndDlg, IDC_ONLYGROUP) ? true : false; - instance->searchAllContacts = IsDlgButtonChecked(hwndDlg, IDC_ALLCONTACTS) ? true : false; - - Options::instance->Save(); - OptionsSearchingChanged(); - } - return TRUE; + + if (HIWORD(wParam) == BN_CLICKED) + SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + return TRUE; + + case WM_NOTIFY: + if (((LPNMHDR)lParam)->code == PSN_APPLY) { + instance->searchForInList = IsDlgButtonChecked(hwndDlg, IDC_FORLIST) ? true : false; + instance->searchForInMess = IsDlgButtonChecked(hwndDlg, IDC_FORMES) ? true : false; + instance->searchMatchCase = IsDlgButtonChecked(hwndDlg, IDC_MATCHCASE) ? true : false; + instance->searchMatchWhole = IsDlgButtonChecked(hwndDlg, IDC_MATCHWHOLE) ? true : false; + instance->searchOnlyIn = IsDlgButtonChecked(hwndDlg, IDC_ONLYIN) ? true : false; + instance->searchOnlyOut = IsDlgButtonChecked(hwndDlg, IDC_ONLYOUT) ? true : false; + instance->searchOnlyGroup = IsDlgButtonChecked(hwndDlg, IDC_ONLYGROUP) ? true : false; + instance->searchAllContacts = IsDlgButtonChecked(hwndDlg, IDC_ALLCONTACTS) ? true : false; + + Options::instance->Save(); + OptionsSearchingChanged(); } + return TRUE; } return FALSE; @@ -1397,23 +1288,18 @@ void InitCodepageCB(HWND hwndCB, unsigned int codepage, const std::wstring& name int cpCount = sizeof(cpTable) / sizeof(cpTable[0]); int selCpIdx = -1; ComboBox_LimitText(hwndCB, 256); - for(int i = 0; i < cpCount; ++i) - { + for (int i = 0; i < cpCount; ++i) { ComboBox_AddString(hwndCB, TranslateTS(cpTable[i].cpName)); if (cpTable[i].cpId == codepage && name == cpTable[i].cpName) selCpIdx = i; } - if (selCpIdx == -1) - { + if (selCpIdx == -1) { TCHAR buf[300]; mir_sntprintf(buf, 300, _T("%d;%s"), codepage, name.c_str()); ComboBox_SetText(hwndCB, buf); } - else - { - ComboBox_SetCurSel(hwndCB, selCpIdx); - } + else ComboBox_SetCurSel(hwndCB, selCpIdx); ComboBox_LimitText(hwndCB, 127); } @@ -1421,25 +1307,21 @@ void InitCodepageCB(HWND hwndCB, unsigned int codepage, const std::wstring& name unsigned int GetCodepageCB(HWND hwndCB, bool errorReport, unsigned int defCp, const std::wstring& defName, std::wstring& name) { int selCpIdx = ComboBox_GetCurSel(hwndCB); - if (selCpIdx < 0) - { + if (selCpIdx < 0) { TCHAR text[128]; ComboBox_GetText(hwndCB, text, 128); std::wstring str = text; name = _T(""); size_t pos = str.find_first_of(_T(';')); - if (pos < str.length()) - { + if (pos < str.length()) { text[pos] = 0; name = str.substr(pos + 1); } TCHAR * stopOn = NULL; long cp = _tcstol(text, &stopOn, 10); - if ((pos >= str.length() || name.empty() || stopOn == text || *stopOn != '\0' || cp < 0 || cp > 0xffff)) - { - if (errorReport) - { + if ((pos >= str.length() || name.empty() || stopOn == text || *stopOn != '\0' || cp < 0 || cp > 0xffff)) { + if (errorReport) { MessageBox(GetParent(hwndCB), TranslateT("You've entered invalid codepage. Select codepage from combo box or enter correct number."), TranslateT("Invalid codepage"), MB_OK | MB_ICONERROR); SetFocus(hwndCB); } @@ -1450,8 +1332,7 @@ unsigned int GetCodepageCB(HWND hwndCB, bool errorReport, unsigned int defCp, co return cp; } - else - { + else { name = cpTable[selCpIdx].cpName; return cpTable[selCpIdx].cpId; } @@ -1459,114 +1340,97 @@ unsigned int GetCodepageCB(HWND hwndCB, bool errorReport, unsigned int defCp, co INT_PTR CALLBACK Options::DlgProcOptsExport(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { - switch(msg) - { - case WM_INITDIALOG: - { - TranslateDialogDefault(hwndDlg); - SetWindowLongPtr(hwndDlg, GWLP_USERDATA, (LONG_PTR)FALSE); - InitCodepageCB(GetDlgItem(hwndDlg, IDC_TXTENC), instance->codepageTxt, instance->encodingTxt); - InitCodepageCB(GetDlgItem(hwndDlg, IDC_HTML1ENC), instance->codepageHtml1, instance->encodingHtml1); - InitCodepageCB(GetDlgItem(hwndDlg, IDC_HTML2ENC), instance->codepageHtml2, instance->encodingHtml2); - CheckDlgButton(hwndDlg, IDC_HTML1DATE, instance->exportHtml1ShowDate ? 1 : 0); - CheckDlgButton(hwndDlg, IDC_HTML2DATE, instance->exportHtml2ShowDate ? 1 : 0); - CheckDlgButton(hwndDlg, IDC_HTML2SHOWSMILEYS, instance->exportHtml2UseSmileys ? 1 : 0); - Edit_LimitText(GetDlgItem(hwndDlg, IDC_HTML2EXTCSSFILE), MAX_PATH); - if (instance->extCssHtml2.empty()) - { - EnableWindow(GetDlgItem(hwndDlg, IDC_HTML2EXTCSSFILE), FALSE); - EnableWindow(GetDlgItem(hwndDlg, IDC_CSS_BROWSE), FALSE); - } - else - { - CheckDlgButton(hwndDlg, IDC_HTML2EXTCSS, TRUE); - Edit_SetText(GetDlgItem(hwndDlg, IDC_HTML2EXTCSSFILE), instance->extCssHtml2.c_str()); - } - - if (!g_SmileyAddAvail) - EnableWindow(GetDlgItem(hwndDlg, IDC_HTML2SHOWSMILEYS), FALSE); - SetWindowLongPtr(hwndDlg, GWLP_USERDATA, (LONG_PTR)TRUE); - return TRUE; + switch(msg) { + case WM_INITDIALOG: + TranslateDialogDefault(hwndDlg); + SetWindowLongPtr(hwndDlg, GWLP_USERDATA, (LONG_PTR)FALSE); + InitCodepageCB(GetDlgItem(hwndDlg, IDC_TXTENC), instance->codepageTxt, instance->encodingTxt); + InitCodepageCB(GetDlgItem(hwndDlg, IDC_HTML1ENC), instance->codepageHtml1, instance->encodingHtml1); + InitCodepageCB(GetDlgItem(hwndDlg, IDC_HTML2ENC), instance->codepageHtml2, instance->encodingHtml2); + CheckDlgButton(hwndDlg, IDC_HTML1DATE, instance->exportHtml1ShowDate ? 1 : 0); + CheckDlgButton(hwndDlg, IDC_HTML2DATE, instance->exportHtml2ShowDate ? 1 : 0); + CheckDlgButton(hwndDlg, IDC_HTML2SHOWSMILEYS, instance->exportHtml2UseSmileys ? 1 : 0); + Edit_LimitText(GetDlgItem(hwndDlg, IDC_HTML2EXTCSSFILE), MAX_PATH); + if (instance->extCssHtml2.empty()) { + EnableWindow(GetDlgItem(hwndDlg, IDC_HTML2EXTCSSFILE), FALSE); + EnableWindow(GetDlgItem(hwndDlg, IDC_CSS_BROWSE), FALSE); + } + else { + CheckDlgButton(hwndDlg, IDC_HTML2EXTCSS, TRUE); + Edit_SetText(GetDlgItem(hwndDlg, IDC_HTML2EXTCSSFILE), instance->extCssHtml2.c_str()); } - case WM_COMMAND: + + if (!g_SmileyAddAvail) + EnableWindow(GetDlgItem(hwndDlg, IDC_HTML2SHOWSMILEYS), FALSE); + SetWindowLongPtr(hwndDlg, GWLP_USERDATA, (LONG_PTR)TRUE); + + return TRUE; + + case WM_COMMAND: { BOOL init = (BOOL)GetWindowLongPtr(hwndDlg, GWLP_USERDATA); - if (HIWORD(wParam) == BN_CLICKED && LOWORD(wParam) == IDC_HTML2EXTCSS) - { + if (HIWORD(wParam) == BN_CLICKED && LOWORD(wParam) == IDC_HTML2EXTCSS) { BOOL en = (BOOL)IsDlgButtonChecked(hwndDlg, IDC_HTML2EXTCSS); EnableWindow(GetDlgItem(hwndDlg, IDC_HTML2EXTCSSFILE), en); EnableWindow(GetDlgItem(hwndDlg, IDC_CSS_BROWSE), en); } - else if (HIWORD(wParam) == BN_CLICKED && LOWORD(wParam) == IDC_CSS_BROWSE) - { + else if (HIWORD(wParam) == BN_CLICKED && LOWORD(wParam) == IDC_CSS_BROWSE) { if (!OpenFileDlg(hwndDlg, GetDlgItem(hwndDlg, IDC_HTML2EXTCSSFILE), _T(""), _T("css"), TranslateT("Browse CSS file"), true)) - { return TRUE; - } } if (init && (HIWORD(wParam) == BN_CLICKED || HIWORD(wParam)==CBN_SELCHANGE || HIWORD(wParam)==CBN_EDITCHANGE || HIWORD(wParam) == EN_CHANGE)) SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); - return TRUE; } - case WM_NOTIFY: - { - if (((LPNMHDR)lParam)->code == PSN_APPLY) - { - std::wstring newName1, newName2, newName3; - unsigned int cp1 = GetCodepageCB(GetDlgItem(hwndDlg, IDC_TXTENC), true, instance->codepageTxt, instance->encodingTxt, newName1); - if (cp1 == -1) - { - SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); - SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, PSNRET_INVALID_NOCHANGEPAGE); - return TRUE; - } - unsigned int cp2 = GetCodepageCB(GetDlgItem(hwndDlg, IDC_HTML1ENC), true, instance->codepageHtml1, instance->encodingHtml1, newName2); - if (cp2 == -1) - { - SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); - SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, PSNRET_INVALID_NOCHANGEPAGE); - return TRUE; - } - unsigned int cp3 = GetCodepageCB(GetDlgItem(hwndDlg, IDC_HTML2ENC), true, instance->codepageHtml2, instance->encodingHtml2, newName3); - if (cp3 == -1) - { + return TRUE; + + case WM_NOTIFY: + if (((LPNMHDR)lParam)->code == PSN_APPLY) { + std::wstring newName1, newName2, newName3; + unsigned int cp1 = GetCodepageCB(GetDlgItem(hwndDlg, IDC_TXTENC), true, instance->codepageTxt, instance->encodingTxt, newName1); + if (cp1 == -1) { + SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, PSNRET_INVALID_NOCHANGEPAGE); + return TRUE; + } + unsigned int cp2 = GetCodepageCB(GetDlgItem(hwndDlg, IDC_HTML1ENC), true, instance->codepageHtml1, instance->encodingHtml1, newName2); + if (cp2 == -1) { + SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, PSNRET_INVALID_NOCHANGEPAGE); + return TRUE; + } + unsigned int cp3 = GetCodepageCB(GetDlgItem(hwndDlg, IDC_HTML2ENC), true, instance->codepageHtml2, instance->encodingHtml2, newName3); + if (cp3 == -1) { + SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, PSNRET_INVALID_NOCHANGEPAGE); + return TRUE; + } + if (IsDlgButtonChecked(hwndDlg, IDC_HTML2EXTCSS)) { + if (!CheckFile(GetDlgItem(hwndDlg, IDC_HTML2EXTCSSFILE))) { SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, PSNRET_INVALID_NOCHANGEPAGE); return TRUE; } - if (IsDlgButtonChecked(hwndDlg, IDC_HTML2EXTCSS)) - { - if (!CheckFile(GetDlgItem(hwndDlg, IDC_HTML2EXTCSSFILE))) - { - SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); - SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, PSNRET_INVALID_NOCHANGEPAGE); - return TRUE; - } - - TCHAR buf[MAX_PATH]; - Edit_GetText(GetDlgItem(hwndDlg, IDC_HTML2EXTCSSFILE), buf, MAX_PATH); - instance->extCssHtml2 = buf; - } - else - { - instance->extCssHtml2 = _T(""); - } - instance->codepageTxt = cp1; - instance->encodingTxt = newName1; - instance->codepageHtml1 = cp2; - instance->encodingHtml1 = newName2; - instance->codepageHtml2 = cp3; - instance->encodingHtml2 = newName3; - instance->exportHtml1ShowDate = IsDlgButtonChecked(hwndDlg, IDC_HTML1DATE) ? true : false; - instance->exportHtml2ShowDate = IsDlgButtonChecked(hwndDlg, IDC_HTML2DATE) ? true : false; - instance->exportHtml2UseSmileys = IsDlgButtonChecked(hwndDlg, IDC_HTML2SHOWSMILEYS) ? true : false; - - Options::instance->Save(); + TCHAR buf[MAX_PATH]; + Edit_GetText(GetDlgItem(hwndDlg, IDC_HTML2EXTCSSFILE), buf, MAX_PATH); + instance->extCssHtml2 = buf; } - return TRUE; + else instance->extCssHtml2 = _T(""); + + instance->codepageTxt = cp1; + instance->encodingTxt = newName1; + instance->codepageHtml1 = cp2; + instance->encodingHtml1 = newName2; + instance->codepageHtml2 = cp3; + instance->encodingHtml2 = newName3; + instance->exportHtml1ShowDate = IsDlgButtonChecked(hwndDlg, IDC_HTML1DATE) ? true : false; + instance->exportHtml2ShowDate = IsDlgButtonChecked(hwndDlg, IDC_HTML2DATE) ? true : false; + instance->exportHtml2UseSmileys = IsDlgButtonChecked(hwndDlg, IDC_HTML2SHOWSMILEYS) ? true : false; + + Options::instance->Save(); } + return TRUE; } return FALSE; @@ -1581,137 +1445,117 @@ struct DlgTaskOpt INT_PTR CALLBACK Options::DlgProcOptsScheduler(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { - switch(msg) - { - case WM_INITDIALOG: + std::list* tasks = (std::list*)GetWindowLongPtr(hwndDlg, GWLP_USERDATA); + + switch(msg) { + case WM_INITDIALOG: + TranslateDialogDefault(hwndDlg); { - TranslateDialogDefault(hwndDlg); - std::list* tasks = new std::list(Options::instance->taskOptions.begin(), Options::instance->taskOptions.end()); + tasks = new std::list(Options::instance->taskOptions.begin(), Options::instance->taskOptions.end()); SetWindowLongPtr(hwndDlg, GWLP_USERDATA, (LONG_PTR)tasks); HWND listTasks = GetDlgItem(hwndDlg, IDC_LIST_TASKS); - for(std::list::iterator it = tasks->begin(); it != tasks->end(); ++it) - { + for (std::list::iterator it = tasks->begin(); it != tasks->end(); ++it) ListBox_AddString(listTasks, it->taskName.c_str()); - } if (!bPopupsEnabled) - { EnableWindow(GetDlgItem(hwndDlg, IDC_SCHEDULER_ALERTS), FALSE); - } CheckDlgButton(hwndDlg, IDC_SCHEDULER_ALERTS, instance->schedulerAlerts ? 1 : 0); CheckDlgButton(hwndDlg, IDC_SCHEDULER_HISTORY_ALERTS, instance->schedulerHistoryAlerts ? 1 : 0); - + EnableWindow(GetDlgItem(hwndDlg, IDC_EDIT_TASK), FALSE); EnableWindow(GetDlgItem(hwndDlg, IDC_DELETE_TASK), FALSE); - return TRUE; } - case WM_COMMAND: - { - if (HIWORD(wParam) == BN_CLICKED) - { - std::list* tasks = (std::list*)GetWindowLongPtr(hwndDlg, GWLP_USERDATA); - HWND listTasks = GetDlgItem(hwndDlg, IDC_LIST_TASKS); - int sel = ListBox_GetCurSel(listTasks); - TaskOptions toAdd; - TaskOptions* to = &toAdd; - switch(LOWORD(wParam)) - { - case IDC_EDIT_TASK: - if (sel >= 0) - { - std::list::iterator it = tasks->begin(); - while(sel-- > 0 && it != tasks->end()) - ++it; - if (it == tasks->end()) - break; - to = &(*it); - } - else + return TRUE; + + case WM_COMMAND: + if (HIWORD(wParam) == BN_CLICKED) { + HWND listTasks = GetDlgItem(hwndDlg, IDC_LIST_TASKS); + int sel = ListBox_GetCurSel(listTasks); + TaskOptions toAdd; + TaskOptions* to = &toAdd; + switch(LOWORD(wParam)) { + case IDC_EDIT_TASK: + if (sel >= 0) { + std::list::iterator it = tasks->begin(); + while(sel-- > 0 && it != tasks->end()) + ++it; + if (it == tasks->end()) break; - case IDC_ADD_TASK: - { - DlgTaskOpt top; - top.tasks = tasks; - top.to = to; - if (DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_DLG_TASK), hwndDlg, DlgProcOptsTask, (LPARAM)&top) == IDOK) - { - if (LOWORD(wParam) == IDC_ADD_TASK) - { - tasks->push_back(*to); - ListBox_AddString(listTasks, to->taskName.c_str()); - ListBox_SetCurSel(listTasks, tasks->size() - 1); - } - else - { - sel = ListBox_GetCurSel(listTasks); - ListBox_DeleteString(listTasks, sel); - ListBox_InsertString(listTasks, sel, to->taskName.c_str()); - ListBox_SetCurSel(listTasks, sel); - } - EnableWindow(GetDlgItem(hwndDlg, IDC_EDIT_TASK), TRUE); - EnableWindow(GetDlgItem(hwndDlg, IDC_DELETE_TASK), TRUE); - SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); - } - } + to = &(*it); + } + else break; - break; - case IDC_DELETE_TASK: - if (sel >= 0) - { - ListBox_DeleteString(listTasks, sel); - std::list::iterator it = tasks->begin(); - while(sel-- > 0 && it != tasks->end()) - ++it; - if (it != tasks->end()) - tasks->erase(it); - EnableWindow(GetDlgItem(hwndDlg, IDC_EDIT_TASK), FALSE); - EnableWindow(GetDlgItem(hwndDlg, IDC_DELETE_TASK), FALSE); + case IDC_ADD_TASK: + { + DlgTaskOpt top; + top.tasks = tasks; + top.to = to; + if (DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_DLG_TASK), hwndDlg, DlgProcOptsTask, (LPARAM)&top) == IDOK) { + if (LOWORD(wParam) == IDC_ADD_TASK) { + tasks->push_back(*to); + ListBox_AddString(listTasks, to->taskName.c_str()); + ListBox_SetCurSel(listTasks, tasks->size() - 1); + } + else { + sel = ListBox_GetCurSel(listTasks); + ListBox_DeleteString(listTasks, sel); + ListBox_InsertString(listTasks, sel, to->taskName.c_str()); + ListBox_SetCurSel(listTasks, sel); + } + EnableWindow(GetDlgItem(hwndDlg, IDC_EDIT_TASK), TRUE); + EnableWindow(GetDlgItem(hwndDlg, IDC_DELETE_TASK), TRUE); SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); } - - break; - default: - SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); } - } - else if (HIWORD(wParam) == CBN_SELCHANGE && LOWORD(wParam) == IDC_LIST_TASKS) - { - HWND listTasks = GetDlgItem(hwndDlg, IDC_LIST_TASKS); - int sel = ListBox_GetCurSel(listTasks); - if (sel < 0) - { + break; + + case IDC_DELETE_TASK: + if (sel >= 0) { + ListBox_DeleteString(listTasks, sel); + std::list::iterator it = tasks->begin(); + while(sel-- > 0 && it != tasks->end()) + ++it; + if (it != tasks->end()) + tasks->erase(it); EnableWindow(GetDlgItem(hwndDlg, IDC_EDIT_TASK), FALSE); EnableWindow(GetDlgItem(hwndDlg, IDC_DELETE_TASK), FALSE); + SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); } - else - { - EnableWindow(GetDlgItem(hwndDlg, IDC_EDIT_TASK), TRUE); - EnableWindow(GetDlgItem(hwndDlg, IDC_DELETE_TASK), TRUE); - } + break; + + default: + SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); } - return TRUE; } - case WM_NOTIFY: - { - if (((LPNMHDR)lParam)->code == PSN_APPLY) - { - std::list* tasks = (std::list*)GetWindowLongPtr(hwndDlg, GWLP_USERDATA); - instance->schedulerAlerts = IsDlgButtonChecked(hwndDlg, IDC_SCHEDULER_ALERTS) ? true : false; - instance->schedulerHistoryAlerts = IsDlgButtonChecked(hwndDlg, IDC_SCHEDULER_HISTORY_ALERTS) ? true : false; - Options::instance->SaveTasks(tasks); - OptionsSchedulerChanged(); - InitTaskMenuItems(); + else if (HIWORD(wParam) == CBN_SELCHANGE && LOWORD(wParam) == IDC_LIST_TASKS) { + HWND listTasks = GetDlgItem(hwndDlg, IDC_LIST_TASKS); + int sel = ListBox_GetCurSel(listTasks); + if (sel < 0) { + EnableWindow(GetDlgItem(hwndDlg, IDC_EDIT_TASK), FALSE); + EnableWindow(GetDlgItem(hwndDlg, IDC_DELETE_TASK), FALSE); + } + else { + EnableWindow(GetDlgItem(hwndDlg, IDC_EDIT_TASK), TRUE); + EnableWindow(GetDlgItem(hwndDlg, IDC_DELETE_TASK), TRUE); } - return TRUE; } - case WM_DESTROY: - { - std::list* tasks = (std::list*)GetWindowLongPtr(hwndDlg, GWLP_USERDATA); - delete tasks; - SetWindowLongPtr(hwndDlg, GWLP_USERDATA, NULL); - break; + return TRUE; + + case WM_NOTIFY: + if (((LPNMHDR)lParam)->code == PSN_APPLY) { + instance->schedulerAlerts = IsDlgButtonChecked(hwndDlg, IDC_SCHEDULER_ALERTS) ? true : false; + instance->schedulerHistoryAlerts = IsDlgButtonChecked(hwndDlg, IDC_SCHEDULER_HISTORY_ALERTS) ? true : false; + Options::instance->SaveTasks(tasks); + OptionsSchedulerChanged(); + InitTaskMenuItems(); } + return TRUE; + + case WM_DESTROY: + delete tasks; + SetWindowLongPtr(hwndDlg, GWLP_USERDATA, NULL); + break; } return FALSE; @@ -1732,12 +1576,9 @@ void RebuildList(HWND hwnd, HANDLE hSystem, TaskOptions* to) { HANDLE hItem; if (to->isSystem && hSystem) - { SendMessage(hwnd, CLM_SETCHECKMARK, (WPARAM) hSystem, 1); - } - for(size_t i = 0; i < to->contacts.size(); ++i) - { + for (size_t i = 0; i < to->contacts.size(); ++i) { hItem = (HANDLE) SendMessage(hwnd, CLM_FINDCONTACT, (WPARAM) to->contacts[i], 0); if (hItem) SendMessage(hwnd, CLM_SETCHECKMARK, (WPARAM) hItem, 1); @@ -1766,11 +1607,10 @@ bool IsValidTask(TaskOptions& to, std::list* top = NULL, std::wstri INT_PTR CALLBACK Options::DlgProcOptsTask(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { static HANDLE hSystem; - switch(msg) - { - case WM_INITDIALOG: + switch(msg) { + case WM_INITDIALOG: + TranslateDialogDefault(hwndDlg); { - TranslateDialogDefault(hwndDlg); DlgTaskOpt* top = (DlgTaskOpt*)lParam; TaskOptions* to = top->to; SetWindowLongPtr(hwndDlg, GWLP_USERDATA, lParam); @@ -1794,7 +1634,7 @@ INT_PTR CALLBACK Options::DlgProcOptsTask(HWND hwndDlg, UINT msg, WPARAM wParam, HWND star = GetDlgItem(hwndDlg, IDC_TASK_STAR); HWND password = GetDlgItem(hwndDlg, IDC_PASSWORD); HWND expImp = GetDlgItem(hwndDlg, IDC_EXPIMP); - + Edit_LimitText(name, 16); Edit_SetText(name, to->taskName.c_str()); @@ -1822,14 +1662,11 @@ INT_PTR CALLBACK Options::DlgProcOptsTask(HWND hwndDlg, UINT msg, WPARAM wParam, if (selFilter > 1) selFilter = 0; int i = 1; - for(std::vector::iterator it = instance->customFilters.begin(); it != instance->customFilters.end(); ++it) - { + for (std::vector::iterator it = instance->customFilters.begin(); it != instance->customFilters.end(); ++it) { ++i; ComboBox_AddString(filter, it->name.c_str()); if (to->filterId > 1 && it->name == to->filterName) - { selFilter = i; - } } ComboBox_SetCurSel(filter, selFilter); @@ -1856,12 +1693,11 @@ INT_PTR CALLBACK Options::DlgProcOptsTask(HWND hwndDlg, UINT msg, WPARAM wParam, Button_SetCheck(compress, to->compress); Edit_LimitText(password, 99); SetWindowTextA(password, to->zipPassword.c_str()); - + Edit_LimitText(exportPath, MAX_PATH); Edit_SetText(exportPath, to->filePath.c_str()); - - if (!FTPAvail()) - { + + if (!FTPAvail()) { EnableWindow(ftpFile, FALSE); EnableWindow(ftpFileButton, FALSE); to->useFtp = false; @@ -1878,16 +1714,15 @@ INT_PTR CALLBACK Options::DlgProcOptsTask(HWND hwndDlg, UINT msg, WPARAM wParam, ComboBox_AddString(weekList, TranslateT("Saturday")); ComboBox_AddString(weekList, TranslateT("Sunday")); ComboBox_SetCurSel(weekList, to->dayOfWeek); - + Edit_LimitText(day, 2); SetDlgItemInt(hwndDlg, IDC_TRIGER_DAY, to->dayOfMonth, FALSE); Edit_LimitText(deltaTime, 4); SetDlgItemInt(hwndDlg, IDC_TRIGER_DELTA_TIME, to->deltaTime, FALSE); - + TCHAR timeFormat[10]; - if (GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SSHORTTIME, timeFormat, 10) == 0) - { + if (GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SSHORTTIME, timeFormat, 10) == 0) { TCHAR sep = _T(':'); if (GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_STIME, timeFormat, 10) > 0) sep = timeFormat[0]; @@ -1917,229 +1752,194 @@ INT_PTR CALLBACK Options::DlgProcOptsTask(HWND hwndDlg, UINT msg, WPARAM wParam, SendMessage(hwndDlg, WM_COMMAND, MAKEWPARAM(IDC_COMPRESS, BN_CLICKED), NULL); SendMessage(hwndDlg, WM_COMMAND, MAKEWPARAM(IDC_UPLOAD, BN_CLICKED), NULL); SendMessage(hwndDlg, WM_COMMAND, MAKEWPARAM(IDC_COMPRESS, BN_CLICKED), NULL); - return TRUE; } - case WM_COMMAND: - { - if (HIWORD(wParam) == BN_CLICKED) - { - if (LOWORD(wParam) == IDOK) - { - DlgTaskOpt* top = (DlgTaskOpt*)GetWindowLongPtr(hwndDlg, GWLP_USERDATA); - TaskOptions* to = top->to; - TaskOptions toCp(*to); - toCp.taskName.resize(17); - int nameLen = Edit_GetText(GetDlgItem(hwndDlg, IDC_TASK_NAME), (wchar_t*)toCp.taskName.c_str(), 17); - toCp.taskName.resize(nameLen); - toCp.active = Button_GetCheck(GetDlgItem(hwndDlg, IDC_TASK_ACTIVE)) != 0; - toCp.exportImported = Button_GetCheck(GetDlgItem(hwndDlg, IDC_EXPIMP)) != 0; - toCp.type = (enum TaskOptions::TaskType)ComboBox_GetCurSel(GetDlgItem(hwndDlg, IDC_TASK_TYPE)); - toCp.filterId = ComboBox_GetCurSel(GetDlgItem(hwndDlg, IDC_TASK_FILTER)); - if (toCp.filterId > 1) - toCp.filterName = instance->customFilters[toCp.filterId - 2].name; - BOOL isOK = FALSE; - toCp.eventDeltaTime = GetDlgItemInt(hwndDlg, IDC_EVENT_TIME, &isOK, TRUE); - if (!isOK) - { + return TRUE; + + case WM_COMMAND: + if (HIWORD(wParam) == BN_CLICKED) { + if (LOWORD(wParam) == IDOK) { + DlgTaskOpt* top = (DlgTaskOpt*)GetWindowLongPtr(hwndDlg, GWLP_USERDATA); + TaskOptions* to = top->to; + TaskOptions toCp(*to); + toCp.taskName.resize(17); + int nameLen = Edit_GetText(GetDlgItem(hwndDlg, IDC_TASK_NAME), (wchar_t*)toCp.taskName.c_str(), 17); + toCp.taskName.resize(nameLen); + toCp.active = Button_GetCheck(GetDlgItem(hwndDlg, IDC_TASK_ACTIVE)) != 0; + toCp.exportImported = Button_GetCheck(GetDlgItem(hwndDlg, IDC_EXPIMP)) != 0; + toCp.type = (enum TaskOptions::TaskType)ComboBox_GetCurSel(GetDlgItem(hwndDlg, IDC_TASK_TYPE)); + toCp.filterId = ComboBox_GetCurSel(GetDlgItem(hwndDlg, IDC_TASK_FILTER)); + if (toCp.filterId > 1) + toCp.filterName = instance->customFilters[toCp.filterId - 2].name; + BOOL isOK = FALSE; + toCp.eventDeltaTime = GetDlgItemInt(hwndDlg, IDC_EVENT_TIME, &isOK, TRUE); + if (!isOK) { + TCHAR msg[256]; + mir_sntprintf(msg, SIZEOF(msg), TranslateT("Invalid '%s' value."), TranslateT("Events older than")); + MessageBox(hwndDlg, msg, TranslateT("Error"), MB_ICONERROR); + break; + } + toCp.eventUnit = (enum TaskOptions::EventUnit)ComboBox_GetCurSel(GetDlgItem(hwndDlg, IDC_EVENT_UNIT)); + toCp.trigerType = (enum TaskOptions::TrigerType)ComboBox_GetCurSel(GetDlgItem(hwndDlg, IDC_TRIGER_TYPE)); + toCp.exportType = (enum IExport::ExportType)ComboBox_GetCurSel(GetDlgItem(hwndDlg, IDC_EXPORT_TYPE)); + toCp.importType = (enum IImport::ImportType)ComboBox_GetCurSel(GetDlgItem(hwndDlg, IDC_IMPORT_TYPE)); + toCp.compress = Button_GetCheck(GetDlgItem(hwndDlg, IDC_COMPRESS)) != 0; + char bufC[100]; + GetWindowTextA(GetDlgItem(hwndDlg, IDC_PASSWORD), bufC, 100); + toCp.zipPassword = bufC; + HWND exportPath = GetDlgItem(hwndDlg, IDC_EXPORT_PATH); + int exLen = Edit_GetTextLength(exportPath); + toCp.filePath.resize(exLen + 1); + Edit_GetText(exportPath, (wchar_t*)toCp.filePath.c_str(), exLen + 1); + toCp.filePath.resize(exLen); + toCp.useFtp = Button_GetCheck(GetDlgItem(hwndDlg, IDC_UPLOAD)) != 0; + HWND ftpFile = GetDlgItem(hwndDlg, IDC_FTP); + exLen = Edit_GetTextLength(ftpFile); + toCp.ftpName.resize(exLen + 1); + Edit_GetText(ftpFile, (wchar_t*)toCp.ftpName.c_str(), exLen + 1); + toCp.ftpName.resize(exLen); + SYSTEMTIME st; + DateTime_GetSystemtime(GetDlgItem(hwndDlg, IDC_TRIGER_TIME), &st); + toCp.dayTime = st.wHour * 60 + st.wMinute; + toCp.dayOfWeek = ComboBox_GetCurSel(GetDlgItem(hwndDlg, IDC_TRIGER_WEEK)); + toCp.dayOfMonth = GetDlgItemInt(hwndDlg, IDC_TRIGER_DAY, &isOK, FALSE); + if (!isOK) { + if (toCp.trigerType == TaskOptions::Monthly) { TCHAR msg[256]; - mir_sntprintf(msg, SIZEOF(msg), TranslateT("Invalid '%s' value."), TranslateT("Events older than")); + mir_sntprintf(msg, SIZEOF(msg), TranslateT("Invalid '%s' value."), TranslateT("Day")); MessageBox(hwndDlg, msg, TranslateT("Error"), MB_ICONERROR); break; } - toCp.eventUnit = (enum TaskOptions::EventUnit)ComboBox_GetCurSel(GetDlgItem(hwndDlg, IDC_EVENT_UNIT)); - toCp.trigerType = (enum TaskOptions::TrigerType)ComboBox_GetCurSel(GetDlgItem(hwndDlg, IDC_TRIGER_TYPE)); - toCp.exportType = (enum IExport::ExportType)ComboBox_GetCurSel(GetDlgItem(hwndDlg, IDC_EXPORT_TYPE)); - toCp.importType = (enum IImport::ImportType)ComboBox_GetCurSel(GetDlgItem(hwndDlg, IDC_IMPORT_TYPE)); - toCp.compress = Button_GetCheck(GetDlgItem(hwndDlg, IDC_COMPRESS)) != 0; - char bufC[100]; - GetWindowTextA(GetDlgItem(hwndDlg, IDC_PASSWORD), bufC, 100); - toCp.zipPassword = bufC; - HWND exportPath = GetDlgItem(hwndDlg, IDC_EXPORT_PATH); - int exLen = Edit_GetTextLength(exportPath); - toCp.filePath.resize(exLen + 1); - Edit_GetText(exportPath, (wchar_t*)toCp.filePath.c_str(), exLen + 1); - toCp.filePath.resize(exLen); - toCp.useFtp = Button_GetCheck(GetDlgItem(hwndDlg, IDC_UPLOAD)) != 0; - HWND ftpFile = GetDlgItem(hwndDlg, IDC_FTP); - exLen = Edit_GetTextLength(ftpFile); - toCp.ftpName.resize(exLen + 1); - Edit_GetText(ftpFile, (wchar_t*)toCp.ftpName.c_str(), exLen + 1); - toCp.ftpName.resize(exLen); - SYSTEMTIME st; - DateTime_GetSystemtime(GetDlgItem(hwndDlg, IDC_TRIGER_TIME), &st); - toCp.dayTime = st.wHour * 60 + st.wMinute; - toCp.dayOfWeek = ComboBox_GetCurSel(GetDlgItem(hwndDlg, IDC_TRIGER_WEEK)); - toCp.dayOfMonth = GetDlgItemInt(hwndDlg, IDC_TRIGER_DAY, &isOK, FALSE); - if (!isOK) - { - if (toCp.trigerType == TaskOptions::Monthly) - { - TCHAR msg[256]; - mir_sntprintf(msg, SIZEOF(msg), TranslateT("Invalid '%s' value."), TranslateT("Day")); - MessageBox(hwndDlg, msg, TranslateT("Error"), MB_ICONERROR); - break; - } - else - toCp.dayOfMonth = to->dayOfMonth; - } - toCp.deltaTime = GetDlgItemInt(hwndDlg, IDC_TRIGER_DELTA_TIME, &isOK, FALSE); - if (!isOK) - { - if (toCp.trigerType == TaskOptions::DeltaMin || toCp.trigerType == TaskOptions::DeltaHour) - { - TCHAR msg[256]; - mir_sntprintf(msg, SIZEOF(msg), TranslateT("Invalid '%s' value."), TranslateT("Delta time")); - MessageBox(hwndDlg, msg, TranslateT("Error"), MB_ICONERROR); - break; - } - else - toCp.deltaTime = to->deltaTime; - } - SaveList(GetDlgItem(hwndDlg, IDC_LIST_CONTACTSEX), hSystem, &toCp); - std::wstring err; - std::wstring errDescr; - std::wstring lastName = to->taskName; - to->taskName = L""; - if (!IsValidTask(toCp, top->tasks, &err, &errDescr)) - { - to->taskName = lastName; + else toCp.dayOfMonth = to->dayOfMonth; + } + toCp.deltaTime = GetDlgItemInt(hwndDlg, IDC_TRIGER_DELTA_TIME, &isOK, FALSE); + if (!isOK) { + if (toCp.trigerType == TaskOptions::DeltaMin || toCp.trigerType == TaskOptions::DeltaHour) { TCHAR msg[256]; - if (err.empty()) - _tcscpy_s(msg, TranslateT("Some value is invalid")); - else if (errDescr.empty()) - { - mir_sntprintf(msg, SIZEOF(msg), TranslateT("Invalid '%s' value."), err.c_str()); - } - else - { - mir_sntprintf(msg, SIZEOF(msg), TranslateT("Invalid '%s' value.\n%s"), err.c_str(), errDescr.c_str()); - } - + mir_sntprintf(msg, SIZEOF(msg), TranslateT("Invalid '%s' value."), TranslateT("Delta time")); MessageBox(hwndDlg, msg, TranslateT("Error"), MB_ICONERROR); break; } - - toCp.lastExport = time(NULL); - - *to = toCp; - EndDialog(hwndDlg, IDOK); - } - else if (LOWORD(wParam) == IDCANCEL) - { - EndDialog(hwndDlg, IDCANCEL); - } - else if (LOWORD(wParam) == IDC_UPLOAD) - { - if (Button_GetCheck(GetDlgItem(hwndDlg, IDC_UPLOAD)) == 0) - { - EnableWindow(GetDlgItem(hwndDlg, IDC_FTP), FALSE); - } - else - { - EnableWindow(GetDlgItem(hwndDlg, IDC_FTP), TRUE); - } + else toCp.deltaTime = to->deltaTime; } - else if (LOWORD(wParam) == IDC_COMPRESS) - { - if (Button_GetCheck(GetDlgItem(hwndDlg, IDC_COMPRESS)) == 0) - { - EnableWindow(GetDlgItem(hwndDlg, IDC_PASSWORD), FALSE); - EnableWindow(GetDlgItem(hwndDlg, IDC_PASSWORD_LABEL), FALSE); - } + SaveList(GetDlgItem(hwndDlg, IDC_LIST_CONTACTSEX), hSystem, &toCp); + std::wstring err; + std::wstring errDescr; + std::wstring lastName = to->taskName; + to->taskName = L""; + if (!IsValidTask(toCp, top->tasks, &err, &errDescr)) { + to->taskName = lastName; + TCHAR msg[256]; + if (err.empty()) + _tcscpy_s(msg, TranslateT("Some value is invalid")); + else if (errDescr.empty()) + mir_sntprintf(msg, SIZEOF(msg), TranslateT("Invalid '%s' value."), err.c_str()); else - { - EnableWindow(GetDlgItem(hwndDlg, IDC_PASSWORD), TRUE); - EnableWindow(GetDlgItem(hwndDlg, IDC_PASSWORD_LABEL), TRUE); - } + mir_sntprintf(msg, SIZEOF(msg), TranslateT("Invalid '%s' value.\n%s"), err.c_str(), errDescr.c_str()); + MessageBox(hwndDlg, msg, TranslateT("Error"), MB_ICONERROR); + break; } + + toCp.lastExport = time(NULL); + + *to = toCp; + EndDialog(hwndDlg, IDOK); + } + else if (LOWORD(wParam) == IDCANCEL) { + EndDialog(hwndDlg, IDCANCEL); } - else if (HIWORD(wParam) == CBN_SELCHANGE) + else if (LOWORD(wParam) == IDC_UPLOAD) { + if (Button_GetCheck(GetDlgItem(hwndDlg, IDC_UPLOAD)) == 0) + EnableWindow(GetDlgItem(hwndDlg, IDC_FTP), FALSE); + else + EnableWindow(GetDlgItem(hwndDlg, IDC_FTP), TRUE); + } + else if (LOWORD(wParam) == IDC_COMPRESS) { - if (LOWORD(wParam) == IDC_TASK_TYPE) - { - TaskOptions::TaskType sel = (enum TaskOptions::TaskType)ComboBox_GetCurSel(GetDlgItem(hwndDlg, IDC_TASK_TYPE)); - int show = sel == TaskOptions::Delete ? SW_HIDE : SW_SHOW; - int showFilter = (sel == TaskOptions::Import || sel == TaskOptions::ImportAndMarge) ? SW_HIDE : SW_SHOW; - int showImport = (sel == TaskOptions::Import || sel == TaskOptions::ImportAndMarge) ? SW_SHOW : SW_HIDE; - ShowWindow(GetDlgItem(hwndDlg, IDC_EXPORT_TYPE), show); - ShowWindow(GetDlgItem(hwndDlg, IDC_EXPORT_TYPE_LABEL), show); - ShowWindow(GetDlgItem(hwndDlg, IDC_COMPRESS), show); - ShowWindow(GetDlgItem(hwndDlg, IDC_PASSWORD), show); - ShowWindow(GetDlgItem(hwndDlg, IDC_PASSWORD_LABEL), show); - ShowWindow(GetDlgItem(hwndDlg, IDC_EXPORT_PATH), show); - ShowWindow(GetDlgItem(hwndDlg, IDC_EXPORT_PATH_LABEL), show); - ShowWindow(GetDlgItem(hwndDlg, IDC_FTP), show); - ShowWindow(GetDlgItem(hwndDlg, IDC_UPLOAD), show); - ShowWindow(GetDlgItem(hwndDlg, IDC_FTP_LABEL), show); - ShowWindow(GetDlgItem(hwndDlg, IDC_EXPIMP), show); - ShowWindow(GetDlgItem(hwndDlg, IDC_TASK_FILTER), showFilter); - ShowWindow(GetDlgItem(hwndDlg, IDC_TASK_FILTER_LABEL), showFilter); - ShowWindow(GetDlgItem(hwndDlg, IDC_EVENT_TIME), showFilter); - ShowWindow(GetDlgItem(hwndDlg, IDC_EVENT_UNIT), showFilter); - ShowWindow(GetDlgItem(hwndDlg, IDC_EVENT_LABEL), showFilter); - if (show != showFilter) - { - ShowWindow(GetDlgItem(hwndDlg, IDC_EXPORT_TYPE), SW_HIDE); - ShowWindow(GetDlgItem(hwndDlg, IDC_EXPIMP), SW_HIDE); - } - - ShowWindow(GetDlgItem(hwndDlg, IDC_IMPORT_TYPE), showImport); - std::wstring str; - TCHAR* compressText = TranslateT("Compress output files"); - TCHAR* uploadText = TranslateT("Upload to FTP (WinSCP requred)"); - TCHAR* typeText = TranslateT("Export to"); - if (showFilter == SW_HIDE) - { - str = TranslateT("** Use to insert extension, to insert contact name"); - compressText = TranslateT("Input files are compressed"); - uploadText = TranslateT("Download from FTP (WinSCP requred)"); - typeText = TranslateT("Import from"); - } - else if (show == SW_HIDE) - { - str = TranslateT("* Use negative values to filter younger events"); - } - else - { - str = TranslateT("* Use negative values to filter younger events"); - str += _T("\n"); - str += TranslateT("** Use to insert date, to insert extension, to insert contact name"); - } - - Static_SetText(GetDlgItem(hwndDlg, IDC_TASK_STAR), str.c_str()); - Button_SetText(GetDlgItem(hwndDlg, IDC_COMPRESS), compressText); - Button_SetText(GetDlgItem(hwndDlg, IDC_UPLOAD), uploadText); - Static_SetText(GetDlgItem(hwndDlg, IDC_EXPORT_TYPE_LABEL), typeText); + if (Button_GetCheck(GetDlgItem(hwndDlg, IDC_COMPRESS)) == 0) { + EnableWindow(GetDlgItem(hwndDlg, IDC_PASSWORD), FALSE); + EnableWindow(GetDlgItem(hwndDlg, IDC_PASSWORD_LABEL), FALSE); } - else if (LOWORD(wParam) == IDC_TRIGER_TYPE) - { - TaskOptions::TrigerType sel = (enum TaskOptions::TrigerType)ComboBox_GetCurSel(GetDlgItem(hwndDlg, IDC_TRIGER_TYPE)); - int showT = (sel == TaskOptions::Daily || sel == TaskOptions::Weekly || sel == TaskOptions::Monthly) ? SW_SHOW : SW_HIDE; - int showW = sel == TaskOptions::Weekly ? SW_SHOW : SW_HIDE; - int showM = sel == TaskOptions::Monthly ? SW_SHOW : SW_HIDE; - int showDT = (sel == TaskOptions::DeltaMin || sel == TaskOptions::DeltaHour) ? SW_SHOW : SW_HIDE; - ShowWindow(GetDlgItem(hwndDlg, IDC_TRIGER_TIME), showT); - ShowWindow(GetDlgItem(hwndDlg, IDC_TRIGER_TIME_LABEL), showT); - ShowWindow(GetDlgItem(hwndDlg, IDC_TRIGER_WEEK), showW); - ShowWindow(GetDlgItem(hwndDlg, IDC_TRIGER_WEEK_LABEL), showW); - ShowWindow(GetDlgItem(hwndDlg, IDC_TRIGER_DAY), showM); - ShowWindow(GetDlgItem(hwndDlg, IDC_TRIGER_DAY_LABEL), showM); - ShowWindow(GetDlgItem(hwndDlg, IDC_TRIGER_DELTA_TIME), showDT); - ShowWindow(GetDlgItem(hwndDlg, IDC_TRIGER_DELTA_TIME_LABEL), showDT); + else { + EnableWindow(GetDlgItem(hwndDlg, IDC_PASSWORD), TRUE); + EnableWindow(GetDlgItem(hwndDlg, IDC_PASSWORD_LABEL), TRUE); } } - return TRUE; } - case WM_NOTIFY: - { - NMHDR* nmhdr = (NMHDR *) lParam; - if (nmhdr->idFrom == IDC_LIST_CONTACTSEX && nmhdr->code == CLN_OPTIONSCHANGED) - { - ResetListOptions(hwndDlg); - } + else if (HIWORD(wParam) == CBN_SELCHANGE) { + if (LOWORD(wParam) == IDC_TASK_TYPE) { + TaskOptions::TaskType sel = (enum TaskOptions::TaskType)ComboBox_GetCurSel(GetDlgItem(hwndDlg, IDC_TASK_TYPE)); + int show = sel == TaskOptions::Delete ? SW_HIDE : SW_SHOW; + int showFilter = (sel == TaskOptions::Import || sel == TaskOptions::ImportAndMarge) ? SW_HIDE : SW_SHOW; + int showImport = (sel == TaskOptions::Import || sel == TaskOptions::ImportAndMarge) ? SW_SHOW : SW_HIDE; + ShowWindow(GetDlgItem(hwndDlg, IDC_EXPORT_TYPE), show); + ShowWindow(GetDlgItem(hwndDlg, IDC_EXPORT_TYPE_LABEL), show); + ShowWindow(GetDlgItem(hwndDlg, IDC_COMPRESS), show); + ShowWindow(GetDlgItem(hwndDlg, IDC_PASSWORD), show); + ShowWindow(GetDlgItem(hwndDlg, IDC_PASSWORD_LABEL), show); + ShowWindow(GetDlgItem(hwndDlg, IDC_EXPORT_PATH), show); + ShowWindow(GetDlgItem(hwndDlg, IDC_EXPORT_PATH_LABEL), show); + ShowWindow(GetDlgItem(hwndDlg, IDC_FTP), show); + ShowWindow(GetDlgItem(hwndDlg, IDC_UPLOAD), show); + ShowWindow(GetDlgItem(hwndDlg, IDC_FTP_LABEL), show); + ShowWindow(GetDlgItem(hwndDlg, IDC_EXPIMP), show); + ShowWindow(GetDlgItem(hwndDlg, IDC_TASK_FILTER), showFilter); + ShowWindow(GetDlgItem(hwndDlg, IDC_TASK_FILTER_LABEL), showFilter); + ShowWindow(GetDlgItem(hwndDlg, IDC_EVENT_TIME), showFilter); + ShowWindow(GetDlgItem(hwndDlg, IDC_EVENT_UNIT), showFilter); + ShowWindow(GetDlgItem(hwndDlg, IDC_EVENT_LABEL), showFilter); + if (show != showFilter) { + ShowWindow(GetDlgItem(hwndDlg, IDC_EXPORT_TYPE), SW_HIDE); + ShowWindow(GetDlgItem(hwndDlg, IDC_EXPIMP), SW_HIDE); + } - return TRUE; + ShowWindow(GetDlgItem(hwndDlg, IDC_IMPORT_TYPE), showImport); + std::wstring str; + TCHAR* compressText = TranslateT("Compress output files"); + TCHAR* uploadText = TranslateT("Upload to FTP (WinSCP requred)"); + TCHAR* typeText = TranslateT("Export to"); + if (showFilter == SW_HIDE) { + str = TranslateT("** Use to insert extension, to insert contact name"); + compressText = TranslateT("Input files are compressed"); + uploadText = TranslateT("Download from FTP (WinSCP requred)"); + typeText = TranslateT("Import from"); + } + else if (show == SW_HIDE) + str = TranslateT("* Use negative values to filter younger events"); + else { + str = TranslateT("* Use negative values to filter younger events"); + str += _T("\n"); + str += TranslateT("** Use to insert date, to insert extension, to insert contact name"); + } + + Static_SetText(GetDlgItem(hwndDlg, IDC_TASK_STAR), str.c_str()); + Button_SetText(GetDlgItem(hwndDlg, IDC_COMPRESS), compressText); + Button_SetText(GetDlgItem(hwndDlg, IDC_UPLOAD), uploadText); + Static_SetText(GetDlgItem(hwndDlg, IDC_EXPORT_TYPE_LABEL), typeText); + } + else if (LOWORD(wParam) == IDC_TRIGER_TYPE) { + TaskOptions::TrigerType sel = (enum TaskOptions::TrigerType)ComboBox_GetCurSel(GetDlgItem(hwndDlg, IDC_TRIGER_TYPE)); + int showT = (sel == TaskOptions::Daily || sel == TaskOptions::Weekly || sel == TaskOptions::Monthly) ? SW_SHOW : SW_HIDE; + int showW = sel == TaskOptions::Weekly ? SW_SHOW : SW_HIDE; + int showM = sel == TaskOptions::Monthly ? SW_SHOW : SW_HIDE; + int showDT = (sel == TaskOptions::DeltaMin || sel == TaskOptions::DeltaHour) ? SW_SHOW : SW_HIDE; + ShowWindow(GetDlgItem(hwndDlg, IDC_TRIGER_TIME), showT); + ShowWindow(GetDlgItem(hwndDlg, IDC_TRIGER_TIME_LABEL), showT); + ShowWindow(GetDlgItem(hwndDlg, IDC_TRIGER_WEEK), showW); + ShowWindow(GetDlgItem(hwndDlg, IDC_TRIGER_WEEK_LABEL), showW); + ShowWindow(GetDlgItem(hwndDlg, IDC_TRIGER_DAY), showM); + ShowWindow(GetDlgItem(hwndDlg, IDC_TRIGER_DAY_LABEL), showM); + ShowWindow(GetDlgItem(hwndDlg, IDC_TRIGER_DELTA_TIME), showDT); + ShowWindow(GetDlgItem(hwndDlg, IDC_TRIGER_DELTA_TIME_LABEL), showDT); + } } + return TRUE; + + case WM_NOTIFY: + NMHDR* nmhdr = (NMHDR *) lParam; + if (nmhdr->idFrom == IDC_LIST_CONTACTSEX && nmhdr->code == CLN_OPTIONSCHANGED) + ResetListOptions(hwndDlg); + + return TRUE; } return FALSE; diff --git a/plugins/BasicHistory/src/PlainHtmlExport.cpp b/plugins/BasicHistory/src/PlainHtmlExport.cpp index 695b48d78a..6ff0203124 100644 --- a/plugins/BasicHistory/src/PlainHtmlExport.cpp +++ b/plugins/BasicHistory/src/PlainHtmlExport.cpp @@ -53,23 +53,15 @@ void PlainHtmlExport::WriteHeader(const std::wstring &fileName, const std::wstri EXP_FILE << _T("-->\n\n

") << TranslateT("History Log") << _T("

\n

"); EXP_FILE << MakeTextHtmled(myName); if (proto1.length() || myId.length()) - { EXP_FILE << _T(" (") << MakeTextHtmled(proto1) << _T(": ") << MakeTextHtmled(myId) << _T(") - "); - } else - { EXP_FILE << _T(" - "); - } EXP_FILE << MakeTextHtmled(name1); if (proto1.length() || id1.length()) - { EXP_FILE << _T(" (") << MakeTextHtmled(proto1) << _T(": ") << MakeTextHtmled(id1) << _T(")

\n"); - } else - { EXP_FILE << _T("\n"); - } EXP_FILE << _T("
") << TranslateT("Filter:") << _T(" ") << MakeTextHtmled(filterName) << _T("
\n"); } diff --git a/plugins/BasicHistory/src/RichHtmlExport.cpp b/plugins/BasicHistory/src/RichHtmlExport.cpp index 62263145b7..c9552f7cb8 100644 --- a/plugins/BasicHistory/src/RichHtmlExport.cpp +++ b/plugins/BasicHistory/src/RichHtmlExport.cpp @@ -36,11 +36,9 @@ std::wstring MakeTextHtmled(const std::wstring& message, std::queuepush(std::pair(start + currentAdd, len)); currentAdd += len; } @@ -81,16 +77,14 @@ std::wstring UrlHighlightHtml(const std::wstring& message, bool& isUrl) std::wstring search = _T("://"); size_t start = 0; size_t find; - while((find = message.find(search, start)) < message.length()) - { + while((find = message.find(search, start)) < message.length()) { size_t urlStart = message.find_last_of(htmlStop, find); size_t urlEnd = message.find_first_of(htmlStop, find + 3); if (urlStart >= message.length()) urlStart = -1; if (urlEnd >= message.length()) urlEnd = message.length(); - if (((int)urlEnd -3 - (int)find > 0) && ((int)find - (int)urlStart -1 > 0)) - { + if (((int)urlEnd -3 - (int)find > 0) && ((int)find - (int)urlStart -1 > 0)) { ret += message.substr(start, (urlStart + 1) - start); std::wstring url = message.substr(urlStart + 1, urlEnd - urlStart - 1); start = urlEnd; @@ -98,8 +92,7 @@ std::wstring UrlHighlightHtml(const std::wstring& message, bool& isUrl) ret += url + _T("\">") + url + _T(""); isUrl = true; } - else - { + else { ret += message.substr(start, (find + 3) - start); start = find + 3; } @@ -113,9 +106,7 @@ std::wstring RemoveExt(const std::wstring &fileName) { size_t find = fileName.find_last_of(L'.'); if (find < fileName.length()) - { return fileName.substr(0, find); - } return fileName; } @@ -124,9 +115,7 @@ std::wstring GetName(const std::wstring &path) { size_t find = path.find_last_of(L"\\/"); if (find < path.length()) - { return path.substr(find + 1); - } return path; } @@ -134,18 +123,14 @@ std::wstring GetName(const std::wstring &path) void ExtractFile(short int res, const std::wstring &fileName) { HRSRC rSrc = FindResource(hInst, MAKEINTRESOURCE(res), MAKEINTRESOURCE(CUSTOMRES)); - if (rSrc != NULL) - { + if (rSrc != NULL) { HGLOBAL res = LoadResource(hInst, rSrc); int size = SizeofResource(hInst, rSrc); - if (res != NULL) - { + if (res != NULL) { char* resData = (char*)LockResource(res); - if (resData != NULL) - { + if (resData != NULL) { std::ofstream stream (fileName.c_str(), std::ios_base::binary); - if (stream.is_open()) - { + if (stream.is_open()) { stream.write(resData, size); stream.close(); } @@ -189,9 +174,9 @@ void IcoSave(const std::wstring &fileName, HICON hicon) std::ofstream store (fileName.c_str(), std::ios_base::binary); if (!store.is_open()) return; - ICONINFO ii; - if (!GetIconInfo(hicon,&ii)) - { + + ICONINFO ii; + if ( !GetIconInfo(hicon, &ii)) { store.close(); return; } @@ -200,14 +185,12 @@ void IcoSave(const std::wstring &fileName, HICON hicon) HBITMAP hbmColor = ii.hbmColor; BITMAP bmiMask; BITMAP bmiColor; - if ( - GetObject(hbmColor,sizeof(bmiColor),&bmiColor) && - GetObject(hbmMask,sizeof(bmiMask),&bmiMask) && - (bmiColor.bmWidth==bmiMask.bmWidth) && - (bmiColor.bmHeight==bmiMask.bmHeight) && - (bmiMask.bmHeight) > 0 && - (bmiMask.bmWidth) > 0 - ) + if (GetObject(hbmColor,sizeof(bmiColor),&bmiColor) && + GetObject(hbmMask,sizeof(bmiMask),&bmiMask) && + (bmiColor.bmWidth==bmiMask.bmWidth) && + (bmiColor.bmHeight==bmiMask.bmHeight) && + (bmiMask.bmHeight) > 0 && + (bmiMask.bmWidth) > 0) { BITMAPINFOHEADER icobmi = {0}; MYBITMAPINFO info1 = {0}; @@ -308,9 +291,7 @@ void RichHtmlExport::WriteHeader(const std::wstring &fileName, const std::wstrin std::wstring css = folder + _T("\\history.css"); BOOL cssCopied = FALSE; if (!Options::instance->extCssHtml2.empty()) - { cssCopied = CopyFile(Options::instance->extCssHtml2.c_str(), css.c_str(), FALSE); - } if (!cssCopied) ExtractFile(IDR_CSS, css); @@ -360,23 +341,15 @@ void RichHtmlExport::WriteHeader(const std::wstring &fileName, const std::wstrin EXP_FILE << _T("

") << TranslateT("History Log") << _T("

\n

"); EXP_FILE << MakeTextHtmled(myName); if (proto1.length() || myId.length()) - { EXP_FILE << _T(" (") << MakeTextHtmled(proto1) << _T(": ") << MakeTextHtmled(myId) << _T(") - "); - } else - { EXP_FILE << _T(" - "); - } EXP_FILE << MakeTextHtmled(name1); if (proto1.length() || id1.length()) - { EXP_FILE << _T(" (") << MakeTextHtmled(proto1) << _T(": ") << MakeTextHtmled(id1) << _T(")

\n"); - } else - { EXP_FILE << _T("\n"); - } EXP_FILE << _T("
") << TranslateT("Filter:") << _T(" ") << MakeTextHtmled(filterName) << _T("
\n"); groupId = 0; @@ -385,9 +358,7 @@ void RichHtmlExport::WriteHeader(const std::wstring &fileName, const std::wstrin void RichHtmlExport::WriteFooter() { if (groupId > 0) - { EXP_FILE << _T("\n"); - } EXP_FILE << _T("
\n\n"); } @@ -397,9 +368,7 @@ void RichHtmlExport::WriteGroup(bool isMe, const std::wstring &time, const std:: TCHAR *id = isMe ? _T("out") : _T("inc"); TCHAR* ev = (isMe ? _T("1") : _T("0")); if (groupId > 0) - { EXP_FILE << _T("\n"); - } bool isUrl = false; std::wstring& mes = ReplaceSmileys(isMe, eventText, isUrl); @@ -433,114 +402,91 @@ void RichHtmlExport::WriteMessage(bool isMe, const std::wstring &longDate, const std::wstring RichHtmlExport::ReplaceSmileys(bool isMe, const std::wstring &msg, bool &isUrl) { - if (Options::instance->exportHtml2UseSmileys && g_SmileyAddAvail) - { - TCHAR* msgbuf = new TCHAR[msg.length() + 1]; - memcpy_s(msgbuf, (msg.length() + 1) * sizeof(TCHAR), msg.c_str(), (msg.length() + 1) * sizeof(TCHAR)); - SMADD_BATCHPARSE2 sp = {0}; - SMADD_BATCHPARSERES *spr; - sp.cbSize = sizeof(sp); - sp.Protocolname = baseProto.length() == 0 ? NULL : baseProto.c_str(); - sp.str = msgbuf; - sp.flag = SAFL_TCHAR | SAFL_PATH | (isMe ? SAFL_OUTGOING : 0); - spr = (SMADD_BATCHPARSERES*)CallService(MS_SMILEYADD_BATCHPARSE, 0, (LPARAM)&sp); - delete[] msgbuf; - - if (spr == NULL || (INT_PTR)spr == CALLSERVICE_NOTFOUND) - { - // Did not find a simley - return UrlHighlightHtml(MakeTextHtmled(msg), isUrl); - } + if (!Options::instance->exportHtml2UseSmileys || !g_SmileyAddAvail) + return UrlHighlightHtml(MakeTextHtmled(msg), isUrl); + + TCHAR* msgbuf = new TCHAR[msg.length() + 1]; + memcpy_s(msgbuf, (msg.length() + 1) * sizeof(TCHAR), msg.c_str(), (msg.length() + 1) * sizeof(TCHAR)); + SMADD_BATCHPARSE2 sp = {0}; + SMADD_BATCHPARSERES *spr; + sp.cbSize = sizeof(sp); + sp.Protocolname = baseProto.length() == 0 ? NULL : baseProto.c_str(); + sp.str = msgbuf; + sp.flag = SAFL_TCHAR | SAFL_PATH | (isMe ? SAFL_OUTGOING : 0); + spr = (SMADD_BATCHPARSERES*)CallService(MS_SMILEYADD_BATCHPARSE, 0, (LPARAM)&sp); + delete[] msgbuf; + + // Did not find a simley + if (spr == NULL || (INT_PTR)spr == CALLSERVICE_NOTFOUND) + return UrlHighlightHtml(MakeTextHtmled(msg), isUrl); - std::queue > positionMap; - std::wstring newMsg = MakeTextHtmled(msg, &positionMap); - std::wstring smileyMsg; + std::queue > positionMap; + std::wstring newMsg = MakeTextHtmled(msg, &positionMap); + std::wstring smileyMsg; - size_t last_pos=0; - std::pair pos(0, 0); - size_t currentAdd = 0; - if (!positionMap.empty()) - { - pos = positionMap.front(); - positionMap.pop(); - } + size_t last_pos=0; + std::pair pos(0, 0); + size_t currentAdd = 0; + if (!positionMap.empty()) { + pos = positionMap.front(); + positionMap.pop(); + } - for (unsigned i = 0; i < sp.numSmileys; ++i) - { - size_t startChar = spr[i].startChar + currentAdd; - while(startChar >= pos.first && pos.second) - { - startChar += pos.second; - currentAdd += pos.second; - if (!positionMap.empty()) - { - pos = positionMap.front(); - positionMap.pop(); - } - else - { - pos = std::pair(0, 0); - } + for (unsigned i = 0; i < sp.numSmileys; ++i) { + size_t startChar = spr[i].startChar + currentAdd; + while(startChar >= pos.first && pos.second) { + startChar += pos.second; + currentAdd += pos.second; + if (!positionMap.empty()) { + pos = positionMap.front(); + positionMap.pop(); } + else pos = std::pair(0, 0); + } - size_t endChar = spr[i].startChar + spr[i].size + currentAdd; - while(endChar >= pos.first && pos.second) - { - endChar += pos.second; - currentAdd += pos.second; - if (!positionMap.empty()) - { - pos = positionMap.front(); - positionMap.pop(); - } - else - { - pos = std::pair(0, 0); - } + size_t endChar = spr[i].startChar + spr[i].size + currentAdd; + while(endChar >= pos.first && pos.second) { + endChar += pos.second; + currentAdd += pos.second; + if (!positionMap.empty()) { + pos = positionMap.front(); + positionMap.pop(); } + else pos = std::pair(0, 0); + } - size_t size = endChar - startChar; - - if (spr[i].filepath != NULL) // For deffective smileypacks - { - // Add text - if (startChar - last_pos > 0) - { - smileyMsg += newMsg.substr(last_pos, startChar - last_pos); - } - - std::wstring smileyName = GetName(spr[i].filepath); - if (smileys.find(smileyName) == smileys.end()) - { - smileys.insert(smileyName); - CopyFile(spr[i].filepath, (folder + _T("\\") + smileyName).c_str(), FALSE); - } + size_t size = endChar - startChar; - std::wstring smileyText = newMsg.substr(startChar, size); - smileyMsg += _T("\"");"); + if (spr[i].filepath != NULL) { // For deffective smileypacks + // Add text + if (startChar - last_pos > 0) { + smileyMsg += newMsg.substr(last_pos, startChar - last_pos); } - // Get next - last_pos = endChar; - } + std::wstring smileyName = GetName(spr[i].filepath); + if (smileys.find(smileyName) == smileys.end()) { + smileys.insert(smileyName); + CopyFile(spr[i].filepath, (folder + _T("\\") + smileyName).c_str(), FALSE); + } - // Add rest of text - if (last_pos < newMsg.length()) - { - smileyMsg += newMsg.substr(last_pos); + std::wstring smileyText = newMsg.substr(startChar, size); + smileyMsg += _T("\"");"); } - CallService(MS_SMILEYADD_BATCHFREE, 0, (LPARAM)spr); - return UrlHighlightHtml(smileyMsg, isUrl); - } - else - { - return UrlHighlightHtml(MakeTextHtmled(msg), isUrl); + // Get next + last_pos = endChar; } + + // Add rest of text + if (last_pos < newMsg.length()) + smileyMsg += newMsg.substr(last_pos); + + CallService(MS_SMILEYADD_BATCHFREE, 0, (LPARAM)spr); + return UrlHighlightHtml(smileyMsg, isUrl); } diff --git a/plugins/BasicHistory/src/Scheduler.cpp b/plugins/BasicHistory/src/Scheduler.cpp index c03709d712..768b9fe5b5 100644 --- a/plugins/BasicHistory/src/Scheduler.cpp +++ b/plugins/BasicHistory/src/Scheduler.cpp @@ -89,39 +89,32 @@ void DeinitScheduler() int DoLastTask(WPARAM, LPARAM) { - for(std::vector::iterator it = Options::instance->taskOptions.begin(); it != Options::instance->taskOptions.end(); ++it) - { + for (std::vector::iterator it = Options::instance->taskOptions.begin(); it != Options::instance->taskOptions.end(); ++it) if (it->trigerType == TaskOptions::AtEnd && it->active) - { DoTask(*it); - } - } return 0; } bool IsValidTask(TaskOptions& to, std::list* top, std::wstring* err, std::wstring* errDescr) { - if (to.taskName.empty()) - { + if (to.taskName.empty()) { if (err != NULL) *err = TranslateT("Name"); return false; } - if (top != NULL) - { - for(std::list::iterator it = top->begin(); it != top->end(); ++it) - { - if (it->taskName == to.taskName) - { + + if (top != NULL) { + for (std::list::iterator it = top->begin(); it != top->end(); ++it) { + if (it->taskName == to.taskName) { if (err != NULL) *err = TranslateT("Name"); return false; } } } - if (!to.isSystem && to.contacts.size() == 0) - { + + if (!to.isSystem && to.contacts.size() == 0) { if (err != NULL) *err = TranslateT("Contacts"); if (errDescr != NULL) @@ -130,23 +123,18 @@ bool IsValidTask(TaskOptions& to, std::list* top, std::wstring* err } bool isImportTask = to.type == TaskOptions::Import || to.type == TaskOptions::ImportAndMarge; - if (!isImportTask) - { - if (to.filterId > 1) - { + if (!isImportTask) { + if (to.filterId > 1) { int filter = 0; - for(int i = 0; i < (int)Options::instance->customFilters.size(); ++i) - { - if (to.filterName == Options::instance->customFilters[i].name) - { + for (int i = 0; i < (int)Options::instance->customFilters.size(); ++i) { + if (to.filterName == Options::instance->customFilters[i].name) { filter = i + 2; break; } } - if (filter < 2) - { + if (filter < 2) { if (err != NULL) *err = TranslateT("Filter"); return false; @@ -154,8 +142,7 @@ bool IsValidTask(TaskOptions& to, std::list* top, std::wstring* err to.filterId = filter; } - else if (to.filterId < 0) - { + else if (to.filterId < 0) { if (err != NULL) *err = TranslateT("Filter"); return false; @@ -163,78 +150,65 @@ bool IsValidTask(TaskOptions& to, std::list* top, std::wstring* err } if (to.type == TaskOptions::Delete) - { return true; - } - if (!Options::FTPAvail() && to.useFtp) - { + if (!Options::FTPAvail() && to.useFtp) { if (err != NULL) *err = TranslateT("Upload to FTP"); return false; } - if (to.filePath.empty()) - { + if (to.filePath.empty()) { if (err != NULL) *err = TranslateT("Path to output file"); return false; } - if (to.useFtp && to.ftpName.empty()) - { + if (to.useFtp && to.ftpName.empty()) { if (err != NULL) *err = TranslateT("Session name"); if (errDescr != NULL) *errDescr = TranslateT("To create session open WinSCP, click New Session, enter data and save with specific name. Remember if FTP server using password you should save it in WinSCP."); return false; } - if (to.useFtp && (to.filePath.find(_T('\\')) < to.filePath.length() || to.filePath.find(_T(':')) < to.filePath.length() || to.filePath[0] != L'/')) - { + if (to.useFtp && (to.filePath.find(_T('\\')) < to.filePath.length() || to.filePath.find(_T(':')) < to.filePath.length() || to.filePath[0] != L'/')) { if (err != NULL) *err = TranslateT("Path to file"); if (errDescr != NULL) *errDescr = TranslateT("FTP path must contains '/' instead '\\' and starts from '/'."); return false; } - if (isImportTask && to.filePath.find(_T("")) < to.filePath.length()) - { + if (isImportTask && to.filePath.find(_T("")) < to.filePath.length()) { if (err != NULL) *err = TranslateT("Path to file"); if (errDescr != NULL) *errDescr = TranslateT("FTP path cannot contain in import task."); return false; } - if (!isImportTask && (to.exportType < IExport::RichHtml || to.exportType > IExport::Dat)) - { + if (!isImportTask && (to.exportType < IExport::RichHtml || to.exportType > IExport::Dat)) { if (err != NULL) *err = TranslateT("Export to"); return false; } - if (isImportTask && (to.importType < IImport::Binary || to.importType > IImport::Dat)) - { + if (isImportTask && (to.importType < IImport::Binary || to.importType > IImport::Dat)) { if (err != NULL) *err = TranslateT("Import from"); return false; } - if ((to.trigerType == TaskOptions::Daily || to.trigerType == TaskOptions::Weekly || to.trigerType == TaskOptions::Monthly) && (to.dayTime < 0 || to.dayTime >= 24 * 60)) - { + if ((to.trigerType == TaskOptions::Daily || to.trigerType == TaskOptions::Weekly || to.trigerType == TaskOptions::Monthly) && (to.dayTime < 0 || to.dayTime >= 24 * 60)) { if (err != NULL) *err = TranslateT("Time"); return false; } - if (to.trigerType == TaskOptions::Weekly && (to.dayOfWeek < 0 || to.dayOfWeek >= 7)) - { + if (to.trigerType == TaskOptions::Weekly && (to.dayOfWeek < 0 || to.dayOfWeek >= 7)) { if (err != NULL) *err = TranslateT("Day of week"); return false; } - if (to.trigerType == TaskOptions::Monthly && (to.dayOfMonth <= 0 || to.dayOfMonth >= 32)) - { + if (to.trigerType == TaskOptions::Monthly && (to.dayOfMonth <= 0 || to.dayOfMonth >= 32)) { if (err != NULL) *err = TranslateT("Day"); return false; } - if ((to.trigerType == TaskOptions::DeltaMin || to.trigerType == TaskOptions::DeltaHour) && (to.deltaTime < 0 || to.deltaTime >= 10000)) - { + if ((to.trigerType == TaskOptions::DeltaMin || to.trigerType == TaskOptions::DeltaHour) && (to.deltaTime < 0 || to.deltaTime >= 10000)) { if (err != NULL) *err = TranslateT("Delta time"); return false; @@ -247,10 +221,8 @@ static void CALLBACK DoRebuildEventsInMainAPCFunc(ULONG_PTR dwParam) { HANDLE* contacts = (HANDLE*) dwParam; size_t size = (size_t)contacts[0]; - for(size_t i = 1; i <= size; ++i) - { + for (size_t i = 1; i <= size; ++i) HistoryWindow::RebuildEvents(contacts[i]); - } delete[] contacts; } @@ -259,19 +231,15 @@ bool DoTask(TaskOptions& to) { std::wstring err; std::wstring errDescr; - if (!IsValidTask(to, NULL, &err, &errDescr)) - { + if (!IsValidTask(to, NULL, &err, &errDescr)) { TCHAR msg[256]; if (err.empty()) _tcscpy_s(msg, TranslateT("Some value is invalid")); else if (errDescr.empty()) - { mir_sntprintf(msg, SIZEOF(msg), TranslateT("Invalid '%s' value."), err.c_str()); - } else - { mir_sntprintf(msg, SIZEOF(msg), TranslateT("Invalid '%s' value.\n%s"), err.c_str(), errDescr.c_str()); - } + DoError(to, msg); return true; } @@ -282,8 +250,7 @@ bool DoTask(TaskOptions& to) t *= 60LL; if (to.eventUnit > TaskOptions::Hour) t *= 24LL; - if (t > 2147483647LL) - { + if (t > 2147483647LL) { DoError(to, TranslateT("Unknown error")); return true; } @@ -291,32 +258,27 @@ bool DoTask(TaskOptions& to) bool error = false; std::wstring errorStr; std::list managers; - if (to.type == TaskOptions::Delete) - { - if (to.isSystem) - { + if (to.type == TaskOptions::Delete) { + if (to.isSystem) { ExportManager *exp = new ExportManager(NULL, NULL, to.filterId); exp->SetDeleteWithoutExportEvents(t, now); managers.push_back(exp); } - for(size_t i = 0; i < to.contacts.size(); ++i) - { + for (size_t i = 0; i < to.contacts.size(); ++i) { ExportManager *exp = new ExportManager(NULL, to.contacts[i], to.filterId); exp->SetDeleteWithoutExportEvents(t, now); managers.push_back(exp); } } - else if (to.type == TaskOptions::Import || to.type == TaskOptions::ImportAndMarge) - { + else if (to.type == TaskOptions::Import || to.type == TaskOptions::ImportAndMarge) { std::map existingContacts1; ExportManager mExp = ExportManager(NULL, NULL, 1); std::wstring filePath = to.filePath; std::wstring dir; std::list files; std::vector contacts; - if (to.useFtp || to.compress) - { + if (to.useFtp || to.compress) { std::map existingContacts; TCHAR temp[MAX_PATH]; temp[0] = 0; @@ -327,25 +289,21 @@ bool DoTask(TaskOptions& to) dir = ReplaceExt(dir, L""); size_t pos = dir.find_last_of(_T('.')); if (pos < dir.length()) - { dir = dir.substr(0, pos); - } DeleteDirectory(dir.c_str()); CreateDirectory(dir.c_str(), NULL); } const TCHAR* ext = ExportManager::GetExt(to.importType); - if (to.isSystem) - { + if (to.isSystem) { std::wstring n = GetFileName(filePath, mExp.GetContactName(), existingContacts1, true); n = ReplaceExt(n, ext); files.push_back(n); contacts.push_back(NULL); } - for(size_t i = 0; i < to.contacts.size(); ++i) - { + for (size_t i = 0; i < to.contacts.size(); ++i) { mExp.hContact = to.contacts[i]; std::wstring n = GetFileName(filePath, mExp.GetContactName(), existingContacts1, true); n = ReplaceExt(n, ext); @@ -353,10 +311,8 @@ bool DoTask(TaskOptions& to) contacts.push_back(to.contacts[i]); } - if (to.useFtp) - { - if (to.compress) - { + if (to.useFtp) { + if (to.compress) { std::map existingContacts; std::wstring n = GetFileName(filePath, L"", existingContacts, true); n = ReplaceExt(n, L"zip"); @@ -366,26 +322,19 @@ bool DoTask(TaskOptions& to) } error = FtpGetFiles(dir, files, to.ftpName); - if (error) - { + if (error) { if (!errorStr.empty()) - { errorStr += L"\n"; - } errorStr += TranslateT("Cannot get FTP file(s)."); } } - if (!error && to.compress) - { + if (!error && to.compress) { error = UnzipFiles(dir, filePath, to.zipPassword); - if (error) - { + if (error) { if (!errorStr.empty()) - { errorStr += L"\n"; - } errorStr += TranslateT("Cannot unzip file(s)."); } @@ -394,36 +343,26 @@ bool DoTask(TaskOptions& to) DeleteFile(filePath.c_str()); } - if (!error && (to.useFtp || to.compress)) - { + if (!error && (to.useFtp || to.compress)) { files.clear(); std::list files1; ListDirectory(dir, L"\\", files1); - for(std::list::iterator it = files1.begin(); it != files1.end(); ++it) - { + for (std::list::iterator it = files1.begin(); it != files1.end(); ++it) files.push_back(dir + *it); - } } - if (!error) - { + if (!error) { std::list contactList; - for(std::list::iterator it = files.begin(); it != files.end(); ++it) - { + for (std::list::iterator it = files.begin(); it != files.end(); ++it) { mExp.SetAutoImport(*it); int ret = mExp.Import(to.importType, contacts); - if (ret == -3) - { + if (ret == -3) { if (contacts.size() == 1) - { ret = 0; - } - else - { + else { std::map existingContacts; std::wstring name = GetName(*it); - for(ret = 0; ret < (int)contacts.size(); ++ret) - { + for (ret = 0; ret < (int)contacts.size(); ++ret) { mExp.hContact = contacts[ret]; std::wstring n = GetFileName(to.filePath, mExp.GetContactName(), existingContacts, true); n = ReplaceExt(n, ext); @@ -437,42 +376,31 @@ bool DoTask(TaskOptions& to) } } - if (ret >= 0) - { + if (ret >= 0) { mExp.hContact = contacts[ret]; - if (to.type == TaskOptions::Import) - { + if (to.type == TaskOptions::Import) { EventList::AddImporter(mExp.hContact, to.importType, *it); contactList.push_back(mExp.hContact); } - else - { + else { std::vector messages; - if (mExp.Import(to.importType, messages, NULL)) - { + if (mExp.Import(to.importType, messages, NULL)) { mExp.MargeMessages(messages); contactList.push_back(mExp.hContact); } } } - else if (ret != -1) - { + else if (ret != -1) { if (!errorStr.empty()) - { errorStr += L"\n"; - } TCHAR msg[1024]; - mir_sntprintf(msg, SIZEOF(msg), TranslateT("Incorrect file format: %s."), GetName(*it).c_str()); errorStr += msg; } - else - { + else { if (!errorStr.empty()) - { errorStr += L"\n"; - } TCHAR msg[1024]; @@ -481,40 +409,30 @@ bool DoTask(TaskOptions& to) } } - if (contactList.size() > 0) - { + if (contactList.size() > 0) { HANDLE* contacts = new HANDLE[contactList.size() + 1]; contacts[0] = (HANDLE)contactList.size(); int i = 1; - for(std::list::iterator it = contactList.begin(); it != contactList.end(); ++it) - { + for (std::list::iterator it = contactList.begin(); it != contactList.end(); ++it) contacts[i++] = *it; - } QueueUserAPC(DoRebuildEventsInMainAPCFunc, g_hMainThread, (ULONG_PTR) contacts); } } if (to.useFtp || to.compress) - { DeleteDirectory(dir.c_str()); - } } - else - { + else { std::map existingContacts; std::wstring filePath = to.filePath; std::wstring dir; - if (!to.useFtp && !to.compress) - { + if (!to.useFtp && !to.compress) { dir = GetDirectoryName(filePath); if (!dir.empty()) - { CreateDirectory(dir.c_str(), NULL); - } } - else - { + else { filePath = GetName(filePath); TCHAR temp[MAX_PATH]; temp[0] = 0; @@ -525,26 +443,20 @@ bool DoTask(TaskOptions& to) dir = ReplaceExt(dir, L""); size_t pos = dir.find_last_of(_T('.')); if (pos < dir.length()) - { dir = dir.substr(0, pos); - } DeleteDirectory(dir.c_str()); CreateDirectory(dir.c_str(), NULL); filePath = dir + L"\\" + filePath; } - if (to.isSystem) - { + if (to.isSystem) { ExportManager *exp = new ExportManager(NULL, NULL, to.filterId); exp->SetAutoExport(GetFileName(filePath, exp->GetContactName(), existingContacts, true), t, now); exp->useImportedMessages = to.exportImported; - if (!exp->Export(to.exportType)) - { + if (!exp->Export(to.exportType)) { error = true; if (!errorStr.empty()) - { errorStr += L"\n"; - } TCHAR msg[1024]; @@ -553,69 +465,47 @@ bool DoTask(TaskOptions& to) } if (to.type == TaskOptions::Export) - { delete exp; - } else - { managers.push_back(exp); - } } - if (!error) - { - for(size_t i = 0; i < to.contacts.size(); ++i) - { + if (!error) { + for (size_t i = 0; i < to.contacts.size(); ++i) { ExportManager *exp = new ExportManager(NULL, to.contacts[i], to.filterId); exp->SetAutoExport(GetFileName(filePath, exp->GetContactName(), existingContacts, true), t, now); exp->useImportedMessages = to.exportImported; - if (!exp->Export(to.exportType)) - { + if (!exp->Export(to.exportType)) { error = true; if (!errorStr.empty()) - { errorStr += L"\n"; - } TCHAR msg[1024]; - mir_sntprintf(msg, SIZEOF(msg), TranslateT("Cannot export history for contact: %s."), exp->GetContactName().c_str()); errorStr += msg; break; } if (to.type == TaskOptions::Export) - { delete exp; - } else - { managers.push_back(exp); - } } } - if (error) - { + if (error) { if (to.compress && !to.useFtp) - { DeleteDirectory(dir.c_str()); - } } - else if (to.compress) - { + else if (to.compress) { std::wstring zipFilePath = to.filePath; std::wstring zipDir = dir; - if (!to.useFtp) - { + if (!to.useFtp) { zipDir = GetDirectoryName(zipFilePath); if (!zipDir.empty()) - { CreateDirectory(zipDir.c_str(), NULL); - } } - else - { + else { zipFilePath = GetName(zipFilePath); TCHAR temp[MAX_PATH]; temp[0] = 0; @@ -629,28 +519,20 @@ bool DoTask(TaskOptions& to) } error = ZipFiles(dir + L"\\", zipFilePath, to.zipPassword); dir = zipDir; - if (error) - { + if (error) { if (!errorStr.empty()) - { errorStr += L"\n"; - } errorStr += TranslateT("Cannot compress file(s)."); } } - if (to.useFtp) - { - if (!error) - { + if (to.useFtp) { + if (!error) { error = FtpFiles(dir, to.filePath, to.ftpName); - if (error) - { + if (error) { if (!errorStr.empty()) - { errorStr += L"\n"; - } errorStr += TranslateT("Cannot send FTP file(s)."); } @@ -660,23 +542,17 @@ bool DoTask(TaskOptions& to) } } - if (to.type == TaskOptions::Delete || to.type == TaskOptions::ExportAndDelete) - { - for(std::list::iterator it = managers.begin(); it != managers.end(); ++it) - { + if (to.type == TaskOptions::Delete || to.type == TaskOptions::ExportAndDelete) { + for (std::list::iterator it = managers.begin(); it != managers.end(); ++it) { if (!error) - { (*it)->DeleteExportedEvents(); - } delete *it; } } if (error) - { DoError(to, errorStr.empty() ? TranslateT("Unknown error") : errorStr); - } return error; } @@ -685,18 +561,15 @@ std::wstring GetFileName(const std::wstring &baseName, std::wstring contactName, { std::wstring str = baseName; size_t pos = baseName.find(_T("")); - if (replaceContact && pos < baseName.length()) - { + if (replaceContact && pos < baseName.length()) { str = baseName.substr(0, pos); std::wstring baseName1 = contactName; - if (!baseName1.empty()) - { + if (!baseName1.empty()) { std::wstring name = baseName1; int i = 0; TCHAR buf[32]; std::map::iterator it = existingContacts.find(name); - while(it != existingContacts.end()) - { + while(it != existingContacts.end()) { _itot_s(++i, buf, 10); name = baseName1 + buf; it = existingContacts.find(name); @@ -709,8 +582,7 @@ std::wstring GetFileName(const std::wstring &baseName, std::wstring contactName, } pos = str.find(_T("")); - if (pos < str.length()) - { + if (pos < str.length()) { TCHAR time[256]; SYSTEMTIME st; GetLocalTime(&st); @@ -728,9 +600,7 @@ std::wstring GetDirectoryName(const std::wstring &path) { size_t find = path.find_last_of(L"\\/"); if (find < path.length()) - { return path.substr(0, find); - } return L""; } @@ -741,20 +611,17 @@ void ListDirectory(const std::wstring &basePath, const std::wstring &path, std:: HANDLE hFind = FindFirstFile((basePath + path + _T("*")).c_str(), &findFileData); if (hFind == INVALID_HANDLE_VALUE) return; + do { - if (findFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) - { + if (findFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { std::wstring name = findFileData.cFileName; if (name != L"." && name != L"..") ListDirectory(basePath, path + findFileData.cFileName + _T("\\"), files); } - else - { - files.push_back(path + findFileData.cFileName); - } + else files.push_back(path + findFileData.cFileName); } - while(FindNextFile(hFind, &findFileData)); + while(FindNextFile(hFind, &findFileData)); FindClose(hFind); } @@ -763,8 +630,7 @@ std::wstring ReplaceStr(const std::wstring& str, wchar_t oldCh, wchar_t newCh) std::wstring ret; size_t start = 0; size_t find; - while((find = str.find_first_of(oldCh, start)) < str.length()) - { + while((find = str.find_first_of(oldCh, start)) < str.length()) { ret += str.substr(start, find - start); ret += newCh; start = find + 1; @@ -776,8 +642,7 @@ std::wstring ReplaceStr(const std::wstring& str, wchar_t oldCh, wchar_t newCh) time_t GetNextExportTime(TaskOptions& to) { - switch(to.trigerType) - { + switch(to.trigerType) { case TaskOptions::Daily: { tm t; @@ -787,10 +652,7 @@ time_t GetNextExportTime(TaskOptions& to) t.tm_sec = 0; time_t newTime = mktime(&t); if (newTime <= to.lastExport) - { newTime += 60 * 60 * 24; - } - return newTime; } case TaskOptions::Weekly: @@ -802,18 +664,14 @@ time_t GetNextExportTime(TaskOptions& to) t.tm_sec = 0; int dow = (to.dayOfWeek + 1) % 7; time_t newTime = mktime(&t); - while(dow != t.tm_wday) - { + while(dow != t.tm_wday) { newTime += 60 * 60 * 24; localtime_s(&t, &newTime); newTime = mktime(&t); } if (newTime <= to.lastExport) - { newTime += 7 * 60 * 60 * 24; - } - return newTime; } case TaskOptions::Monthly: @@ -826,17 +684,14 @@ time_t GetNextExportTime(TaskOptions& to) time_t newTime = mktime(&t); int lastM = t.tm_mon; int lastD; - while(to.dayOfMonth != t.tm_mday || newTime <= to.lastExport) - { + while(to.dayOfMonth != t.tm_mday || newTime <= to.lastExport) { lastD = t.tm_mday; newTime += 60 * 60 * 24; localtime_s(&t, &newTime); newTime = mktime(&t); - if (to.dayOfMonth > 28 && t.tm_mon != lastM && (newTime - 60 * 60 * 24) > to.lastExport) - { + if (to.dayOfMonth > 28 && t.tm_mon != lastM && (newTime - 60 * 60 * 24) > to.lastExport) { lastM = t.tm_mon; - if (to.dayOfMonth > lastD) - { + if (to.dayOfMonth > lastD) { newTime -= 60 * 60 * 24; break; } @@ -856,8 +711,7 @@ time_t GetNextExportTime(TaskOptions& to) void SchedulerThreadFunc(void*) { - if (initTask) - { + if (initTask) { WaitForSingleObject(hThreadEvent, 5 * 1000); initTask = false; } @@ -906,32 +760,26 @@ bool GetNextExportTime(bool init, time_t now) { EnterCriticalSection(&Options::instance->criticalSection); bool isExport = false; - for(std::vector::iterator it = Options::instance->taskOptions.begin(); it != Options::instance->taskOptions.end(); ++it) - { - if (it->forceExecute) - { + for (std::vector::iterator it = Options::instance->taskOptions.begin(); it != Options::instance->taskOptions.end(); ++it) { + if (it->forceExecute) { nextExportTime = now; isExport = true; initTask = init; break; } - else if (it->active && it->trigerType != TaskOptions::AtStart && it->trigerType != TaskOptions::AtEnd) - { + else if (it->active && it->trigerType != TaskOptions::AtStart && it->trigerType != TaskOptions::AtEnd) { time_t t = GetNextExportTime(*it); - if (isExport) - { + if (isExport) { if (t < nextExportTime) nextExportTime = t; } - else - { + else { nextExportTime = t; isExport = true; initTask = init; } } - else if (it->active && it->trigerType == TaskOptions::AtStart && init) - { + else if (it->active && it->trigerType == TaskOptions::AtStart && init) { it->forceExecute = true; it->showMBAfterExecute = false; nextExportTime = now; @@ -956,21 +804,17 @@ bool ExecuteCurrentTask(time_t now) EnterCriticalSection(&Options::instance->criticalSection); TaskOptions to; bool isExport = false; - for(std::vector::iterator it = Options::instance->taskOptions.begin(); it != Options::instance->taskOptions.end(); ++it) - { - if (it->forceExecute) - { + for (std::vector::iterator it = Options::instance->taskOptions.begin(); it != Options::instance->taskOptions.end(); ++it) { + if (it->forceExecute) { it->lastExport = time(NULL); Options::instance->SaveTaskTime(*it); to = *it; isExport = true; break; } - else if (it->active && it->trigerType != TaskOptions::AtStart && it->trigerType != TaskOptions::AtEnd) - { + else if (it->active && it->trigerType != TaskOptions::AtStart && it->trigerType != TaskOptions::AtEnd) { time_t t = GetNextExportTime(*it); - if (t <= now) - { + if (t <= now) { it->lastExport = time(NULL); Options::instance->SaveTaskTime(*it); to = *it; @@ -982,16 +826,12 @@ bool ExecuteCurrentTask(time_t now) LeaveCriticalSection(&Options::instance->criticalSection); - if (isExport) - { + if (isExport) { bool error = DoTask(to); - if (to.forceExecute) - { + if (to.forceExecute) { EnterCriticalSection(&Options::instance->criticalSection); - for(std::vector::iterator it = Options::instance->taskOptions.begin(); it != Options::instance->taskOptions.end(); ++it) - { - if (it->taskName == to.taskName) - { + for (std::vector::iterator it = Options::instance->taskOptions.begin(); it != Options::instance->taskOptions.end(); ++it) { + if (it->taskName == to.taskName) { it->forceExecute = false; it->showMBAfterExecute = false; break; @@ -1000,19 +840,13 @@ bool ExecuteCurrentTask(time_t now) LeaveCriticalSection(&Options::instance->criticalSection); - if (to.showMBAfterExecute) - { + if (to.showMBAfterExecute) { size_t size = to.taskName.size() + 1024; TCHAR* name = new TCHAR[size]; if (error) - { mir_sntprintf(name, size, TranslateT("Task '%s' execution failed"), to.taskName.c_str()); - } else - { mir_sntprintf(name, size, TranslateT("Task '%s' finished successfully"), to.taskName.c_str()); - } - QueueUserAPC(DoTaskFinishInMainAPCFunc, g_hMainThread, (ULONG_PTR) name); } } @@ -1024,13 +858,10 @@ bool ExecuteCurrentTask(time_t now) void GetZipFileTime(const TCHAR *file, uLong *dt) { FILETIME ftLocal; - HANDLE hFind; WIN32_FIND_DATA ff32; - - hFind = FindFirstFile(file, &ff32); - if (hFind != INVALID_HANDLE_VALUE) - { - FileTimeToLocalFileTime(&(ff32.ftLastWriteTime),&ftLocal); + HANDLE hFind = FindFirstFile(file, &ff32); + if (hFind != INVALID_HANDLE_VALUE) { + FileTimeToLocalFileTime(&(ff32.ftLastWriteTime), &ftLocal); FileTimeToDosDateTime(&ftLocal,((LPWORD)dt)+1,((LPWORD)dt)+0); FindClose(hFind); } @@ -1043,29 +874,22 @@ bool GetFileCrc(const TCHAR* filenameinzip, unsigned char* buf, unsigned long si unsigned long calculate_crc = 0; bool error = true; HANDLE hFile = CreateFile(filenameinzip, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL); - if (hFile != INVALID_HANDLE_VALUE) - { + if (hFile != INVALID_HANDLE_VALUE) { DWORD readed; do { - if (!ReadFile(hFile, buf, 1024, &readed, NULL)) - { + if (!ReadFile(hFile, buf, 1024, &readed, NULL)) { error = false; break; } if (readed > 0) - { - calculate_crc = crc32(calculate_crc, buf, readed); - } + calculate_crc = crc32(calculate_crc, buf, readed); } - while (readed > 0); + while (readed > 0); CloseHandle(hFile); } - else - { - error = false; - } + else error = false; *result_crc=calculate_crc; return error; @@ -1077,25 +901,21 @@ bool ZipFiles(const std::wstring& dir, std::wstring zipFilePath, const std::stri std::map existingContacts; ListDirectory(dir, L"", files); bool error = false; - if (files.size() > 0) - { + if (files.size() > 0) { zlib_filefunc_def pzlib_filefunc_def; fill_win32_filefunc(&pzlib_filefunc_def); zipFilePath = GetFileName(zipFilePath, L"", existingContacts, true); zipFilePath = ReplaceExt(zipFilePath, L"zip"); zipFile zf = zipOpen2((LPCSTR)(LPTSTR)zipFilePath.c_str(), APPEND_STATUS_CREATE, NULL, &pzlib_filefunc_def); - if (zf != NULL) - { + if (zf != NULL) { unsigned char buf[1024]; char bufF[MAX_PATH + 20]; - while(files.size() > 0) - { + while(files.size() > 0) { std::wstring zipDir = *files.begin(); std::wstring localDir = dir + L"\\" + zipDir; zip_fileinfo zi = {0}; GetZipFileTime(localDir.c_str(), &zi.dosDate); - if (zipDir.size() > MAX_PATH + 19) - { + if (zipDir.size() > MAX_PATH + 19) { error = true; break; } @@ -1103,18 +923,15 @@ bool ZipFiles(const std::wstring& dir, std::wstring zipFilePath, const std::stri BOOL badChar; WideCharToMultiByte(CP_OEMCP, WC_NO_BEST_FIT_CHARS, zipDir.c_str(), -1, bufF, MAX_PATH + 20, NULL, &badChar); int flag = 0; - if (badChar) - { + if (badChar) { flag = 0x800; // UTF WideCharToMultiByte(CP_UTF8, 0, zipDir.c_str(), -1, bufF, MAX_PATH + 20, NULL, NULL); } unsigned long calculate_crc = 0; const char* passwordCh = NULL; - if (password.size() > 0) - { - if (!GetFileCrc(localDir.c_str(), buf, 1024, &calculate_crc)) - { + if (password.size() > 0) { + if (!GetFileCrc(localDir.c_str(), buf, 1024, &calculate_crc)) { error = true; break; } @@ -1124,38 +941,31 @@ bool ZipFiles(const std::wstring& dir, std::wstring zipFilePath, const std::stri int err = zipOpenNewFileInZip4_64 (zf, bufF, &zi, NULL, 0, NULL, 0, NULL, Z_DEFLATED, Z_DEFAULT_COMPRESSION, 0, -MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY, passwordCh, calculate_crc, 0, flag, 0); - if (err == ZIP_OK) - { + if (err == ZIP_OK) { HANDLE hFile = CreateFile(localDir.c_str(), GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL); - if (hFile != INVALID_HANDLE_VALUE) - { + if (hFile != INVALID_HANDLE_VALUE) { DWORD readed; do { err = ZIP_OK; - if (!ReadFile(hFile, buf, 1024, &readed, NULL)) - { + if (!ReadFile(hFile, buf, 1024, &readed, NULL)) { error = true; break; } if (readed > 0) - { err = zipWriteInFileInZip(zf, buf, readed); - } } - while ((err == ZIP_OK) && (readed > 0)); + while ((err == ZIP_OK) && (readed > 0)); CloseHandle(hFile); } - if (zipCloseFileInZip(zf) != ZIP_OK) - { + if (zipCloseFileInZip(zf) != ZIP_OK) { error = true; break; } } - else - { + else { error = true; break; } @@ -1165,10 +975,7 @@ bool ZipFiles(const std::wstring& dir, std::wstring zipFilePath, const std::stri zipClose(zf, NULL); } - else - { - error = true; - } + else error = true; } DeleteDirectory(dir.c_str()); @@ -1186,129 +993,104 @@ bool UnzipFiles(const std::wstring& dir, std::wstring& zipFilePath, const std::s zipFilePath = GetFileName(zipFilePath, L"", existingContacts, true); zipFilePath = ReplaceExt(zipFilePath, L"zip"); unzFile zf = unzOpen2((LPCSTR)(LPTSTR)zipFilePath.c_str(), &pzlib_filefunc_def); - if (zf != NULL) - { - char buf[8192]; - char bufF[MAX_PATH + 20]; - unz_file_info file_info; - do - { - int err = unzGetCurrentFileInfo(zf, &file_info, bufF, MAX_PATH + 20, buf, 8192, NULL, 0); - if (err == UNZ_OK) - { - UINT cp = CP_OEMCP; - if (file_info.flag & 0x800)// UTF - { - cp = CP_UTF8; - } + if (zf == NULL) + return true; - // Get Unicode file name for InfoZip style archives, otherwise assume PKZip/WinZip style - if (file_info.size_file_extra) - { - char *p = buf; - unsigned long size = min(file_info.size_file_extra, 8192); - while (size > 0) - { - unsigned short id = *(unsigned short*)p; - unsigned len = *(unsigned short*)(p + 2); + char buf[8192]; + char bufF[MAX_PATH + 20]; + unz_file_info file_info; + do + { + int err = unzGetCurrentFileInfo(zf, &file_info, bufF, MAX_PATH + 20, buf, 8192, NULL, 0); + if (err == UNZ_OK) { + UINT cp = CP_OEMCP; + if (file_info.flag & 0x800)// UTF + cp = CP_UTF8; + + // Get Unicode file name for InfoZip style archives, otherwise assume PKZip/WinZip style + if (file_info.size_file_extra) { + char *p = buf; + unsigned long size = min(file_info.size_file_extra, 8192); + while (size > 0) { + unsigned short id = *(unsigned short*)p; + unsigned len = *(unsigned short*)(p + 2); - if (size < (len + 4)) break; + if (size < (len + 4)) break; - if (id == 0x7075 && len > 5 && (len - 5) < MAX_PATH + 20 && *(p + 4) == 1) - { - memcpy(bufF, p + 9, len - 5); - bufF[len - 5] = 0; - cp = CP_UTF8; - break; - } - size -= len + 4; - p += len + 4; + if (id == 0x7075 && len > 5 && (len - 5) < MAX_PATH + 20 && *(p + 4) == 1) { + memcpy(bufF, p + 9, len - 5); + bufF[len - 5] = 0; + cp = CP_UTF8; + break; } + size -= len + 4; + p += len + 4; } + } - int sizeC = (int)strlen(bufF); - int sizeW = MultiByteToWideChar(cp, 0, bufF, sizeC, NULL, 0); - fileNameInZip.resize(sizeW); - MultiByteToWideChar(cp, 0, bufF, sizeC, (wchar_t*)fileNameInZip.c_str(), sizeW); - fileNameInZip = dir + L"\\" + fileNameInZip; - for (size_t i = 0; i < fileNameInZip.length(); ++i) - { - if (fileNameInZip[i] == L'/') - fileNameInZip[i] = L'\\'; - } + int sizeC = (int)strlen(bufF); + int sizeW = MultiByteToWideChar(cp, 0, bufF, sizeC, NULL, 0); + fileNameInZip.resize(sizeW); + MultiByteToWideChar(cp, 0, bufF, sizeC, (wchar_t*)fileNameInZip.c_str(), sizeW); + fileNameInZip = dir + L"\\" + fileNameInZip; + for (size_t i = 0; i < fileNameInZip.length(); ++i) + if (fileNameInZip[i] == L'/') + fileNameInZip[i] = L'\\'; - if (file_info.external_fa & FILE_ATTRIBUTE_DIRECTORY) - CreatePath(fileNameInZip.c_str()); - else - { - const char* passwordCh = NULL; - if (password.size() > 0) - { - passwordCh = password.c_str(); - } - - err = unzOpenCurrentFilePassword(zf, passwordCh); - if (err == UNZ_OK) - { - CreatePath(GetDirectoryName(fileNameInZip).c_str()); - HANDLE hFile = CreateFile(fileNameInZip.c_str(), GENERIC_WRITE, FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, 0, NULL); - if (hFile != INVALID_HANDLE_VALUE) - { - DWORD writed; - for (;;) - { - err = unzReadCurrentFile(zf, buf, 8192); - if (err <= 0) break; - - if (!WriteFile(hFile, buf, err, &writed, FALSE)) - { - err = -1; - break; - } - } + if (file_info.external_fa & FILE_ATTRIBUTE_DIRECTORY) + CreatePath(fileNameInZip.c_str()); + else { + const char* passwordCh = NULL; + if (password.size() > 0) + passwordCh = password.c_str(); - CloseHandle(hFile); - if (err < 0) - { - error = true; + err = unzOpenCurrentFilePassword(zf, passwordCh); + if (err == UNZ_OK) { + CreatePath(GetDirectoryName(fileNameInZip).c_str()); + HANDLE hFile = CreateFile(fileNameInZip.c_str(), GENERIC_WRITE, FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, 0, NULL); + if (hFile != INVALID_HANDLE_VALUE) { + DWORD writed; + for (;;) { + err = unzReadCurrentFile(zf, buf, 8192); + if (err <= 0) break; + + if ( !WriteFile(hFile, buf, err, &writed, FALSE)) { + err = -1; break; } } - else - { - unzCloseCurrentFile(zf); - error = true; - break; - } - - if (unzCloseCurrentFile(zf) != ZIP_OK) - { + + CloseHandle(hFile); + if (err < 0) { error = true; break; } } - else - { + else { + unzCloseCurrentFile(zf); + error = true; + break; + } + + if (unzCloseCurrentFile(zf) != ZIP_OK) { error = true; break; } } + else { + error = true; + break; + } } - else - { - error = true; - break; - } } + else { + error = true; + break; + } + } while (unzGoToNextFile(zf) == UNZ_OK); - unzClose(zf); - } - else - { - error = true; - } - + unzClose(zf); return error; } @@ -1317,23 +1099,19 @@ bool FtpFiles(const std::wstring& dir, const std::wstring& filePath, const std:: std::list files; std::map existingContacts; ListDirectory(dir, L"\\", files); - if (files.size() > 0) - { + if (files.size() > 0) { std::wofstream stream ((dir + _T("\\script.sc")).c_str()); - if (stream.is_open()) - { + if (stream.is_open()) { std::wstring ftpDir = GetDirectoryName(filePath); ftpDir = GetFileName(ftpDir, L"", existingContacts, false); stream << "option batch continue\noption confirm off\nopen \"" << ftpName << "\"\noption transfer binary\n"; std::wstring lastCD; size_t filSize = files.size(); - while(files.size() > 0) - { + while(files.size() > 0) { std::wstring localDir = *files.begin(); std::wstring currentCD = ftpDir + GetDirectoryName(ReplaceStr(localDir, L'\\', L'/')); - if (currentCD != lastCD) - { + if (currentCD != lastCD) { if (!currentCD.empty() && currentCD != L"/") stream << "mkdir \"" << currentCD << "\"\n"; stream << "cd \"" << currentCD << "\"\n"; @@ -1356,54 +1134,39 @@ bool FtpFiles(const std::wstring& dir, const std::wstring& filePath, const std:: STARTUPINFO startupInfo = {0}; PROCESS_INFORMATION processInfo; startupInfo.cb = sizeof(STARTUPINFO); - if (CreateProcess(NULL, cmdLine, NULL, NULL, FALSE, 0, NULL, dir.c_str(), &startupInfo, &processInfo)) - { + if (CreateProcess(NULL, cmdLine, NULL, NULL, FALSE, 0, NULL, dir.c_str(), &startupInfo, &processInfo)) { WaitForSingleObject(processInfo.hProcess, INFINITE); CloseHandle(processInfo.hThread); CloseHandle(processInfo.hProcess); if (log.empty()) - { return false; - } std::wifstream logStream (log.c_str()); - if (logStream.is_open()) - { + if (logStream.is_open()) { bool isInMDTM = false; std::list dates; - while(!logStream.eof()) - { + while(!logStream.eof()) { std::wstring lineStr; std::getline(logStream, lineStr); - if (lineStr.length() > 1) - { - if (lineStr[0] == L'>') - { - if (isInMDTM) - { - if (lineStr.find(L"Script:") < lineStr.length()) - { + if (lineStr.length() > 1) { + if (lineStr[0] == L'>') { + if (isInMDTM) { + if (lineStr.find(L"Script:") < lineStr.length()) { dates.push_back(L""); isInMDTM = false; } } if (lineStr.find(L"Script: call MDTM") < lineStr.length()) - { isInMDTM = true; - } } - else if (isInMDTM && lineStr[0] == L'<') - { + else if (isInMDTM && lineStr[0] == L'<') { size_t ss = lineStr.find(L"Script: 213 "); - if (ss < lineStr.length()) - { + if (ss < lineStr.length()) { ss += 12; - if (ss < lineStr.length()) - { + if (ss < lineStr.length()) { lineStr = lineStr.substr(ss); - if (lineStr.size() == 14) - { + if (lineStr.size() == 14) { dates.push_back(lineStr); isInMDTM = false; } @@ -1413,14 +1176,11 @@ bool FtpFiles(const std::wstring& dir, const std::wstring& filePath, const std:: } } - if (dates.size() > 0 && dates.size() == filSize * 2) - { - for(std::list::const_iterator it = dates.begin(); it != dates.end(); ++it) - { + if (dates.size() > 0 && dates.size() == filSize * 2) { + for (std::list::const_iterator it = dates.begin(); it != dates.end(); ++it) { std::wstring date1 = *it++; if (it->empty() || date1 == *it) return true; - } return false; @@ -1438,19 +1198,16 @@ bool FtpGetFiles(const std::wstring& dir, const std::list& files, std::map existingContacts; std::wstring script = dir + _T("\\script.sc"); std::wofstream stream (script.c_str()); - if (stream.is_open()) - { + if (stream.is_open()) { stream << "option batch continue\noption confirm off\nopen \"" << ftpName << "\"\noption transfer binary\n"; std::wstring lastCD; std::list localFiles; - for(std::list::const_iterator it = files.begin(); it != files.end(); ++it) - { + for (std::list::const_iterator it = files.begin(); it != files.end(); ++it) { std::wstring fileName = GetName(*it); localFiles.push_back(dir + L"\\" + fileName); std::wstring currentCD = GetDirectoryName(*it); - if (currentCD != lastCD) - { + if (currentCD != lastCD) { stream << "cd \"" << currentCD << "\"\n"; lastCD = currentCD; } @@ -1467,21 +1224,17 @@ bool FtpGetFiles(const std::wstring& dir, const std::list& files, STARTUPINFO startupInfo = {0}; PROCESS_INFORMATION processInfo; startupInfo.cb = sizeof(STARTUPINFO); - if (CreateProcess(NULL, cmdLine, NULL, NULL, FALSE, 0, NULL, dir.c_str(), &startupInfo, &processInfo)) - { + if (CreateProcess(NULL, cmdLine, NULL, NULL, FALSE, 0, NULL, dir.c_str(), &startupInfo, &processInfo)) { WaitForSingleObject(processInfo.hProcess, INFINITE); CloseHandle(processInfo.hThread); CloseHandle(processInfo.hProcess); } DeleteFile(script.c_str()); - for(std::list::const_iterator it = localFiles.begin(); it != localFiles.end(); ++it) - { + for (std::list::const_iterator it = localFiles.begin(); it != localFiles.end(); ++it) { DWORD atr = GetFileAttributes(it->c_str()); if (atr == INVALID_FILE_ATTRIBUTES || atr & FILE_ATTRIBUTE_DIRECTORY) - { return true; - } } return false; @@ -1516,8 +1269,7 @@ INT_PTR ExecuteTaskService(WPARAM wParam, LPARAM lParam) { EnterCriticalSection(&Options::instance->criticalSection); int taskNr = (int)wParam; - if (taskNr < 0 || taskNr >= (int)Options::instance->taskOptions.size()) - { + if (taskNr < 0 || taskNr >= (int)Options::instance->taskOptions.size()) { LeaveCriticalSection(&Options::instance->criticalSection); return FALSE; } @@ -1533,8 +1285,7 @@ void DoError(const TaskOptions& to, const std::wstring _error) { TCHAR msg[256]; mir_sntprintf(msg, SIZEOF(msg), TranslateT("Task '%s' execution failed:"), to.taskName.c_str()); - if (Options::instance->schedulerHistoryAlerts) - { + if (Options::instance->schedulerHistoryAlerts) { std::wstring error = msg; error += L"\n"; error += _error; @@ -1552,17 +1303,14 @@ void DoError(const TaskOptions& to, const std::wstring _error) dbei.pBlob = (PBYTE)buf; db_event_add(NULL, &dbei); } - - if (Options::instance->schedulerAlerts) - { - if (CallService(MS_SYSTEM_TERMINATED, 0, 0)) return; - if (ServiceExists(MS_POPUP_ADDPOPUPCLASS)) - { + if (Options::instance->schedulerAlerts) { + if ( CallService(MS_SYSTEM_TERMINATED, 0, 0)) + return; + + if ( ServiceExists(MS_POPUP_ADDPOPUPCLASS)) ShowClassPopupT(MODULE, msg, (wchar_t*)_error.c_str()); - } - else if (ServiceExists( MS_POPUP_ADDPOPUPT )) - { + else if ( ServiceExists(MS_POPUP_ADDPOPUPT)) { POPUPDATAT ppd = {0}; ppd.lchIcon = LoadSkinnedIcon(SKINICON_OTHER_HISTORY); _tcscpy_s(ppd.lptzContactName, msg); diff --git a/plugins/BasicHistory/src/Searcher.cpp b/plugins/BasicHistory/src/Searcher.cpp index 57638e6c6d..0c9091e4f6 100644 --- a/plugins/BasicHistory/src/Searcher.cpp +++ b/plugins/BasicHistory/src/Searcher.cpp @@ -33,20 +33,17 @@ Searcher::Searcher() void Searcher::ChangeFindDirection(bool isBack) { - if (isBack != findBack) - { + if (isBack != findBack) { findBack = isBack; ClearFind(); TBBUTTONINFO tbInfo; tbInfo.cbSize = sizeof(TBBUTTONINFO); tbInfo.dwMask = TBIF_TEXT | TBIF_IMAGE; - if (isBack) - { + if (isBack) { tbInfo.pszText = TranslateT("Find Previous"); tbInfo.iImage = 1; } - else - { + else { tbInfo.pszText = TranslateT("Find Next"); tbInfo.iImage = 0; } @@ -58,8 +55,7 @@ void Searcher::ChangeFindDirection(bool isBack) void Searcher::ClearFind() { - if (lastFindSelection != -1) - { + if (lastFindSelection != -1) { SendMessage(context->editWindow,EM_SETOPTIONS,ECOOP_AND,~ECO_NOHIDESEL); lastFindSelection = -1; } @@ -77,10 +73,10 @@ bool Searcher::CompareStr(std::wstring str, TCHAR *strFind) std::transform(str.begin(), str.end(), str.begin(), std::bind2nd(std::ptr_fun(mytoupper), &loc)); if (!matchWholeWords) return str.find(strFind) < str.length(); + size_t findid = str.find(strFind); size_t findLen = _tcslen(strFind); - while(findid < str.length()) - { + while(findid < str.length()) { if ((findid == 0 || std::isspace(str[findid - 1], loc) || std::ispunct(str[findid - 1], loc)) && (findid + findLen >= str.length() || std::isspace(str[findid + findLen], loc) || std::ispunct(str[findid + findLen], loc))) return true; @@ -100,23 +96,20 @@ void Searcher::Find() ft.chrg.cpMin = 0; ft.chrg.cpMax = -1; ft.lpstrText = str; - if (context->currentGroup.size() < 1) - { + if (context->currentGroup.size() < 1) { SendMessage(context->editWindow,EM_SETOPTIONS,ECOOP_AND,~ECO_NOHIDESEL); lastFindSelection = -1; return; } GetWindowText(context->findWindow, str, 128); - if (!str[0]) - { + if (!str[0]) { TCHAR buf[256]; mir_sntprintf(buf, 256, TranslateT("\"%s\" not found"), str); MessageBox(context->hWnd, buf, TranslateT("Search"), MB_OK | MB_ICONINFORMATION); return; } - if (!matchCase) - { + if (!matchCase) { std::locale loc; std::transform(str, str + _tcslen(str), str, std::bind2nd(std::ptr_fun(mytoupper), &loc)); } @@ -126,38 +119,26 @@ void Searcher::Find() int adder1 = findBack1 ? -1 : 1; int adder2 = findBack2 ? -1 : 1; WPARAM findStyle = (findBack1 ? 0 : FR_DOWN) | (matchCase ? FR_MATCHCASE : 0) | (matchWholeWords ? FR_WHOLEWORD : 0); - if (lastFindSelection >= 0 && lastFindSelection < (int)context->currentGroup.size()) - { + if (lastFindSelection >= 0 && lastFindSelection < (int)context->currentGroup.size()) { if (onlyIn && context->currentGroup[lastFindSelection].isMe || onlyOut && !context->currentGroup[lastFindSelection].isMe) - { curSel = lastFindSelection + adder1; - } - else - { + else { SendDlgItemMessage(context->hWnd,IDC_EDIT,EM_EXGETSEL,0,(LPARAM)&ft.chrg); - if (findBack1) - { + if (findBack1) { ft.chrg.cpMin = ft.chrg.cpMin < context->currentGroup[lastFindSelection].endPos ? ft.chrg.cpMin : context->currentGroup[lastFindSelection].endPos; ft.chrg.cpMax = context->currentGroup[lastFindSelection].startPos; } - else - { + else { ft.chrg.cpMin = ft.chrg.cpMax > context->currentGroup[lastFindSelection].startPos ? ft.chrg.cpMax : context->currentGroup[lastFindSelection].startPos; ft.chrg.cpMax = context->currentGroup[lastFindSelection].endPos; } SendMessage(context->editWindow,EM_FINDTEXTEX, findStyle,(LPARAM)&ft); if (ft.chrgText.cpMin < 0 || ft.chrgText.cpMax < 0) - { curSel = lastFindSelection + adder1; - } - else - { + else { if (isFindContactChanged && startFindContact == context->hContact && isFindSelChanged && context->selected == startFindSel && ((!findBack1 && ft.chrg.cpMin >= startFindPos) || (findBack1 && ft.chrg.cpMax <= startFindPos))) - { finished = true; - } - else - { + else { curSel = lastFindSelection; SendMessage(context->editWindow,EM_EXSETSEL,0,(LPARAM)&ft.chrgText); SendMessage(context->editWindow,EM_SETOPTIONS,ECOOP_OR,ECO_NOHIDESEL); @@ -167,8 +148,7 @@ void Searcher::Find() } } } - else - { + else { isStart = true; SendMessage(context->editWindow,EM_SETOPTIONS,ECOOP_OR,ECO_NOHIDESEL); SendMessage(context->editWindow,EM_EXGETSEL,0,(LPARAM)&ft.chrg); @@ -179,47 +159,38 @@ void Searcher::Find() isFindSelChanged = false; startFindContact = context->hContact; isFindContactChanged = !allUsers; - if (findBack1) - for(curSel = (int)context->currentGroup.size() - 1; curSel >= 0; --curSel) - { + if (findBack1) { + for (curSel = (int)context->currentGroup.size() - 1; curSel >= 0; --curSel) if (context->currentGroup[curSel].startPos < startFindPos) break; - } + } else - for(; curSel < (int)context->currentGroup.size(); ++curSel) - { + for (; curSel < (int)context->currentGroup.size(); ++curSel) if (context->currentGroup[curSel].endPos > startFindPos) break; - } } - if (!finished) - { - for(; curSel < (int)context->currentGroup.size() && curSel >= 0; curSel += adder1) - { + if (!finished) { + for (; curSel < (int)context->currentGroup.size() && curSel >= 0; curSel += adder1) { if (onlyIn && context->currentGroup[curSel].isMe || onlyOut && !context->currentGroup[curSel].isMe) continue; - if (CompareStr(context->currentGroup[curSel].description, str)) - { - if (findBack1) - { + + if (CompareStr(context->currentGroup[curSel].description, str)) { + if (findBack1) { ft.chrg.cpMin = context->currentGroup[curSel].endPos; ft.chrg.cpMax = context->currentGroup[curSel].startPos; if (!isFindSelChanged && ft.chrg.cpMin > startFindPos) ft.chrg.cpMin = startFindPos; } - else - { + else { ft.chrg.cpMin = context->currentGroup[curSel].startPos; ft.chrg.cpMax = context->currentGroup[curSel].endPos; if (!isFindSelChanged && ft.chrg.cpMin < startFindPos) ft.chrg.cpMin = startFindPos; } SendMessage(context->editWindow,EM_FINDTEXTEX, findStyle,(LPARAM)&ft); - if (!(ft.chrgText.cpMin < 0 || ft.chrgText.cpMax < 0)) - { - if (isFindContactChanged && startFindContact == context->hContact && isFindSelChanged && context->selected == startFindSel && ((!findBack1 && ft.chrg.cpMin >= startFindPos) || (findBack1 && ft.chrg.cpMax <= startFindPos))) - { + if (!(ft.chrgText.cpMin < 0 || ft.chrgText.cpMax < 0)) { + if (isFindContactChanged && startFindContact == context->hContact && isFindSelChanged && context->selected == startFindSel && ((!findBack1 && ft.chrg.cpMin >= startFindPos) || (findBack1 && ft.chrg.cpMax <= startFindPos))) { finished = true; break; } @@ -233,17 +204,12 @@ void Searcher::Find() } if (isFindContactChanged && startFindContact == context->hContact && isFindSelChanged && context->selected == startFindSel) - { finished = true; - } - if (!finished) - { + if (!finished) { isFindSelChanged = true; - if (onlyGroup) - { - if (IsInSel(context->selected, str)) - { + if (onlyGroup) { + if (IsInSel(context->selected, str)) { CHARRANGE ch; ch.cpMin = ch.cpMax = findBack1 ? MAXLONG : 0; SendMessage(context->editWindow,EM_EXSETSEL,0,(LPARAM)&ch); @@ -252,44 +218,37 @@ void Searcher::Find() return; } } - else - { - for(int sel = context->selected + adder2; ; sel += adder2) - { - if (sel < 0) - { + else { + for (int sel = context->selected + adder2; ; sel += adder2) { + if (sel < 0) { isFindContactChanged = true; - if (allUsers) - { + if (allUsers) { HANDLE hNext = context->hContact; do { hNext = context->GetNextContact(hNext, adder2); } - while(hNext != startFindContact && !context->SearchInContact(hNext, str, this)); + while(hNext != startFindContact && !context->SearchInContact(hNext, str, this)); context->SelectContact(hNext); } sel = (int)context->eventList.size() - 1; } - else if (sel >= (int)context->eventList.size()) - { + else if (sel >= (int)context->eventList.size()) { isFindContactChanged = true; - if (allUsers) - { + if (allUsers) { HANDLE hNext = context->hContact; do { hNext = context->GetNextContact(hNext, adder2); } - while(hNext != startFindContact && !context->SearchInContact(hNext, str, this)); + while(hNext != startFindContact && !context->SearchInContact(hNext, str, this)); context->SelectContact(hNext); } sel = 0; } - if (IsInSel(sel, str)) - { + if (IsInSel(sel, str)) { LVITEM item = {0}; item.mask = LVIF_STATE; item.iItem = context->selected; @@ -316,12 +275,9 @@ void Searcher::Find() } if (startFindContact != context->hContact) - { context->SelectContact(startFindContact); - } - if (startFindSel != context->selected) - { + if (startFindSel != context->selected) { LVITEM item = {0}; item.mask = LVIF_STATE; item.iItem = context->selected; @@ -340,17 +296,13 @@ void Searcher::Find() SendMessage(context->editWindow,EM_EXSETSEL,0,(LPARAM)&ft.chrgText); SendMessage(context->editWindow,EM_SETOPTIONS,ECOOP_AND,~ECO_NOHIDESEL); lastFindSelection = -1; - if (isStart) - { + if (isStart) { TCHAR buf[256]; GetWindowText(context->findWindow, str, 128); mir_sntprintf(buf, 256, TranslateT("\"%s\" not found"), str); MessageBox(context->hWnd, buf, TranslateT("Search"), MB_OK | MB_ICONINFORMATION); } - else - { - MessageBox(context->hWnd, TranslateTS(onlyGroup ? LPGENT("You have reached the end of the group.") : LPGENT("You have reached the end of the history.")), TranslateT("Search"), MB_OK | MB_ICONINFORMATION); - } + else MessageBox(context->hWnd, TranslateTS(onlyGroup ? LPGENT("You have reached the end of the group.") : LPGENT("You have reached the end of the history.")), TranslateT("Search"), MB_OK | MB_ICONINFORMATION); } bool Searcher::IsInSel(int sel, TCHAR *strFind) @@ -360,19 +312,16 @@ bool Searcher::IsInSel(int sel, TCHAR *strFind) TCHAR str[MAXSELECTSTR + 8]; // for safety reason EventList::EventData data; - for(std::deque::iterator it = context->eventList[sel].begin(); it != context->eventList[sel].end(); ++it) - { + for (std::deque::iterator it = context->eventList[sel].begin(); it != context->eventList[sel].end(); ++it) { EventList::EventIndex hDbEvent = *it; - if (context->GetEventData(hDbEvent, data)) - { + if (context->GetEventData(hDbEvent, data)) { bool isMe = data.isMe; if (onlyIn && isMe || onlyOut && !isMe) continue; + context->GetEventMessage(hDbEvent, str); if (CompareStr(str, strFind)) - { return true; - } } } diff --git a/plugins/BasicHistory/src/version.h b/plugins/BasicHistory/src/version.h index ad468abd50..da6b4f91be 100644 --- a/plugins/BasicHistory/src/version.h +++ b/plugins/BasicHistory/src/version.h @@ -1,14 +1,14 @@ -#define __MAJOR_VERSION 1 -#define __MINOR_VERSION 0 -#define __RELEASE_NUM 1 -#define __BUILD_NUM 9 - -#define __FILEVERSION_STRING __MAJOR_VERSION,__MINOR_VERSION,__RELEASE_NUM,__BUILD_NUM +#define __MAJOR_VERSION 1 +#define __MINOR_VERSION 0 +#define __RELEASE_NUM 1 +#define __BUILD_NUM 10 -#define __PLUGIN_NAME "Basic history" -#define __FILENAME "BasicHistory.dll" -#define __DESCRIPTION "History viewer for Miranda NG." -#define __AUTHOR "Krzysztof Kral" -#define __AUTHOREMAIL "krzysztof.kral@gmail.com" -#define __AUTHORWEB "http://miranda-ng.org/p/BasicHistory/" -#define __COPYRIGHT "© 2011-2012 Krzysztof Kral" +#define __FILEVERSION_STRING __MAJOR_VERSION,__MINOR_VERSION,__RELEASE_NUM,__BUILD_NUM + +#define __PLUGIN_NAME "Basic history" +#define __FILENAME "BasicHistory.dll" +#define __DESCRIPTION "History viewer for Miranda NG." +#define __AUTHOR "Krzysztof Kral" +#define __AUTHOREMAIL "krzysztof.kral@gmail.com" +#define __AUTHORWEB "http://miranda-ng.org/p/BasicHistory/" +#define __COPYRIGHT "© 2011-2012 Krzysztof Kral" -- cgit v1.2.3