OSDN Git Service

Add a feature to set items saved to or restored from the project file. (#953)
authorJun Tajima <56220423+tjmprm77@users.noreply.github.com>
Sun, 5 Sep 2021 09:31:15 +0000 (18:31 +0900)
committerGitHub <noreply@github.com>
Sun, 5 Sep 2021 09:31:15 +0000 (18:31 +0900)
51 files changed:
Src/Common/PreferencesDlg.cpp
Src/Common/PreferencesDlg.h
Src/Merge.cpp
Src/Merge.rc
Src/Merge.vcxproj
Src/Merge.vcxproj.filters
Src/OpenView.cpp
Src/OptionsInit.cpp
Src/OptionsProject.cpp [new file with mode: 0644]
Src/OptionsProject.h [new file with mode: 0644]
Src/ProjectFile.cpp
Src/ProjectFile.h
Src/PropProject.cpp [new file with mode: 0644]
Src/PropProject.h [new file with mode: 0644]
Src/resource.h
Translations/WinMerge/Arabic.po
Translations/WinMerge/Basque.po
Translations/WinMerge/Brazilian.po
Translations/WinMerge/Bulgarian.po
Translations/WinMerge/Catalan.po
Translations/WinMerge/ChineseSimplified.po
Translations/WinMerge/ChineseTraditional.po
Translations/WinMerge/Croatian.po
Translations/WinMerge/Czech.po
Translations/WinMerge/Danish.po
Translations/WinMerge/Dutch.po
Translations/WinMerge/English.pot
Translations/WinMerge/Finnish.po
Translations/WinMerge/French.po
Translations/WinMerge/Galician.po
Translations/WinMerge/German.po
Translations/WinMerge/Greek.po
Translations/WinMerge/Hungarian.po
Translations/WinMerge/Italian.po
Translations/WinMerge/Japanese.po
Translations/WinMerge/Korean.po
Translations/WinMerge/Lithuanian.po
Translations/WinMerge/Norwegian.po
Translations/WinMerge/Persian.po
Translations/WinMerge/Polish.po
Translations/WinMerge/Portuguese.po
Translations/WinMerge/Romanian.po
Translations/WinMerge/Russian.po
Translations/WinMerge/Serbian.po
Translations/WinMerge/Sinhala.po
Translations/WinMerge/Slovak.po
Translations/WinMerge/Slovenian.po
Translations/WinMerge/Spanish.po
Translations/WinMerge/Swedish.po
Translations/WinMerge/Turkish.po
Translations/WinMerge/Ukrainian.po

index 5d72933..c75f116 100644 (file)
@@ -52,6 +52,7 @@ CPreferencesDlg::CPreferencesDlg(COptionsMgr *regOptions, SyntaxColors *colors,
 , m_pageCodepage(regOptions)
 , m_pageEditor(regOptions)
 , m_pageEditorSyntax(regOptions)
+, m_pageProject(regOptions)
 , m_pageSystem(regOptions)
 , m_pageBackups(regOptions)
 , m_pageShell(regOptions)
@@ -116,6 +117,7 @@ BOOL CPreferencesDlg::OnInitDialog()
        AddPage(&m_pageMarkerColors, IDS_OPTIONSPG_COLORS, IDS_OPTIONSPG_MARKERCOLORS);
        AddPage(&m_pageDirColors, IDS_OPTIONSPG_COLORS, IDS_OPTIONSPG_DIRCOLORS);
        AddPage(&m_pageArchive, IDS_OPTIONSPG_ARCHIVE);
+       AddPage(&m_pageProject, IDS_OPTIONSPG_PROJECT);
        AddPage(&m_pageSystem, IDS_OPTIONSPG_SYSTEM);
        AddPage(&m_pageBackups, IDS_OPTIONSPG_BACKUPS);
        AddPage(&m_pageCodepage, IDS_OPTIONSPG_CODEPAGE);
@@ -297,6 +299,7 @@ void CPreferencesDlg::ReadOptions(bool bUpdate)
        m_pageEditorSyntax.ReadOptions();
        m_pageCodepage.ReadOptions();
        m_pageArchive.ReadOptions();
+       m_pageProject.ReadOptions();
        m_pageBackups.ReadOptions();
        m_pageShell.ReadOptions();
 
@@ -320,6 +323,7 @@ void CPreferencesDlg::ReadOptions(bool bUpdate)
                SafeUpdatePage(&m_pageEditorSyntax, false);
                SafeUpdatePage(&m_pageCodepage, false);
                SafeUpdatePage(&m_pageArchive, false);
+               SafeUpdatePage(&m_pageProject, false);
                SafeUpdatePage(&m_pageBackups, false);
                SafeUpdatePage(&m_pageShell, false);
        }
@@ -348,6 +352,7 @@ void CPreferencesDlg::SaveOptions()
        m_pageDirColors.WriteOptions();
        m_pageCodepage.WriteOptions();
        m_pageArchive.WriteOptions();
+       m_pageProject.WriteOptions();
        m_pageBackups.WriteOptions();
        m_pageShell.WriteOptions();
 }
index d499752..6b90e26 100644 (file)
@@ -24,6 +24,7 @@
 #include "PropDirColors.h"
 #include "PropCodepage.h"
 #include "PropArchive.h"
+#include "PropProject.h"
 #include "PropBackups.h"
 #include "PropShell.h"
 #include "PropCompareFolder.h"
@@ -71,6 +72,7 @@ protected:
        PropMarkerColors m_pageMarkerColors;
        PropDirColors m_pageDirColors;
        PropArchive m_pageArchive;
+       PropProject m_pageProject;
        PropBackups m_pageBackups;
        PropShell m_pageShell;
        PropCompareFolder m_pageCompareFolder;
index e8b0ff3..0ea07f3 100644 (file)
@@ -57,6 +57,7 @@
 #include "CompareStats.h"
 #include "TestMain.h"
 #include "charsets.h" // For shutdown cleanup
+#include "OptionsProject.h"
 
 #ifdef _DEBUG
 #define new DEBUG_NEW
