#include "Coretools.h"
#include "paths.h"
+using std::vector;
+
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
* @param [out] filters Filter list to receive found filters.
* @param [out] selected Filepath of currently selected filter.
*/
-void FileFilterHelper::GetFileFilters(FILEFILTER_INFOLIST * filters, String & selected) const
+void FileFilterHelper::GetFileFilters(std::vector<FileFilterInfo> * filters, String & selected) const
{
if (m_fileFilterMgr)
{
- int count = m_fileFilterMgr->GetFilterCount();
- filters->SetSize(count);
- for (int i=0; i<count; ++i)
+ const int count = m_fileFilterMgr->GetFilterCount();
+ filters->reserve(count);
+ for (int i = 0; i < count; ++i)
{
FileFilterInfo filter;
filter.fullpath = m_fileFilterMgr->GetFilterPath(i);
filter.name = m_fileFilterMgr->GetFilterName(i);
filter.description = m_fileFilterMgr->GetFilterDesc(i);
- filters->SetAt(i, filter);
+ filters->push_back(filter);
}
}
selected = m_sFileFilterPath;
*/
String FileFilterHelper::GetFileFilterName(LPCTSTR filterPath) const
{
- FILEFILTER_INFOLIST filters;
+ vector<FileFilterInfo> filters;
String selected;
String name;
GetFileFilters(&filters, selected);
- for (int i = 0; i < filters.GetSize(); i++)
+ vector<FileFilterInfo>::const_iterator iter = filters.begin();
+ while (iter != filters.end())
{
- if (filters.GetAt(i).fullpath == filterPath)
+ if ((*iter).fullpath == filterPath)
{
- name = filters.GetAt(i).name;
+ name = (*iter).name;
break;
}
+ iter++;
}
return name;
}
*/
String FileFilterHelper::GetFileFilterPath(LPCTSTR filterName) const
{
- FILEFILTER_INFOLIST filters;
+ vector<FileFilterInfo> filters;
String selected;
String path;
GetFileFilters(&filters, selected);
- for (int i = 0; i < filters.GetSize(); i++)
+ vector<FileFilterInfo>::const_iterator iter = filters.begin();
+ while (iter != filters.end())
{
- if (filters.GetAt(i).name == filterName)
+ if ((*iter).name == filterName)
{
- path = filters.GetAt(i).fullpath;
+ path = (*iter).fullpath;
break;
}
+ iter++;
}
return path;
}
ext += _T(";"); // Add one separator char to end
size_t pos = ext.find_first_of(pszSeps);
- while (pos >= 0)
+ while (pos != String::npos)
{
String token = ext.substr(0, pos); // Get first extension
ext = ext.substr(pos + 2); // Remove extension + separator
*/
void FileFilterHelper::ReloadUpdatedFilters()
{
- FILEFILTER_INFOLIST filters;
+ vector<FileFilterInfo> filters;
DirItem fileInfo;
- DirItem *fileInfoStored = NULL;
- FileFilterInfo filter;
String selected;
GetFileFilters(&filters, selected);
- for (int i = 0; i < filters.GetSize(); i++)
+ vector<FileFilterInfo>::const_iterator iter = filters.begin();
+ while (iter != filters.end())
{
- filter = filters.GetAt(i);
- String path = filter.fullpath;
- fileInfoStored = &filter.fileinfo;
+ String path = (*iter).fullpath;
fileInfo.Update(path);
- if (fileInfo.mtime != fileInfoStored->mtime ||
- fileInfo.size != fileInfoStored->size)
+ if (fileInfo.mtime != (*iter).fileinfo.mtime ||
+ fileInfo.size != (*iter).fileinfo.size)
{
// Reload filter after changing it
int retval = m_fileFilterMgr->ReloadFilterFromDisk(path.c_str());
SetFileFilterPath(path.c_str());
}
}
+ iter++;
}
}
#ifndef _FILEFILTERHELPER_H_
#define _FILEFILTERHELPER_H_
+#include <vector>
#include "UnicodeString.h"
class FileFilterMgr;
DirItem fileinfo; /**< For tracking if file has been modified */
};
-typedef CArray<FileFilterInfo, FileFilterInfo&> FILEFILTER_INFOLIST;
typedef CMap<CString, LPCTSTR, int, int> FILEFILTER_FILEMAP;
/// Interface for testing files & directories for exclusion, as diff traverses file tree
FileFilterMgr * GetManager() const;
void SetFileFilterPath(LPCTSTR szFileFilterPath);
void EditFileFilter(LPCTSTR szFileFilterPath);
- void GetFileFilters(FILEFILTER_INFOLIST * filters, String & selected) const;
+ void GetFileFilters(std::vector<FileFilterInfo> * filters, String & selected) const;
String GetFileFilterName(LPCTSTR filterPath) const;
String GetFileFilterPath(LPCTSTR filterName) const;
void SetUserFilterPath(const String & filterPath);
return;
// Find possible comment-separator '<whitespace>##'
- while (pos > 0 && !_istspace(str[pos - 1]))
+ while (pos != std::string::npos && !_istspace(str[pos - 1]))
pos = str.find(commentLeader, pos + 1);
// Remove comment and whitespaces before it
- if (pos > 0)
+ if (pos != std::string::npos)
str = str.substr(0, pos);
str = string_trim_ws_end(str);
if (str.empty())
// $Id$
#include "stdafx.h"
+#include <vector>
#include "UnicodeString.h"
#include "merge.h"
#include "MainFrm.h"
#include "TestFilterDlg.h"
#include "FileOrFolderSelect.h"
+using std::vector;
+
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
* @param [in] fileFilters Array of filters to show in the dialog.
* @note Call this before actually showing the dialog.
*/
-void FileFiltersDlg::SetFilterArray(FILEFILTER_INFOLIST * fileFilters)
+void FileFiltersDlg::SetFilterArray(vector<FileFilterInfo> * fileFilters)
{
m_Filters = fileFilters;
}
m_listFilters.SetItemText(0, 1, title.c_str());
m_listFilters.SetItemText(0, 2, title.c_str());
- int count = m_Filters->GetSize();
+ const int count = m_Filters->size();
for (int i = 0; i < count; i++)
{
*/
void FileFiltersDlg::AddToGrid(int filterIndex)
{
- const FileFilterInfo & filterinfo = m_Filters->GetAt(filterIndex);
+ const FileFilterInfo & filterinfo = m_Filters->at(filterIndex);
const int item = filterIndex + 1;
m_listFilters.InsertItem(item, filterinfo.name.c_str());
{
// Remove all from filterslist and re-add so we can update UI
String selected;
- m_Filters->RemoveAll();
+ m_Filters->clear();
theApp.m_globalFileFilter.LoadAllFileFilters();
theApp.m_globalFileFilter.GetFileFilters(m_Filters, selected);
// Remove all from filterslist and re-add so we can update UI
String selected;
- m_Filters->RemoveAll();
+ m_Filters->clear();
theApp.m_globalFileFilter.GetFileFilters(m_Filters, selected);
UpdateFiltersList();
*/
void FileFiltersDlg::UpdateFiltersList()
{
- int count = m_Filters->GetSize();
+ int count = m_Filters->size();
m_listFilters.DeleteAllItems();
// Remove all from filterslist and re-add so we can update UI
String selected;
- m_Filters->RemoveAll();
+ m_Filters->clear();
theApp.m_globalFileFilter.GetFileFilters(m_Filters, selected);
UpdateFiltersList();
*
* @brief Declaration file for File Filters dialog
*/
-// RCS ID line follows -- this is updated by CVS
+// ID line follows -- this is updated by SVN
// $Id$
#if !defined(AFX_FILTERSDLG_H__6180CBC3_99BB_4C85_B0EA_BA85D219285E__INCLUDED_)
#pragma once
#endif // _MSC_VER > 1000
+#include <vector>
+
/**
* @brief Class for dialog allowing user to select
* and edit used file filters
// Construction
public:
FileFiltersDlg(); // standard constructor
- void SetFilterArray(FILEFILTER_INFOLIST * fileFilters);
+ void SetFilterArray(std::vector<FileFilterInfo> * fileFilters);
CString GetSelected();
void SetSelected(const CString & selected);
private:
CString m_sFileFilterPath;
CPoint m_ptLastMousePos;
- FILEFILTER_INFOLIST * m_Filters;
+ std::vector<FileFilterInfo> * m_Filters;
// Dialog Data
//{{AFX_DATA(FileFiltersDlg)
#include "PluginsListDlg.h"
#include "stringdiffs.h"
+using std::vector;
+
/*
One source file must compile the stubs for multimonitor
by defining the symbol COMPILE_MULTIMON_STUBS & including <multimon.h>
CPropertySheet sht(title.c_str());
LineFiltersDlg lineFiltersDlg;
FileFiltersDlg fileFiltersDlg;
- FILEFILTER_INFOLIST fileFilters;
+ vector<FileFilterInfo> fileFilters;
LineFiltersList * lineFilters = new LineFiltersList();
String selectedFilter;
const String origFilter = theApp.m_globalFileFilter.GetFilterNameOrMask();