Changeset View
Changeset View
Standalone View
Standalone View
libdiscover/backends/FlatpakBackend/FlatpakBackend.cpp
Show First 20 Lines • Show All 960 Lines • ▼ Show 20 Line(s) | 955 | if (resource->type() == FlatpakResource::Source) { | |||
---|---|---|---|---|---|
961 | } | 961 | } | ||
962 | return nullptr; | 962 | return nullptr; | ||
963 | } | 963 | } | ||
964 | 964 | | |||
965 | FlatpakTransaction *transaction = nullptr; | 965 | FlatpakTransaction *transaction = nullptr; | ||
966 | FlatpakInstallation *installation = resource->installation(); | 966 | FlatpakInstallation *installation = resource->installation(); | ||
967 | 967 | | |||
968 | if (resource->propertyState(FlatpakResource::RequiredRuntime) == FlatpakResource::NotKnownYet && resource->type() == FlatpakResource::DesktopApp) { | 968 | if (resource->propertyState(FlatpakResource::RequiredRuntime) == FlatpakResource::NotKnownYet && resource->type() == FlatpakResource::DesktopApp) { | ||
969 | transaction = new FlatpakTransaction(installation, resource, Transaction::InstallRole, true); | 969 | transaction = new FlatpakTransaction(resource, Transaction::InstallRole, true); | ||
970 | connect(resource, &FlatpakResource::propertyStateChanged, [resource, transaction, this] (FlatpakResource::PropertyKind kind, FlatpakResource::PropertyState state) { | 970 | connect(resource, &FlatpakResource::propertyStateChanged, [resource, transaction, this] (FlatpakResource::PropertyKind kind, FlatpakResource::PropertyState state) { | ||
971 | if (kind != FlatpakResource::RequiredRuntime) { | 971 | if (kind != FlatpakResource::RequiredRuntime) { | ||
972 | return; | 972 | return; | ||
973 | } | 973 | } | ||
974 | 974 | | |||
975 | if (state == FlatpakResource::AlreadyKnown) { | 975 | if (state == FlatpakResource::AlreadyKnown) { | ||
976 | FlatpakResource *runtime = getRuntimeForApp(resource); | 976 | FlatpakResource *runtime = getRuntimeForApp(resource); | ||
977 | if (runtime && !runtime->isInstalled()) { | 977 | if (runtime && !runtime->isInstalled()) { | ||
978 | transaction->setRuntime(runtime); | 978 | transaction->setRuntime(runtime); | ||
979 | } | 979 | } | ||
980 | } | 980 | } | ||
981 | transaction->start(); | 981 | transaction->start(); | ||
982 | }); | 982 | }); | ||
983 | } else { | 983 | } else { | ||
984 | FlatpakResource *runtime = getRuntimeForApp(resource); | 984 | FlatpakResource *runtime = getRuntimeForApp(resource); | ||
985 | if (runtime && !runtime->isInstalled()) { | 985 | if (runtime && !runtime->isInstalled()) { | ||
986 | transaction = new FlatpakTransaction(installation, resource, runtime, Transaction::InstallRole); | 986 | transaction = new FlatpakTransaction(resource, runtime, Transaction::InstallRole); | ||
987 | } else { | 987 | } else { | ||
988 | transaction = new FlatpakTransaction(installation, resource, Transaction::InstallRole); | 988 | transaction = new FlatpakTransaction(resource, Transaction::InstallRole); | ||
989 | } | 989 | } | ||
990 | } | 990 | } | ||
991 | 991 | | |||
992 | connect(transaction, &FlatpakTransaction::statusChanged, [this, installation, resource] (Transaction::Status status) { | 992 | connect(transaction, &FlatpakTransaction::statusChanged, [this, installation, resource] (Transaction::Status status) { | ||
993 | if (status == Transaction::Status::DoneStatus) { | 993 | if (status == Transaction::Status::DoneStatus) { | ||
994 | updateAppState(installation, resource); | 994 | updateAppState(installation, resource); | ||
995 | } | 995 | } | ||
996 | }); | 996 | }); | ||
Show All 13 Lines | 1009 | if (resource->type() == FlatpakResource::Source) { | |||
1010 | // Let source backend handle this | 1010 | // Let source backend handle this | ||
1011 | if (m_sources->removeSource(resource->flatpakName())) { | 1011 | if (m_sources->removeSource(resource->flatpakName())) { | ||
1012 | resource->setState(AbstractResource::None); | 1012 | resource->setState(AbstractResource::None); | ||
1013 | } | 1013 | } | ||
1014 | return nullptr; | 1014 | return nullptr; | ||
1015 | } | 1015 | } | ||
1016 | 1016 | | |||
1017 | FlatpakInstallation *installation = resource->installation(); | 1017 | FlatpakInstallation *installation = resource->installation(); | ||
1018 | FlatpakTransaction *transaction = new FlatpakTransaction(installation, resource, Transaction::RemoveRole); | 1018 | FlatpakTransaction *transaction = new FlatpakTransaction(resource, Transaction::RemoveRole); | ||
1019 | 1019 | | |||
1020 | connect(transaction, &FlatpakTransaction::statusChanged, [this, installation, resource] (Transaction::Status status) { | 1020 | connect(transaction, &FlatpakTransaction::statusChanged, [this, installation, resource] (Transaction::Status status) { | ||
1021 | if (status == Transaction::Status::DoneStatus) { | 1021 | if (status == Transaction::Status::DoneStatus) { | ||
1022 | updateAppSize(installation, resource); | 1022 | updateAppSize(installation, resource); | ||
1023 | } | 1023 | } | ||
1024 | }); | 1024 | }); | ||
1025 | return transaction; | 1025 | return transaction; | ||
1026 | } | 1026 | } | ||
Show All 36 Lines |