mirror of
https://github.com/QuasarApp/QtDeployer.git
synced 2025-04-26 21:44:31 +00:00
79 lines
1.6 KiB
C++
Executable File
79 lines
1.6 KiB
C++
Executable File
#include "mainmanager.h"
|
|
|
|
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,
|
|
PluginManager *plg, QObject *parent)
|
|
: BaseClass(parent)
|
|
{
|
|
setState(0);
|
|
|
|
m_cpp = cpp;
|
|
m_qml = qml;
|
|
m_out = out;
|
|
m_plg = plg;
|
|
}
|
|
|
|
void MainManager::prepare(const QString &qtdir, const QString &execpath,
|
|
const QString &projectdir, const QString &outdir)
|
|
{
|
|
QStringList list;
|
|
list << qtdir << execpath << projectdir << outdir;
|
|
|
|
for (QString &S : list)
|
|
if (S[S.count() - 1] == "/") S.remove(S.count() - 1, 1);
|
|
|
|
m_qtdir = list[0];
|
|
m_executablepath = list[1];
|
|
m_projectdir = list[2];
|
|
m_outputdir = list[3];
|
|
|
|
m_qml->start();
|
|
m_plg->start();
|
|
m_cpp->start(getAllExecutables());
|
|
}
|
|
|
|
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();
|
|
}
|
|
|
|
void MainManager::setState(int state)
|
|
{
|
|
if (m_state == state) return;
|
|
|
|
m_state = state;
|
|
emit stateChanged(m_state);
|
|
}
|
|
|
|
int MainManager::state() const { return m_state; }
|