Tome
A generic data editor for games supporting arbitrary input and output formats.
importcontroller.h
1 #ifndef IMPORTCONTROLLER_H
2 #define IMPORTCONTROLLER_H
3 
4 #include <QString>
5 #include <QVariant>
6 
7 #include "../Model/recordtableimporttemplatelist.h"
8 #include "../../Records/Model/recordfieldvaluemap.h"
9 
10 namespace Tome
11 {
12  class FieldDefinitionsController;
13  class RecordsController;
14  class TypesController;
15 
19  class ImportController : public QObject
20  {
21  Q_OBJECT
22 
23  public:
30  ImportController(FieldDefinitionsController& fieldDefinitionsController,
31  RecordsController& recordsController,
32  TypesController& typesController);
33 
38  void addRecordImportTemplate(const RecordTableImportTemplate& importTemplate);
39 
48  const RecordTableImportTemplate getRecordTableImportTemplate(const QString& name) const;
49 
54  const RecordTableImportTemplateList getRecordTableImportTemplates() const;
55 
61  void importRecords(const RecordTableImportTemplate& importTemplate, const QVariant& context);
62 
68  bool removeImportTemplate(const QString& name);
69 
74  void setRecordTableImportTemplates(RecordTableImportTemplateList& importTemplates);
75 
76  signals:
81  void importError(const QString& error) const;
82 
86  void importFinished() const;
87 
91  void importStarted() const;
92 
97 
105  void progressChanged(const QString title, const QString text, const int currentValue, const int maximumValue) const;
106 
107  private slots:
108  void onDataAvailable(const QString& importTemplateName, const QVariant& context, const QMap<QString, RecordFieldValueMap>& data) const;
109  void onDataUnavailable(const QString& importTemplateName, const QVariant& context, const QString& error) const;
110  void onProgressChanged(const QString title, const QString text, const int currentValue, const int maximumValue) const;
111 
112  private:
113  FieldDefinitionsController& fieldDefinitionsController;
114  RecordsController& recordsController;
115  TypesController& typesController;
116 
117  RecordTableImportTemplateList* model;
118  };
119 }
120 
121 #endif // IMPORTCONTROLLER_H
void importFinished() const
Importing records asynchronously has finished.
Definition: commandlineoptions.h:6
Controller for adding, updating and removing field definitions.
Definition: fielddefinitionscontroller.h:15
Controller for adding, updating and removing records.
Definition: recordscontroller.h:21
void importTemplatesChanged()
Available record import templates have changed.
void importRecords(const RecordTableImportTemplate &importTemplate, const QVariant &context)
Begins importing records asynchronously using the specified template.
Definition: importcontroller.cpp:56
void setRecordTableImportTemplates(RecordTableImportTemplateList &importTemplates)
Uses the specified list of record import templates as model for this controller.
Definition: importcontroller.cpp:125
void progressChanged(const QString title, const QString text, const int currentValue, const int maximumValue) const
Importing records asynchronously has made notable progress.
const RecordTableImportTemplate getRecordTableImportTemplate(const QString &name) const
Gets the record import template with the specified name.
Definition: importcontroller.cpp:34
Controller for adding, updating and removing custom types.
Definition: typescontroller.h:14
ImportController(FieldDefinitionsController &fieldDefinitionsController, RecordsController &recordsController, TypesController &typesController)
Constructs a new controller for importing record data.
Definition: importcontroller.cpp:16
const RecordTableImportTemplateList getRecordTableImportTemplates() const
Gets a list of all record import templates in the project.
Definition: importcontroller.cpp:51
Controller for importing record data.
Definition: importcontroller.h:19
void addRecordImportTemplate(const RecordTableImportTemplate &importTemplate)
Adds the specified record import template to the project.
Definition: importcontroller.cpp:23
void importError(const QString &error) const
Importing records asynchronously has failed.
void importStarted() const
Importing records asynchronously has started.
bool removeImportTemplate(const QString &name)
Removes the record import template with the specified name from the project.
Definition: importcontroller.cpp:103
Template for importing record data.
Definition: recordtableimporttemplate.h:15