parley
document.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef SCRIPTOBJECTDOCUMENT_H
00016 #define SCRIPTOBJECTDOCUMENT_H
00017
00018 #include <keduvocdocument.h>
00019
00020 #include "lesson.h"
00021 #include "identifier.h"
00022
00023 #include <QObject>
00024
00025 namespace Scripting
00026 {
00027 class Translation;
00028
00066 class Document : public QObject
00067 {
00068 Q_OBJECT
00070 Q_PROPERTY ( QObject * rootLesson READ rootLesson )
00072 Q_PROPERTY ( QString title READ title WRITE setTitle )
00074 Q_PROPERTY ( QString author READ author WRITE setAuthor )
00076 Q_PROPERTY ( QString authorContact READ authorContact WRITE setAuthorContact )
00078 Q_PROPERTY ( QString license READ license WRITE setLicense )
00080 Q_PROPERTY ( QString documentComment READ documentComment WRITE setDocumentComment )
00082 Q_PROPERTY ( QString category READ category WRITE setCategory )
00084 Q_PROPERTY ( QString generator READ generator WRITE setGenerator )
00086 Q_PROPERTY ( QString version READ version WRITE setVersion )
00088 Q_PROPERTY ( QString csvDelimiter READ csvDelimiter WRITE setCsvDelimiter )
00090 Q_PROPERTY ( QString url READ url WRITE setUrl )
00091
00092 Q_ENUMS ( FileType )
00093 public:
00094
00096 enum FileType
00097 {
00098 KvdNone,
00099 Automatic,
00100 Kvtml,
00101 Wql,
00102 Pauker,
00103 Vokabeln,
00104 Xdxf,
00105 Csv,
00106 Kvtml1
00107 };
00108
00110 enum ErrorCode
00111 {
00112 NoError = 0,
00113 Unknown,
00114 InvalidXml,
00115 FileTypeUnknown,
00116 FileCannotWrite,
00117 FileWriterFailed,
00118 FileCannotRead,
00119 FileReaderFailed,
00120 FileDoesNotExist
00121 };
00122
00124 enum FileDialogMode
00125 {
00126 Reading,
00127 Writing
00128 };
00129
00131 enum LessonDeletion
00132 {
00133 DeleteEmptyLesson,
00134 DeleteEntriesAndLesson
00135 };
00136
00137 Document ( QObject* parent = 0 );
00138
00139 Document ( KEduVocDocument * doc );
00140
00141 ~Document();
00142
00143 KEduVocDocument * kEduVocDocument() { return m_doc; }
00144
00145
00146 QObject * rootLesson() { return new Lesson ( m_doc->lesson() ); }
00147
00148 KEduVocWordType * wordTypeFromString ( const QString & name );
00149
00150
00151
00152
00153
00154 void setTitle ( const QString & title ) { m_doc->setTitle ( title ); }
00155
00156
00157 QString title() const { return m_doc->title(); }
00158
00159
00160
00161 void setAuthor ( const QString & author ) { m_doc->setAuthor ( author ); }
00162
00163
00164 QString author() const { return m_doc->author(); }
00165
00166
00167
00168 void setAuthorContact ( const QString & authorContact ) { m_doc->setAuthorContact ( authorContact ); }
00169
00170
00171 QString authorContact() const { return m_doc->authorContact(); }
00172
00173
00174
00175 void setLicense ( const QString & license ) { m_doc->setLicense ( license ); }
00176
00177
00178 QString license() const { return m_doc->license(); }
00179
00180
00181
00182 void setDocumentComment ( const QString & comment ) { m_doc->setDocumentComment ( comment ); }
00183
00184
00185 QString documentComment() const { return m_doc->documentComment(); }
00186
00187
00188
00189 void setCategory ( const QString & category ) { m_doc->setCategory ( category ); }
00190
00191
00192 QString category() const { return m_doc->category(); }
00193
00194
00195
00196
00197 void setGenerator ( const QString & generator ) { m_doc->setGenerator ( generator ); }
00198
00199
00200 QString generator() const { return m_doc->generator(); }
00201
00202
00203
00204 void setVersion ( const QString & ver ) { m_doc->setVersion ( ver ); }
00205
00206
00207 QString version() const { return m_doc->version(); }
00208
00209
00210
00211
00212
00213
00214
00215 QString csvDelimiter() const { return m_doc->csvDelimiter(); }
00216
00217
00218
00219
00220
00221
00222 void setCsvDelimiter ( const QString &delimiter ) { m_doc->setCsvDelimiter ( delimiter ); }
00223
00224
00225
00226
00227 void setUrl ( const QString& url ) { m_doc->setUrl ( url ); }
00228
00229
00230 QString url() const { return m_doc->url().path(); }
00231
00232 public slots:
00233
00247 QObject * newLesson ( const QString & name ) { return new Lesson ( name ); }
00248
00261 void appendLesson ( QObject * lesson );
00262
00273 QObject * appendNewLesson ( const QString & name );
00274
00287 QObject * appendNewLesson ( const QString & name, Lesson * parent );
00288
00299 QVariantList allLessons();
00300
00316 QObject * findLesson ( const QString& name );
00317
00324 void setWordType ( QObject * tr, const QString & wordtype );
00325
00329 QStringList wordTypes();
00330
00331
00332
00333
00334
00335
00336
00337
00338
00339
00340
00349 int saveAs ( const QString & url, KEduVocDocument::FileType ft = KEduVocDocument::Automatic, const QString & generator = QString ( "Parley" ) ) { return m_doc->saveAs ( url, ft, generator ); }
00350
00351
00352
00360 void merge ( Document *docToMerge, bool matchIdentifiers ) { m_doc->merge ( docToMerge->kEduVocDocument(),matchIdentifiers ); }
00361
00362
00363
00364
00365
00366
00367
00368
00369
00370
00371
00372
00373
00374
00378 int identifierCount() const { return m_doc->identifierCount(); }
00379
00384 QObject * newIdentifier() { return new Identifier(); }
00385
00391 void appendNewIdentifier ( const QString& name, const QString& locale );
00392
00399 int appendIdentifier ( Identifier * identifier ) { return m_doc->appendIdentifier ( * ( identifier->kEduVocIdentifier() ) ); }
00400
00401
00402
00403
00404
00405
00406
00407
00408
00415 QObject * identifier ( int index ) { return new Identifier ( m_doc->identifier ( index ) ); }
00416
00422 void removeIdentifier ( int index ) { m_doc->removeIdentifier ( index ); }
00423
00425 QVariantList identifiers();
00426
00427
00428
00429
00430
00431
00432
00433
00434
00435
00436
00437
00438
00439
00440
00441
00442
00443
00444
00445
00446
00447
00448
00449
00450
00451
00452
00453
00454
00455
00456
00457
00458
00459
00460
00461
00462
00463
00464
00465
00466
00467
00468
00469
00470
00471 static KEduVocDocument::FileType detectFileType ( const QString &fileName ) { return KEduVocDocument::detectFileType ( fileName ); }
00472
00481 static QString pattern ( KEduVocDocument::FileDialogMode mode ) { return KEduVocDocument::pattern ( mode ); }
00482
00484 static QString errorDescription ( int errorCode ) { return KEduVocDocument::errorDescription ( errorCode ); }
00485
00486 private:
00487 KEduVocDocument * m_doc;
00488 };
00489
00490 }
00491 #endif