8 #ifndef ABSTRACT_WORKSPACE_H 9 #define ABSTRACT_WORKSPACE_H 13 #include "abstract_project.h" 14 #include "export_import_helper.h" 48 virtual void init() = 0;
64 virtual bool compare(
const QSharedPointer<AbstractWorkspace>& otherWorkspace)
const = 0;
71 virtual bool save() = 0;
79 virtual bool test() = 0;
117 bool removeProject(
const QSharedPointer<AbstractProject>& project);
195 QString
name()
const;
204 void setName(
const QString& name);
304 QVector<QSharedPointer<AbstractProject>>
projects()
const;
330 bool addProject(
const QSharedPointer<AbstractProject>& project);
340 void setProjects(
const QVector<QSharedPointer<AbstractProject>>& projects);
401 virtual void setOpen(
bool isOpen);
444 bool contains(
const QSharedPointer<AbstractProject>& project)
const;
512 QScopedPointer<SettingsScope> _settingsScope;
513 QVector<QSharedPointer<AbstractProject>> _projects;
514 bool _isOpen =
false;
515 bool _isDefault =
false;
516 bool _isValid =
false;
517 QString _description;
522 QString _connectionString;
523 int _majorWorkspaceVersion = -1;
524 int _minorWorkspaceVersion = -1;
525 QDateTime _lastUsedDateTime;
526 QDomDocument _workspaceDomDocument;
529 void workspaceUpdated();
530 void isValidChanged(
bool isValid);
531 void workspaceNameChanged(
const QString& workspaceName);
532 void workspaceConnectionChanged(
const QString& workspaceConnection);
533 void workspaceDescriptionChanged(
const QString& workspaceDescription);
534 void projectDomDocumentChanged(
const QSharedPointer<AbstractProject>& project);
537 #endif // ABSTRACT_WORKSPACE_H int projectCount() const
Definition: abstract_workspace.cpp:176
void setLastError(const QString &lastError)
Set the last occured workspace error string.
Definition: abstract_workspace.cpp:110
bool isValid() const
Definition: abstract_workspace.cpp:115
int minorWorkspaceVersion() const
Definition: abstract_workspace.cpp:197
QStringList projectNames() const
Definition: abstract_workspace.cpp:344
virtual void init()=0
Initialize the Workspace and set isValid flag. This function must be called, otherwise the workspace ...
virtual bool save()=0
Save workspace with all settings.
void setValid(bool isValid)
Set the workspace valid. This property decides if a workspace is loadable or not. ...
Definition: abstract_workspace.cpp:120
static QDomDocument workspaceDomDocumentTemplate(const QString &name, const QString &version, const QString &description)
This static function creates a clean workspace DomDocument.
Definition: abstract_workspace.cpp:253
void clearLastError()
Definition: abstract_workspace.cpp:105
void resetProjects() const
Reset all projects in workspace. Reload the complete project structure from xml. All settings...
Definition: abstract_workspace.cpp:407
void setDescription(const QString &description)
Set the workspace description.
Definition: abstract_workspace.cpp:145
QDomDocument workspaceDomDocument() const
Definition: abstract_workspace.cpp:55
The SettingsScope class acts as a container for scoped settings.
Definition: settings_scope.h:21
void setMinorWorkspaceVersion(int minorWorkspaceVersion)
Set the workspace minor version. If the version is not compatible with the application condition the ...
Definition: abstract_workspace.cpp:202
QSharedPointer< AbstractProject > project(QString connectionString) const
Definition: abstract_workspace.cpp:165
SettingsScope * settingsScope()
Definition: abstract_workspace.cpp:248
int majorWorkspaceVersion() const
Definition: abstract_workspace.cpp:207
bool removeProjects()
Remove all projects from workspace. The projects will not be deleted.
Definition: abstract_workspace.cpp:364
void resetExternChangedProjects() const
Reset all projects in workspace which are changed by extern.
Definition: abstract_workspace.cpp:385
virtual bool test()=0
Workspace test procedure. The Test-Procedure is defined by the specific workspace class...
QString description() const
Definition: abstract_workspace.cpp:140
QString version() const
Definition: abstract_workspace.cpp:187
bool saveExternChangedProjects() const
Save all projects in workspace which are changed by extern.
Definition: abstract_workspace.cpp:370
AbstractWorkspace(const QString &typeString)
AbstractWorkspace constructor with typeString definition (e,g. File, Sql).
Definition: abstract_workspace.cpp:6
virtual bool deleteProject(const QSharedPointer< AbstractProject > &project)=0
Delete a project and remove it from workspace.
bool setWorkspaceProperties(const QDomDocument &domDocument)
Set the workspace properties. The properties will be read from domDocument.
Definition: abstract_workspace.cpp:17
virtual bool deleteWorkspace(bool deleteProjects=false)=0
Delete workspace. The function deletes this workspace and all included projects, if the deleteProject...
bool isOpen() const
Definition: abstract_workspace.cpp:130
void setName(const QString &name)
Set the workspace name.
Definition: abstract_workspace.cpp:237
virtual bool compare(const QSharedPointer< AbstractWorkspace > &otherWorkspace) const =0
Compare a other Workspace source with this Workspace source (not the Object adress).
void setMajorWorkspaceVersion(int majorWorkspaceVersion)
Set the workspace major version. If the version is not compatible with the application condition the ...
Definition: abstract_workspace.cpp:212
QString typeString() const
Definition: abstract_workspace.cpp:227
void setVersion(const QString &version)
Set the workspace version. If the version is not compatible with the application condition the worksp...
Definition: abstract_workspace.cpp:192
const QString lastError() const
Definition: abstract_workspace.cpp:100
void setLastUsedDateTime(const QString &lastUsedDateTime)
Set the workspace last used date value ("MM/dd/yyyy hh:mm:ss")
Definition: abstract_workspace.cpp:89
void setConnectionString(const QString &connectionString)
Set the Workspace connection string. The connectionString is unique source identifier inside a runnin...
Definition: abstract_workspace.cpp:65
bool addProject(const QSharedPointer< AbstractProject > &project)
Add a project into workspace.
Definition: abstract_workspace.cpp:334
virtual void setOpen(bool isOpen)
Set the workspace open (in use) state.
Definition: abstract_workspace.cpp:135
bool saveProjects() const
Save all projects in workspace.
Definition: abstract_workspace.cpp:394
bool removeProject(const QSharedPointer< AbstractProject > &project)
Remove a project from workspace. The project will not be deleted.
Definition: abstract_workspace.cpp:355
virtual void update()=0
Update the workspace after property changes.
void setProjects(const QVector< QSharedPointer< AbstractProject >> &projects)
Set the vector of projects for a workspace.
Definition: abstract_workspace.cpp:155
QString lastUsedDateTime() const
Definition: abstract_workspace.cpp:80
void setDefault(bool isDefault)
Set workspace as default workspace. On Traviz start this workspace will be loaded directly...
Definition: abstract_workspace.cpp:222
QString connectionString() const
The Workspace connection string holds the source connection information (e.g File-Workspace -> filena...
Definition: abstract_workspace.cpp:75
QString name() const
Definition: abstract_workspace.cpp:232
bool contains(const QSharedPointer< AbstractProject > &project) const
Definition: abstract_workspace.cpp:323
QString className() const
Definition: abstract_workspace.cpp:181
QVector< QSharedPointer< AbstractProject > > projects() const
Definition: abstract_workspace.cpp:160
Definition: abstract_workspace.h:23
void setWorkspaceDomDocument(const QDomDocument &workspaceDomDocument)
Set the workspace dom document. The domdocument hold all information about the workspace (e...
Definition: abstract_workspace.cpp:60
bool validateWorkspaceDomDocument(const QDomDocument &domDocument)
Validate a workspace DomDocument.
Definition: abstract_workspace.cpp:265