--- src/PrintPter.cxx (revision 262) +++ src/PrintPter.cxx (revision 281) @@ -231,17 +231,24 @@ view.clearPageSizeList (); int pageSizeToSelect = 0; - ppd_choice_t *pageSizeChoice = pageSizeOption->choices; - for ( int currentSize = 0 ; - currentSize < pageSizeOption->num_choices ; - ++currentSize, ++pageSizeChoice ) - { - const gchar *sizeName = pageSizeChoice->text; - const gchar *sizeValue = pageSizeChoice->choice; - - view.addPageSize (_(sizeName), sizeValue); - if ( pageSizeChoice->marked ) + if ( 0 != pageSizeOption ) + { + ppd_choice_t *pageSizeChoice = pageSizeOption->choices; + for ( int currentSize = 0 ; + currentSize < pageSizeOption->num_choices ; + ++currentSize, ++pageSizeChoice ) { - pageSizeToSelect = currentSize; + const gchar *sizeName = pageSizeChoice->text; + const gchar *sizeValue = pageSizeChoice->choice; + + view.addPageSize (_(sizeName), sizeValue); + if ( pageSizeChoice->marked ) + { + pageSizeToSelect = currentSize; + } } + } + else + { + view.addPageSize (_("A4"), "A4"); } view.selectPageSize (pageSizeToSelect); @@ -252,17 +259,24 @@ view.clearResolutionList (); int resolutionToSelect = 0; - ppd_choice_t *resolutionChoice = resolutionOption->choices; - for ( int currentRes = 0 ; - currentRes < resolutionOption->num_choices ; - ++currentRes, ++resolutionChoice ) - { - const gchar *resName = resolutionChoice->text; - const gchar *resValue = resolutionChoice->choice; - - view.addResolution (_(resName), resValue); - if ( resolutionChoice->marked ) + if ( 0 != resolutionOption ) + { + ppd_choice_t *resolutionChoice = resolutionOption->choices; + for ( int currentRes = 0 ; + currentRes < resolutionOption->num_choices ; + ++currentRes, ++resolutionChoice ) { - resolutionToSelect = currentRes; + const gchar *resName = resolutionChoice->text; + const gchar *resValue = resolutionChoice->choice; + + view.addResolution (_(resName), resValue); + if ( resolutionChoice->marked ) + { + resolutionToSelect = currentRes; + } } + } + else + { + view.addResolution (_("300 DPI"), "300x300dpi"); } view.selectResolution (resolutionToSelect); @@ -272,7 +286,7 @@ ppdFindOption (printerPPD, "ColorModel"); view.clearColorModelList (); + int colorModelToSelect = 0; if ( NULL != colorModelOption ) { - int colorModelToSelect = 0; ppd_choice_t *colorModelChoice = colorModelOption->choices; for ( int currentColor = 0 ; @@ -289,5 +303,4 @@ } } - view.selectColorModel (colorModelToSelect); } else @@ -295,4 +308,5 @@ view.addColorModel (_("Grayscale"), "Gray"); } + view.selectColorModel (colorModelToSelect); ppdClose (printerPPD); }