Author: gert
Date: 2007-02-09 02:53:18 -0500 (Fri, 09 Feb 2007)
New Revision: 72531
Modified:
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/PrintDialog.cs
trunk/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/ChangeLog
trunk/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/PrintDialogTest.cs
Log:
* PrintDialog.cs: On 1.0 profile, throw ArgumentException in RunDialog if
PrinterSettins has not been set. On 2.0 profile, initialize PrinterSettings
if not set. Fixes bug #80764. Avoid accessing current_settings field
directly.
* PrintDialogTest.cs: Added test for bug #80764
Modified: trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog
===================================================================
--- trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog
2007-02-09 03:43:12 UTC (rev 72530)
+++ trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog
2007-02-09 07:53:18 UTC (rev 72531)
@@ -1,3 +1,10 @@
+2007-02-09 Gert Driesen <[EMAIL PROTECTED]>
+
+ * PrintDialog.cs: On 1.0 profile, throw ArgumentException in RunDialog
if
+ PrinterSettins has not been set. On 2.0 profile, initialize
PrinterSettings
+ if not set. Fixes bug #80764. Avoid accessing current_settings field
+ directly.
+
2007-02-08 Everaldo Canuto <[EMAIL PROTECTED]>
* Theme.cs: An new property MenuAccessKeysUnderlined added with default
value
Modified:
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/PrintDialog.cs
===================================================================
--- trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/PrintDialog.cs
2007-02-09 03:43:12 UTC (rev 72530)
+++ trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/PrintDialog.cs
2007-02-09 07:53:18 UTC (rev 72531)
@@ -149,9 +149,9 @@
labelTo.Enabled = value;
labelFrom.Enabled = value;
- if (current_settings != null) {
- txtFrom.Text =
current_settings.FromPage.ToString ();
- txtTo.Text =
current_settings.ToPage.ToString ();
+ if (PrinterSettings != null) {
+ txtFrom.Text =
PrinterSettings.FromPage.ToString ();
+ txtTo.Text =
PrinterSettings.ToPage.ToString ();
}
}
}
@@ -164,7 +164,7 @@
set {
document = value;
- current_settings = value == null ? new
PrinterSettings () : value.PrinterSettings;
+ current_settings = (value == null) ? new
PrinterSettings () : value.PrinterSettings;
}
}
@@ -173,6 +173,10 @@
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public PrinterSettings PrinterSettings {
get {
+#if NET_2_0
+ if (current_settings == null)
+ current_settings = new PrinterSettings
();
+#endif
return current_settings;
}
@@ -180,7 +184,7 @@
if (value != null && value == current_settings)
return;
- current_settings = value == null ? new
PrinterSettings () : value;
+ current_settings = (value == null) ? new
PrinterSettings () : value;
document = null;
}
}
@@ -221,23 +225,28 @@
protected override bool RunDialog (IntPtr hwnd)
{
- if (allow_some_pages && current_settings.FromPage >
current_settings.ToPage)
+#if ONLY_1_1
+ if (PrinterSettings == null)
+ throw new ArgumentException ("PrintDialog needs
a PrinterSettings object to display.");
+#endif
+
+ if (allow_some_pages && PrinterSettings.FromPage >
PrinterSettings.ToPage)
throw new ArgumentException ("FromPage out of
range");
if (allow_some_pages) {
- txtFrom.Text =
current_settings.FromPage.ToString ();
- txtTo.Text = current_settings.ToPage.ToString
();
+ txtFrom.Text =
PrinterSettings.FromPage.ToString ();
+ txtTo.Text = PrinterSettings.ToPage.ToString ();
}
- if (current_settings.PrintRange == PrintRange.SomePages
&& allow_some_pages)
+ if (PrinterSettings.PrintRange == PrintRange.SomePages
&& allow_some_pages)
radio_pages.Checked = true;
- else if (current_settings.PrintRange ==
PrintRange.Selection && allow_selection)
+ else if (PrinterSettings.PrintRange ==
PrintRange.Selection && allow_selection)
radio_sel.Checked = true;
else
radio_all.Checked = true;
- updown_copies.Value = current_settings.Copies == 0 ? 1
: (int) current_settings.Copies;
- chkbox_collate.Checked = current_settings.Collate;
+ updown_copies.Value = PrinterSettings.Copies == 0 ? 1 :
(int) PrinterSettings.Copies;
+ chkbox_collate.Checked = PrinterSettings.Collate;
chkbox_collate.Enabled = (updown_copies.Value > 1) ?
true : false;
if (show_help) {
@@ -291,48 +300,48 @@
ShowErrorMessage ("'From' value cannot
be greater than 'To' value.", txtFrom);
return;
}
-
- if (to < current_settings.MinimumPage || to >
current_settings.MaximumPage) {
+
+ if (to < PrinterSettings.MinimumPage || to >
PrinterSettings.MaximumPage) {
ShowErrorMessage ("'To' value is not
within the page range\n" +
- "Enter a number between
" + current_settings.MinimumPage +
- " and " +
current_settings.MaximumPage + ".", txtTo);
+ "Enter a number between
" + PrinterSettings.MinimumPage +
+ " and " +
PrinterSettings.MaximumPage + ".", txtTo);
return;
}
-
- if (from < current_settings.MinimumPage || from
> current_settings.MaximumPage) {
+
+ if (from < PrinterSettings.MinimumPage || from
> PrinterSettings.MaximumPage) {
ShowErrorMessage ("'From' value is not
within the page range\n" +
- "Enter a number between
" + current_settings.MinimumPage +
- " and " +
current_settings.MaximumPage + ".", txtFrom);
+ "Enter a number between
" + PrinterSettings.MinimumPage +
+ " and " +
PrinterSettings.MaximumPage + ".", txtFrom);
return;
}
}
if (radio_all.Checked == true)
- current_settings.PrintRange =
PrintRange.AllPages;
+ PrinterSettings.PrintRange =
PrintRange.AllPages;
else if (radio_pages.Checked == true)
- current_settings.PrintRange =
PrintRange.SomePages;
+ PrinterSettings.PrintRange =
PrintRange.SomePages;
else
- current_settings.PrintRange =
PrintRange.Selection;
+ PrinterSettings.PrintRange =
PrintRange.Selection;
- current_settings.Copies = (short) updown_copies.Value;
- if (current_settings.PrintRange ==
PrintRange.SomePages) {
- current_settings.FromPage = from;
- current_settings.ToPage = to;
+ PrinterSettings.Copies = (short) updown_copies.Value;
+ if (PrinterSettings.PrintRange == PrintRange.SomePages)
{
+ PrinterSettings.FromPage = from;
+ PrinterSettings.ToPage = to;
}
- current_settings.Collate = chkbox_collate.Checked;
+ PrinterSettings.Collate = chkbox_collate.Checked;
if (allow_print_to_file) {
- current_settings.PrintToFile =
chkbox_print.Checked;
+ PrinterSettings.PrintToFile =
chkbox_print.Checked;
}
form.DialogResult = DialogResult.OK;
if (printer_combo.SelectedItem != null)
- current_settings.PrinterName = (string)
printer_combo.SelectedItem;
+ PrinterSettings.PrinterName = (string)
printer_combo.SelectedItem;
if (document != null) {
document.PrintController = new
PrintControllerWithStatusDialog (document.PrintController);
- document.PrinterSettings = current_settings;
+ document.PrinterSettings = PrinterSettings;
}
}
Modified:
trunk/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/ChangeLog
===================================================================
--- trunk/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/ChangeLog
2007-02-09 03:43:12 UTC (rev 72530)
+++ trunk/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/ChangeLog
2007-02-09 07:53:18 UTC (rev 72531)
@@ -1,3 +1,7 @@
+2007-02-09 Gert Driesen <[EMAIL PROTECTED]>
+
+ * PrintDialogTest.cs: Added test for bug #80764.
+
2007-02-08 Jonathan Pobst <[EMAIL PROTECTED]>
* ToolStripItemTest.cs: Uncomment tests relating to Overflow. Add
Modified:
trunk/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/PrintDialogTest.cs
===================================================================
---
trunk/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/PrintDialogTest.cs
2007-02-09 03:43:12 UTC (rev 72530)
+++
trunk/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/PrintDialogTest.cs
2007-02-09 07:53:18 UTC (rev 72531)
@@ -38,7 +38,7 @@
[TestFixture]
public class PrintDialogTest
{
- [Test]
+ [Test]
[Category("Printing")]
public void DefaultValues ()
{
@@ -97,6 +97,24 @@
if (pd.PrinterSettings == ps1)
Assert.Fail ("#5");
}
+
+#if ONLY_1_1
+ [Test] // bug #80764
+ public void ShowDialog_PrinterSettings_Null ()
+ {
+ PrintDialog pd = new PrintDialog ();
+ try {
+ pd.ShowDialog ();
+ Assert.Fail ("#1");
+ } catch (ArgumentException ex) {
+ // PrintDialog needs a PrinterSettings object
to display
+ Assert.AreEqual (typeof (ArgumentException),
ex.GetType (), "#2");
+ Assert.IsNull (ex.InnerException, "#3");
+ Assert.IsNotNull (ex.Message, "#4");
+ Assert.IsNull (ex.ParamName, "#5");
+ }
+ }
+#endif
}
}
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches