File indexing completed on 2024-05-12 04:20:39
0001 /* 0002 * SPDX-FileCopyrightText: 2001-2015 Klaralvdalens Datakonsult AB. All rights reserved. 0003 * 0004 * This file is part of the KGantt library. 0005 * 0006 * SPDX-License-Identifier: GPL-2.0-or-later 0007 */ 0008 0009 #ifndef KGANTTCONSTRAINTPROXY_H 0010 #define KGANTTCONSTRAINTPROXY_H 0011 0012 #include "kganttglobal.h" 0013 0014 #include <QPointer> 0015 0016 QT_BEGIN_NAMESPACE 0017 class QAbstractProxyModel; 0018 QT_END_NAMESPACE 0019 0020 namespace KGantt { 0021 class Constraint; 0022 class ConstraintModel; 0023 0024 0025 0026 /*!\class KGantt::ConstraintProxy 0027 * \internal 0028 */ 0029 class KGANTT_EXPORT ConstraintProxy : public QObject { 0030 Q_OBJECT 0031 public: 0032 explicit ConstraintProxy( QObject* parent = nullptr ); 0033 ~ConstraintProxy() override; 0034 0035 void setSourceModel( ConstraintModel* src ); 0036 void setDestinationModel( ConstraintModel* dest ); 0037 void setProxyModel( QAbstractProxyModel* proxy ); 0038 0039 ConstraintModel* sourceModel() const; 0040 ConstraintModel* destinationModel() const; 0041 QAbstractProxyModel* proxyModel() const; 0042 0043 0044 private Q_SLOTS: 0045 0046 void slotSourceConstraintAdded( const KGantt::Constraint& ); 0047 void slotSourceConstraintRemoved( const KGantt::Constraint& ); 0048 0049 void slotDestinationConstraintAdded( const KGantt::Constraint& ); 0050 void slotDestinationConstraintRemoved( const KGantt::Constraint& ); 0051 0052 void slotLayoutChanged(); 0053 0054 private: 0055 void copyFromSource(); 0056 0057 QPointer<QAbstractProxyModel> m_proxy; 0058 QPointer<ConstraintModel> m_source; 0059 QPointer<ConstraintModel> m_destination; 0060 }; 0061 } 0062 0063 #endif /* KGANTTCONSTRAINTPROXY_H */ 0064