| 201 | } |
| 202 | |
| 203 | bool TemplateImage::loadTemplateFileImpl() |
| 204 | { |
| 205 | QImageReader reader(template_path); |
| 206 | const QSize size = reader.size(); |
| 207 | const QImage::Format format = reader.imageFormat(); |
| 208 | if (size.isEmpty() || format == QImage::Format_Invalid) |
| 209 | { |
| 210 | // Leave memory allocation to QImageReader |
| 211 | image = reader.read(); |
| 212 | } |
| 213 | else |
| 214 | { |
| 215 | // Pre-allocate the memory in order to catch errors |
| 216 | image = QImage(size, format); |
| 217 | if (image.isNull()) |
| 218 | { |
| 219 | setErrorString(tr("Not enough free memory (image size: %1x%2 pixels)").arg(size.width()).arg(size.height())); |
| 220 | return false; |
| 221 | } |
| 222 | // Read into pre-allocated image |
| 223 | reader.read(&image); |
| 224 | } |
| 225 | |
| 226 | if (image.isNull()) |
| 227 | { |
| 228 | setErrorString(reader.errorString()); |
| 229 | return false; |
| 230 | } |
| 231 | |
| 232 | #ifdef MAPPER_USE_GDAL |
| 233 | available_georef = findAvailableGeoreferencing(readGdalGeoTransform(template_path)); |
| 234 | #else |
| 235 | available_georef = findAvailableGeoreferencing({}); |
| 236 | #endif |
| 237 | |
| 238 | if (is_georeferenced) |
| 239 | { |
| 240 | if (!isGeoreferencingUsable()) |
| 241 | { |
| 242 | // Image was georeferenced, but georeferencing info is gone -> deny to load template |
| 243 | setErrorString(tr("Georeferencing not found")); |
| 244 | return false; |
| 245 | } |
| 246 | |
| 247 | calculateGeoreferencing(); |
| 248 | } |
| 249 | |
| 250 | drawable = !findExportFormat(template_path).isEmpty(); |
| 251 | return true; |
| 252 | } |
| 253 | |
| 254 | bool TemplateImage::postLoadSetup(QWidget* dialog_parent, bool& out_center_in_view) |
| 255 | { |
nothing calls this directly
no test coverage detected