37 lines
1018 B
C
37 lines
1018 B
C
|
#pragma once
|
||
|
#include <QPlainTextEdit>
|
||
|
#include <QAbstractItemView>
|
||
|
|
||
|
class QAbstractItemModel;
|
||
|
|
||
|
class LogView: public QPlainTextEdit
|
||
|
{
|
||
|
Q_OBJECT
|
||
|
public:
|
||
|
explicit LogView(QWidget *parent = nullptr);
|
||
|
virtual ~LogView();
|
||
|
|
||
|
virtual void setModel(QAbstractItemModel *model);
|
||
|
QAbstractItemModel *model() const;
|
||
|
|
||
|
public slots:
|
||
|
void setWordWrap(bool wrapping);
|
||
|
void findNext(const QString & what, bool reverse);
|
||
|
void scrollToBottom();
|
||
|
|
||
|
protected slots:
|
||
|
void repopulate();
|
||
|
// note: this supports only appending
|
||
|
void rowsInserted(const QModelIndex &parent, int first, int last);
|
||
|
void rowsAboutToBeInserted(const QModelIndex &parent, int first, int last);
|
||
|
// note: this supports only removing from front
|
||
|
void rowsRemoved(const QModelIndex &parent, int first, int last);
|
||
|
void modelDestroyed(QObject * model);
|
||
|
|
||
|
protected:
|
||
|
QAbstractItemModel *m_model = nullptr;
|
||
|
QTextCharFormat *m_defaultFormat = nullptr;
|
||
|
bool m_scroll = false;
|
||
|
bool m_scrolling = false;
|
||
|
};
|