1 /****************************************************************************
2 ** Copyright (C) 2001-2006 Klarälvdalens Datakonsult AB. All rights reserved.
4 ** This file is part of the KD Gantt library.
6 ** This file may be used under the terms of the GNU General Public
7 ** License versions 2.0 or 3.0 as published by the Free Software
8 ** Foundation and appearing in the files LICENSE.GPL2 and LICENSE.GPL3
9 ** included in the packaging of this file. Alternatively you may (at
10 ** your option) use any later version of the GNU General Public
11 ** License if such license has been publicly approved by
12 ** Klarälvdalens Datakonsult AB (or its successors, if any).
14 ** This file is provided "AS IS" with NO WARRANTY OF ANY KIND,
15 ** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR
16 ** A PARTICULAR PURPOSE. Klarälvdalens Datakonsult AB reserves all rights
17 ** not expressly granted herein.
19 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
20 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
22 **********************************************************************/
23 #include "kdganttconstraintproxy.h"
24 #include "kdganttconstraintmodel.h"
26 #include <QAbstractProxyModel>
28 using namespace KDGantt
;
30 /*!\class KDGantt::ConstraintProxy
34 ConstraintProxy::ConstraintProxy( QObject
* parent
)
39 ConstraintProxy::~ConstraintProxy()
43 void ConstraintProxy::setSourceModel( ConstraintModel
* src
)
45 if ( m_source
) disconnect( m_source
);
50 connect( m_source
, SIGNAL( constraintAdded( const Constraint
& ) ),
51 this, SLOT( slotSourceConstraintAdded( const Constraint
& ) ) );
52 connect( m_source
, SIGNAL( constraintRemoved( const Constraint
& ) ),
53 this, SLOT( slotSourceConstraintRemoved( const Constraint
& ) ) );
56 void ConstraintProxy::setDestinationModel( ConstraintModel
* dest
)
58 if ( m_destination
) disconnect( m_destination
);
63 connect( m_destination
, SIGNAL( constraintAdded( const Constraint
& ) ),
64 this, SLOT( slotDestinationConstraintAdded( const Constraint
& ) ) );
65 connect( m_destination
, SIGNAL( constraintRemoved( const Constraint
& ) ),
66 this, SLOT( slotDestinationConstraintRemoved( const Constraint
& ) ) );
69 void ConstraintProxy::setProxyModel( QAbstractProxyModel
* proxy
)
74 ConstraintModel
* ConstraintProxy::sourceModel() const { return m_source
; }
75 ConstraintModel
* ConstraintProxy::destinationModel() const { return m_destination
; }
76 QAbstractProxyModel
* ConstraintProxy::proxyModel() const { return m_proxy
; }
79 void ConstraintProxy::copyFromSource()
81 if ( m_destination
) {
82 m_destination
->clear();
83 if ( !m_source
) return;
84 QList
<Constraint
> lst
= m_source
->constraints();
85 Q_FOREACH( const Constraint
& c
, lst
) {
86 m_destination
->addConstraint( Constraint( m_proxy
->mapFromSource( c
.startIndex() ),
87 m_proxy
->mapFromSource( c
.endIndex() ),
88 c
.type(), c
.relationType() ) );
93 void ConstraintProxy::slotSourceConstraintAdded( const Constraint
& c
)
95 //qDebug() << "ConstraintProxy::slotSourceConstraintAdded("<<c<<")";
96 if ( m_destination
) m_destination
->addConstraint( Constraint( m_proxy
->mapFromSource( c
.startIndex() ),
97 m_proxy
->mapFromSource( c
.endIndex() ),
98 c
.type(), c
.relationType() ) );
101 void ConstraintProxy::slotSourceConstraintRemoved( const Constraint
& c
)
103 //qDebug() << "ConstraintProxy::slotSourceConstraintRemoved("<<c<<")";
104 if ( m_destination
) m_destination
->removeConstraint( Constraint( m_proxy
->mapFromSource( c
.startIndex() ),
105 m_proxy
->mapFromSource( c
.endIndex() ),
106 c
.type(), c
.relationType() ) );
109 void ConstraintProxy::slotDestinationConstraintAdded( const Constraint
& c
)
111 //qDebug() << "ConstraintProxy::slotDestinationConstraintAdded("<<c<<")";
112 if ( m_source
) m_source
->addConstraint( Constraint( m_proxy
->mapToSource( c
.startIndex() ),
113 m_proxy
->mapToSource( c
.endIndex() ),
114 c
.type(), c
.relationType() ) );
117 void ConstraintProxy::slotDestinationConstraintRemoved( const Constraint
& c
)
119 //qDebug() << "ConstraintProxy::slotDestinationConstraintRemoved("<<c<<")";
120 if ( m_source
) m_source
->removeConstraint( Constraint( m_proxy
->mapToSource( c
.startIndex() ),
121 m_proxy
->mapToSource( c
.endIndex() ),
122 c
.type(), c
.relationType() ) );
125 #include "moc_kdganttconstraintproxy.cpp"