desktop/qa/desktop_lib/test_desktop_lib.cxx | 15 ++++----------- include/sfx2/module.hxx | 1 + sc/qa/unit/screenshots/screenshots.cxx | 2 +- sfx2/source/appl/module.cxx | 15 +++++++++++++++ sw/source/uibase/uno/unotxdoc.cxx | 16 +++++++++------- 5 files changed, 30 insertions(+), 19 deletions(-)
New commits: commit a15784895e4933cfab06fb7fefdf8c7bd47f55a1 Author: Pranav Kant <pran...@collabora.co.uk> Date: Fri Jun 30 14:22:40 2017 +0530 Use the child window factory to create dialog via uno command Change-Id: I76c78c5699dae9d23ff6868fe388570b9717c5b9 diff --git a/sw/source/uibase/uno/unotxdoc.cxx b/sw/source/uibase/uno/unotxdoc.cxx index fcc5621354c5..8d5c72016cb7 100644 --- a/sw/source/uibase/uno/unotxdoc.cxx +++ b/sw/source/uibase/uno/unotxdoc.cxx @@ -61,6 +61,8 @@ #include <unoredlines.hxx> #include <unosrch.hxx> #include <sfx2/dispatch.hxx> +#include <sfx2/msg.hxx> +#include <sfx2/msgpool.hxx> #include <sfx2/request.hxx> #include <sfx2/objsh.hxx> #include <unoprnms.hxx> @@ -3571,16 +3573,16 @@ void SwXTextDocument::paintDialog(vcl::DialogID /*rDialogID*/, VirtualDevice& rD { SfxViewShell* pViewShell = pDocShell->GetView(); SfxViewFrame* pViewFrame = pViewShell->GetViewFrame(); - SfxChildWindow* pSfxChildWindow = SwSpellDialogChildWindow::CreateImpl(&pViewFrame->GetWindow(), SwSpellDialogChildWindow::GetChildWindowId(), - &pViewFrame->GetBindings(), nullptr); - Size aSize(nWidth, nHeight); + SwModule* pMod = SW_MOD(); + SfxSlotPool* pSlotPool = pMod->GetSlotPool(); + const SfxSlot* pSlot = pSlotPool->GetUnoSlot(".uno:SpellDialog"); - vcl::Window* pWindow = pSfxChildWindow->GetWindow(); + SfxChildWinFactory* pFactory = pMod->GetChildWinFactory(pSlot->GetSlotId()); + SfxChildWindow* pSfxChildWindow = pFactory->pCtor(&pViewFrame->GetWindow(), pFactory->nId, &pViewFrame->GetBindings(), &pFactory->aInfo); - pWindow->SetSizePixel(aSize); - pWindow->Show(); - pWindow->Paint(rDevice, tools::Rectangle(Point(), aSize)); + vcl::Window* pWindow = pSfxChildWindow->GetWindow(); + pWindow->PaintToDevice(&rDevice, Point(0, 0), Size(1, 1) /* Ignored */); } void SwXTextDocument::postDialogMouseEvent(vcl::DialogID /*rDialogID*/, int /*nType*/, int /*nCharCode*/, int /*nKeyCode*/) commit 04a30aa545038193c9c061db2442aa2292a3470b Author: Pranav Kant <pran...@collabora.co.uk> Date: Fri Jun 30 14:21:15 2017 +0530 sfx2: Get child window by Id Change-Id: I54afc548bb18a86aa4ed4ffec2c44d071b5ac3b3 diff --git a/include/sfx2/module.hxx b/include/sfx2/module.hxx index 014196c50578..51303f3bdcfb 100644 --- a/include/sfx2/module.hxx +++ b/include/sfx2/module.hxx @@ -78,6 +78,7 @@ public: void RegisterToolBoxControl(const SfxTbxCtrlFactory&); void RegisterChildWindow(SfxChildWinFactory*); void RegisterStatusBarControl(const SfxStbCtrlFactory&); + SfxChildWinFactory* GetChildWinFactory(const sal_uInt16 nId) const; virtual VclPtr<SfxTabPage> CreateTabPage( sal_uInt16 nId, vcl::Window* pParent, diff --git a/sfx2/source/appl/module.cxx b/sfx2/source/appl/module.cxx index f26660abd87e..098c314e50bf 100644 --- a/sfx2/source/appl/module.cxx +++ b/sfx2/source/appl/module.cxx @@ -193,6 +193,21 @@ SfxChildWinFactArr_Impl* SfxModule::GetChildWinFactories_Impl() const return pImpl->pFactArr; } +SfxChildWinFactory* SfxModule::GetChildWinFactory(const sal_uInt16 nId) const +{ + DBG_ASSERT( pImpl, "No real Module!" ); + + for (size_t nFactory = 0; nFactory < pImpl->pFactArr->size(); ++nFactory) + { + if (nId == (*pImpl->pFactArr)[nFactory].nId) + { + return &(*pImpl->pFactArr)[nFactory]; + } + } + + return nullptr; +} + VclPtr<SfxTabPage> SfxModule::CreateTabPage( sal_uInt16, vcl::Window*, const SfxItemSet& ) { return VclPtr<SfxTabPage>(); commit be1ce6fc4fec61d4a81d271a5896f12ea4377187 Author: Pranav Kant <pran...@collabora.co.uk> Date: Fri Jun 30 14:20:19 2017 +0530 Write the dialog rendering to file Change-Id: I7b10f9ee6e1f914e85ded8756b80c17a505ee0fc diff --git a/desktop/qa/desktop_lib/test_desktop_lib.cxx b/desktop/qa/desktop_lib/test_desktop_lib.cxx index d705e6c8ed97..dbc2e029889e 100644 --- a/desktop/qa/desktop_lib/test_desktop_lib.cxx +++ b/desktop/qa/desktop_lib/test_desktop_lib.cxx @@ -2156,22 +2156,15 @@ void DesktopLOKTest::testExtractParameter() void DesktopLOKTest::testDialogsWriter() { LibLODocument_Impl* pDocument = loadDoc("blank_text.odt"); - int nCanvasWidth = 100; - int nCanvasHeight = 300; + int nCanvasWidth = 800; + int nCanvasHeight = 600; sal_Int32 nStride = cairo_format_stride_for_width(CAIRO_FORMAT_ARGB32, nCanvasWidth); std::vector<unsigned char> aBuffer(nStride * nCanvasHeight); pDocument->pClass->paintDialog(pDocument, aBuffer.data(), nCanvasWidth, nCanvasHeight); - for (long y = 0; y < nCanvasHeight; ++y) - { - unsigned char* c = &aBuffer.data()[y * nStride]; - for (long x = 0; x < nStride; ++x) - { - printf ("%02x ", c[x]); - } - printf ("\n"); - } + cairo_surface_t* pSurface = cairo_image_surface_create_for_data(aBuffer.data(), CAIRO_FORMAT_ARGB32, nCanvasWidth, nCanvasHeight, nStride); + cairo_surface_write_to_png(pSurface, "/tmp/dialog.png"); CPPUNIT_ASSERT(false); } commit 3ca2fea69a056646ae42e78b31966acc9eae29f1 Author: Pranav Kant <pran...@collabora.co.uk> Date: Wed Jun 28 18:51:51 2017 +0530 Typo Change-Id: I2ecf3050aa68a0f2986c43b651d71b662a77e55a diff --git a/sc/qa/unit/screenshots/screenshots.cxx b/sc/qa/unit/screenshots/screenshots.cxx index 9e6b65ec4a5f..30d461919be7 100644 --- a/sc/qa/unit/screenshots/screenshots.cxx +++ b/sc/qa/unit/screenshots/screenshots.cxx @@ -122,7 +122,7 @@ void ScScreenshotTest::initialize() void ScScreenshotTest::registerKnownDialogsByID(mapType& rKnownDialogs) { - // fill map of unknown dialogs + // fill map of known dialogs rKnownDialogs["modules/scalc/ui/insertsheet.ui"] = 0; rKnownDialogs["modules/scalc/ui/deletecells.ui"] = 1; rKnownDialogs["modules/scalc/ui/pastespecial.ui"] = 2; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits