summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cui/Library_cui.mk1
-rw-r--r--cui/UIConfig_cui.mk1
-rw-r--r--cui/source/dialogs/GraphicTestsDialog.cxx55
-rw-r--r--cui/source/factory/dlgfact.cxx8
-rw-r--r--cui/source/factory/dlgfact.hxx3
-rw-r--r--cui/source/inc/GraphicsTestsDialog.hxx24
-rw-r--r--cui/source/options/optgdlg.cxx8
-rw-r--r--cui/source/options/optgdlg.hxx2
-rw-r--r--cui/uiconfig/ui/graphictestdlg.ui113
-rw-r--r--cui/uiconfig/ui/optviewpage.ui146
-rw-r--r--include/sfx2/sfxdlg.hxx2
-rw-r--r--include/sfx2/sfxsids.hrc1
-rw-r--r--include/vcl/test/GraphicsRenderTests.hxx2
-rw-r--r--sfx2/sdi/appslots.sdi4
-rw-r--r--sfx2/sdi/sfx.sdi16
-rw-r--r--sfx2/source/appl/appserv.cxx9
16 files changed, 289 insertions, 106 deletions
diff --git a/cui/Library_cui.mk b/cui/Library_cui.mk
index 6fdf446f97e9..345f84b7f008 100644
--- a/cui/Library_cui.mk
+++ b/cui/Library_cui.mk
@@ -138,6 +138,7 @@ $(eval $(call gb_Library_add_exception_objects,cui,\
cui/source/dialogs/pastedlg \
cui/source/dialogs/postdlg \
cui/source/dialogs/QrCodeGenDialog \
+ cui/source/dialogs/GraphicTestsDialog \
cui/source/dialogs/scriptdlg \
cui/source/dialogs/SignatureLineDialogBase \
cui/source/dialogs/SignatureLineDialog \
diff --git a/cui/UIConfig_cui.mk b/cui/UIConfig_cui.mk
index c6d9d1584a66..73da8e159f09 100644
--- a/cui/UIConfig_cui.mk
+++ b/cui/UIConfig_cui.mk
@@ -82,6 +82,7 @@ $(eval $(call gb_UIConfig_add_uifiles,cui,\
cui/uiconfig/ui/gallerythemeiddialog \
cui/uiconfig/ui/gallerytitledialog \
cui/uiconfig/ui/galleryupdateprogress \
+ cui/uiconfig/ui/graphictestdlg \
cui/uiconfig/ui/hangulhanjaadddialog \
cui/uiconfig/ui/hangulhanjaeditdictdialog \
cui/uiconfig/ui/hangulhanjaconversiondialog \
diff --git a/cui/source/dialogs/GraphicTestsDialog.cxx b/cui/source/dialogs/GraphicTestsDialog.cxx
new file mode 100644
index 000000000000..275d33d75886
--- /dev/null
+++ b/cui/source/dialogs/GraphicTestsDialog.cxx
@@ -0,0 +1,55 @@
+/* -*- 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/.
+ */
+
+#include <GraphicsTestsDialog.hxx>
+
+GraphicsTestsDialog::GraphicsTestsDialog(weld::Window* pParent)
+ : GenericDialogController(pParent, "cui/ui/graphictestdlg.ui", "GraphicTestsDialog")
+ , m_xResultLog(m_xBuilder->weld_text_view("gptestresults"))
+ , m_xDownloadResults(m_xBuilder->weld_button("gptest_downld"))
+{
+ m_xResultLog->set_text("Running tests...");
+ m_xDownloadResults->connect_clicked(LINK(this, GraphicsTestsDialog, HandleDownloadRequest));
+ runGraphicsTestandUpdateLog();
+}
+
+void GraphicsTestsDialog::runGraphicsTestandUpdateLog()
+{
+ GraphicsRenderTests TestObject;
+ TestObject.run();
+ OUString atemp = "--General Info--\nGraphics Backend used : " + TestObject.m_aCurGraphicsBackend
+ + "\nPassed Tests : " + OUString::number(TestObject.m_aPassed.size())
+ + "\nQuirky Tests : " + OUString::number(TestObject.m_aQuirky.size())
+ + "\nFailed Tests : " + OUString::number(TestObject.m_aFailed.size())
+ + "\nSkipped Tests : " + OUString::number(TestObject.m_aSkipped.size())
+ + "\n\n--Test Details--\n";
+ OString writeResults;
+ for (const class OString& tests : TestObject.m_aPassed)
+ {
+ writeResults += tests + " [PASSED]\n";
+ }
+ for (const class OString& tests : TestObject.m_aQuirky)
+ {
+ writeResults += tests + " [QUIRKY]\n";
+ }
+ for (const class OString& tests : TestObject.m_aFailed)
+ {
+ writeResults += tests + " [FAILED]\n";
+ }
+ for (const class OString& tests : TestObject.m_aSkipped)
+ {
+ writeResults += tests + " [SKIPPED]\n";
+ }
+ m_xResultLog->set_text(atemp + OStringToOUString(writeResults, RTL_TEXTENCODING_UTF8));
+}
+
+IMPL_STATIC_LINK_NOARG(GraphicsTestsDialog, HandleDownloadRequest, weld::Button&, void)
+{
+ //TODO: Enter code for downloading the results to user's system.
+}
diff --git a/cui/source/factory/dlgfact.cxx b/cui/source/factory/dlgfact.cxx
index 19b30518e426..f49e3228134f 100644
--- a/cui/source/factory/dlgfact.cxx
+++ b/cui/source/factory/dlgfact.cxx
@@ -64,6 +64,7 @@
#include <SignatureLineDialog.hxx>
#include <SignSignatureLineDialog.hxx>
#include <QrCodeGenDialog.hxx>
+#include <GraphicsTestsDialog.hxx>
#include <SpellDialog.hxx>
#include <cfg.hxx>
#include <numpages.hxx>
@@ -1695,6 +1696,13 @@ AbstractDialogFactory_Impl::CreateAboutDialog(weld::Window* pParent)
}
VclPtr<VclAbstractDialog>
+AbstractDialogFactory_Impl::CreateGraphicTestsDialog(weld::Window* pParent)
+{
+ return VclPtr<CuiAbstractController_Impl>::Create(
+ std::make_unique<GraphicsTestsDialog>(pParent));
+}
+
+VclPtr<VclAbstractDialog>
AbstractDialogFactory_Impl::CreateTipOfTheDayDialog(weld::Window* pParent)
{
return VclPtr<CuiAbstractTipController_Impl>::Create(
diff --git a/cui/source/factory/dlgfact.hxx b/cui/source/factory/dlgfact.hxx
index 1e16414f3b85..39e540c46352 100644
--- a/cui/source/factory/dlgfact.hxx
+++ b/cui/source/factory/dlgfact.hxx
@@ -37,6 +37,7 @@
#include <cuitbxform.hxx>
#include <dlgname.hxx>
#include <DiagramDialog.hxx>
+#include <GraphicsTestsDialog.hxx>
#include <hangulhanjadlg.hxx>
#include <hyphen.hxx>
#include <insdlg.hxx>
@@ -951,6 +952,8 @@ public:
virtual VclPtr<VclAbstractDialog> CreateAboutDialog(weld::Window* pParent) override;
+ virtual VclPtr<VclAbstractDialog> CreateGraphicTestsDialog(weld::Window* pParent) override;
+
virtual VclPtr<VclAbstractDialog> CreateTipOfTheDayDialog(weld::Window* pParent) override;
virtual VclPtr<VclAbstractDialog> CreateToolbarmodeDialog(weld::Window* pParent) override;
diff --git a/cui/source/inc/GraphicsTestsDialog.hxx b/cui/source/inc/GraphicsTestsDialog.hxx
new file mode 100644
index 000000000000..d851fbf0b528
--- /dev/null
+++ b/cui/source/inc/GraphicsTestsDialog.hxx
@@ -0,0 +1,24 @@
+/* -*- 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/.
+ */
+#pragma once
+
+#include <vcl/weld.hxx>
+#include <vcl/test/GraphicsRenderTests.hxx>
+
+class GraphicsTestsDialog : public weld::GenericDialogController
+{
+ std::unique_ptr<weld::TextView> m_xResultLog;
+ std::unique_ptr<weld::Button> m_xDownloadResults;
+
+ DECL_STATIC_LINK(GraphicsTestsDialog, HandleDownloadRequest, weld::Button&, void);
+
+public:
+ GraphicsTestsDialog(weld::Window* pParent);
+ void runGraphicsTestandUpdateLog();
+}; \ No newline at end of file
diff --git a/cui/source/options/optgdlg.cxx b/cui/source/options/optgdlg.cxx
index fd79d34926f1..3870a3df3ca8 100644
--- a/cui/source/options/optgdlg.cxx
+++ b/cui/source/options/optgdlg.cxx
@@ -556,6 +556,7 @@ OfaViewTabPage::OfaViewTabPage(weld::Container* pPage, weld::DialogController* p
, m_xMousePosLB(m_xBuilder->weld_combo_box("mousepos"))
, m_xMouseMiddleLB(m_xBuilder->weld_combo_box("mousemiddle"))
, m_xMoreIcons(m_xBuilder->weld_button("btnMoreIcons"))
+ , m_xRunGPTests(m_xBuilder->weld_button("btn_rungptest"))
{
if (Application::GetToolkitName().startsWith("gtk"))
m_xMenuIconBox->hide();
@@ -590,12 +591,19 @@ OfaViewTabPage::OfaViewTabPage(weld::Container* pPage, weld::DialogController* p
m_xMoreIcons->set_from_icon_name("cmd/sc_additionsdialog.png");
m_xMoreIcons->connect_clicked(LINK(this, OfaViewTabPage, OnMoreIconsClick));
+ m_xRunGPTests->connect_clicked( LINK( this, OfaViewTabPage, OnRunGPTestClick));
}
OfaViewTabPage::~OfaViewTabPage()
{
}
+IMPL_STATIC_LINK_NOARG(OfaViewTabPage, OnRunGPTestClick, weld::Button&, void)
+{
+ comphelper::dispatchCommand(".uno:GraphicTestDialog",{});
+ //Launch the Dialog box from here.
+}
+
IMPL_STATIC_LINK_NOARG(OfaViewTabPage, OnMoreIconsClick, weld::Button&, void)
{
css::uno::Sequence<css::beans::PropertyValue> aArgs(1);
diff --git a/cui/source/options/optgdlg.hxx b/cui/source/options/optgdlg.hxx
index 1bd92980b1d5..38731cefd043 100644
--- a/cui/source/options/optgdlg.hxx
+++ b/cui/source/options/optgdlg.hxx
@@ -114,10 +114,12 @@ private:
std::unique_ptr<weld::ComboBox> m_xMousePosLB;
std::unique_ptr<weld::ComboBox> m_xMouseMiddleLB;
std::unique_ptr<weld::Button> m_xMoreIcons;
+ std::unique_ptr<weld::Button> m_xRunGPTests;
DECL_LINK(OnAntialiasingToggled, weld::Toggleable&, void);
DECL_LINK(OnUseSkiaToggled, weld::Toggleable&, void);
DECL_STATIC_LINK(OfaViewTabPage, OnMoreIconsClick, weld::Button&, void);
+ DECL_STATIC_LINK(OfaViewTabPage, OnRunGPTestClick, weld::Button&, void);
void UpdateSkiaStatus();
void HideSkiaWidgets();
void UpdateHardwareAccelStatus();
diff --git a/cui/uiconfig/ui/graphictestdlg.ui b/cui/uiconfig/ui/graphictestdlg.ui
new file mode 100644
index 000000000000..339688d72d2f
--- /dev/null
+++ b/cui/uiconfig/ui/graphictestdlg.ui
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.38.2 -->
+<interface domain="cui">
+ <requires lib="gtk+" version="3.20"/>
+ <object class="GtkDialog" id="GraphicTestsDialog">
+ <property name="can-focus">False</property>
+ <property name="title" translatable="yes" context="graphictestdlg|GraphicTestsDialog">Run Graphics Tests</property>
+ <property name="resizable">False</property>
+ <property name="modal">True</property>
+ <property name="default-width">500</property>
+ <property name="default-height">450</property>
+ <property name="type-hint">dialog</property>
+ <child internal-child="vbox">
+ <object class="GtkBox" id="gptest-main">
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">2</property>
+ <child internal-child="action_area">
+ <object class="GtkButtonBox" id="gptestbtnrun">
+ <property name="can-focus">False</property>
+ <property name="layout-style">end</property>
+ <child>
+ <object class="GtkButton" id="gptest_downld">
+ <property name="label" translatable="yes" context="graphictestdlg|gptest_downld">Download Results</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="margin-start">20</property>
+ <property name="margin-end">20</property>
+ <property name="margin-top">5</property>
+ <property name="margin-bottom">5</property>
+ <accelerator key="c" signal="clicked" modifiers="GDK_CONTROL_MASK"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="gptest_label">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="tooltip-text" translatable="yes" context="graphictestdlg|gptest_label">Helps to determine the efficiency of LibreOffice's graphics rendering by running some tests under the hood and providing their results in the log.</property>
+ <property name="margin-start">400</property>
+ <property name="margin-top">10</property>
+ <property name="label" translatable="yes" context="graphictestdlg|gptest_label">What's this?</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="gptest_label1">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-end">400</property>
+ <property name="margin-top">10</property>
+ <property name="label" translatable="yes" context="graphictestdlg|gptest_label1">Results log:</property>
+ <property name="justify">center</property>
+ <accessibility>
+ <relation type="label-for" target="gptestresults"/>
+ </accessibility>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkScrolledWindow" id="gpscrollerwindow1">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="shadow-type">in</property>
+ <child>
+ <object class="GtkTextView" id="gptestresults">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="pixels-above-lines">3</property>
+ <property name="pixels-below-lines">3</property>
+ <property name="editable">False</property>
+ <property name="wrap-mode">word-char</property>
+ <property name="left-margin">10</property>
+ <property name="right-margin">10</property>
+ <property name="top-margin">10</property>
+ <property name="bottom-margin">10</property>
+ <property name="indent">2</property>
+ <accessibility>
+ <relation type="labelled-by" target="gptest_label1"/>
+ </accessibility>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/cui/uiconfig/ui/optviewpage.ui b/cui/uiconfig/ui/optviewpage.ui
index e7dd3e237fb9..9e37ea54389b 100644
--- a/cui/uiconfig/ui/optviewpage.ui
+++ b/cui/uiconfig/ui/optviewpage.ui
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.38.1 -->
+<!-- Generated with glade 3.38.2 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkAdjustment" id="adjustment2">
@@ -9,7 +9,7 @@
<property name="step-increment">1</property>
<property name="page-increment">10</property>
</object>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=1 -->
<object class="GtkGrid" id="OptViewPage">
<property name="visible">True</property>
<property name="can-focus">False</property>
@@ -18,7 +18,7 @@
<property name="border-width">6</property>
<property name="column-spacing">24</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=1 n-rows=4 -->
<object class="GtkGrid" id="grid2">
<property name="visible">True</property>
<property name="can-focus">False</property>
@@ -32,15 +32,15 @@
<property name="label-xalign">0</property>
<property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=2 -->
<object class="GtkGrid" id="grid7">
<property name="visible">True</property>
<property name="can-focus">False</property>
+ <property name="margin-start">12</property>
+ <property name="margin-top">6</property>
<property name="hexpand">True</property>
<property name="row-spacing">3</property>
<property name="column-spacing">6</property>
- <property name="margin-start">12</property>
- <property name="margin-top">6</property>
<child>
<object class="GtkLabel" id="label11">
<property name="visible">True</property>
@@ -136,20 +136,20 @@
<property name="label-xalign">0</property>
<property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=1 n-rows=2 -->
<object class="GtkGrid" id="grid8">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="row-spacing">3</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="row-spacing">3</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=1 -->
<object class="GtkGrid" id="menuiconsbox">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="column-spacing">6</property>
<property name="hexpand">True</property>
+ <property name="column-spacing">6</property>
<child>
<object class="GtkLabel" id="label13">
<property name="visible">True</property>
@@ -192,12 +192,12 @@
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=1 -->
<object class="GtkGrid" id="menushortcutsbpx">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="column-spacing">6</property>
<property name="hexpand">True</property>
+ <property name="column-spacing">6</property>
<child>
<object class="GtkComboBoxText" id="contextmenushortcuts">
<property name="visible">True</property>
@@ -260,15 +260,15 @@
<property name="label-xalign">0</property>
<property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=3 -->
<object class="GtkGrid" id="refgrid1">
<property name="visible">True</property>
<property name="can-focus">False</property>
+ <property name="margin-start">12</property>
+ <property name="margin-top">6</property>
<property name="hexpand">True</property>
<property name="row-spacing">3</property>
<property name="column-spacing">6</property>
- <property name="margin-start">12</property>
- <property name="margin-top">6</property>
<child>
<object class="GtkComboBoxText" id="notebookbariconsize">
<property name="visible">True</property>
@@ -401,14 +401,14 @@
<property name="label-xalign">0</property>
<property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=3 n-rows=1 -->
<object class="GtkGrid" id="refgrid">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="hexpand">True</property>
- <property name="column-spacing">6</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="hexpand">True</property>
+ <property name="column-spacing">6</property>
<child>
<object class="GtkComboBoxText" id="iconstyle">
<property name="visible">True</property>
@@ -488,7 +488,7 @@
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=1 n-rows=3 -->
<object class="GtkGrid" id="grid1">
<property name="visible">True</property>
<property name="can-focus">False</property>
@@ -500,14 +500,14 @@
<property name="label-xalign">0</property>
<property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=1 n-rows=6 -->
<object class="GtkGrid" id="grid3">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="tooltip-text" translatable="yes" context="optviewpage|grid3|tooltip_text">Requires restart</property>
- <property name="row-spacing">3</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="row-spacing">3</property>
<child>
<object class="GtkCheckButton" id="useaccel">
<property name="label" translatable="yes" context="optviewpage|useaccel">Use hard_ware acceleration</property>
@@ -602,48 +602,6 @@
<property name="top-attach">5</property>
</packing>
</child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
</object>
</child>
<child type="label">
@@ -669,13 +627,13 @@
<property name="label-xalign">0</property>
<property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=1 n-rows=3 -->
<object class="GtkGrid" id="grid9">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="row-spacing">3</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="row-spacing">3</property>
<child>
<object class="GtkCheckButton" id="showfontpreview">
<property name="label" translatable="yes" context="optviewpage|showfontpreview">Show p_review of fonts</property>
@@ -717,7 +675,7 @@
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=1 -->
<object class="GtkGrid">
<property name="visible">True</property>
<property name="can-focus">False</property>
@@ -742,8 +700,8 @@
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="activates-default">True</property>
- <property name="adjustment">adjustment2</property>
<property name="truncate-multiline">True</property>
+ <property name="adjustment">adjustment2</property>
<child internal-child="accessible">
<object class="AtkObject" id="aanf-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended_tip | aanf">Enter the smallest font size to apply antialiasing.</property>
@@ -755,51 +713,12 @@
<property name="top-attach">0</property>
</packing>
</child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
</object>
<packing>
<property name="left-attach">0</property>
<property name="top-attach">2</property>
</packing>
</child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
</object>
</child>
<child type="label">
@@ -818,6 +737,21 @@
<property name="top-attach">1</property>
</packing>
</child>
+ <child>
+ <object class="GtkButton" id="btn_rungptest">
+ <property name="label" translatable="yes" context="optviewpage|btn_rungptest">Run Graphics Tests</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="margin-start">10</property>
+ <property name="margin-end">10</property>
+ <property name="margin-top">10</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
+ </packing>
+ </child>
</object>
<packing>
<property name="left-attach">1</property>
diff --git a/include/sfx2/sfxdlg.hxx b/include/sfx2/sfxdlg.hxx
index d133e42f329c..1c4b25f335fd 100644
--- a/include/sfx2/sfxdlg.hxx
+++ b/include/sfx2/sfxdlg.hxx
@@ -146,6 +146,8 @@ public:
virtual VclPtr<VclAbstractDialog> CreateAboutDialog(weld::Window* _pParent) = 0;
+ virtual VclPtr<VclAbstractDialog> CreateGraphicTestsDialog(weld::Window* pParent) = 0;
+
virtual VclPtr<VclAbstractDialog> CreateTipOfTheDayDialog(weld::Window* _pParent) = 0;
virtual VclPtr<VclAbstractDialog> CreateToolbarmodeDialog(weld::Window* _pParent) = 0;
diff --git a/include/sfx2/sfxsids.hrc b/include/sfx2/sfxsids.hrc
index 151503a98545..35d9ab895856 100644
--- a/include/sfx2/sfxsids.hrc
+++ b/include/sfx2/sfxsids.hrc
@@ -63,6 +63,7 @@ class SvxSearchItem;
#define SID_PRINTER_NAME (SID_SFX_START + 322)
#define SID_PRINTER_CHANGESTODOC (SID_SFX_START + 324)
#define SID_PRINTPREVIEW (SID_SFX_START + 325)
+#define SID_GRAPHICTEST_DIALOG (SID_SFX_START + 326)
#define SID_MAIL_SUBJECT (SID_SFX_START + 328)
#define SID_MAIL_SENDDOC (SID_SFX_START + 331)
diff --git a/include/vcl/test/GraphicsRenderTests.hxx b/include/vcl/test/GraphicsRenderTests.hxx
index 9ff5b7c33d90..bfe536b7aa53 100644
--- a/include/vcl/test/GraphicsRenderTests.hxx
+++ b/include/vcl/test/GraphicsRenderTests.hxx
@@ -19,6 +19,7 @@
class VCL_PLUGIN_PUBLIC GraphicsRenderTests
{
+public:
//For storing the results correspondingly to the tests.
std::vector<OString> m_aPassed;
std::vector<OString> m_aQuirky;
@@ -28,6 +29,7 @@ class VCL_PLUGIN_PUBLIC GraphicsRenderTests
//For storing the current graphics Backend in use.
OUString m_aCurGraphicsBackend;
+private:
void testDrawRectWithRectangle();
void testDrawRectWithPixel();
void testDrawRectWithLine();
diff --git a/sfx2/sdi/appslots.sdi b/sfx2/sdi/appslots.sdi
index af5e394f3fb2..bf3f450a303d 100644
--- a/sfx2/sdi/appslots.sdi
+++ b/sfx2/sdi/appslots.sdi
@@ -25,6 +25,10 @@ interface Application
[
ExecMethod = MiscExec_Impl ;
]
+ SID_GRAPHICTEST_DIALOG
+ [
+ ExecMethod = MiscExec_Impl ;
+ ]
SID_SETOPTIONS
[
ExecMethod = MiscExec_Impl ;
diff --git a/sfx2/sdi/sfx.sdi b/sfx2/sdi/sfx.sdi
index 79476c68fa7f..92add9f2abf0 100644
--- a/sfx2/sdi/sfx.sdi
+++ b/sfx2/sdi/sfx.sdi
@@ -134,6 +134,22 @@ SfxVoidItem About SID_ABOUT
GroupId = SfxGroupId::Application;
]
+SfxVoidItem GraphicTestDialog SID_GRAPHICTEST_DIALOG
+()
+[
+ AutoUpdate = FALSE,
+ FastCall = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ RecordAbsolute = FALSE,
+ RecordPerSet;
+
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ ToolBoxConfig = TRUE,
+ GroupId = SfxGroupId::Application;
+]
SfxVoidItem Activate SID_ACTIVATE
()
diff --git a/sfx2/source/appl/appserv.cxx b/sfx2/source/appl/appserv.cxx
index 098f705410a4..fa2ec85a99c3 100644
--- a/sfx2/source/appl/appserv.cxx
+++ b/sfx2/source/appl/appserv.cxx
@@ -626,6 +626,15 @@ void SfxApplication::MiscExec_Impl( SfxRequest& rReq )
break;
}
+ case SID_GRAPHICTEST_DIALOG:
+ {
+ SfxAbstractDialogFactory* pFact = SfxAbstractDialogFactory::Create();
+ ScopedVclPtr<VclAbstractDialog> pDlg(pFact->CreateGraphicTestsDialog(rReq.GetFrameWeld()));
+ pDlg->Execute();
+ bDone = true;
+ break;
+ }
+
case SID_TEMPLATE_MANAGER:
{
SfxTemplateManagerDlg aDialog(rReq.GetFrameWeld());