lyx_mirror/src/Compare.h
Pavel Sanda 154319d063 Remove some header leftovers based on Scott's script hints.
False positive rate of hints is quite high. Although the includes can be
technically removed (due to other includes) they logically belong to the
header.
2013-05-02 00:30:16 -07:00

121 lines
2.3 KiB
C++

// -*- C++ -*-
/**
* \file Compare.h
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
* \author Vincent van Ravesteijn
*
* Full author contact details are available in file CREDITS.
*/
#ifndef COMPARE_H
#define COMPARE_H
#include "Buffer.h"
#include "support/FileName.h"
#include <QObject>
#include <QThread>
#include <QTimer>
#include <QWaitCondition>
namespace lyx {
/**
* The options that are used by the Comparison algorithm
* and are set in the GuiCompare Dialog.
*/
class CompareOptions {
public:
///
CompareOptions()
: settings_from_new(0)
{}
/// Copy the settings from the new or old document
bool settings_from_new;
};
/**
* A threaded object that does the Comparison between two documents
* and creates a new document with the differences marked with track
* changes.
*/
class Compare : public QThread
{
Q_OBJECT
public:
///
Compare(Buffer const * const old_buf, Buffer const * const new_buf,
Buffer * const dest_buf, CompareOptions const & options);
///
~Compare() {
abort();
}
Q_SIGNALS:
/// The thread has finished due to an error.
void error() const;
/// The thread has finished. If the thread is cancelled
/// by the user \c aborted is true.
void finished(bool aborted) const;
/// Adds \c progress to the value of the progress bar in the dialog
void progress(int progress) const ;
/// Sets the maximum value of the progress bar in the dialog.
void progressMax(int max) const;
/// A message describing the process
void statusMessage(QString msg) const;
public Q_SLOTS:
/// Emits the status message signal
void doStatusMessage();
public:
/// \name QThread inherited methods
//@{
void run();
//@}
/// Aborts the thread
void abort();
private:
/// Starts the comparison algorithm
int doCompare();
/// The new document's buffer
Buffer const * const new_buffer;
/// The old document's buffer
Buffer const * const old_buffer;
/// The buffer with the differences marked with track changes
Buffer * const dest_buffer;
/// The options that are set in the GuiCompare dialog
CompareOptions options_;
///
QWaitCondition condition_;
/// Emit a statusMessage signal from time to time
QTimer status_timer_;
/// Use the Pimpl idiom to hide the internals.
class Impl;
///
Impl * pimpl_;
};
} // namespace lyx
#endif