Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2350)

Unified Diff: experimental/PdfViewer/pdf_viewer_main.cpp

Issue 20087003: pdfviewer: remove dependency on picture_utils. add utility function to render SkStream into bitmap. (Closed) Base URL: http://skia.googlecode.com/svn/trunk/
Patch Set: Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: experimental/PdfViewer/pdf_viewer_main.cpp
===================================================================
--- experimental/PdfViewer/pdf_viewer_main.cpp (revision 10286)
+++ experimental/PdfViewer/pdf_viewer_main.cpp (working copy)
@@ -9,7 +9,6 @@
#include "SkStream.h"
#include "SkTypeface.h"
#include "SkTArray.h"
-#include "picture_utils.h"
#include "SkNulCanvas.h"
#include "SkPdfRenderer.h"
@@ -74,6 +73,56 @@
return false;
}
+void make_filepath(SkString* path, const SkString& dir, const SkString& name) {
+ size_t len = dir.size();
+ path->set(dir);
+ if (0 < len && '/' != dir[len - 1]) {
+ path->append("/");
+ }
+ path->append(name);
+}
+
+bool is_path_seperator(const char chr) {
+#if defined(SK_BUILD_FOR_WIN)
+ return chr == '\\' || chr == '/';
+#else
+ return chr == '/';
+#endif
+}
+
+void get_basename(SkString* basename, const SkString& path) {
+ if (path.size() == 0) {
+ basename->reset();
+ return;
+ }
+
+ size_t end = path.size() - 1;
+
+ // Paths pointing to directories often have a trailing slash,
+ // we remove it so the name is not empty
+ if (is_path_seperator(path[end])) {
+ if (end == 0) {
+ basename->reset();
+ return;
+ }
+
+ end -= 1;
+ }
+
+ size_t i = end;
+ do {
+ --i;
+ if (is_path_seperator(path[i])) {
+ const char* basenameStart = path.c_str() + i + 1;
+ size_t basenameLength = end - i;
+ basename->set(basenameStart, basenameLength);
+ return;
+ }
+ } while (i > 0);
+
+ basename->set(path.c_str(), end + 1);
+}
+
/** Builds the output filename. path = dir/name, and it replaces expected
* .skp extension with .pdf extention.
* @param path Output filename.
@@ -81,12 +130,10 @@
* @returns false if the file did not has the expected extension.
* if false is returned, contents of path are undefined.
*/
-
-
static bool make_output_filepath(SkString* path, const SkString& dir,
const SkString& name,
int page) {
- sk_tools::make_filepath(path, dir, name);
+ make_filepath(path, dir, name);
return add_page_and_replace_filename_extension(path, page,
PDF_FILE_EXTENSION,
PNG_FILE_EXTENSION);
@@ -167,7 +214,7 @@
SkDebugf("Loading PDF: %s\n", inputPath.c_str());
SkString inputFilename;
- sk_tools::get_basename(&inputFilename, inputPath);
+ get_basename(&inputFilename, inputPath);
SkFILEStream inputStream;
inputStream.setPath(inputPath.c_str());
@@ -241,7 +288,7 @@
SkString inputPath;
SkString _input;
_input.append(input);
- sk_tools::make_filepath(&inputPath, _input, inputFilename);
+ make_filepath(&inputPath, _input, inputFilename);
if (!process_pdf(inputPath, outputDir, renderer)) {
++failures;
}
« no previous file with comments | « experimental/PdfViewer/SkPdfRenderer.cpp ('k') | experimental/PdfViewer/pdfparser/native/SkNativeParsedPDF.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698