QtDeployer/source/CPP/mainmanager.cpp

107 lines
2.0 KiB
C++
Raw Normal View History

2018-03-12 11:43:03 +03:30
#include "mainmanager.h"
2018-06-10 14:44:36 +03:00
#include "utils.h"
2018-03-12 11:43:03 +03:30
QStringList MainManager::getAllExecutables()
{
QStringList list = m_qml->getAllSoFiles();
list << m_plg->getAllSoFiles();
list << m_executablepath;
return list;
}
MainManager::MainManager(CppManager *cpp, QmlManager *qml, OutputManager *out,
2018-05-26 16:48:58 +03:00
PluginManager *plg, BuildManager* bld, QObject *parent)
2018-03-12 11:43:03 +03:30
: BaseClass(parent)
{
setState(0);
m_cpp = cpp;
m_qml = qml;
m_out = out;
m_plg = plg;
2018-05-26 16:48:58 +03:00
m_bld = bld;
2018-05-07 19:33:05 +03:00
2018-05-26 16:48:58 +03:00
connect(m_bld, &BuildManager::finished, this, &MainManager::buildFinished);
}
void MainManager::buildFinished(){
2018-05-30 07:37:19 +03:00
emit outDirChanged();
2018-05-26 16:48:58 +03:00
m_qml->start();
m_plg->start();
m_cpp->start(getAllExecutables());
2018-03-12 11:43:03 +03:30
}
2018-06-02 15:55:53 +03:00
BuildManager* MainManager::getBuild(){
return m_bld;
}
CppManager* MainManager::getCpp(){
return m_cpp;
}
2018-05-30 07:37:19 +03:00
void MainManager::prepare(const QString &qtdir, const QString &projectdir)
2018-03-12 11:43:03 +03:30
{
QStringList list;
2018-05-30 07:37:19 +03:00
list << qtdir << projectdir ;
2018-03-12 11:43:03 +03:30
for (QString &S : list)
2018-05-10 14:04:01 +03:00
if (S[S.count() - 1] == '/') S.remove(S.count() - 1, 1);
2018-03-12 11:43:03 +03:30
m_qtdir = list[0];
2018-05-26 16:48:58 +03:00
m_projectdir = list[1];
2018-03-12 11:43:03 +03:30
2018-05-26 16:48:58 +03:00
m_bld->build();
2018-03-12 11:43:03 +03:30
}
2018-06-02 15:55:53 +03:00
void MainManager::deploy(const QStringList& list){
m_cpp->setCppLibraries(list);
2018-06-03 15:37:16 +03:00
start(true);
2018-06-02 15:55:53 +03:00
}
2018-03-12 11:43:03 +03:30
void MainManager::start(bool erase)
{
setState(1);
m_out->copyAll(m_cpp->getQtLibrariesFullPaths(), m_cpp->cppLibraries(),
m_qml->foundImports(), m_plg->neededPlugins(), erase);
setState(2);
}
bool MainManager::hasPrems(const QString &path)
{
QFileInfo info(path);
return (info.isReadable() && info.isWritable());
}
QString MainManager::stringFromUrl(QString url)
{
return url.remove("file://");
}
bool MainManager::pathExists(bool isdir, const QString &path)
{
if (isdir) return QDir(path).exists();
return QFile(path).exists();
}
2018-05-30 07:37:19 +03:00
const QString& MainManager::outDir() const{
return m_outputdir;
}
2018-06-10 14:44:36 +03:00
QString MainManager::appVer() const{
return Utils::getVersion();
}
2018-03-12 11:43:03 +03:30
void MainManager::setState(int state)
{
if (m_state == state) return;
m_state = state;
emit stateChanged(m_state);
}
int MainManager::state() const { return m_state; }