- GtkPrintQuality quality = gtk_print_settings_get_quality(m_config);
- if (quality == GTK_PRINT_QUALITY_HIGH)
- data.SetQuality(wxPRINT_QUALITY_HIGH);
- else if (quality == GTK_PRINT_QUALITY_LOW)
- data.SetQuality(wxPRINT_QUALITY_LOW);
- else if (quality == GTK_PRINT_QUALITY_DRAFT)
- data.SetQuality(wxPRINT_QUALITY_DRAFT);
- else
- data.SetQuality(wxPRINT_QUALITY_MEDIUM);
+ int resolution = gtk_print_settings_get_resolution(m_config);
+ if ( resolution > 0 )
+ {
+ // if resolution is explicitly set, use it
+ data.SetQuality(resolution);
+ }
+ else // use more vague "quality"
+ {
+ GtkPrintQuality quality = gtk_print_settings_get_quality(m_config);
+ if (quality == GTK_PRINT_QUALITY_HIGH)
+ data.SetQuality(wxPRINT_QUALITY_HIGH);
+ else if (quality == GTK_PRINT_QUALITY_LOW)
+ data.SetQuality(wxPRINT_QUALITY_LOW);
+ else if (quality == GTK_PRINT_QUALITY_DRAFT)
+ data.SetQuality(wxPRINT_QUALITY_DRAFT);
+ else
+ data.SetQuality(wxPRINT_QUALITY_MEDIUM);
+ }