From 8445e705f6fef3ba670b9f3cd66a28bc07cdf356 Mon Sep 17 00:00:00 2001 From: Andreas Stallinger Date: Mon, 31 Oct 2016 15:17:33 +0100 Subject: [PATCH] ui: errorview readonly cells no more editing the errors --- src/lib_gui/qt/view/QtErrorView.cpp | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/lib_gui/qt/view/QtErrorView.cpp b/src/lib_gui/qt/view/QtErrorView.cpp index 38788741..b9aa2eb7 100644 --- a/src/lib_gui/qt/view/QtErrorView.cpp +++ b/src/lib_gui/qt/view/QtErrorView.cpp @@ -5,9 +5,11 @@ #include #include #include +#include #include #include #include +#include #include "qt/utility/utilityQt.h" #include "qt/element/QtTable.h" @@ -19,6 +21,25 @@ #include "qt/view/QtViewWidgetWrapper.h" +class SelectableDelegate : public QStyledItemDelegate +{ + QWidget* createEditor(QWidget* parent, const QStyleOptionViewItem &option, const QModelIndex &index) const; +}; + +QWidget* SelectableDelegate::createEditor( + QWidget* parent, + const QStyleOptionViewItem &option, + const QModelIndex &index) const +{ + QWidget* editor = QStyledItemDelegate::createEditor(parent, option, index); + QLineEdit* lineEdit = dynamic_cast(editor); + if (lineEdit != nullptr) + { + lineEdit->setReadOnly(true); + } + return editor; +} + QtErrorView::QtErrorView(ViewLayout* viewLayout) : ErrorView(viewLayout) , m_clearFunctor(std::bind(&QtErrorView::doClear, this)) @@ -50,6 +71,7 @@ void QtErrorView::initView() m_table = new QtTable(this); m_model = new QStandardItemModel(this); m_table->setModel(m_model); + m_table->setItemDelegate(new SelectableDelegate()); // Setup Table Headers m_model->setColumnCount(6);