Canorus  0.7
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
/home/iurt/rpm/BUILD/canorus-0.7.R1002/src/core/document.h
Go to the documentation of this file.
00001 
00008 #ifndef DOCUMENT_H_
00009 #define DOCUMENT_H_
00010 
00011 #include <QList>
00012 #include <QString>
00013 #include <QDateTime>
00014 
00015 class CASheet;
00016 class CAArchive;
00017 class CAResource;
00018 
00019 class CADocument {
00020 public:
00021         CADocument();
00022         virtual ~CADocument();
00023         CADocument *clone();
00024         void clear();
00025 
00026         QList<CASheet*> sheetList() { return _sheetList; }
00027         int sheetCount() { return _sheetList.size(); }
00028         CASheet *sheet(const QString name);
00029         CASheet *sheetAt(int i) { return _sheetList[i]; }
00030         void setSheetAt(int i, CASheet *newSheet) { _sheetList[i]=newSheet; }
00031 
00032         QList<CAResource*>& resourceList() { return _resourceList; }
00033         inline void addResource(CAResource *r) { _resourceList << r; }
00034         inline void removeResource(CAResource *r) { _resourceList.removeAll(r); }
00035 
00036         CASheet *addSheetByName(const QString name);
00037         void addSheet(CASheet *sheet);
00038         CASheet *addSheet();
00039         inline void removeSheet(CASheet *sheet) { _sheetList.removeAll(sheet); }
00040 
00041         const QString title() { return _title; }
00042         const QString subtitle() { return _subtitle; }
00043         const QString composer() { return _composer; }
00044         const QString arranger() { return _arranger; }
00045         const QString poet() { return _poet; }
00046         const QString textTranslator() { return _textTranslator; }
00047         const QString dedication() { return _dedication; }
00048         const QString copyright() { return _copyright; }
00049         const QDateTime dateCreated() { return _dateCreated; }
00050         const QDateTime dateLastModified() { return _dateLastModified; }
00051         const unsigned int timeEdited() { return _timeEdited; }
00052         const QString comments() { return _comments; }
00053 
00054         void setTitle(const QString title) { _title = title; }
00055         void setSubtitle(const QString subtitle) { _subtitle = subtitle; }
00056         void setComposer(const QString composer) { _composer = composer; }
00057         void setArranger(const QString arranger) { _arranger = arranger; }
00058         void setPoet(const QString poet) { _poet = poet; }
00059         void setTextTranslator(const QString textTranslator) { _textTranslator = textTranslator; }
00060         void setDedication(const QString dedication) { _dedication = dedication; }
00061         void setCopyright(const QString copyright) { _copyright = copyright; }
00062         void setDateCreated(const QDateTime dateCreated) { _dateCreated = dateCreated; }
00063         void setDateLastModified(const QDateTime dateLastModified) { _dateLastModified = dateLastModified; }
00064         void setTimeEdited(const unsigned int timeEdited) { _timeEdited = timeEdited; }
00065         void setComments(const QString comments) { _comments = comments; }
00066 
00068         // Temporary properties (not stored inside the file) //
00070         const QString fileName() { return _fileName; }
00071         bool isModified() { return _modified; }
00072         CAArchive *archive() { return _archive; }
00073 
00074         void setFileName(const QString fileName) { _fileName = fileName; } // not saved!
00075         void setModified( bool m ) { _modified = m; }
00076         void setArchive( CAArchive *a ) { _archive = a; }
00077 
00078 private:
00079         QList<CASheet*>    _sheetList;
00080         QList<CAResource*> _resourceList;
00081 
00082         QString _title;
00083         QString _subtitle;
00084         QString _composer;
00085         QString _arranger;
00086         QString _poet;
00087         QString _textTranslator;
00088         QString _dedication;
00089         QString _copyright;
00090         QDateTime _dateLastModified;
00091         QDateTime _dateCreated;
00092         unsigned int _timeEdited; // time the document has been edited in seconds
00093         QString _comments;
00094 
00095         QString _fileName;
00096         bool    _modified; // unsaved changes
00097         CAArchive *_archive;
00098 };
00099 #endif /* DOCUMENT_H_ */