Start more of the backend implementation.

ubuntu/noble
Simon Quigley 1 year ago
parent 26e2cbac91
commit 448d50f929

@ -18,7 +18,6 @@ calamares_add_plugin( pkgselect
EXPORT_MACRO PLUGINDLLEXPORT_PRO EXPORT_MACRO PLUGINDLLEXPORT_PRO
SOURCES SOURCES
PackageSelectViewStep.cpp PackageSelectViewStep.cpp
PackageSelectJob.cpp
RESOURCES RESOURCES
pkgselect.qrc pkgselect.qrc
SHARED_LIB SHARED_LIB

@ -1,5 +1,6 @@
#include "PackageSelectViewStep.h" #include "PackageSelectViewStep.h"
#include "PackageSelectJob.h" #include <QDebug>
#include "ProcessJob.h"
PackageSelectViewStep::PackageSelectViewStep( QObject* parent ) PackageSelectViewStep::PackageSelectViewStep( QObject* parent )
: Calamares::QmlViewStep( parent ), m_packageSelections(QVariantMap()) : Calamares::QmlViewStep( parent ), m_packageSelections(QVariantMap())
@ -13,11 +14,42 @@ PackageSelectViewStep::prettyName() const
return tr( "Package Selection" ); return tr( "Package Selection" );
} }
bool PackageSelectViewStep::exists_and_true(const QString& key) const
{
return m_packageSelections.contains(key) && m_packageSelections[key].toBool() == true;
}
Calamares::JobList Calamares::JobList
PackageSelectViewStep::jobs() const PackageSelectViewStep::jobs() const
{ {
// Global commands to be ran across all packages
QString apt = "/bin/sh -c '/usr/bin/apt-get -y ";
QString apt_install = apt + "install ";
bool run_apt_install = false;
QString apt_remove = apt + "purge ";
bool run_apt_remove = false;
QString working_path = "/";
bool runInChroot = true;
QList< Calamares::job_ptr > list; QList< Calamares::job_ptr > list;
list.append(Calamares::job_ptr(new PackageSelectJob()));
// Third party media etc. drivers
if (exists_and_true("restrictedExtras")) {
apt_install += "ubuntu-restricted-extras";
run_apt_install = true;
}
// Install packages
if (run_apt_install) {
Calamares::Job* job = new Calamares::ProcessJob(apt_install + "", working_path, runInChroot);
list.append(Calamares::job_ptr(job));
}
// Run an autoremove and clean afterwards
Calamares::Job* autoremove_job = new Calamares::ProcessJob(apt + "autoremove'", working_path, runInChroot);
Calamares::Job* clean_job = new Calamares::ProcessJob(apt + "clean'", working_path, runInChroot);
list.append(Calamares::job_ptr(autoremove_job));
list.append(Calamares::job_ptr(clean_job));
return list; return list;
} }
@ -39,9 +71,6 @@ void PackageSelectViewStep::setPackageSelections(const QVariantMap &value)
if (m_packageSelections != value) { if (m_packageSelections != value) {
m_packageSelections = value; m_packageSelections = value;
emit packageSelectionsChanged(); emit packageSelectionsChanged();
Calamares::GlobalStorage* globalStorage = Calamares::JobQueue::instance()->globalStorage();
globalStorage->insert("packageSelections", m_packageSelections);
} }
} }

@ -7,9 +7,7 @@
#include "DllMacro.h" #include "DllMacro.h"
#include "utils/PluginFactory.h" #include "utils/PluginFactory.h"
#include "viewpages/QmlViewStep.h" #include "viewpages/QmlViewStep.h"
#include "ProcessJob.h"
#include "GlobalStorage.h"
#include "JobQueue.h"
class PLUGINDLLEXPORT PackageSelectViewStep : public Calamares::QmlViewStep class PLUGINDLLEXPORT PackageSelectViewStep : public Calamares::QmlViewStep
{ {
@ -36,6 +34,8 @@ signals:
private: private:
QVariantMap m_packageSelections; QVariantMap m_packageSelections;
bool exists_and_true(const QString& key) const;
}; };
CALAMARES_PLUGIN_FACTORY_DECLARATION( PackageSelectViewStepFactory ) CALAMARES_PLUGIN_FACTORY_DECLARATION( PackageSelectViewStepFactory )

Loading…
Cancel
Save