mirror of
https://github.com/altlinux/ALTMediaWriter.git
synced 2024-10-26 08:55:03 +03:00
use remove uses of releases.variant
access variant through releases.selected.variant removed variantChanged() signal juggling make parents of release and variant generic QObject's pass release name to variant through ctor, not through release reference add Variant::custom()
This commit is contained in:
parent
00b0658ca2
commit
7666d90dba
@ -46,8 +46,8 @@ Dialog {
|
||||
if (!visible) {
|
||||
if (drives.selected)
|
||||
drives.selected.cancel()
|
||||
releases.variant.cancelDownload()
|
||||
releases.variant.resetStatus()
|
||||
releases.selected.variant.cancelDownload()
|
||||
releases.selected.variant.resetStatus()
|
||||
}
|
||||
reset()
|
||||
}
|
||||
@ -61,7 +61,7 @@ Dialog {
|
||||
states: [
|
||||
State {
|
||||
name: "preparing"
|
||||
when: releases.variant.status === Variant.PREPARING
|
||||
when: releases.selected.variant.status === Variant.PREPARING
|
||||
PropertyChanges {
|
||||
target: progressBar;
|
||||
value: 0.0/0.0
|
||||
@ -69,19 +69,19 @@ Dialog {
|
||||
},
|
||||
State {
|
||||
name: "downloading"
|
||||
when: releases.variant.status === Variant.DOWNLOADING
|
||||
when: releases.selected.variant.status === Variant.DOWNLOADING
|
||||
PropertyChanges {
|
||||
target: messageDownload
|
||||
visible: true
|
||||
}
|
||||
PropertyChanges {
|
||||
target: progressBar;
|
||||
value: releases.variant.progress.ratio
|
||||
value: releases.selected.variant.progress.ratio
|
||||
}
|
||||
},
|
||||
State {
|
||||
name: "resuming"
|
||||
when: releases.variant.status === Variant.DOWNLOAD_RESUMING
|
||||
when: releases.selected.variant.status === Variant.DOWNLOAD_RESUMING
|
||||
PropertyChanges {
|
||||
target: progressBar;
|
||||
value: 0.0/0.0
|
||||
@ -89,38 +89,38 @@ Dialog {
|
||||
},
|
||||
State {
|
||||
name: "download_verifying"
|
||||
when: releases.variant.status === Variant.DOWNLOAD_VERIFYING
|
||||
when: releases.selected.variant.status === Variant.DOWNLOAD_VERIFYING
|
||||
PropertyChanges {
|
||||
target: messageDownload
|
||||
visible: true
|
||||
}
|
||||
PropertyChanges {
|
||||
target: progressBar;
|
||||
value: releases.variant.progress.ratio;
|
||||
value: releases.selected.variant.progress.ratio;
|
||||
progressColor: Qt.lighter("green")
|
||||
}
|
||||
},
|
||||
State {
|
||||
name: "ready_no_drives"
|
||||
when: releases.variant.status === Variant.READY && drives.length <= 0
|
||||
when: releases.selected.variant.status === Variant.READY && drives.length <= 0
|
||||
},
|
||||
State {
|
||||
name: "ready"
|
||||
when: releases.variant.status === Variant.READY && drives.length > 0
|
||||
when: releases.selected.variant.status === Variant.READY && drives.length > 0
|
||||
PropertyChanges {
|
||||
target: messageLoseData;
|
||||
visible: true
|
||||
}
|
||||
PropertyChanges {
|
||||
target: rightButton;
|
||||
enabled: releases.variant.imageType.canWrite;
|
||||
enabled: releases.selected.variant.imageType.canWrite;
|
||||
color: "red";
|
||||
onClicked: drives.selected.write(releases.variant)
|
||||
onClicked: drives.selected.write(releases.selected.variant)
|
||||
}
|
||||
},
|
||||
State {
|
||||
name: "writing_not_possible"
|
||||
when: releases.variant.status === Variant.WRITING_NOT_POSSIBLE
|
||||
when: releases.selected.variant.status === Variant.WRITING_NOT_POSSIBLE
|
||||
PropertyChanges {
|
||||
target: driveCombo;
|
||||
enabled: false;
|
||||
@ -129,7 +129,7 @@ Dialog {
|
||||
},
|
||||
State {
|
||||
name: "writing"
|
||||
when: releases.variant.status === Variant.WRITING
|
||||
when: releases.selected.variant.status === Variant.WRITING
|
||||
PropertyChanges {
|
||||
target: messageDriveSize
|
||||
enabled: false
|
||||
@ -150,7 +150,7 @@ Dialog {
|
||||
},
|
||||
State {
|
||||
name: "write_verifying"
|
||||
when: releases.variant.status === Variant.WRITE_VERIFYING
|
||||
when: releases.selected.variant.status === Variant.WRITE_VERIFYING
|
||||
PropertyChanges {
|
||||
target: messageDriveSize
|
||||
enabled: false
|
||||
@ -171,7 +171,7 @@ Dialog {
|
||||
},
|
||||
State {
|
||||
name: "finished"
|
||||
when: releases.variant.status === Variant.FINISHED
|
||||
when: releases.selected.variant.status === Variant.FINISHED
|
||||
PropertyChanges {
|
||||
target: messageDriveSize
|
||||
enabled: false
|
||||
@ -192,7 +192,7 @@ Dialog {
|
||||
},
|
||||
State {
|
||||
name: "failed_download"
|
||||
when: releases.variant.status === Variant.FAILED_DOWNLOAD
|
||||
when: releases.selected.variant.status === Variant.FAILED_DOWNLOAD
|
||||
PropertyChanges {
|
||||
target: driveCombo;
|
||||
enabled: false
|
||||
@ -202,23 +202,23 @@ Dialog {
|
||||
text: qsTr("Retry");
|
||||
enabled: true;
|
||||
color: "#628fcf";
|
||||
onClicked: releases.variant.download()
|
||||
onClicked: releases.selected.variant.download()
|
||||
}
|
||||
},
|
||||
State {
|
||||
name: "failed_no_drives"
|
||||
when: releases.variant.status === Variant.FAILED && drives.length <= 0
|
||||
when: releases.selected.variant.status === Variant.FAILED && drives.length <= 0
|
||||
PropertyChanges {
|
||||
target: rightButton;
|
||||
text: qsTr("Retry");
|
||||
enabled: false;
|
||||
color: "red";
|
||||
onClicked: drives.selected.write(releases.variant)
|
||||
onClicked: drives.selected.write(releases.selected.variant)
|
||||
}
|
||||
},
|
||||
State {
|
||||
name: "failed"
|
||||
when: releases.variant.status === Variant.FAILED && drives.length > 0
|
||||
when: releases.selected.variant.status === Variant.FAILED && drives.length > 0
|
||||
PropertyChanges {
|
||||
target: messageLoseData;
|
||||
visible: true
|
||||
@ -228,13 +228,13 @@ Dialog {
|
||||
text: qsTr("Retry");
|
||||
enabled: true;
|
||||
color: "red";
|
||||
onClicked: drives.selected.write(releases.variant)
|
||||
onClicked: drives.selected.write(releases.selected.variant)
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
Keys.onEscapePressed: {
|
||||
if ([Variant.WRITING, Variant.WRITE_VERIFYING].indexOf(releases.variant.status) < 0)
|
||||
if ([Variant.WRITING, Variant.WRITE_VERIFYING].indexOf(releases.selected.variant.status) < 0)
|
||||
dialog.visible = false
|
||||
}
|
||||
|
||||
@ -288,7 +288,7 @@ Dialog {
|
||||
id: messageSelectedImage
|
||||
width: infoColumn.width
|
||||
visible: releases.selected.isCustom
|
||||
text: "<font color=\"gray\">" + qsTr("Selected:") + "</font> " + (releases.variant.image ? (((String)(releases.variant.image)).split("/").slice(-1)[0]) : ("<font color=\"gray\">" + qsTr("None") + "</font>"))
|
||||
text: "<font color=\"gray\">" + qsTr("Selected:") + "</font> " + (releases.selected.variant.image ? (((String)(releases.selected.variant.image)).split("/").slice(-1)[0]) : ("<font color=\"gray\">" + qsTr("None") + "</font>"))
|
||||
}
|
||||
|
||||
InfoMessage {
|
||||
@ -302,8 +302,8 @@ Dialog {
|
||||
InfoMessage {
|
||||
error: true
|
||||
width: infoColumn.width
|
||||
visible: releases.variant && releases.variant.errorString.length > 0
|
||||
text: releases.variant ? releases.variant.errorString : ""
|
||||
visible: releases.selected.variant && releases.selected.variant.errorString.length > 0
|
||||
text: releases.selected.variant ? releases.selected.variant.errorString : ""
|
||||
}
|
||||
}
|
||||
|
||||
@ -323,13 +323,13 @@ Dialog {
|
||||
Layout.fillHeight: true
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
font.pointSize: 9
|
||||
property double leftSize: releases.variant.progress.leftSize
|
||||
property double leftSize: releases.selected.variant.progress.leftSize
|
||||
property string leftStr: leftSize <= 0 ? "" :
|
||||
(leftSize < 1024) ? qsTr("(%1 B left)").arg(leftSize) :
|
||||
(leftSize < (1024 * 1024)) ? qsTr("(%1 KB left)").arg((leftSize / 1024).toFixed(1)) :
|
||||
(leftSize < (1024 * 1024 * 1024)) ? qsTr("(%1 MB left)").arg((leftSize / 1024 / 1024).toFixed(1)) :
|
||||
qsTr("(%1 GB left)").arg((leftSize / 1024 / 1024 / 1024).toFixed(1))
|
||||
text: releases.variant.statusString + (releases.variant.status == Variant.DOWNLOADING ? (" " + leftStr) : "")
|
||||
text: releases.selected.variant.statusString + (releases.selected.variant.status == Variant.DOWNLOADING ? (" " + leftStr) : "")
|
||||
color: palette.windowText
|
||||
}
|
||||
Item {
|
||||
@ -344,11 +344,11 @@ Dialog {
|
||||
}
|
||||
AdwaitaCheckBox {
|
||||
text: qsTr("Write the image after downloading")
|
||||
enabled: drives.selected && ((releases.variant.status == Variant.DOWNLOADING) || (releases.variant.status == Variant.DOWNLOAD_RESUMING)) && releases.variant.imageType.canWrite
|
||||
enabled: drives.selected && ((releases.selected.variant.status == Variant.DOWNLOADING) || (releases.selected.variant.status == Variant.DOWNLOAD_RESUMING)) && releases.selected.variant.imageType.canWrite
|
||||
visible: enabled
|
||||
|
||||
onCheckedChanged: {
|
||||
releases.variant.delayedWrite = checked
|
||||
releases.selected.variant.delayedWrite = checked
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -369,10 +369,10 @@ Dialog {
|
||||
Layout.alignment : Qt.AlignVCenter
|
||||
scale: 1.4
|
||||
SequentialAnimation {
|
||||
running: releases.variant.status == Variant.WRITING
|
||||
running: releases.selected.variant.status == Variant.WRITING
|
||||
loops: -1
|
||||
onStopped: {
|
||||
if (releases.variant.status == Variant.FINISHED)
|
||||
if (releases.selected.variant.status == Variant.FINISHED)
|
||||
writeArrow.color = "#00dd00"
|
||||
else
|
||||
writeArrow.color = palette.text
|
||||
@ -409,8 +409,8 @@ Dialog {
|
||||
value: driveCombo.currentIndex
|
||||
}
|
||||
onActivated: {
|
||||
if ([Variant.FINISHED, Variant.FAILED].indexOf(releases.variant.status) >= 0)
|
||||
releases.variant.resetStatus()
|
||||
if ([Variant.FINISHED, Variant.FAILED].indexOf(releases.selected.variant.status) >= 0)
|
||||
releases.selected.variant.resetStatus()
|
||||
}
|
||||
placeholderText: qsTr("There are no portable drives connected")
|
||||
}
|
||||
@ -425,7 +425,7 @@ Dialog {
|
||||
width: 1
|
||||
}
|
||||
Text {
|
||||
visible: !releases.variant.imageType.canWrite
|
||||
visible: !releases.selected.variant.imageType.canWrite
|
||||
font.pointSize: 10
|
||||
Layout.fillWidth: true
|
||||
width: Layout.width
|
||||
|
@ -25,7 +25,7 @@
|
||||
|
||||
#include <QDebug>
|
||||
|
||||
Release::Release(ReleaseManager *parent, const QString &name, const QString &display_name, const QString &summary, const QString &description, const QString &icon, const QStringList &screenshots)
|
||||
Release::Release(const QString &name, const QString &display_name, const QString &summary, const QString &description, const QString &icon, const QStringList &screenshots, QObject *parent)
|
||||
: QObject(parent)
|
||||
, m_name(name)
|
||||
, m_displayName(display_name)
|
||||
@ -35,14 +35,11 @@ Release::Release(ReleaseManager *parent, const QString &name, const QString &dis
|
||||
, m_screenshots(screenshots)
|
||||
, m_isCustom(false)
|
||||
{
|
||||
// TODO: connect to release's signal in parent, not the other way around, won't need to have parent be releasemanager then
|
||||
connect(
|
||||
this, &Release::selectedVariantChanged,
|
||||
parent, &ReleaseManager::variantChangedFilter);
|
||||
|
||||
}
|
||||
|
||||
Release *Release::custom(ReleaseManager *parent) {
|
||||
auto customRelease = new Release(parent, QString(), tr("Custom image"), QT_TRANSLATE_NOOP("Release", "Pick a file from your drive(s)"), { QT_TRANSLATE_NOOP("Release", "<p>Here you can choose a OS image from your hard drive to be written to your flash disk</p><p>Currently it is only supported to write raw disk images (.iso or .bin)</p>") }, "qrc:/logo/custom", {});
|
||||
Release *Release::custom(QObject *parent) {
|
||||
auto customRelease = new Release(QString(), tr("Custom image"), QT_TRANSLATE_NOOP("Release", "Pick a file from your drive(s)"), { QT_TRANSLATE_NOOP("Release", "<p>Here you can choose a OS image from your hard drive to be written to your flash disk</p><p>Currently it is only supported to write raw disk images (.iso or .bin)</p>") }, "qrc:/logo/custom", {}, parent);
|
||||
customRelease->m_isCustom = true;
|
||||
customRelease->setLocalFile(QString());
|
||||
|
||||
@ -84,7 +81,7 @@ void Release::updateUrl(const QString &url, Architecture *architecture, ImageTyp
|
||||
}
|
||||
return out;
|
||||
}();
|
||||
auto new_variant = new Variant(url, architecture, imageType, board, live, this);
|
||||
auto new_variant = new Variant(url, m_displayName, architecture, imageType, board, live, this);
|
||||
|
||||
m_variants.insert(insert_index, new_variant);
|
||||
emit variantsChanged();
|
||||
@ -97,17 +94,14 @@ void Release::updateUrl(const QString &url, Architecture *architecture, ImageTyp
|
||||
}
|
||||
|
||||
void Release::setLocalFile(const QString &path) {
|
||||
// Delete old custom variant (there's only one, but iterate anyway)
|
||||
// Delete old custom variant (there's really only one, but iterate anyway)
|
||||
for (auto variant : m_variants) {
|
||||
variant->deleteLater();
|
||||
}
|
||||
m_variants.clear();
|
||||
|
||||
// Add new variant
|
||||
ImageType *image_type = ImageType::fromFilename(path);
|
||||
auto customVariant = new Variant(path, Architecture::fromId(Architecture::UNKNOWN), image_type, QString(), false, this);
|
||||
// NOTE: start out in ready because don't need to download
|
||||
customVariant->setStatus(Variant::READY);
|
||||
auto customVariant = Variant::custom(path, this);
|
||||
m_variants.append(customVariant);
|
||||
|
||||
emit variantsChanged();
|
||||
|
@ -20,9 +20,6 @@
|
||||
#ifndef RELEASE_H
|
||||
#define RELEASE_H
|
||||
|
||||
|
||||
class ReleaseManager;
|
||||
class Release;
|
||||
class Variant;
|
||||
class Architecture;
|
||||
class ImageType;
|
||||
@ -63,12 +60,11 @@ class Release : public QObject {
|
||||
Q_PROPERTY(Variant* variant READ selectedVariant NOTIFY selectedVariantChanged)
|
||||
Q_PROPERTY(int variantIndex READ selectedVariantIndex WRITE setSelectedVariantIndex NOTIFY selectedVariantChanged)
|
||||
public:
|
||||
Release(ReleaseManager *parent, const QString &name, const QString &displayName, const QString &summary, const QString &description, const QString &icon, const QStringList &screenshots);
|
||||
Release(const QString &name, const QString &displayName, const QString &summary, const QString &description, const QString &icon, const QStringList &screenshots, QObject *parent);
|
||||
|
||||
static Release *custom(ReleaseManager *parent);
|
||||
static Release *custom(QObject *parent);
|
||||
|
||||
void updateUrl(const QString &url, Architecture *architecture, ImageType *imageType, const QString &board, const bool live);
|
||||
ReleaseManager *manager();
|
||||
|
||||
Q_INVOKABLE void setLocalFile(const QString &path);
|
||||
|
||||
|
@ -121,10 +121,6 @@ ReleaseManager::ReleaseManager(QObject *parent)
|
||||
loadVariants(variantsFile);
|
||||
}
|
||||
|
||||
connect(
|
||||
this, &ReleaseManager::selectedChanged,
|
||||
this, &ReleaseManager::variantChangedFilter);
|
||||
|
||||
// Download releases from getalt.org
|
||||
QTimer::singleShot(0, this, &ReleaseManager::downloadMetadata);
|
||||
}
|
||||
@ -315,12 +311,6 @@ void ReleaseManager::setBeingUpdated(const bool value) {
|
||||
emit beingUpdatedChanged();
|
||||
}
|
||||
|
||||
void ReleaseManager::variantChangedFilter() {
|
||||
// TODO here we could add some filters to help signal/slot performance
|
||||
// TODO otherwise this can just go away and connections can be directly to the signal
|
||||
emit variantChanged();
|
||||
}
|
||||
|
||||
bool ReleaseManager::beingUpdated() const {
|
||||
return m_beingUpdated;
|
||||
}
|
||||
@ -394,16 +384,6 @@ void ReleaseManager::setSelectedIndex(int o) {
|
||||
}
|
||||
}
|
||||
|
||||
Variant *ReleaseManager::variant() {
|
||||
Release *release = selected();
|
||||
|
||||
if (release != nullptr) {
|
||||
return release->selectedVariant();
|
||||
} else {
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
void ReleaseManager::loadVariants(const QString &variantsFile) {
|
||||
YAML::Node variants = YAML::Load(variantsFile.toStdString());
|
||||
|
||||
@ -556,7 +536,7 @@ QVariant ReleaseListModel::data(const QModelIndex &index, int role) const {
|
||||
return QVariant();
|
||||
}
|
||||
|
||||
ReleaseListModel::ReleaseListModel(const QList<QString> §ionsFiles, ReleaseManager *parent)
|
||||
ReleaseListModel::ReleaseListModel(const QList<QString> §ionsFiles, QObject *parent)
|
||||
: QAbstractListModel(parent)
|
||||
{
|
||||
qDebug() << "Creating ReleaseListModel";
|
||||
@ -602,7 +582,7 @@ ReleaseListModel::ReleaseListModel(const QList<QString> §ionsFiles, ReleaseM
|
||||
// NOTE: icon_path is consumed by QML, so it needs to begin with "qrc:/" not ":/"
|
||||
const QString icon_path = "qrc" + icon_path_test;
|
||||
|
||||
const auto release = new Release(manager(), name, display_name, summary, description, icon_path, screenshots);
|
||||
const auto release = new Release(name, display_name, summary, description, icon_path, screenshots, this);
|
||||
|
||||
// Reorder releases because default order in
|
||||
// sections files is not good. Try to put
|
||||
@ -627,14 +607,10 @@ ReleaseListModel::ReleaseListModel(const QList<QString> §ionsFiles, ReleaseM
|
||||
}
|
||||
}
|
||||
|
||||
auto customRelease = Release::custom(manager());
|
||||
auto customRelease = Release::custom(this);
|
||||
m_releases.insert(FRONTPAGE_ROW_COUNT - 1, customRelease);
|
||||
}
|
||||
|
||||
ReleaseManager *ReleaseListModel::manager() {
|
||||
return qobject_cast<ReleaseManager*>(parent());
|
||||
}
|
||||
|
||||
Release *ReleaseListModel::get(int index) {
|
||||
if (index >= 0 && index < m_releases.count())
|
||||
return m_releases[index];
|
||||
|
@ -79,8 +79,6 @@ class ReleaseManager : public QSortFilterProxyModel {
|
||||
Q_PROPERTY(Release* selected READ selected NOTIFY selectedChanged)
|
||||
Q_PROPERTY(int selectedIndex READ selectedIndex WRITE setSelectedIndex NOTIFY selectedChanged)
|
||||
|
||||
Q_PROPERTY(Variant* variant READ variant NOTIFY variantChanged)
|
||||
|
||||
Q_PROPERTY(QStringList architectures READ architectures CONSTANT)
|
||||
Q_PROPERTY(QStringList fileNameFilters READ fileNameFilters CONSTANT)
|
||||
public:
|
||||
@ -106,18 +104,12 @@ public:
|
||||
int selectedIndex() const;
|
||||
void setSelectedIndex(int o);
|
||||
|
||||
Variant *variant();
|
||||
|
||||
public slots:
|
||||
void variantChangedFilter();
|
||||
|
||||
signals:
|
||||
void beingUpdatedChanged();
|
||||
void frontPageChanged();
|
||||
void filterTextChanged();
|
||||
void filterArchitectureChanged();
|
||||
void selectedChanged();
|
||||
void variantChanged();
|
||||
|
||||
private:
|
||||
ReleaseListModel *m_sourceModel { nullptr };
|
||||
@ -141,8 +133,7 @@ private:
|
||||
class ReleaseListModel : public QAbstractListModel {
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit ReleaseListModel(const QList<QString> §ionsFiles, ReleaseManager *parent);
|
||||
ReleaseManager *manager();
|
||||
explicit ReleaseListModel(const QList<QString> §ionsFiles, QObject *parent);
|
||||
|
||||
Q_INVOKABLE Release *get(int index);
|
||||
|
||||
|
@ -31,8 +31,9 @@
|
||||
#include <QStandardPaths>
|
||||
#include <QDir>
|
||||
|
||||
Variant::Variant(QString url, Architecture *arch, ImageType *imageType, QString board, const bool live, Release *parent)
|
||||
Variant::Variant(QString url, const QString &releaseName_arg, Architecture *arch, ImageType *imageType, QString board, const bool live, QObject *parent)
|
||||
: QObject(parent)
|
||||
, releaseName(releaseName_arg)
|
||||
, m_arch(arch)
|
||||
, m_image_type(imageType)
|
||||
, m_board(board)
|
||||
@ -43,6 +44,20 @@ Variant::Variant(QString url, Architecture *arch, ImageType *imageType, QString
|
||||
|
||||
}
|
||||
|
||||
Variant *Variant::custom(const QString &path, QObject *parent) {
|
||||
const QString releaseName = tr("Custom");
|
||||
ImageType *image_type = ImageType::fromFilename(path);
|
||||
Architecture *arch = Architecture::fromId(Architecture::UNKNOWN);
|
||||
const QString board = QString();
|
||||
const bool live = false;
|
||||
|
||||
auto variant = new Variant(path, releaseName, arch, image_type, board, live, parent);
|
||||
// NOTE: start out in ready because don't need to download
|
||||
variant->setStatus(Variant::READY);
|
||||
|
||||
return variant;
|
||||
}
|
||||
|
||||
bool Variant::updateUrl(const QString &url) {
|
||||
bool changed = false;
|
||||
if (!url.isEmpty() && m_url.toUtf8().trimmed() != url.toUtf8().trimmed()) {
|
||||
@ -54,14 +69,6 @@ bool Variant::updateUrl(const QString &url) {
|
||||
return changed;
|
||||
}
|
||||
|
||||
Release *Variant::release() {
|
||||
return qobject_cast<Release*>(parent());
|
||||
}
|
||||
|
||||
const Release *Variant::release() const {
|
||||
return qobject_cast<const Release*>(parent());
|
||||
}
|
||||
|
||||
Architecture *Variant::arch() const {
|
||||
return m_arch;
|
||||
}
|
||||
@ -89,10 +96,7 @@ QString Variant::name() const {
|
||||
}
|
||||
|
||||
QString Variant::fullName() {
|
||||
if (release()->isCustom())
|
||||
return QFileInfo(image()).fileName();
|
||||
else
|
||||
return QString("%1 %2").arg(release()->displayName(), name());
|
||||
return QString("%1 %2").arg(releaseName, name());
|
||||
}
|
||||
|
||||
QString Variant::url() const {
|
||||
|
@ -28,7 +28,6 @@
|
||||
class Progress;
|
||||
class ImageType;
|
||||
class Architecture;
|
||||
class Release;
|
||||
|
||||
/**
|
||||
* @brief The Variant class
|
||||
@ -92,13 +91,12 @@ public:
|
||||
tr("Error")
|
||||
};
|
||||
|
||||
Variant(QString url, Architecture *arch, ImageType *imageType, QString board, const bool live, Release *parent);
|
||||
Variant(QString url, const QString &releaseName_arg, Architecture *arch, ImageType *imageType, QString board, const bool live, QObject *parent);
|
||||
|
||||
static Variant *custom(const QString &path, QObject *parent);
|
||||
|
||||
bool updateUrl(const QString &url);
|
||||
|
||||
Release *release();
|
||||
const Release *release() const;
|
||||
|
||||
Architecture *arch() const;
|
||||
ImageType *imageType() const;
|
||||
QString name() const;
|
||||
@ -136,6 +134,7 @@ public slots:
|
||||
void onImageDownloadFinished();
|
||||
|
||||
private:
|
||||
const QString releaseName;
|
||||
QString m_image {};
|
||||
Architecture *m_arch;
|
||||
ImageType *m_image_type;
|
||||
|
@ -91,9 +91,9 @@ Item {
|
||||
deviceNotification.open = false
|
||||
archPopover.open = false
|
||||
dlDialog.visible = true
|
||||
releases.variant.download()
|
||||
releases.selected.variant.download()
|
||||
}
|
||||
enabled: !releases.selected.isCustom || releases.variant.image
|
||||
enabled: !releases.selected.isCustom || releases.selected.variant.image
|
||||
}
|
||||
}
|
||||
|
||||
@ -125,7 +125,7 @@ Item {
|
||||
}
|
||||
Text {
|
||||
font.pointSize: 12
|
||||
property double size: releases.variant.size
|
||||
property double size: releases.selected.variant.size
|
||||
text: size <= 0 ? "" :
|
||||
(size < 1024) ? (size + " B") :
|
||||
(size < (1024 * 1024)) ? ((size / 1024).toFixed(1) + " KB") :
|
||||
@ -143,13 +143,13 @@ Item {
|
||||
font.pointSize: 10
|
||||
color: mixColors(palette.window, palette.windowText, 0.3)
|
||||
visible: releases.selected.variant
|
||||
text: releases.variant.name
|
||||
text: releases.selected.variant.name
|
||||
}
|
||||
Text {
|
||||
font.pointSize: 8
|
||||
color: mixColors(palette.window, palette.windowText, 0.3)
|
||||
visible: releases.variant
|
||||
text: releases.variant && releases.variant.imageType.name
|
||||
visible: releases.selected.variant
|
||||
text: releases.selected.variant && releases.selected.variant.imageType.name
|
||||
}
|
||||
RowLayout {
|
||||
spacing: 0
|
||||
|
Loading…
Reference in New Issue
Block a user