/* * 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. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef UBTEACHERGUIDEWIDGET_H #define UBTEACHERGUIDEWIDGET_H class QTreeWidget; class QHeaderView; class QLabel; class QVBoxLayout; class QPushButton; class UBDocumentProxy; class UBGraphicsTextItem; #include "UBTeacherGuideWidgetsTools.h" #include "interfaces/IDataStorage.h" typedef enum { tUBTGZeroPageMode_EDITION, tUBTGZeroPageMode_PRESENTATION }tUBTGZeroPageMode; /*************************************************************************** * class UBTeacherGuideEditionWidget * ***************************************************************************/ class UBTeacherGuideEditionWidget : public QWidget , public IDataStorage { Q_OBJECT public: explicit UBTeacherGuideEditionWidget(QWidget* parent = 0, const char* name="UBTeacherGuideEditionWidget"); ~UBTeacherGuideEditionWidget(); void cleanData(); QVector getData(); void load(QString element); QVector save(int pageIndex); public slots: void onAddItemClicked(QTreeWidgetItem* widget, int column, QDomElement* element = 0); void onActiveSceneChanged(); void showEvent(QShowEvent* event); private: QList getChildrenList(QTreeWidgetItem* widgetItem); QVector getPageAndCommentData(); QVBoxLayout* mpLayout; QLabel* mpDocumentTitle; QLabel* mpPageNumberLabel; UBTGAdaptableText* mpPageTitle; UBTGAdaptableText* mpComment; QFrame* mpSeparator; QTreeWidget* mpTreeWidget; QTreeWidgetItem* mpRootWidgetItem; UBAddItem* mpAddAnActionItem; UBAddItem* mpAddAMediaItem; UBAddItem* mpAddALinkItem; private slots: void onActiveDocumentChanged(); }; /*************************************************************************** * class UBTeacherGuidePresentationWidget * ***************************************************************************/ class UBTeacherGuidePresentationWidget : public QWidget { Q_OBJECT public: explicit UBTeacherGuidePresentationWidget(QWidget* parent, const char* name = "UBTeacherGuidePresentationName"); ~UBTeacherGuidePresentationWidget(); void showData(QVectordata); void cleanData(); public slots: void onAddItemClicked(QTreeWidgetItem* widget, int column); void onActiveSceneChanged(); private: bool eventFilter(QObject* object, QEvent* event); void createMediaButtonItem(); UBTGAdaptableText* mpPageTitle; UBTGAdaptableText* mpComment; QVBoxLayout* mpLayout; QHBoxLayout* mpButtonTitleLayout; QLabel* mpDocumentTitle; QLabel* mpPageNumberLabel; QFrame* mpSeparator; QPushButton* mpModePushButton; UBTGDraggableTreeItem* mpTreeWidget; QTreeWidgetItem* mpRootWidgetItem; QTreeWidgetItem* mpMediaSwitchItem; }; /*************************************************************************** * class UBTeacherGuidePageZeroWidget * ***************************************************************************/ class UBTeacherGuidePageZeroWidget : public QWidget { Q_OBJECT public: explicit UBTeacherGuidePageZeroWidget(QWidget* parent, const char* name = "UBTeacherGuidePageZeroEditionWidget"); ~UBTeacherGuidePageZeroWidget(); QVector getData(); public slots: void onActiveSceneChanged(); void switchToMode(tUBTGZeroPageMode mode = tUBTGZeroPageMode_EDITION); private: void fillComboBoxes(); void loadData(); void hideEvent(QHideEvent* event); bool eventFilter(QObject* object, QEvent* event); void updateSceneTitle(); QVBoxLayout* mpLayout; QHBoxLayout* mpButtonTitleLayout; QPushButton* mpModePushButton; QLabel* mpPageNumberLabel; UBTGAdaptableText* mpSessionTitle; QFrame* mpSeparatorSessionTitle; QLabel* mpAuthorsLabel; UBTGAdaptableText* mpAuthors; QFrame* mpSeparatorAuthors; QLabel* mpCreationLabel; QLabel* mpLastModifiedLabel; QLabel* mpObjectivesLabel; UBTGAdaptableText* mpObjectives; QFrame* mpSeparatorObjectives; QLabel* mpIndexLabel; QLabel* mpKeywordsLabel; UBTGAdaptableText* mpKeywords; QLabel* mpSchoolLevelItemLabel; QComboBox* mpSchoolLevelBox; QLabel* mpSchoolLevelValueLabel; QLabel* mpSchoolSubjectsItemLabel; QComboBox* mpSchoolSubjectsBox; QLabel* mpSchoolSubjectsValueLabel; QLabel* mpSchoolTypeItemLabel; QComboBox* mpSchoolTypeBox; QLabel* mpSchoolTypeValueLabel; QFrame* mpSeparatorIndex; QLabel* mpLicenceLabel; QComboBox* mpLicenceBox; QLabel* mpLicenceValueLabel; QLabel* mpLicenceIcon; QHBoxLayout* mpLicenceLayout; UBGraphicsTextItem* mpSceneItemSessionTitle; QMap mGradeLevelsMap; QMap mSubjects; private slots: void onSchoolLevelChanged(QString schoolLevel); void persistData(); }; /*************************************************************************** * class UBTeacherGuideWidget * ***************************************************************************/ class UBTeacherGuideWidget : public QStackedWidget { Q_OBJECT public: explicit UBTeacherGuideWidget(QWidget* parent = 0, const char* name="UBTeacherGuideWidget"); ~UBTeacherGuideWidget(); public slots: void changeMode(); void showPresentationMode(); void connectToStylusPalette(); void onActiveSceneChanged(); private: UBTeacherGuidePageZeroWidget* mpPageZeroWidget; UBTeacherGuideEditionWidget* mpEditionWidget; UBTeacherGuidePresentationWidget* mpPresentationWidget; QVectormCurrentData; }; #endif // UBTEACHERGUIDEWIDGET_H