From 33e94c447be7233afbfde06de4f5e169bf0a01eb Mon Sep 17 00:00:00 2001 From: Magne Sjaastad Date: Fri, 8 Sep 2017 07:47:23 +0200 Subject: [PATCH] #1830 AppFwk : Rename to isReadOnly and disable these items in tree view --- .../cafPdmUiCore/cafPdmUiItem.cpp | 16 ++++++++-------- .../cafPdmUiCore/cafPdmUiItem.h | 10 +++++----- .../cafTests/cafTestApplication/MainWindow.cpp | 2 +- .../cafPdmUiTreeSelectionQModel.cpp | 6 +++++- 4 files changed, 19 insertions(+), 15 deletions(-) diff --git a/Fwk/AppFwk/cafProjectDataModel/cafPdmUiCore/cafPdmUiItem.cpp b/Fwk/AppFwk/cafProjectDataModel/cafPdmUiCore/cafPdmUiItem.cpp index 277f5ea6a2..8f90069d98 100644 --- a/Fwk/AppFwk/cafProjectDataModel/cafPdmUiCore/cafPdmUiItem.cpp +++ b/Fwk/AppFwk/cafProjectDataModel/cafPdmUiCore/cafPdmUiItem.cpp @@ -45,10 +45,10 @@ namespace caf //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -PdmOptionItemInfo::PdmOptionItemInfo(const QString& anOptionUiText, const QVariant& aValue, bool anIsDimmed /* = false */, QIcon anIcon /* = QIcon()*/) +PdmOptionItemInfo::PdmOptionItemInfo(const QString& anOptionUiText, const QVariant& aValue, bool isReadOnly /* = false */, QIcon anIcon /* = QIcon()*/) : m_value(aValue), m_optionUiText(anOptionUiText), - m_isDimmed(anIsDimmed), + m_isReadOnly(isReadOnly), m_icon(anIcon), m_level(0) { @@ -58,9 +58,9 @@ PdmOptionItemInfo::PdmOptionItemInfo(const QString& anOptionUiText, const QVaria //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -PdmOptionItemInfo::PdmOptionItemInfo(const QString& anOptionUiText, caf::PdmObjectHandle* obj, bool anIsDimmed /*= false*/, QIcon anIcon /*= QIcon()*/) +PdmOptionItemInfo::PdmOptionItemInfo(const QString& anOptionUiText, caf::PdmObjectHandle* obj, bool isReadOnly /*= false*/, QIcon anIcon /*= QIcon()*/) : m_optionUiText(anOptionUiText), - m_isDimmed(anIsDimmed), + m_isReadOnly(isReadOnly), m_icon(anIcon), m_level(0) { @@ -70,9 +70,9 @@ PdmOptionItemInfo::PdmOptionItemInfo(const QString& anOptionUiText, caf::PdmObje //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -PdmOptionItemInfo PdmOptionItemInfo::createHeader(const QString& anOptionUiText, bool anIsDimmed /*= false*/, QIcon anIcon /*= QIcon()*/) +PdmOptionItemInfo PdmOptionItemInfo::createHeader(const QString& anOptionUiText, bool isReadOnly /*= false*/, QIcon anIcon /*= QIcon()*/) { - PdmOptionItemInfo header(anOptionUiText, QVariant(), anIsDimmed, anIcon); + PdmOptionItemInfo header(anOptionUiText, QVariant(), isReadOnly, anIcon); return header; } @@ -104,9 +104,9 @@ const QVariant PdmOptionItemInfo::value() const //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -bool PdmOptionItemInfo::isDimmed() const +bool PdmOptionItemInfo::isReadOnly() const { - return m_isDimmed; + return m_isReadOnly; } //-------------------------------------------------------------------------------------------------- diff --git a/Fwk/AppFwk/cafProjectDataModel/cafPdmUiCore/cafPdmUiItem.h b/Fwk/AppFwk/cafProjectDataModel/cafPdmUiCore/cafPdmUiItem.h index 45dde1a6f2..f41747f3df 100644 --- a/Fwk/AppFwk/cafProjectDataModel/cafPdmUiCore/cafPdmUiItem.h +++ b/Fwk/AppFwk/cafProjectDataModel/cafPdmUiCore/cafPdmUiItem.h @@ -86,16 +86,16 @@ private: class PdmOptionItemInfo { public: - PdmOptionItemInfo(const QString& anOptionUiText, const QVariant& aValue, bool anIsDimmed = false, QIcon anIcon = QIcon()); - PdmOptionItemInfo(const QString& anOptionUiText, caf::PdmObjectHandle* obj, bool anIsDimmed = false, QIcon anIcon = QIcon()); + PdmOptionItemInfo(const QString& anOptionUiText, const QVariant& aValue, bool isReadOnly = false, QIcon anIcon = QIcon()); + PdmOptionItemInfo(const QString& anOptionUiText, caf::PdmObjectHandle* obj, bool isReadOnly = false, QIcon anIcon = QIcon()); - static PdmOptionItemInfo createHeader(const QString& anOptionUiText, bool anIsDimmed = false, QIcon anIcon = QIcon()); + static PdmOptionItemInfo createHeader(const QString& anOptionUiText, bool isReadOnly = false, QIcon anIcon = QIcon()); void setLevel(int level); const QString optionUiText() const; const QVariant value() const; - bool isDimmed() const; + bool isReadOnly() const; bool isHeading() const; const QIcon icon() const; int level() const; @@ -112,7 +112,7 @@ public: private: QString m_optionUiText; QVariant m_value; - bool m_isDimmed; + bool m_isReadOnly; QIcon m_icon; int m_level; }; diff --git a/Fwk/AppFwk/cafTests/cafTestApplication/MainWindow.cpp b/Fwk/AppFwk/cafTests/cafTestApplication/MainWindow.cpp index 621fa70305..1a8314b458 100644 --- a/Fwk/AppFwk/cafTests/cafTestApplication/MainWindow.cpp +++ b/Fwk/AppFwk/cafTests/cafTestApplication/MainWindow.cpp @@ -126,7 +126,7 @@ public: { text = "Second_a"; - caf::PdmOptionItemInfo itemInfo = caf::PdmOptionItemInfo(text, text); + caf::PdmOptionItemInfo itemInfo = caf::PdmOptionItemInfo(text, text, true); itemInfo.setLevel(1); options.push_back(itemInfo); } diff --git a/Fwk/AppFwk/cafUserInterface/cafPdmUiTreeSelectionQModel.cpp b/Fwk/AppFwk/cafUserInterface/cafPdmUiTreeSelectionQModel.cpp index 7a38d97b4d..3f35dbabbc 100644 --- a/Fwk/AppFwk/cafUserInterface/cafPdmUiTreeSelectionQModel.cpp +++ b/Fwk/AppFwk/cafUserInterface/cafPdmUiTreeSelectionQModel.cpp @@ -107,7 +107,11 @@ Qt::ItemFlags caf::PdmUiTreeSelectionQModel::flags(const QModelIndex &index) con { int opIndex = optionItemIndex(index); - if (!m_options[opIndex].isHeading()) + if (m_options[opIndex].isReadOnly()) + { + return QAbstractItemModel::flags(index)^Qt::ItemIsEnabled; + } + else if (!m_options[opIndex].isHeading()) { return QAbstractItemModel::flags(index) | Qt::ItemIsUserCheckable; }