From 5211e32b82790b93e2f31a9df46ac4854b17a08d Mon Sep 17 00:00:00 2001 From: hjk Date: Wed, 27 Jul 2016 17:12:06 +0200 Subject: [PATCH] Debugger: Remove one use of TreeItem::setFlags One step towards the removal of the TreeItem::m_flags member that's unused in most instances. Change-Id: I0cdc3d1e8a47c3925fb54c129b724ded8721577b Reviewed-by: Christian Stenger --- src/plugins/debugger/console/consoleitem.cpp | 19 +++++++++++-------- src/plugins/debugger/console/consoleitem.h | 9 +++++---- .../debugger/console/consoleitemmodel.cpp | 3 --- 3 files changed, 16 insertions(+), 15 deletions(-) diff --git a/src/plugins/debugger/console/consoleitem.cpp b/src/plugins/debugger/console/consoleitem.cpp index dde1e860763..3b19023a86f 100644 --- a/src/plugins/debugger/console/consoleitem.cpp +++ b/src/plugins/debugger/console/consoleitem.cpp @@ -40,18 +40,12 @@ static QString addZeroWidthSpace(QString text) ConsoleItem::ConsoleItem(ItemType itemType, const QString &expression, const QString &file, int line) : m_itemType(itemType), m_text(addZeroWidthSpace(expression)), m_file(file), m_line(line) -{ - setFlags(Qt::ItemFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable | - (itemType == InputType ? Qt::ItemIsEditable : Qt::NoItemFlags))); -} +{} ConsoleItem::ConsoleItem(ConsoleItem::ItemType itemType, const QString &expression, std::function doFetch) : m_itemType(itemType), m_text(addZeroWidthSpace(expression)), m_line(-1), m_doFetch(doFetch) -{ - setFlags(Qt::ItemFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable | - (itemType == InputType ? Qt::ItemIsEditable : Qt::NoItemFlags))); -} +{} ConsoleItem::ItemType ConsoleItem::itemType() const { @@ -73,6 +67,15 @@ int ConsoleItem::line() const return m_line; } +Qt::ItemFlags ConsoleItem::flags(int) const +{ + Qt::ItemFlags f = Qt::ItemIsEnabled | Qt::ItemIsSelectable; + // Disable editing for old editable row + if (m_itemType == InputType && parent()->lastChild() == this) + f |= Qt::ItemIsEditable; + return f; +} + QVariant ConsoleItem::data(int column, int role) const { if (column != 0) diff --git a/src/plugins/debugger/console/consoleitem.h b/src/plugins/debugger/console/consoleitem.h index 0fd530d3fd6..e6402228bcb 100644 --- a/src/plugins/debugger/console/consoleitem.h +++ b/src/plugins/debugger/console/consoleitem.h @@ -64,11 +64,12 @@ public: QString text() const; QString file() const; int line() const; - QVariant data(int column, int role) const; - bool setData(int column, const QVariant &data, int role); + Qt::ItemFlags flags(int column) const override; + QVariant data(int column, int role) const override; + bool setData(int column, const QVariant &data, int role) override; - bool canFetchMore() const; - void fetchMore(); + bool canFetchMore() const override; + void fetchMore() override; private: ItemType m_itemType; diff --git a/src/plugins/debugger/console/consoleitemmodel.cpp b/src/plugins/debugger/console/consoleitemmodel.cpp index fe72ddc3150..bf4a5c1f6f3 100644 --- a/src/plugins/debugger/console/consoleitemmodel.cpp +++ b/src/plugins/debugger/console/consoleitemmodel.cpp @@ -67,9 +67,6 @@ void ConsoleItemModel::shiftEditableRow() int position = rootItem()->childCount(); Q_ASSERT(position > 0); - // Disable editing for old editable row - rootItem()->lastChild()->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable); - appendItem(new ConsoleItem(ConsoleItem::InputType), position); emit selectEditableRow(index(position, 0, QModelIndex()), QItemSelectionModel::ClearAndSelect); }