@@ -1252,8 +1253,8 @@ bool CMergeApp::LoadAndOpenProjectFile(const String& sProject, const String& sRe
                std::unique_ptr<PrediffingInfo> pInfoPrediffer;
                std::unique_ptr<PackingInfo> pInfoUnpacker;
                PathContext tFiles;
-               bool bRecursive = false;
-               projItem.GetPaths(tFiles, bRecursive);
+               bool bDummy = false;
+               projItem.GetPaths(tFiles, bDummy);
                for (int i = 0; i < tFiles.GetSize(); ++i)
                {
                        if (!paths::IsPathAbsolute(tFiles[i]))
@@ -1271,15 +1272,16 @@ bool CMergeApp::LoadAndOpenProjectFile(const String& sProject, const String& sRe
                bool bLeftReadOnly = projItem.GetLeftReadOnly();
                bool bMiddleReadOnly = projItem.GetMiddleReadOnly();
                bool bRightReadOnly = projItem.GetRightReadOnly();
-               if (projItem.HasFilter())
+               if (Options::Project::Get(GetOptionsMgr(), Options::Project::Operation::Open, Options::Project::Item::FileFilter) && projItem.HasFilter())
                {
                        String filter = projItem.GetFilter();
                        filter = strutils::trim_ws(filter);
                        GetGlobalFileFilter()->SetFilter(filter);
                }
-               if (projItem.HasSubfolders())
+               bool bRecursive = GetOptionsMgr()->GetBool(OPT_CMP_INCLUDE_SUBDIRS);
+               if (Options::Project::Get(GetOptionsMgr(), Options::Project::Operation::Open, Options::Project::Item::IncludeSubfolders) && projItem.HasSubfolders())
                        bRecursive = projItem.GetSubfolders() > 0;
-               if (projItem.HasUnpacker())
+               if (Options::Project::Get(GetOptionsMgr(), Options::Project::Operation::Open, Options::Project::Item::UnpackerPlugin) && projItem.HasUnpacker())
                        pInfoUnpacker.reset(new PackingInfo(projItem.GetUnpacker()));
                if (projItem.HasPrediffer())
                        pInfoPrediffer.reset(new PrediffingInfo(projItem.GetPrediffer()));
@@ -1306,20 +1308,23 @@ bool CMergeApp::LoadAndOpenProjectFile(const String& sProject, const String& sRe
 
                GetOptionsMgr()->Set(OPT_CMP_INCLUDE_SUBDIRS, bRecursive);
 
-               if (projItem.HasIgnoreWhite())
-                       GetOptionsMgr()->Set(OPT_CMP_IGNORE_WHITESPACE, projItem.GetIgnoreWhite());
-               if (projItem.HasIgnoreBlankLines())
-                       GetOptionsMgr()->Set(OPT_CMP_IGNORE_BLANKLINES, projItem.GetIgnoreBlankLines());
-               if (projItem.HasIgnoreCase())
-                       GetOptionsMgr()->Set(OPT_CMP_IGNORE_CASE, projItem.GetIgnoreCase());
-               if (projItem.HasIgnoreEol())
-                       GetOptionsMgr()->Set(OPT_CMP_IGNORE_EOL, projItem.GetIgnoreEol());
-               if (projItem.HasIgnoreCodepage())
-                       GetOptionsMgr()->Set(OPT_CMP_IGNORE_CODEPAGE, projItem.GetIgnoreCodepage());
-               if (projItem.HasFilterCommentsLines())
-                       GetOptionsMgr()->Set(OPT_CMP_FILTER_COMMENTLINES, projItem.GetFilterCommentsLines());
-               if (projItem.HasCompareMethod())
-                       GetOptionsMgr()->Set(OPT_CMP_METHOD, projItem.GetCompareMethod());
+               if (Options::Project::Get(GetOptionsMgr(), Options::Project::Operation::Open, Options::Project::Item::CompareOptions))
+               {
+                       if (projItem.HasIgnoreWhite())
+                               GetOptionsMgr()->Set(OPT_CMP_IGNORE_WHITESPACE, projItem.GetIgnoreWhite());
+                       if (projItem.HasIgnoreBlankLines())
+                               GetOptionsMgr()->Set(OPT_CMP_IGNORE_BLANKLINES, projItem.GetIgnoreBlankLines());
+                       if (projItem.HasIgnoreCase())
+                               GetOptionsMgr()->Set(OPT_CMP_IGNORE_CASE, projItem.GetIgnoreCase());
+                       if (projItem.HasIgnoreEol())
+                               GetOptionsMgr()->Set(OPT_CMP_IGNORE_EOL, projItem.GetIgnoreEol());
+                       if (projItem.HasIgnoreCodepage())
+                               GetOptionsMgr()->Set(OPT_CMP_IGNORE_CODEPAGE, projItem.GetIgnoreCodepage());
+                       if (projItem.HasFilterCommentsLines())
+                               GetOptionsMgr()->Set(OPT_CMP_FILTER_COMMENTLINES, projItem.GetFilterCommentsLines());
+                       if (projItem.HasCompareMethod())
+                               GetOptionsMgr()->Set(OPT_CMP_METHOD, projItem.GetCompareMethod());
+               }
 
                rtn &= GetMainFrame()->DoFileOrFolderOpen(&tFiles, dwFlags, nullptr, sReportFile, bRecursive,
                        nullptr, pInfoUnpacker.get(), pInfoPrediffer.get());
index ce98ef7..101df14 100644 (file)
@@ -1768,6 +1768,14 @@ BEGIN
                     "Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_GROUP | WS_TABSTOP,7,18,241,20\r
 END\r
 \r
+IDD_PROPPAGE_PROJECT DIALOGEX 0, 0, 255, 242\r
+STYLE DS_SETFONT | DS_FIXEDSYS | WS_POPUP | WS_CAPTION\r
+FONT 8, "MS Shell Dlg", 0, 0, 0x1\r
+BEGIN\r
+    LTEXT           "Items saved to or restored from the project file:",IDC_STATIC,7,10,229,10\r
+    CONTROL         "", IDC_PROJECT_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP, 7, 22, 241, 64\r
+END\r
+\r
 IDD_COMPARE_STATISTICS DIALOGEX 0, 0, 257, 174\r
 STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
 CAPTION "Compare Statistics"\r
@@ -2226,6 +2234,10 @@ BEGIN
     BEGIN\r
     END\r
 \r
+    IDD_PROPPAGE_PROJECT, DIALOG\r
+    BEGIN\r
+    END\r
+\r
     IDD_PROPPAGE_COLORS_TEXT, DIALOG\r
     BEGIN\r
     END\r
@@ -2717,6 +2729,13 @@ BEGIN
     0, 0, 100, 0,\r
 END\r
 \r
+IDD_PROPPAGE_PROJECT AFX_DIALOG_LAYOUT\r
+BEGIN\r
+    0,\r
+    0, 0, 100, 0,\r
+    0, 0, 100, 0,\r
+END\r
+\r
 IDD_PROPPAGE_SYSTEM AFX_DIALOG_LAYOUT\r
 BEGIN\r
     0,\r
@@ -2869,6 +2888,7 @@ BEGIN
     IDS_OPTIONSPG_SYSTEM    "System"\r
     IDS_OPTIONSPG_CODEPAGE  "Codepage"\r
     IDS_OPTIONSPG_ARCHIVE   "Archive Support"\r
+    IDS_OPTIONSPG_PROJECT   "Project"\r
     IDS_OPTIONSPG_BACKUPS   "Backup Files"\r
     IDS_OPTIONSPG_SHELL     "Shell Integration"\r
     IDS_OPTIONSPG_MERGECOLORS "Differences"\r
@@ -2956,6 +2976,19 @@ BEGIN
     IDS_MESSAGEBOX_ANSWER  "Answer"\r
 END\r
 \r
+// PROJECT OPTIONS\r
+STRINGTABLE\r
+BEGIN\r
+    IDS_PROJECT_ITEM "Item"\r
+    IDS_PROJECT_OPEN "Open"\r
+    IDS_PROJECT_LOAD "Load"\r
+    IDS_PROJECT_SAVE "Save"\r
+    IDS_PROJECT_ITEM_FILE_FILTER "File Filters"\r
+    IDS_PROJECT_ITEM_INCLUDE_SUBFOLDERS "Include Subfolders"\r
+    IDS_PROJECT_ITEM_PLUGIN "Plugins"\r
+    IDS_PROJECT_ITEM_COMPARE_OPTIONS "Compare Options"\r
+END\r
+\r
 // FILTER OPTIONS\r
 STRINGTABLE\r
 BEGIN\r
index c9544e0..806ddf1 100644 (file)
     <ClCompile Include="OptionsPanel.cpp">\r
       <PrecompiledHeaderFile>stdafx.h</PrecompiledHeaderFile>\r
     </ClCompile>\r
+    <ClCompile Include="OptionsProject.cpp">\r
+      <PrecompiledHeader>Use</PrecompiledHeader>\r
+      <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>\r
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName)2.pch</PrecompiledHeaderOutputFile>\r
+    </ClCompile>\r
     <ClCompile Include="OptionsSyntaxColors.cpp">\r
       <PrecompiledHeader>Use</PrecompiledHeader>\r
       <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>\r
     <ClCompile Include="Common\PropertyPageHost.cpp" />\r
     <ClCompile Include="PropGeneral.cpp" />\r
     <ClCompile Include="PropMarkerColors.cpp" />\r
+    <ClCompile Include="PropProject.cpp" />\r
     <ClCompile Include="PropRegistry.cpp" />\r
     <ClCompile Include="PropShell.cpp" />\r
     <ClCompile Include="PropSyntaxColors.cpp" />\r
     <ClInclude Include="OptionsFont.h" />\r
     <ClInclude Include="OptionsInit.h" />\r
     <ClInclude Include="OptionsPanel.h" />\r
+    <ClInclude Include="OptionsProject.h" />\r
     <ClInclude Include="OptionsSyntaxColors.h" />\r
     <ClInclude Include="PatchDlg.h" />\r
     <ClInclude Include="PatchHTML.h" />\r
     <ClInclude Include="Common\PropertyPageHost.h" />\r
     <ClInclude Include="PropGeneral.h" />\r
     <ClInclude Include="PropMarkerColors.h" />\r
+    <ClInclude Include="PropProject.h" />\r
     <ClInclude Include="PropRegistry.h" />\r
     <ClInclude Include="PropShell.h" />\r
     <ClInclude Include="PropSyntaxColors.h" />\r
index 34ecaef..2b473a9 100644 (file)
     <ClCompile Include="PropMessageBoxes.cpp">\r
       <Filter>MFCGui\PropertyPages\Source Files</Filter>\r
     </ClCompile>\r
+    <ClCompile Include="PropProject.cpp">\r
+      <Filter>MFCGui\PropertyPages\Source Files</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="OptionsProject.cpp">\r
+      <Filter>Source Files</Filter>\r
+    </ClCompile>\r
     <ClCompile Include="DirView.cpp">\r
       <Filter>MFCGui\MDIChild\FolderCompare\Source Files</Filter>\r
     </ClCompile>\r
     <ClInclude Include="PropMessageBoxes.h">\r
       <Filter>MFCGui\PropertyPages\Header Files</Filter>\r
     </ClInclude>\r
+    <ClInclude Include="PropProject.h">\r
+      <Filter>MFCGui\PropertyPages\Header Files</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="OptionsProject.h">\r
+      <Filter>Header Files</Filter>\r
+    </ClInclude>\r
     <ClInclude Include="HexMergeDoc.h">\r
       <Filter>MFCGui\MDIChild\BinaryCompare\Header Files</Filter>\r
     </ClInclude>\r
index 6b090d6..dc1c82a 100644 (file)
@@ -33,6 +33,7 @@
 #include "BCMenu.h"
 #include "LanguageSelect.h"
 #include "Win_VersionHelper.h"
+#include "OptionsProject.h"
 
 #ifdef _DEBUG
 #define new DEBUG_NEW
@@ -779,6 +780,8 @@ void COpenView::OnCancel()
  */
 void COpenView::OnLoadProject()
 {
+       UpdateData(TRUE);
+
        String fileName = AskProjectFileName(true);
        if (fileName.empty())
                return;
@@ -790,7 +793,10 @@ void COpenView::OnLoadProject()
                return;
        PathContext paths;
        ProjectFileItem& projItem = *project.Items().begin();
-       projItem.GetPaths(paths, m_bRecurse);
+       bool bRecurse = m_bRecurse;
+       projItem.GetPaths(paths, bRecurse);
+       if (Options::Project::Get(GetOptionsMgr(), Options::Project::Operation::Load, Options::Project::Item::IncludeSubfolders))
+               m_bRecurse = bRecurse;
        if (paths.GetSize() < 3)
        {
                m_strPath[0] = paths[0];
@@ -809,24 +815,28 @@ void COpenView::OnLoadProject()
                m_bReadOnly[1] = projItem.GetMiddleReadOnly();
                m_bReadOnly[2] = projItem.GetRightReadOnly();
        }
-       m_strExt = projItem.GetFilter();
-       if (projItem.HasUnpacker())
+       if (Options::Project::Get(GetOptionsMgr(), Options::Project::Operation::Load, Options::Project::Item::FileFilter) && projItem.HasFilter())
+               m_strExt = projItem.GetFilter();
+       if (Options::Project::Get(GetOptionsMgr(), Options::Project::Operation::Load, Options::Project::Item::UnpackerPlugin) && projItem.HasUnpacker())
                m_strUnpackerPipeline = projItem.GetUnpacker();
 
-       if (projItem.HasIgnoreWhite())
-               m_nIgnoreWhite = projItem.GetIgnoreWhite();
-       if (projItem.HasIgnoreBlankLines())
-               m_bIgnoreBlankLines = projItem.GetIgnoreBlankLines();
-       if (projItem.HasIgnoreCase())
-               m_bIgnoreCase = projItem.GetIgnoreCase();
-       if (projItem.HasIgnoreEol())
-               m_bIgnoreEol = projItem.GetIgnoreEol();
-       if (projItem.HasIgnoreCodepage())
-               m_bIgnoreCodepage = projItem.GetIgnoreCodepage();
-       if (projItem.HasFilterCommentsLines())
-               m_bFilterCommentsLines = projItem.GetFilterCommentsLines();
-       if (projItem.HasCompareMethod())
-               m_nCompareMethod = projItem.GetCompareMethod();
+       if (Options::Project::Get(GetOptionsMgr(), Options::Project::Operation::Load, Options::Project::Item::CompareOptions))
+       {
+               if (projItem.HasIgnoreWhite())
+                       m_nIgnoreWhite = projItem.GetIgnoreWhite();
+               if (projItem.HasIgnoreBlankLines())
+                       m_bIgnoreBlankLines = projItem.GetIgnoreBlankLines();
+               if (projItem.HasIgnoreCase())
+                       m_bIgnoreCase = projItem.GetIgnoreCase();
+               if (projItem.HasIgnoreEol())
+                       m_bIgnoreEol = projItem.GetIgnoreEol();
+               if (projItem.HasIgnoreCodepage())
+                       m_bIgnoreCodepage = projItem.GetIgnoreCodepage();
+               if (projItem.HasFilterCommentsLines())
+                       m_bFilterCommentsLines = projItem.GetFilterCommentsLines();
+               if (projItem.HasCompareMethod())
+                       m_nCompareMethod = projItem.GetCompareMethod();
+       }
 
        UpdateData(FALSE);
        UpdateButtonStates();
@@ -847,6 +857,22 @@ void COpenView::OnSaveProject()
        ProjectFile project;
        ProjectFileItem projItem;
 
+       bool bSaveFileFilter = Options::Project::Get(GetOptionsMgr(), Options::Project::Operation::Save, Options::Project::Item::FileFilter);
+       bool bSaveIncludeSubfolders = Options::Project::Get(GetOptionsMgr(), Options::Project::Operation::Save, Options::Project::Item::IncludeSubfolders);
+       bool bSaveUnpackerPlugin = Options::Project::Get(GetOptionsMgr(), Options::Project::Operation::Save, Options::Project::Item::UnpackerPlugin);
+       bool bSaveCompareOptions = Options::Project::Get(GetOptionsMgr(), Options::Project::Operation::Save, Options::Project::Item::CompareOptions);
+
+       projItem.SetSaveFilter(bSaveFileFilter);
+       projItem.SetSaveSubfolders(bSaveIncludeSubfolders);
+       projItem.SetSaveUnpacker(bSaveUnpackerPlugin);
+       projItem.SetSaveIgnoreWhite(bSaveCompareOptions);
+       projItem.SetSaveIgnoreBlankLines(bSaveCompareOptions);
+       projItem.SetSaveIgnoreCase(bSaveCompareOptions);
+       projItem.SetSaveIgnoreEol(bSaveCompareOptions);
+       projItem.SetSaveIgnoreCodepage(bSaveCompareOptions);
+       projItem.SetSaveFilterCommentsLines(bSaveCompareOptions);
+       projItem.SetSaveCompareMethod(bSaveCompareOptions);
+
        if (!m_strPath[0].empty())
                projItem.SetLeft(m_strPath[0], &m_bReadOnly[0]);
        if (m_strPath[2].empty())
@@ -861,7 +887,7 @@ void COpenView::OnSaveProject()
                if (!m_strPath[2].empty())
                        projItem.SetRight(m_strPath[2], &m_bReadOnly[2]);
        }
-       if (!m_strExt.empty())
+       if (bSaveFileFilter && !m_strExt.empty())
        {
                // Remove possbile prefix from the filter name
                String prefix = _("[F] ");
@@ -874,17 +900,21 @@ void COpenView::OnSaveProject()
                strExt = strutils::trim_ws_begin(strExt);
                projItem.SetFilter(strExt);
        }
-       projItem.SetSubfolders(m_bRecurse);
-       if (!m_strUnpackerPipeline.empty())
+       if (bSaveIncludeSubfolders)
+               projItem.SetSubfolders(m_bRecurse);
+       if (bSaveUnpackerPlugin && !m_strUnpackerPipeline.empty())
                projItem.SetUnpacker(m_strUnpackerPipeline);
 
-       projItem.SetIgnoreWhite(m_nIgnoreWhite);
-       projItem.SetIgnoreBlankLines(m_bIgnoreBlankLines);
-       projItem.SetIgnoreCase(m_bIgnoreCase);
-       projItem.SetIgnoreEol(m_bIgnoreEol);
-       projItem.SetIgnoreCodepage(m_bIgnoreCodepage);
-       projItem.SetFilterCommentsLines(m_bFilterCommentsLines);
-       projItem.SetCompareMethod(m_nCompareMethod);
+       if (bSaveCompareOptions)
+       {
+               projItem.SetIgnoreWhite(m_nIgnoreWhite);
+               projItem.SetIgnoreBlankLines(m_bIgnoreBlankLines);
+               projItem.SetIgnoreCase(m_bIgnoreCase);
+               projItem.SetIgnoreEol(m_bIgnoreEol);
+               projItem.SetIgnoreCodepage(m_bIgnoreCodepage);
+               projItem.SetFilterCommentsLines(m_bFilterCommentsLines);
+               projItem.SetCompareMethod(m_nCompareMethod);
+       }
 
        project.Items().push_back(projItem);
 
index 5666489..7cd0fa3 100644 (file)
@@ -16,6 +16,7 @@
 #include "OptionsDirColors.h"
 #include "OptionsEditorSyntax.h"
 #include "OptionsFont.h"
+#include "OptionsProject.h"
 #include "DiffWrapper.h" // CMP_CONTENT
 #include "paths.h"
 #include "Environment.h"
@@ -228,6 +229,7 @@ void Init(COptionsMgr *pOptions)
        Options::DirColors::Init(pOptions);
        Options::EditorSyntax::Init(pOptions);
        Options::Font::Init(pOptions);
+       Options::Project::Init(pOptions);
 }
 
 /**
diff --git a/Src/OptionsProject.cpp b/Src/OptionsProject.cpp
new file mode 100644 (file)
index 0000000..f3a0810
--- /dev/null
@@ -0,0 +1,87 @@
+#include "pch.h"
+#include "OptionsProject.h"
+#include "OptionsMgr.h"
+
+namespace Options { namespace Project
+{
+
+/** @brief Setting name for project options. */
+const TCHAR Section[] = _T("Project");
+
+/** @brief Setting name for operations */
+const String OperationKeyword[OperationCount] = { _T("Open"), _T("Load"), _T("Save") };
+
+/** @brief Setting name for items */
+const String ItemKeyword[ItemCount] = { _T("FileFilter"), _T("IncludeSubfolders"), _T("UnpackerPlugin"), _T("CompareOptions") };
+
+/**
+ * @brief Initialize project settings.
+ * @param [in] pOptionsMgr Pointer to OptionsMgr
+ */
+void Init(COptionsMgr *pOptionsMgr)
+{
+       if (pOptionsMgr == nullptr)
+               return;
+
+       for (int i = 0; i < OperationCount; i++)
+               for (int j = 0; j < ItemCount; j++)
+               {
+                       String name = strutils::format(_T("%s/%s.%s"), Section, OperationKeyword[i], ItemKeyword[j]);
+                       pOptionsMgr->InitOption(name, true);
+               }
+}
+
+/**
+ * @brief Load the project settings from OptionsMgr.
+ * @param [in] pOptionsMgr Pointer to OptionsMgr
+ * @param [out] settings Loaded project settings
+ */
+void Load(COptionsMgr *pOptionsMgr, Settings settings)
+{
+
+       if (pOptionsMgr == nullptr || settings == nullptr)
+               return;
+
+       for (int i = 0; i < OperationCount; i++)
+               for (int j = 0; j < ItemCount; j++)
+               {
+                       String name = strutils::format(_T("%s/%s.%s"), Section, OperationKeyword[i], ItemKeyword[j]);
+                       settings[i][j] = pOptionsMgr->GetBool(name);
+               }
+}
+
+/**
+ * @brief Save the project settings to OptionsMgr.
+ * @param [in] pOptionsMgr Pointer to OptionsMgr
+ * @param [in] settings Project settings
+ */
+void Save(COptionsMgr* pOptionsMgr, const Settings& settings)
+{
+
+       if (pOptionsMgr == nullptr)
+               return;
+
+       for (int i = 0; i < OperationCount; i++)
+               for (int j = 0; j < ItemCount; j++)
+               {
+                       String name = strutils::format(_T("%s/%s.%s"), Section, OperationKeyword[i], ItemKeyword[j]);
+                       pOptionsMgr->SaveOption(name, settings[i][j]);
+               }
+}
+
+/**
+ * @brief Get the project setting from OptionsMgr.
+ * @param [in] pOptionsMgr Pointer to OptionsMgr
+ * @param [in] operation Operation for project files
+ * @param [in] item Item to save to or restore from the project file
+ */
+bool Get(COptionsMgr* pOptionsMgr, Operation operation, Item item)
+{
+       if (pOptionsMgr == nullptr)
+               return false;
+
+       String name = strutils::format(_T("%s/%s.%s"), Section, OperationKeyword[static_cast<int>(operation)], ItemKeyword[static_cast<int>(item)]);
+       return pOptionsMgr->GetBool(name);
+}
+
+}}
\ No newline at end of file
diff --git a/Src/OptionsProject.h b/Src/OptionsProject.h
new file mode 100644 (file)
index 0000000..71a260f
--- /dev/null
@@ -0,0 +1,32 @@
+#pragma once
+
+class COptionsMgr;
+
+namespace Options { namespace Project {
+
+/** @brief Types of operations for project files */
+enum class Operation
+{
+       Open,
+       Load,
+       Save
+};
+constexpr int OperationCount = static_cast<int>(Operation::Save) + 1;
+
+/** @brief Types of items to save to or restore from the project file */
+enum class Item
+{
+       FileFilter,
+       IncludeSubfolders,
+       UnpackerPlugin,
+       CompareOptions
+};
+constexpr int ItemCount = static_cast<int>(Item::CompareOptions) + 1;
+
+typedef bool Settings[OperationCount][ItemCount];
+
+void Init(COptionsMgr *pOptionsMgr);
+void Load(COptionsMgr *pOptionsMgr, Settings settings);
+void Save(COptionsMgr *pOptionsMgr, const Settings& settings);
+bool Get(COptionsMgr* pOptionsMgr, Operation operation, Item item);
+}}
index adef642..ab5f45c 100755 (executable)
@@ -219,6 +219,16 @@ const String ProjectFile::PROJECTFILE_EXT = toTString("WinMerge");
 , m_bFilterCommentsLines(false)
 , m_bHasCompareMethod(false)
 , m_nCompareMethod(0)
