You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
177 lines
5.9 KiB
177 lines
5.9 KiB
/***************************************************************************
|
|
configurationclasses.h - description
|
|
-------------------
|
|
begin : Sat Apr 17 2004
|
|
copyright : (C) 2004 Emiliano Gulmini
|
|
email : <emi_barbarossa@yahoo.it>
|
|
***************************************************************************/
|
|
|
|
/***************************************************************************
|
|
* *
|
|
* This program is free software; you can redistribute it and/or modify *
|
|
* it under the terms of the GNU General Public License as published by *
|
|
* the Free Software Foundation; either version 2 of the License, or *
|
|
* (at your option) any later version. *
|
|
* *
|
|
***************************************************************************/
|
|
#ifndef CONFIGURATIONCLASSES_H
|
|
#define CONFIGURATIONCLASSES_H
|
|
|
|
// QT
|
|
#include <tqstring.h>
|
|
#include <tqstringlist.h>
|
|
#include <tqdatetime.h>
|
|
#include <tqmap.h>
|
|
#include <tqregexp.h>
|
|
|
|
typedef TQMap<TQString,TQString> KeyValueMap;
|
|
// entry strings in the tdefilereplacerc file
|
|
const TQString rcSearchStringsList = "Search strings list";
|
|
const TQString rcReplaceStringsList = "Replace strings list";
|
|
const TQString rcDirectoriesList = "Directories list";
|
|
const TQString rcFiltersList = "Filters list";
|
|
const TQString rcRecentFiles = "Recent files";
|
|
const TQString rcAllStringsMustBeFound = "All strings must be found";
|
|
const TQString rcEncoding = "Encoding";
|
|
const TQString rcCaseSensitive = "Case sensitive";
|
|
const TQString rcConfirmStrings = "Confirm strings";
|
|
const TQString rcConfirmFiles = "Confirm files";
|
|
const TQString rcConfirmDirs = "Confirm directories";
|
|
const TQString rcFollowSymLinks = "Follow symbolic links";
|
|
const TQString rcHaltOnFirstOccur = "Halt on first occurrence";
|
|
const TQString rcIgnoreHidden = "Ignore hidden files";
|
|
const TQString rcRecursive = "Search/replace in sub folders";
|
|
const TQString rcLimitDepth = "Limit search to sub folder level";
|
|
const TQString rcMaxDepth = "Max depth level value";
|
|
const TQString rcVariables = "Enable variables";
|
|
const TQString rcRegularExpressions = "Enable regular expressions";
|
|
const TQString rcMinFileSize = "Minimum file size";
|
|
const TQString rcMaxFileSize = "Maximum file size";
|
|
const TQString rcValidAccessDate = "Access mode";
|
|
const TQString rcMinDate = "Minimum access date";
|
|
const TQString rcMaxDate = "Maximum access date";
|
|
const TQString rcOwnerUser = "Owner user filters";
|
|
const TQString rcOwnerGroup = "Owner group filters";
|
|
const TQString rcSearchMode = "Search only mode";
|
|
const TQString rcBackupExtension = "Backup file extension";
|
|
const TQString rcIgnoreFiles = "Ignore files if there is no match";
|
|
const TQString rcNotifyOnErrors = "NotifyOnErrors";
|
|
const TQString rcAskConfirmReplace = "Ask confirmation on replace";
|
|
const TQString rcDontAskAgain = "Dont ask again";
|
|
// Default configuration options
|
|
const TQString EncodingOption = "utf8";
|
|
const bool RecursiveOption = true;
|
|
const bool CaseSensitiveOption = false;
|
|
const bool FollowSymbolicLinksOption = false;
|
|
const bool RegularExpressionsOption = false;
|
|
const bool VariablesOption = false;
|
|
const bool StopWhenFirstOccurenceOption = false;
|
|
const bool IgnoreHiddenOption = false;
|
|
const bool LimitDepthOption = false;
|
|
const int MaxDepthOption = 0;
|
|
const int FileSizeOption = -1;
|
|
const TQString AccessDateOption="unknown";
|
|
const TQString ValidAccessDateOption="unknown";
|
|
const TQString OwnerOption="false,Name,Equals To";
|
|
const bool SearchModeOption=true;
|
|
const TQString BackupExtensionOption="false,~";
|
|
const bool IgnoreFilesOption = true;
|
|
const bool NotifyOnErrorsOption = false;
|
|
const bool AskConfirmReplaceOption = false;
|
|
|
|
// This class store configuration informations
|
|
class RCOptions
|
|
{
|
|
public:
|
|
bool m_callResetActions;
|
|
|
|
bool m_askConfirmReplace,
|
|
m_dontAskAgain;
|
|
|
|
TQStringList m_searchStrings;
|
|
TQStringList m_replaceStrings;
|
|
TQStringList m_directories;
|
|
TQStringList m_filters;
|
|
TQString m_currentDirectory;
|
|
|
|
int m_minSize,
|
|
m_maxSize;
|
|
|
|
bool m_limitDepth;
|
|
int m_maxDepth;
|
|
|
|
TQString m_dateAccess,
|
|
m_minDate,
|
|
m_maxDate;
|
|
|
|
TQString m_encoding;
|
|
|
|
bool m_caseSensitive,
|
|
m_recursive,
|
|
m_followSymLinks,
|
|
m_allStringsMustBeFound,
|
|
m_backup,
|
|
m_regularExpressions;
|
|
|
|
bool m_variables,
|
|
m_haltOnFirstOccur,
|
|
m_ignoreHidden,
|
|
m_simulation,
|
|
m_searchingOnlyMode;
|
|
|
|
bool m_ownerUserIsChecked,
|
|
m_ownerGroupIsChecked;
|
|
|
|
TQString m_ownerUserType,
|
|
m_ownerGroupType,
|
|
m_ownerUserValue,
|
|
m_ownerGroupValue,
|
|
m_ownerUserBool,
|
|
m_ownerGroupBool;
|
|
|
|
TQString m_backupExtension;
|
|
|
|
bool m_ignoreFiles;
|
|
|
|
KeyValueMap m_mapStringsView;
|
|
|
|
TQString m_quickSearchString,
|
|
m_quickReplaceString;
|
|
|
|
TQStringList m_recentStringFileList;
|
|
|
|
bool m_notifyOnErrors;
|
|
|
|
public:
|
|
RCOptions();
|
|
RCOptions& operator=(const RCOptions& ci);
|
|
};
|
|
|
|
class ResultViewEntry
|
|
{
|
|
private:
|
|
TQString m_key;
|
|
TQString m_data;
|
|
TQRegExp m_rxKey;
|
|
bool m_regexp;
|
|
bool m_caseSensitive;
|
|
int m_pos;
|
|
int m_matchedStringsOccurrence;
|
|
|
|
public:
|
|
ResultViewEntry(TQString nkey, TQString ndata, bool regexp, bool caseSensitive);
|
|
int lineNumber(const TQString& line) const ;
|
|
int columnNumber(const TQString& line) const ;
|
|
void incOccurrences();
|
|
int occurrences() const ;
|
|
bool regexp()const ;
|
|
int pos(const TQString& line) ;
|
|
void incPos();
|
|
TQString capturedText(const TQString& line) ;
|
|
TQString message(const TQString& capturedText, int x, int y) const;
|
|
int keyLength() const;
|
|
int dataLength() const;
|
|
void updateLine(TQString& line);
|
|
};
|
|
#endif
|