OSDN Git Service

PATCH: [ 793900 ] Editable file filters - submitted by Perry
authorKimmo Varis <kimmov@gmail.com>
Sat, 6 Sep 2003 17:17:37 +0000 (17:17 +0000)
committerKimmo Varis <kimmov@gmail.com>
Sat, 6 Sep 2003 17:17:37 +0000 (17:17 +0000)
35 files changed:
Src/FileFilterMgr.cpp
Src/FileFilterMgr.h
Src/Languages/Brazilian/MergeBrazilian.rc
Src/Languages/Brazilian/resource.h
Src/Languages/ChineseSimplified/MergeChineseSimplified.rc
Src/Languages/ChineseSimplified/resource.h
Src/Languages/ChineseTraditional/MergeChineseTraditional.rc
Src/Languages/ChineseTraditional/resource.h
Src/Languages/Czech/MergeCzech.rc
Src/Languages/Czech/resource.h
Src/Languages/Danish/MergeDanish.rc
Src/Languages/Danish/resource.h
Src/Languages/Dutch/MergeDutch.rc
Src/Languages/Dutch/resource.h
Src/Languages/French/MergeFrench.rc
Src/Languages/French/resource.h
Src/Languages/German/MergeGerman.rc
Src/Languages/German/resource.h
Src/Languages/Italian/MergeItalian.rc
Src/Languages/Italian/resource.h
Src/Languages/Korean/MergeKorean.rc
Src/Languages/Korean/resource.h
Src/Languages/Norwegian/MergeNorwegian.rc
Src/Languages/Norwegian/resource.h
Src/Languages/Slovak/MergeSlovak.rc
Src/Languages/Slovak/resource.h
Src/Languages/Spanish/MergeSpanish.rc
Src/Languages/Spanish/resource.h
Src/Merge.cpp
Src/Merge.h
Src/Merge.rc
Src/PropFilter.cpp
Src/PropFilter.h
Src/readme.txt
Src/resource.h

index 0a7c531..58b2bbf 100644 (file)
@@ -77,7 +77,8 @@ void FileFilterMgr::LoadFromDirectory(LPCTSTR szPattern, LPCTSTR szExt)
                        if (sFilename.Right(extlen).CompareNoCase(szExt))
                                return;
                }
-               LoadFilterFile(finder.GetFilePath(), sFilename);
+               FileFilter * pfilter = LoadFilterFile(finder.GetFilePath(), sFilename);
+               m_filters.Add(pfilter);
        }
 }
 
@@ -112,11 +113,11 @@ static void AddFilterPattern(RegList & reglist, CString & str)
 }
 
 // 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
@@ -154,7 +155,7 @@ void FileFilterMgr::LoadFilterFile(LPCTSTR szFilepath, LPCTSTR szFilename)
                        AddFilterPattern(pfilter->dirfilters, str);
                }
        }
-       m_filters.Add(pfilter);
+       return pfilter;
 }
 
 // Give client back a pointer to the actual filter
@@ -204,4 +205,25 @@ BOOL FileFilterMgr::TestDirNameAgainstFilter(FileFilter * pFilter, LPCTSTR szDir
 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
index 5b8072a..d5a5983 100644 (file)
@@ -29,11 +29,14 @@ public:
        ~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);
@@ -45,7 +48,7 @@ protected:
        // 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:
index e2f970a..8ce58af 100644 (file)
@@ -470,8 +470,9 @@ BEGIN
     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
index 86b64bc..bcd9b83 100644 (file)
 #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
index 23581bf..f01b746 100644 (file)
@@ -449,8 +449,9 @@ BEGIN
     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
index 86b64bc..bcd9b83 100644 (file)
 #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
index 2c7e85c..dcb557c 100644 (file)
@@ -450,8 +450,9 @@ BEGIN
     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
index 86b64bc..bcd9b83 100644 (file)
 #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
index 0aa1abd..f814f29 100644 (file)
@@ -464,8 +464,9 @@ BEGIN
     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
index 86b64bc..bcd9b83 100644 (file)
 #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
index 48431c0..94beaf0 100644 (file)
@@ -462,8 +462,9 @@ BEGIN
     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
index 86b64bc..bcd9b83 100644 (file)
 #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
index 2098fd1..38734a6 100644 (file)
@@ -466,8 +466,9 @@ BEGIN
     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
