/src/gui/itemviews/qdatawidgetmapper.h

https://bitbucket.org/ultra_iter/qt-vtl · C Header · 128 lines · 63 code · 25 blank · 40 comment · 0 complexity · 1fe9ae1997e058a010a7f5c9f4536dbf MD5 · raw file

  1. /****************************************************************************
  2. **
  3. ** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
  4. ** All rights reserved.
  5. ** Contact: Nokia Corporation (qt-info@nokia.com)
  6. **
  7. ** This file is part of the QtGui module of the Qt Toolkit.
  8. **
  9. ** $QT_BEGIN_LICENSE:LGPL$
  10. ** GNU Lesser General Public License Usage
  11. ** This file may be used under the terms of the GNU Lesser General Public
  12. ** License version 2.1 as published by the Free Software Foundation and
  13. ** appearing in the file LICENSE.LGPL included in the packaging of this
  14. ** file. Please review the following information to ensure the GNU Lesser
  15. ** General Public License version 2.1 requirements will be met:
  16. ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
  17. **
  18. ** In addition, as a special exception, Nokia gives you certain additional
  19. ** rights. These rights are described in the Nokia Qt LGPL Exception
  20. ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
  21. **
  22. ** GNU General Public License Usage
  23. ** Alternatively, this file may be used under the terms of the GNU General
  24. ** Public License version 3.0 as published by the Free Software Foundation
  25. ** and appearing in the file LICENSE.GPL included in the packaging of this
  26. ** file. Please review the following information to ensure the GNU General
  27. ** Public License version 3.0 requirements will be met:
  28. ** http://www.gnu.org/copyleft/gpl.html.
  29. **
  30. ** Other Usage
  31. ** Alternatively, this file may be used in accordance with the terms and
  32. ** conditions contained in a signed written agreement between you and Nokia.
  33. **
  34. **
  35. **
  36. **
  37. **
  38. ** $QT_END_LICENSE$
  39. **
  40. ****************************************************************************/
  41. #ifndef QDATAWIDGETMAPPER_H
  42. #define QDATAWIDGETMAPPER_H
  43. #include "QtCore/qobject.h"
  44. #ifndef QT_NO_DATAWIDGETMAPPER
  45. QT_BEGIN_HEADER
  46. QT_BEGIN_NAMESPACE
  47. QT_MODULE(Gui)
  48. class QAbstractItemDelegate;
  49. class QAbstractItemModel;
  50. class QModelIndex;
  51. class QDataWidgetMapperPrivate;
  52. class Q_GUI_EXPORT QDataWidgetMapper: public QObject
  53. {
  54. Q_OBJECT
  55. Q_ENUMS(SubmitPolicy)
  56. Q_PROPERTY(int currentIndex READ currentIndex WRITE setCurrentIndex NOTIFY currentIndexChanged)
  57. Q_PROPERTY(Qt::Orientation orientation READ orientation WRITE setOrientation)
  58. Q_PROPERTY(SubmitPolicy submitPolicy READ submitPolicy WRITE setSubmitPolicy)
  59. public:
  60. QDataWidgetMapper(QObject *parent = 0);
  61. ~QDataWidgetMapper();
  62. void setModel(QAbstractItemModel *model);
  63. QAbstractItemModel *model() const;
  64. void setItemDelegate(QAbstractItemDelegate *delegate);
  65. QAbstractItemDelegate *itemDelegate() const;
  66. void setRootIndex(const QModelIndex &index);
  67. QModelIndex rootIndex() const;
  68. void setOrientation(Qt::Orientation aOrientation);
  69. Qt::Orientation orientation() const;
  70. enum SubmitPolicy { AutoSubmit, ManualSubmit };
  71. void setSubmitPolicy(SubmitPolicy policy);
  72. SubmitPolicy submitPolicy() const;
  73. void addMapping(QWidget *widget, int section);
  74. void addMapping(QWidget *widget, int section, const QByteArray &propertyName);
  75. void removeMapping(QWidget *widget);
  76. int mappedSection(QWidget *widget) const;
  77. QByteArray mappedPropertyName(QWidget *widget) const;
  78. QWidget *mappedWidgetAt(int section) const;
  79. void clearMapping();
  80. int currentIndex() const;
  81. public Q_SLOTS:
  82. void revert();
  83. bool submit();
  84. void toFirst();
  85. void toLast();
  86. void toNext();
  87. void toPrevious();
  88. virtual void setCurrentIndex(int index);
  89. void setCurrentModelIndex(const QModelIndex &index);
  90. Q_SIGNALS:
  91. void currentIndexChanged(int index);
  92. private:
  93. Q_DECLARE_PRIVATE(QDataWidgetMapper)
  94. Q_DISABLE_COPY(QDataWidgetMapper)
  95. Q_PRIVATE_SLOT(d_func(), void _q_dataChanged(const QModelIndex &, const QModelIndex &))
  96. Q_PRIVATE_SLOT(d_func(), void _q_commitData(QWidget *))
  97. Q_PRIVATE_SLOT(d_func(), void _q_closeEditor(QWidget *, QAbstractItemDelegate::EndEditHint))
  98. Q_PRIVATE_SLOT(d_func(), void _q_modelDestroyed())
  99. };
  100. QT_END_NAMESPACE
  101. QT_END_HEADER
  102. #endif // QT_NO_DATAWIDGETMAPPER
  103. #endif