File indexing completed on 2024-05-12 13:50:13
0001 /* 0002 SPDX-FileCopyrightText: 2001-2003 Otto Bruggeman <otto.bruggeman@home.nl> 0003 SPDX-FileCopyrightText: 2001-2003 John Firebaugh <jfirebaugh@kde.org> 0004 SPDX-FileCopyrightText: 2008 Kevin Kofler <kevin.kofler@chello.at> 0005 0006 SPDX-License-Identifier: GPL-2.0-or-later 0007 */ 0008 0009 #ifndef KOMPAREPROCESS_H 0010 #define KOMPAREPROCESS_H 0011 0012 #include <KProcess> 0013 0014 #include "kompare.h" 0015 0016 class QTextDecoder; 0017 class QTextCodec; 0018 0019 class DiffSettings; 0020 0021 class KompareProcess : public KProcess 0022 { 0023 Q_OBJECT 0024 0025 public: 0026 KompareProcess(DiffSettings* diffSettings, enum Kompare::DiffMode mode, const QString& source, 0027 const QString& destination, const QString& directory = QString(), enum Kompare::Mode = Kompare::UnknownMode); 0028 ~KompareProcess() override; 0029 0030 void start(); 0031 0032 QString diffOutput() { return m_stdout; } 0033 QString stdOut() { return m_stdout; } 0034 QString stdErr() { return m_stderr; } 0035 0036 void setEncoding(const QString& encoding); 0037 0038 Q_SIGNALS: 0039 void diffHasFinished(bool finishedNormally); 0040 0041 protected: 0042 void writeDefaultCommandLine(); 0043 void writeCommandLine(); 0044 0045 protected Q_SLOTS: 0046 void slotFinished(int, QProcess::ExitStatus); 0047 0048 private: 0049 DiffSettings* m_diffSettings; 0050 const Kompare::DiffMode m_diffMode; 0051 const Kompare::Mode m_mode; 0052 QString m_customString; // Used when a comparison between a file and a string is requested 0053 QString m_stdout; 0054 QString m_stderr; 0055 QTextDecoder* m_textDecoder; 0056 QTextCodec* m_codec; 0057 }; 0058 0059 #endif