[Libreoffice-commits] core.git: Branch 'feature/dialog-screenshots' - include/vcl sd/qa sd/source
Katarina Behrens
Katarina.Behrens at cib.de
Fri Jun 24 15:56:59 UTC 2016
include/vcl/abstdlg.hxx | 1 +
sd/qa/unit/dialogs-test.cxx | 30 ++++++++++++++++++++++++++----
sd/source/ui/dlg/sddlgfact.hxx | 2 ++
3 files changed, 29 insertions(+), 4 deletions(-)
New commits:
commit ab2fc97c3cf6a7dc5798d0e67830bf081492d4ff
Author: Katarina Behrens <Katarina.Behrens at cib.de>
Date: Fri Jun 24 17:54:18 2016 +0200
Screenshot names to copy screenshot IDs
for simple (!tab) dialogs. Some more tweaking needed for tab ones
still
Change-Id: Ic7e0bf09e41e1d2e15a80beae9e5fbf94c443e0c
diff --git a/include/vcl/abstdlg.hxx b/include/vcl/abstdlg.hxx
index 676154e..9a6842b 100644
--- a/include/vcl/abstdlg.hxx
+++ b/include/vcl/abstdlg.hxx
@@ -39,6 +39,7 @@ public:
virtual std::vector<OString> getAllPageUIXMLDescriptions() const;
virtual bool selectPageByUIXMLDescription(const OString& rUIXMLDescription);
virtual Bitmap createScreenshot() const;
+ virtual OString GetScreenshotId() const { return OString(); };
};
class VCL_DLLPUBLIC VclAbstractDialog2
diff --git a/sd/qa/unit/dialogs-test.cxx b/sd/qa/unit/dialogs-test.cxx
index 59f1cc4..2295be4 100644
--- a/sd/qa/unit/dialogs-test.cxx
+++ b/sd/qa/unit/dialogs-test.cxx
@@ -60,7 +60,20 @@
using namespace ::com::sun::star;
-static const char* SCREENSHOT_DIRECTORY = "/workdir/screenshots";
+static const char* SCREENSHOT_DIRECTORY = "/workdir/screenshots/";
+
+namespace {
+ void splitHelpId( OString& rHelpId, OUString& rDirname, OUString &rBasename )
+ {
+ sal_Int32 nIndex = rHelpId.lastIndexOf( '/' );
+
+ if( nIndex > 0 )
+ rDirname = OStringToOUString( rHelpId.copy( 0, nIndex ), RTL_TEXTENCODING_UTF8 );
+
+ if( rHelpId.getLength() > nIndex+1 )
+ rBasename= OStringToOUString( rHelpId.copy( nIndex+1 ), RTL_TEXTENCODING_UTF8 );
+ }
+}
/// Test opening a dialog in sd
class SdDialogsTest : public test::BootstrapFixture, public unotest::MacrosTest
@@ -641,9 +654,18 @@ void SdDialogsTest::dumpDialogToPath(VclAbstractDialog& rDlg, const OUString& rP
if (!aScreenshot.IsEmpty())
{
- const OUString aPath = rPath + ".png";
- SvFileStream aNew(aPath, StreamMode::WRITE | StreamMode::TRUNC);
- CPPUNIT_ASSERT_MESSAGE( OUStringToOString( "Failed to create " + aPath, RTL_TEXTENCODING_UTF8).getStr(), aNew.IsOpen() );
+ OString aScreenshotId = rDlg.GetScreenshotId();
+ OUString aDirname, aBasename;
+ splitHelpId( aScreenshotId, aDirname, aBasename );
+ aDirname = OUString::createFromAscii( SCREENSHOT_DIRECTORY ) + aDirname;
+
+ osl::FileBase::RC err = osl::Directory::createPath( m_directories.getURLFromSrc( aDirname ));
+ CPPUNIT_ASSERT_MESSAGE( OUStringToOString( "Failed to create " + aDirname, RTL_TEXTENCODING_UTF8).getStr(),
+ (err == osl::FileBase::E_None || err == osl::FileBase::E_EXIST) );
+
+ OUString aFullPath = m_directories.getSrcRootPath() + aDirname + "/" + aBasename + ".png";
+ SvFileStream aNew(aFullPath, StreamMode::WRITE | StreamMode::TRUNC);
+ CPPUNIT_ASSERT_MESSAGE( OUStringToOString( "Failed to open " + OUString::number(aNew.GetErrorCode()), RTL_TEXTENCODING_UTF8).getStr(), aNew.IsOpen() );
vcl::PNGWriter aPNGWriter(aScreenshot);
aPNGWriter.Write(aNew);
diff --git a/sd/source/ui/dlg/sddlgfact.hxx b/sd/source/ui/dlg/sddlgfact.hxx
index 86bc1f7..9bb135c 100644
--- a/sd/source/ui/dlg/sddlgfact.hxx
+++ b/sd/source/ui/dlg/sddlgfact.hxx
@@ -32,6 +32,7 @@ public: \
virtual std::vector<OString> getAllPageUIXMLDescriptions() const override; \
virtual bool selectPageByUIXMLDescription(const OString& rUIXMLDescription) override; \
virtual Bitmap createScreenshot() const override; \
+ virtual OString GetScreenshotId() const; \
virtual ~Class(); \
virtual short Execute() override ;
@@ -39,6 +40,7 @@ public: \
std::vector<OString> Class::getAllPageUIXMLDescriptions() const { return pDlg->getAllPageUIXMLDescriptions(); } \
bool Class::selectPageByUIXMLDescription(const OString& rUIXMLDescription) { return pDlg->selectPageByUIXMLDescription(rUIXMLDescription); } \
Bitmap Class::createScreenshot() const { return pDlg->createScreenshot();} \
+OString Class::GetScreenshotId() const { return pDlg->GetScreenshotId();} \
Class::~Class() \
{ \
} \
More information about the Libreoffice-commits
mailing list