index 86b64bc..bcd9b83 100644 (file)
 #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
index b80207a..99b72ed 100644 (file)
@@ -466,8 +466,9 @@ BEGIN
     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
index 86b64bc..bcd9b83 100644 (file)
 #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
index 94cf5c3..b2d8f1f 100644 (file)
@@ -469,8 +469,9 @@ BEGIN
     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
index 86b64bc..bcd9b83 100644 (file)
 #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
index fdf79ca..ded725b 100644 (file)
@@ -463,8 +463,9 @@ BEGIN
     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
index 86b64bc..bcd9b83 100644 (file)
 #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
index 5ea015f..e4864b0 100644 (file)
@@ -431,8 +431,9 @@ BEGIN
     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
index 86b64bc..bcd9b83 100644 (file)
 #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
index 0f28f23..44926d9 100644 (file)
@@ -114,18 +114,7 @@ BEGIN
         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
@@ -150,9 +139,25 @@ BEGIN
         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
@@ -191,6 +196,15 @@ BEGIN
     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
+
 
 /////////////////////////////////////////////////////////////////////////////
 //
@@ -217,6 +231,7 @@ BEGIN
     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
@@ -446,8 +461,9 @@ BEGIN
     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
index 86b64bc..bcd9b83 100644 (file)
 #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
index 63e2c1a..f7aeac8 100644 (file)
@@ -105,7 +105,6 @@ BEGIN
         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"
@@ -466,8 +465,9 @@ BEGIN
     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
index 86b64bc..bcd9b83 100644 (file)
 #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
index 1f007c6..d8ddd54 100644 (file)
@@ -463,8 +463,9 @@ BEGIN
     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
index 86b64bc..bcd9b83 100644 (file)
 #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
index b5973bb..1247995 100644 (file)
@@ -698,12 +698,46 @@ void CMergeApp::SetFileFilterName(LPCTSTR szFileFilterName)
                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;
index b31be9d..9ec7cb3 100644 (file)
@@ -77,6 +77,7 @@ public:
        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
index 82a19cd..4de2d59 100644 (file)
@@ -1,7 +1,5 @@
 //Microsoft Developer Studio generated resource script.
 //
-// $Id$
-
 #include "resource.h"
 
 #define APSTUDIO_READONLY_SYMBOLS
@@ -464,8 +462,9 @@ BEGIN
     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
@@ -1227,7 +1226,6 @@ BEGIN
     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"
@@ -1239,6 +1237,18 @@ 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"
+    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"
@@ -1251,17 +1261,6 @@ BEGIN
     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
 /////////////////////////////////////////////////////////////////////////////
 
index c9e236e..4401c7c 100644 (file)
@@ -39,6 +39,7 @@ void CPropFilter::DoDataExchange(CDataExchange* pDX)
 {
        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);
@@ -51,6 +52,7 @@ BEGIN_MESSAGE_MAP(CPropFilter, CPropertyPage)
        //{{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()
 
@@ -71,6 +73,7 @@ BOOL CPropFilter::OnInitDialog()
                m_cboFileFilter.AddString(name);
        }
        m_cboFileFilter.SetCurSel(sel);
+       m_btnEditFileFilter.EnableWindow(sel!=0);
        
        m_cPattern.EnableWindow(m_bIgnoreRegExp);
        
@@ -94,5 +97,19 @@ void CPropFilter::OnSelchangeFileFilter()
 {
        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);
 }
index da19462..1430be0 100644 (file)
@@ -22,6 +22,7 @@ public:
 // Dialog Data
        //{{AFX_DATA(CPropFilter)
        enum { IDD = IDD_PROPPAGE_FILTER };
+       CButton m_btnEditFileFilter;
        CComboBox       m_cboFileFilter;
        CEdit   m_cPattern;
        BOOL    m_bIgnoreRegExp;
@@ -46,6 +47,7 @@ protected:
        virtual BOOL OnInitDialog();
        afx_msg void OnIgnoreregexp();
        afx_msg void OnSelchangeFileFilter();
+       afx_msg void OnEditFileFilter();
        //}}AFX_MSG
        DECLARE_MESSAGE_MAP()
 
index 99c18bf..a919f79 100644 (file)
@@ -1,3 +1,10 @@
+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
index 86b64bc..bcd9b83 100644 (file)
 #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