diff options
author | Gergő Mocsi <gmocsi91@gmail.com> | 2013-04-17 10:46:08 +0200 |
---|---|---|
committer | Andras Timar <atimar@suse.com> | 2013-05-03 14:52:52 +0200 |
commit | e8ed29c952259a241564dfbf40e5b53d2c6e67e2 (patch) | |
tree | d9f65ac428099cc4978ceaa67ea9eaa197ea7320 /sd | |
parent | 25547fbddda1d540d2191e9e9a893c7f263b80e2 (diff) |
Create Photo Album fix
Fixed some pointer issues in CreateHdl function.
Removed the creation of title slide.
Added an enum to access the image layout option from the code.
Change-Id: Ib91fbbf3b068453c8e66b8df1ce32e24c3828bc0
Diffstat (limited to 'sd')
-rw-r--r-- | sd/source/ui/app/strings.src | 13 | ||||
-rw-r--r-- | sd/source/ui/dlg/PhotoAlbumDialog.cxx | 79 | ||||
-rw-r--r-- | sd/source/ui/dlg/PhotoAlbumDialog.hxx | 8 | ||||
-rw-r--r-- | sd/source/ui/inc/strings.hrc | 5 |
4 files changed, 42 insertions, 63 deletions
diff --git a/sd/source/ui/app/strings.src b/sd/source/ui/app/strings.src index a91003d96bc9..928e03e077c9 100644 --- a/sd/source/ui/app/strings.src +++ b/sd/source/ui/app/strings.src @@ -1268,19 +1268,14 @@ String STRING_DRAG_AND_DROP_SLIDES Text [ en-US ] = "Drag and Drop Slides" ; }; -String STR_PHOTO_ALBUM_TITLE -{ - Text [ en-US ] = "Photo Album" ; -}; - -String STR_PHOTO_ALBUM_AUTHOR +String STR_PHOTO_ALBUM_EMPTY_WARNING { - Text [ en-US ] = "Author:" ; + Text [ en-US ] = "Please add images to the album." ; }; -String STR_PHOTO_ALBUM_EMPTY_WARNING +String STR_PHOTO_ALBUM_TEXTBOX { - Text [ en-US ] = "Please add images to the album." ; + Text [ en-US ] = "Text Box"; }; /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/source/ui/dlg/PhotoAlbumDialog.cxx b/sd/source/ui/dlg/PhotoAlbumDialog.cxx index 4beabeb8061a..5d6ba1e6d41e 100644 --- a/sd/source/ui/dlg/PhotoAlbumDialog.cxx +++ b/sd/source/ui/dlg/PhotoAlbumDialog.cxx @@ -101,33 +101,12 @@ IMPL_LINK_NOARG(SdPhotoAlbumDialog, CreateHdl) Reference< drawing::XDrawPages > xDrawPages( xDPS->getDrawPages(), uno::UNO_QUERY ); Reference< lang::XMultiServiceFactory > xShapeFactory( pDoc->getUnoModel(), uno::UNO_QUERY ); - // Create the title slide - const sal_Int32 nSlideCount = pDoc->GetSdPageCount(PK_STANDARD); - - if(nSlideCount == 1) - { - // we have created an empty presentation (probably) - Reference< drawing::XDrawPage > xTitleSlide = appendNewSlide(AUTOLAYOUT_TITLE, xDrawPages); - - SdPage* pFirstSlide = pDoc->GetSdPage( pDoc->GetSdPageCount(PK_STANDARD)-1, PK_STANDARD); - SvtUserOptions aUserOptions; - SdrObject* pTitleObj = pFirstSlide->GetPresObj(PRESOBJ_TITLE, 0); - SvxShapeText* pTitleText = new SvxShapeText(pTitleObj); - pTitleText->SetShapeType("com.sun.star.presentation.TitleTextShape"); - pTitleText->setString(SD_RESSTR(STR_PHOTO_ALBUM_TITLE)); - - SdrObject* pTextObj = pFirstSlide->GetPresObj(PRESOBJ_TEXT, 0); - SvxShapeText* pTextShape = new SvxShapeText(pTextObj); - pTextShape->SetShapeType("com.sun.star.presentation.TextShape"); - pTextShape->setString(SD_RESSTR(STR_PHOTO_ALBUM_AUTHOR) + " " + aUserOptions.GetFullName()); - } - Reference< XComponentContext > xContext(::comphelper::getProcessComponentContext()); Reference< graphic::XGraphicProvider> xProvider(graphic::GraphicProvider::create(xContext)); // get the option - OUString sOpt = pInsTypeCombo->GetEntry(pInsTypeCombo->GetSelectEntryPos()); - if ( sOpt == "Fit to slide") + sal_uInt16 nOpt = pInsTypeCombo->GetSelectEntryPos(); + if ( nOpt == FIT_TO_SLIDE ) { OUString sUrl; @@ -184,11 +163,9 @@ IMPL_LINK_NOARG(SdPhotoAlbumDialog, CreateHdl) { appendNewSlide(AUTOLAYOUT_ONLY_TEXT, xDrawPages); } - delete pData; - pData = NULL; } } - else if( sOpt == "1 image with title" ) + else if( nOpt == TITLE_ONE_IMAGE ) { OUString sUrl; @@ -196,7 +173,7 @@ IMPL_LINK_NOARG(SdPhotoAlbumDialog, CreateHdl) { OUString* pData = (OUString*) pImagesLst->GetEntryData(i); sUrl = *pData; - if ( sUrl != "Text Box" ) + if ( sUrl != SD_RESSTR(STR_PHOTO_ALBUM_TEXTBOX) ) { Reference< drawing::XDrawPage > xSlide = appendNewSlide(AUTOLAYOUT_NONE, xDrawPages); @@ -227,11 +204,9 @@ IMPL_LINK_NOARG(SdPhotoAlbumDialog, CreateHdl) { appendNewSlide(AUTOLAYOUT_ONLY_TEXT, xDrawPages); } - delete pData; - pData = NULL; } } - else if( sOpt == "2 images" ) + else if( nOpt == TWO_IMAGES ) { OUString sUrl1(""); OUString sUrl2(""); @@ -252,13 +227,15 @@ IMPL_LINK_NOARG(SdPhotoAlbumDialog, CreateHdl) OUString("Height")) >>= aPageSize.Height; // grab the left one - pData = (OUString*) pImagesLst->GetEntryData(i); + void* pD1 = pImagesLst->GetEntryData(i); + pData = (OUString*) pD1; sUrl1 = pData ? OUString(*pData) : ""; // grab the right one - pData = (OUString*) pImagesLst->GetEntryData(i+1); + void* pD2 = pImagesLst->GetEntryData(i+1); + pData = (OUString*) pD2; sUrl2 = pData ? OUString(*pData) : ""; - if( sUrl1 == "Text Box" ) // create a Text Box + if( sUrl1 == SD_RESSTR(STR_PHOTO_ALBUM_TEXTBOX) ) // create a Text Box { SdPage* pSlide = pDoc->GetSdPage( pDoc->GetSdPageCount(PK_STANDARD)-1, PK_STANDARD); pSlide->CreatePresObj(PRESOBJ_TEXT, sal_False, Rectangle(Point(100,100), Point(aPageSize.Width/2-100, aPageSize.Height-100)), sal_True); @@ -300,7 +277,7 @@ IMPL_LINK_NOARG(SdPhotoAlbumDialog, CreateHdl) xSlide->add(xShape); } - if( sUrl2 == "Text Box" ) // create a Text Box + if( sUrl2 == SD_RESSTR(STR_PHOTO_ALBUM_TEXTBOX) ) // create a Text Box { SdPage* pSlide = pDoc->GetSdPage( pDoc->GetSdPageCount(PK_STANDARD)-1, PK_STANDARD); pSlide->CreatePresObj(PRESOBJ_TEXT, sal_False, Rectangle(Point(aPageSize.Width/2 + 100,100), Point(aPageSize.Width-100, aPageSize.Height-100)), sal_True); @@ -340,11 +317,9 @@ IMPL_LINK_NOARG(SdPhotoAlbumDialog, CreateHdl) xShape->setPosition(aPicPos); xSlide->add(xShape); } - delete pData; - pData = NULL; } } - else if( sOpt == "4 images" ) + else if( nOpt == FOUR_IMAGES ) { OUString sUrl1(""); OUString sUrl2(""); @@ -366,22 +341,26 @@ IMPL_LINK_NOARG(SdPhotoAlbumDialog, CreateHdl) OUString("Height")) >>= aPageSize.Height; // grab the upper left one - pData = (OUString*) pImagesLst->GetEntryData(i); + void* pD1 = pImagesLst->GetEntryData(i); + pData = (OUString*) pD1; sUrl1 = pData ? OUString(*pData) : ""; // grab the upper right one - pData = (OUString*) pImagesLst->GetEntryData(i+1); + void* pD2 = pImagesLst->GetEntryData(i+1); + pData = (OUString*) pD2; sUrl2 = pData ? OUString(*pData) : ""; // grab the lower left one - pData = (OUString*) pImagesLst->GetEntryData(i+2); + void* pD3 = pImagesLst->GetEntryData(i+2); + pData = (OUString*) pD3; sUrl3 = pData ? OUString(*pData) : ""; // grab the lower right one - pData = (OUString*) pImagesLst->GetEntryData(i+3); + void* pD4 = pImagesLst->GetEntryData(i+3); + pData = (OUString*) pD4; sUrl4 = pData ? OUString(*pData) : ""; - if( sUrl1 == "Text Box" ) // create a Text Box + if( sUrl1 == SD_RESSTR(STR_PHOTO_ALBUM_TEXTBOX) ) // create a Text Box { SdPage* pSlide = pDoc->GetSdPage( pDoc->GetSdPageCount(PK_STANDARD)-1, PK_STANDARD); pSlide->CreatePresObj(PRESOBJ_TEXT, sal_False, Rectangle(Point(100,100), Point(aPageSize.Width/2-100, aPageSize.Height/2-100)), sal_True); @@ -423,7 +402,7 @@ IMPL_LINK_NOARG(SdPhotoAlbumDialog, CreateHdl) xSlide->add(xShape); } - if( sUrl2 == "Text Box" ) // create a Text Box + if( sUrl2 == SD_RESSTR(STR_PHOTO_ALBUM_TEXTBOX) ) // create a Text Box { SdPage* pSlide = pDoc->GetSdPage( pDoc->GetSdPageCount(PK_STANDARD)-1, PK_STANDARD); pSlide->CreatePresObj(PRESOBJ_TEXT, sal_False, Rectangle(Point(aPageSize.Width/2 + 100,100), Point(aPageSize.Width-100, aPageSize.Height/2-100)), sal_True); @@ -464,7 +443,7 @@ IMPL_LINK_NOARG(SdPhotoAlbumDialog, CreateHdl) xSlide->add(xShape); } - if( sUrl3 == "Text Box" ) // create a Text Box + if( sUrl3 == SD_RESSTR(STR_PHOTO_ALBUM_TEXTBOX) ) // create a Text Box { SdPage* pSlide = pDoc->GetSdPage( pDoc->GetSdPageCount(PK_STANDARD)-1, PK_STANDARD); pSlide->CreatePresObj(PRESOBJ_TEXT, sal_False, Rectangle(Point(100,aPageSize.Height/2-100), Point(aPageSize.Width/2-100, aPageSize.Height-100)), sal_True); @@ -507,7 +486,7 @@ IMPL_LINK_NOARG(SdPhotoAlbumDialog, CreateHdl) xSlide->add(xShape); } - if( sUrl4 == "Text Box" ) // create a Text Box + if( sUrl4 == SD_RESSTR(STR_PHOTO_ALBUM_TEXTBOX) ) // create a Text Box { SdPage* pSlide = pDoc->GetSdPage( pDoc->GetSdPageCount(PK_STANDARD)-1, PK_STANDARD); pSlide->CreatePresObj(PRESOBJ_TEXT, sal_False, Rectangle(Point(aPageSize.Width/2 + 100,aPageSize.Height/2 - 100), Point(aPageSize.Width-100, aPageSize.Height-100)), sal_True); @@ -547,8 +526,6 @@ IMPL_LINK_NOARG(SdPhotoAlbumDialog, CreateHdl) xShape->setPosition(aPicPos); xSlide->add(xShape); } - delete pData; - pData = NULL; } } else @@ -652,11 +629,11 @@ IMPL_LINK_NOARG(SdPhotoAlbumDialog, TextHdl) sal_Int16 nPos; sal_Int16 nInsertPos = pImagesLst->GetSelectEntryPos(); if (nInsertPos < 0) - nPos = pImagesLst->InsertEntry( OUString("Text Box")); + nPos = pImagesLst->InsertEntry( OUString(SD_RESSTR(STR_PHOTO_ALBUM_TEXTBOX))); else - nPos = pImagesLst->InsertEntry( OUString("Text Box"), nInsertPos); + nPos = pImagesLst->InsertEntry( OUString(SD_RESSTR(STR_PHOTO_ALBUM_TEXTBOX)), nInsertPos); - OUString sStr("Text Box"); + OUString sStr(SD_RESSTR(STR_PHOTO_ALBUM_TEXTBOX)); pImagesLst->SetEntryData(nPos, (void*)new OUString(sStr)); if(pImagesLst->GetEntryCount() >= 1) @@ -792,7 +769,7 @@ IMPL_LINK_NOARG(SdPhotoAlbumDialog, SelectHdl) pDownBtn->Enable(); } - if (sImgUrl != "Text Box") + if (sImgUrl != SD_RESSTR(STR_PHOTO_ALBUM_TEXTBOX)) { GraphicFilter aCurFilter; Graphic aGraphic; diff --git a/sd/source/ui/dlg/PhotoAlbumDialog.hxx b/sd/source/ui/dlg/PhotoAlbumDialog.hxx index 98eb458d0c8f..691edd38387c 100644 --- a/sd/source/ui/dlg/PhotoAlbumDialog.hxx +++ b/sd/source/ui/dlg/PhotoAlbumDialog.hxx @@ -95,6 +95,14 @@ private: Reference< graphic::XGraphic> createXGraphicFromUrl(const OUString& sUrl, Reference< graphic::XGraphicProvider> xProvider); + enum SlideImageLayout + { + FIT_TO_SLIDE=0, + TITLE_ONE_IMAGE, + TWO_IMAGES, + FOUR_IMAGES + }; + }; } // end of namespace sd diff --git a/sd/source/ui/inc/strings.hrc b/sd/source/ui/inc/strings.hrc index 928167819c19..19816b985920 100644 --- a/sd/source/ui/inc/strings.hrc +++ b/sd/source/ui/inc/strings.hrc @@ -415,9 +415,8 @@ #define STR_ACC_DIALOG_DESC (RID_APP_START+728) -#define STR_PHOTO_ALBUM_TITLE (RID_APP_START+729) -#define STR_PHOTO_ALBUM_AUTHOR (RID_APP_START+730) -#define STR_PHOTO_ALBUM_EMPTY_WARNING (RID_APP_START+731) +#define STR_PHOTO_ALBUM_EMPTY_WARNING (RID_APP_START+729) +#define STR_PHOTO_ALBUM_TEXTBOX (RID_APP_START+730) /****************************************************************************** * The ids in glob.hrc start at RID_APP_START+750! |