+, m_bSaveFilter(true)
+, m_bSaveSubfolders(true)
+, m_bSaveUnpacker(true)
+, m_bSaveIgnoreWhite(true)
+, m_bSaveIgnoreBlankLines(true)
+, m_bSaveIgnoreCase(true)
+, m_bSaveIgnoreEol(true)
+, m_bSaveIgnoreCodepage(true)
+, m_bSaveFilterCommentsLines(true)
+, m_bSaveCompareMethod(true)
 {
 }
 
@@ -346,24 +356,32 @@ bool ProjectFile::Save(const String& path) const
                                        writeElement(writer, Middle_element_name, toUTF8(item.m_paths.GetMiddle()));
                                if (!item.m_paths.GetRight().empty())
                                        writeElement(writer, Right_element_name, toUTF8(item.m_paths.GetRight()));
-                               if (!item.m_filter.empty())
+                               if (item.m_bSaveFilter && !item.m_filter.empty())
                                        writeElement(writer, Filter_element_name, toUTF8(item.m_filter));
-                               writeElement(writer, Subfolders_element_name, item.m_subfolders != 0 ? "1" : "0");
+                               if (item.m_bSaveSubfolders)
+                                       writeElement(writer, Subfolders_element_name, item.m_subfolders != 0 ? "1" : "0");
                                writeElement(writer, Left_ro_element_name, item.m_bLeftReadOnly ? "1" : "0");
                                if (!item.m_paths.GetMiddle().empty())
                                        writeElement(writer, Middle_ro_element_name, item.m_bMiddleReadOnly ? "1" : "0");
                                writeElement(writer, Right_ro_element_name, item.m_bRightReadOnly ? "1" : "0");
-                               if (!item.m_unpacker.empty())
+                               if (item.m_bSaveUnpacker && !item.m_unpacker.empty())
                                        writeElement(writer, Unpacker_element_name, toUTF8(item.m_unpacker));
                                if (!item.m_prediffer.empty())
                                        writeElement(writer, Prediffer_element_name, toUTF8(item.m_prediffer));
-                               writeElement(writer, White_spaces_element_name, std::to_string(item.m_nIgnoreWhite));
-                               writeElement(writer, Ignore_blank_lines_element_name, item.m_bIgnoreBlankLines ? "1" : "0");
-                               writeElement(writer, Ignore_case_element_name, item.m_bIgnoreCase ? "1" : "0");
-                               writeElement(writer, Ignore_cr_diff_element_name, item.m_bIgnoreEol ? "1" : "0");
-                               writeElement(writer, Ignore_codepage_diff_element_name, item.m_bIgnoreCodepage ? "1" : "0");
-                               writeElement(writer, Ignore_comment_diff_element_name, item.m_bFilterCommentsLines ? "1" : "0");
-                               writeElement(writer, Compare_method_element_name, std::to_string(item.m_nCompareMethod));
+                               if (item.m_bSaveIgnoreWhite)
+                                       writeElement(writer, White_spaces_element_name, std::to_string(item.m_nIgnoreWhite));
+                               if (item.m_bSaveIgnoreBlankLines)
+                                       writeElement(writer, Ignore_blank_lines_element_name, item.m_bIgnoreBlankLines ? "1" : "0");
+                               if (item.m_bSaveIgnoreCase)
+                                       writeElement(writer, Ignore_case_element_name, item.m_bIgnoreCase ? "1" : "0");
+                               if (item.m_bSaveIgnoreEol)
+                                       writeElement(writer, Ignore_cr_diff_element_name, item.m_bIgnoreEol ? "1" : "0");
+                               if (item.m_bSaveIgnoreCodepage)
+                                       writeElement(writer, Ignore_codepage_diff_element_name, item.m_bIgnoreCodepage ? "1" : "0");
+                               if (item.m_bSaveFilterCommentsLines)
+                                       writeElement(writer, Ignore_comment_diff_element_name, item.m_bFilterCommentsLines ? "1" : "0");
+                               if (item.m_bSaveCompareMethod)
+                                       writeElement(writer, Compare_method_element_name, std::to_string(item.m_nCompareMethod));
                        }
                        writer.endElement("", "", Paths_element_name);
                }
