[Libreoffice-commits] core.git: 2 commits - filter/inc filter/source filter/uiconfig include/vcl postprocess/CustomTarget_images.mk sfx2/source vcl/inc vcl/source vcl/unx
Caolán McNamara
caolanm at redhat.com
Mon Mar 19 10:15:48 UTC 2018
filter/inc/bitmaps.hlst | 18 ------
filter/source/pdf/impdialog.cxx | 99 +++++++++---------------------------
filter/source/pdf/impdialog.hxx | 14 ++---
filter/source/pdf/pdfinteract.cxx | 17 ++++--
filter/source/pdf/pdfinteract.hxx | 16 ++++-
filter/uiconfig/ui/warnpdfdialog.ui | 60 +++++++++++++++++++--
include/vcl/weld.hxx | 9 ++-
postprocess/CustomTarget_images.mk | 1
sfx2/source/doc/objserv.cxx | 7 ++
vcl/inc/bitmaps.hlst | 3 +
vcl/source/app/salvtables.cxx | 19 +++++-
vcl/unx/gtk3/gtk3gtkinst.cxx | 23 ++++++--
12 files changed, 158 insertions(+), 128 deletions(-)
New commits:
commit d05ee87bdd779a8d799269af4bb45ae8a4ea3150
Author: Caolán McNamara <caolanm at redhat.com>
Date: Sun Mar 18 19:57:52 2018 +0000
weld pdf warning dialog
Change-Id: I80b8324dcd575f6b537c4a0be264f0446c0fc32f
Reviewed-on: https://gerrit.libreoffice.org/51516
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm at redhat.com>
Tested-by: Caolán McNamara <caolanm at redhat.com>
diff --git a/filter/inc/bitmaps.hlst b/filter/inc/bitmaps.hlst
deleted file mode 100644
index 82e82f76632a..000000000000
--- a/filter/inc/bitmaps.hlst
+++ /dev/null
@@ -1,18 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- */
-
-#ifndef INCLUDED_FILTER_INC_BITMAPS_HRC
-#define INCLUDED_FILTER_INC_BITMAPS_HRC
-
-#define IMG_WARN "res/ballgreen_7.png"
-#define IMG_ERR "res/ballred_7.png"
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */
diff --git a/filter/source/pdf/impdialog.cxx b/filter/source/pdf/impdialog.cxx
index 68446b6842c7..1b4720673e2c 100644
--- a/filter/source/pdf/impdialog.cxx
+++ b/filter/source/pdf/impdialog.cxx
@@ -21,7 +21,6 @@
#include "impdialog.hxx"
#include <strings.hrc>
-#include <bitmaps.hlst>
#include <officecfg/Office/Common.hxx>
#include <vcl/settings.hxx>
#include <vcl/svapp.hxx>
@@ -1586,103 +1585,55 @@ IMPL_LINK_NOARG(ImpPDFTabLinksPage, ClickRbOpnLnksBrowserHdl, Button*, void)
}
-ImplErrorDialog::ImplErrorDialog(const std::set< vcl::PDFWriter::ErrorCode >& rErrors)
- : MessageDialog(nullptr, "WarnPDFDialog", "filter/ui/warnpdfdialog.ui")
+ImplErrorDialog::ImplErrorDialog(weld::Window* pParent, const std::set<vcl::PDFWriter::ErrorCode>& rErrors)
+ : MessageDialogController(pParent, "filter/ui/warnpdfdialog.ui", "WarnPDFDialog", "grid")
+ , m_xErrors(m_xBuilder->weld_tree_view("errors"))
+ , m_xExplanation(m_xBuilder->weld_label("message"))
{
- get(m_pErrors, "errors");
- get(m_pExplanation, "message");
-
- Size aSize(LogicToPixel(Size(100, 75), MapMode(MapUnit::MapAppFont)));
- m_pErrors->set_width_request(aSize.Width());
- m_pErrors->set_height_request(aSize.Height());
- m_pExplanation->set_width_request(aSize.Width());
- m_pExplanation->set_height_request(aSize.Height());
-
- // load images
- Image aWarnImg(BitmapEx(IMG_WARN));
- Image aErrImg(BitmapEx(IMG_ERR));
+ int nWidth = m_xErrors->get_approximate_digit_width() * 26;
+ int nHeight = m_xErrors->get_height_rows(9);
+ m_xErrors->set_size_request(nWidth, nHeight);
+ m_xExplanation->set_size_request(nWidth, nHeight);
for (auto const& error : rErrors)
{
switch(error)
{
case vcl::PDFWriter::Warning_Transparency_Omitted_PDFA:
- {
- sal_uInt16 nPos = m_pErrors->InsertEntry( PDFFilterResId( STR_WARN_TRANSP_PDFA_SHORT ),
- aWarnImg );
- m_pErrors->SetEntryData( nPos, new OUString( PDFFilterResId( STR_WARN_TRANSP_PDFA ) ) );
- }
- break;
+ m_xErrors->append(PDFFilterResId(STR_WARN_TRANSP_PDFA), PDFFilterResId(STR_WARN_TRANSP_PDFA_SHORT), "dialog-warning");
+ break;
case vcl::PDFWriter::Warning_Transparency_Omitted_PDF13:
- {
- sal_uInt16 nPos = m_pErrors->InsertEntry( PDFFilterResId( STR_WARN_TRANSP_VERSION_SHORT ),
- aWarnImg );
- m_pErrors->SetEntryData( nPos, new OUString( PDFFilterResId( STR_WARN_TRANSP_VERSION ) ) );
- }
- break;
+ m_xErrors->append(PDFFilterResId(STR_WARN_TRANSP_VERSION), PDFFilterResId(STR_WARN_TRANSP_VERSION_SHORT), "dialog-warning");
+ break;
case vcl::PDFWriter::Warning_FormAction_Omitted_PDFA:
- {
- sal_uInt16 nPos = m_pErrors->InsertEntry( PDFFilterResId( STR_WARN_FORMACTION_PDFA_SHORT ),
- aWarnImg );
- m_pErrors->SetEntryData( nPos, new OUString( PDFFilterResId( STR_WARN_FORMACTION_PDFA ) ) );
- }
- break;
+ m_xErrors->append(PDFFilterResId(STR_WARN_FORMACTION_PDFA), PDFFilterResId(STR_WARN_FORMACTION_PDFA_SHORT), "dialog-warning");
+ break;
case vcl::PDFWriter::Warning_Transparency_Converted:
- {
- sal_uInt16 nPos = m_pErrors->InsertEntry( PDFFilterResId( STR_WARN_TRANSP_CONVERTED_SHORT ),
- aWarnImg );
- m_pErrors->SetEntryData( nPos, new OUString( PDFFilterResId( STR_WARN_TRANSP_CONVERTED ) ) );
- }
- break;
+ m_xErrors->append(PDFFilterResId(STR_WARN_TRANSP_CONVERTED), PDFFilterResId(STR_WARN_TRANSP_CONVERTED_SHORT), "dialog-warning");
+ break;
case vcl::PDFWriter::Error_Signature_Failed:
- {
- sal_uInt16 nPos = m_pErrors->InsertEntry( PDFFilterResId( STR_ERR_SIGNATURE_FAILED ),
- aErrImg );
- m_pErrors->SetEntryData( nPos, new OUString( PDFFilterResId( STR_ERR_PDF_EXPORT_ABORTED ) ) );
- }
- break;
+ m_xErrors->append(PDFFilterResId(STR_ERR_PDF_EXPORT_ABORTED), PDFFilterResId(STR_ERR_SIGNATURE_FAILED), "dialog-error");
+ break;
default:
break;
}
}
- if( m_pErrors->GetEntryCount() > 0 )
+ if (m_xErrors->n_children() > 0)
{
- m_pErrors->SelectEntryPos( 0 );
- OUString* pStr = static_cast<OUString*>(m_pErrors->GetEntryData( 0 ));
- m_pExplanation->SetText( pStr ? *pStr : OUString() );
+ m_xErrors->select(0);
+ m_xExplanation->set_label(m_xErrors->get_id(0));
}
- m_pErrors->SetSelectHdl( LINK( this, ImplErrorDialog, SelectHdl ) );
-
- create_message_area();
+ m_xErrors->connect_changed(LINK(this, ImplErrorDialog, SelectHdl));
}
-
-ImplErrorDialog::~ImplErrorDialog()
+IMPL_LINK_NOARG(ImplErrorDialog, SelectHdl, weld::TreeView&, void)
{
- disposeOnce();
+ OUString aExplanation = m_xErrors->get_selected_id();
+ m_xExplanation->set_label(aExplanation);
}
-
-void ImplErrorDialog::dispose()
-{
- // free strings again
- for( sal_Int32 n = 0; n < m_pErrors->GetEntryCount(); n++ )
- delete static_cast<OUString*>(m_pErrors->GetEntryData( n ));
- m_pErrors.clear();
- m_pExplanation.clear();
- MessageDialog::dispose();
-}
-
-
-IMPL_LINK_NOARG(ImplErrorDialog, SelectHdl, ListBox&, void)
-{
- OUString* pStr = static_cast<OUString*>(m_pErrors->GetSelectedEntryData());
- m_pExplanation->SetText( pStr ? *pStr : OUString() );
-}
-
-
/// The digital signatures tab page
ImpPDFTabSigningPage::ImpPDFTabSigningPage(vcl::Window* pParent, const SfxItemSet& rCoreSet)
: SfxTabPage(pParent, "PdfSignPage","filter/ui/pdfsignpage.ui", &rCoreSet)
diff --git a/filter/source/pdf/impdialog.hxx b/filter/source/pdf/impdialog.hxx
index cfd33647b1f9..cddb100b8968 100644
--- a/filter/source/pdf/impdialog.hxx
+++ b/filter/source/pdf/impdialog.hxx
@@ -33,6 +33,7 @@
#include <vcl/group.hxx>
#include <vcl/pdfwriter.hxx>
#include <vcl/FilterConfigItem.hxx>
+#include <vcl/weld.hxx>
#include "pdffilter.hxx"
@@ -43,19 +44,16 @@ class ImpPDFTabViewerPage;
class ImpPDFTabOpnFtrPage;
class ImpPDFTabLinksPage;
-class ImplErrorDialog : public MessageDialog
+class ImplErrorDialog : public weld::MessageDialogController
{
private:
- VclPtr<ListBox> m_pErrors;
- VclPtr<FixedText> m_pExplanation;
+ std::unique_ptr<weld::TreeView> m_xErrors;
+ std::unique_ptr<weld::Label> m_xExplanation;
- DECL_LINK(SelectHdl, ListBox&, void);
+ DECL_LINK(SelectHdl, weld::TreeView&, void);
public:
- explicit ImplErrorDialog( const std::set< vcl::PDFWriter::ErrorCode >& );
- virtual ~ImplErrorDialog() override;
-
- virtual void dispose() override;
+ explicit ImplErrorDialog(weld::Window* pParent, const std::set<vcl::PDFWriter::ErrorCode>& rErrorCodes);
};
diff --git a/filter/source/pdf/pdfinteract.cxx b/filter/source/pdf/pdfinteract.cxx
index 8456ecc687ae..19dc5e7546f3 100644
--- a/filter/source/pdf/pdfinteract.cxx
+++ b/filter/source/pdf/pdfinteract.cxx
@@ -23,24 +23,29 @@
#include <com/sun/star/task/XInteractionRequest.hpp>
#include <com/sun/star/task/PDFExportException.hpp>
+#include <comphelper/namedvaluecollection.hxx>
#include <cppuhelper/supportsservice.hxx>
-
+#include <toolkit/helper/vclunohelper.hxx>
PDFInteractionHandler::PDFInteractionHandler()
{
}
-
PDFInteractionHandler::~PDFInteractionHandler()
{
}
-
void SAL_CALL PDFInteractionHandler::handle( const Reference< task::XInteractionRequest >& i_xRequest )
{
handleInteractionRequest( i_xRequest );
}
+void SAL_CALL PDFInteractionHandler::initialize(const css::uno::Sequence<css::uno::Any>& rArguments)
+{
+ comphelper::NamedValueCollection aProperties(rArguments);
+ if (aProperties.has("Parent"))
+ aProperties.get("Parent") >>= m_xParent;
+}
sal_Bool SAL_CALL PDFInteractionHandler::handleInteractionRequest( const Reference< task::XInteractionRequest >& i_xRequest )
{
@@ -54,8 +59,10 @@ sal_Bool SAL_CALL PDFInteractionHandler::handleInteractionRequest( const Referen
sal_Int32 nCodes = aExc.ErrorCodes.getLength();
for( sal_Int32 i = 0; i < nCodes; i++ )
aCodes.insert( static_cast<vcl::PDFWriter::ErrorCode>(aExc.ErrorCodes.getConstArray()[i]) );
- ScopedVclPtrInstance< ImplErrorDialog > aDlg( aCodes );
- aDlg->Execute();
+
+ VclPtr<vcl::Window> xParent(VCLUnoHelper::GetWindow(m_xParent));
+ ImplErrorDialog aDlg(xParent ? xParent->GetFrameWeld() : nullptr, aCodes);
+ aDlg.run();
bHandled = true;
}
return bHandled;
diff --git a/filter/source/pdf/pdfinteract.hxx b/filter/source/pdf/pdfinteract.hxx
index 0795558c084e..ccc2339ff448 100644
--- a/filter/source/pdf/pdfinteract.hxx
+++ b/filter/source/pdf/pdfinteract.hxx
@@ -22,7 +22,9 @@
#include <cppuhelper/implbase.hxx>
+#include <com/sun/star/awt/XWindow.hpp>
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <com/sun/star/lang/XInitialization.hpp>
#include <com/sun/star/task/XInteractionHandler2.hpp>
#include <com/sun/star/lang/XServiceInfo.hpp>
@@ -31,19 +33,25 @@ using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::lang;
-class PDFInteractionHandler : public cppu::WeakImplHelper < task::XInteractionHandler2,
- XServiceInfo >
+class PDFInteractionHandler : public cppu::WeakImplHelper<css::lang::XInitialization,
+ css::task::XInteractionHandler2,
+ XServiceInfo>
{
+private:
+ css::uno::Reference<css::awt::XWindow> m_xParent;
protected:
// XServiceInfo
virtual OUString SAL_CALL getImplementationName() override;
virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override;
virtual Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
- // XIniteractionHandler
+ // XInitialization
+ virtual void SAL_CALL initialize(const css::uno::Sequence<css::uno::Any>& rArguments) override;
+
+ // XInteractionHandler
virtual void SAL_CALL handle( const Reference< task::XInteractionRequest >& ) override;
- // XIniteractionHandler2
+ // XInteractionHandler2
virtual sal_Bool SAL_CALL handleInteractionRequest( const Reference< task::XInteractionRequest >& ) override;
public:
diff --git a/filter/uiconfig/ui/warnpdfdialog.ui b/filter/uiconfig/ui/warnpdfdialog.ui
index 2091b5158a97..4c474715f427 100644
--- a/filter/uiconfig/ui/warnpdfdialog.ui
+++ b/filter/uiconfig/ui/warnpdfdialog.ui
@@ -1,7 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.18.3 -->
+<!-- Generated with glade 3.20.2 -->
<interface domain="flt">
<requires lib="gtk+" version="3.18"/>
+ <object class="GtkListStore" id="liststore1">
+ <columns>
+ <!-- column-name text -->
+ <column type="gchararray"/>
+ <!-- column-name id -->
+ <column type="gchararray"/>
+ <!-- column-name image -->
+ <column type="gchararray"/>
+ </columns>
+ </object>
<object class="GtkMessageDialog" id="WarnPDFDialog">
<property name="can_focus">False</property>
<property name="border_width">6</property>
@@ -33,7 +43,7 @@
</packing>
</child>
<child>
- <object class="GtkGrid" id="grid1">
+ <object class="GtkGrid" id="grid">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
@@ -46,11 +56,11 @@
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="xalign">0</property>
- <property name="yalign">0</property>
<property name="wrap">True</property>
<property name="width_chars">30</property>
<property name="max_width_chars">30</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0</property>
</object>
<packing>
<property name="left_attach">1</property>
@@ -58,13 +68,46 @@
</packing>
</child>
<child>
- <object class="GtkTreeView" id="errors:border">
+ <object class="GtkScrolledWindow">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <child internal-child="selection">
- <object class="GtkTreeSelection" id="treeview-selection1"/>
+ <property name="shadow_type">in</property>
+ <child>
+ <object class="GtkTreeView" id="errors">
+ <property name="visible">True</property>
+ <property name="can_focus">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="show_expanders">False</property>
+ <child internal-child="selection">
+ <object class="GtkTreeSelection" id="treeview-selection1"/>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="treeviewcolumn1">
+ <child>
+ <object class="GtkCellRendererPixbuf" id="cellrenderertext1"/>
+ <attributes>
+ <attribute name="icon-name">2</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="treeviewcolumn2">
+ <child>
+ <object class="GtkCellRendererText" id="cellrenderertext2"/>
+ <attributes>
+ <attribute name="text">0</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ </object>
</child>
</object>
<packing>
@@ -81,5 +124,8 @@
</child>
</object>
</child>
+ <child>
+ <placeholder/>
+ </child>
</object>
</interface>
diff --git a/include/vcl/weld.hxx b/include/vcl/weld.hxx
index e63c20e75dbc..1da74234d50e 100644
--- a/include/vcl/weld.hxx
+++ b/include/vcl/weld.hxx
@@ -201,8 +201,12 @@ protected:
public:
virtual void insert_text(const OUString& rText, int pos) = 0;
virtual void append_text(const OUString& rText) { insert_text(rText, -1); }
- virtual void insert(int pos, const OUString& rId, const OUString& rStr) = 0;
- virtual void append(const OUString& rId, const OUString& rStr) { insert(-1, rId, rStr); }
+ virtual void insert(int pos, const OUString& rId, const OUString& rStr, const OUString& rImage)
+ = 0;
+ virtual void append(const OUString& rId, const OUString& rStr, const OUString& rImage)
+ {
+ insert(-1, rId, rStr, rImage);
+ }
virtual int n_children() const = 0;
virtual void select(int pos) = 0;
using Container::remove;
@@ -211,6 +215,7 @@ public:
virtual void set_top_entry(int pos) = 0;
virtual void clear() = 0;
virtual OUString get_selected() const = 0;
+ OUString get_selected_id() const { return get_id(get_selected_index()); }
virtual int get_selected_index() const = 0;
virtual OUString get(int pos) const = 0;
virtual OUString get_id(int pos) const = 0;
diff --git a/postprocess/CustomTarget_images.mk b/postprocess/CustomTarget_images.mk
index 77c653abf3fe..0768ee973c5e 100644
--- a/postprocess/CustomTarget_images.mk
+++ b/postprocess/CustomTarget_images.mk
@@ -55,7 +55,6 @@ $(packimages_DIR)/sourceimagelist.ilst : \
$(SRCDIR)/dbaccess/inc/bitmaps.hlst \
$(SRCDIR)/desktop/inc/bitmaps.hlst \
$(SRCDIR)/extensions/inc/bitmaps.hlst \
- $(SRCDIR)/filter/inc/bitmaps.hlst \
$(SRCDIR)/formula/inc/bitmaps.hlst \
$(SRCDIR)/fpicker/inc/bitmaps.hlst \
$(SRCDIR)/framework/inc/bitmaps.hlst \
diff --git a/vcl/inc/bitmaps.hlst b/vcl/inc/bitmaps.hlst
index 00bb64cb061e..f3cf68890eb2 100644
--- a/vcl/inc/bitmaps.hlst
+++ b/vcl/inc/bitmaps.hlst
@@ -138,6 +138,9 @@
#define SPINNER_64_12 "vcl/res/spinner-64-12.png"
//end, Throbber::getDefaultImageURLs
+#define IMG_WARN "res/ballgreen_7.png"
+#define IMG_ERR "res/ballred_7.png"
+
#endif
/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */
diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx
index 1373baff4f03..4945c764f8a0 100644
--- a/vcl/source/app/salvtables.cxx
+++ b/vcl/source/app/salvtables.cxx
@@ -38,6 +38,7 @@
#include <vcl/tabctrl.hxx>
#include <vcl/tabpage.hxx>
#include <vcl/weld.hxx>
+#include <bitmaps.hlst>
SalFrame::SalFrame()
: m_pWindow(nullptr)
@@ -862,10 +863,22 @@ public:
m_xTreeView->InsertEntry(rText, pos);
}
- virtual void insert(int pos, const OUString& rId, const OUString& rStr) override
+ virtual void insert(int pos, const OUString& rId, const OUString& rStr, const OUString& rImage) override
{
- m_xTreeView->SetEntryData(m_xTreeView->InsertEntry(rStr, pos == -1 ? COMBOBOX_APPEND : pos),
- new OUString(rId));
+ sal_Int32 nInsertedAt;
+ if (rImage.isEmpty())
+ nInsertedAt = m_xTreeView->InsertEntry(rStr, pos == -1 ? COMBOBOX_APPEND : pos);
+ else
+ {
+ assert((rImage == "dialog-warning" || rImage == "dialog-error") && "unknown stock image");
+ Image aImage;
+ if (rImage == "dialog-warning")
+ aImage = Image(BitmapEx(IMG_WARN));
+ else if (rImage == "dialog-error")
+ aImage = Image(BitmapEx(IMG_ERR));
+ nInsertedAt = m_xTreeView->InsertEntry(rStr, aImage, pos == -1 ? COMBOBOX_APPEND : pos);
+ }
+ m_xTreeView->SetEntryData(nInsertedAt, new OUString(rId));
}
using SalInstanceContainer::remove;
diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx
index 13b957dff0f2..dbb4320f7024 100644
--- a/vcl/unx/gtk3/gtk3gtkinst.cxx
+++ b/vcl/unx/gtk3/gtk3gtkinst.cxx
@@ -2116,15 +2116,28 @@ public:
enable_notify_events();
}
- virtual void insert(int pos, const OUString& rId, const OUString& rText) override
+ virtual void insert(int pos, const OUString& rId, const OUString& rText, const OUString& rImage) override
{
disable_notify_events();
GtkTreeIter iter;
gtk_list_store_insert(m_pListStore, &iter, pos);
- gtk_list_store_set(m_pListStore, &iter,
- 0, OUStringToOString(rText, RTL_TEXTENCODING_UTF8).getStr(),
- 1, OUStringToOString(rId, RTL_TEXTENCODING_UTF8).getStr(),
- -1);
+ if (rImage.isEmpty())
+ {
+ gtk_list_store_set(m_pListStore, &iter,
+ 0, OUStringToOString(rText, RTL_TEXTENCODING_UTF8).getStr(),
+ 1, OUStringToOString(rId, RTL_TEXTENCODING_UTF8).getStr(),
+ -1);
+ }
+ else
+ {
+ assert((rImage == "dialog-warning" || rImage == "dialog-error") && "unknown stock image");
+
+ gtk_list_store_set(m_pListStore, &iter,
+ 0, OUStringToOString(rText, RTL_TEXTENCODING_UTF8).getStr(),
+ 1, OUStringToOString(rId, RTL_TEXTENCODING_UTF8).getStr(),
+ 2, OUStringToOString(rImage, RTL_TEXTENCODING_UTF8).getStr(),
+ -1);
+ }
enable_notify_events();
}
commit b5ca41ab77fb5eba1efed273ce0d551e2e753d34
Author: Caolán McNamara <caolanm at redhat.com>
Date: Sun Mar 18 21:21:32 2018 +0000
set parent window for interaction dialogs for pdf export (etc)
Change-Id: I6a1df74d4737c5fe040c0131f3c8149ef81e8410
Reviewed-on: https://gerrit.libreoffice.org/51520
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm at redhat.com>
Tested-by: Caolán McNamara <caolanm at redhat.com>
diff --git a/sfx2/source/doc/objserv.cxx b/sfx2/source/doc/objserv.cxx
index 601b5f5889f8..8fc60c3c0899 100644
--- a/sfx2/source/doc/objserv.cxx
+++ b/sfx2/source/doc/objserv.cxx
@@ -593,9 +593,14 @@ void SfxObjectShell::ExecFile_Impl(SfxRequest &rReq)
const SfxUnoAnyItem* pInteractionHandlerItem = rReq.GetArg<SfxUnoAnyItem>(SID_INTERACTIONHANDLER);
if ( !pInteractionHandlerItem )
{
+ uno::Reference<css::awt::XWindow> xParentWindow;
+ uno::Reference<frame::XController> xCtrl(GetModel()->getCurrentController());
+ if (xCtrl.is())
+ xParentWindow = xCtrl->getFrame()->getContainerWindow();
+
uno::Reference< uno::XComponentContext > xContext = ::comphelper::getProcessComponentContext();
uno::Reference< task::XInteractionHandler2 > xInteract(
- task::InteractionHandler::createWithParent(xContext, nullptr) );
+ task::InteractionHandler::createWithParent(xContext, xParentWindow) );
SfxUnoAnyItem aInteractionItem( SID_INTERACTIONHANDLER, uno::makeAny( xInteract ) );
if ( nId == SID_SAVEDOC )
More information about the Libreoffice-commits
mailing list