File indexing completed on 2024-04-28 17:01:40

0001 /*
0002 SPDX-FileCopyrightText: 2001-2004 Otto Bruggeman <otto.bruggeman@home.nl>
0003 SPDX-FileCopyrightText: 2007 Kevin Kofler <kevin.kofler@chello.at>
0004 
0005 SPDX-License-Identifier: GPL-2.0-or-later
0006 */
0007 
0008 #include "diffsettings.h"
0009 
0010 #include <KConfig>
0011 #include <KConfigGroup>
0012 
0013 #include <QWidget>
0014 
0015 DiffSettings::DiffSettings(QWidget* parent)
0016     : SettingsBase(parent),
0017       m_linesOfContext(0),
0018       m_format(Kompare::Unified),
0019       m_largeFiles(false),
0020       m_ignoreWhiteSpace(false),
0021       m_ignoreAllWhiteSpace(false),
0022       m_ignoreEmptyLines(false),
0023       m_ignoreChangesDueToTabExpansion(false),
0024       m_createSmallerDiff(false),
0025       m_ignoreChangesInCase(false),
0026       m_showCFunctionChange(false),
0027       m_convertTabsToSpaces(false),
0028       m_ignoreRegExp(false),
0029       m_recursive(false),
0030       m_newFiles(false),
0031       m_excludeFilePattern(false),
0032       m_excludeFilesFile(false)
0033 {
0034 }
0035 
0036 DiffSettings::~DiffSettings()
0037 {
0038 }
0039 
0040 void DiffSettings::loadSettings(KConfig* config)
0041 {
0042     KConfigGroup group(config, QStringLiteral("Diff Options"));
0043     m_diffProgram                    = group.readEntry("DiffProgram", QString());
0044     m_linesOfContext                 = group.readEntry("LinesOfContext", 3);
0045     m_largeFiles                     = group.readEntry("LargeFiles", true);
0046     m_ignoreWhiteSpace               = group.readEntry("IgnoreWhiteSpace", false);
0047     m_ignoreAllWhiteSpace            = group.readEntry("IgnoreAllWhiteSpace", false);
0048     m_ignoreEmptyLines               = group.readEntry("IgnoreEmptyLines", false);
0049     m_ignoreChangesDueToTabExpansion = group.readEntry("IgnoreChangesDueToTabExpansion", false);
0050     m_ignoreChangesInCase            = group.readEntry("IgnoreChangesInCase", false);
0051     m_ignoreRegExp                   = group.readEntry("IgnoreRegExp", false);
0052     m_ignoreRegExpText               = group.readEntry("IgnoreRegExpText", QString());
0053     m_ignoreRegExpTextHistory        = group.readEntry("IgnoreRegExpTextHistory", QStringList());
0054     m_createSmallerDiff              = group.readEntry("CreateSmallerDiff", true);
0055     m_convertTabsToSpaces            = group.readEntry("ConvertTabsToSpaces", false);
0056     m_showCFunctionChange            = group.readEntry("ShowCFunctionChange", false);
0057     m_recursive                      = group.readEntry("CompareRecursively", true);
0058     m_newFiles                       = group.readEntry("NewFiles", true);
0059 
0060     m_format = static_cast<Kompare::Format>(group.readEntry("Format", (int) Kompare::Unified));
0061 
0062     KConfigGroup group2(config, QStringLiteral("Exclude File Options"));
0063     m_excludeFilePattern             = group2.readEntry("Pattern", false);
0064     m_excludeFilePatternList         = group2.readEntry("PatternList", QStringList());
0065     m_excludeFilesFile               = group2.readEntry("File", false);
0066     m_excludeFilesFileURL            = group2.readEntry("FileURL", QString());
0067     m_excludeFilesFileHistoryList    = group2.readEntry("FileHistoryList", QStringList());
0068 }
0069 
0070 void DiffSettings::saveSettings(KConfig* config)
0071 {
0072     KConfigGroup group(config, QStringLiteral("Diff Options"));
0073     group.writeEntry("DiffProgram",                    m_diffProgram);
0074     group.writeEntry("LinesOfContext",                 m_linesOfContext);
0075     group.writeEntry("Format",                         (int)m_format);
0076     group.writeEntry("LargeFiles",                     m_largeFiles);
0077     group.writeEntry("IgnoreWhiteSpace",               m_ignoreWhiteSpace);
0078     group.writeEntry("IgnoreAllWhiteSpace",            m_ignoreAllWhiteSpace);
0079     group.writeEntry("IgnoreEmptyLines",               m_ignoreEmptyLines);
0080     group.writeEntry("IgnoreChangesInCase",            m_ignoreChangesInCase);
0081     group.writeEntry("IgnoreChangesDueToTabExpansion", m_ignoreChangesDueToTabExpansion);
0082     group.writeEntry("IgnoreRegExp",                   m_ignoreRegExp);
0083     group.writeEntry("IgnoreRegExpText",               m_ignoreRegExpText);
0084     group.writeEntry("IgnoreRegExpTextHistory",        m_ignoreRegExpTextHistory);
0085     group.writeEntry("CreateSmallerDiff",              m_createSmallerDiff);
0086     group.writeEntry("ConvertTabsToSpaces",            m_convertTabsToSpaces);
0087     group.writeEntry("ShowCFunctionChange",            m_showCFunctionChange);
0088     group.writeEntry("CompareRecursively",             m_recursive);
0089     group.writeEntry("NewFiles",                       m_newFiles);
0090 
0091     KConfigGroup group2(config, QStringLiteral("Exclude File Options"));
0092     group2.writeEntry("Pattern",            m_excludeFilePattern);
0093     group2.writeEntry("PatternList",        m_excludeFilePatternList);
0094     group2.writeEntry("File",               m_excludeFilesFile);
0095     group2.writeEntry("FileURL",            m_excludeFilesFileURL);
0096     group2.writeEntry("FileHistoryList",    m_excludeFilesFileHistoryList);
0097 
0098     config->sync();
0099 }
0100 
0101 #include "moc_diffsettings.cpp"