/* This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. */ #ifndef MAPPINGTREEWIDGET_H #define MAPPINGTREEWIDGET_H #include #include #include class MappingTreeView; class MappingTreeModel; class QComboBox; class QPushButton; class QLabel; class QSortFilterProxyModel; class QStringListModel; class QAction; class MappingTreeResultModel; struct MappingData; class MappingTreeWidget : public QWidget { Q_OBJECT public: explicit MappingTreeWidget(QWidget *parent = 0); MappingData selectedItem() const; public slots: void addChild(); void addType(); void deleteChild(); void deleteType(); protected: virtual void hideEvent(QHideEvent *event); private slots: void typeChanged(QString type); void editChild(); void selectionChanged(); void moveChild(); signals: void mappingChanged(int); private: const QModelIndex selected() const; MappingTreeView *mTree; MappingTreeModel *mModel; QSortFilterProxyModel *mProxy; QStringListModel *mTypesModel; QComboBox *mTypeBox; QPushButton *mAddChild; QPushButton *mDeleteChild; QPushButton *mAddType; QPushButton *mDeleteType; QLineEdit *mEdit; QAction *mDeleteChildA; QAction *mEditChildA; QAction *mMoveChildA; }; class MappingTreeView : public QTreeView { Q_OBJECT public: MappingTreeView(QWidget *parent = 0); protected: virtual void contextMenuEvent(QContextMenuEvent *e); }; class MappingTreeResultView : public QTreeView { Q_OBJECT public: explicit MappingTreeResultView(QWidget *parent = 0); }; class MappingEditWidget : public QWidget { Q_OBJECT public: explicit MappingEditWidget(QWidget *parent = 0); QList mappingIds() const; public slots: void addMapping(); void removeMapping(); private: MappingTreeWidget *mMappingTree; MappingTreeResultView *mMappingResult; MappingTreeResultModel *mResultModel; QPushButton *mAddMapping; QPushButton *mRemoveMapping; }; #endif // MAPPINGTREEWIDGET_H