DiagramDesigner/diagramUtils/source/projectManager.cpp

90 lines
2.4 KiB
C++

#include "projectManager.h"
#include "dataBase.h"
#include <QMessageBox>
ProjectManager& ProjectManager::instance()
{
//采用静态局部变量的方式,静态局部变量的初始化是在第一次访问时,以后的调用不会多次初始化,并且生命周期和程序一致
static ProjectManager instance;
return instance;
}
ProjectManager::ProjectManager(QObject *parent)
: QObject(parent)
{
}
ProjectManager::~ProjectManager()
{
}
void ProjectManager::saveEditorDataToDB(QUuid uid,const QString& name,const QString& tag,QByteArray byte,QString autor,QString sTime)
{
bool val = DataBase::GetInstance()->ifEditorProjectExist(name);
if(!val)
DataBase::GetInstance()->insertEditorProject(uid,name,tag);
QUuid uidSetting = QUuid::createUuid(); //暂定没有更新,变更后存储为新记录
bool res = DataBase::GetInstance()->insertBaseSetting(uidSetting,name,autor,byte,QUuid(),sTime);
if(res)
emit editorSaved(name,autor,uidSetting,sTime);
}
QByteArray ProjectManager::getEditorBaseSettingByUid(QUuid uid)
{
return DataBase::GetInstance()->getBaseSettingByUid(uid);
}
bool ProjectManager::createEditorProject(const QString& name)
{
bool bExist = DataBase::GetInstance()->ifEditorProjectExist(name);
if(bExist)
return true;
QUuid uid = QUuid::createUuid();
emit createNewEditor(name,uid);
return false;
}
void ProjectManager::unloadEditorProject(const QString& name)
{
emit prepareUnloadProject(name);
}
void ProjectManager::openSetting(const QString& name)
{
emit prepareOpenSetting(name);
}
void ProjectManager::saveEditor(const QString& name)
{
emit prepareSaveEditor(name);
}
bool ProjectManager::deleteEditor(const QString& name,QUuid id)
{
emit prepareDeleteBaseSetting(name,id);
return DataBase::GetInstance()->deleteBaseSetting(id);
}
void ProjectManager::loadBaseSetting(const QString& str,QUuid id)
{
emit prepareLoadBaseSetting(str,id);
}
QList<editorBaseSettingInfo> ProjectManager::getBaseSettingsByProject(const QString& strPro)
{
QList<editorBaseSettingInfo> lst;
QList<editorBaseSettingInfo> lstAll = DataBase::GetInstance()->getAllBaseSetting();
for(auto &info:lstAll){
if(info.projectName == strPro)
lst.append(info);
}
return lst;
}
editorBaseSettingInfo ProjectManager::getBaseSetting(QUuid uid)
{
return DataBase::GetInstance()->getBaseSettingInfo(uid);
}