From 495bcef7a8adff1b63e9569dd021ac4d7cfa8e7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Revol?= Date: Sun, 3 Feb 2008 18:38:47 +0000 Subject: [PATCH] * Better looking html. * Set mime type when exporting to file. * disable netpositive stuff (only css). * export only the table when not saving to file (clipboard). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23850 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/apps/sudoku/SudokuView.cpp | 52 ++++++++++++++++++++++++---------- 1 file changed, 37 insertions(+), 15 deletions(-) diff --git a/src/apps/sudoku/SudokuView.cpp b/src/apps/sudoku/SudokuView.cpp index 5e26872f92..7cea5b4374 100644 --- a/src/apps/sudoku/SudokuView.cpp +++ b/src/apps/sudoku/SudokuView.cpp @@ -17,6 +17,7 @@ #include #include #include +#include #include @@ -209,10 +210,14 @@ status_t SudokuView::SaveTo(BDataIO &stream, uint32 as) { BString text; - //BFile *file; + BFile *file = dynamic_cast(&stream); char *line; uint32 i = 0; status_t status = EINVAL; + BNodeInfo nodeInfo; + + if (file) + nodeInfo.SetTo(file); switch (as) { case kExportAsText: @@ -232,18 +237,28 @@ SudokuView::SaveTo(BDataIO &stream, uint32 as) text.UnlockBuffer(); stream.Write(text.String(), text.Length()); + if (file) + nodeInfo.SetType("text/plain"); return B_OK; case kExportAsHTML: { + bool netPositiveFriendly = false; text = "\n\n\n" "\n" - "\n\n\n" - ""; + "\n\n\n"; + if (file) + stream.Write(text.String(), text.Length()); + + text = ""; stream.Write(text.String(), text.Length()); //XXX: make border larger on %3 @@ -257,18 +272,22 @@ SudokuView::SaveTo(BDataIO &stream, uint32 as) char buff[2]; _SetText(buff, fField->ValueAt(x, y)); if (fField->ValueAt(x, y) == 0) { - text << "\n"; } @@ -278,7 +297,10 @@ SudokuView::SaveTo(BDataIO &stream, uint32 as) stream.Write(text.String(), text.Length()); text = "\n"; - stream.Write(text.String(), text.Length()); + if (file) + stream.Write(text.String(), text.Length()); + if (file) + nodeInfo.SetType("text/html"); return B_OK; } case kExportAsBitmap:
\n"; + text << "\n"; text << " "; } else if (fField->FlagsAt(x, y) & kInitialValue) { - text << "\n"; - text << ""; + text << "\n"; + if (netPositiveFriendly) + text << ""; text << buff; - text << ""; + if (netPositiveFriendly) + text << ""; } else { - text << "\n"; - text << ""; + text << "\n"; + if (netPositiveFriendly) + text << ""; text << buff; - text << ""; + if (netPositiveFriendly) + text << ""; } text << "