summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2018-05-11 13:56:03 +0100
committerCaolán McNamara <caolanm@redhat.com>2018-05-11 22:08:26 +0200
commit850995b2c22db7c3ddbcc8ebfad5bcbc0b01f029 (patch)
tree6db21144056d557d6b71f3d65b521bf999d607fe
parent96998e0f4c35fb9c7d39e6bb3a31b194874b091c (diff)
weld SdPhotoAlbumDialog
Change-Id: I46cca94bb43e1b1cd9757b22baad9bb3f61bc15d Reviewed-on: https://gerrit.libreoffice.org/54132 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r--sd/inc/sdabstdlg.hxx2
-rw-r--r--sd/qa/unit/dialogs-test.cxx13
-rw-r--r--sd/source/ui/dlg/PhotoAlbumDialog.cxx285
-rw-r--r--sd/source/ui/dlg/PhotoAlbumDialog.hxx70
-rw-r--r--sd/source/ui/dlg/sddlgfact.cxx10
-rw-r--r--sd/source/ui/dlg/sddlgfact.hxx14
-rw-r--r--sd/source/ui/slidesorter/controller/SlsSlotManager.cxx3
-rw-r--r--sd/source/ui/view/drviews2.cxx3
-rw-r--r--sd/source/ui/view/outlnvs2.cxx3
-rw-r--r--sd/uiconfig/simpress/ui/photoalbum.ui64
-rw-r--r--svx/source/dialog/graphctl.cxx1
11 files changed, 206 insertions, 262 deletions
diff --git a/sd/inc/sdabstdlg.hxx b/sd/inc/sdabstdlg.hxx
index babfe9d84baf..27fb17ddd9ed 100644
--- a/sd/inc/sdabstdlg.hxx
+++ b/sd/inc/sdabstdlg.hxx
@@ -206,7 +206,7 @@ public:
virtual CreateTabPage GetSdOptionsMiscTabPageCreatorFunc() = 0;
virtual CreateTabPage GetSdOptionsSnapTabPageCreatorFunc() = 0;
- virtual VclPtr<VclAbstractDialog> CreateSdPhotoAlbumDialog( vcl::Window* pWindow, SdDrawDocument* pDoc) = 0;
+ virtual VclPtr<VclAbstractDialog> CreateSdPhotoAlbumDialog(weld::Window* pWindow, SdDrawDocument* pDoc) = 0;
protected:
~SdAbstractDialogFactory() {}
diff --git a/sd/qa/unit/dialogs-test.cxx b/sd/qa/unit/dialogs-test.cxx
index f926f0be7948..8a2d6603ac55 100644
--- a/sd/qa/unit/dialogs-test.cxx
+++ b/sd/qa/unit/dialogs-test.cxx
@@ -278,7 +278,7 @@ VclPtr<VclAbstractDialog> SdDialogsTest::createDialogByID(sal_uInt32 nID)
}
case 1:
{
- // CreateBreakDlg(vcl::Window* pWindow, ::sd::DrawView* pDrView, ::sd::DrawDocShell* pShell, sal_uLong nSumActionCount, sal_uLong nObjCount) override;
+ // CreateBreakDlg(weld::Window* pWindow, ::sd::DrawView* pDrView, ::sd::DrawDocShell* pShell, sal_uLong nSumActionCount, sal_uLong nObjCount) override;
// this dialog requires pDrawView. It does not show much when
// there is no object selected that can be broken up. For better
// results it might be necessary to add/select an object that
@@ -397,7 +397,7 @@ VclPtr<VclAbstractDialog> SdDialogsTest::createDialogByID(sal_uInt32 nID)
}
case 10:
{
- // CreateMorphDlg(vcl::Window* pParent, const SdrObject* pObj1, const SdrObject* pObj2) override;
+ // CreateMorphDlg(weld::Window* pParent, const SdrObject* pObj1, const SdrObject* pObj2) override;
SdDrawDocument* pDrawDoc = getSdXImpressDocument()->GetDoc();
CPPUNIT_ASSERT(pDrawDoc);
SdPage* pSdPage = pDrawDoc->GetSdPage(0, PageKind::Standard);
@@ -542,7 +542,7 @@ VclPtr<VclAbstractDialog> SdDialogsTest::createDialogByID(sal_uInt32 nID)
}
case 19:
{
- // CreateSdVectorizeDlg(vcl::Window* pParent, const Bitmap& rBmp, ::sd::DrawDocShell* pDocShell) override;
+ // CreateSdVectorizeDlg(weld::Window* pParent, const Bitmap& rBmp, ::sd::DrawDocShell* pDocShell) override;
// works well with empty Bitmap, but my be nicer with setting one
Bitmap aEmptyBitmap;
auto const parent = Application::GetDefDialogParent();
@@ -554,17 +554,18 @@ VclPtr<VclAbstractDialog> SdDialogsTest::createDialogByID(sal_uInt32 nID)
}
case 20:
{
- // CreateSdPhotoAlbumDialog(vcl::Window* pWindow, SdDrawDocument* pDoc) override;
+ // CreateSdPhotoAlbumDialog(weld::Window* pWindow, SdDrawDocument* pDoc) override;
SdDrawDocument* pDrawDoc = getSdXImpressDocument()->GetDoc();
CPPUNIT_ASSERT(pDrawDoc);
+ auto const parent = Application::GetDefDialogParent();
pRetval = getSdAbstractDialogFactory()->CreateSdPhotoAlbumDialog(
- Application::GetDefDialogParent(),
+ parent == nullptr ? nullptr : parent->GetFrameWeld(),
pDrawDoc);
break;
}
case 21:
{
- // CreateMasterLayoutDialog(vcl::Window* pParent, SdDrawDocument* pDoc, SdPage*) override;
+ // CreateMasterLayoutDialog(weld::Window* pParent, SdDrawDocument* pDoc, SdPage*) override;
SdDrawDocument* pDrawDoc = getSdXImpressDocument()->GetDoc();
CPPUNIT_ASSERT(pDrawDoc);
SdPage* pSdPage = pDrawDoc->GetSdPage(0, PageKind::Standard);
diff --git a/sd/source/ui/dlg/PhotoAlbumDialog.cxx b/sd/source/ui/dlg/PhotoAlbumDialog.cxx
index d7af857f86d8..863121b9b201 100644
--- a/sd/source/ui/dlg/PhotoAlbumDialog.cxx
+++ b/sd/source/ui/dlg/PhotoAlbumDialog.cxx
@@ -39,106 +39,80 @@
namespace sd
{
-SdPhotoAlbumDialog::SdPhotoAlbumDialog(vcl::Window* pWindow, SdDrawDocument* pActDoc)
-: ModalDialog(pWindow, "PhotoAlbumCreatorDialog", "modules/simpress/ui/photoalbum.ui"),
- pDoc(pActDoc)
+SdPhotoAlbumDialog::SdPhotoAlbumDialog(weld::Window* pWindow, SdDrawDocument* pActDoc)
+ : GenericDialogController(pWindow, "modules/simpress/ui/photoalbum.ui", "PhotoAlbumCreatorDialog")
+ , m_pDoc(pActDoc)
+ , m_xCancelBtn(m_xBuilder->weld_button("cancel"))
+ , m_xCreateBtn(m_xBuilder->weld_button("ok"))
+ , m_xAddBtn(m_xBuilder->weld_button("add_btn"))
+ , m_xUpBtn(m_xBuilder->weld_button("up_btn"))
+ , m_xDownBtn(m_xBuilder->weld_button("down_btn"))
+ , m_xRemoveBtn(m_xBuilder->weld_button("rem_btn"))
+ , m_xImagesLst(m_xBuilder->weld_tree_view("images_tree"))
+ , m_xImg(new SvxGraphCtrl(*m_xBuilder, "preview_img"))
+ , m_xInsTypeCombo(m_xBuilder->weld_combo_box_text("opt_combo"))
+ , m_xASRCheck(m_xBuilder->weld_check_button("asr_check"))
+ , m_xASRCheckCrop(m_xBuilder->weld_check_button("asr_check_crop"))
+ , m_xCapCheck(m_xBuilder->weld_check_button("cap_check"))
+ , m_xInsertAsLinkCheck(m_xBuilder->weld_check_button("insert_as_link_check"))
{
- get(pCancelBtn, "cancel");
- get(pCreateBtn, "ok");
-
- get(pAddBtn, "add_btn");
- get(pUpBtn, "up_btn");
- get(pDownBtn, "down_btn");
- get(pRemoveBtn, "rem_btn");
-
- get(pImagesLst, "images_tree");
- get(pImg, "preview_img");
-
- get(pInsTypeCombo, "opt_combo");
- get(pASRCheck, "asr_check");
- get(pASRCheckCrop, "asr_check_crop");
- get(pCapCheck, "cap_check");
- get(pInsertAsLinkCheck, "insert_as_link_check");
-
- pCancelBtn->SetClickHdl(LINK(this, SdPhotoAlbumDialog, CancelHdl));
- pCreateBtn->SetClickHdl(LINK(this, SdPhotoAlbumDialog, CreateHdl));
-
- pAddBtn->SetClickHdl(LINK(this, SdPhotoAlbumDialog, FileHdl));
- pUpBtn->SetClickHdl(LINK(this, SdPhotoAlbumDialog, UpHdl));
- pUpBtn->Disable();
- pDownBtn->SetClickHdl(LINK(this, SdPhotoAlbumDialog, DownHdl));
- pDownBtn->Disable();
- pRemoveBtn->SetClickHdl(LINK(this, SdPhotoAlbumDialog, RemoveHdl));
- pRemoveBtn->Disable();
- pImagesLst->SetSelectHdl(LINK(this, SdPhotoAlbumDialog, SelectHdl));
- pInsTypeCombo->SetSelectHdl(LINK(this, SdPhotoAlbumDialog, TypeSelectHdl));
-
- mpGraphicFilter = new GraphicFilter;
- pAddBtn->GrabFocus();
- pImagesLst->Clear();
+ m_xCancelBtn->connect_clicked(LINK(this, SdPhotoAlbumDialog, CancelHdl));
+ m_xCreateBtn->connect_clicked(LINK(this, SdPhotoAlbumDialog, CreateHdl));
+
+ m_xAddBtn->connect_clicked(LINK(this, SdPhotoAlbumDialog, FileHdl));
+ m_xUpBtn->connect_clicked(LINK(this, SdPhotoAlbumDialog, UpHdl));
+ m_xUpBtn->set_sensitive(false);
+ m_xDownBtn->connect_clicked(LINK(this, SdPhotoAlbumDialog, DownHdl));
+ m_xDownBtn->set_sensitive(false);
+ m_xRemoveBtn->connect_clicked(LINK(this, SdPhotoAlbumDialog, RemoveHdl));
+ m_xRemoveBtn->set_sensitive(false);
+ m_xImagesLst->connect_changed(LINK(this, SdPhotoAlbumDialog, SelectHdl));
+ m_xInsTypeCombo->connect_changed(LINK(this, SdPhotoAlbumDialog, TypeSelectHdl));
+
+ m_pGraphicFilter = new GraphicFilter;
+ m_xAddBtn->grab_focus();
}
SdPhotoAlbumDialog::~SdPhotoAlbumDialog()
{
- disposeOnce();
}
-void SdPhotoAlbumDialog::dispose()
+IMPL_LINK_NOARG(SdPhotoAlbumDialog, CancelHdl, weld::Button&, void)
{
- pCancelBtn.clear();
- pCreateBtn.clear();
- pAddBtn.clear();
- pUpBtn.clear();
- pDownBtn.clear();
- pRemoveBtn.clear();
- pImagesLst.clear();
- pImg.clear();
- pInsTypeCombo.clear();
- pASRCheck.clear();
- pASRCheckCrop.clear();
- pCapCheck.clear();
- pInsertAsLinkCheck.clear();
- ModalDialog::dispose();
+ m_xDialog->response(RET_CANCEL);
}
-IMPL_LINK_NOARG(SdPhotoAlbumDialog, CancelHdl, Button*, void)
+IMPL_LINK_NOARG(SdPhotoAlbumDialog, CreateHdl, weld::Button&, void)
{
- Close();
-}
-
-IMPL_LINK_NOARG(SdPhotoAlbumDialog, CreateHdl, Button*, void)
-{
- if (pImagesLst->GetEntryCount() == 0)
+ if (m_xImagesLst->n_children() == 0)
{
- std::unique_ptr<weld::MessageDialog> xWarn(Application::CreateMessageDialog(GetFrameWeld(),
+ std::unique_ptr<weld::MessageDialog> xWarn(Application::CreateMessageDialog(m_xDialog.get(),
VclMessageType::Warning, VclButtonsType::Ok,
SdResId(STR_PHOTO_ALBUM_EMPTY_WARNING)));
xWarn->run();
}
else
{
- Reference< drawing::XDrawPagesSupplier > xDPS( pDoc->getUnoModel(), uno::UNO_QUERY );
+ Reference< drawing::XDrawPagesSupplier > xDPS( m_pDoc->getUnoModel(), uno::UNO_QUERY );
Reference< drawing::XDrawPages > xDrawPages( xDPS->getDrawPages(), uno::UNO_QUERY );
- Reference< lang::XMultiServiceFactory > xShapeFactory( pDoc->getUnoModel(), uno::UNO_QUERY );
+ Reference< lang::XMultiServiceFactory > xShapeFactory( m_pDoc->getUnoModel(), uno::UNO_QUERY );
Reference< XComponentContext > xContext(::comphelper::getProcessComponentContext());
Reference< graphic::XGraphicProvider> xProvider(graphic::GraphicProvider::create(xContext));
// determine if to use Captions (use TitleObject) and choose the correct AutoLayout
// from the beginning
- const bool bCreateCaptions(pCapCheck->IsChecked());
- const bool bInsertAsLink(pInsertAsLinkCheck->IsChecked());
+ const bool bCreateCaptions(m_xCapCheck->get_active());
+ const bool bInsertAsLink(m_xInsertAsLinkCheck->get_active());
const AutoLayout aAutoLayout(bCreateCaptions ? AUTOLAYOUT_TITLE_ONLY : AUTOLAYOUT_NONE);
// get the option
- const sal_Int32 nOpt = pInsTypeCombo->GetSelectedEntryPos();
- if ( nOpt == ONE_IMAGE )
+ const int nOpt = m_xInsTypeCombo->get_active();
+ if (nOpt == ONE_IMAGE)
{
- OUString sUrl;
- for( sal_Int32 i = 0; i < pImagesLst->GetEntryCount(); ++i )
+ for( sal_Int32 i = 0; i < m_xImagesLst->n_children(); ++i )
{
- OUString const * pData = static_cast<OUString const *>(pImagesLst->GetEntryData(i));
- sUrl = *pData;
+ OUString sUrl = m_xImagesLst->get_id(i);
Reference< drawing::XDrawPage > xSlide = appendNewSlide(aAutoLayout, xDrawPages);
Reference< beans::XPropertySet > xSlideProps( xSlide, uno::UNO_QUERY );
@@ -167,12 +141,12 @@ IMPL_LINK_NOARG(SdPhotoAlbumDialog, CreateHdl, Button*, void)
::awt::Point aPicPos;
- if(pASRCheck->IsChecked() && !pASRCheckCrop->IsChecked())
+ if (m_xASRCheck->get_active() && !m_xASRCheckCrop->get_active())
{
// Resize the image, with keeping ASR
aPicSize = createASRSize(aPicSize, aPageSize);
}
- else if(pASRCheckCrop->IsChecked())
+ else if (m_xASRCheckCrop->get_active())
{
aPicSize = createASRSizeCrop(aPicSize, aPageSize);
}
@@ -196,13 +170,8 @@ IMPL_LINK_NOARG(SdPhotoAlbumDialog, CreateHdl, Button*, void)
}
else if( nOpt == TWO_IMAGES )
{
- OUString sUrl1("");
- OUString sUrl2("");
-
- for( sal_Int32 i = 0; i < pImagesLst->GetEntryCount(); i+=2 )
+ for( sal_Int32 i = 0; i < m_xImagesLst->n_children(); i+=2 )
{
- OUString const * pData = nullptr;
-
// create the slide
Reference< drawing::XDrawPage > xSlide = appendNewSlide(aAutoLayout, xDrawPages);
Reference< beans::XPropertySet > xSlideProps( xSlide, uno::UNO_QUERY );
@@ -215,13 +184,9 @@ IMPL_LINK_NOARG(SdPhotoAlbumDialog, CreateHdl, Button*, void)
"Height") >>= aPageSize.Height;
// grab the left one
- void* pD1 = pImagesLst->GetEntryData(i);
- pData = static_cast<OUString const *>(pD1);
- sUrl1 = pData ? *pData : "";
+ OUString sUrl1 = m_xImagesLst->get_id(i);
// grab the right one
- void* pD2 = pImagesLst->GetEntryData(i+1);
- pData = static_cast<OUString const *>(pD2);
- sUrl2 = pData ? *pData : "";
+ OUString sUrl2 = m_xImagesLst->get_id(i+1);
if( !sUrl1.isEmpty() )
{
@@ -242,7 +207,7 @@ IMPL_LINK_NOARG(SdPhotoAlbumDialog, CreateHdl, Button*, void)
::awt::Point aPicPos;
- if(pASRCheck->IsChecked())
+ if (m_xASRCheck->get_active())
{
// Resize the image, with keeping ASR
aPicSize = createASRSize(aPicSize, ::awt::Size(aPageSize.Width/2 - 100, aPageSize.Height/2 - 100));
@@ -286,7 +251,7 @@ IMPL_LINK_NOARG(SdPhotoAlbumDialog, CreateHdl, Button*, void)
::awt::Point aPicPos;
- if(pASRCheck->IsChecked())
+ if (m_xASRCheck->get_active())
{
// Resize the image, with keeping ASR
aPicSize = createASRSize(aPicSize, ::awt::Size(aPageSize.Width/2 - 100, aPageSize.Height/2 - 100));
@@ -317,14 +282,8 @@ IMPL_LINK_NOARG(SdPhotoAlbumDialog, CreateHdl, Button*, void)
}
else if( nOpt == FOUR_IMAGES )
{
- OUString sUrl1("");
- OUString sUrl2("");
- OUString sUrl3("");
- OUString sUrl4("");
-
- for( sal_Int32 i = 0; i < pImagesLst->GetEntryCount(); i+=4 )
+ for( sal_Int32 i = 0; i < m_xImagesLst->n_children(); i+=4 )
{
- OUString* pData = nullptr;
// create the slide
Reference< drawing::XDrawPage > xSlide = appendNewSlide(aAutoLayout, xDrawPages);
Reference< beans::XPropertySet > xSlideProps( xSlide, uno::UNO_QUERY );
@@ -337,24 +296,16 @@ IMPL_LINK_NOARG(SdPhotoAlbumDialog, CreateHdl, Button*, void)
"Height") >>= aPageSize.Height;
// grab the upper left one
- void* pD1 = pImagesLst->GetEntryData(i);
- pData = static_cast<OUString*>(pD1);
- sUrl1 = pData ? *pData : "";
+ OUString sUrl1 = m_xImagesLst->get_id(i);
// grab the upper right one
- void* pD2 = pImagesLst->GetEntryData(i+1);
- pData = static_cast<OUString *>(pD2);
- sUrl2 = pData ? *pData : "";
+ OUString sUrl2 = m_xImagesLst->get_id(i+1);
// grab the lower left one
- void* pD3 = pImagesLst->GetEntryData(i+2);
- pData = static_cast<OUString*>(pD3);
- sUrl3 = pData ? *pData : "";
+ OUString sUrl3 = m_xImagesLst->get_id(i+2);
// grab the lower right one
- void* pD4 = pImagesLst->GetEntryData(i+3);
- pData = static_cast<OUString*>(pD4);
- sUrl4 = pData ? *pData : "";
+ OUString sUrl4 = m_xImagesLst->get_id(i+3);
if( !sUrl1.isEmpty() )
{
@@ -375,7 +326,7 @@ IMPL_LINK_NOARG(SdPhotoAlbumDialog, CreateHdl, Button*, void)
::awt::Point aPicPos;
- if(pASRCheck->IsChecked())
+ if (m_xASRCheck->get_active())
{
// Resize the image, with keeping ASR
aPicSize = createASRSize(aPicSize, ::awt::Size(aPageSize.Width/2 - 100, aPageSize.Height/2 - 100));
@@ -418,7 +369,7 @@ IMPL_LINK_NOARG(SdPhotoAlbumDialog, CreateHdl, Button*, void)
::awt::Point aPicPos;
- if(pASRCheck->IsChecked())
+ if (m_xASRCheck->get_active())
{
// Resize the image, with keeping ASR
aPicSize = createASRSize(aPicSize, ::awt::Size(aPageSize.Width/2 - 100, aPageSize.Height/2 - 100));
@@ -461,7 +412,7 @@ IMPL_LINK_NOARG(SdPhotoAlbumDialog, CreateHdl, Button*, void)
::awt::Point aPicPos;
- if(pASRCheck->IsChecked())
+ if (m_xASRCheck->get_active())
{
// Resize the image, with keeping ASR
aPicSize = createASRSize(aPicSize, ::awt::Size(aPageSize.Width/2 - 100, aPageSize.Height/2 - 100));
@@ -504,7 +455,7 @@ IMPL_LINK_NOARG(SdPhotoAlbumDialog, CreateHdl, Button*, void)
::awt::Point aPicPos;
- if(pASRCheck->IsChecked())
+ if (m_xASRCheck->get_active())
{
// Resize the image, with keeping ASR
aPicSize = createASRSize(aPicSize, ::awt::Size(aPageSize.Width/2 - 100, aPageSize.Height/2 - 100));
@@ -534,20 +485,20 @@ IMPL_LINK_NOARG(SdPhotoAlbumDialog, CreateHdl, Button*, void)
}
else
{
- std::unique_ptr<weld::MessageDialog> xInfoBox(Application::CreateMessageDialog(GetFrameWeld(),
+ std::unique_ptr<weld::MessageDialog> xInfoBox(Application::CreateMessageDialog(m_xDialog.get(),
VclMessageType::Info, VclButtonsType::Ok,
"Function is not implemented!"));
xInfoBox->run();
}
- EndDialog();
+ m_xDialog->response(RET_OK);
}
}
-IMPL_LINK_NOARG(SdPhotoAlbumDialog, FileHdl, Button*, void)
+IMPL_LINK_NOARG(SdPhotoAlbumDialog, FileHdl, weld::Button&, void)
{
::sfx2::FileDialogHelper aDlg(
css::ui::dialogs::TemplateDescription::FILEOPEN_PREVIEW,
- FileDialogFlags::Graphic | FileDialogFlags::MultiSelection, GetFrameWeld());
+ FileDialogFlags::Graphic | FileDialogFlags::MultiSelection, m_xDialog.get());
// Read configuration
OUString sUrl(officecfg::Office::Impress::Pictures::Path::get());
@@ -575,85 +526,71 @@ IMPL_LINK_NOARG(SdPhotoAlbumDialog, FileHdl, Button*, void)
{
// Store full path, show filename only. Use INetURLObject to display spaces in filename correctly
INetURLObject aUrl = INetURLObject(aFilesArr[i]);
- sal_Int16 nPos = pImagesLst->InsertEntry( aUrl.GetLastName(INetURLObject::DecodeMechanism::WithCharset) );
- pImagesLst->SetEntryData(nPos, new OUString(aUrl.GetMainURL(INetURLObject::DecodeMechanism::NONE)));
+ m_xImagesLst->append(aUrl.GetMainURL(INetURLObject::DecodeMechanism::NONE), aUrl.GetLastName(INetURLObject::DecodeMechanism::WithCharset), "");
}
}
}
EnableDisableButtons();
}
-IMPL_LINK_NOARG(SdPhotoAlbumDialog, UpHdl, Button*, void)
+IMPL_LINK_NOARG(SdPhotoAlbumDialog, UpHdl, weld::Button&, void)
{
- if (pImagesLst->GetSelectedEntryPos() != LISTBOX_ENTRY_NOTFOUND
- && pImagesLst->GetSelectedEntryPos() != 0)
+ const int nActPos = m_xImagesLst->get_selected_index();
+ if (nActPos != -1 && nActPos != 0)
{
- const sal_Int32 nActPos = pImagesLst->GetSelectedEntryPos();
- OUString sActEntry( pImagesLst->GetEntry(nActPos) );
+ OUString sActEntry(m_xImagesLst->get_text(nActPos));
// actual data
- OUString* pActData = static_cast<OUString*>(pImagesLst->GetEntryData(nActPos));
- OUString sAct(*pActData);
+ OUString sAct(m_xImagesLst->get_id(nActPos));
- OUString sUpperEntry( pImagesLst->GetEntry(nActPos - 1) );
+ OUString sUpperEntry(m_xImagesLst->get_text(nActPos - 1));
// upper data
- OUString* pUpperData = static_cast<OUString*>(pImagesLst->GetEntryData(nActPos - 1));
- OUString sUpper(*pUpperData);
-
- pImagesLst->RemoveEntry( sActEntry );
- pImagesLst->RemoveEntry( sUpperEntry );
+ OUString sUpper(m_xImagesLst->get_id(nActPos - 1));
- pImagesLst->InsertEntry( sActEntry, nActPos - 1 );
- pImagesLst->SetEntryData( nActPos - 1, new OUString(sAct));
+ m_xImagesLst->remove_text(sActEntry);
+ m_xImagesLst->remove_text(sUpperEntry);
- pImagesLst->InsertEntry( sUpperEntry, nActPos );
- pImagesLst->SetEntryData( nActPos, new OUString(sUpper));
+ m_xImagesLst->insert(nActPos - 1, sAct, sActEntry, "");
+ m_xImagesLst->insert(nActPos, sUpper, sUpperEntry, "");
- pImagesLst->SelectEntryPos(nActPos - 1);
+ m_xImagesLst->select(nActPos - 1);
}
EnableDisableButtons();
}
-IMPL_LINK_NOARG(SdPhotoAlbumDialog, DownHdl, Button*, void)
+IMPL_LINK_NOARG(SdPhotoAlbumDialog, DownHdl, weld::Button&, void)
{
- const sal_Int32 nActPos = pImagesLst->GetSelectedEntryPos();
- if (!pImagesLst->GetEntry(nActPos + 1).isEmpty())
+ const int nActPos = m_xImagesLst->get_selected_index();
+ if (!m_xImagesLst->get_text(nActPos + 1).isEmpty())
{
- OUString sActEntry( pImagesLst->GetSelectedEntry() );
- OUString* pActData = static_cast<OUString*>(pImagesLst->GetSelectedEntryData());
- OUString sAct(*pActData);
-
- OUString sDownEntry( pImagesLst->GetEntry(nActPos + 1) );
- OUString* pDownData = static_cast<OUString*>(pImagesLst->GetEntryData(nActPos + 1));
- OUString sDown(*pDownData);
-
- pImagesLst->RemoveEntry( sActEntry );
- pImagesLst->RemoveEntry( sDownEntry );
+ OUString sActEntry(m_xImagesLst->get_selected_text());
+ OUString sAct(m_xImagesLst->get_selected_id());
- pImagesLst->InsertEntry( sDownEntry, nActPos );
- pImagesLst->SetEntryData( nActPos, new OUString(sDown));
+ OUString sDownEntry(m_xImagesLst->get_text(nActPos + 1));
+ OUString sDown(m_xImagesLst->get_id(nActPos + 1));
- pImagesLst->InsertEntry( sActEntry, nActPos + 1 );
- pImagesLst->SetEntryData( nActPos + 1, new OUString(sAct));
+ m_xImagesLst->remove_text(sActEntry);
+ m_xImagesLst->remove_text(sDownEntry);
- pImagesLst->SelectEntryPos(nActPos + 1);
+ m_xImagesLst->insert(nActPos, sDown, sDownEntry, "");
+ m_xImagesLst->insert(nActPos + 1, sAct, sActEntry, "");
+ m_xImagesLst->select(nActPos + 1);
}
EnableDisableButtons();
}
-IMPL_LINK_NOARG(SdPhotoAlbumDialog, RemoveHdl, Button*, void)
+IMPL_LINK_NOARG(SdPhotoAlbumDialog, RemoveHdl, weld::Button&, void)
{
- pImagesLst->RemoveEntry( pImagesLst->GetSelectedEntryPos() );
- pImg->SetImage(Image());
+ m_xImagesLst->remove(m_xImagesLst->get_selected_index());
+ m_xImg->SetGraphic(Graphic());
EnableDisableButtons();
}
-IMPL_LINK_NOARG(SdPhotoAlbumDialog, SelectHdl, ListBox&, void)
+IMPL_LINK_NOARG(SdPhotoAlbumDialog, SelectHdl, weld::TreeView&, void)
{
- OUString* pData = static_cast<OUString*>(pImagesLst->GetSelectedEntryData());
- OUString sImgUrl = pData ? *pData : "";
+ OUString sImgUrl = m_xImagesLst->get_selected_id();
if (sImgUrl != SdResId(STR_PHOTO_ALBUM_TEXTBOX))
{
@@ -676,14 +613,14 @@ IMPL_LINK_NOARG(SdPhotoAlbumDialog, SelectHdl, ListBox&, void)
SvStream* pStream = ::utl::UcbStreamHelper::CreateStream( sImgUrl, StreamMode::READ );
if( pStream )
- mpGraphicFilter->ImportGraphic( aGraphic, sImgUrl, *pStream, nFilter, nullptr, nFilterImportFlags );
+ m_pGraphicFilter->ImportGraphic( aGraphic, sImgUrl, *pStream, nFilter, nullptr, nFilterImportFlags );
else
- mpGraphicFilter->ImportGraphic( aGraphic, aURLObj, nFilter, nullptr, nFilterImportFlags );
+ m_pGraphicFilter->ImportGraphic( aGraphic, aURLObj, nFilter, nullptr, nFilterImportFlags );
delete pStream;
}
else
{
- mpGraphicFilter->ImportGraphic( aGraphic, aURLObj, nFilter, nullptr, nFilterImportFlags );
+ m_pGraphicFilter->ImportGraphic( aGraphic, aURLObj, nFilter, nullptr, nFilterImportFlags );
}
Bitmap aBmp = aGraphic.GetBitmap();
@@ -698,23 +635,23 @@ IMPL_LINK_NOARG(SdPhotoAlbumDialog, SelectHdl, ListBox&, void)
aBmp.Scale( nYRatio, nYRatio );
aBmp.Convert( BmpConversion::N24Bit );
- pImg->SetImage(Image(aBmp));
+ m_xImg->SetGraphic(Graphic(aBmp));
}
else
{
- pImg->SetImage(Image());
+ m_xImg->SetGraphic(Graphic());
}
EnableDisableButtons();
}
-IMPL_LINK_NOARG(SdPhotoAlbumDialog, TypeSelectHdl, ListBox&, void)
+IMPL_LINK_NOARG(SdPhotoAlbumDialog, TypeSelectHdl, weld::ComboBoxText&, void)
{
// Enable "Fill Slide" only for one image
// If we want to have it for other images too, we need to implement the actual cropping.
- bool const bEnable = pInsTypeCombo->GetSelectedEntryPos() == ONE_IMAGE;
- pASRCheckCrop->Enable(bEnable);
+ bool const bEnable = m_xInsTypeCombo->get_active() == ONE_IMAGE;
+ m_xASRCheckCrop->set_sensitive(bEnable);
if (!bEnable)
- pASRCheckCrop->Check(false);
+ m_xASRCheckCrop->set_active(false);
}
Reference< drawing::XDrawPage > SdPhotoAlbumDialog::appendNewSlide(AutoLayout aLayout,
@@ -724,7 +661,7 @@ Reference< drawing::XDrawPage > SdPhotoAlbumDialog::appendNewSlide(AutoLayout aL
Reference< drawing::XDrawPage > xSlide; // Create the slide
Reference< container::XIndexAccess > xIndexAccess( xDrawPages, uno::UNO_QUERY );
xSlide = xDrawPages->insertNewByIndex( xIndexAccess->getCount() );
- SdPage* pSlide = pDoc->GetSdPage( pDoc->GetSdPageCount(PageKind::Standard)-1, PageKind::Standard);
+ SdPage* pSlide = m_pDoc->GetSdPage( m_pDoc->GetSdPageCount(PageKind::Standard)-1, PageKind::Standard);
pSlide->SetAutoLayout(aLayout, true); // Set the layout here
return xSlide;
}
@@ -799,7 +736,7 @@ void SdPhotoAlbumDialog::createCaption(const awt::Size& aPageSize )
CapSize.setHeight( aPageSize.Height/6 );
CapPos.setX( 0 );
CapPos.setY( aPageSize.Height - CapSize.Height() );
- SdPage* pSlide = pDoc->GetSdPage( pDoc->GetSdPageCount(PageKind::Standard)-1, PageKind::Standard );
+ SdPage* pSlide = m_pDoc->GetSdPage( m_pDoc->GetSdPageCount(PageKind::Standard)-1, PageKind::Standard );
// try to get existing PresObj
const ::tools::Rectangle rRect(CapPos,CapSize);
@@ -826,7 +763,7 @@ void SdPhotoAlbumDialog::createCaption(const awt::Size& aPageSize )
if(pSdrObj)
{
// set color, style and some transparency
- SfxItemSet aSet(pDoc->GetItemPool() );
+ SfxItemSet aSet(m_pDoc->GetItemPool() );
aSet.Put( XFillStyleItem(drawing::FillStyle_SOLID) );
aSet.Put( XFillColorItem( "", COL_BLACK ) );
@@ -849,11 +786,11 @@ Reference< graphic::XGraphic> SdPhotoAlbumDialog::createXGraphicFromUrl(const OU
void SdPhotoAlbumDialog::EnableDisableButtons()
{
- pRemoveBtn->Enable(pImagesLst->GetSelectedEntryCount() > 0);
- pUpBtn->Enable(pImagesLst->GetSelectedEntryCount() > 0 &&
- pImagesLst->GetSelectedEntryPos() != 0);
- pDownBtn->Enable(pImagesLst->GetSelectedEntryCount() > 0 &&
- pImagesLst->GetSelectedEntryPos() < pImagesLst->GetEntryCount()-1);
+ m_xRemoveBtn->set_sensitive(m_xImagesLst->count_selected_rows() > 0);
+ m_xUpBtn->set_sensitive(m_xImagesLst->count_selected_rows() > 0 &&
+ m_xImagesLst->get_selected_index() != 0);
+ m_xDownBtn->set_sensitive(m_xImagesLst->count_selected_rows() > 0 &&
+ m_xImagesLst->get_selected_index() < m_xImagesLst->n_children() - 1);
}
} // end of namespace sd
diff --git a/sd/source/ui/dlg/PhotoAlbumDialog.hxx b/sd/source/ui/dlg/PhotoAlbumDialog.hxx
index 0294f05ba120..7ec396eb3fb9 100644
--- a/sd/source/ui/dlg/PhotoAlbumDialog.hxx
+++ b/sd/source/ui/dlg/PhotoAlbumDialog.hxx
@@ -15,12 +15,9 @@
#include <pres.hxx>
#include <drawdoc.hxx>
-#include <vcl/lstbox.hxx>
-#include <vcl/fixed.hxx>
-#include <vcl/button.hxx>
-#include <vcl/dialog.hxx>
-#include <vcl/field.hxx>
+#include <vcl/weld.hxx>
#include <vcl/graphicfilter.hxx>
+#include <svx/graphctl.hxx>
#include <svx/svdotext.hxx>
#include <svx/svdobj.hxx>
@@ -41,44 +38,40 @@ using namespace ::com::sun::star::presentation;
namespace sd
{
-class SdPhotoAlbumDialog : public ModalDialog
+class SdPhotoAlbumDialog : public weld::GenericDialogController
{
public:
- SdPhotoAlbumDialog(vcl::Window* pWindow, SdDrawDocument* pActDoc);
+ SdPhotoAlbumDialog(weld::Window* pWindow, SdDrawDocument* pActDoc);
virtual ~SdPhotoAlbumDialog() override;
- virtual void dispose() override;
private:
- VclPtr<CancelButton> pCancelBtn;
- VclPtr<PushButton> pCreateBtn;
-
- VclPtr<PushButton> pAddBtn;
- VclPtr<PushButton> pUpBtn;
- VclPtr<PushButton> pDownBtn;
- VclPtr<PushButton> pRemoveBtn;
-
- VclPtr<ListBox> pImagesLst;
- VclPtr<FixedImage> pImg;
-
- VclPtr<ListBox> pInsTypeCombo;
- VclPtr<CheckBox> pASRCheck;
- VclPtr<CheckBox> pASRCheckCrop;
- VclPtr<CheckBox> pCapCheck;
- VclPtr<CheckBox> pInsertAsLinkCheck;
-
- SdDrawDocument* pDoc;
- GraphicFilter* mpGraphicFilter;
-
- DECL_LINK(CancelHdl, Button*, void);
- DECL_LINK(CreateHdl, Button*, void);
-
- DECL_LINK(FileHdl, Button*, void);
- DECL_LINK(UpHdl, Button*, void);
- DECL_LINK(DownHdl, Button*, void);
- DECL_LINK(RemoveHdl, Button*, void);
-
- DECL_LINK(SelectHdl, ListBox&, void);
- DECL_LINK(TypeSelectHdl, ListBox&, void);
+ SdDrawDocument* m_pDoc;
+ GraphicFilter* m_pGraphicFilter;
+
+ std::unique_ptr<weld::Button> m_xCancelBtn;
+ std::unique_ptr<weld::Button> m_xCreateBtn;
+ std::unique_ptr<weld::Button> m_xAddBtn;
+ std::unique_ptr<weld::Button> m_xUpBtn;
+ std::unique_ptr<weld::Button> m_xDownBtn;
+ std::unique_ptr<weld::Button> m_xRemoveBtn;
+ std::unique_ptr<weld::TreeView> m_xImagesLst;
+ std::unique_ptr<SvxGraphCtrl> m_xImg;
+ std::unique_ptr<weld::ComboBoxText> m_xInsTypeCombo;
+ std::unique_ptr<weld::CheckButton> m_xASRCheck;
+ std::unique_ptr<weld::CheckButton> m_xASRCheckCrop;
+ std::unique_ptr<weld::CheckButton> m_xCapCheck;
+ std::unique_ptr<weld::CheckButton> m_xInsertAsLinkCheck;
+
+ DECL_LINK(CancelHdl, weld::Button&, void);
+ DECL_LINK(CreateHdl, weld::Button&, void);
+
+ DECL_LINK(FileHdl, weld::Button&, void);
+ DECL_LINK(UpHdl, weld::Button&, void);
+ DECL_LINK(DownHdl, weld::Button&, void);
+ DECL_LINK(RemoveHdl, weld::Button&, void);
+
+ DECL_LINK(SelectHdl, weld::TreeView&, void);
+ DECL_LINK(TypeSelectHdl, weld::ComboBoxText&, void);
Reference< drawing::XDrawPage > appendNewSlide(AutoLayout aLayout,
const Reference< drawing::XDrawPages >& xDrawPages);
@@ -97,7 +90,6 @@ private:
TWO_IMAGES,
FOUR_IMAGES
};
-
};
} // end of namespace sd
diff --git a/sd/source/ui/dlg/sddlgfact.cxx b/sd/source/ui/dlg/sddlgfact.cxx
index c0b8d950d158..f609fca3a774 100644
--- a/sd/source/ui/dlg/sddlgfact.cxx
+++ b/sd/source/ui/dlg/sddlgfact.cxx
@@ -47,6 +47,12 @@
#include "PhotoAlbumDialog.hxx"
IMPL_ABSTDLG_BASE(SdVclAbstractDialog_Impl);
+
+short SdAbstractGenericDialog_Impl::Execute()
+{
+ return m_xDlg->run();
+}
+
IMPL_ABSTDLG_BASE(AbstractCopyDlg_Impl);
short AbstractSdCustomShowDlg_Impl::Execute()
@@ -455,9 +461,9 @@ VclPtr<AbstractHeaderFooterDialog> SdAbstractDialogFactory_Impl::CreateHeaderFoo
return VclPtr<AbstractHeaderFooterDialog_Impl>::Create( VclPtr<::sd::HeaderFooterDialog>::Create( pViewShell, pParent, pDoc, pCurrentPage ));
}
-VclPtr<VclAbstractDialog> SdAbstractDialogFactory_Impl::CreateSdPhotoAlbumDialog( vcl::Window* pParent, SdDrawDocument* pDoc )
+VclPtr<VclAbstractDialog> SdAbstractDialogFactory_Impl::CreateSdPhotoAlbumDialog(weld::Window* pParent, SdDrawDocument* pDoc)
{
- return VclPtr<SdVclAbstractDialog_Impl>::Create( VclPtr<::sd::SdPhotoAlbumDialog>::Create( pParent, pDoc ) );
+ return VclPtr<SdAbstractGenericDialog_Impl>::Create(new sd::SdPhotoAlbumDialog(pParent, pDoc));
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sd/source/ui/dlg/sddlgfact.hxx b/sd/source/ui/dlg/sddlgfact.hxx
index 55765fb23861..a6f5319dba38 100644
--- a/sd/source/ui/dlg/sddlgfact.hxx
+++ b/sd/source/ui/dlg/sddlgfact.hxx
@@ -64,6 +64,18 @@ class SdVclAbstractDialog_Impl : public VclAbstractDialog
DECL_ABSTDLG_BASE(SdVclAbstractDialog_Impl,Dialog)
};
+class SdAbstractGenericDialog_Impl : public VclAbstractDialog
+{
+protected:
+ std::unique_ptr<weld::GenericDialogController> m_xDlg;
+public:
+ explicit SdAbstractGenericDialog_Impl(weld::GenericDialogController* p)
+ : m_xDlg(p)
+ {
+ }
+ virtual short Execute() override;
+};
+
class AbstractMasterLayoutDialog_Impl : public VclAbstractDialog
{
private:
@@ -289,7 +301,7 @@ public:
virtual VclPtr<AbstractSdVectorizeDlg> CreateSdVectorizeDlg(weld::Window* pParent, const Bitmap& rBmp, ::sd::DrawDocShell* pDocShell) override;
virtual VclPtr<AbstractSdPublishingDlg> CreateSdPublishingDlg(vcl::Window* pWindow, DocumentType eDocType) override;
- virtual VclPtr<VclAbstractDialog> CreateSdPhotoAlbumDialog(vcl::Window* pWindow, SdDrawDocument* pDoc) override;
+ virtual VclPtr<VclAbstractDialog> CreateSdPhotoAlbumDialog(weld::Window* pWindow, SdDrawDocument* pDoc) override;
virtual VclPtr<VclAbstractDialog> CreateMasterLayoutDialog(weld::Window* pParent, SdDrawDocument* pDoc, SdPage*) override;
diff --git a/sd/source/ui/slidesorter/controller/SlsSlotManager.cxx b/sd/source/ui/slidesorter/controller/SlsSlotManager.cxx
index c5d376270269..18b9b01b24cc 100644
--- a/sd/source/ui/slidesorter/controller/SlsSlotManager.cxx
+++ b/sd/source/ui/slidesorter/controller/SlsSlotManager.cxx
@@ -256,8 +256,9 @@ void SlotManager::FuTemporary (SfxRequest& rRequest)
SdAbstractDialogFactory* pFact = SdAbstractDialogFactory::Create();
if (pFact)
{
+ vcl::Window* pWin = mrSlideSorter.GetContentWindow();
ScopedVclPtr<VclAbstractDialog> pDlg(pFact->CreateSdPhotoAlbumDialog(
- mrSlideSorter.GetContentWindow(),
+ pWin ? pWin->GetFrameWeld() : nullptr,
pDocument));
pDlg->Execute();
}
diff --git a/sd/source/ui/view/drviews2.cxx b/sd/source/ui/view/drviews2.cxx
index 3f6e477e5165..5a9649b48eaf 100644
--- a/sd/source/ui/view/drviews2.cxx
+++ b/sd/source/ui/view/drviews2.cxx
@@ -3320,8 +3320,9 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq)
SdAbstractDialogFactory* pFact = SdAbstractDialogFactory::Create();
if (pFact)
{
+ vcl::Window* pWin = GetActiveWindow();
ScopedVclPtr<VclAbstractDialog> pDlg(pFact->CreateSdPhotoAlbumDialog(
- GetActiveWindow(),
+ pWin ? pWin->GetFrameWeld() : nullptr,
GetDoc()));
pDlg->Execute();
diff --git a/sd/source/ui/view/outlnvs2.cxx b/sd/source/ui/view/outlnvs2.cxx
index ec6496c446a6..d5dddac528f1 100644
--- a/sd/source/ui/view/outlnvs2.cxx
+++ b/sd/source/ui/view/outlnvs2.cxx
@@ -309,8 +309,9 @@ void OutlineViewShell::FuTemporary(SfxRequest &rReq)
SdAbstractDialogFactory* pFact = SdAbstractDialogFactory::Create();
if (pFact)
{
+ vcl::Window* pWin = GetActiveWindow();
ScopedVclPtr<VclAbstractDialog> pDlg(pFact->CreateSdPhotoAlbumDialog(
- GetActiveWindow(),
+ pWin ? pWin->GetFrameWeld() : nullptr,
GetDoc()));
pDlg->Execute();
diff --git a/sd/uiconfig/simpress/ui/photoalbum.ui b/sd/uiconfig/simpress/ui/photoalbum.ui
index 2ad9d1df394b..9ef2c289d5be 100644
--- a/sd/uiconfig/simpress/ui/photoalbum.ui
+++ b/sd/uiconfig/simpress/ui/photoalbum.ui
@@ -4,32 +4,20 @@
<requires lib="gtk+" version="3.18"/>
<object class="GtkListStore" id="liststore1">
<columns>
- <!-- column-name Filename -->
+ <!-- column-name text -->
<column type="gchararray"/>
- </columns>
- </object>
- <object class="GtkListStore" id="liststore2">
- <columns>
- <!-- column-name Property -->
+ <!-- column-name id -->
<column type="gchararray"/>
</columns>
- <data>
- <row>
- <col id="0" translatable="yes" context="photoalbum|liststore2">1 Image</col>
- </row>
- <row>
- <col id="0" translatable="yes" context="photoalbum|liststore2">2 Images</col>
- </row>
- <row>
- <col id="0" translatable="yes" context="photoalbum|liststore2">4 Images</col>
- </row>
- </data>
</object>
<object class="GtkDialog" id="PhotoAlbumCreatorDialog">
<property name="can_focus">False</property>
<property name="border_width">6</property>
<property name="title" translatable="yes" context="photoalbum|PhotoAlbumCreatorDialog">Create Photo Album</property>
+ <property name="modal">True</property>
<property name="window_position">center</property>
+ <property name="default_width">0</property>
+ <property name="default_height">0</property>
<property name="type_hint">dialog</property>
<child internal-child="vbox">
<object class="GtkBox" id="dialog-vbox1">
@@ -108,27 +96,35 @@
<property name="orientation">vertical</property>
<property name="spacing">6</property>
<child>
- <object class="GtkScrolledWindow" id="scrolledwindow1">
- <property name="width_request">300</property>
- <property name="height_request">200</property>
+ <object class="GtkScrolledWindow">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="shadow_type">in</property>
<child>
- <object class="GtkTreeView" id="images_tree:border">
- <property name="width_request">300</property>
- <property name="height_request">200</property>
+ <object class="GtkTreeView" id="images_tree">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="model">liststore1</property>
+ <property name="headers_visible">False</property>
+ <property name="headers_clickable">False</property>
<property name="search_column">0</property>
- <property name="enable_grid_lines">both</property>
+ <property name="show_expanders">False</property>
<child internal-child="selection">
- <object class="GtkTreeSelection" id="treeview-selection"/>
+ <object class="GtkTreeSelection" id="treeview-selection1"/>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="treeviewcolumn1">
+ <child>
+ <object class="GtkCellRendererText" id="cellrenderertext1"/>
+ <attributes>
+ <attribute name="text">0</attribute>
+ </attributes>
+ </child>
+ </object>
</child>
</object>
</child>
@@ -249,15 +245,13 @@
<property name="orientation">vertical</property>
<property name="spacing">6</property>
<child>
- <object class="GtkImage" id="preview_img">
+ <object class="GtkDrawingArea" id="preview_img">
<property name="width_request">200</property>
<property name="height_request">150</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="valign">start</property>
<property name="vexpand">True</property>
- <property name="yalign">0</property>
- <property name="stock">gtk-missing-image</property>
</object>
<packing>
<property name="expand">False</property>
@@ -313,18 +307,16 @@
</packing>
</child>
<child>
- <object class="GtkComboBox" id="opt_combo">
+ <object class="GtkComboBoxText" id="opt_combo">
<property name="width_request">160</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="model">liststore2</property>
<property name="active">0</property>
- <child>
- <object class="GtkCellRendererText" id="cellrenderertext1"/>
- <attributes>
- <attribute name="text">0</attribute>
- </attributes>
- </child>
+ <items>
+ <item translatable="yes" context="photoalbum|liststore2">1 Image</item>
+ <item translatable="yes" context="photoalbum|liststore2">2 Images</item>
+ <item translatable="yes" context="photoalbum|liststore2">4 Images</item>
+ </items>
</object>
<packing>
<property name="expand">False</property>
diff --git a/svx/source/dialog/graphctl.cxx b/svx/source/dialog/graphctl.cxx
index 5f959499f97b..e656d0e18673 100644
--- a/svx/source/dialog/graphctl.cxx
+++ b/svx/source/dialog/graphctl.cxx
@@ -788,6 +788,7 @@ IMPL_LINK(SvxGraphCtrl, DoResize, const Size&, rSize, void)
IMPL_LINK(SvxGraphCtrl, DoPaint, weld::DrawingArea::draw_args, aPayload, void)
{
vcl::RenderContext& rRenderContext = aPayload.first;
+ rRenderContext.Erase();
const bool bGraphicValid(GraphicType::NONE != aGraphic.GetType());
// #i73381# in non-SdrMode, paint to local directly
if (bGraphicValid && aGraphSize.Width() && aGraphSize.Height())