90 lines
2.4 KiB
C++
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);
|
|
}
|