Kaydet (Commit) 5f170e69 authored tarafından Caolán McNamara's avatar Caolán McNamara

weld WPFTEncodingDialog

and pass in parent window for dialog

Change-Id: Ibe9f576a74dfbbee3e568c8d3454440700cb0405
Reviewed-on: https://gerrit.libreoffice.org/54328Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarCaolán McNamara <caolanm@redhat.com>
Tested-by: 's avatarCaolán McNamara <caolanm@redhat.com>
üst d15c2404
...@@ -29,10 +29,13 @@ $(eval $(call gb_CppunitTest_use_libraries,writerperfect_wpftimport,\ ...@@ -29,10 +29,13 @@ $(eval $(call gb_CppunitTest_use_libraries,writerperfect_wpftimport,\
test \ test \
unotest \ unotest \
utl \ utl \
vcl \
wpftqahelper \ wpftqahelper \
writerperfect \ writerperfect \
)) ))
$(eval $(call gb_CppunitTest_use_external,writerperfect_wpftimport,boost_headers))
$(eval $(call gb_CppunitTest_use_ure,writerperfect_wpftimport)) $(eval $(call gb_CppunitTest_use_ure,writerperfect_wpftimport))
$(eval $(call gb_CppunitTest_use_vcl,writerperfect_wpftimport)) $(eval $(call gb_CppunitTest_use_vcl,writerperfect_wpftimport))
......
...@@ -31,6 +31,8 @@ ...@@ -31,6 +31,8 @@
#include <cppuhelper/implbase.hxx> #include <cppuhelper/implbase.hxx>
#include <unotools/mediadescriptor.hxx> #include <unotools/mediadescriptor.hxx>
#include <vcl/svapp.hxx>
#include <vcl/weld.hxx>
#include "DocumentHandler.hxx" #include "DocumentHandler.hxx"
#include "WPXSvInputStream.hxx" #include "WPXSvInputStream.hxx"
...@@ -73,6 +75,9 @@ public: ...@@ -73,6 +75,9 @@ public:
return false; return false;
} }
css::uno::Reference<css::awt::XWindow> xDialogParent;
aDescriptor["ParentWindow"] >>= xDialogParent;
// An XML import service: what we push sax messages to.. // An XML import service: what we push sax messages to..
css::uno::Reference<css::xml::sax::XDocumentHandler> xInternalHandler( css::uno::Reference<css::xml::sax::XDocumentHandler> xInternalHandler(
mxContext->getServiceManager()->createInstanceWithContext( mxContext->getServiceManager()->createInstanceWithContext(
...@@ -95,7 +100,8 @@ public: ...@@ -95,7 +100,8 @@ public:
doRegisterHandlers(exporter); doRegisterHandlers(exporter);
return doImportDocument(input, exporter, aDescriptor); return doImportDocument(Application::GetFrameWeld(xDialogParent), input, exporter,
aDescriptor);
} }
virtual void SAL_CALL cancel() override {} virtual void SAL_CALL cancel() override {}
...@@ -168,8 +174,8 @@ public: ...@@ -168,8 +174,8 @@ public:
private: private:
virtual bool doDetectFormat(librevenge::RVNGInputStream& rInput, OUString& rTypeName) = 0; virtual bool doDetectFormat(librevenge::RVNGInputStream& rInput, OUString& rTypeName) = 0;
virtual bool doImportDocument(librevenge::RVNGInputStream& rInput, Generator& rGenerator, virtual bool doImportDocument(weld::Window* pParent, librevenge::RVNGInputStream& rInput,
utl::MediaDescriptor& rDescriptor) Generator& rGenerator, utl::MediaDescriptor& rDescriptor)
= 0; = 0;
virtual void doRegisterHandlers(Generator&){}; virtual void doRegisterHandlers(Generator&){};
......
...@@ -14,18 +14,16 @@ ...@@ -14,18 +14,16 @@
#include <sal/types.h> #include <sal/types.h>
#include <vcl/button.hxx> #include <vcl/weld.hxx>
#include <vcl/dialog.hxx>
#include <vcl/lstbox.hxx>
#include "writerperfectdllapi.h" #include "writerperfectdllapi.h"
namespace writerperfect namespace writerperfect
{ {
class WRITERPERFECT_DLLPUBLIC WPFTEncodingDialog : public ModalDialog class WRITERPERFECT_DLLPUBLIC WPFTEncodingDialog : public weld::GenericDialogController
{ {
public: public:
WPFTEncodingDialog(const OUString& title, const OUString& defEncoding); WPFTEncodingDialog(weld::Window* pParent, const OUString& title, const OUString& defEncoding);
virtual ~WPFTEncodingDialog() override; virtual ~WPFTEncodingDialog() override;
...@@ -33,17 +31,14 @@ public: ...@@ -33,17 +31,14 @@ public:
bool hasUserCalledCancel() const { return m_userHasCancelled; } bool hasUserCalledCancel() const { return m_userHasCancelled; }
private: private:
VclPtr<ListBox> m_pLbCharset;
VclPtr<OKButton> m_pBtnOk;
VclPtr<CancelButton> m_pBtnCancel;
bool m_userHasCancelled; bool m_userHasCancelled;
private: std::unique_ptr<weld::ComboBoxText> m_xLbCharset;
DECL_LINK(DoubleClickHdl, ListBox&, void); std::unique_ptr<weld::Button> m_xBtnOk;
DECL_LINK(CancelHdl, Button*, void); std::unique_ptr<weld::Button> m_xBtnCancel;
void dispose() override; private:
DECL_LINK(CancelHdl, weld::Button&, void);
WPFTEncodingDialog(WPFTEncodingDialog const&) = delete; WPFTEncodingDialog(WPFTEncodingDialog const&) = delete;
WPFTEncodingDialog& operator=(WPFTEncodingDialog const&) = delete; WPFTEncodingDialog& operator=(WPFTEncodingDialog const&) = delete;
......
...@@ -45,14 +45,15 @@ public: ...@@ -45,14 +45,15 @@ public:
private: private:
virtual bool doDetectFormat(librevenge::RVNGInputStream& rInput, virtual bool doDetectFormat(librevenge::RVNGInputStream& rInput,
rtl::OUString& rTypeName) override; rtl::OUString& rTypeName) override;
virtual bool doImportDocument(librevenge::RVNGInputStream& rInput, OdgGenerator& rGenerator, virtual bool doImportDocument(weld::Window* pWindow, librevenge::RVNGInputStream& rInput,
OdgGenerator& rGenerator,
utl::MediaDescriptor& rDescriptor) override; utl::MediaDescriptor& rDescriptor) override;
static void generate(librevenge::RVNGDrawingInterface& rDocument); static void generate(librevenge::RVNGDrawingInterface& rDocument);
}; };
bool DrawingImportFilter::doImportDocument(librevenge::RVNGInputStream&, OdgGenerator& rGenerator, bool DrawingImportFilter::doImportDocument(weld::Window*, librevenge::RVNGInputStream&,
utl::MediaDescriptor&) OdgGenerator& rGenerator, utl::MediaDescriptor&)
{ {
DrawingImportFilter::generate(rGenerator); DrawingImportFilter::generate(rGenerator);
return true; return true;
......
...@@ -45,13 +45,14 @@ public: ...@@ -45,13 +45,14 @@ public:
private: private:
virtual bool doDetectFormat(librevenge::RVNGInputStream& rInput, virtual bool doDetectFormat(librevenge::RVNGInputStream& rInput,
rtl::OUString& rTypeName) override; rtl::OUString& rTypeName) override;
virtual bool doImportDocument(librevenge::RVNGInputStream& rInput, OdpGenerator& rGenerator, virtual bool doImportDocument(weld::Window* pWindow, librevenge::RVNGInputStream& rInput,
OdpGenerator& rGenerator,
utl::MediaDescriptor& rDescriptor) override; utl::MediaDescriptor& rDescriptor) override;
static void generate(librevenge::RVNGPresentationInterface& rDocument); static void generate(librevenge::RVNGPresentationInterface& rDocument);
}; };
bool PresentationImportFilter::doImportDocument(librevenge::RVNGInputStream&, bool PresentationImportFilter::doImportDocument(weld::Window*, librevenge::RVNGInputStream&,
OdpGenerator& rGenerator, utl::MediaDescriptor&) OdpGenerator& rGenerator, utl::MediaDescriptor&)
{ {
PresentationImportFilter::generate(rGenerator); PresentationImportFilter::generate(rGenerator);
......
...@@ -44,13 +44,14 @@ public: ...@@ -44,13 +44,14 @@ public:
private: private:
virtual bool doDetectFormat(librevenge::RVNGInputStream& rInput, virtual bool doDetectFormat(librevenge::RVNGInputStream& rInput,
rtl::OUString& rTypeName) override; rtl::OUString& rTypeName) override;
virtual bool doImportDocument(librevenge::RVNGInputStream& rInput, OdsGenerator& rGenerator, virtual bool doImportDocument(weld::Window* pWindow, librevenge::RVNGInputStream& rInput,
OdsGenerator& rGenerator,
utl::MediaDescriptor& rDescriptor) override; utl::MediaDescriptor& rDescriptor) override;
static void generate(librevenge::RVNGSpreadsheetInterface& rDocument); static void generate(librevenge::RVNGSpreadsheetInterface& rDocument);
}; };
bool SpreadsheetImportFilter::doImportDocument(librevenge::RVNGInputStream&, bool SpreadsheetImportFilter::doImportDocument(weld::Window*, librevenge::RVNGInputStream&,
OdsGenerator& rGenerator, utl::MediaDescriptor&) OdsGenerator& rGenerator, utl::MediaDescriptor&)
{ {
SpreadsheetImportFilter::generate(rGenerator); SpreadsheetImportFilter::generate(rGenerator);
......
...@@ -43,14 +43,15 @@ public: ...@@ -43,14 +43,15 @@ public:
private: private:
virtual bool doDetectFormat(librevenge::RVNGInputStream& rInput, virtual bool doDetectFormat(librevenge::RVNGInputStream& rInput,
rtl::OUString& rTypeName) override; rtl::OUString& rTypeName) override;
virtual bool doImportDocument(librevenge::RVNGInputStream& rInput, OdtGenerator& rGenerator, virtual bool doImportDocument(weld::Window* pWindow, librevenge::RVNGInputStream& rInput,
OdtGenerator& rGenerator,
utl::MediaDescriptor& rDescriptor) override; utl::MediaDescriptor& rDescriptor) override;
static void generate(librevenge::RVNGTextInterface& rDocument); static void generate(librevenge::RVNGTextInterface& rDocument);
}; };
bool TextImportFilter::doImportDocument(librevenge::RVNGInputStream&, OdtGenerator& rGenerator, bool TextImportFilter::doImportDocument(weld::Window*, librevenge::RVNGInputStream&,
utl::MediaDescriptor&) OdtGenerator& rGenerator, utl::MediaDescriptor&)
{ {
TextImportFilter::generate(rGenerator); TextImportFilter::generate(rGenerator);
return true; return true;
......
...@@ -179,7 +179,8 @@ private: ...@@ -179,7 +179,8 @@ private:
} }
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
bool MSWorksCalcImportFilter::doImportDocument(librevenge::RVNGInputStream& rInput, bool MSWorksCalcImportFilter::doImportDocument(weld::Window* pParent,
librevenge::RVNGInputStream& rInput,
OdsGenerator& rGenerator, utl::MediaDescriptor&) OdsGenerator& rGenerator, utl::MediaDescriptor&)
{ {
libwps::WPSKind kind = libwps::WPS_TEXT; libwps::WPSKind kind = libwps::WPS_TEXT;
...@@ -226,14 +227,14 @@ bool MSWorksCalcImportFilter::doImportDocument(librevenge::RVNGInputStream& rInp ...@@ -226,14 +227,14 @@ bool MSWorksCalcImportFilter::doImportDocument(librevenge::RVNGInputStream& rInp
try try
{ {
const ScopedVclPtrInstance<writerperfect::WPFTEncodingDialog> pDlg(title, encoding); writerperfect::WPFTEncodingDialog aDlg(pParent, title, encoding);
if (pDlg->Execute() == RET_OK) if (aDlg.run() == RET_OK)
{ {
if (!pDlg->GetEncoding().isEmpty()) if (!aDlg.GetEncoding().isEmpty())
fileEncoding = pDlg->GetEncoding().toUtf8().getStr(); fileEncoding = aDlg.GetEncoding().toUtf8().getStr();
} }
// we can fail because we are in headless mode, the user has cancelled conversion, ... // we can fail because we are in headless mode, the user has cancelled conversion, ...
else if (pDlg->hasUserCalledCancel()) else if (aDlg.hasUserCalledCancel())
return false; return false;
} }
catch (...) catch (...)
...@@ -248,7 +249,7 @@ bool MSWorksCalcImportFilter::doImportDocument(librevenge::RVNGInputStream& rInp ...@@ -248,7 +249,7 @@ bool MSWorksCalcImportFilter::doImportDocument(librevenge::RVNGInputStream& rInp
// try to ask for a password // try to ask for a password
try try
{ {
SfxPasswordDialog aPasswdDlg(nullptr); SfxPasswordDialog aPasswdDlg(pParent);
aPasswdDlg.SetMinLen(1); aPasswdDlg.SetMinLen(1);
if (!aPasswdDlg.execute()) if (!aPasswdDlg.execute())
return false; return false;
...@@ -275,6 +276,7 @@ MSWorksCalcImportFilter::filter(const css::uno::Sequence<css::beans::PropertyVal ...@@ -275,6 +276,7 @@ MSWorksCalcImportFilter::filter(const css::uno::Sequence<css::beans::PropertyVal
OUString sUrl; OUString sUrl;
css::uno::Reference<css::io::XInputStream> xInputStream; css::uno::Reference<css::io::XInputStream> xInputStream;
css::uno::Reference<ucb::XContent> xContent; css::uno::Reference<ucb::XContent> xContent;
css::uno::Reference<css::awt::XWindow> xDialogParent;
sal_Int32 nLength = rDescriptor.getLength(); sal_Int32 nLength = rDescriptor.getLength();
const css::beans::PropertyValue* pValue = rDescriptor.getConstArray(); const css::beans::PropertyValue* pValue = rDescriptor.getConstArray();
...@@ -286,6 +288,8 @@ MSWorksCalcImportFilter::filter(const css::uno::Sequence<css::beans::PropertyVal ...@@ -286,6 +288,8 @@ MSWorksCalcImportFilter::filter(const css::uno::Sequence<css::beans::PropertyVal
pValue[i].Value >>= xContent; pValue[i].Value >>= xContent;
else if (pValue[i].Name == "FileName" || pValue[i].Name == "URL") else if (pValue[i].Name == "FileName" || pValue[i].Name == "URL")
pValue[i].Value >>= sUrl; pValue[i].Value >>= sUrl;
else if (pValue[i].Name == "ParentWindow")
pValue[i].Value >>= xDialogParent;
} }
if (!getXContext().is() || !xInputStream.is()) if (!getXContext().is() || !xInputStream.is())
...@@ -373,7 +377,8 @@ MSWorksCalcImportFilter::filter(const css::uno::Sequence<css::beans::PropertyVal ...@@ -373,7 +377,8 @@ MSWorksCalcImportFilter::filter(const css::uno::Sequence<css::beans::PropertyVal
= libwps::WPSDocument::isFileFormatSupported(&structuredInput, kind, = libwps::WPSDocument::isFileFormatSupported(&structuredInput, kind,
creator, needEncoding); creator, needEncoding);
if (confidence != libwps::WPS_CONFIDENCE_NONE) if (confidence != libwps::WPS_CONFIDENCE_NONE)
return doImportDocument(structuredInput, exporter, aDescriptor); return doImportDocument(Application::GetFrameWeld(xDialogParent),
structuredInput, exporter, aDescriptor);
} }
} }
} }
...@@ -382,7 +387,7 @@ MSWorksCalcImportFilter::filter(const css::uno::Sequence<css::beans::PropertyVal ...@@ -382,7 +387,7 @@ MSWorksCalcImportFilter::filter(const css::uno::Sequence<css::beans::PropertyVal
{ {
} }
return doImportDocument(input, exporter, aDescriptor); return doImportDocument(Application::GetFrameWeld(xDialogParent), input, exporter, aDescriptor);
} }
bool MSWorksCalcImportFilter::doDetectFormat(librevenge::RVNGInputStream& rInput, bool MSWorksCalcImportFilter::doDetectFormat(librevenge::RVNGInputStream& rInput,
......
...@@ -40,8 +40,8 @@ public: ...@@ -40,8 +40,8 @@ public:
private: private:
virtual bool doDetectFormat(librevenge::RVNGInputStream& rInput, OUString& rTypeName) override; virtual bool doDetectFormat(librevenge::RVNGInputStream& rInput, OUString& rTypeName) override;
virtual bool doImportDocument(librevenge::RVNGInputStream& rInput, OdsGenerator& rGenerator, virtual bool doImportDocument(weld::Window* pParent, librevenge::RVNGInputStream& rInput,
utl::MediaDescriptor&) override; OdsGenerator& rGenerator, utl::MediaDescriptor&) override;
virtual void doRegisterHandlers(OdsGenerator& rGenerator) override; virtual void doRegisterHandlers(OdsGenerator& rGenerator) override;
}; };
......
...@@ -39,7 +39,7 @@ static bool handleEmbeddedMWAWSpreadsheetObject(const librevenge::RVNGBinaryData ...@@ -39,7 +39,7 @@ static bool handleEmbeddedMWAWSpreadsheetObject(const librevenge::RVNGBinaryData
return MWAWDocument::decodeSpreadsheet(data, &exporter); return MWAWDocument::decodeSpreadsheet(data, &exporter);
} }
bool MWAWCalcImportFilter::doImportDocument(librevenge::RVNGInputStream& rInput, bool MWAWCalcImportFilter::doImportDocument(weld::Window*, librevenge::RVNGInputStream& rInput,
OdsGenerator& rGenerator, utl::MediaDescriptor&) OdsGenerator& rGenerator, utl::MediaDescriptor&)
{ {
return MWAWDocument::MWAW_R_OK == MWAWDocument::parse(&rInput, &rGenerator); return MWAWDocument::MWAW_R_OK == MWAWDocument::parse(&rInput, &rGenerator);
......
...@@ -35,8 +35,8 @@ public: ...@@ -35,8 +35,8 @@ public:
private: private:
virtual bool doDetectFormat(librevenge::RVNGInputStream& rInput, OUString& rTypeName) override; virtual bool doDetectFormat(librevenge::RVNGInputStream& rInput, OUString& rTypeName) override;
virtual bool doImportDocument(librevenge::RVNGInputStream& rInput, OdsGenerator& rGenerator, virtual bool doImportDocument(weld::Window* pParent, librevenge::RVNGInputStream& rInput,
utl::MediaDescriptor&) override; OdsGenerator& rGenerator, utl::MediaDescriptor&) override;
virtual void doRegisterHandlers(OdsGenerator& rGenerator) override; virtual void doRegisterHandlers(OdsGenerator& rGenerator) override;
}; };
......
...@@ -22,7 +22,7 @@ using com::sun::star::uno::XInterface; ...@@ -22,7 +22,7 @@ using com::sun::star::uno::XInterface;
using libetonyek::EtonyekDocument; using libetonyek::EtonyekDocument;
bool NumbersImportFilter::doImportDocument(librevenge::RVNGInputStream& rInput, bool NumbersImportFilter::doImportDocument(weld::Window*, librevenge::RVNGInputStream& rInput,
OdsGenerator& rGenerator, utl::MediaDescriptor&) OdsGenerator& rGenerator, utl::MediaDescriptor&)
{ {
return EtonyekDocument::parse(&rInput, &rGenerator); return EtonyekDocument::parse(&rInput, &rGenerator);
......
...@@ -34,8 +34,8 @@ public: ...@@ -34,8 +34,8 @@ public:
private: private:
virtual bool doDetectFormat(librevenge::RVNGInputStream& rInput, OUString& rTypeName) override; virtual bool doDetectFormat(librevenge::RVNGInputStream& rInput, OUString& rTypeName) override;
virtual bool doImportDocument(librevenge::RVNGInputStream& rInput, OdsGenerator& rGenerator, virtual bool doImportDocument(weld::Window* pParent, librevenge::RVNGInputStream& rInput,
utl::MediaDescriptor&) override; OdsGenerator& rGenerator, utl::MediaDescriptor&) override;
virtual void doRegisterHandlers(OdsGenerator& rGenerator) override; virtual void doRegisterHandlers(OdsGenerator& rGenerator) override;
}; };
......
...@@ -37,7 +37,8 @@ static bool handleEmbeddedSTOFFSpreadsheetObject(const librevenge::RVNGBinaryDat ...@@ -37,7 +37,8 @@ static bool handleEmbeddedSTOFFSpreadsheetObject(const librevenge::RVNGBinaryDat
return STOFFDocument::decodeSpreadsheet(data, &exporter); return STOFFDocument::decodeSpreadsheet(data, &exporter);
} }
bool StarOfficeCalcImportFilter::doImportDocument(librevenge::RVNGInputStream& rInput, bool StarOfficeCalcImportFilter::doImportDocument(weld::Window*,
librevenge::RVNGInputStream& rInput,
OdsGenerator& rGenerator, utl::MediaDescriptor&) OdsGenerator& rGenerator, utl::MediaDescriptor&)
{ {
return STOFFDocument::STOFF_R_OK == STOFFDocument::parse(&rInput, &rGenerator); return STOFFDocument::STOFF_R_OK == STOFFDocument::parse(&rInput, &rGenerator);
......
...@@ -36,8 +36,8 @@ public: ...@@ -36,8 +36,8 @@ public:
private: private:
virtual bool doDetectFormat(librevenge::RVNGInputStream& rInput, OUString& rTypeName) override; virtual bool doDetectFormat(librevenge::RVNGInputStream& rInput, OUString& rTypeName) override;
virtual bool doImportDocument(librevenge::RVNGInputStream& rInput, OdsGenerator& rGenerator, virtual bool doImportDocument(weld::Window* pParent, librevenge::RVNGInputStream& rInput,
utl::MediaDescriptor&) override; OdsGenerator& rGenerator, utl::MediaDescriptor&) override;
virtual void doRegisterHandlers(OdsGenerator& rGenerator) override; virtual void doRegisterHandlers(OdsGenerator& rGenerator) override;
}; };
......
...@@ -78,82 +78,46 @@ std::pair<OUStringLiteral, OUStringLiteral> const s_encodings[] ...@@ -78,82 +78,46 @@ std::pair<OUStringLiteral, OUStringLiteral> const s_encodings[]
std::size_t const numEncodings = SAL_N_ELEMENTS(s_encodings); std::size_t const numEncodings = SAL_N_ELEMENTS(s_encodings);
void insertEncodings(ListBox* box) void insertEncodings(weld::ComboBoxText& box)
{ {
for (std::size_t i = 0; i < numEncodings; ++i) for (std::size_t i = 0; i < numEncodings; ++i)
{ box.append(s_encodings[i].first, s_encodings[i].second);
sal_IntPtr nAt = box->InsertEntry(s_encodings[i].second);
box->SetEntryData(nAt, reinterpret_cast<void*>(static_cast<sal_uIntPtr>(i)));
}
} }
void selectEncoding(ListBox* box, const OUString& encoding) void selectEncoding(weld::ComboBoxText& box, const OUString& encoding)
{ {
for (std::size_t i = 0; i < numEncodings; ++i) box.set_active_id(encoding);
{
if (encoding != s_encodings[i].first)
continue;
box->SelectEntryPos(i);
return;
}
} }
OUString getEncoding(ListBox const* box) OUString getEncoding(const weld::ComboBoxText& box) { return box.get_active_id(); }
{
sal_uIntPtr pos = reinterpret_cast<sal_uIntPtr>(box->GetSelectedEntryData());
if (pos >= numEncodings)
return OUString();
return s_encodings[pos].first;
}
} }
WPFTEncodingDialog::WPFTEncodingDialog(const OUString& title, const OUString& encoding) WPFTEncodingDialog::WPFTEncodingDialog(weld::Window* pParent, const OUString& title,
: ModalDialog(nullptr, "WPFTEncodingDialog", "writerperfect/ui/wpftencodingdialog.ui") const OUString& encoding)
, m_pLbCharset() : GenericDialogController(pParent, "writerperfect/ui/wpftencodingdialog.ui",
, m_pBtnOk() "WPFTEncodingDialog")
, m_pBtnCancel()
, m_userHasCancelled(false) , m_userHasCancelled(false)
, m_xLbCharset(m_xBuilder->weld_combo_box_text("comboboxtext"))
, m_xBtnOk(m_xBuilder->weld_button("ok"))
, m_xBtnCancel(m_xBuilder->weld_button("cancel"))
{ {
get(m_pLbCharset, "comboboxtext"); m_xBtnCancel->connect_clicked(LINK(this, WPFTEncodingDialog, CancelHdl));
get(m_pBtnOk, "ok");
get(m_pBtnCancel, "cancel");
m_pBtnCancel->SetClickHdl(LINK(this, WPFTEncodingDialog, CancelHdl)); insertEncodings(*m_xLbCharset);
m_xLbCharset->make_sorted();
selectEncoding(*m_xLbCharset, encoding);
insertEncodings(m_pLbCharset); m_xDialog->set_title(title);
m_pLbCharset->SetStyle(m_pLbCharset->GetStyle() | WB_SORT);
// m_pLbCharset->set_height_request(6 * m_pLbCharset->GetTextHeight());
m_pLbCharset->SetDoubleClickHdl(LINK(this, WPFTEncodingDialog, DoubleClickHdl));
selectEncoding(m_pLbCharset, encoding);
m_pLbCharset->Show();
SetText(title);
} }
WPFTEncodingDialog::~WPFTEncodingDialog() { disposeOnce(); } WPFTEncodingDialog::~WPFTEncodingDialog() {}
OUString WPFTEncodingDialog::GetEncoding() const { return getEncoding(m_pLbCharset); } OUString WPFTEncodingDialog::GetEncoding() const { return getEncoding(*m_xLbCharset); }
IMPL_LINK_NOARG(WPFTEncodingDialog, CancelHdl, Button*, void) IMPL_LINK_NOARG(WPFTEncodingDialog, CancelHdl, weld::Button&, void)
{ {
m_userHasCancelled = true; m_userHasCancelled = true;
Close(); m_xDialog->response(RET_CANCEL);
}
IMPL_LINK(WPFTEncodingDialog, DoubleClickHdl, ListBox&, rLb, void)
{
if (&rLb == m_pLbCharset)
{
m_pBtnOk->Click();
}
}
void WPFTEncodingDialog::dispose()
{
m_pLbCharset.disposeAndClear();
m_pBtnOk.disposeAndClear();
m_pBtnCancel.disposeAndClear();
ModalDialog::dispose();
} }
} }
......
...@@ -24,7 +24,7 @@ using com::sun::star::uno::Sequence; ...@@ -24,7 +24,7 @@ using com::sun::star::uno::Sequence;
using com::sun::star::uno::XComponentContext; using com::sun::star::uno::XComponentContext;
using com::sun::star::uno::XInterface; using com::sun::star::uno::XInterface;
bool CDRImportFilter::doImportDocument(librevenge::RVNGInputStream& rInput, bool CDRImportFilter::doImportDocument(weld::Window*, librevenge::RVNGInputStream& rInput,
OdgGenerator& rGenerator, utl::MediaDescriptor&) OdgGenerator& rGenerator, utl::MediaDescriptor&)
{ {
return libcdr::CDRDocument::parse(&rInput, &rGenerator); return libcdr::CDRDocument::parse(&rInput, &rGenerator);
......
...@@ -33,8 +33,8 @@ public: ...@@ -33,8 +33,8 @@ public:
private: private:
virtual bool doDetectFormat(librevenge::RVNGInputStream& rInput, OUString& rTypeName) override; virtual bool doDetectFormat(librevenge::RVNGInputStream& rInput, OUString& rTypeName) override;
virtual bool doImportDocument(librevenge::RVNGInputStream& rInput, OdgGenerator& rGenerator, virtual bool doImportDocument(weld::Window* pParent, librevenge::RVNGInputStream& rInput,
utl::MediaDescriptor&) override; OdgGenerator& rGenerator, utl::MediaDescriptor&) override;
}; };
#endif #endif
......
...@@ -24,7 +24,7 @@ using com::sun::star::uno::Sequence; ...@@ -24,7 +24,7 @@ using com::sun::star::uno::Sequence;
using com::sun::star::uno::XComponentContext; using com::sun::star::uno::XComponentContext;
using com::sun::star::uno::XInterface; using com::sun::star::uno::XInterface;
bool CMXImportFilter::doImportDocument(librevenge::RVNGInputStream& rInput, bool CMXImportFilter::doImportDocument(weld::Window*, librevenge::RVNGInputStream& rInput,
OdgGenerator& rGenerator, utl::MediaDescriptor&) OdgGenerator& rGenerator, utl::MediaDescriptor&)
{ {
return libcdr::CMXDocument::parse(&rInput, &rGenerator); return libcdr::CMXDocument::parse(&rInput, &rGenerator);
......
...@@ -33,8 +33,8 @@ public: ...@@ -33,8 +33,8 @@ public:
private: private:
virtual bool doDetectFormat(librevenge::RVNGInputStream& rInput, OUString& rTypeName) override; virtual bool doDetectFormat(librevenge::RVNGInputStream& rInput, OUString& rTypeName) override;
virtual bool doImportDocument(librevenge::RVNGInputStream& rInput, OdgGenerator& rGenerator, virtual bool doImportDocument(weld::Window* pParent, librevenge::RVNGInputStream& rInput,
utl::MediaDescriptor&) override; OdgGenerator& rGenerator, utl::MediaDescriptor&) override;
}; };
#endif #endif
......
...@@ -20,7 +20,7 @@ using com::sun::star::uno::Sequence; ...@@ -20,7 +20,7 @@ using com::sun::star::uno::Sequence;
using com::sun::star::uno::XComponentContext; using com::sun::star::uno::XComponentContext;
using com::sun::star::uno::XInterface; using com::sun::star::uno::XInterface;
bool FreehandImportFilter::doImportDocument(librevenge::RVNGInputStream& rInput, bool FreehandImportFilter::doImportDocument(weld::Window*, librevenge::RVNGInputStream& rInput,
OdgGenerator& rGenerator, utl::MediaDescriptor&)