[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