index d8b3b7c..d74980a 100755 (executable)
@@ -66,6 +66,17 @@ public:
        void GetPaths(PathContext& files, bool & bSubFolders) const;
        void SetPaths(const PathContext& files, bool bSubFolders = false);
 
+       void SetSaveFilter(bool bSaveFilter);
+       void SetSaveSubfolders(bool bSaveSubfolders);
+       void SetSaveUnpacker(bool bSaveUnpacker);
+       void SetSaveIgnoreWhite(bool bSaveIgnoreWhite);
+       void SetSaveIgnoreBlankLines(bool bSaveIgnoreBlankLines);
+       void SetSaveIgnoreCase(bool bSaveIgnoreCase);
+       void SetSaveIgnoreEol(bool bSaveIgnoreEol);
+       void SetSaveIgnoreCodepage(bool bSaveIgnoreCodepage);
+       void SetSaveFilterCommentsLines(bool bSaveFilterCommentsLines);
+       void SetSaveCompareMethod(bool bSaveCompareMethod);
+
 private:
        PathContext m_paths;
        bool m_bHasLeft; /**< Has left path? */
@@ -96,6 +107,16 @@ private:
        bool m_bFilterCommentsLines; /**< The value of the "Ignore comment differences" setting */
        bool m_bHasCompareMethod; /**< Has "Compare method" setting? */
        int m_nCompareMethod; /**< The value of the "Compare method" setting */
+       bool m_bSaveFilter; /**< Save filter? */
+       bool m_bSaveSubfolders; /**< Save subfolders? */
+       bool m_bSaveUnpacker; /**< Save unpacker? */
+       bool m_bSaveIgnoreWhite; /**< Save "Whitespaces" setting? */
+       bool m_bSaveIgnoreBlankLines; /**< Save "Ignore blank lines" setting? */
+       bool m_bSaveIgnoreCase; /**< Save "Ignore case" setting? */
+       bool m_bSaveIgnoreEol; /**< Save "Ignore carriage return differences" setting? */
+       bool m_bSaveIgnoreCodepage; /**< Save "Ignore codepage differences" setting? */
+       bool m_bSaveFilterCommentsLines; /**< Save "Ignore comment differences" setting? */
+       bool m_bSaveCompareMethod; /**< Save "Compare method" setting? */
 };
 
 /**
@@ -478,3 +499,92 @@ inline void ProjectFileItem::SetPaths(const PathContext& paths, bool bSubfolders
        m_subfolders = bSubfolders;
 }
 
+/** 
+ * @brief Set whether to save filter.
+ * @param [in] bSaveFilter Whether to save filter.
+ */
+inline void ProjectFileItem::SetSaveFilter(bool bSaveFilter)
+{
+       m_bSaveFilter = bSaveFilter;
+}
+
+/** 
+ * @brief Set whether to save subfolders.
+ * @param [in] bSaveSubfolders Whether to save subfolders.
+ */
+inline void ProjectFileItem::SetSaveSubfolders(bool bSaveSubfolders)
+{
+       m_bSaveSubfolders = bSaveSubfolders;
+}
+
+/** 
+ * @brief Set whether to save unpacker.
+ * @param [in] bSaveUnpacker Whether to save unpacker.
+ */
+inline void ProjectFileItem::SetSaveUnpacker(bool bSaveUnpacker)
+{
+       m_bSaveUnpacker = bSaveUnpacker;
+}
+
+/** 
+ * @brief Set whether to save "Whitespaces" setting.
+ * @param [in] bSaveIgnoreWhite Whether to save "Whitespaces" setting.
+ */
+inline void ProjectFileItem::SetSaveIgnoreWhite(bool bSaveIgnoreWhite)
+{
+       m_bSaveIgnoreWhite = bSaveIgnoreWhite;
+}
+
+/** 
+ * @brief Set whether to save "Ignore blank lines" setting.
+ * @param [in] bSaveIgnoreBlankLines Whether to save "Ignore blank lines" setting.
+ */
+inline void ProjectFileItem::SetSaveIgnoreBlankLines(bool bSaveIgnoreBlankLines)
+{
+       m_bSaveIgnoreBlankLines = bSaveIgnoreBlankLines;
+}
+
+/** 
+ * @brief Set whether to save "Ignore case" setting.
+ * @param [in] bSaveIgnoreCase Whether to save "Ignore case" setting.
+ */
+inline void ProjectFileItem::SetSaveIgnoreCase(bool bSaveIgnoreCase)
+{
+       m_bSaveIgnoreCase = bSaveIgnoreCase;
+}
+
+/** 
+ * @brief Set whether to save "Ignore carriage return differences" setting.
+ * @param [in] bSaveIgnoreEol Whether to save "Ignore carriage return differences" setting.
+ */
+inline void ProjectFileItem::SetSaveIgnoreEol(bool bSaveIgnoreEol)
+{
+       m_bSaveIgnoreEol = bSaveIgnoreEol;
+}
+
+/** 
+ * @brief Set whether to save "Ignore codepage differences" setting.
+ * @param [in] bSaveIgnoreCodepage Whether to save "Ignore codepage differences" setting.
+ */
+inline void ProjectFileItem::SetSaveIgnoreCodepage(bool bSaveIgnoreCodepage)
+{
+       m_bSaveIgnoreCodepage = bSaveIgnoreCodepage;
+}
+
+/** 
+ * @brief Set whether to save "Ignore comment differences" setting.
+ * @param [in] bSaveFilterCommentsLines Whether to save "Ignore comment differences" setting.
+ */
+inline void ProjectFileItem::SetSaveFilterCommentsLines(bool bSaveFilterCommentsLines)
+{
+       m_bSaveFilterCommentsLines = bSaveFilterCommentsLines;
+}
+
+/** 
+ * @brief Set whether to save "Compare method" setting.
+ * @param [in] bSaveCompareMethod Whether to save "Compare method" setting.
+ */
+inline void ProjectFileItem::SetSaveCompareMethod(bool bSaveCompareMethod)
+{
+       m_bSaveCompareMethod = bSaveCompareMethod;
+}
diff --git a/Src/PropProject.cpp b/Src/PropProject.cpp
new file mode 100644 (file)
index 0000000..428a3df
--- /dev/null
@@ -0,0 +1,134 @@
+/** 
+ * @file  PropProject.cpp
+ *
+ * @brief Implementation of PropProject propertysheet
+ */
+
+#include "stdafx.h"
+#include "PropProject.h"
+#include "OptionsMgr.h"
+#include "OptionsPanel.h"
+#include "OptionsProject.h"
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#endif
+
+/** 
+ * @brief Constructor.
+ * @param [in] optionsMgr Pointer to options manager for handling options.
+ */
+PropProject::PropProject(COptionsMgr *optionsMgr)
+: OptionsPanel(optionsMgr, PropProject::IDD)
+{
+       for (int i = 0; i < Options::Project::OperationCount; i++)
+               for (int j = 0; j < Options::Project::ItemCount; j++)
+                       m_settings[i][j] = false;
+}
+
+/** 
+ * @brief Function handling dialog data exchange between GUI and variables.
+ */
+void PropProject::DoDataExchange(CDataExchange* pDX)
+{
+       CDialog::DoDataExchange(pDX);
+
+       //{{AFX_DATA_MAP(PropEditor)
+       DDX_Control(pDX, IDC_PROJECT_LIST, m_list);
+       //}}AFX_DATA_MAP
+
+       if (!pDX->m_bSaveAndValidate)
+       {
+               for (int i = 0; i < Options::Project::OperationCount; i++)
+                       for (int j = 0; j < Options::Project::ItemCount; j++)
+                               m_list.SetItemBooleanValue(j, i + 1, m_settings[i][j]);
+
+       }
+       else
+       {
+               for (int i = 0; i < Options::Project::OperationCount; i++)
+                       for (int j = 0; j < Options::Project::ItemCount; j++)
+                               m_settings[i][j] = m_list.GetItemBooleanValue(j, i + 1);
+       }
+
+}
+
+
+BEGIN_MESSAGE_MAP(PropProject, OptionsPanel)
+       //{{AFX_MSG_MAP(PropEditor)
+//     ON_BN_CLICKED(IDC_COMPARE_DEFAULTS, OnDefaults)
+       //}}AFX_MSG_MAP
+END_MESSAGE_MAP()
+
+/** 
+ * @brief Reads options values from storage to UI.
+ */
+void PropProject::ReadOptions()
+{
+       Options::Project::Load(GetOptionsMgr(), m_settings);
+}
+
+/** 
+ * @brief Writes options values from UI to storage.
+ */
+void PropProject::WriteOptions()
+{
+       Options::Project::Save(GetOptionsMgr(), m_settings);
+}
+
+/** 
+ * @brief Called before propertysheet is drawn.
+ */
+BOOL PropProject::OnInitDialog()
+{
+       OptionsPanel::OnInitDialog();
+
+       InitList();
+
+       UpdateData(false);
+
+       return TRUE;  // return TRUE unless you set the focus to a control
+                                 // EXCEPTION: OCX Property Pages should return FALSE
+}
+
+/**
+ * @brief Initialize listcontrol containing project settings.
+ */
+void PropProject::InitList()
+{
+       // Show selection across entire row.
+       // Also enable infotips.
+       m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_INFOTIP);
+
+       const int lpx = CClientDC(this).GetDeviceCaps(LOGPIXELSX);
+       auto pointToPixel = [lpx](int point) { return MulDiv(point, lpx, 72); };
+
+       String title = _("Item");
+       m_list.InsertColumn(0, title.c_str(), LVCFMT_LEFT, pointToPixel(100));
+       title = _("Open");
+       m_list.InsertColumn(1, title.c_str(), LVCFMT_LEFT, pointToPixel(50));
+       title = _("Load");
+       m_list.InsertColumn(2, title.c_str(), LVCFMT_LEFT, pointToPixel(50));
+       title = _("Save");
+       m_list.InsertColumn(3, title.c_str(), LVCFMT_LEFT, pointToPixel(50));
+
+       m_list.SetReadOnlyColumn(0);
+       for (int i = 0; i < Options::Project::OperationCount; ++i)
+       {
+               m_list.SetEditStyle(i+1, CSubeditList::EditStyle::EDIT_BOX);
+               m_list.SetBooleanValueColumn(i+1);
+       }
+
+       int nID[Options::Project::ItemCount] = {
+               IDS_PROJECT_ITEM_FILE_FILTER,
+               IDS_PROJECT_ITEM_INCLUDE_SUBFOLDERS,
+               IDS_PROJECT_ITEM_PLUGIN,
+               IDS_PROJECT_ITEM_COMPARE_OPTIONS
+       };
+
+       for (int i = 0; i < Options::Project::ItemCount; i++)
+       {
+               String str = LoadResString(nID[i]);
+               m_list.InsertItem(i, str.c_str());
+       }
+}
diff --git a/Src/PropProject.h b/Src/PropProject.h
new file mode 100644 (file)
index 0000000..d3f5d56
--- /dev/null
@@ -0,0 +1,55 @@
+/** 
+ * @file  PropProject.h
+ *
+ * @brief Declaration file for PropProject propertysheet
+ *
+ */
+#pragma once
+
+#include "OptionsPanel.h"
+#include "SubeditList.h"
+#include "OptionsProject.h"
+
+class COptionsMgr;
+
+/**
+ * @brief Property page to set project options for WinMerge.
+ */
+class PropProject : public OptionsPanel
+{
+// Construction
+public:
+       explicit PropProject(COptionsMgr *optionsMgr);
+
+// Implement IOptionsPanel
+       virtual void ReadOptions() override;
+       virtual void WriteOptions() override;
+
+// Dialog Data
+       //{{AFX_DATA(PropEditor)
+       enum { IDD = IDD_PROPPAGE_PROJECT };
+       CSubeditList m_list;
+       //}}AFX_DATA
+
+private:
+       Options::Project::Settings m_settings;
+
+// Implementation methods
+       void InitList();
+
+// Overrides
+       // ClassWizard generated virtual function overrides
+       //{{AFX_VIRTUAL(PropEditor)
+       protected:
+       virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
+       //}}AFX_VIRTUAL
+
+// Implementation
+protected:
+
+       // Generated message map functions
+       //{{AFX_MSG(PropEditor)
+       afx_msg BOOL OnInitDialog() override;
+       //}}AFX_MSG
+       DECLARE_MESSAGE_MAP()
+};
index 0938153..0c51392 100644 (file)
 #define IDD_PROPPAGE_SHELL              277\r
 #define IDD_PROPPAGE_SYSTEM             278\r
 #define IDD_PROPPAGE_MESSAGEBOXES       279\r
