diff options
Diffstat (limited to 'lib/process_xml.h')
-rw-r--r-- | lib/process_xml.h | 298 |
1 files changed, 0 insertions, 298 deletions
diff --git a/lib/process_xml.h b/lib/process_xml.h deleted file mode 100644 index 4092c072..00000000 --- a/lib/process_xml.h +++ /dev/null @@ -1,298 +0,0 @@ -// ************************************************************************** -// * This file is part of the FreeFileSync project. It is distributed under * -// * GNU General Public License: http://www.gnu.org/licenses/gpl.html * -// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved * -// ************************************************************************** - -#ifndef PROCESSXML_H_INCLUDED -#define PROCESSXML_H_INCLUDED - -#include <wx/gdicmn.h> -#include "../structures.h" -#include "xml_base.h" -#include "localization.h" -#include "../ui/column_attr.h" -#include "../ui/folder_history_types.h" -//#include "ffs_paths.h" - -namespace xmlAccess -{ -enum XmlType -{ - XML_TYPE_GUI, - XML_TYPE_BATCH, - XML_TYPE_GLOBAL, - XML_TYPE_OTHER -}; - -XmlType getXmlType(const Zstring& filename); //throw() - - -enum OnError -{ - ON_ERROR_IGNORE, - ON_ERROR_POPUP, - ON_ERROR_STOP -}; - -enum OnGuiError -{ - ON_GUIERROR_POPUP, - ON_GUIERROR_IGNORE -}; - -typedef std::wstring Description; -typedef std::wstring Commandline; -typedef std::vector<std::pair<Description, Commandline>> ExternalApps; - -//--------------------------------------------------------------------- -struct XmlGuiConfig -{ - XmlGuiConfig() : - hideExcludedItems(false), - handleError(ON_GUIERROR_POPUP), - highlightSyncAction(true) {} //initialize values - - zen::MainConfiguration mainCfg; - - bool hideExcludedItems; - OnGuiError handleError; //reaction on error situation during synchronization - bool highlightSyncAction; -}; - - -inline -bool operator==(const XmlGuiConfig& lhs, const XmlGuiConfig& rhs) -{ - return lhs.mainCfg == rhs.mainCfg && - lhs.hideExcludedItems == rhs.hideExcludedItems && - lhs.handleError == rhs.handleError && - lhs.highlightSyncAction == rhs.highlightSyncAction; -} - - -struct XmlBatchConfig -{ - XmlBatchConfig() : - showProgress(true), - logfilesCountLimit(-1), - handleError(ON_ERROR_POPUP) {} - - zen::MainConfiguration mainCfg; - - bool showProgress; - Zstring logFileDirectory; - int logfilesCountLimit; //max logfiles; 0 := don't save logfiles; < 0 := no limit - OnError handleError; //reaction on error situation during synchronization -}; - - -struct OptionalDialogs -{ - OptionalDialogs() { resetDialogs();} - - void resetDialogs(); - - bool warningDependentFolders; - bool warningFolderPairRaceCondition; - bool warningSignificantDifference; - bool warningNotEnoughDiskSpace; - bool warningUnresolvedConflicts; - bool warningDatabaseError; - bool warningRecyclerMissing; - bool warningInputFieldEmpty; - bool warningDirectoryLockFailed; - bool popupOnConfigChange; - bool confirmSyncStart; - bool confirmExternalCommandMassInvoke; -}; - - -enum FileIconSize -{ - ICON_SIZE_SMALL, - ICON_SIZE_MEDIUM, - ICON_SIZE_LARGE -}; - - -struct ViewFilterDefault -{ - ViewFilterDefault() : equal(false) - { - leftOnly = rightOnly = leftNewer = rightNewer = different = conflict = true; - createLeft = createRight = updateLeft = updateRight = deleteLeft = deleteRight = doNothing = true; - } - bool equal; - bool leftOnly, rightOnly, leftNewer, rightNewer, different, conflict; //category view - bool createLeft, createRight, updateLeft, updateRight, deleteLeft, deleteRight, doNothing; //action view -}; - -Zstring getGlobalConfigFile(); - -struct XmlGlobalSettings -{ - //--------------------------------------------------------------------- - //Shared (GUI/BATCH) settings - XmlGlobalSettings() : - programLanguage(zen::retrieveSystemLanguage()), - failsafeFileCopy(true), - copyLockedFiles(true), - copyFilePermissions(false), - automaticRetryCount(0), - automaticRetryDelay(5), - fileTimeTolerance(2), //default 2s: FAT vs NTFS - runWithBackgroundPriority(false), - createLockFile(true), - verifyFileCopy(false), - lastSyncsLogFileSizeMax(100000) //maximum size for LastSyncs.log: use a human-readable number - {} - - int programLanguage; - bool failsafeFileCopy; - bool copyLockedFiles; - bool copyFilePermissions; - size_t automaticRetryCount; - size_t automaticRetryDelay; //unit: [sec] - - size_t fileTimeTolerance; //max. allowed file time deviation - bool runWithBackgroundPriority; - bool createLockFile; - bool verifyFileCopy; //verify copied files - size_t lastSyncsLogFileSizeMax; - - OptionalDialogs optDialogs; - - //--------------------------------------------------------------------- - struct Gui - { - Gui() : - dlgPos(wxDefaultCoord, wxDefaultCoord), - dlgSize(wxDefaultCoord, wxDefaultCoord), - isMaximized(false), - sashOffset(0), - maxFolderPairsVisible(6), - columnAttribNavi (zen::getDefaultColumnAttributesNavi()), - columnAttribLeft (zen::getDefaultColumnAttributesLeft()), - columnAttribRight(zen::getDefaultColumnAttributesRight()), - naviLastSortColumn(zen::defaultValueLastSortColumn), - naviLastSortAscending(zen::defaultValueLastSortAscending), - showPercentBar(zen::defaultValueShowPercentage), - cfgFileHistMax(30), - folderHistMax(15), - onCompletionHistoryMax(8), -#ifdef ZEN_WIN - defaultExclusionFilter(Zstr("\\System Volume Information\\") Zstr("\n") - Zstr("\\$Recycle.Bin\\") Zstr("\n") - Zstr("\\RECYCLER\\") Zstr("\n") - Zstr("\\RECYCLED\\") Zstr("\n") - Zstr("*\\desktop.ini") Zstr("\n") - Zstr("*\\thumbs.db")), -#elif defined ZEN_LINUX - defaultExclusionFilter(Zstr("/.Trash-*/") Zstr("\n") - Zstr("/.recycle/")), -#elif defined ZEN_MAC - defaultExclusionFilter(Zstr("/.fseventsd/") Zstr("\n") - Zstr("/.Spotlight-V100/") Zstr("\n") - Zstr("/.Trashes/") Zstr("\n") - Zstr("/._.Trashes") Zstr("\n") - Zstr("*/.DS_Store")), -#endif - //deleteOnBothSides(false), - useRecyclerForManualDeletion(true), //enable if OS supports it; else user will have to activate first and then get an error message -#if defined ZEN_WIN || defined ZEN_MAC - textSearchRespectCase(false), -#elif defined ZEN_LINUX - textSearchRespectCase(true), -#endif - showIcons(true), - iconSize(ICON_SIZE_SMALL), - lastUpdateCheck(0) - { - //default external apps will be translated "on the fly"!!! First entry will be used for [Enter] or mouse double-click! -#ifdef ZEN_WIN - externelApplications.push_back(std::make_pair(L"Show in Explorer", L"explorer /select, \"%item_path%\"")); - externelApplications.push_back(std::make_pair(L"Open with default application", L"\"%item_path%\"")); - //mark for extraction: _("Show in Explorer") - //mark for extraction: _("Open with default application") -#elif defined ZEN_LINUX - externelApplications.push_back(std::make_pair(L"Browse directory", L"xdg-open \"%item_folder%\"")); - externelApplications.push_back(std::make_pair(L"Open with default application", L"xdg-open \"%item_path%\"")); - //mark for extraction: _("Browse directory") Linux doesn't use the term "folder" -#elif defined ZEN_MAC - externelApplications.push_back(std::make_pair(L"Browse directory", L"open -R \"%item_path%\"")); - externelApplications.push_back(std::make_pair(L"Open with default application", L"open \"%item_path%\"")); -#endif - } - - wxPoint dlgPos; - wxSize dlgSize; - bool isMaximized; - int sashOffset; - - int maxFolderPairsVisible; - - std::vector<zen::ColumnAttributeNavi> columnAttribNavi; //compressed view/navigation - std::vector<zen::ColumnAttributeRim> columnAttribLeft; - std::vector<zen::ColumnAttributeRim> columnAttribRight; - - zen::ColumnTypeNavi naviLastSortColumn; //remember sort on navigation panel - bool naviLastSortAscending; // - - bool showPercentBar; //in navigation panel - - ExternalApps externelApplications; - - std::vector<zen::ConfigHistoryItem> cfgFileHistory; - size_t cfgFileHistMax; - - std::vector<Zstring> lastUsedConfigFiles; - - std::vector<Zstring> folderHistoryLeft; - std::vector<Zstring> folderHistoryRight; - size_t folderHistMax; - - std::vector<std::wstring> onCompletionHistory; - size_t onCompletionHistoryMax; - - Zstring defaultExclusionFilter; - - //bool deleteOnBothSides; - bool useRecyclerForManualDeletion; - bool textSearchRespectCase; - - bool showIcons; - FileIconSize iconSize; - - long lastUpdateCheck; //time of last update check - - ViewFilterDefault viewFilterDefault; - wxString guiPerspectiveLast; //used by wxAuiManager - } gui; - - //--------------------------------------------------------------------- - //struct Batch -}; - -//read/write specific config types -void readConfig(const Zstring& filename, XmlGuiConfig& config); // -void readConfig(const Zstring& filename, XmlBatchConfig& config); //throw FfsXmlError -void readConfig( XmlGlobalSettings& config); // - -void writeConfig(const XmlGuiConfig& config, const Zstring& filename); // -void writeConfig(const XmlBatchConfig& config, const Zstring& filename); //throw FfsXmlError -void writeConfig(const XmlGlobalSettings& config); // - -//convert (multiple) *.ffs_gui, *.ffs_batch files or combinations of both into target config structure: -void readAnyConfig(const std::vector<Zstring>& filenames, XmlGuiConfig& config); //throw FfsXmlError - -//config conversion utilities -XmlGuiConfig convertBatchToGui(const XmlBatchConfig& batchCfg); //noexcept -XmlBatchConfig convertGuiToBatch(const XmlGuiConfig& guiCfg ); // -XmlBatchConfig convertGuiToBatchPreservingExistingBatch(const xmlAccess::XmlGuiConfig& guiCfg, const Zstring& referenceBatchFile); //noexcept - -std::wstring extractJobName(const Zstring& configFilename); -} - - -#endif // PROCESSXML_H_INCLUDED |