diff options
author | Petr Mrázek <peterix@gmail.com> | 2016-08-18 21:31:37 +0200 |
---|---|---|
committer | Petr Mrázek <peterix@gmail.com> | 2016-08-19 08:05:43 +0200 |
commit | 67eca08b2260f19ff296c0b6cb73eb3b0479e4b2 (patch) | |
tree | 96027e6397b24ee87d8d116448387c959a7e197b /application/widgets/LogView.h | |
parent | 9aff21c1810f366f599fc5d35dfd3d7bc216f759 (diff) | |
download | MultiMC-67eca08b2260f19ff296c0b6cb73eb3b0479e4b2.tar MultiMC-67eca08b2260f19ff296c0b6cb73eb3b0479e4b2.tar.gz MultiMC-67eca08b2260f19ff296c0b6cb73eb3b0479e4b2.tar.lz MultiMC-67eca08b2260f19ff296c0b6cb73eb3b0479e4b2.tar.xz MultiMC-67eca08b2260f19ff296c0b6cb73eb3b0479e4b2.zip |
NOISSUE use model/view for Minecraft log data
Diffstat (limited to 'application/widgets/LogView.h')
-rw-r--r-- | application/widgets/LogView.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/application/widgets/LogView.h b/application/widgets/LogView.h new file mode 100644 index 00000000..bb6747cd --- /dev/null +++ b/application/widgets/LogView.h @@ -0,0 +1,36 @@ +#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; +}; |