Page MenuHomePhabricator

5041FinalSolution.patch

Authored By
wald
Nov 10 2010, 3:26 PM
Size
9 KB
Referenced Files
None
Subscribers
None

5041FinalSolution.patch

Index: mitk/CoreUI/Qmitk/QmitkDataStorageTreeModel.cpp
===================================================================
--- mitk/CoreUI/Qmitk/QmitkDataStorageTreeModel.cpp (revision 27440)
+++ mitk/CoreUI/Qmitk/QmitkDataStorageTreeModel.cpp (working copy)
@@ -34,27 +34,29 @@
QmitkDataStorageTreeModel::QmitkDataStorageTreeModel( mitk::DataStorage* _DataStorage
, bool _PlaceNewNodesOnTop
+ , bool _ShowHelperObjects
, QObject* parent )
: QAbstractItemModel(parent)
, m_DataStorage(0)
, m_PlaceNewNodesOnTop(_PlaceNewNodesOnTop)
, m_Root(0)
{
- mitk::NodePredicateData::Pointer dataIsNull = mitk::NodePredicateData::New(0);
- mitk::NodePredicateNot::Pointer dataIsNotNull
- = mitk::NodePredicateNot::New(dataIsNull);// Show only nodes that really contain dat
+ //mitk::NodePredicateData::Pointer dataIsNull = mitk::NodePredicateData::New(0);
+ //mitk::NodePredicateNot::Pointer dataIsNotNull
+ // = mitk::NodePredicateNot::New(dataIsNull);// Show only nodes that really contain dat
- mitk::NodePredicateProperty::Pointer isHelperObject = mitk::NodePredicateProperty::New("helper object"
- , mitk::BoolProperty::New(true));
+ //mitk::NodePredicateProperty::Pointer isHelperObject = mitk::NodePredicateProperty::New("helper object"
+ // , mitk::BoolProperty::New(true));
- mitk::NodePredicateNot::Pointer isNotHelperObject
- = mitk::NodePredicateNot::New(isHelperObject);// Show only nodes that really contain dat
+ //mitk::NodePredicateNot::Pointer isNotHelperObject
+ // = mitk::NodePredicateNot::New(isHelperObject);// Show only nodes that really contain dat
- mitk::NodePredicateAnd::Pointer dataIsNotNullAndIsNotHelperObject = mitk::NodePredicateAnd::New(dataIsNotNull,
- isNotHelperObject);
+ //mitk::NodePredicateAnd::Pointer dataIsNotNullAndIsNotHelperObject = mitk::NodePredicateAnd::New(dataIsNotNull,
+ // isNotHelperObject);
- m_Predicate = dataIsNotNullAndIsNotHelperObject;
+ //m_Predicate = dataIsNotNullAndIsNotHelperObject;
+ this->SetShowHelperObjects( _ShowHelperObjects );
this->SetDataStorage(_DataStorage);
}
@@ -289,13 +291,8 @@
mitk::DataStorage::SetOfObjects::ConstPointer _NodeSet = m_DataStorage->GetSubset(m_Predicate);
- // finally add all nodes to the model
- for(mitk::DataStorage::SetOfObjects::const_iterator it=_NodeSet->begin(); it!=_NodeSet->end()
- ; it++)
- {
- // save node
- this->AddNode(*it);
- }
+ // finally add all nodes to the model
+ this->Update();
}
}
}
@@ -645,3 +642,53 @@
if(m_Parent)
m_Parent->AddChild(this);
}
+
+void QmitkDataStorageTreeModel::SetShowHelperObjects(bool _ShowHelperObjects)
+{
+ m_ShowHelperObjects = _ShowHelperObjects;
+
+ mitk::NodePredicateData::Pointer dataIsNull = mitk::NodePredicateData::New(0);
+ mitk::NodePredicateNot::Pointer dataIsNotNull = mitk::NodePredicateNot::New(dataIsNull);// Show only nodes that really contain dat
+ mitk::NodePredicateProperty::Pointer isHelperObject = mitk::NodePredicateProperty::New("helper object", mitk::BoolProperty::New(true));
+ mitk::NodePredicateNot::Pointer isNotHelperObject = mitk::NodePredicateNot::New(isHelperObject);// Show only nodes that really contain dat
+
+ if (! m_ShowHelperObjects)
+ {
+ //hide helper objects
+ m_Predicate = mitk::NodePredicateAnd::New(dataIsNotNull, isNotHelperObject);
+ }
+ else
+ {
+ //show helper objects
+ m_Predicate = dataIsNotNull;
+ }
+
+ this->Update();
+}
+
+void QmitkDataStorageTreeModel::Update()
+{
+ if (m_DataStorage.IsNotNull())
+ {
+ this->reset();
+
+ mitk::DataStorage::SetOfObjects::ConstPointer _NodeSet = m_DataStorage->GetSubset(m_Predicate);
+
+ for(mitk::DataStorage::SetOfObjects::const_iterator it=_NodeSet->begin(); it!=_NodeSet->end(); it++)
+ {
+ // save node
+ this->AddNode(*it);
+ }
+
+ // not not nerd..
+ mitk::DataStorage::SetOfObjects::ConstPointer _NotNodeSet = m_DataStorage->GetSubset(mitk::NodePredicateNot::New(m_Predicate));
+
+ for(mitk::DataStorage::SetOfObjects::const_iterator it=_NotNodeSet->begin(); it!=_NotNodeSet->end(); it++)
+ {
+ // save node
+ this->RemoveNode(*it);
+ }
+
+ }
+}
+
Index: mitk/CoreUI/Qmitk/QmitkDataStorageTreeModel.h
===================================================================
--- mitk/CoreUI/Qmitk/QmitkDataStorageTreeModel.h (revision 27440)
+++ mitk/CoreUI/Qmitk/QmitkDataStorageTreeModel.h (working copy)
@@ -44,6 +44,7 @@
public:
QmitkDataStorageTreeModel(mitk::DataStorage* _DataStorage
, bool _PlaceNewNodesOnTop=false
+ , bool _ShowHelperObjects=false
, QObject* parent = 0);
~QmitkDataStorageTreeModel();
@@ -62,9 +63,26 @@
/// Get the DataStorage.
///
const mitk::DataStorage::Pointer GetDataStorage() const;
+
///
+ /// Get the top placement flag
///
+ bool GetPlaceNewNodesOnTopFlag()
+ {
+ return m_PlaceNewNodesOnTop;
+ }
+
///
+ /// Get the helper object visibility flag
+ ///
+ bool GetShowHelperObjectsFlag()
+ {
+ return m_ShowHelperObjects;
+ }
+
+ ///
+ /// Set the top placement flag
+ ///
void SetPlaceNewNodesOnTop(bool _PlaceNewNodesOnTop);
//# (Re-)implemented from QAbstractItemModel
@@ -119,6 +137,11 @@
///
QModelIndex GetIndex(const mitk::DataNode*) const;
+ ///
+ /// Show or hide helper objects
+ ///
+ void SetShowHelperObjects(bool _ShowHelperObjects);
+
//# MISC
protected:
///
@@ -217,11 +240,17 @@
/// Adds all Childs in parent to vec. Before a child is added the function is called recursively
///
void TreeToNodeSet(TreeItem* parent, std::vector<mitk::DataNode*>& vec) const;
+ ///
+ /// Update Tree Model according to predicates
+ ///
+ void Update();
+
//# ATTRIBUTES
protected:
mitk::WeakPointer<mitk::DataStorage> m_DataStorage;
mitk::NodePredicateBase::Pointer m_Predicate;
bool m_PlaceNewNodesOnTop;
+ bool m_ShowHelperObjects;
TreeItem* m_Root;
};
Index: mitk/Modules/Bundles/org.mitk.gui.qt.datamanager/src/QmitkDataManagerPreferencePage.cpp
===================================================================
--- mitk/Modules/Bundles/org.mitk.gui.qt.datamanager/src/QmitkDataManagerPreferencePage.cpp (revision 27440)
+++ mitk/Modules/Bundles/org.mitk.gui.qt.datamanager/src/QmitkDataManagerPreferencePage.cpp (working copy)
@@ -48,10 +48,12 @@
m_MainControl = new QWidget(parent);
m_EnableSingleEditing = new QCheckBox;
m_PlaceNewNodesOnTop = new QCheckBox;
+ m_ShowHelperObjects = new QCheckBox;
QFormLayout *formLayout = new QFormLayout;
formLayout->addRow("&Single click property editing:", m_EnableSingleEditing);
formLayout->addRow("&Place new nodes on top:", m_PlaceNewNodesOnTop);
+ formLayout->addRow("&Show helper objects:", m_ShowHelperObjects);
m_MainControl->setLayout(formLayout);
this->Update();
@@ -68,6 +70,8 @@
, m_EnableSingleEditing->isChecked());
m_DataManagerPreferencesNode->PutBool("Place new nodes on top"
, m_PlaceNewNodesOnTop->isChecked());
+ m_DataManagerPreferencesNode->PutBool("Show helper objects"
+ , m_ShowHelperObjects->isChecked());
return true;
}
@@ -80,4 +84,5 @@
{
m_EnableSingleEditing->setChecked(m_DataManagerPreferencesNode->GetBool("Single click property editing", true));
m_PlaceNewNodesOnTop->setChecked(m_DataManagerPreferencesNode->GetBool("Place new nodes on top", true));
+ m_ShowHelperObjects->setChecked(m_DataManagerPreferencesNode->GetBool("Show helper objects", false));
}
Index: mitk/Modules/Bundles/org.mitk.gui.qt.datamanager/src/QmitkDataManagerPreferencePage.h
===================================================================
--- mitk/Modules/Bundles/org.mitk.gui.qt.datamanager/src/QmitkDataManagerPreferencePage.h (revision 27440)
+++ mitk/Modules/Bundles/org.mitk.gui.qt.datamanager/src/QmitkDataManagerPreferencePage.h (working copy)
@@ -57,6 +57,7 @@
QWidget* m_MainControl;
QCheckBox* m_EnableSingleEditing;
QCheckBox* m_PlaceNewNodesOnTop;
+ QCheckBox* m_ShowHelperObjects;
berry::IPreferences::Pointer m_DataManagerPreferencesNode;
};
Index: mitk/Modules/Bundles/org.mitk.gui.qt.datamanager/src/QmitkDataManagerView.cpp
===================================================================
--- mitk/Modules/Bundles/org.mitk.gui.qt.datamanager/src/QmitkDataManagerView.cpp (revision 27440)
+++ mitk/Modules/Bundles/org.mitk.gui.qt.datamanager/src/QmitkDataManagerView.cpp (working copy)
@@ -131,6 +131,8 @@
m_NodeTreeModel->setParent( parent );
m_NodeTreeModel->SetPlaceNewNodesOnTop(
prefs->GetBool("Place new nodes on top", true) );
+ m_NodeTreeModel->SetShowHelperObjects(
+ prefs->GetBool("Show helper objects", false) );
//# Tree View (experimental)
m_NodeTreeView = new QTreeView;
@@ -400,7 +402,13 @@
void QmitkDataManagerView::OnPreferencesChanged(const berry::IBerryPreferences* prefs)
{
- m_NodeTreeModel->SetPlaceNewNodesOnTop( prefs->GetBool("Place new nodes on top", true) );
+ if( m_NodeTreeModel->GetPlaceNewNodesOnTopFlag() != prefs->GetBool("Place new nodes on top", true) )
+ m_NodeTreeModel->SetPlaceNewNodesOnTop( !m_NodeTreeModel->GetPlaceNewNodesOnTopFlag() );
+
+ if( m_NodeTreeModel->GetShowHelperObjectsFlag()!= prefs->GetBool("Show helper objects", false) )
+ m_NodeTreeModel->SetShowHelperObjects( !m_NodeTreeModel->GetShowHelperObjectsFlag() );
+
+ m_NodeTreeView->expandAll();
}
void QmitkDataManagerView::NodeTableViewContextMenuRequested( const QPoint & pos )

File Metadata

Mime Type
text/plain
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
558
Default Alt Text
5041FinalSolution.patch (9 KB)

Event Timeline

final solution for showing/hiding helper objects