[Libreoffice-commits] core.git: sd/source

Gergő Mocsi gmocsi91 at gmail.com
Fri May 3 05:53:17 PDT 2013


 sd/source/ui/app/strings.src          |   13 +----
 sd/source/ui/dlg/PhotoAlbumDialog.cxx |   79 ++++++++++++----------------------
 sd/source/ui/dlg/PhotoAlbumDialog.hxx |    8 +++
 sd/source/ui/inc/strings.hrc          |    5 --
 4 files changed, 42 insertions(+), 63 deletions(-)

New commits:
commit e8ed29c952259a241564dfbf40e5b53d2c6e67e2
Author: Gergő Mocsi <gmocsi91 at gmail.com>
Date:   Wed Apr 17 10:46:08 2013 +0200

    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

diff --git a/sd/source/ui/app/strings.src b/sd/source/ui/app/strings.src
index a91003d..928e03e 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 4beabeb..5d6ba1e 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 98eb458..691edd3 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 9281678..19816b9 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!


More information about the Libreoffice-commits mailing list