-#define IDD_EDIT_FIND                   280\r
-#define IDD_EDIT_MARKER                 281\r
-#define IDD_EDIT_REPLACE                282\r
+#define IDD_PROPPAGE_PROJECT            280\r
+#define IDD_EDIT_FIND                   281\r
+#define IDD_EDIT_MARKER                 282\r
+#define IDD_EDIT_REPLACE                283\r
 #define IDI_ROTATE2                     302\r
 #define IDR_LOGO                        307\r
 #define IDR_SPLASH                      308\r
 #define IDC_COMPLETELY_BLANK_OUT_IGNORED_DIFFERENCES 1419\r
 #define IDC_LFILTER_CLEARBTN            1420\r
 #define IDC_MESSAGEBOX_LIST             1421\r
+#define IDC_PROJECT_LIST                1422\r
 #define IDC_EXPAND_SUBDIRS              1600\r
 #define IDC_FILEENCODING                1601\r
 #define IDC_PLUGIN                      1602\r
 #define IDS_OPTIONSPG_GENEDITOR         39062\r
 #define IDS_OPTIONSPG_EDITOR_SYNTAX     39063\r
 #define IDS_OPTIONSPG_MESSAGEBOXES      39064\r
+#define IDS_OPTIONSPG_PROJECT           39065\r
 #define IDS_TO                          40000\r
 #define IDS_FROM_LEFT                   40001\r
 #define IDS_TO_LEFT                     40002\r
 #define IDS_SUGGESTED_PLUGINS           43502\r
 #define IDS_NOT_SUGGESTED_PLUGINS       43503\r
 #define IDS_PRIVATEBUILD_FMT            43504\r
+#define IDS_PROJECT_ITEM                43505\r
+#define IDS_PROJECT_OPEN                43506\r
+#define IDS_PROJECT_LOAD                43507\r
+#define IDS_PROJECT_SAVE                43508\r
+#define IDS_PROJECT_ITEM_FILE_FILTER    43509\r
+#define IDS_PROJECT_ITEM_INCLUDE_SUBFOLDERS 43510\r
+#define IDS_PROJECT_ITEM_PLUGIN         43511\r
+#define IDS_PROJECT_ITEM_COMPARE_OPTIONS 43512\r
 #define IDS_CHECKFORUPDATES_UPTODATE    43521\r
 #define IDS_CHECKFORUPDATES_NEWVERSION  43522\r
 #define IDS_CHECKFORUPDATES_FAILED      43523\r
index 0503f09..e0518fe 100644 (file)
@@ -1623,6 +1623,9 @@ msgstr "ت&فعيل دعم ملفات الأرشفة"
 msgid "&Detect archive type from file signature"
 msgstr "الت&حقق مكن نوع الإرشيف عبر فحص التوقيع"
 
+msgid "Items saved to or restored from the project file:"
+msgstr ""
+
 msgid "Compare Statistics"
 msgstr "إحصائيات المقارنة"
 
@@ -2067,6 +2070,9 @@ msgstr ""
 msgid "Folder Compare"
 msgstr "مقارنة المجلد"
 
+msgid "Project"
+msgstr ""
+
 msgid "Differences"
 msgstr "الاختلافات"
 
@@ -2158,6 +2164,21 @@ msgstr ""
 msgid "Answer"
 msgstr ""
 
+msgid "Item"
+msgstr ""
+
+msgid "Load"
+msgstr ""
+
+msgid "Save"
+msgstr ""
+
+msgid "Include Subfolders"
+msgstr ""
+
+msgid "Compare Options"
+msgstr ""
+
 msgid "Name"
 msgstr "الاسم"
 
index 54b5325..2bb7aac 100644 (file)
@@ -2035,6 +2035,9 @@ msgstr "&Gaitu agirien agiri sostengua"
 msgid "&Detect archive type from file signature"
 msgstr "&Atzeman agiri mota agiriaren sinaduratik"
 
+msgid "Items saved to or restored from the project file:"
+msgstr ""
+
 #, c-format
 msgid "Compare Statistics"
 msgstr "Alderatu Estatistikak"
@@ -2550,6 +2553,9 @@ msgstr ""
 msgid "Folder Compare"
 msgstr ""
 
+msgid "Project"
+msgstr ""
+
 #, c-format
 msgid "Differences"
 msgstr "Ezberdintasunak"
@@ -2654,6 +2660,21 @@ msgstr ""
 msgid "Answer"
 msgstr ""
 
+msgid "Item"
+msgstr ""
+
+msgid "Load"
+msgstr ""
+
+msgid "Save"
+msgstr ""
+
+msgid "Include Subfolders"
+msgstr ""
+
+msgid "Compare Options"
+msgstr ""
+
 #, c-format
 msgid "Name"
 msgstr "Izena"
index 23ee5c3..9d4ee93 100644 (file)
@@ -1637,6 +1637,9 @@ msgstr "&Ativar o suporte pra arquivos dentro do arquivo compactado"
 msgid "&Detect archive type from file signature"
 msgstr "&Detectar o tipo de arquivo compactado pela assinatura do arquivo"
 
+msgid "Items saved to or restored from the project file:"
+msgstr ""
+
 msgid "Compare Statistics"
 msgstr "Comparar as Estatísticas"
 
@@ -2091,6 +2094,9 @@ msgstr "Esquemas das Cores"
 msgid "Folder Compare"
 msgstr "Comparar Pastas"
 
+msgid "Project"
+msgstr ""
+
 msgid "Differences"
 msgstr "Diferenças"
 
@@ -2183,6 +2189,21 @@ msgstr "Mensagem"
 msgid "Answer"
 msgstr "Resposta"
 
+msgid "Item"
+msgstr ""
+
+msgid "Load"
+msgstr ""
+
+msgid "Save"
+msgstr ""
+
+msgid "Include Subfolders"
+msgstr ""
+
+msgid "Compare Options"
+msgstr ""
+
 msgid "Name"
 msgstr "Nome"
 
index d9ad0e3..88b26ba 100644 (file)
@@ -1625,6 +1625,9 @@ msgstr "Включване на &поддръжката на архиви"
 msgid "&Detect archive type from file signature"
 msgstr "Откриване на вида на &архива от подписа на файла"
 
+msgid "Items saved to or restored from the project file:"
+msgstr ""
+
 msgid "Compare Statistics"
 msgstr "Статистика на сравнението"
 
@@ -2074,6 +2077,9 @@ msgstr "Теми"
 msgid "Folder Compare"
 msgstr "Сравняване на папки"
 
+msgid "Project"
+msgstr ""
+
 msgid "Differences"
 msgstr "Различия"
 
@@ -2165,6 +2171,21 @@ msgstr ""
 msgid "Answer"
 msgstr ""
 
+msgid "Item"
+msgstr ""
+
+msgid "Load"
+msgstr ""
+
+msgid "Save"
+msgstr ""
+
+msgid "Include Subfolders"
+msgstr ""
+
+msgid "Compare Options"
+msgstr ""
+
 msgid "Name"
 msgstr "Име"
 
index 9c0d4e1..0f8db24 100644 (file)
@@ -2031,6 +2031,9 @@ msgstr "&Habilita el suport de fitxers d'arxivament"
 msgid "&Detect archive type from file signature"
 msgstr "&Detecta el tipus d'arxiu a partir de la signatura del fitxer"
 
+msgid "Items saved to or restored from the project file:"
+msgstr ""
+
 #, c-format
 msgid "Compare Statistics"
 msgstr "Estadístiques de comparació"
@@ -2518,6 +2521,9 @@ msgstr ""
 msgid "Folder Compare"
 msgstr ""
 
+msgid "Project"
+msgstr ""
+
 #, c-format
 msgid "Differences"
 msgstr "Diferències"
@@ -2622,6 +2628,21 @@ msgstr ""
 msgid "Answer"
 msgstr ""
 
+msgid "Item"
+msgstr ""
+
+msgid "Load"
+msgstr ""
+
+msgid "Save"
+msgstr ""
+
+msgid "Include Subfolders"
+msgstr ""
+
+msgid "Compare Options"
+msgstr ""
+
 #, c-format
 msgid "Name"
 msgstr "Nom"
index f9f26df..5a2d788 100644 (file)
@@ -1628,6 +1628,9 @@ msgstr "启用压缩文件支持(&E)"
 msgid "&Detect archive type from file signature"
 msgstr "根据文件头检测压缩文件类型(&D)"
 
+msgid "Items saved to or restored from the project file:"
+msgstr ""
+
 msgid "Compare Statistics"
 msgstr "比较结果统计"
 
@@ -2075,6 +2078,9 @@ msgstr "配色方案"
 msgid "Folder Compare"
 msgstr "文件夹比较"
 
+msgid "Project"
+msgstr ""
+
 msgid "Differences"
 msgstr "差异"
 
@@ -2166,6 +2172,21 @@ msgstr ""
 msgid "Answer"
 msgstr ""
 
+msgid "Item"
+msgstr ""
+
+msgid "Load"
+msgstr ""
+
+msgid "Save"
+msgstr ""
+
+msgid "Include Subfolders"
+msgstr ""
+
+msgid "Compare Options"
+msgstr ""
+
 msgid "Name"
 msgstr "名称"
 
index b7b55cc..863acc5 100644 (file)
@@ -2045,6 +2045,9 @@ msgstr "壓縮檔支援(&E)"
 msgid "&Detect archive type from file signature"
 msgstr "偵測檔首資訊以決定壓縮檔類型(&D)"
 
