You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
150 lines
3.5 KiB
150 lines
3.5 KiB
#ifndef UBTEACHERBARDATAMGR_H
|
|
#define UBTEACHERBARDATAMGR_H
|
|
|
|
#include <QString>
|
|
#include <QWidget>
|
|
#include <QTextEdit>
|
|
#include <QLineEdit>
|
|
#include <QLabel>
|
|
#include <QHBoxLayout>
|
|
#include <QVBoxLayout>
|
|
#include <QComboBox>
|
|
#include <QFrame>
|
|
|
|
typedef enum{
|
|
eTeacherBarState_DocumentEdit,
|
|
eTeacherBarState_DocumentPreview,
|
|
eTeacherBarState_PageEdit,
|
|
eTeacherBarState_PagePreview
|
|
}eTeacherBarState;
|
|
|
|
typedef enum{
|
|
eActionOwner_Teacher,
|
|
eActionOwner_Student
|
|
}eActionOwner;
|
|
|
|
typedef struct{
|
|
int type;
|
|
QString content;
|
|
}sAction;
|
|
|
|
typedef struct{
|
|
QString title;
|
|
QString link;
|
|
}sLink;
|
|
|
|
typedef enum{
|
|
eLicense_CCBY,
|
|
eLicense_CCBYND,
|
|
eLicense_CCBYNCSA,
|
|
eLicense_CCBYSA,
|
|
eLicense_CCBYNC,
|
|
eLicense_CCBYNCND
|
|
}eLicense;
|
|
|
|
class UBTBSeparator : public QFrame
|
|
{
|
|
public:
|
|
UBTBSeparator(QWidget* parent=0, const char* name="UBTBSeparator");
|
|
~UBTBSeparator();
|
|
};
|
|
|
|
class UBTBLicenseWidget : public QWidget
|
|
{
|
|
public:
|
|
UBTBLicenseWidget(QWidget* parent=0, const char* name="UBTBLicenseWidget");
|
|
~UBTBLicenseWidget();
|
|
void setLicense(eLicense lic);
|
|
|
|
private:
|
|
QHBoxLayout mLayout;
|
|
QLabel* mpIcon;
|
|
QLabel* mpText;
|
|
};
|
|
|
|
class UBTeacherBarDataMgr
|
|
{
|
|
public:
|
|
UBTeacherBarDataMgr();
|
|
~UBTeacherBarDataMgr();
|
|
|
|
// Session Title
|
|
void setSessionTitle(const QString& title){mSessionTitle = title;}
|
|
QString sessionTitle(){return mSessionTitle;}
|
|
|
|
// Session Target
|
|
void setSessionTarget(const QString& target){mSessionTarget = target;}
|
|
QString sessionTarget(){return mSessionTarget;}
|
|
|
|
// Licence
|
|
void setSessionLicence(eLicense licence){mSessionLicence = licence;}
|
|
eLicense sessionLicence(){return mSessionLicence;}
|
|
|
|
// Page Title
|
|
void setPageTitle(const QString& title){mPageTitle = title;}
|
|
QString pageTitle(){return mPageTitle;}
|
|
|
|
// Actions
|
|
QVector<sAction>* actions(){return &mActionList;}
|
|
|
|
// Medias
|
|
QVector<QWidget*>* medias(){return &mMediaList;}
|
|
void addMediaUrl(const QString& url){mMediaUrls << url;}
|
|
QStringList* mediaUrls(){return &mMediaUrls;}
|
|
|
|
// Urls
|
|
QVector<sLink>* urls(){return &mUrlList;}
|
|
|
|
// Comments
|
|
void setComments(const QString& c){mComments = c;}
|
|
QString comments(){return mComments;}
|
|
|
|
// Keywords
|
|
void setKeywords(const QString& kw){mKeywords = kw;}
|
|
QString keywords(){return mKeywords;}
|
|
|
|
// Level
|
|
void setLevel(const QString& level){mLevel = level;}
|
|
QString level(){return mLevel;}
|
|
|
|
// Topic
|
|
void setTopic(const QString& topic){mTopic = topic;}
|
|
QString topic(){return mTopic;}
|
|
|
|
// Authors
|
|
void setAuthors(const QString& authors){mAuthors = authors;}
|
|
QString authors(){return mAuthors;}
|
|
|
|
// Creation Date
|
|
void setCreationDate(const QString& date){mCreationDate = date;}
|
|
QString creationDate(){return mCreationDate;}
|
|
|
|
// Last Modification
|
|
void setLastModificationDate(const QString& date){mLastModif = date;}
|
|
QString lastModificationDate(){return mLastModif;}
|
|
|
|
// Others
|
|
void clearLists();
|
|
void saveContent();
|
|
void loadContent(bool docChanged = false);
|
|
|
|
private:
|
|
QString mSessionTitle;
|
|
QString mSessionTarget;
|
|
eLicense mSessionLicence;
|
|
QString mPageTitle;
|
|
QString mComments;
|
|
QString mKeywords;
|
|
QString mLevel;
|
|
QString mTopic;
|
|
QString mAuthors;
|
|
QString mCreationDate;
|
|
QString mLastModif;
|
|
|
|
QVector<sAction> mActionList;
|
|
QVector<sLink> mUrlList;
|
|
QVector<QWidget*> mMediaList;
|
|
QStringList mMediaUrls;
|
|
};
|
|
|
|
#endif // UBTEACHERBARDATAMGR_H
|
|
|