本文整理汇总了C++中CFilterManager::HasSameLocalAndRemoteFilters方法的典型用法代码示例。如果您正苦于以下问题:C++ CFilterManager::HasSameLocalAndRemoteFilters方法的具体用法?C++ CFilterManager::HasSameLocalAndRemoteFilters怎么用?C++ CFilterManager::HasSameLocalAndRemoteFilters使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CFilterManager
的用法示例。
在下文中一共展示了CFilterManager::HasSameLocalAndRemoteFilters方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: 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);
//.........这里部分代码省略.........
示例2: ApplyCurrentFilter
void CLocalListView::ApplyCurrentFilter()
{
CFilterManager filter;
if (!filter.HasSameLocalAndRemoteFilters() && IsComparing())
ExitComparisonMode();
unsigned int min = m_hasParent ? 1 : 0;
if (m_fileData.size() <= min)
return;
wxString focused;
const std::list<wxString>& selectedNames = RememberSelectedItems(focused);
if (m_pFilelistStatusBar)
m_pFilelistStatusBar->UnselectAll();
wxLongLong totalSize;
int unknown_sizes = 0;
int totalFileCount = 0;
int totalDirCount = 0;
int hidden = 0;
m_indexMapping.clear();
if (m_hasParent)
m_indexMapping.push_back(0);
for (unsigned int i = min; i < m_fileData.size(); i++)
{
const CLocalFileData& data = m_fileData[i];
if (data.flags == fill)
continue;
if (filter.FilenameFiltered(data.name, m_dir, data.dir, data.size, true, data.attributes, data.lastModified)) {
hidden++;
continue;
}
if (data.dir)
totalDirCount++;
else
{
if (data.size != -1)
totalSize += data.size;
else
unknown_sizes++;
totalFileCount++;
}
m_indexMapping.push_back(i);
}
SetItemCount(m_indexMapping.size());
if (m_pFilelistStatusBar)
m_pFilelistStatusBar->SetDirectoryContents(totalFileCount, totalDirCount, totalSize, unknown_sizes, hidden);
SortList(-1, -1, false);
if (IsComparing())
{
m_originalIndexMapping.clear();
RefreshComparison();
}
ReselectItems(selectedNames, focused);
if (!IsComparing())
RefreshListOnly();
}