+msgid "Items saved to or restored from the project file:"
+msgstr ""
+
 #, c-format
 msgid "Compare Statistics"
 msgstr "比較後的統計"
@@ -2560,6 +2563,9 @@ msgstr ""
 msgid "Folder Compare"
 msgstr ""
 
+msgid "Project"
+msgstr ""
+
 #, c-format
 msgid "Differences"
 msgstr "差異"
@@ -2664,6 +2670,21 @@ msgstr ""
 msgid "Answer"
 msgstr ""
 
+msgid "Item"
+msgstr ""
+
+msgid "Load"
+msgstr ""
+
+msgid "Save"
+msgstr ""
+
+msgid "Include Subfolders"
+msgstr ""
+
+msgid "Compare Options"
+msgstr ""
+
 #, c-format
 msgid "Name"
 msgstr "名稱"
index 0155347..8ae9599 100644 (file)
@@ -2034,6 +2034,9 @@ msgstr "Omogući rad s &arhivima"
 msgid "&Detect archive type from file signature"
 msgstr "&Očitaj tip arhiva iz zaglavlja datoteke"
 
+msgid "Items saved to or restored from the project file:"
+msgstr ""
+
 #, c-format
 msgid "Compare Statistics"
 msgstr "Usporedba statistike"
@@ -2549,6 +2552,9 @@ msgstr ""
 msgid "Folder Compare"
 msgstr ""
 
+msgid "Project"
+msgstr ""
+
 #, c-format
 msgid "Differences"
 msgstr "Razlike"
@@ -2653,6 +2659,21 @@ msgstr ""
 msgid "Answer"
 msgstr ""
 
+msgid "Item"
+msgstr ""
+
+msgid "Load"
+msgstr ""
+
+msgid "Save"
+msgstr ""
+
+msgid "Include Subfolders"
+msgstr ""
+
+msgid "Compare Options"
+msgstr ""
+
 #, c-format
 msgid "Name"
 msgstr "Naziv"
index fb725e5..b2e5126 100644 (file)
@@ -2034,6 +2034,9 @@ msgstr "&Zapnout podporu archivních souborů"
 msgid "&Detect archive type from file signature"
 msgstr "Zjistit &automaticky typ archivu"
 
+msgid "Items saved to or restored from the project file:"
+msgstr ""
+
 #, c-format
 msgid "Compare Statistics"
 msgstr "Statistika porovnání"
@@ -2521,6 +2524,9 @@ msgstr ""
 msgid "Folder Compare"
 msgstr ""
 
+msgid "Project"
+msgstr ""
+
 #, c-format
 msgid "Differences"
 msgstr "Rozdíly"
@@ -2625,6 +2631,21 @@ msgstr ""
 msgid "Answer"
 msgstr ""
 
+msgid "Item"
+msgstr ""
+
+msgid "Load"
+msgstr ""
+
+msgid "Save"
+msgstr ""
+
+msgid "Include Subfolders"
+msgstr ""
+
+msgid "Compare Options"
+msgstr ""
+
 #, c-format
 msgid "Name"
 msgstr "Název"
index 02597bf..c695e41 100644 (file)
@@ -2039,6 +2039,9 @@ msgstr "&Aktiver arkiv fil support"
 msgid "&Detect archive type from file signature"
 msgstr "Bestem arkivtype udfra fil signatur"
 
+msgid "Items saved to or restored from the project file:"
+msgstr ""
+
 #, c-format
 msgid "Compare Statistics"
 msgstr "Sammenlign Statistik"
@@ -2560,6 +2563,9 @@ msgstr ""
 msgid "Folder Compare"
 msgstr ""
 
+msgid "Project"
+msgstr ""
+
 #, c-format
 msgid "Differences"
 msgstr "Forskelle"
@@ -2668,6 +2674,21 @@ msgstr ""
 msgid "Answer"
 msgstr ""
 
+msgid "Item"
+msgstr ""
+
+msgid "Load"
+msgstr ""
+
+msgid "Save"
+msgstr ""
+
+msgid "Include Subfolders"
+msgstr ""
+
+msgid "Compare Options"
+msgstr ""
+
 #, c-format
 msgid "Name"
 msgstr "Navn"
index a8f853e..4e6fa37 100644 (file)
@@ -1635,6 +1635,9 @@ msgstr "Archiefbestand-ondersteuning inschakelen"
 msgid "&Detect archive type from file signature"
 msgstr "Archieftype detecteren via bestandssignatuur"
 
+msgid "Items saved to or restored from the project file:"
+msgstr ""
+
 msgid "Compare Statistics"
 msgstr "Vergelijkingsstatistieken"
 
@@ -2086,6 +2089,9 @@ msgstr "Kleurenschema's"
 msgid "Folder Compare"
 msgstr "Mapvergelijking"
 
+msgid "Project"
+msgstr ""
+
 msgid "Differences"
 msgstr "Verschillen"
 
@@ -2177,6 +2183,21 @@ msgstr "Bericht"
 msgid "Answer"
 msgstr "Antwoord"
 
+msgid "Item"
+msgstr ""
+
+msgid "Load"
+msgstr ""
+
+msgid "Save"
+msgstr ""
+
+msgid "Include Subfolders"
+msgstr ""
+
+msgid "Compare Options"
+msgstr ""
+
 msgid "Name"
 msgstr "Naam"
 
index 96e3fb3..19556df 100644 (file)
@@ -5,7 +5,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: WinMerge\n"
 "Report-Msgid-Bugs-To: https://bugs.winmerge.org/\n"
-"POT-Creation-Date: 2021-08-25 21:30+0000\n"
+"POT-Creation-Date: 2021-08-29 20:11+0000\n"
 "PO-Revision-Date: \n"
 "Last-Translator: \n"
 "Language-Team: English <winmerge-translate@lists.sourceforge.net>\n"
@@ -1608,6 +1608,9 @@ msgstr ""
 msgid "&Detect archive type from file signature"
 msgstr ""
 
+msgid "Items saved to or restored from the project file:"
+msgstr ""
+
 msgid "Compare Statistics"
 msgstr ""
 
@@ -1997,6 +2000,9 @@ msgstr ""
 msgid "Folder Compare"
 msgstr ""
 
+msgid "Project"
+msgstr ""
+
 msgid "Differences"
 msgstr ""
 
@@ -2078,6 +2084,21 @@ msgstr ""
 msgid "Answer"
 msgstr ""
 
+msgid "Item"
+msgstr ""
+
+msgid "Load"
+msgstr ""
+
+msgid "Save"
+msgstr ""
+
+msgid "Include Subfolders"
+msgstr ""
+
+msgid "Compare Options"
+msgstr ""
+
 msgid "Name"
 msgstr ""
 
index 2970b2b..812c311 100644 (file)
@@ -2037,6 +2037,9 @@ msgstr "Käytä arkistotiedostojen tukea"
 msgid "&Detect archive type from file signature"
 msgstr "Tunnista arkistotyyppi tiedoston allekirjoituksesta"
 
+msgid "Items saved to or restored from the project file:"
+msgstr ""
+
 #, c-format
 msgid "Compare Statistics"
 msgstr "Vertaa tilastoja"
@@ -2574,6 +2577,9 @@ msgstr ""
 msgid "Folder Compare"
 msgstr "Kansiovertailu"
 
+msgid "Project"
+msgstr ""
+
 #, c-format
 msgid "Differences"
 msgstr "Erilaisuudet"
@@ -2678,6 +2684,21 @@ msgstr ""
 msgid "Answer"
 msgstr ""
 
+msgid "Item"
+msgstr ""
+
+msgid "Load"
+msgstr ""
+
+msgid "Save"
+msgstr ""
+
+msgid "Include Subfolders"
+msgstr ""
+
+msgid "Compare Options"
+msgstr ""
+
 #, c-format
 msgid "Name"
 msgstr "Nimi"
index dbd49d7..103fffb 100644 (file)
@@ -2047,6 +2047,9 @@ msgstr "&Activer le support d'archives"
 msgid "&Detect archive type from file signature"
 msgstr "&Détecter le type d'archives avec un fichier de signature"
 
+msgid "Items saved to or restored from the project file:"
+msgstr ""
+
 #, c-format
 msgid "Compare Statistics"
 msgstr "Statistiques de comparaison"
@@ -2586,6 +2589,9 @@ msgstr "Schémas de couleurs"
 msgid "Folder Compare"
 msgstr "Comparaison de dossiers"
 
+msgid "Project"
+msgstr ""
+
 #, c-format
 msgid "Differences"
 msgstr "Différences"
@@ -2690,6 +2696,21 @@ msgstr ""
 msgid "Answer"
 msgstr ""
 
+msgid "Item"
+msgstr ""
+
+msgid "Load"
+msgstr ""
+
+msgid "Save"
+msgstr ""
+
+msgid "Include Subfolders"
+msgstr ""
+
+msgid "Compare Options"
+msgstr ""
+
 #, c-format
 msgid "Name"
 msgstr "Nom"
index 0313d85..17b126d 100644 (file)
@@ -2041,6 +2041,9 @@ msgstr "&Activar o soporte de arquivos"
 msgid "&Detect archive type from file signature"
 msgstr "&Detectar o tipo de arquivo pola sinatura"
 
+msgid "Items saved to or restored from the project file:"
+msgstr ""
+
 #, c-format
 msgid "Compare Statistics"
 msgstr "Estatísticas da comparación"
@@ -2580,6 +2583,9 @@ msgstr "Esquemas de cores"
 msgid "Folder Compare"
 msgstr "Comparar cartafoles"
 
+msgid "Project"
+msgstr ""
+
 #, c-format
 msgid "Differences"
 msgstr "Diferenzas"
@@ -2684,6 +2690,21 @@ msgstr "Mensaxe"
 msgid "Answer"
 msgstr "Resposta"
 
+msgid "Item"
+msgstr ""
+
+msgid "Load"
+msgstr ""
+
+msgid "Save"
+msgstr ""
+
+msgid "Include Subfolders"
+msgstr ""
+
+msgid "Compare Options"
+msgstr ""
+
 #, c-format
 msgid "Name"
 msgstr "Nome"
index fa81428..d6a322b 100644 (file)
@@ -2032,6 +2032,9 @@ msgstr "&Archivunterstützung aktivieren"
 msgid "&Detect archive type from file signature"
 msgstr "Archiv&typ aus der Dateisignatur ermitteln"
 
+msgid "Items saved to or restored from the project file:"
+msgstr ""
+
 #, c-format
 msgid "Compare Statistics"
 msgstr "Vergleichsstatistik"
@@ -2519,6 +2522,9 @@ msgstr "Farbschemas"
 msgid "Folder Compare"
 msgstr "Ordnervergleich"
 
+msgid "Project"
+msgstr ""
+
 #, c-format
 msgid "Differences"
 msgstr "Unterschiede"
@@ -2617,6 +2623,21 @@ msgstr "Meldung"
 msgid "Answer"
 msgstr "Antwort"
 
+msgid "Item"
+msgstr ""
+
+msgid "Load"
+msgstr ""
+
+msgid "Save"
+msgstr ""
+
+msgid "Include Subfolders"
+msgstr ""
+
+msgid "Compare Options"
+msgstr ""
+
 #, c-format
 msgid "Name"
 msgstr "Name"
