MCPcopy Create free account
hub / github.com/OpenOrienteering/mapper / drawSeparationPages

Method drawSeparationPages

src/core/map_printer.cpp:1239–1281  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1237}
1238
1239void MapPrinter::drawSeparationPages(QPrinter* printer, QPainter* device_painter, const QRectF& page_extent) const
1240{
1241 Q_ASSERT(printer->colorMode() == QPrinter::GrayScale);
1242
1243 device_painter->save();
1244
1245 device_painter->setRenderHint(QPainter::Antialiasing);
1246
1247 // Translate for top left page margin
1248 qreal scale = options.resolution / 25.4; // Dots per mm
1249 device_painter->scale(scale, scale);
1250 device_painter->translate(page_format.page_rect.left(), page_format.page_rect.top());
1251
1252 // Convert native map scale to print scale
1253 if (scale_adjustment != 1.0)
1254 {
1255 scale *= scale_adjustment;
1256 device_painter->scale(scale_adjustment, scale_adjustment);
1257 }
1258
1259 // Translate and clip for margins and print area
1260 device_painter->translate(-page_extent.left(), -page_extent.top());
1261 device_painter->setClipRect(page_extent.intersected(print_area).adjusted(-10, 10, 10, 10), Qt::ReplaceClip);
1262
1263 bool need_new_page = false;
1264 for (int i = map.getNumColors() - 1; i >= 0; --i)
1265 {
1266 const MapColor* color = map.getColor(i);
1267 if (color->getSpotColorMethod() == MapColor::SpotColor)
1268 {
1269 if (need_new_page)
1270 {
1271 printer->newPage();
1272 }
1273
1274 RenderConfig config = { map, page_extent, scale, RenderConfig::NoOptions, 1.0 };
1275 map.drawColorSeparation(device_painter, config, color);
1276 need_new_page = true;
1277 }
1278 }
1279
1280 device_painter->restore();
1281}
1282
1283bool MapPrinter::printMap(QPrinter* printer)
1284{

Callers

nothing calls this directly

Calls 8

getNumColorsMethod · 0.80
getSpotColorMethodMethod · 0.80
saveMethod · 0.45
scaleMethod · 0.45
translateMethod · 0.45
getColorMethod · 0.45
newPageMethod · 0.45
drawColorSeparationMethod · 0.45

Tested by

no test coverage detected