Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F581
5041FinalSolution.patch
Public
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Authored By
•
wald
Nov 10 2010, 3:26 PM
2010-11-10 15:26:25 (UTC+1)
Size
9 KB
Referenced Files
None
Subscribers
None
5041FinalSolution.patch
View Options
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
Details
Attached
Mime Type
text/plain
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
558
Default Alt Text
5041FinalSolution.patch (9 KB)
Attached To
Mode
T5041: option for showing "helper objects" in datamanager view
Attached
Detach File
Event Timeline
•
wald
added a comment.
Nov 10 2010, 3:26 PM
2010-11-10 15:26:25 (UTC+1)
Comment Actions
final solution for showing/hiding helper objects
Log In to Comment