index 9c95566..3a7b844 100644 (file)
@@ -2031,6 +2031,9 @@ msgstr "&Ενεργοποίηση υποστηρίξεως συμπιεσμέν
 msgid "&Detect archive type from file signature"
 msgstr "Ανί&χνευση τύπου συμπιεσμένου αρχείου από την υπογραφή του"
 
+msgid "Items saved to or restored from the project file:"
+msgstr ""
+
 #, c-format
 msgid "Compare Statistics"
 msgstr "Στατιστικά Συγκρίσεων"
@@ -2546,6 +2549,9 @@ msgstr ""
 msgid "Folder Compare"
 msgstr ""
 
+msgid "Project"
+msgstr ""
+
 #, c-format
 msgid "Differences"
 msgstr "Διαφορές"
@@ -2650,6 +2656,21 @@ msgstr ""
 msgid "Answer"
 msgstr ""
 
+msgid "Item"
+msgstr ""
+
+msgid "Load"
+msgstr ""
+
+msgid "Save"
+msgstr ""
+
+msgid "Include Subfolders"
+msgstr ""
+
+msgid "Compare Options"
+msgstr ""
+
 #, c-format
 msgid "Name"
 msgstr "Όνομα"
index 42131ab..400612a 100644 (file)
@@ -2042,6 +2042,9 @@ msgstr "Archív fájlok támogatásának &engedélyezése"
 msgid "&Detect archive type from file signature"
 msgstr "Archív fájl típusának megállapítása a fájl &szignatúrája alapján"
 
+msgid "Items saved to or restored from the project file:"
+msgstr ""
+
 #, c-format
 msgid "Compare Statistics"
 msgstr "Összehasonlítási statisztika"
@@ -2581,6 +2584,9 @@ msgstr "Színsémák"
 msgid "Folder Compare"
 msgstr "Mappa összehasonlítás"
 
+msgid "Project"
+msgstr ""
+
 #, c-format
 msgid "Differences"
 msgstr "Eltérések"
@@ -2685,6 +2691,21 @@ msgstr "Üzenet"
 msgid "Answer"
 msgstr "Válasz"
 
+msgid "Item"
+msgstr ""
+
+msgid "Load"
+msgstr ""
+
+msgid "Save"
+msgstr ""
+
+msgid "Include Subfolders"
+msgstr ""
+
+msgid "Compare Options"
+msgstr ""
+
 #, c-format
 msgid "Name"
 msgstr "Név"
index 3030601..2bf2212 100644 (file)
@@ -1622,6 +1622,9 @@ msgstr "&Attiva il supporto per i file archivio"
 msgid "&Detect archive type from file signature"
 msgstr "&Rileva il tipo di archivio dalla firma dei file"
 
+msgid "Items saved to or restored from the project file:"
+msgstr ""
+
 msgid "Compare Statistics"
 msgstr "Statistiche confronto"
 
@@ -2061,6 +2064,9 @@ msgstr "Schemi colore"
 msgid "Folder Compare"
 msgstr "Confronto cartelle"
 
+msgid "Project"
+msgstr ""
+
 msgid "Differences"
 msgstr "Differenze"
 
@@ -2148,6 +2154,21 @@ msgstr "Messaggio"
 msgid "Answer"
 msgstr "Risposta"
 
+msgid "Item"
+msgstr ""
+
+msgid "Load"
+msgstr ""
+
+msgid "Save"
+msgstr ""
+
+msgid "Include Subfolders"
+msgstr ""
+
+msgid "Compare Options"
+msgstr ""
+
 msgid "Name"
 msgstr "Nome"
 
index e9705d2..f2c09e4 100644 (file)
@@ -1627,6 +1627,9 @@ msgstr "アーカイブ ファイル サポートを有効にする(&E)"
 msgid "&Detect archive type from file signature"
 msgstr "ファイルのシグネチャからアーカイブ形式を検出する(&D)"
 
+msgid "Items saved to or restored from the project file:"
+msgstr "プロジェクトファイルに保存またはプロジェクトファイルから復元する項目:"
+
 msgid "Compare Statistics"
 msgstr "比較統計"
 
@@ -2068,6 +2071,9 @@ msgstr "配色"
 msgid "Folder Compare"
 msgstr "フォルダー比較"
 
+msgid "Project"
+msgstr "プロジェクト"
+
 msgid "Differences"
 msgstr "差異"
 
@@ -2155,6 +2161,21 @@ msgstr "メッセージ"
 msgid "Answer"
 msgstr "回答"
 
+msgid "Item"
+msgstr "項目"
+
+msgid "Load"
+msgstr "読み込み"
+
+msgid "Save"
+msgstr "保存"
+
+msgid "Include Subfolders"
+msgstr "サブフォルダーを含める"
+
+msgid "Compare Options"
+msgstr "比較オプション"
+
 msgid "Name"
 msgstr "名前"
 
index 04dca56..c89539b 100644 (file)
@@ -2046,6 +2046,9 @@ msgstr "압축 파일 지원 사용하기(&E)"
 msgid "&Detect archive type from file signature"
 msgstr "파일 서명에서 압축 형식 감지하기(&D)"
 
+msgid "Items saved to or restored from the project file:"
+msgstr ""
+
 #, c-format
 msgid "Compare Statistics"
 msgstr "통계 비교"
@@ -2585,6 +2588,9 @@ msgstr "색상 테마"
 msgid "Folder Compare"
 msgstr "폴더 비교"
 
+msgid "Project"
+msgstr ""
+
 #, c-format
 msgid "Differences"
 msgstr "차이점"
@@ -2689,6 +2695,21 @@ msgstr ""
 msgid "Answer"
 msgstr ""
 
+msgid "Item"
+msgstr ""
+
+msgid "Load"
+msgstr ""
+
+msgid "Save"
+msgstr ""
+
+msgid "Include Subfolders"
+msgstr ""
+
+msgid "Compare Options"
+msgstr ""
+
 #, c-format
 msgid "Name"
 msgstr "이름"
index 8824bab..342a78f 100644 (file)
@@ -1617,6 +1617,9 @@ msgstr "Į&jungti archyvo failų palaikymą"
 msgid "&Detect archive type from file signature"
 msgstr "&Nustatyti archyvo tipą iš failo parašo"
 
+msgid "Items saved to or restored from the project file:"
+msgstr ""
+
 msgid "Compare Statistics"
 msgstr "Lyginimo statistika"
 
@@ -2006,6 +2009,9 @@ msgstr "Schemų"
 msgid "Folder Compare"
 msgstr "Katalogų lyginimo"
 
+msgid "Project"
+msgstr ""
+
 msgid "Differences"
 msgstr "Skirtumų"
 
@@ -2087,6 +2093,21 @@ msgstr "Pranešimas"
 msgid "Answer"
 msgstr "Atsakymas"
 
+msgid "Item"
+msgstr ""
+
+msgid "Load"
+msgstr ""
+
+msgid "Save"
+msgstr ""
+
+msgid "Include Subfolders"
+msgstr ""
+
+msgid "Compare Options"
+msgstr ""
+
 msgid "Name"
 msgstr "Pavadinimas"
 
index c3032ae..fcfdce1 100644 (file)
@@ -2034,6 +2034,9 @@ msgstr "&Aktiver arkivfil-støtte"
 msgid "&Detect archive type from file signature"
 msgstr "&Detekter arkivtype fra filsignatur"
 
+msgid "Items saved to or restored from the project file:"
+msgstr ""
+
 #, c-format
 msgid "Compare Statistics"
 msgstr "Sammenlignings-statistikk"
@@ -2549,6 +2552,9 @@ msgstr ""
 msgid "Folder Compare"
 msgstr ""
 
+msgid "Project"
+msgstr ""
+
 #, c-format
 msgid "Differences"
 msgstr "Forskjeller"
@@ -2653,6 +2659,21 @@ msgstr ""
 msgid "Answer"
 msgstr ""
 
+msgid "Item"
+msgstr ""
+
+msgid "Load"
+msgstr ""
+
+msgid "Save"
+msgstr ""
+
+msgid "Include Subfolders"
+msgstr ""
+
+msgid "Compare Options"
+msgstr ""
+
 #, c-format
 msgid "Name"
 msgstr "Navn"
index 1e41ca1..d062ae3 100644 (file)
@@ -2041,6 +2041,9 @@ msgstr "&E فعال نمودن پشتيباني از پرونده بايگاني
 msgid "&Detect archive type from file signature"
 msgstr "&D شناسايي نوع بايگاني از روي امضاء پرونده  "
 
+msgid "Items saved to or restored from the project file:"
+msgstr ""
+
 #, c-format
 msgid "Compare Statistics"
 msgstr " آمار همسنجي / قياس "
@@ -2562,6 +2565,9 @@ msgstr ""
 msgid "Folder Compare"
 msgstr ""
 
+msgid "Project"
+msgstr ""
+
 #, c-format
 msgid "Differences"
 msgstr " تفاوتها "
@@ -2671,6 +2677,21 @@ msgstr ""
 msgid "Answer"
 msgstr ""
 
+msgid "Item"
+msgstr ""
+
+msgid "Load"
+msgstr ""
+
+msgid "Save"
+msgstr ""
+
+msgid "Include Subfolders"
+msgstr ""
+
+msgid "Compare Options"
+msgstr ""
+
 #, c-format
 msgid "Name"
 msgstr " نام "
index 1409834..cfda0d9 100644 (file)
@@ -1614,6 +1614,9 @@ msgstr "Włącz wsparcie dla archiwów"
 msgid "&Detect archive type from file signature"
 msgstr "Wykryj typ archiwum z sygnatury pliku"
 
+msgid "Items saved to or restored from the project file:"
+msgstr ""
+
 msgid "Compare Statistics"
 msgstr "Statystyki porównania"
 
@@ -2003,6 +2006,9 @@ msgstr "Schematy kolorów"
 msgid "Folder Compare"
 msgstr "Porównaj foldery"
 
+msgid "Project"
+msgstr ""
+
 msgid "Differences"
 msgstr "Różnice"
 
@@ -2084,6 +2090,21 @@ msgstr ""
 msgid "Answer"
 msgstr ""
 
+msgid "Item"
+msgstr ""
+
+msgid "Load"
+msgstr ""
+
+msgid "Save"
+msgstr ""
+
+msgid "Include Subfolders"
+msgstr ""
+
+msgid "Compare Options"
+msgstr ""
+
 msgid "Name"
 msgstr "Nazwa"
 
index 5b348eb..0b9fa60 100644 (file)
@@ -1638,6 +1638,9 @@ msgstr "Ativar suporte de ficheiros"
 msgid "&Detect archive type from file signature"
 msgstr "Detetar tipo de ficheiro pela assinatura"
 
+msgid "Items saved to or restored from the project file:"
+msgstr ""
+
 msgid "Compare Statistics"
 msgstr "Comparar estatísticas"
 
@@ -2091,6 +2094,9 @@ msgstr "Esquema de cores"
 msgid "Folder Compare"
 msgstr "Comparação de pastas"
 
+msgid "Project"
+msgstr ""
+
 msgid "Differences"
 msgstr "Diferenças"
 
@@ -2184,6 +2190,21 @@ msgstr "Mensagem"
 msgid "Answer"
 msgstr "Resposta"
 
+msgid "Item"
+msgstr ""
+
+msgid "Load"
+msgstr ""
+
+msgid "Save"
+msgstr ""
+
+msgid "Include Subfolders"
+msgstr ""
+
+msgid "Compare Options"
+msgstr ""
+
 msgid "Name"
 msgstr "Nome"
 
