summaryrefslogtreecommitdiffstats
path: root/sd
diff options
context:
space:
mode:
authorGergő Mocsi <gmocsi91@gmail.com>2013-04-17 10:46:08 +0200
committerAndras Timar <atimar@suse.com>2013-05-03 14:52:52 +0200
commite8ed29c952259a241564dfbf40e5b53d2c6e67e2 (patch)
treed9f65ac428099cc4978ceaa67ea9eaa197ea7320 /sd
parentRelated: fdo#60265 fix lunatic way to detect special filter name (diff)
downloadcore-e8ed29c952259a241564dfbf40e5b53d2c6e67e2.tar.gz
core-e8ed29c952259a241564dfbf40e5b53d2c6e67e2.zip
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.src13
-rw-r--r--sd/source/ui/dlg/PhotoAlbumDialog.cxx79
-rw-r--r--sd/source/ui/dlg/PhotoAlbumDialog.hxx8
-rw-r--r--sd/source/ui/inc/strings.hrc5
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!