Changeset View
Changeset View
Standalone View
Standalone View
libdiscover/backends/FwupdBackend/FwupdBackend.cpp
Show First 20 Lines • Show All 80 Lines • ▼ Show 20 Line(s) | |||||
81 | } | 81 | } | ||
82 | 82 | | |||
83 | FwupdResource * FwupdBackend::createDevice(FwupdDevice *device) | 83 | FwupdResource * FwupdBackend::createDevice(FwupdDevice *device) | ||
84 | { | 84 | { | ||
85 | const QString name = QString::fromUtf8(fwupd_device_get_name(device)); | 85 | const QString name = QString::fromUtf8(fwupd_device_get_name(device)); | ||
86 | FwupdResource* res = new FwupdResource(name, true, this); | 86 | FwupdResource* res = new FwupdResource(name, true, this); | ||
87 | res->setId(buildDeviceID(device)); | 87 | res->setId(buildDeviceID(device)); | ||
88 | res->addCategories(QStringLiteral("Releases")); | 88 | res->addCategories(QStringLiteral("Releases")); | ||
89 | res->setIconName(QString::fromUtf8((const gchar *)g_ptr_array_index(fwupd_device_get_icons(device),0)));// Implement a Better way to decide icon | 89 | if(fwupd_device_get_icons(device)->len > 1) | ||
90 | res->setIconName(QString::fromUtf8((const gchar *)g_ptr_array_index(fwupd_device_get_icons(device),0)));// Check Weather given icon exists or not! | ||||
90 | 91 | | |||
91 | setDeviceDetails(res,device); | 92 | setDeviceDetails(res,device); | ||
92 | return res; | 93 | return res; | ||
93 | } | 94 | } | ||
94 | 95 | | |||
95 | FwupdResource * FwupdBackend::createRelease(FwupdDevice *device) | 96 | FwupdResource * FwupdBackend::createRelease(FwupdDevice *device) | ||
96 | { | 97 | { | ||
97 | FwupdRelease *release = fwupd_device_get_release_default(device); | 98 | FwupdRelease *release = fwupd_device_get_release_default(device); | ||
98 | const QString name = QString::fromUtf8(fwupd_release_get_name(release)); | 99 | const QString name = QString::fromUtf8(fwupd_release_get_name(release)); | ||
99 | FwupdResource* res = new FwupdResource(name, true, this); | 100 | FwupdResource* res = new FwupdResource(name, true, this); | ||
100 | 101 | | |||
101 | res->setDeviceID(QString::fromUtf8(fwupd_device_get_id(device))); | 102 | res->setDeviceID(QString::fromUtf8(fwupd_device_get_id(device))); | ||
102 | setReleaseDetails(res,release); | 103 | setReleaseDetails(res,release); | ||
103 | setDeviceDetails(res,device); | 104 | setDeviceDetails(res,device); | ||
104 | 105 | | |||
105 | if(fwupd_release_get_appstream_id(release)) | 106 | if(fwupd_release_get_appstream_id(release)) | ||
106 | res->setId(QString::fromUtf8(fwupd_release_get_appstream_id(release))); | 107 | res->setId(QString::fromUtf8(fwupd_release_get_appstream_id(release))); | ||
108 | else | ||||
109 | return nullptr; | ||||
107 | 110 | | |||
108 | /* the same as we have already */ | 111 | /* the same as we have already */ | ||
109 | if(QLatin1Literal(fwupd_device_get_version(device)) == QLatin1Literal(fwupd_release_get_version(release))) | 112 | if(QLatin1Literal(fwupd_device_get_version(device)) == QLatin1Literal(fwupd_release_get_version(release))) | ||
110 | { | 113 | { | ||
111 | qWarning() << "Fwupd Error: same firmware version as installed"; | 114 | qWarning() << "Fwupd Error: same firmware version as installed"; | ||
112 | } | 115 | } | ||
113 | 116 | | |||
114 | return res; | 117 | return res; | ||
115 | 118 | | |||
116 | } | 119 | } | ||
117 | void FwupdBackend::setReleaseDetails(FwupdResource *res, FwupdRelease *release) | 120 | void FwupdBackend::setReleaseDetails(FwupdResource *res, FwupdRelease *release) | ||
118 | { | 121 | { | ||
119 | res->addCategories(QLatin1String("Releases")); | 122 | res->addCategories(QLatin1String("Releases")); | ||
120 | if(fwupd_release_get_summary(release)) | 123 | if(fwupd_release_get_summary(release)) | ||
121 | res->setSummary(QString::fromUtf8(fwupd_release_get_summary(release))); | 124 | res->setSummary(QString::fromUtf8(fwupd_release_get_summary(release))); | ||
122 | if(fwupd_release_get_vendor(release)) | 125 | if(fwupd_release_get_vendor(release)) | ||
123 | res->setVendor(QString::fromUtf8(fwupd_release_get_vendor(release))); | 126 | res->setVendor(QString::fromUtf8(fwupd_release_get_vendor(release))); | ||
127 | if(fwupd_release_get_size(release)) | ||||
128 | res->setSize(fwupd_release_get_size(release)); | ||||
124 | if(fwupd_release_get_version(release)) | 129 | if(fwupd_release_get_version(release)) | ||
125 | res->setVersion(QString::fromUtf8(fwupd_release_get_version(release))); | 130 | res->setVersion(QString::fromUtf8(fwupd_release_get_version(release))); | ||
126 | if(fwupd_release_get_description(release)) | 131 | if(fwupd_release_get_description(release)) | ||
127 | res->setDescription(QString::fromUtf8((fwupd_release_get_description(release)))); | 132 | res->setDescription(QString::fromUtf8((fwupd_release_get_description(release)))); | ||
128 | if(fwupd_release_get_homepage(release)) | 133 | if(fwupd_release_get_homepage(release)) | ||
129 | res->setHomePage(QUrl(QString::fromUtf8(fwupd_release_get_homepage(release)))); | 134 | res->setHomePage(QUrl(QString::fromUtf8(fwupd_release_get_homepage(release)))); | ||
130 | if(fwupd_release_get_license(release)) | 135 | if(fwupd_release_get_license(release)) | ||
131 | res->setLicense(QString::fromUtf8(fwupd_release_get_license(release))); | 136 | res->setLicense(QString::fromUtf8(fwupd_release_get_license(release))); | ||
132 | if(fwupd_release_get_uri(release)) | 137 | if(fwupd_release_get_uri(release)) | ||
133 | res->m_updateURI = QString::fromUtf8(fwupd_release_get_uri(release)); | 138 | res->m_updateURI = QString::fromUtf8(fwupd_release_get_uri(release)); | ||
134 | } | 139 | } | ||
135 | void FwupdBackend::setDeviceDetails(FwupdResource *res, FwupdDevice *dev) | 140 | void FwupdBackend::setDeviceDetails(FwupdResource *res, FwupdDevice *dev) | ||
136 | { | 141 | { | ||
137 | res->isLiveUpdatable = fwupd_device_has_flag(dev, FWUPD_DEVICE_FLAG_UPDATABLE); | 142 | res->isLiveUpdatable = fwupd_device_has_flag(dev, FWUPD_DEVICE_FLAG_UPDATABLE); | ||
138 | res->isOnlyOffline = fwupd_device_has_flag(dev, FWUPD_DEVICE_FLAG_ONLY_OFFLINE); | 143 | res->isOnlyOffline = fwupd_device_has_flag(dev, FWUPD_DEVICE_FLAG_ONLY_OFFLINE); | ||
139 | res->needsReboot = fwupd_device_has_flag(dev, FWUPD_DEVICE_FLAG_NEEDS_REBOOT); | 144 | res->needsReboot = fwupd_device_has_flag(dev, FWUPD_DEVICE_FLAG_NEEDS_REBOOT); | ||
140 | res->isDeviceRemoval = !fwupd_device_has_flag(dev, FWUPD_DEVICE_FLAG_INTERNAL); | 145 | res->isDeviceRemoval = !fwupd_device_has_flag(dev, FWUPD_DEVICE_FLAG_INTERNAL); | ||
146 | res->needsBootLoader = fwupd_device_has_flag(dev, FWUPD_DEVICE_FLAG_NEEDS_BOOTLOADER); | ||||
141 | 147 | | |||
142 | GPtrArray *guids = fwupd_device_get_guids(dev); | 148 | GPtrArray *guids = fwupd_device_get_guids(dev); | ||
143 | if(guids->len > 0) | 149 | if(guids->len > 0) | ||
144 | { | 150 | { | ||
145 | QString guidStr = QString::fromUtf8((char *)g_ptr_array_index(guids, 0)); | 151 | QString guidStr = QString::fromUtf8((char *)g_ptr_array_index(guids, 0)); | ||
146 | for(uint i = 1; i < guids->len; i++) | 152 | for(uint i = 1; i < guids->len; i++) | ||
147 | { | 153 | { | ||
148 | guidStr += QLatin1Char(',') + QString::fromUtf8((char *)g_ptr_array_index(guids, i)); | 154 | guidStr += QLatin1Char(',') + QString::fromUtf8((char *)g_ptr_array_index(guids, i)); | ||
149 | } | 155 | } | ||
150 | res->guidString = guidStr; | 156 | res->guidString = guidStr; | ||
151 | } | 157 | } | ||
152 | if(fwupd_device_get_name(dev)) | 158 | if(fwupd_device_get_name(dev)) | ||
153 | { | 159 | { | ||
154 | QString vendorName; | 160 | QString vendorName; | ||
155 | vendorName.sprintf("%s",fwupd_device_get_name(dev)); | 161 | vendorName.sprintf("%s",fwupd_device_get_name(dev)); | ||
156 | 162 | | |||
157 | if(vendorName.indexOf(QString::fromUtf8(fwupd_device_get_vendor(dev))) == 0) | 163 | if(vendorName.indexOf(QString::fromUtf8(fwupd_device_get_vendor(dev))) == 0) | ||
158 | vendorName.sprintf("%s %s",fwupd_device_get_vendor(dev), fwupd_device_get_name(dev)); | 164 | vendorName.sprintf("%s %s",fwupd_device_get_vendor(dev), fwupd_device_get_name(dev)); | ||
159 | res->setName(vendorName); | 165 | res->setName(vendorName); | ||
160 | } | 166 | } | ||
161 | if(fwupd_device_get_summary(dev)) | 167 | if(fwupd_device_get_summary(dev)) | ||
162 | res->setSummary(QString::fromUtf8(fwupd_device_get_summary(dev))); | 168 | res->setSummary(QString::fromUtf8(fwupd_device_get_summary(dev))); | ||
163 | if(fwupd_device_get_vendor(dev)) | 169 | if(fwupd_device_get_vendor(dev)) | ||
164 | res->setVendor(QString::fromUtf8(fwupd_device_get_vendor(dev))); | 170 | res->setVendor(QString::fromUtf8(fwupd_device_get_vendor(dev))); | ||
171 | if(fwupd_device_get_created(dev)) | ||||
172 | res->setReleaseDate((QDateTime::fromSecsSinceEpoch(fwupd_device_get_created(dev))).date()); | ||||
165 | if(fwupd_device_get_version(dev)) | 173 | if(fwupd_device_get_version(dev)) | ||
166 | res->setVersion(QString::fromUtf8(fwupd_device_get_version(dev))); | 174 | res->setVersion(QString::fromUtf8(fwupd_device_get_version(dev))); | ||
167 | if(fwupd_device_get_description(dev)) | 175 | if(fwupd_device_get_description(dev)) | ||
168 | res->setDescription(QString::fromUtf8((fwupd_device_get_description(dev)))); | 176 | res->setDescription(QString::fromUtf8((fwupd_device_get_description(dev)))); | ||
177 | res->setIconName(QString::fromUtf8("device-notifier")); | ||||
169 | } | 178 | } | ||
170 | 179 | | |||
171 | void FwupdBackend::populate(const QString& n) | 180 | void FwupdBackend::populate(const QString& n) | ||
172 | { | 181 | { | ||
173 | /* get devices */ | 182 | /* get devices */ | ||
174 | g_autoptr(GPtrArray) devices = fwupd_client_get_devices(client, nullptr, nullptr); | 183 | g_autoptr(GPtrArray) devices = fwupd_client_get_devices(client, nullptr, nullptr); | ||
175 | 184 | | |||
176 | if(devices) | 185 | if(devices) | ||
▲ Show 20 Lines • Show All 555 Lines • Show Last 20 Lines |