commit a60dd719453536a559801619f0c5a5af0cfc2701 Author: Julien Nabet Date: Fri Mar 25 00:11:37 2011 +0100 Try to resurrect "add slide thumbnails to HTML export" part diff --git a/sd/source/filter/html/htmlex.cxx b/sd/source/filter/html/htmlex.cxx index 2687a6e..64e2b7e 100644 --- a/sd/source/filter/html/htmlex.cxx +++ b/sd/source/filter/html/htmlex.cxx @@ -387,7 +387,7 @@ HtmlExport::HtmlExport( meMode( PUBLISH_HTML ), mbContentsPage(false), mnButtonThema(-1), - mnWidthPixel( PUB_LOWRES_WIDTH ), + mnWidthPixel( PUB_MEDRES_WIDTH ), meFormat( FORMAT_JPG ), mbNotes(false), mnCompression( -1 ), @@ -399,6 +399,7 @@ HtmlExport::HtmlExport( maHTMLExtension(SdResId(STR_HTMLEXP_DEFAULT_EXTENSION)), mpHTMLFiles(NULL), mpImageFiles(NULL), + mpThumbnailFiles(NULL), mpPageNames(NULL), mpTextFiles(NULL), maIndexUrl(RTL_CONSTASCII_USTRINGPARAM("index")), @@ -437,12 +438,13 @@ HtmlExport::~HtmlExport() // ------------------------------------------------------------------ // Listen loeschen // ------------------------------------------------------------------ - if(mpImageFiles && mpHTMLFiles && mpPageNames && mpTextFiles) + if(mpImageFiles && mpHTMLFiles && mpThumbnailFiles && mpPageNames && mpTextFiles ) { for ( sal_uInt16 nSdPage = 0; nSdPage < mnSdPageCount; nSdPage++) { delete mpImageFiles[nSdPage]; delete mpHTMLFiles[nSdPage]; + delete mpThumbnailFiles[nSdPage]; delete mpPageNames[nSdPage]; delete mpTextFiles[nSdPage]; } @@ -450,6 +452,7 @@ HtmlExport::~HtmlExport() delete[] mpImageFiles; delete[] mpHTMLFiles; + delete[] mpThumbnailFiles; delete[] mpPageNames; delete[] mpTextFiles; } @@ -740,6 +743,11 @@ void HtmlExport::ExportHtml() if( !CreateImagesForPresPages() ) break; + if( mbContentsPage && + !CreateImagesForPresPages( true ) ) + break; + + if( !CreateHtmlForPresPages() ) break; @@ -973,7 +981,7 @@ bool HtmlExport::SavePresentation() // ===================================================================== // Image-Dateien anlegen // ===================================================================== -bool HtmlExport::CreateImagesForPresPages() +bool HtmlExport::CreateImagesForPresPages( bool bThumbnail) { try { @@ -990,9 +998,9 @@ bool HtmlExport::CreateImagesForPresPages() Sequence< PropertyValue > aFilterData(((meFormat==FORMAT_JPG)&&(mnCompression != -1))? 3 : 2); aFilterData[0].Name = OUString( RTL_CONSTASCII_USTRINGPARAM("PixelWidth") ); - aFilterData[0].Value <<= (sal_Int32)mnWidthPixel; + aFilterData[0].Value <<= (sal_Int32)(bThumbnail ? PUB_THUMBNAIL_WIDTH : mnWidthPixel ); aFilterData[1].Name = OUString( RTL_CONSTASCII_USTRINGPARAM("PixelHeight") ); - aFilterData[1].Value <<= (sal_Int32)mnHeightPixel; + aFilterData[1].Value <<= (sal_Int32)(bThumbnail ? PUB_THUMBNAIL_HEIGHT : mnHeightPixel); if((meFormat==FORMAT_JPG)&&(mnCompression != -1)) { aFilterData[2].Name = OUString( RTL_CONSTASCII_USTRINGPARAM("Quality") ); @@ -1019,7 +1027,11 @@ bool HtmlExport::CreateImagesForPresPages() SdPage* pPage = maPages[ nSdPage ]; OUString aFull(maExportPath); - aFull += *mpImageFiles[nSdPage]; + if (bThumbnail) + aFull += *mpThumbnailFiles[nSdPage]; + else + aFull += *mpImageFiles[nSdPage]; + aDescriptor[0].Value <<= aFull; @@ -1893,7 +1905,7 @@ bool HtmlExport::CreateContentPage() aStr.AppendAscii( "
\r\n" ); // Inhaltsverzeichnis - aStr.AppendAscii( "\r\n" ); // Dokument Infos - aStr.AppendAscii( "
\r\n" ); + aStr.AppendAscii( "\r\n" ); aStr.AppendAscii( "

" ); aStr += RESTOHTML(STR_HTMLEXP_CONTENTS); aStr.AppendAscii( "

" ); @@ -1911,7 +1923,7 @@ bool HtmlExport::CreateContentPage() aStr.AppendAscii( "
\r\n" ); + aStr.AppendAscii( "\r\n" ); if(maAuthor.Len()) { @@ -1962,6 +1974,21 @@ bool HtmlExport::CreateContentPage() aStr.AppendAscii( "

\r\n" ); } + for(sal_uInt16 nSdPage = 0; nSdPage < mnSdPageCount; nSdPage++) + { + String aText; + + aText.AppendAscii( "\""" ); + + aStr += CreateLink(*mpHTMLFiles[nSdPage], aText); + aStr.AppendAscii( "\r\n" ); + } + + aStr.AppendAscii( "
\r\n" ); aStr.AppendAscii( "\r\n" ); @@ -2086,6 +2113,7 @@ void HtmlExport::CreateFileNames() // Listen mit neuen Dateinamen anlegen mpHTMLFiles = new String*[mnSdPageCount]; mpImageFiles = new String*[mnSdPageCount]; + mpThumbnailFiles = new String*[mnSdPageCount]; mpPageNames = new String*[mnSdPageCount]; mpTextFiles = new String*[mnSdPageCount]; @@ -2116,6 +2144,15 @@ void HtmlExport::CreateFileNames() mpImageFiles[nSdPage] = pName; + pName = new String( RTL_CONSTASCII_USTRINGPARAM("thumb") ); + *pName += String::CreateFromInt32(nSdPage); + if( meFormat!=FORMAT_JPG ) + pName->AppendAscii( ".png" ); + else + pName->AppendAscii( ".jpg" ); + + mpThumbnailFiles[nSdPage] = pName; + pName = new String( RTL_CONSTASCII_USTRINGPARAM("text")); *pName += String::CreateFromInt32(nSdPage); *pName += maHTMLExtension; @@ -3108,6 +3145,7 @@ bool HtmlExport::checkForExistingFiles() { if( (mpImageFiles[nSdPage] && checkFileExists( xFA, *mpImageFiles[nSdPage] )) || (mpHTMLFiles[nSdPage] && checkFileExists( xFA, *mpHTMLFiles[nSdPage] )) || + (mpThumbnailFiles[nSdPage] && checkFileExists( xFA, *mpThumbnailFiles[nSdPage] )) || (mpPageNames[nSdPage] && checkFileExists( xFA, *mpPageNames[nSdPage] )) || (mpTextFiles[nSdPage] && checkFileExists( xFA, *mpTextFiles[nSdPage] )) ) { diff --git a/sd/source/filter/html/htmlex.hxx b/sd/source/filter/html/htmlex.hxx index 43af349..09dd697 100644 --- a/sd/source/filter/html/htmlex.hxx +++ b/sd/source/filter/html/htmlex.hxx @@ -58,6 +58,9 @@ #define PUB_HIGHRES_WIDTH 1024 #define PUB_HIGHRES_HEIGHT 768 +#define PUB_THUMBNAIL_WIDTH 256 +#define PUB_THUMBNAIL_HEIGHT 192 + #define HtmlButtonThemaStr = "private://gallery/hidden/HtmlExportButtons"; class List; @@ -149,6 +152,7 @@ class HtmlExport String maHTMLExtension; String** mpHTMLFiles; String** mpImageFiles; + String** mpThumbnailFiles; String** mpPageNames; String** mpTextFiles; @@ -166,7 +170,7 @@ class HtmlExport void SetDocColors( SdPage* pPage = NULL ); - bool CreateImagesForPresPages(); + bool CreateImagesForPresPages( bool bThumbnails = false ); bool CreateHtmlTextForPresPages(); bool CreateHtmlForPresPages(); bool CreateContentPage();