DocumentModel.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef GUI_DOCUMENTMODEL_H
00025 #define GUI_DOCUMENTMODEL_H
00026
00027 #include <QAbstractItemModel>
00028 #include <vector>
00029 #include <map>
00030
00031 namespace App {
00032 class Property;
00033 }
00034 namespace Gui {
00035 class Document;
00036 class ViewProviderDocumentObject;
00037
00038 class DocumentModel : public QAbstractItemModel
00039 {
00040 public:
00041 DocumentModel(QObject* parent);
00042 virtual ~DocumentModel();
00043
00044 int columnCount (const QModelIndex & parent = QModelIndex()) const;
00045 QVariant data (const QModelIndex & index, int role = Qt::DisplayRole) const;
00046 bool setData (const QModelIndex & idx, const QVariant & value, int role);
00047 Qt::ItemFlags flags(const QModelIndex &index) const;
00048 QModelIndex index (int row, int column, const QModelIndex & parent = QModelIndex()) const;
00049 QModelIndex parent (const QModelIndex & index) const;
00050 int rowCount (const QModelIndex & parent = QModelIndex()) const;
00051 QVariant headerData (int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
00052 bool setHeaderData (int section, Qt::Orientation orientation, const QVariant & value, int role = Qt::EditRole);
00053
00054 private:
00055 void slotNewDocument(const Gui::Document&);
00056 void slotDeleteDocument(const Gui::Document&);
00057 void slotRenameDocument(const Gui::Document&);
00058 void slotActiveDocument(const Gui::Document&);
00059 void slotRelabelDocument(const Gui::Document&);
00060 void slotInEdit(const Gui::ViewProviderDocumentObject& v);
00061 void slotResetEdit(const Gui::ViewProviderDocumentObject& v);
00062 void slotNewObject(const Gui::ViewProviderDocumentObject& obj);
00063 void slotDeleteObject(const Gui::ViewProviderDocumentObject& obj);
00064 void slotChangeObject(const Gui::ViewProviderDocumentObject& obj, const App::Property& Prop);
00065 void slotRenameObject(const Gui::ViewProviderDocumentObject& obj);
00066 void slotActiveObject(const Gui::ViewProviderDocumentObject& obj);
00067
00068 const Document* getDocument(const QModelIndex&) const;
00069 bool isPropertyLink(const App::Property&) const;
00070 std::vector<ViewProviderDocumentObject*> getLinkedObjects
00071 (const Gui::Document&, const App::Property&) const;
00072
00073 private:
00074 struct DocumentModelP *d;
00075 };
00076
00077 }
00078
00079
00080 #endif //GUI_DOCUMENTMODEL_H