summaryrefslogtreecommitdiff
path: root/cui
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2019-10-08 14:31:24 +0100
committerCaolán McNamara <caolanm@redhat.com>2019-10-09 13:15:08 +0200
commitdc78b82db539401cc7e63d96f4727e1e884b86cb (patch)
tree6421310e52bf4daa2719c6f16d107cfd3823f6d9 /cui
parent9bb0219e8284a99dd1caf6aa50cd9a5b85e8f7a3 (diff)
Related: tdf#123765 fix up some screenshotting
and add in two special cases for the mentioned cui dialogs Change-Id: Ibd2bf8e9e5bff131f2c009c784652f4500842326 Reviewed-on: https://gerrit.libreoffice.org/80488 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'cui')
-rw-r--r--cui/CppunitTest_cui_dialogs_test.mk1
-rw-r--r--cui/qa/unit/cui-dialogs-test.cxx48
-rw-r--r--cui/qa/unit/data/cui-dialogs-test.txt4
-rw-r--r--cui/qa/unit/data/cui-dialogs-test_2.txt2
-rw-r--r--cui/qa/unit/data/cui-dialogs-test_4.txt1
-rw-r--r--cui/source/factory/dlgfact.cxx20
-rw-r--r--cui/source/factory/dlgfact.hxx7
-rw-r--r--cui/source/tabpages/textanim.cxx15
8 files changed, 84 insertions, 14 deletions
diff --git a/cui/CppunitTest_cui_dialogs_test.mk b/cui/CppunitTest_cui_dialogs_test.mk
index 353abb8a3a25..2bafdb5fa6b0 100644
--- a/cui/CppunitTest_cui_dialogs_test.mk
+++ b/cui/CppunitTest_cui_dialogs_test.mk
@@ -42,6 +42,7 @@ $(eval $(call gb_CppunitTest_use_libraries,cui_dialogs_test, \
svl \
svt \
cui \
+ svxcore \
test \
tl \
tk \
diff --git a/cui/qa/unit/cui-dialogs-test.cxx b/cui/qa/unit/cui-dialogs-test.cxx
index 8a485cce9850..781dc364a960 100644
--- a/cui/qa/unit/cui-dialogs-test.cxx
+++ b/cui/qa/unit/cui-dialogs-test.cxx
@@ -12,6 +12,8 @@
#include <rtl/strbuf.hxx>
#include <osl/file.hxx>
#include <sfx2/app.hxx>
+#include <svx/svdmodel.hxx>
+#include <svx/svxdlg.hxx>
#include <vcl/abstdlg.hxx>
using namespace ::com::sun::star;
@@ -20,6 +22,12 @@ using namespace ::com::sun::star;
class CuiDialogsTest : public ScreenshotTest
{
private:
+ std::unique_ptr<SdrModel> mxModel;
+ std::unique_ptr<SfxItemSet> mxAttr;
+ SvxAbstractDialogFactory* mpFact;
+
+ void initialize();
+
/// helper method to populate KnownDialogs, called in setUp(). Needs to be
/// written and has to add entries to KnownDialogs
virtual void registerKnownDialogsByID(mapType& rKnownDialogs) override;
@@ -43,18 +51,52 @@ CuiDialogsTest::CuiDialogsTest()
{
}
-void CuiDialogsTest::registerKnownDialogsByID(mapType& /*rKnownDialogs*/)
+void CuiDialogsTest::initialize()
+{
+ mpFact = SvxAbstractDialogFactory::Create();
+ mxModel.reset(new SdrModel(nullptr, nullptr, true));
+ mxModel->GetItemPool().FreezeIdRanges();
+ mxAttr.reset(new SfxItemSet(mxModel->GetItemPool()));
+}
+
+void CuiDialogsTest::registerKnownDialogsByID(mapType& rKnownDialogs)
{
// fill map of known dialogs
+ rKnownDialogs["cui/ui/formatcellsdialog.ui"] = 0;
+ rKnownDialogs["cui/ui/textdialog.ui"] = 1;
}
-VclPtr<VclAbstractDialog> CuiDialogsTest::createDialogByID(sal_uInt32 /*nID*/)
+VclPtr<VclAbstractDialog> CuiDialogsTest::createDialogByID(sal_uInt32 nID)
{
- return nullptr;
+ VclPtr<VclAbstractDialog> pReturnDialog;
+
+ switch ( nID )
+ {
+ case 0: // "cui/ui/formatcellsdialog.ui"
+ {
+ pReturnDialog = mpFact->CreateSvxFormatCellsDialog(
+ nullptr, mxAttr.get(), *mxModel, nullptr);
+ break;
+ }
+
+ case 1: // "cui/ui/textdialog.ui"
+ {
+ pReturnDialog = mpFact->CreateTextTabDialog(
+ nullptr, mxAttr.get(), nullptr);
+ break;
+ }
+
+ default:
+ break;
+ }
+
+ return pReturnDialog;
}
void CuiDialogsTest::openAnyDialog()
{
+ initialize();
+
/// process input file containing the UXMLDescriptions of the dialogs to dump
processDialogBatchFile("cui/qa/unit/data/cui-dialogs-test.txt");
}
diff --git a/cui/qa/unit/data/cui-dialogs-test.txt b/cui/qa/unit/data/cui-dialogs-test.txt
index 8bab3ce88f5f..b9f8f99813f6 100644
--- a/cui/qa/unit/data/cui-dialogs-test.txt
+++ b/cui/qa/unit/data/cui-dialogs-test.txt
@@ -23,7 +23,8 @@
# in registerKnownDialogsByID/createDialogByID
#
-# No known dialogs in cui for now
+cui/ui/formatcellsdialog.ui
+cui/ui/textdialog.ui
#
# Dialogs without a hard-coded representation. These will
@@ -97,4 +98,3 @@ cui/ui/effectspage.ui
cui/ui/embossdialog.ui
cui/ui/eventassigndialog.ui
cui/ui/eventassignpage.ui
-cui/ui/eventsconfigpage.ui
diff --git a/cui/qa/unit/data/cui-dialogs-test_2.txt b/cui/qa/unit/data/cui-dialogs-test_2.txt
index 5d87d13ffb73..bccb005632fc 100644
--- a/cui/qa/unit/data/cui-dialogs-test_2.txt
+++ b/cui/qa/unit/data/cui-dialogs-test_2.txt
@@ -11,8 +11,8 @@
# covering f to n
+cui/ui/eventsconfigpage.ui
cui/ui/fmsearchdialog.ui
-cui/ui/formatcellsdialog.ui
cui/ui/galleryapplyprogress.ui
cui/ui/galleryfilespage.ui
cui/ui/gallerygeneralpage.ui
diff --git a/cui/qa/unit/data/cui-dialogs-test_4.txt b/cui/qa/unit/data/cui-dialogs-test_4.txt
index eaa3a6ce3dd8..a537b2b09d1e 100644
--- a/cui/qa/unit/data/cui-dialogs-test_4.txt
+++ b/cui/qa/unit/data/cui-dialogs-test_4.txt
@@ -63,7 +63,6 @@ cui/ui/storedwebconnectiondialog.ui
cui/ui/swpossizepage.ui
cui/ui/textanimtabpage.ui
cui/ui/textattrtabpage.ui
-cui/ui/textdialog.ui
cui/ui/textflowpage.ui
cui/ui/transparencytabpage.ui
cui/ui/tsaurldialog.ui
diff --git a/cui/source/factory/dlgfact.cxx b/cui/source/factory/dlgfact.cxx
index e08cd60cfd7d..1e422f1fa85e 100644
--- a/cui/source/factory/dlgfact.cxx
+++ b/cui/source/factory/dlgfact.cxx
@@ -365,6 +365,26 @@ void CuiAbstractTabController_Impl::SetText( const OUString& rStr )
m_xDlg->set_title(rStr);
}
+std::vector<OString> CuiAbstractTabController_Impl::getAllPageUIXMLDescriptions() const
+{
+ return m_xDlg->getAllPageUIXMLDescriptions();
+}
+
+bool CuiAbstractTabController_Impl::selectPageByUIXMLDescription(const OString& rUIXMLDescription)
+{
+ return m_xDlg->selectPageByUIXMLDescription(rUIXMLDescription);
+}
+
+BitmapEx CuiAbstractTabController_Impl::createScreenshot() const
+{
+ return m_xDlg->createScreenshot();
+}
+
+OString CuiAbstractTabController_Impl::GetScreenshotId() const
+{
+ return m_xDlg->GetScreenshotId();
+}
+
const SfxItemSet* CuiAbstractSingleTabController_Impl::GetOutputItemSet() const
{
return m_xDlg->GetOutputItemSet();
diff --git a/cui/source/factory/dlgfact.hxx b/cui/source/factory/dlgfact.hxx
index 3bc6e90cc377..207405024dde 100644
--- a/cui/source/factory/dlgfact.hxx
+++ b/cui/source/factory/dlgfact.hxx
@@ -152,8 +152,13 @@ public:
virtual const SfxItemSet* GetOutputItemSet() const override;
virtual const sal_uInt16* GetInputRanges( const SfxItemPool& pItem ) override;
virtual void SetInputSet( const SfxItemSet* pInSet ) override;
- //From class Window.
virtual void SetText( const OUString& rStr ) override;
+
+ // screenshotting
+ virtual std::vector<OString> getAllPageUIXMLDescriptions() const override;
+ virtual bool selectPageByUIXMLDescription(const OString& rUIXMLDescription) override;
+ virtual BitmapEx createScreenshot() const override;
+ virtual OString GetScreenshotId() const override;
};
class SvxDistributeDialog;
diff --git a/cui/source/tabpages/textanim.cxx b/cui/source/tabpages/textanim.cxx
index 9f4acaa05b76..254f87c79b48 100644
--- a/cui/source/tabpages/textanim.cxx
+++ b/cui/source/tabpages/textanim.cxx
@@ -59,15 +59,18 @@ void SvxTextTabDialog::PageCreated(const OString& rId, SfxTabPage &rPage)
{
if (rId == "RID_SVXPAGE_TEXTATTR")
{
- const SdrMarkList& rMarkList = pView->GetMarkedObjectList();
- bool bHasMarked = rMarkList.GetMarkCount() > 0;
SdrObjKind eKind = OBJ_NONE;
- if (bHasMarked)
+ if (pView)
{
- if (rMarkList.GetMarkCount() == 1)
+ const SdrMarkList& rMarkList = pView->GetMarkedObjectList();
+ bool bHasMarked = rMarkList.GetMarkCount() > 0;
+ if (bHasMarked)
{
- const SdrObject* pObj = rMarkList.GetMark(0)->GetMarkedSdrObj();
- eKind = static_cast<SdrObjKind>(pObj->GetObjIdentifier());
+ if (rMarkList.GetMarkCount() == 1)
+ {
+ const SdrObject* pObj = rMarkList.GetMark(0)->GetMarkedSdrObj();
+ eKind = static_cast<SdrObjKind>(pObj->GetObjIdentifier());
+ }
}
}
static_cast<SvxTextAttrPage&>(rPage).SetObjKind(eKind);