if (sFilename.Right(extlen).CompareNoCase(szExt))
return;
}
- LoadFilterFile(finder.GetFilePath(), sFilename);
+ FileFilter * pfilter = LoadFilterFile(finder.GetFilePath(), sFilename);
+ m_filters.Add(pfilter);
}
}
}
// Parse a filter file, and add it to array if valid
-void FileFilterMgr::LoadFilterFile(LPCTSTR szFilepath, LPCTSTR szFilename)
+FileFilter * FileFilterMgr::LoadFilterFile(LPCTSTR szFilepath, LPCTSTR szFilename)
{
CStdioFile file;
if (!file.Open(szFilepath, CFile::modeRead))
- return;
+ return NULL;
FileFilter *pfilter = new FileFilter;
pfilter->fullpath = szFilepath;
pfilter->name = szFilename; // default if no name
AddFilterPattern(pfilter->dirfilters, str);
}
}
- m_filters.Add(pfilter);
+ return pfilter;
}
// Give client back a pointer to the actual filter
CString FileFilterMgr::GetFilterName(int i)
{
return m_filters[i]->name;
+}
+
+CString FileFilterMgr::GetFullpath(FileFilter * pfilter) const
+{
+ return pfilter->fullpath;
+}
+
+// Reload filter from disk (by creating a new one to substitute for old one)
+void FileFilterMgr::ReloadFilterFromDisk(FileFilter * pfilter)
+{
+ FileFilter * newfilter = LoadFilterFile(pfilter->fullpath, pfilter->name);
+ for (int i=0; i<m_filters.GetSize(); ++i)
+ {
+ if (pfilter == m_filters[i])
+ {
+ m_filters.RemoveAt(i);
+ delete pfilter;
+ break;
+ }
+ }
+ m_filters.Add(newfilter);
}
\ No newline at end of file
~FileFilterMgr();
// Reload filter array from specified directory (passed to CFileFind)
void LoadFromDirectory(LPCTSTR szPattern, LPCTSTR szExt);
+ // Reload an edited filter
+ void ReloadFilterFromDisk(FileFilter * pfilter);
// access to array of filters
int GetFilterCount() const { return m_filters.GetSize(); }
CString GetFilterName(int i);
FileFilter * GetFilter(LPCTSTR szFilterName);
+ CString GetFullpath(FileFilter * pfilter) const;
// methods to actually use filter
BOOL TestFileNameAgainstFilter(FileFilter * pFilter, LPCTSTR szFileName);
// Clear the list of known filters
void DeleteAllFilters();
// Load a filter from a file (if syntax is valid)
- void LoadFilterFile(LPCTSTR szFilepath, LPCTSTR szFilename);
+ FileFilter * LoadFilterFile(LPCTSTR szFilepath, LPCTSTR szFilename);
// Implementation data
private:
EDITTEXT IDC_EDITPATTERN,7,39,221,72,ES_MULTILINE |
ES_AUTOHSCROLL | ES_WANTRETURN
LTEXT "Arquivo de Filtro:",IDC_STATIC,7,128,60,10
- COMBOBOX IDC_FILE_FILTER,81,126,136,63,CBS_DROPDOWNLIST |
+ COMBOBOX IDC_FILE_FILTER,73,126,117,63,CBS_DROPDOWNLIST |
WS_VSCROLL | WS_TABSTOP
+ PUSHBUTTON "Edit",IDC_EDIT_FILE_FILTER,194,126,34,13,WS_DISABLED
END
IDD_PROPPAGE_COLORS DIALOGEX 0, 0, 235, 156
#define IDC_LIST_HIDE 1058
#define IDC_ADD 1059
#define IDC_REMOVE 1060
+#define IDC_EDIT_FILE_FILTER 1061
#define IDS_NUM_REPLACED 8501
#define IDS_EDIT_TEXT_NOT_FOUND 8502
#define IDS_LINE_STATUS_INFO 8503
#define _APS_3D_CONTROLS 1
#define _APS_NEXT_RESOURCE_VALUE 118
#define _APS_NEXT_COMMAND_VALUE 32834
-#define _APS_NEXT_CONTROL_VALUE 1061
+#define _APS_NEXT_CONTROL_VALUE 1062
#define _APS_NEXT_SYMED_VALUE 108
#endif
#endif
EDITTEXT IDC_EDITPATTERN,7,39,221,72,ES_MULTILINE | ES_AUTOHSCROLL |
ES_WANTRETURN
LTEXT "Îļþ¹ýÂËÆ÷:",-1,7,128,60,10
- COMBOBOX IDC_FILE_FILTER,81,126,136,63,CBS_DROPDOWNLIST | WS_VSCROLL |
- WS_TABSTOP
+ COMBOBOX IDC_FILE_FILTER,73,126,117,63,CBS_DROPDOWNLIST |
+ WS_VSCROLL | WS_TABSTOP
+ PUSHBUTTON "Edit",IDC_EDIT_FILE_FILTER,194,126,34,13,WS_DISABLED
END
IDD_PROPPAGE_COLORS DIALOGEX 0, 0, 235, 156
#define IDC_LIST_HIDE 1058
#define IDC_ADD 1059
#define IDC_REMOVE 1060
+#define IDC_EDIT_FILE_FILTER 1061
#define IDS_NUM_REPLACED 8501
#define IDS_EDIT_TEXT_NOT_FOUND 8502
#define IDS_LINE_STATUS_INFO 8503
#define _APS_3D_CONTROLS 1
#define _APS_NEXT_RESOURCE_VALUE 118
#define _APS_NEXT_COMMAND_VALUE 32834
-#define _APS_NEXT_CONTROL_VALUE 1061
+#define _APS_NEXT_CONTROL_VALUE 1062
#define _APS_NEXT_SYMED_VALUE 108
#endif
#endif
EDITTEXT IDC_EDITPATTERN,7,39,221,72,ES_MULTILINE | ES_AUTOHSCROLL |
ES_WANTRETURN
LTEXT "ÀÉ®×ÂoÃè:",IDC_STATIC,7,128,60,10
- COMBOBOX IDC_FILE_FILTER,81,126,136,63,CBS_DROPDOWNLIST | WS_VSCROLL |
- WS_TABSTOP
+ COMBOBOX IDC_FILE_FILTER,73,126,117,63,CBS_DROPDOWNLIST |
+ WS_VSCROLL | WS_TABSTOP
+ PUSHBUTTON "Edit",IDC_EDIT_FILE_FILTER,194,126,34,13,WS_DISABLED
END
IDD_PROPPAGE_COLORS DIALOGEX 0, 0, 235, 156
#define IDC_LIST_HIDE 1058
#define IDC_ADD 1059
#define IDC_REMOVE 1060
+#define IDC_EDIT_FILE_FILTER 1061
#define IDS_NUM_REPLACED 8501
#define IDS_EDIT_TEXT_NOT_FOUND 8502
#define IDS_LINE_STATUS_INFO 8503
#define _APS_3D_CONTROLS 1
#define _APS_NEXT_RESOURCE_VALUE 118
#define _APS_NEXT_COMMAND_VALUE 32834
-#define _APS_NEXT_CONTROL_VALUE 1061
+#define _APS_NEXT_CONTROL_VALUE 1062
#define _APS_NEXT_SYMED_VALUE 108
#endif
#endif
EDITTEXT IDC_EDITPATTERN,7,39,221,72,ES_MULTILINE |
ES_AUTOHSCROLL | ES_WANTRETURN
LTEXT "File filter:",IDC_STATIC,7,128,60,10
- COMBOBOX IDC_FILE_FILTER,81,126,136,63,CBS_DROPDOWNLIST |
+ COMBOBOX IDC_FILE_FILTER,73,126,117,63,CBS_DROPDOWNLIST |
WS_VSCROLL | WS_TABSTOP
+ PUSHBUTTON "Edit",IDC_EDIT_FILE_FILTER,194,126,34,13,WS_DISABLED
END
IDD_PROPPAGE_COLORS DIALOGEX 0, 0, 235, 156
#define IDC_LIST_HIDE 1058
#define IDC_ADD 1059
#define IDC_REMOVE 1060
+#define IDC_EDIT_FILE_FILTER 1061
#define IDS_NUM_REPLACED 8501
#define IDS_EDIT_TEXT_NOT_FOUND 8502
#define IDS_LINE_STATUS_INFO 8503
#define _APS_3D_CONTROLS 1
#define _APS_NEXT_RESOURCE_VALUE 118
#define _APS_NEXT_COMMAND_VALUE 32834
-#define _APS_NEXT_CONTROL_VALUE 1061
+#define _APS_NEXT_CONTROL_VALUE 1062
#define _APS_NEXT_SYMED_VALUE 108
#endif
#endif
EDITTEXT IDC_EDITPATTERN,7,39,221,72,ES_MULTILINE |
ES_AUTOHSCROLL | ES_WANTRETURN
LTEXT "Fil filter:",IDC_STATIC,7,128,60,10
- COMBOBOX IDC_FILE_FILTER,81,126,136,63,CBS_DROPDOWNLIST |
+ COMBOBOX IDC_FILE_FILTER,73,126,117,63,CBS_DROPDOWNLIST |
WS_VSCROLL | WS_TABSTOP
+ PUSHBUTTON "Edit",IDC_EDIT_FILE_FILTER,194,126,34,13,WS_DISABLED
END
IDD_PROPPAGE_COLORS DIALOGEX 0, 0, 235, 156
#define IDC_LIST_HIDE 1058
#define IDC_ADD 1059
#define IDC_REMOVE 1060
+#define IDC_EDIT_FILE_FILTER 1061
#define IDS_NUM_REPLACED 8501
#define IDS_EDIT_TEXT_NOT_FOUND 8502
#define IDS_LINE_STATUS_INFO 8503
#define _APS_3D_CONTROLS 1
#define _APS_NEXT_RESOURCE_VALUE 118
#define _APS_NEXT_COMMAND_VALUE 32834
-#define _APS_NEXT_CONTROL_VALUE 1061
+#define _APS_NEXT_CONTROL_VALUE 1062
#define _APS_NEXT_SYMED_VALUE 108
#endif
#endif
EDITTEXT IDC_EDITPATTERN,7,39,221,72,ES_MULTILINE |
ES_AUTOHSCROLL | ES_WANTRETURN
LTEXT "File filter:",IDC_STATIC,7,128,60,10
- COMBOBOX IDC_FILE_FILTER,81,126,136,63,CBS_DROPDOWNLIST |
+ COMBOBOX IDC_FILE_FILTER,73,126,117,63,CBS_DROPDOWNLIST |
WS_VSCROLL | WS_TABSTOP
+ PUSHBUTTON "Edit",IDC_EDIT_FILE_FILTER,194,126,34,13,WS_DISABLED
END
IDD_PROPPAGE_COLORS DIALOGEX 0, 0, 235, 156
#define IDC_LIST_HIDE 1058
#define IDC_ADD 1059
#define IDC_REMOVE 1060
+#define IDC_EDIT_FILE_FILTER 1061
#define IDS_NUM_REPLACED 8501
#define IDS_EDIT_TEXT_NOT_FOUND 8502
#define IDS_LINE_STATUS_INFO 8503
#define _APS_3D_CONTROLS 1
#define _APS_NEXT_RESOURCE_VALUE 118
#define _APS_NEXT_COMMAND_VALUE 32834
-#define _APS_NEXT_CONTROL_VALUE 1061
+#define _APS_NEXT_CONTROL_VALUE 1062
#define _APS_NEXT_SYMED_VALUE 108
#endif
#endif
EDITTEXT IDC_EDITPATTERN,7,39,221,72,ES_MULTILINE |
ES_AUTOHSCROLL | ES_WANTRETURN
LTEXT "Filtre de fichier:",IDC_STATIC,7,128,60,10
- COMBOBOX IDC_FILE_FILTER,81,126,136,63,CBS_DROPDOWNLIST |
- WS_VSCROLL | WS_TABSTOP
+ COMBOBOX IDC_FILE_FILTER,73,126,117,63,CBS_DROPDOWNLIST |
+ WS_VSCROLL | WS_TABSTOP
+ PUSHBUTTON "Edit",IDC_EDIT_FILE_FILTER,194,126,34,13,WS_DISABLED
END
IDD_PROPPAGE_COLORS DIALOGEX 0, 0, 235, 156
#define IDC_LIST_HIDE 1058
#define IDC_ADD 1059
#define IDC_REMOVE 1060
+#define IDC_EDIT_FILE_FILTER 1061
#define IDS_NUM_REPLACED 8501
#define IDS_EDIT_TEXT_NOT_FOUND 8502
#define IDS_LINE_STATUS_INFO 8503
#define _APS_3D_CONTROLS 1
#define _APS_NEXT_RESOURCE_VALUE 118
#define _APS_NEXT_COMMAND_VALUE 32834
-#define _APS_NEXT_CONTROL_VALUE 1061
+#define _APS_NEXT_CONTROL_VALUE 1062
#define _APS_NEXT_SYMED_VALUE 108
#endif
#endif
EDITTEXT IDC_EDITPATTERN,7,39,221,72,ES_MULTILINE |
ES_AUTOHSCROLL | ES_WANTRETURN
LTEXT "File filter:",IDC_STATIC,7,128,60,10
- COMBOBOX IDC_FILE_FILTER,81,126,136,63,CBS_DROPDOWNLIST |
+ COMBOBOX IDC_FILE_FILTER,73,126,117,63,CBS_DROPDOWNLIST |
WS_VSCROLL | WS_TABSTOP
+ PUSHBUTTON "Edit",IDC_EDIT_FILE_FILTER,194,126,34,13,WS_DISABLED
END
IDD_PROPPAGE_COLORS DIALOGEX 0, 0, 235, 156
#define IDC_LIST_HIDE 1058
#define IDC_ADD 1059
#define IDC_REMOVE 1060
+#define IDC_EDIT_FILE_FILTER 1061
#define IDS_NUM_REPLACED 8501
#define IDS_EDIT_TEXT_NOT_FOUND 8502
#define IDS_LINE_STATUS_INFO 8503
#define _APS_3D_CONTROLS 1
#define _APS_NEXT_RESOURCE_VALUE 118
#define _APS_NEXT_COMMAND_VALUE 32834
-#define _APS_NEXT_CONTROL_VALUE 1061
+#define _APS_NEXT_CONTROL_VALUE 1062
#define _APS_NEXT_SYMED_VALUE 108
#endif
#endif
EDITTEXT IDC_EDITPATTERN,7,39,221,72,ES_MULTILINE |
ES_AUTOHSCROLL | ES_WANTRETURN
LTEXT "File filter:",IDC_STATIC,7,128,60,10
- COMBOBOX IDC_FILE_FILTER,81,126,136,63,CBS_DROPDOWNLIST |
+ COMBOBOX IDC_FILE_FILTER,73,126,117,63,CBS_DROPDOWNLIST |
WS_VSCROLL | WS_TABSTOP
+ PUSHBUTTON "Edit",IDC_EDIT_FILE_FILTER,194,126,34,13,WS_DISABLED
END
IDD_PROPPAGE_COLORS DIALOGEX 0, 0, 235, 156
#define IDC_LIST_HIDE 1058
#define IDC_ADD 1059
#define IDC_REMOVE 1060
+#define IDC_EDIT_FILE_FILTER 1061
#define IDS_NUM_REPLACED 8501
#define IDS_EDIT_TEXT_NOT_FOUND 8502
#define IDS_LINE_STATUS_INFO 8503
#define _APS_3D_CONTROLS 1
#define _APS_NEXT_RESOURCE_VALUE 118
#define _APS_NEXT_COMMAND_VALUE 32834
-#define _APS_NEXT_CONTROL_VALUE 1061
+#define _APS_NEXT_CONTROL_VALUE 1062
#define _APS_NEXT_SYMED_VALUE 108
#endif
#endif
EDITTEXT IDC_EDITPATTERN,7,39,221,72,ES_MULTILINE |
ES_AUTOHSCROLL | ES_WANTRETURN
LTEXT "ÆÄÀÏ ÇÊÅÍ :",IDC_STATIC,7,128,60,10
- COMBOBOX IDC_FILE_FILTER,81,126,136,63,CBS_DROPDOWNLIST |
+ COMBOBOX IDC_FILE_FILTER,73,126,117,63,CBS_DROPDOWNLIST |
WS_VSCROLL | WS_TABSTOP
+ PUSHBUTTON "Edit",IDC_EDIT_FILE_FILTER,194,126,34,13,WS_DISABLED
END
IDD_PROPPAGE_COLORS DIALOGEX 0, 0, 235, 156
#define IDC_LIST_HIDE 1058
#define IDC_ADD 1059
#define IDC_REMOVE 1060
+#define IDC_EDIT_FILE_FILTER 1061
#define IDS_NUM_REPLACED 8501
#define IDS_EDIT_TEXT_NOT_FOUND 8502
#define IDS_LINE_STATUS_INFO 8503
#define _APS_3D_CONTROLS 1
#define _APS_NEXT_RESOURCE_VALUE 118
#define _APS_NEXT_COMMAND_VALUE 32834
-#define _APS_NEXT_CONTROL_VALUE 1061
+#define _APS_NEXT_CONTROL_VALUE 1062
#define _APS_NEXT_SYMED_VALUE 108
#endif
#endif
MENUITEM "Ko&pier\tCtrl+C", ID_EDIT_COPY
MENUITEM "&Lim inn\tCtrl+V", ID_EDIT_PASTE
MENUITEM SEPARATOR
- MENUITEM "&Neste forskjell\tAlt+Down", ID_NEXTDIFF
- MENUITEM "&Forrige forskjell\tAlt+Up", ID_PREVDIFF
- MENUITEM SEPARATOR
- MENUITEM "F&ørste forskjell\tAlt+Home", ID_FIRSTDIFF
- MENUITEM "&Aktuell forskjell\tAlt+Enter", ID_CURDIFF
- MENUITEM "&Siste forskjell\tAlt+End", ID_LASTDIFF
- MENUITEM SEPARATOR
- MENUITEM "Kopier til &høyre\tAlt+Høyre", ID_L2R
- MENUITEM "Kopier til &venstre\tAlt+Venstre", ID_R2L
- MENUITEM SEPARATOR
- MENUITEM "Kopier alt &til høyre", ID_ALL_RIGHT
- MENUITEM "Kopier alt til ve&nstre", ID_ALL_LEFT
+ MENUITEM "Highlight Line Diff\tF4", ID_SHOWLINEDIFF
MENUITEM SEPARATOR
MENUITEM "Sø&k...\tCtrl+F", ID_EDIT_FIND
MENUITEM "&Erstatt...\tCtrl+H", ID_EDIT_REPLACE
MENUITEM SEPARATOR
MENUITEM "&verktøylinje", ID_VIEW_TOOLBAR
MENUITEM "S&tatuslinje", ID_VIEW_STATUS_BAR
+ MENUITEM "Diff &Pane", ID_VIEW_DETAIL_BAR
MENUITEM SEPARATOR
MENUITEM "S&pråk...", ID_VIEW_LANGUAGE
END
+ POPUP "&Merge"
+ BEGIN
+ MENUITEM "&Neste forskjell\tAlt+Down", ID_NEXTDIFF
+ MENUITEM "&Forrige forskjell\tAlt+Up", ID_PREVDIFF
+ MENUITEM SEPARATOR
+ MENUITEM "F&ørste forskjell\tAlt+Home", ID_FIRSTDIFF
+ MENUITEM "&Aktuell forskjell\tAlt+Enter", ID_CURDIFF
+ MENUITEM "&Siste forskjell\tAlt+End", ID_LASTDIFF
+ MENUITEM SEPARATOR
+ MENUITEM "Kopier til &høyre\tAlt+Høyre", ID_L2R
+ MENUITEM "Kopier til &venstre\tAlt+Venstre", ID_R2L
+ MENUITEM SEPARATOR
+ MENUITEM "Kopier alt &til høyre", ID_ALL_RIGHT
+ MENUITEM "Kopier alt til ve&nstre", ID_ALL_LEFT
+ END
POPUP "&Vindu"
BEGIN
MENUITEM "Lukk", ID_FILE_CLOSE
END
END
+IDR_POPUP_EDITOR_HEADERBAR MENU DISCARDABLE
+BEGIN
+ POPUP "_POPUP_"
+ BEGIN
+ MENUITEM "Copy full Path", ID_EDITOR_COPY_PATH
+ MENUITEM "Copy Filename", ID_EDITOR_COPY_FILENAME
+ END
+END
+
/////////////////////////////////////////////////////////////////////////////
//
VK_END, ID_LASTDIFF, VIRTKEY, ALT, NOINVERT
VK_F3, ID_EDIT_REPEAT, VIRTKEY, NOINVERT
VK_F3, ID_EDIT_FIND_PREVIOUS, VIRTKEY, SHIFT, NOINVERT
+ VK_F4, ID_SHOWLINEDIFF, VIRTKEY, NOINVERT
VK_F5, ID_REFRESH, VIRTKEY, NOINVERT
VK_F6, ID_NEXT_PANE, VIRTKEY, NOINVERT
VK_F6, ID_PREV_PANE, VIRTKEY, SHIFT, NOINVERT
EDITTEXT IDC_EDITPATTERN,7,39,221,72,ES_MULTILINE |
ES_AUTOHSCROLL | ES_WANTRETURN
LTEXT "Filfilter:",IDC_STATIC,7,128,60,10
- COMBOBOX IDC_FILE_FILTER,81,126,136,63,CBS_DROPDOWNLIST |
+ COMBOBOX IDC_FILE_FILTER,73,126,117,63,CBS_DROPDOWNLIST |
WS_VSCROLL | WS_TABSTOP
+ PUSHBUTTON "Edit",IDC_EDIT_FILE_FILTER,194,126,34,13,WS_DISABLED
END
IDD_PROPPAGE_COLORS DIALOGEX 0, 0, 235, 156
#define IDC_LIST_HIDE 1058
#define IDC_ADD 1059
#define IDC_REMOVE 1060
+#define IDC_EDIT_FILE_FILTER 1061
#define IDS_NUM_REPLACED 8501
#define IDS_EDIT_TEXT_NOT_FOUND 8502
#define IDS_LINE_STATUS_INFO 8503
#define _APS_3D_CONTROLS 1
#define _APS_NEXT_RESOURCE_VALUE 118
#define _APS_NEXT_COMMAND_VALUE 32834
-#define _APS_NEXT_CONTROL_VALUE 1061
+#define _APS_NEXT_CONTROL_VALUE 1062
#define _APS_NEXT_SYMED_VALUE 108
#endif
#endif
MENUITEM "Left read-only", ID_FILE_LEFT_READONLY
MENUITEM "Right read-only", ID_FILE_RIGHT_READONLY
MENUITEM SEPARATOR
- MENUITEM SEPARATOR
MENUITEM "&Koniec", ID_APP_EXIT
END
POPUP "Úpr&avy"
EDITTEXT IDC_EDITPATTERN,7,39,221,72,ES_MULTILINE |
ES_AUTOHSCROLL | ES_WANTRETURN
LTEXT "Súbor pre filter:",IDC_STATIC,7,128,60,10
- COMBOBOX IDC_FILE_FILTER,81,126,136,63,CBS_DROPDOWNLIST |
+ COMBOBOX IDC_FILE_FILTER,73,126,117,63,CBS_DROPDOWNLIST |
WS_VSCROLL | WS_TABSTOP
+ PUSHBUTTON "Edit",IDC_EDIT_FILE_FILTER,194,126,34,13,WS_DISABLED
END
IDD_PROPPAGE_COLORS DIALOGEX 0, 0, 235, 156
#define IDC_LIST_HIDE 1058
#define IDC_ADD 1059
#define IDC_REMOVE 1060
+#define IDC_EDIT_FILE_FILTER 1061
#define IDS_NUM_REPLACED 8501
#define IDS_EDIT_TEXT_NOT_FOUND 8502
#define IDS_LINE_STATUS_INFO 8503
#define _APS_3D_CONTROLS 1
#define _APS_NEXT_RESOURCE_VALUE 118
#define _APS_NEXT_COMMAND_VALUE 32834
-#define _APS_NEXT_CONTROL_VALUE 1061
+#define _APS_NEXT_CONTROL_VALUE 1062
#define _APS_NEXT_SYMED_VALUE 108
#endif
#endif
EDITTEXT IDC_EDITPATTERN,7,39,221,72,ES_MULTILINE |
ES_AUTOHSCROLL | ES_WANTRETURN
LTEXT "File filter:",IDC_STATIC,7,128,60,10
- COMBOBOX IDC_FILE_FILTER,81,126,136,63,CBS_DROPDOWNLIST |
+ COMBOBOX IDC_FILE_FILTER,73,126,117,63,CBS_DROPDOWNLIST |
WS_VSCROLL | WS_TABSTOP
+ PUSHBUTTON "Edit",IDC_EDIT_FILE_FILTER,194,126,34,13,WS_DISABLED
END
IDD_PROPPAGE_COLORS DIALOGEX 0, 0, 235, 156
#define IDC_LIST_HIDE 1058
#define IDC_ADD 1059
#define IDC_REMOVE 1060
+#define IDC_EDIT_FILE_FILTER 1061
#define IDS_NUM_REPLACED 8501
#define IDS_EDIT_TEXT_NOT_FOUND 8502
#define IDS_LINE_STATUS_INFO 8503
#define _APS_3D_CONTROLS 1
#define _APS_NEXT_RESOURCE_VALUE 118
#define _APS_NEXT_COMMAND_VALUE 32834
-#define _APS_NEXT_CONTROL_VALUE 1061
+#define _APS_NEXT_CONTROL_VALUE 1062
#define _APS_NEXT_SYMED_VALUE 108
#endif
#endif
m_sFileFilterName = szFileFilterName;
}
+/** @brief Bring up file filter in notepad */
+void CMergeApp::EditFileFilter(LPCTSTR szFileFilterName)
+{
+ FileFilter * filter = m_fileFilterMgr->GetFilter(szFileFilterName);
+ if (!filter)
+ {
+ ASSERT(0);
+ return;
+ }
+
+ CString cmdLine = (CString)_T("notepad ") + m_fileFilterMgr->GetFullpath(filter);
+ STARTUPINFO stInfo = {0};
+ PROCESS_INFORMATION prInfo;
+ BOOL processSuccess = FALSE;
+ DWORD exitCode = 0;
+ stInfo.cb = sizeof(STARTUPINFO);
+ processSuccess = CreateProcess(NULL, (LPTSTR)(LPCTSTR)cmdLine, NULL,
+ NULL, FALSE, 0, NULL, NULL, &stInfo, &prInfo);
+
+ if (processSuccess == TRUE)
+ {
+ // Wait until process closes down
+ WaitForSingleObject(prInfo.hProcess, INFINITE);
+ CloseHandle(prInfo.hThread);
+ CloseHandle(prInfo.hProcess);
+ }
+
+ // Reload filter after changing it
+ m_fileFilterMgr->ReloadFilterFromDisk(filter);
+
+}
+
+/** @brief Return TRUE unless we're suppressing this file by filter */
BOOL CMergeApp::includeFile(LPCTSTR szFileName)
{
if (!m_fileFilterMgr || !m_currentFilter) return TRUE;
return m_fileFilterMgr->TestFileNameAgainstFilter(m_currentFilter, szFileName);
}
+/** @brief Return TRUE unless we're suppressing this directory by filter */
BOOL CMergeApp::includeDir(LPCTSTR szDirName)
{
if (!m_fileFilterMgr || !m_currentFilter) return TRUE;
void SetNeedIdleTimer();
CString GetFileFilterName() const { return m_sFileFilterName; }
void SetFileFilterName(LPCTSTR szFileFilterName);
+ void EditFileFilter(LPCTSTR szFileFilterName);
void GetFileFilterNameList(CStringList & filefilters, CString & selected) const;
// implement file/directory filtering, because app currently holds the filter manager
//Microsoft Developer Studio generated resource script.
//
-// $Id$
-
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
EDITTEXT IDC_EDITPATTERN,7,39,221,72,ES_MULTILINE |
ES_AUTOHSCROLL | ES_WANTRETURN
LTEXT "File filter:",IDC_STATIC,7,128,60,10
- COMBOBOX IDC_FILE_FILTER,81,126,136,63,CBS_DROPDOWNLIST |
+ COMBOBOX IDC_FILE_FILTER,73,126,117,63,CBS_DROPDOWNLIST |
WS_VSCROLL | WS_TABSTOP
+ PUSHBUTTON "Edit",IDC_EDIT_FILE_FILTER,194,126,34,13,WS_DISABLED
END
IDD_PROPPAGE_COLORS DIALOGEX 0, 0, 235, 156
IDS_STATUS_COPYR2L "Copying Right to Left"
IDS_STATUS_COPYALL2L "Copying All to Left"
IDS_STATUS_COPYALL2R "Copying All to Right"
- IDS_STATUSBAR_READONLY "RO"
IDS_PROGRAMFILES "Programs|*.exe;*.bat;*.cmd|All Files (*.*)|*.*||"
IDS_COLHDR_RSIZE "Right Size"
IDS_COLHDR_LTIMEC "Left Creation Time"
STRINGTABLE DISCARDABLE
BEGIN
+ IDS_LEFTONLY "Left Only"
+ IDS_RIGHTONLY "Right Only"
+ IDS_COLHDR_RESULT_ABBR "Short Result"
+ IDS_COLHDR_LATTRIBUTES "Left Attributes"
+ IDS_COLHDR_RATTRIBUTES "Right Attributes"
+ IDS_FILE_SKIPPED "File skipped"
+ IDS_DIR_SKIPPED "Directory skipped"
+ IDS_STATUSBAR_READONLY "RO"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
IDS_NUM_REPLACED "Replaced %1 string(s)."
IDS_EDIT_TEXT_NOT_FOUND "Cannot find string""%s"""
IDS_LINE_STATUS_INFO "Line: %s Characters: %d EOL: %s"
IDC_STATIC_TITLE_RIGHT "Right click on the path to copy"
END
-STRINGTABLE DISCARDABLE
-BEGIN
- IDS_LEFTONLY "Left Only"
- IDS_RIGHTONLY "Right Only"
- IDS_COLHDR_RESULT_ABBR "Short Result"
- IDS_COLHDR_LATTRIBUTES "Left Attributes"
- IDS_COLHDR_RATTRIBUTES "Right Attributes"
- IDS_FILE_SKIPPED "File skipped"
- IDS_DIR_SKIPPED "Directory skipped"
-END
-
#endif // English (U.S.) resources
/////////////////////////////////////////////////////////////////////////////
{
CPropertyPage::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CPropFilter)
+ DDX_Control(pDX, IDC_EDIT_FILE_FILTER, m_btnEditFileFilter);
DDX_Control(pDX, IDC_FILE_FILTER, m_cboFileFilter);
DDX_Control(pDX, IDC_EDITPATTERN, m_cPattern);
DDX_Check(pDX, IDC_IGNOREREGEXP, m_bIgnoreRegExp);
//{{AFX_MSG_MAP(CPropFilter)
ON_BN_CLICKED(IDC_IGNOREREGEXP, OnIgnoreregexp)
ON_CBN_SELCHANGE(IDC_FILE_FILTER, OnSelchangeFileFilter)
+ ON_BN_CLICKED(IDC_EDIT_FILE_FILTER, OnEditFileFilter)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
m_cboFileFilter.AddString(name);
}
m_cboFileFilter.SetCurSel(sel);
+ m_btnEditFileFilter.EnableWindow(sel!=0);
m_cPattern.EnableWindow(m_bIgnoreRegExp);
{
m_cboFileFilter.GetWindowText(m_sFileFilterName);
if (m_sFileFilterName == _T("<None>"))
+ {
+ m_btnEditFileFilter.EnableWindow(FALSE);
m_sFileFilterName = _T("");
+ }
+ else
+ {
+ m_btnEditFileFilter.EnableWindow(TRUE);
+ }
+}
+
+void CPropFilter::OnEditFileFilter()
+{
+ CString filtername;
+ m_cboFileFilter.GetWindowText(filtername);
+ theApp.EditFileFilter(filtername);
}
// Dialog Data
//{{AFX_DATA(CPropFilter)
enum { IDD = IDD_PROPPAGE_FILTER };
+ CButton m_btnEditFileFilter;
CComboBox m_cboFileFilter;
CEdit m_cPattern;
BOOL m_bIgnoreRegExp;
virtual BOOL OnInitDialog();
afx_msg void OnIgnoreregexp();
afx_msg void OnSelchangeFileFilter();
+ afx_msg void OnEditFileFilter();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
+2003-09-06 Kimmo
+ PATCH: [ 793900 ] Editable file filters
+ Submitted by Perry
+ WinMerge: FileFilterMgr.h FileFilterMgr.cpp Merge.h Merge.cpp Merge.rc
+ PropFilter.h PropFilter.cpp Resource.h
+ Languages: resource.h *.rc
+
2003-09-06 Perry
PATCH: [ 800175 ] skip custom draw if comctl32.dll < 4.71
WinMerge: DirView.cpp
#define IDC_LIST_HIDE 1058
#define IDC_ADD 1059
#define IDC_REMOVE 1060
+#define IDC_EDIT_FILE_FILTER 1061
#define IDS_NUM_REPLACED 8501
#define IDS_EDIT_TEXT_NOT_FOUND 8502
#define IDS_LINE_STATUS_INFO 8503
#define _APS_3D_CONTROLS 1
#define _APS_NEXT_RESOURCE_VALUE 118
#define _APS_NEXT_COMMAND_VALUE 32834
-#define _APS_NEXT_CONTROL_VALUE 1061
+#define _APS_NEXT_CONTROL_VALUE 1062
#define _APS_NEXT_SYMED_VALUE 108
#endif
#endif