#ifndef TEXTDIALOG_H
#define TEXTDIALOG_H

#include "dialogbase.h"

class QTextEdit;
class QFileSystemWatcher;
class QSocketNotifier;
class QFile;

/*
  --textbox     <file> <height> <width>
  --editbox     <file> <height> <width>
  --tailbox     <file> <height> <width>
  --logbox      <file> <height> <width>
*/
class TextDialog : public DialogBase
{
    Q_OBJECT
public:
    enum Mode { View = 0, Edit, Log, Tail };
    TextDialog();

    static DialogBase *createWidget( Mode mode, const QString &inputFile );

protected:
    void slotInputAccepted();

private slots:
    void fileChanged( const QString & path );
    void gotStdInput( );

private:
    void setupFile( Mode mode, QFile *input );
    void setupStdInput( Mode mode );

    QTextEdit *m_input;
    Mode m_mode;
    QFileSystemWatcher *m_fswatcher;
    QSocketNotifier *m_inputNotifier;
    QString m_fileName;
    qint64 m_offset;
};

#endif // TEXTDIALOG_H