index 07aba7d..2e4e248 100644 (file)
@@ -2032,6 +2032,9 @@ msgstr "Activ&ează suportul pentru fişierele arhivă"
 msgid "&Detect archive type from file signature"
 msgstr "&Detectează tipul arhivei după semnătura fişierului"
 
+msgid "Items saved to or restored from the project file:"
+msgstr ""
+
 #, c-format
 msgid "Compare Statistics"
 msgstr "Statistici ale comparării"
@@ -2547,6 +2550,9 @@ msgstr ""
 msgid "Folder Compare"
 msgstr ""
 
+msgid "Project"
+msgstr ""
+
 #, c-format
 msgid "Differences"
 msgstr "Diferenţe"
@@ -2651,6 +2657,21 @@ msgstr ""
 msgid "Answer"
 msgstr ""
 
+msgid "Item"
+msgstr ""
+
+msgid "Load"
+msgstr ""
+
+msgid "Save"
+msgstr ""
+
+msgid "Include Subfolders"
+msgstr ""
+
+msgid "Compare Options"
+msgstr ""
+
 #, c-format
 msgid "Name"
 msgstr "Nume"
index dcf177e..bf18f73 100644 (file)
@@ -1616,6 +1616,9 @@ msgstr "&Включить поддержку архивов"
 msgid "&Detect archive type from file signature"
 msgstr "&Определять тип архива по сигнатуре/заголовку файла"
 
+msgid "Items saved to or restored from the project file:"
+msgstr ""
+
 msgid "Compare Statistics"
 msgstr "Статистика сравнения"
 
@@ -2005,6 +2008,9 @@ msgstr "Цветовая схема"
 msgid "Folder Compare"
 msgstr "Сравнение папок"
 
+msgid "Project"
+msgstr ""
+
 msgid "Differences"
 msgstr "Отличия"
 
@@ -2086,6 +2092,21 @@ msgstr "Сообщение"
 msgid "Answer"
 msgstr "Ответ"
 
+msgid "Item"
+msgstr ""
+
+msgid "Load"
+msgstr ""
+
+msgid "Save"
+msgstr ""
+
+msgid "Include Subfolders"
+msgstr ""
+
+msgid "Compare Options"
+msgstr ""
+
 msgid "Name"
 msgstr "Имя"
 
index aa26b4f..8ce9641 100644 (file)
@@ -2017,6 +2017,9 @@ msgstr "&Омогући подршку архиви"
 msgid "&Detect archive type from file signature"
 msgstr "Откриј врсту архиве из заглавља датотеке"
 
+msgid "Items saved to or restored from the project file:"
+msgstr ""
+
 #, c-format
 msgid "Compare Statistics"
 msgstr "Упоредна статистика"
@@ -2532,6 +2535,9 @@ msgstr ""
 msgid "Folder Compare"
 msgstr ""
 
+msgid "Project"
+msgstr ""
+
 #, c-format
 msgid "Differences"
 msgstr "Разлике"
@@ -2636,6 +2642,21 @@ msgstr ""
 msgid "Answer"
 msgstr ""
 
+msgid "Item"
+msgstr ""
+
+msgid "Load"
+msgstr ""
+
+msgid "Save"
+msgstr ""
+
+msgid "Include Subfolders"
+msgstr ""
+
+msgid "Compare Options"
+msgstr ""
+
 #, c-format
 msgid "Name"
 msgstr "Име"
index c021bb8..78cded6 100644 (file)
@@ -2029,6 +2029,9 @@ msgstr "&Enable archive file support"
 msgid "&Detect archive type from file signature"
 msgstr "ගොනුවේ ලාංජනය අනුව ලේබණයේ වර්ගය හදුනාගන්න"
 
+msgid "Items saved to or restored from the project file:"
+msgstr ""
+
 #, c-format
 msgid "Compare Statistics"
 msgstr "සංඛ්‍යාලේබණ සසඳන්න"
@@ -2544,6 +2547,9 @@ msgstr ""
 msgid "Folder Compare"
 msgstr ""
 
+msgid "Project"
+msgstr ""
+
 #, c-format
 msgid "Differences"
 msgstr "වෙනස්කම්"
@@ -2648,6 +2654,21 @@ msgstr ""
 msgid "Answer"
 msgstr ""
 
+msgid "Item"
+msgstr ""
+
+msgid "Load"
+msgstr ""
+
+msgid "Save"
+msgstr ""
+
+msgid "Include Subfolders"
+msgstr ""
+
+msgid "Compare Options"
+msgstr ""
+
 #, c-format
 msgid "Name"
 msgstr "නම"
index 7db9737..5d9bedf 100644 (file)
@@ -1627,6 +1627,9 @@ msgstr "&Zapnúť podporu archívov"
 msgid "&Detect archive type from file signature"
 msgstr "&Detekovať typ archívu z hlavičky súboru"
 
+msgid "Items saved to or restored from the project file:"
+msgstr ""
+
 msgid "Compare Statistics"
 msgstr "Štatistika porovnania"
 
@@ -2076,6 +2079,9 @@ msgstr "Farebné schémy"
 msgid "Folder Compare"
 msgstr "Porovnávanie priečinkov"
 
+msgid "Project"
+msgstr ""
+
 msgid "Differences"
 msgstr "Rozdiely"
 
@@ -2167,6 +2173,21 @@ msgstr ""
 msgid "Answer"
 msgstr ""
 
+msgid "Item"
+msgstr ""
+
+msgid "Load"
+msgstr ""
+
+msgid "Save"
+msgstr ""
+
+msgid "Include Subfolders"
+msgstr ""
+
+msgid "Compare Options"
+msgstr ""
+
 msgid "Name"
 msgstr "Názov"
 
index 038e185..339ee29 100644 (file)
@@ -2036,6 +2036,9 @@ msgstr "Omogoči podporo &arhivskih datotek"
 msgid "&Detect archive type from file signature"
 msgstr "Zaznaj vrs&to arhiva iz podpisa datoteke"
 
+msgid "Items saved to or restored from the project file:"
+msgstr ""
+
 #, c-format
 msgid "Compare Statistics"
 msgstr "Statistika primerjave"
@@ -2575,6 +2578,9 @@ msgstr "Barvne sheme"
 msgid "Folder Compare"
 msgstr "Primerjava map"
 
+msgid "Project"
+msgstr ""
+
 #, c-format
 msgid "Differences"
 msgstr "Razlike"
@@ -2679,6 +2685,21 @@ msgstr "Sporočilo"
 msgid "Answer"
 msgstr "Odgovor"
 
+msgid "Item"
+msgstr ""
+
+msgid "Load"
+msgstr ""
+
+msgid "Save"
+msgstr ""
+
+msgid "Include Subfolders"
+msgstr ""
+
+msgid "Compare Options"
+msgstr ""
+
 #, c-format
 msgid "Name"
 msgstr "Ime"
index 4b3c4d5..30e90b4 100644 (file)
@@ -1626,6 +1626,9 @@ msgstr "Habilitar soport&e de archivos"
 msgid "&Detect archive type from file signature"
 msgstr "&Detectar tipo de archivo por su firma"
 
+msgid "Items saved to or restored from the project file:"
+msgstr ""
+
 msgid "Compare Statistics"
 msgstr "Estadísticas de comparación"
 
@@ -2072,6 +2075,9 @@ msgstr ""
 msgid "Folder Compare"
 msgstr "Comparar de carpetas"
 
+msgid "Project"
+msgstr ""
+
 msgid "Differences"
 msgstr "Diferencias"
 
@@ -2165,6 +2171,21 @@ msgstr ""
 msgid "Answer"
 msgstr ""
 
+msgid "Item"
+msgstr ""
+
+msgid "Load"
+msgstr ""
+
+msgid "Save"
+msgstr ""
+
+msgid "Include Subfolders"
+msgstr ""
+
+msgid "Compare Options"
+msgstr ""
+
 msgid "Name"
 msgstr "Nombre"
 
index 4f221be..90c8212 100644 (file)
@@ -2042,6 +2042,9 @@ msgstr "Möjliggör Arkivfilstöd"
 msgid "&Detect archive type from file signature"
 msgstr "Urskilj arkivtyp från filsignatur"
 
+msgid "Items saved to or restored from the project file:"
+msgstr ""
+
 #, c-format
 msgid "Compare Statistics"
 msgstr "JämförelseStatistik"
@@ -2575,6 +2578,9 @@ msgstr "Färgschema"
 msgid "Folder Compare"
 msgstr "MappJämförelse"
 
+msgid "Project"
+msgstr ""
+
 #, c-format
 msgid "Differences"
 msgstr "Skillnader"
@@ -2678,6 +2684,21 @@ msgstr ""
 msgid "Answer"
 msgstr ""
 
+msgid "Item"
+msgstr ""
+
+msgid "Load"
+msgstr ""
+
+msgid "Save"
+msgstr ""
+
+msgid "Include Subfolders"
+msgstr ""
+
+msgid "Compare Options"
+msgstr ""
+
 #, c-format
 msgid "Name"
 msgstr "Namn"
index ffd6a39..5d32898 100644 (file)
@@ -1630,6 +1630,9 @@ msgstr "&Sıkıştırılmış dosya desteği kullanılsın"
 msgid "&Detect archive type from file signature"
 msgstr "&Arşiv türü dosya imzasından belirlensin"
 
+msgid "Items saved to or restored from the project file:"
+msgstr ""
+
 msgid "Compare Statistics"
 msgstr "Karşılaştırma istatistikleri"
 
@@ -2084,6 +2087,9 @@ msgstr "Renk temaları"
 msgid "Folder Compare"
 msgstr "Klasör karşılaştırma"
 
+msgid "Project"
+msgstr ""
+
 msgid "Differences"
 msgstr "Farklar"
 
@@ -2175,6 +2181,21 @@ msgstr "İleti"
 msgid "Answer"
 msgstr "Yanıt"
 
+msgid "Item"
+msgstr ""
+
+msgid "Load"
+msgstr ""
+
+msgid "Save"
+msgstr ""
+
+msgid "Include Subfolders"
+msgstr ""
+
+msgid "Compare Options"
+msgstr ""
+
 msgid "Name"
 msgstr "Ad"
 
index 8b80b35..4e95551 100644 (file)
@@ -2035,6 +2035,9 @@ msgstr "&Ввімкнути підтримку архівів"
 msgid "&Detect archive type from file signature"
 msgstr "&Визначати тип архіву за сигнатурою або заголовком файлу"
 
+msgid "Items saved to or restored from the project file:"
+msgstr ""
+
 #, c-format
 msgid "Compare Statistics"
 msgstr "Порівняння статистики"
@@ -2550,6 +2553,9 @@ msgstr ""
 msgid "Folder Compare"
 msgstr ""
 
+msgid "Project"
+msgstr ""
+
 #, c-format
 msgid "Differences"
 msgstr "Відмінності"
@@ -2654,6 +2660,21 @@ msgstr ""
 msgid "Answer"
 msgstr ""
 
+msgid "Item"
+msgstr ""
+
+msgid "Load"
+msgstr ""
+
+msgid "Save"
+msgstr ""
+
+msgid "Include Subfolders"
+msgstr ""
+
+msgid "Compare Options"
+msgstr ""
+
 #, c-format
 msgid "Name"
 msgstr "Ім'я"