diff options
-rw-r--r-- | ChangeLog | 11 | ||||
-rw-r--r-- | data/epiphany.schemas.in | 31 | ||||
-rw-r--r-- | data/glade/print.glade | 52 | ||||
-rw-r--r-- | embed/ephy-embed.h | 10 | ||||
-rw-r--r-- | embed/mozilla/MozillaPrivate.cpp | 17 | ||||
-rwxr-xr-x | embed/print-dialog.c | 15 |
6 files changed, 77 insertions, 59 deletions
@@ -1,5 +1,16 @@ 2003-06-15 Christian Persch <chpe@cvs.gnome.org> + * embed/mozilla/MozillaPrivate.cpp: (MozillaCollatePrintSettings): + * embed/ephy-embed.h: + * embed/print-dialog.c: (print_dialog_init), (print_free_info), + (print_get_info): + * data/epiphany.schemas.in: + * data/glade/print.glade: + + Convert dialog to metric units and default paper to A4. Fixes #112619 + +2003-06-15 Christian Persch <chpe@cvs.gnome.org> + * src/session.c: (do_session_resume): * embed/ephy-favicon-cache.c: (ephy_favicon_cache_download), (ephy_favicon_cache_get): diff --git a/data/epiphany.schemas.in b/data/epiphany.schemas.in index 196ebff7a..5af667ed2 100644 --- a/data/epiphany.schemas.in +++ b/data/epiphany.schemas.in @@ -230,44 +230,44 @@ <key>/schemas/apps/epiphany/dialogs/print_top_margin</key> <applyto>/apps/epiphany/dialogs/print_top_margin</applyto> <owner>epiphany</owner> - <type>float</type> - <default>0.5</default> + <type>int</type> + <default>10</default> <locale name="C"> <short>Printing top margin</short> - <long>Printing top margin (in inches).</long> + <long>Printing top margin (in mm).</long> </locale> </schema> <schema> <key>/schemas/apps/epiphany/dialogs/print_bottom_margin</key> <applyto>/apps/epiphany/dialogs/print_bottom_margin</applyto> <owner>epiphany</owner> - <type>float</type> - <default>0.5</default> + <type>int</type> + <default>10</default> <locale name="C"> <short>Printing bottom margin</short> - <long>Printing bottom margin (in inches).</long> + <long>Printing bottom margin (in mm).</long> </locale> </schema> <schema> <key>/schemas/apps/epiphany/dialogs/print_left_margin</key> <applyto>/apps/epiphany/dialogs/print_left_margin</applyto> <owner>epiphany</owner> - <type>float</type> - <default>0.5</default> + <type>int</type> + <default>10</default> <locale name="C"> <short>Printing left margin</short> - <long>Printing left margin (in inches).</long> + <long>Printing left margin (in mm).</long> </locale> </schema> <schema> <key>/schemas/apps/epiphany/dialogs/print_right_margin</key> <applyto>/apps/epiphany/dialogs/print_right_margin</applyto> <owner>epiphany</owner> - <type>float</type> - <default>0.5</default> + <type>int</type> + <default>10</default> <locale name="C"> <short>Printing right margin</short> - <long>Printing right margin (in inches).</long> + <long>Printing right margin (in mm).</long> </locale> </schema> <schema> @@ -339,11 +339,12 @@ <key>/schemas/apps/epiphany/dialogs/print_paper</key> <applyto>/apps/epiphany/dialogs/print_paper</applyto> <owner>epiphany</owner> - <type>int</type> - <default>0</default> + <type>string</type> + <default>A4</default> <locale name="C"> <short>Paper type</short> - <long>Paper type: letter, legal, executive, A4.</long> + <long>Paper type. Supported values are "A4", "Letter", "Legal" + and "Executive".</long> </locale> </schema> <schema> diff --git a/data/glade/print.glade b/data/glade/print.glade index ff2f24a7f..d1ed75ad7 100644 --- a/data/glade/print.glade +++ b/data/glade/print.glade @@ -609,13 +609,13 @@ <property name="spacing">6</property> <child> - <widget class="GtkRadioButton" id="letter_radiobutton"> + <widget class="GtkRadioButton" id="A4_radiobutton"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="label" translatable="yes">_Letter (8.5" x 11")</property> + <property name="label" translatable="yes">A_4</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="active">False</property> + <property name="active">True</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> </widget> @@ -627,16 +627,16 @@ </child> <child> - <widget class="GtkRadioButton" id="legal_radiobutton"> + <widget class="GtkRadioButton" id="letter_radiobutton"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="label" translatable="yes">L_egal (8.5" x 14")</property> + <property name="label" translatable="yes">_Letter</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> - <property name="group">letter_radiobutton</property> + <property name="group">A4_radiobutton</property> </widget> <packing> <property name="padding">0</property> @@ -646,16 +646,16 @@ </child> <child> - <widget class="GtkRadioButton" id="executive_radiobutton"> + <widget class="GtkRadioButton" id="legal_radiobutton"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="label" translatable="yes">E_xecutive (7.25" x 10.5")</property> + <property name="label" translatable="yes">L_egal</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> - <property name="group">letter_radiobutton</property> + <property name="group">A4_radiobutton</property> </widget> <packing> <property name="padding">0</property> @@ -665,16 +665,16 @@ </child> <child> - <widget class="GtkRadioButton" id="A4_radiobutton"> + <widget class="GtkRadioButton" id="executive_radiobutton"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="label" translatable="yes">A_4 (8.27" x 11.69")</property> + <property name="label" translatable="yes">E_xecutive</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="active">True</property> + <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> - <property name="group">letter_radiobutton</property> + <property name="group">A4_radiobutton</property> </widget> <packing> <property name="padding">0</property> @@ -1056,7 +1056,7 @@ <child> <widget class="GtkLabel" id="label261"> <property name="visible">True</property> - <property name="label" translatable="yes"><b>Margins (Inches)</b></property> + <property name="label" translatable="yes"><b>Margins (in mm)</b></property> <property name="use_underline">False</property> <property name="use_markup">True</property> <property name="justify">GTK_JUSTIFY_LEFT</property> @@ -1214,13 +1214,13 @@ <widget class="GtkSpinButton" id="bottom_spinbutton"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="climb_rate">0.1</property> - <property name="digits">1</property> + <property name="climb_rate">1</property> + <property name="digits">0</property> <property name="numeric">True</property> <property name="update_policy">GTK_UPDATE_ALWAYS</property> <property name="snap_to_ticks">False</property> <property name="wrap">False</property> - <property name="adjustment">0.6 0 100 0.1 10 10</property> + <property name="adjustment">10 0 100 1 10 10</property> </widget> <packing> <property name="left_attach">1</property> @@ -1235,13 +1235,13 @@ <widget class="GtkSpinButton" id="left_spinbutton"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="climb_rate">0.1</property> - <property name="digits">1</property> + <property name="climb_rate">1</property> + <property name="digits">0</property> <property name="numeric">True</property> <property name="update_policy">GTK_UPDATE_ALWAYS</property> <property name="snap_to_ticks">False</property> <property name="wrap">False</property> - <property name="adjustment">0.5 0 100 0.1 10 10</property> + <property name="adjustment">10 0 100 1 10 10</property> </widget> <packing> <property name="left_attach">1</property> @@ -1256,13 +1256,13 @@ <widget class="GtkSpinButton" id="top_spinbutton"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="climb_rate">0.1</property> - <property name="digits">1</property> + <property name="climb_rate">1</property> + <property name="digits">0</property> <property name="numeric">True</property> <property name="update_policy">GTK_UPDATE_ALWAYS</property> <property name="snap_to_ticks">False</property> <property name="wrap">False</property> - <property name="adjustment">0.3 0 100 0.1 10 10</property> + <property name="adjustment">10 0 100 1 10 10</property> </widget> <packing> <property name="left_attach">1</property> @@ -1277,13 +1277,13 @@ <widget class="GtkSpinButton" id="right_spinbutton"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="climb_rate">0.1</property> - <property name="digits">1</property> + <property name="climb_rate">1</property> + <property name="digits">0</property> <property name="numeric">True</property> <property name="update_policy">GTK_UPDATE_ALWAYS</property> <property name="snap_to_ticks">False</property> <property name="wrap">False</property> - <property name="adjustment">0.5 0 100 0.1 10 10</property> + <property name="adjustment">10 0 100 1 10 10</property> </widget> <packing> <property name="left_attach">1</property> diff --git a/embed/ephy-embed.h b/embed/ephy-embed.h index c4cac0aef..a80d11d80 100644 --- a/embed/ephy-embed.h +++ b/embed/ephy-embed.h @@ -108,11 +108,11 @@ typedef struct gboolean print_to_file; gchar *printer; gchar *file; - gint paper; - gdouble top_margin; - gdouble bottom_margin; - gdouble left_margin; - gdouble right_margin; + gchar *paper; + gint top_margin; + gint bottom_margin; + gint left_margin; + gint right_margin; gint pages; gint from_page; gint to_page; diff --git a/embed/mozilla/MozillaPrivate.cpp b/embed/mozilla/MozillaPrivate.cpp index 0847f3473..46ece8418 100644 --- a/embed/mozilla/MozillaPrivate.cpp +++ b/embed/mozilla/MozillaPrivate.cpp @@ -37,6 +37,7 @@ GtkWidget *MozillaFindGtkParent (nsIDOMWindow *aDOMWindow) return gtk_widget_get_toplevel (GTK_WIDGET(mozembed)); } +#define MM_TO_INCH(x) (((double) x) / 25.4) NS_METHOD MozillaCollatePrintSettings (const EmbedPrintInfo *info, nsIPrintSettings *options) @@ -46,11 +47,6 @@ NS_METHOD MozillaCollatePrintSettings (const EmbedPrintInfo *info, nsIPrintSettings::kSelectedFrame, nsIPrintSettings::kEachFrameSep }; - /* these should match the order of the radiobuttons in the dialog - * and the paper names in the default print provider PS*/ - const static char *PaperSizeNames[] = { - "Letter","Legal","Executive","A4" - }; switch (info->pages) @@ -68,10 +64,10 @@ NS_METHOD MozillaCollatePrintSettings (const EmbedPrintInfo *info, break; } - options->SetMarginTop (info->top_margin); - options->SetMarginBottom (info->bottom_margin); - options->SetMarginLeft (info->left_margin); - options->SetMarginRight (info->right_margin); + options->SetMarginTop (MM_TO_INCH (info->top_margin)); + options->SetMarginBottom (MM_TO_INCH (info->bottom_margin)); + options->SetMarginLeft (MM_TO_INCH (info->left_margin)); + options->SetMarginRight (MM_TO_INCH (info->right_margin)); options->SetPrinterName(NS_LITERAL_STRING("PostScript/default").get()); @@ -95,8 +91,7 @@ NS_METHOD MozillaCollatePrintSettings (const EmbedPrintInfo *info, /* native paper size formats. Our dialog does not support custom yet */ options->SetPaperSize (nsIPrintSettings::kPaperSizeNativeData); - int tps = (info->paper >= 0 || info->paper < 4) ? info->paper : 0; - options->SetPaperName (NS_ConvertUTF8toUCS2(PaperSizeNames[tps]).get()); + options->SetPaperName (NS_ConvertUTF8toUCS2(info->paper).get()); options->SetPrintInColor (info->print_color); options->SetOrientation (info->orientation); diff --git a/embed/print-dialog.c b/embed/print-dialog.c index baf636cd0..f69ee8811 100755 --- a/embed/print-dialog.c +++ b/embed/print-dialog.c @@ -95,7 +95,7 @@ EphyDialogProperty properties [] = { PRINTON_PROP, "printer_radiobutton", CONF_PRINT_PRINTON, PT_NORMAL, NULL }, { PRINTER_PROP, "printer_entry", CONF_PRINT_PRINTER, PT_NORMAL, NULL }, { FILE_PROP, "file_entry", CONF_PRINT_FILE, PT_NORMAL, NULL }, - { PAPER_PROP,"letter_radiobutton", CONF_PRINT_PAPER, PT_NORMAL, NULL }, + { PAPER_PROP,"A4_radiobutton", CONF_PRINT_PAPER, PT_NORMAL, NULL }, { TOP_PROP, "top_spinbutton", CONF_PRINT_TOP_MARGIN, PT_NORMAL, NULL }, { BOTTOM_PROP, "bottom_spinbutton", CONF_PRINT_BOTTOM_MARGIN, PT_NORMAL, NULL }, { LEFT_PROP,"left_spinbutton", CONF_PRINT_LEFT_MARGIN, PT_NORMAL, NULL }, @@ -113,6 +113,13 @@ EphyDialogProperty properties [] = { -1, NULL, NULL } }; +static const +char *paper_format_enum [] = +{ + "A4", "Letter", "Legal", "Executive" +}; +static guint n_paper_format_enum = G_N_ELEMENTS (paper_format_enum); + static guint print_dialog_signals[LAST_SIGNAL] = { 0 }; GType @@ -179,6 +186,9 @@ print_dialog_init (PrintDialog *dialog) "print.glade", "print_dialog"); dialog->priv->window = ephy_dialog_get_control (EPHY_DIALOG(dialog), WINDOW_PROP); + + ephy_dialog_add_enum (EPHY_DIALOG (dialog), PAPER_PROP, + n_paper_format_enum, paper_format_enum); icon = gtk_widget_render_icon (dialog->priv->window, GTK_STOCK_PRINT, @@ -244,6 +254,7 @@ print_free_info (EmbedPrintInfo *info) { g_free (info->printer); g_free (info->file); + g_free (info->paper); g_free (info->header_left_string); g_free (info->header_right_string); g_free (info->footer_left_string); @@ -303,7 +314,7 @@ print_get_info (EphyDialog *dialog) info->to_page = g_value_get_float (&to_page); ephy_dialog_get_value (dialog, PAPER_PROP, &paper); - info->paper = g_value_get_int (&paper); + info->paper = g_strdup (paper_format_enum[g_value_get_int (&paper)]); ephy_dialog_get_value (dialog, ALL_PAGES_PROP, &pages); info->pages = g_value_get_int (&pages); |