bool CPluginFilter::AddFilterElementHide(std::wstring filterText) { DEBUG_FILTER(L"Input: " + filterText + L" filterFile" + filterFile); CriticalSection::Lock filterEngineLock(s_criticalSectionFilterMap); { // Create filter descriptor std::auto_ptr<CFilterElementHide> filter; wchar_t separatorChar; do { auto chunkEnd = filterText.find_first_of(L"+>"); if (chunkEnd != std::wstring::npos && chunkEnd > 0) { separatorChar = filterText[chunkEnd]; } else { chunkEnd = filterText.length(); separatorChar = L'\0'; } std::auto_ptr<CFilterElementHide> filterParent(filter); filter.reset(new CFilterElementHide(TrimStringRight(filterText.substr(0, chunkEnd)))); if (filterParent.get() != 0) { filter->m_predecessor.reset(filterParent.release()); } if (separatorChar != L'\0') // complex selector { filterText = TrimStringLeft(filterText.substr(chunkEnd + 1)); if (separatorChar == '+') filter->m_type = CFilterElementHide::TRAVERSER_TYPE_IMMEDIATE; else if (separatorChar == '>') filter->m_type = CFilterElementHide::TRAVERSER_TYPE_PARENT; } else // Terminating element (simple selector) { if (!filter->m_tagId.empty()) { m_elementHideTagsId.insert(std::make_pair(std::make_pair(filter->m_tag, filter->m_tagId), *filter)); } else if (!filter->m_tagClassName.empty()) { m_elementHideTagsClass.insert(std::make_pair(std::make_pair(filter->m_tag, filter->m_tagClassName), *filter)); } else { m_elementHideTags.insert(std::make_pair(filter->m_tag, *filter)); } } } while (separatorChar != '\0'); } return true; }
int Explorerplusplus::OnTreeViewEndLabelEdit(LPARAM lParam) { NMTVDISPINFO *pdi = NULL; TCHAR NewFileName[MAX_PATH]; pdi = (NMTVDISPINFO *)lParam; /* No text was entered, so simply notify the control to revert to the previous text. */ if(pdi->item.pszText == NULL) return FALSE; /* Build the new filename from the text entered and the parent directory component of the old filename. */ StringCchCopy(NewFileName,SIZEOF_ARRAY(NewFileName),m_OldTreeViewFileName); PathRemoveFileSpec(NewFileName); BOOL bRes = PathAppend(NewFileName,pdi->item.pszText); if(!bRes) { return FALSE; } CFileActionHandler::RenamedItem_t RenamedItem; RenamedItem.strOldFilename = m_OldTreeViewFileName; RenamedItem.strNewFilename = NewFileName; TrimStringRight(RenamedItem.strNewFilename,_T(" ")); std::list<CFileActionHandler::RenamedItem_t> RenamedItemList; RenamedItemList.push_back(RenamedItem); m_FileActionHandler.RenameFiles(RenamedItemList); return TRUE; }
void TrimString(std::wstring &str, const std::wstring &strWhitespace) { TrimStringLeft(str, strWhitespace); TrimStringRight(str, strWhitespace); }