本文整理汇总了C++中CFilterManager::HasActiveFilters方法的典型用法代码示例。如果您正苦于以下问题:C++ CFilterManager::HasActiveFilters方法的具体用法?C++ CFilterManager::HasActiveFilters怎么用?C++ CFilterManager::HasActiveFilters使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CFilterManager
的用法示例。
在下文中一共展示了CFilterManager::HasActiveFilters方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: HasSubdirs
bool CRemoteTreeView::HasSubdirs(const CDirectoryListing& listing, const CFilterManager& filter)
{
if (!listing.has_dirs())
return false;
if (!filter.HasActiveFilters())
return true;
const wxString path = listing.path.GetPath();
for (unsigned int i = 0; i < listing.GetCount(); i++)
{
if (!listing[i].is_dir())
continue;
if (filter.FilenameFiltered(listing[i].name, path, true, -1, false, 0, listing[i].time))
continue;
return true;
}
return false;
}
示例2: CompareListings
bool CComparisonManager::CompareListings()
{
if (!m_pLeft || !m_pRight)
return false;
CFilterManager filters;
if (filters.HasActiveFilters() && !filters.HasSameLocalAndRemoteFilters()) {
m_pState->NotifyHandlers(STATECHANGE_COMPARISON);
wxMessageBoxEx(_("Cannot compare directories, different filters for local and remote directories are enabled"), _("Directory comparison failed"), wxICON_EXCLAMATION);
return false;
}
wxString error;
if (!m_pLeft->CanStartComparison(&error)) {
m_pState->NotifyHandlers(STATECHANGE_COMPARISON);
wxMessageBoxEx(error, _("Directory comparison failed"), wxICON_EXCLAMATION);
return false;
}
if (!m_pRight->CanStartComparison(&error)) {
m_pState->NotifyHandlers(STATECHANGE_COMPARISON);
wxMessageBoxEx(error, _("Directory comparison failed"), wxICON_EXCLAMATION);
return false;
}
const int mode = COptions::Get()->GetOptionVal(OPTION_COMPARISONMODE);
duration const threshold = duration::from_minutes( COptions::Get()->GetOptionVal(OPTION_COMPARISON_THRESHOLD) );
m_pLeft->m_pComparisonManager = this;
m_pRight->m_pComparisonManager = this;
m_isComparing = true;
m_pState->NotifyHandlers(STATECHANGE_COMPARISON);
m_pLeft->StartComparison();
m_pRight->StartComparison();
wxString localFile, remoteFile;
bool localDir = false;
bool remoteDir = false;
wxLongLong localSize, remoteSize;
CDateTime localDate, remoteDate;
const int dirSortMode = COptions::Get()->GetOptionVal(OPTION_FILELIST_DIRSORT);
const bool hide_identical = COptions::Get()->GetOptionVal(OPTION_COMPARE_HIDEIDENTICAL) != 0;
bool gotLocal = m_pLeft->GetNextFile(localFile, localDir, localSize, localDate);
bool gotRemote = m_pRight->GetNextFile(remoteFile, remoteDir, remoteSize, remoteDate);
while (gotLocal && gotRemote) {
int cmp = CompareFiles(dirSortMode, localFile, remoteFile, localDir, remoteDir);
if (!cmp) {
if (!mode) {
const CComparableListing::t_fileEntryFlags flag = (localDir || localSize == remoteSize) ? CComparableListing::normal : CComparableListing::different;
if (!hide_identical || flag != CComparableListing::normal || localFile == _T("..")) {
m_pLeft->CompareAddFile(flag);
m_pRight->CompareAddFile(flag);
}
}
else {
if (!localDate.IsValid() || !remoteDate.IsValid()) {
if (!hide_identical || localDate.IsValid() || remoteDate.IsValid() || localFile == _T("..")) {
const CComparableListing::t_fileEntryFlags flag = CComparableListing::normal;
m_pLeft->CompareAddFile(flag);
m_pRight->CompareAddFile(flag);
}
}
else {
CComparableListing::t_fileEntryFlags localFlag, remoteFlag;
int dateCmp = localDate.Compare(remoteDate);
if (dateCmp < 0) {
localDate += threshold;
}
else if (dateCmp > 0 ) {
remoteDate += threshold;
}
int adjustedDateCmp = localDate.Compare(remoteDate);
if (dateCmp && dateCmp == -adjustedDateCmp) {
dateCmp = 0;
}
localFlag = CComparableListing::normal;
remoteFlag = CComparableListing::normal;
if (dateCmp < 0 ) {
remoteFlag = CComparableListing::newer;
}
else if (dateCmp > 0) {
localFlag = CComparableListing::newer;
}
if (!hide_identical || localFlag != CComparableListing::normal || remoteFlag != CComparableListing::normal || localFile == _T("..")) {
m_pLeft->CompareAddFile(localFlag);
m_pRight->CompareAddFile(remoteFlag);
}
}
}
gotLocal = m_pLeft->GetNextFile(localFile, localDir, localSize, localDate);
gotRemote = m_pRight->GetNextFile(remoteFile, remoteDir, remoteSize, remoteDate);
//.........这里部分代码省略.........
示例3: ApplyFilters
void CRemoteTreeView::ApplyFilters(bool resort)
{
std::list<struct _parents> parents;
const wxTreeItemId root = GetRootItem();
wxTreeItemIdValue cookie;
for (wxTreeItemId child = GetFirstChild(root, cookie); child; child = GetNextSibling(child)) {
CServerPath path = GetPathFromItem(child);
if (path.empty())
continue;
struct _parents dir;
dir.item = child;
dir.path = path;
parents.push_back(dir);
}
CFilterManager filter;
while (!parents.empty()) {
struct _parents parent = parents.back();
parents.pop_back();
if (resort) {
SortChildren(parent.item);
}
CDirectoryListing listing;
if (m_pState->m_pEngine->CacheLookup(parent.path, listing) == FZ_REPLY_OK)
RefreshItem(parent.item, listing, false);
else if (filter.HasActiveFilters()) {
for (wxTreeItemId child = GetFirstChild(parent.item, cookie); child; child = GetNextSibling(child)) {
CServerPath path = GetPathFromItem(child);
if (path.empty())
continue;
if (filter.FilenameFiltered(GetItemText(child), path.GetPath(), true, -1, false, 0, CDateTime())) {
wxTreeItemId sel = GetSelection();
while (sel && sel != child)
sel = GetItemParent(sel);
if (!sel) {
Delete(child);
continue;
}
}
struct _parents dir;
dir.item = child;
dir.path = path;
parents.push_back(dir);
}
// The stuff below has already been done above in this one case
continue;
}
for (wxTreeItemId child = GetFirstChild(parent.item, cookie); child; child = GetNextSibling(child)) {
CServerPath path = GetPathFromItem(child);
if (path.empty())
continue;
struct _parents dir;
dir.item = child;
dir.path = path;
parents.push_back(dir);
}
}
}