, m_pageCodepage(regOptions)
, m_pageEditor(regOptions)
, m_pageEditorSyntax(regOptions)
+, m_pageProject(regOptions)
, m_pageSystem(regOptions)
, m_pageBackups(regOptions)
, m_pageShell(regOptions)
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);
m_pageEditorSyntax.ReadOptions();
m_pageCodepage.ReadOptions();
m_pageArchive.ReadOptions();
+ m_pageProject.ReadOptions();
m_pageBackups.ReadOptions();
m_pageShell.ReadOptions();
SafeUpdatePage(&m_pageEditorSyntax, false);
SafeUpdatePage(&m_pageCodepage, false);
SafeUpdatePage(&m_pageArchive, false);
+ SafeUpdatePage(&m_pageProject, false);
SafeUpdatePage(&m_pageBackups, false);
SafeUpdatePage(&m_pageShell, false);
}
m_pageDirColors.WriteOptions();
m_pageCodepage.WriteOptions();
m_pageArchive.WriteOptions();
+ m_pageProject.WriteOptions();
m_pageBackups.WriteOptions();
m_pageShell.WriteOptions();
}
#include "PropDirColors.h"
#include "PropCodepage.h"
#include "PropArchive.h"
+#include "PropProject.h"
#include "PropBackups.h"
#include "PropShell.h"
#include "PropCompareFolder.h"
PropMarkerColors m_pageMarkerColors;
PropDirColors m_pageDirColors;
PropArchive m_pageArchive;
+ PropProject m_pageProject;
PropBackups m_pageBackups;
PropShell m_pageShell;
PropCompareFolder m_pageCompareFolder;
#include "CompareStats.h"
#include "TestMain.h"
#include "charsets.h" // For shutdown cleanup
+#include "OptionsProject.h"
#ifdef _DEBUG
#define new DEBUG_NEW
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]))
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()));
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());
"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
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
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
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
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
<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
<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
#include "BCMenu.h"
#include "LanguageSelect.h"
#include "Win_VersionHelper.h"
+#include "OptionsProject.h"
#ifdef _DEBUG
#define new DEBUG_NEW
*/
void COpenView::OnLoadProject()
{
+ UpdateData(TRUE);
+
String fileName = AskProjectFileName(true);
if (fileName.empty())
return;
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];
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();
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())
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] ");
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);
#include "OptionsDirColors.h"
#include "OptionsEditorSyntax.h"
#include "OptionsFont.h"
+#include "OptionsProject.h"
#include "DiffWrapper.h" // CMP_CONTENT
#include "paths.h"
#include "Environment.h"
Options::DirColors::Init(pOptions);
Options::EditorSyntax::Init(pOptions);
Options::Font::Init(pOptions);
+ Options::Project::Init(pOptions);
}
/**
--- /dev/null
+#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
--- /dev/null
+#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);
+}}
, 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)
{
}
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);
}
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? */
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? */
};
/**
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;
+}
--- /dev/null
+/**
+ * @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());
+ }
+}
--- /dev/null
+/**
+ * @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()
+};
#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
msgid "&Detect archive type from file signature"
msgstr "الت&حقق مكن نوع الإرشيف عبر فحص التوقيع"
+msgid "Items saved to or restored from the project file:"
+msgstr ""
+
msgid "Compare Statistics"
msgstr "إحصائيات المقارنة"
msgid "Folder Compare"
msgstr "مقارنة المجلد"
+msgid "Project"
+msgstr ""
+
msgid "Differences"
msgstr "الاختلافات"
msgid "Answer"
msgstr ""
+msgid "Item"
+msgstr ""
+
+msgid "Load"
+msgstr ""
+
+msgid "Save"
+msgstr ""
+
+msgid "Include Subfolders"
+msgstr ""
+
+msgid "Compare Options"
+msgstr ""
+
msgid "Name"
msgstr "الاسم"
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"
msgid "Folder Compare"
msgstr ""
+msgid "Project"
+msgstr ""
+
#, c-format
msgid "Differences"
msgstr "Ezberdintasunak"
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"
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"
msgid "Folder Compare"
msgstr "Comparar Pastas"
+msgid "Project"
+msgstr ""
+
msgid "Differences"
msgstr "Diferenças"
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"
msgid "&Detect archive type from file signature"
msgstr "Откриване на вида на &архива от подписа на файла"
+msgid "Items saved to or restored from the project file:"
+msgstr ""
+
msgid "Compare Statistics"
msgstr "Статистика на сравнението"
msgid "Folder Compare"
msgstr "Сравняване на папки"
+msgid "Project"
+msgstr ""
+
msgid "Differences"
msgstr "Различия"
msgid "Answer"
msgstr ""
+msgid "Item"
+msgstr ""
+
+msgid "Load"
+msgstr ""
+
+msgid "Save"
+msgstr ""
+
+msgid "Include Subfolders"
+msgstr ""
+
+msgid "Compare Options"
+msgstr ""
+
msgid "Name"
msgstr "Име"
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ó"
msgid "Folder Compare"
msgstr ""
+msgid "Project"
+msgstr ""
+
#, c-format
msgid "Differences"
msgstr "Diferències"
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"
msgid "&Detect archive type from file signature"
msgstr "根据文件头检测压缩文件类型(&D)"
+msgid "Items saved to or restored from the project file:"
+msgstr ""
+
msgid "Compare Statistics"
msgstr "比较结果统计"
msgid "Folder Compare"
msgstr "文件夹比较"
+msgid "Project"
+msgstr ""
+
msgid "Differences"
msgstr "差异"
msgid "Answer"
msgstr ""
+msgid "Item"
+msgstr ""
+
+msgid "Load"
+msgstr ""
+
+msgid "Save"
+msgstr ""
+
+msgid "Include Subfolders"
+msgstr ""
+
+msgid "Compare Options"
+msgstr ""
+
msgid "Name"
msgstr "名称"
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 "比較後的統計"
msgid "Folder Compare"
msgstr ""
+msgid "Project"
+msgstr ""
+
#, c-format
msgid "Differences"
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 "名稱"
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"
msgid "Folder Compare"
msgstr ""
+msgid "Project"
+msgstr ""
+
#, c-format
msgid "Differences"
msgstr "Razlike"
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"
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í"
msgid "Folder Compare"
msgstr ""
+msgid "Project"
+msgstr ""
+
#, c-format
msgid "Differences"
msgstr "Rozdíly"
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"
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"
msgid "Folder Compare"
msgstr ""
+msgid "Project"
+msgstr ""
+
#, c-format
msgid "Differences"
msgstr "Forskelle"
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"
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"
msgid "Folder Compare"
msgstr "Mapvergelijking"
+msgid "Project"
+msgstr ""
+
msgid "Differences"
msgstr "Verschillen"
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"
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"
msgid "&Detect archive type from file signature"
msgstr ""
+msgid "Items saved to or restored from the project file:"
+msgstr ""
+
msgid "Compare Statistics"
msgstr ""
msgid "Folder Compare"
msgstr ""
+msgid "Project"
+msgstr ""
+
msgid "Differences"
msgstr ""
msgid "Answer"
msgstr ""
+msgid "Item"
+msgstr ""
+
+msgid "Load"
+msgstr ""
+
+msgid "Save"
+msgstr ""
+
+msgid "Include Subfolders"
+msgstr ""
+
+msgid "Compare Options"
+msgstr ""
+
msgid "Name"
msgstr ""
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"
msgid "Folder Compare"
msgstr "Kansiovertailu"
+msgid "Project"
+msgstr ""
+
#, c-format
msgid "Differences"
msgstr "Erilaisuudet"
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"
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"
msgid "Folder Compare"
msgstr "Comparaison de dossiers"
+msgid "Project"
+msgstr ""
+
#, c-format
msgid "Differences"
msgstr "Différences"
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"
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"
msgid "Folder Compare"
msgstr "Comparar cartafoles"
+msgid "Project"
+msgstr ""
+
#, c-format
msgid "Differences"
msgstr "Diferenzas"
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"
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"
msgid "Folder Compare"
msgstr "Ordnervergleich"
+msgid "Project"
+msgstr ""
+
#, c-format
msgid "Differences"
msgstr "Unterschiede"
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"
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 "Στατιστικά Συγκρίσεων"
msgid "Folder Compare"
msgstr ""
+msgid "Project"
+msgstr ""
+
#, c-format
msgid "Differences"
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 "Όνομα"
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"
msgid "Folder Compare"
msgstr "Mappa összehasonlítás"
+msgid "Project"
+msgstr ""
+
#, c-format
msgid "Differences"
msgstr "Eltérések"
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"
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"
msgid "Folder Compare"
msgstr "Confronto cartelle"
+msgid "Project"
+msgstr ""
+
msgid "Differences"
msgstr "Differenze"
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"
msgid "&Detect archive type from file signature"
msgstr "ファイルのシグネチャからアーカイブ形式を検出する(&D)"
+msgid "Items saved to or restored from the project file:"
+msgstr "プロジェクトファイルに保存またはプロジェクトファイルから復元する項目:"
+
msgid "Compare Statistics"
msgstr "比較統計"
msgid "Folder Compare"
msgstr "フォルダー比較"
+msgid "Project"
+msgstr "プロジェクト"
+
msgid "Differences"
msgstr "差異"
msgid "Answer"
msgstr "回答"
+msgid "Item"
+msgstr "項目"
+
+msgid "Load"
+msgstr "読み込み"
+
+msgid "Save"
+msgstr "保存"
+
+msgid "Include Subfolders"
+msgstr "サブフォルダーを含める"
+
+msgid "Compare Options"
+msgstr "比較オプション"
+
msgid "Name"
msgstr "名前"
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 "통계 비교"
msgid "Folder Compare"
msgstr "폴더 비교"
+msgid "Project"
+msgstr ""
+
#, c-format
msgid "Differences"
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 "이름"
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"
msgid "Folder Compare"
msgstr "Katalogų lyginimo"
+msgid "Project"
+msgstr ""
+
msgid "Differences"
msgstr "Skirtumų"
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"
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"
msgid "Folder Compare"
msgstr ""
+msgid "Project"
+msgstr ""
+
#, c-format
msgid "Differences"
msgstr "Forskjeller"
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"
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 " آمار همسنجي / قياس "
msgid "Folder Compare"
msgstr ""
+msgid "Project"
+msgstr ""
+
#, c-format
msgid "Differences"
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 " نام "
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"
msgid "Folder Compare"
msgstr "Porównaj foldery"
+msgid "Project"
+msgstr ""
+
msgid "Differences"
msgstr "Różnice"
msgid "Answer"
msgstr ""
+msgid "Item"
+msgstr ""
+
+msgid "Load"
+msgstr ""
+
+msgid "Save"
+msgstr ""
+
+msgid "Include Subfolders"
+msgstr ""
+
+msgid "Compare Options"
+msgstr ""
+
msgid "Name"
msgstr "Nazwa"
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"
msgid "Folder Compare"
msgstr "Comparação de pastas"
+msgid "Project"
+msgstr ""
+
msgid "Differences"
msgstr "Diferenças"
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"
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"
msgid "Folder Compare"
msgstr ""
+msgid "Project"
+msgstr ""
+
#, c-format
msgid "Differences"
msgstr "Diferenţe"
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"
msgid "&Detect archive type from file signature"
msgstr "&Определять тип архива по сигнатуре/заголовку файла"
+msgid "Items saved to or restored from the project file:"
+msgstr ""
+
msgid "Compare Statistics"
msgstr "Статистика сравнения"
msgid "Folder Compare"
msgstr "Сравнение папок"
+msgid "Project"
+msgstr ""
+
msgid "Differences"
msgstr "Отличия"
msgid "Answer"
msgstr "Ответ"
+msgid "Item"
+msgstr ""
+
+msgid "Load"
+msgstr ""
+
+msgid "Save"
+msgstr ""
+
+msgid "Include Subfolders"
+msgstr ""
+
+msgid "Compare Options"
+msgstr ""
+
msgid "Name"
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 "Упоредна статистика"
msgid "Folder Compare"
msgstr ""
+msgid "Project"
+msgstr ""
+
#, c-format
msgid "Differences"
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 "Име"
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 "සංඛ්යාලේබණ සසඳන්න"
msgid "Folder Compare"
msgstr ""
+msgid "Project"
+msgstr ""
+
#, c-format
msgid "Differences"
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 "නම"
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"
msgid "Folder Compare"
msgstr "Porovnávanie priečinkov"
+msgid "Project"
+msgstr ""
+
msgid "Differences"
msgstr "Rozdiely"
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"
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"
msgid "Folder Compare"
msgstr "Primerjava map"
+msgid "Project"
+msgstr ""
+
#, c-format
msgid "Differences"
msgstr "Razlike"
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"
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"
msgid "Folder Compare"
msgstr "Comparar de carpetas"
+msgid "Project"
+msgstr ""
+
msgid "Differences"
msgstr "Diferencias"
msgid "Answer"
msgstr ""
+msgid "Item"
+msgstr ""
+
+msgid "Load"
+msgstr ""
+
+msgid "Save"
+msgstr ""
+
+msgid "Include Subfolders"
+msgstr ""
+
+msgid "Compare Options"
+msgstr ""
+
msgid "Name"
msgstr "Nombre"
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"
msgid "Folder Compare"
msgstr "MappJämförelse"
+msgid "Project"
+msgstr ""
+
#, c-format
msgid "Differences"
msgstr "Skillnader"
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"
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"
msgid "Folder Compare"
msgstr "Klasör karşılaştırma"
+msgid "Project"
+msgstr ""
+
msgid "Differences"
msgstr "Farklar"
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"
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 "Порівняння статистики"
msgid "Folder Compare"
msgstr ""
+msgid "Project"
+msgstr ""
+
#, c-format
msgid "Differences"
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 "Ім'я"