[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: koffice/kplato/libs/models
From: Dag Andersen <danders () get2net ! dk>
Date: 2010-02-02 8:44:44
Message-ID: 1265100284.875045.16914.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 1083887 by danders:
Fix setManager ->setScheduleManager.
Make NodeItemModel optionally show project.
M +29 -10 kptnodeitemmodel.cpp
M +5 -1 kptnodeitemmodel.h
--- trunk/koffice/kplato/libs/models/kptnodeitemmodel.cpp #1083886:1083887
@@ -1897,7 +1897,8 @@
//----------------------------
NodeItemModel::NodeItemModel( QObject *parent )
: ItemModelBase( parent ),
- m_node( 0 )
+ m_node( 0 ),
+ m_projecthidden( true )
{
}
@@ -1905,6 +1906,12 @@
{
}
+void NodeItemModel::setProjectHidden( bool on )
+{
+ m_projecthidden = on;
+ reset();
+}
+
void NodeItemModel::slotNodeToBeInserted( Node *parent, int row )
{
//kDebug()<<parent->name()<<"; "<<row;
@@ -1952,9 +1959,14 @@
if ( m_project == 0 ) {
return;
}
+ if ( ! m_projecthidden ) {
+ QModelIndex idx = createIndex( 0, NodeModel::NodeWBSCode, m_project );
+ emit dataChanged( idx, idx );
+ }
foreach ( Node *n, m_project->allNodes() ) {
int row = n->parentNode()->indexOf( n );
- emit dataChanged( createIndex( row, NodeModel::NodeWBSCode, n ), \
createIndex( row, NodeModel::NodeWBSCode, n ) ); + QModelIndex idx = \
createIndex( row, NodeModel::NodeWBSCode, n ); + emit dataChanged( idx, idx );
}
}
@@ -2147,14 +2159,17 @@
QModelIndex NodeItemModel::parent( const QModelIndex &index ) const
{
- if ( !index.isValid() ) {
+ if ( ! index.isValid() ) {
return QModelIndex();
}
- //kDebug()<<index.internalPointer()<<":"<<index.row()<<","<<index.column();
- Node *p = node( index )->parentNode();
- if ( p == 0 || p->type() == Node::Type_Project ) {
+ Node *n = node( index );
+ if ( n == 0 || n == m_project ) {
return QModelIndex();
}
+ Node *p = n->parentNode();
+ if ( p == m_project ) {
+ return m_projecthidden ? QModelIndex() : createIndex( 0, 0, p );
+ }
int row = p->parentNode()->indexOf( p );
if ( row == -1 ) {
return QModelIndex();
@@ -2172,6 +2187,9 @@
//kDebug()<<m_project<<parent<<"No index for"<<row<<","<<column;
return QModelIndex();
}
+ if ( ! m_projecthidden && ! parent.isValid() ) {
+ return createIndex( row, column, m_project );
+ }
Node *p = node( parent );
if ( row >= p->numChildren() ) {
kError()<<p->name()<<" row too high"<<row<<","<<column;
@@ -2830,6 +2848,9 @@
int NodeItemModel::rowCount( const QModelIndex &parent ) const
{
+ if ( ! m_projecthidden && ! parent.isValid() ) {
+ return m_project == 0 ? 0 : 1;
+ }
Node *p = node( parent );
return p == 0 ? 0 : p->numChildren();
}
@@ -3005,9 +3026,6 @@
{
Node *n = m_project;
if ( index.isValid() ) {
- if ( index.internalPointer() == 0 ) {
-
- }
//kDebug()<<index.internalPointer()<<":"<<index.row()<<","<<index.column();
n = static_cast<Node*>( index.internalPointer() );
Q_ASSERT( n );
@@ -3558,6 +3576,7 @@
if ( idx.column() == NodeModel::NodeType && role == KDGantt::ItemTypeRole ) \
{ QVariant result = NodeItemModel::data( idx, Qt::EditRole );
switch ( result.toInt() ) {
+ case Node::Type_Project: return KDGantt::TypeSummary;
case Node::Type_Summarytask: return KDGantt::TypeSummary;
case Node::Type_Milestone: return KDGantt::TypeEvent;
default: return m_showSpecial ? KDGantt::TypeMulti : \
KDGantt::TypeTask; @@ -3657,7 +3676,7 @@
resetModel();
}
-void MilestoneItemModel::setManager( ScheduleManager *sm )
+void MilestoneItemModel::setScheduleManager( ScheduleManager *sm )
{
if ( m_nodemodel.manager() ) {
}
--- trunk/koffice/kplato/libs/models/kptnodeitemmodel.h #1083886:1083887
@@ -251,6 +251,7 @@
/// Returns a column number/- name map for this model
virtual const QMetaEnum columnMap() const { return m_nodemodel.columnMap(); }
+ void setProjectHidden( bool on );
virtual void setProject( Project *project );
ScheduleManager *manager() const { return m_nodemodel.manager(); }
long id() const { return m_nodemodel.id(); }
@@ -333,6 +334,7 @@
protected:
Node *m_node; // for sanety check
NodeModel m_nodemodel;
+ bool m_projecthidden;
};
//--------------------------------------
@@ -421,7 +423,6 @@
~MilestoneItemModel();
virtual void setProject( Project *project );
- void setManager( ScheduleManager *sm );
virtual Qt::ItemFlags flags( const QModelIndex & index ) const;
@@ -457,6 +458,9 @@
QList<Node*> mileStones() const;
+public slots:
+ virtual void setScheduleManager( ScheduleManager *sm );
+
protected slots:
void slotNodeChanged( Node* );
void slotNodeToBeInserted( Node *node, int row );
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic