Salome HOME
Merge from V6_main_20120808 08Aug12
[modules/hexablock.git] / src / HEXABLOCKGUI / kmodelindexproxymapper.hxx
1 /*
2     Copyright (C) 2010 Klarälvdalens Datakonsult AB,
3         a KDAB Group company, info@kdab.net,
4         author Stephen Kelly <stephen@kdab.com>
5
6     This library is free software; you can redistribute it and/or modify it
7     under the terms of the GNU Library General Public License as published by
8     the Free Software Foundation; either version 2 of the License, or (at your
9     option) any later version.
10
11     This library is distributed in the hope that it will be useful, but WITHOUT
12     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Library General Public
14     License for more details.
15
16     You should have received a copy of the GNU Library General Public License
17     along with this library; see the file COPYING.LIB.  If not, write to the
18     Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
19     02110-1301, USA.
20 */
21
22 #ifndef KMODELINDEXPROXYMAPPER_H
23 #define KMODELINDEXPROXYMAPPER_H
24
25 #include <QObject>
26
27 // #include "kdeui_export.h"
28
29 class QAbstractItemModel;
30 class QModelIndex;
31 class QItemSelection;
32 class KModelIndexProxyMapperPrivate;
33
34 class KModelIndexProxyMapper : public QObject
35 {
36   Q_OBJECT
37 public:
38   KModelIndexProxyMapper(const QAbstractItemModel *leftModel, const QAbstractItemModel *rightModel, QObject* parent = 0);
39
40   ~KModelIndexProxyMapper();
41
42   QModelIndex mapLeftToRight(const QModelIndex &index) const;
43
44   QModelIndex mapRightToLeft(const QModelIndex &index) const;
45
46   QItemSelection mapSelectionLeftToRight(const QItemSelection &selection) const;
47
48   QItemSelection mapSelectionRightToLeft(const QItemSelection &selection) const;
49
50 private:
51   //@cond PRIVATE
52   Q_DECLARE_PRIVATE(KModelIndexProxyMapper)
53   KModelIndexProxyMapperPrivate * const d_ptr;
54   //@endcond
55 };
56
57 #endif
58