sd/source/ui/app/strings.src | 5 + sd/source/ui/dlg/PhotoAlbumDialog.cxx | 70 +++++++++-------- sd/source/ui/inc/strings.hrc | 1 sd/source/ui/slidesorter/controller/SlsSlotManager.cxx | 17 ++++ sd/source/ui/view/outlnvs2.cxx | 17 ++++ 5 files changed, 81 insertions(+), 29 deletions(-)
New commits: commit e7808c250f1b82ca9566fc12c4d7de33c58fcb1b Author: Andras Timar <ati...@suse.com> Date: Fri Apr 12 03:32:48 2013 -0700 make Photo Album warning string localizable Change-Id: Ib57d76313732fed18d1d3b91b27df33d60dabf2b diff --git a/sd/source/ui/app/strings.src b/sd/source/ui/app/strings.src index bc96afb..a91003d 100644 --- a/sd/source/ui/app/strings.src +++ b/sd/source/ui/app/strings.src @@ -1278,4 +1278,9 @@ String STR_PHOTO_ALBUM_AUTHOR Text [ en-US ] = "Author:" ; }; +String STR_PHOTO_ALBUM_EMPTY_WARNING +{ + Text [ en-US ] = "Please add images to the album." ; +}; + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/source/ui/dlg/PhotoAlbumDialog.cxx b/sd/source/ui/dlg/PhotoAlbumDialog.cxx index b5e7ee3..4beabeb 100644 --- a/sd/source/ui/dlg/PhotoAlbumDialog.cxx +++ b/sd/source/ui/dlg/PhotoAlbumDialog.cxx @@ -92,8 +92,8 @@ IMPL_LINK_NOARG(SdPhotoAlbumDialog, CreateHdl) { if (pImagesLst->GetEntryCount() == 0) { - InfoBox aInfo(this, OUString("Please add images to the album.")); - aInfo.Execute(); + WarningBox aWarning(this, WB_OK, SD_RESSTR(STR_PHOTO_ALBUM_EMPTY_WARNING)); + aWarning.Execute(); } else { diff --git a/sd/source/ui/inc/strings.hrc b/sd/source/ui/inc/strings.hrc index c3d8268..9281678 100644 --- a/sd/source/ui/inc/strings.hrc +++ b/sd/source/ui/inc/strings.hrc @@ -417,6 +417,7 @@ #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) /****************************************************************************** * The ids in glob.hrc start at RID_APP_START+750! commit d99f529676e78895996d50064dbcb0dc1b2ad986 Author: GergÅ Mocsi <gmocs...@gmail.com> Date: Sun Apr 7 11:25:23 2013 +0200 Create Photo Album implementation UI tweaks: dialog window open in all modes (Normal, Outline, Slide Sorter, ..). Fixed some pointer issues in function CreateHdl). Functionality: Title slide gets inserted only when we have one slide in the presentation (having > 1, I assume that we don't have an empty presentation). Conflicts: sd/source/ui/dlg/PhotoAlbumDialog.cxx Change-Id: I7eb844bf2382a44481435cfaa8f498e29c56bd69 diff --git a/sd/source/ui/dlg/PhotoAlbumDialog.cxx b/sd/source/ui/dlg/PhotoAlbumDialog.cxx index 374b305..b5e7ee3 100644 --- a/sd/source/ui/dlg/PhotoAlbumDialog.cxx +++ b/sd/source/ui/dlg/PhotoAlbumDialog.cxx @@ -102,19 +102,25 @@ IMPL_LINK_NOARG(SdPhotoAlbumDialog, CreateHdl) Reference< lang::XMultiServiceFactory > xShapeFactory( pDoc->getUnoModel(), uno::UNO_QUERY ); // Create the title slide - Reference< drawing::XDrawPage > xTitleSlide = appendNewSlide(AUTOLAYOUT_TITLE, xDrawPages); + const sal_Int32 nSlideCount = pDoc->GetSdPageCount(PK_STANDARD); - 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()); + 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)); @@ -124,10 +130,10 @@ IMPL_LINK_NOARG(SdPhotoAlbumDialog, CreateHdl) if ( sOpt == "Fit to slide") { OUString sUrl; - OUString* pData = NULL; + for( sal_Int16 i = 0; i < pImagesLst->GetEntryCount(); ++i ) { - pData = (OUString*) pImagesLst->GetEntryData(i); + OUString* pData = (OUString*) pImagesLst->GetEntryData(i); sUrl = *pData; if (sUrl != "Text Box") { @@ -178,16 +184,17 @@ IMPL_LINK_NOARG(SdPhotoAlbumDialog, CreateHdl) { appendNewSlide(AUTOLAYOUT_ONLY_TEXT, xDrawPages); } + delete pData; + pData = NULL; } - delete pData; } else if( sOpt == "1 image with title" ) { OUString sUrl; - OUString* pData = NULL; + for( sal_Int16 i = 0; i < pImagesLst->GetEntryCount(); ++i ) { - pData = (OUString*) pImagesLst->GetEntryData(i); + OUString* pData = (OUString*) pImagesLst->GetEntryData(i); sUrl = *pData; if ( sUrl != "Text Box" ) { @@ -220,17 +227,19 @@ IMPL_LINK_NOARG(SdPhotoAlbumDialog, CreateHdl) { appendNewSlide(AUTOLAYOUT_ONLY_TEXT, xDrawPages); } + delete pData; + pData = NULL; } - delete pData; } else if( sOpt == "2 images" ) { OUString sUrl1(""); OUString sUrl2(""); - OUString* pData = NULL; for( sal_Int32 i = 0; i < pImagesLst->GetEntryCount(); i+=2 ) { + OUString* pData = NULL; + // create the slide Reference< drawing::XDrawPage > xSlide = appendNewSlide(AUTOLAYOUT_NONE, xDrawPages); Reference< beans::XPropertySet > xSlideProps( xSlide, uno::UNO_QUERY ); @@ -331,9 +340,9 @@ IMPL_LINK_NOARG(SdPhotoAlbumDialog, CreateHdl) xShape->setPosition(aPicPos); xSlide->add(xShape); } - + delete pData; + pData = NULL; } - delete pData; } else if( sOpt == "4 images" ) { @@ -341,10 +350,10 @@ IMPL_LINK_NOARG(SdPhotoAlbumDialog, CreateHdl) OUString sUrl2(""); OUString sUrl3(""); OUString sUrl4(""); - OUString* pData = NULL; for( sal_Int32 i = 0; i < pImagesLst->GetEntryCount(); i+=4 ) { + OUString* pData = NULL; // create the slide Reference< drawing::XDrawPage > xSlide = appendNewSlide(AUTOLAYOUT_NONE, xDrawPages); Reference< beans::XPropertySet > xSlideProps( xSlide, uno::UNO_QUERY ); @@ -538,8 +547,9 @@ IMPL_LINK_NOARG(SdPhotoAlbumDialog, CreateHdl) xShape->setPosition(aPicPos); xSlide->add(xShape); } + delete pData; + pData = NULL; } - delete pData; } else { @@ -560,9 +570,10 @@ IMPL_LINK_NOARG(SdPhotoAlbumDialog, FileHdl) ); // Read configuration OUString sUrl("."); + Reference< XInterface > xCfg; try { - Reference< XInterface > xCfg = ::comphelper::ConfigurationHelper::openConfig( + xCfg = ::comphelper::ConfigurationHelper::openConfig( ::comphelper::getProcessComponentContext(), OUString("/org.openoffice.Office.Impress/"), ::comphelper::ConfigurationHelper::E_READONLY); @@ -593,18 +604,18 @@ IMPL_LINK_NOARG(SdPhotoAlbumDialog, FileHdl) // Write out configuration try { - Reference< XInterface > xCfgWriter = ::comphelper::ConfigurationHelper::openConfig( + xCfg = ::comphelper::ConfigurationHelper::openConfig( ::comphelper::getProcessComponentContext(), OUString("/org.openoffice.Office.Impress/"), ::comphelper::ConfigurationHelper::E_STANDARD); ::comphelper::ConfigurationHelper::writeRelativeKey( - xCfgWriter, + xCfg, OUString("Pictures"), OUString("Path"), uno::makeAny(sUrl)); - ::comphelper::ConfigurationHelper::flush(xCfgWriter); + ::comphelper::ConfigurationHelper::flush(xCfg); } catch(const Exception&) { @@ -897,6 +908,7 @@ Reference< graphic::XGraphic> SdPhotoAlbumDialog::createXGraphicFromUrl(const OU Reference< graphic::XGraphicProvider> xProvider ) { + // The same as above, except this returns an XGraphic from the image URL ::comphelper::NamedValueCollection aMediaProperties; aMediaProperties.put( "URL", OUString( sUrl ) ); Reference< graphic::XGraphic> xGraphic = diff --git a/sd/source/ui/slidesorter/controller/SlsSlotManager.cxx b/sd/source/ui/slidesorter/controller/SlsSlotManager.cxx index bdf802b..a07ef14 100644 --- a/sd/source/ui/slidesorter/controller/SlsSlotManager.cxx +++ b/sd/source/ui/slidesorter/controller/SlsSlotManager.cxx @@ -66,6 +66,7 @@ #include "glob.hrc" #include "unmodpg.hxx" #include "DrawViewShell.hxx" +#include "sdabstdlg.hxx" #include <sfx2/request.hxx> #include <sfx2/viewfrm.hxx> @@ -263,6 +264,22 @@ void SlotManager::FuTemporary (SfxRequest& rRequest) } break; + case SID_PHOTOALBUM: + { + SdAbstractDialogFactory* pFact = SdAbstractDialogFactory::Create(); + VclAbstractDialog* pDlg = pFact ? pFact->CreateSdPhotoAlbumDialog( + mrSlideSorter.GetContentWindow().get(), + pDocument) : 0; + + if (pDlg) + { + pDlg->Execute(); + delete pDlg; + } + rRequest.Done (); + } + break; + default: break; } diff --git a/sd/source/ui/view/outlnvs2.cxx b/sd/source/ui/view/outlnvs2.cxx index d98589a..612476e 100644 --- a/sd/source/ui/view/outlnvs2.cxx +++ b/sd/source/ui/view/outlnvs2.cxx @@ -295,6 +295,23 @@ void OutlineViewShell::FuTemporary(SfxRequest &rReq) Cancel(); } break; + + case SID_PHOTOALBUM: + { + SdAbstractDialogFactory* pFact = SdAbstractDialogFactory::Create(); + VclAbstractDialog* pDlg = pFact ? pFact->CreateSdPhotoAlbumDialog( + GetActiveWindow(), + GetDoc()) : 0; + + if (pDlg) + { + pDlg->Execute(); + delete pDlg; + } + Cancel(); + rReq.Ignore (); + } + break; } if(HasCurrentFunction())
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits