Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
core
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
LibreOffice
core
Commits
d355207b
Kaydet (Commit)
d355207b
authored
Eyl 29, 2015
tarafından
Miklos Vajna
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
lok: add Document::getPartPageRectangles()
Change-Id: I20acd44f7a81471982ba96ad3894a9124e035c5f
üst
264c6e4c
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
98 additions
and
0 deletions
+98
-0
test_desktop_lib.cxx
desktop/qa/desktop_lib/test_desktop_lib.cxx
+25
-0
init.cxx
desktop/source/lib/init.cxx
+19
-0
LibreOfficeKit.h
include/LibreOfficeKit/LibreOfficeKit.h
+3
-0
LibreOfficeKit.hxx
include/LibreOfficeKit/LibreOfficeKit.hxx
+14
-0
ITiledRenderable.hxx
include/vcl/ITiledRenderable.hxx
+8
-0
crsrsh.hxx
sw/inc/crsrsh.hxx
+2
-0
unotxdoc.hxx
sw/inc/unotxdoc.hxx
+2
-0
crsrsh.cxx
sw/source/core/crsr/crsrsh.cxx
+14
-0
unotxdoc.cxx
sw/source/uibase/uno/unotxdoc.cxx
+11
-0
No files found.
desktop/qa/desktop_lib/test_desktop_lib.cxx
Dosyayı görüntüle @
d355207b
...
...
@@ -52,12 +52,14 @@ public:
void
testGetFonts
();
void
testCreateView
();
void
testGetFilterTypes
();
void
testGetPartPageRectangles
();
CPPUNIT_TEST_SUITE
(
DesktopLOKTest
);
CPPUNIT_TEST
(
testGetStyles
);
CPPUNIT_TEST
(
testGetFonts
);
CPPUNIT_TEST
(
testCreateView
);
CPPUNIT_TEST
(
testGetFilterTypes
);
CPPUNIT_TEST
(
testGetPartPageRectangles
);
CPPUNIT_TEST_SUITE_END
();
uno
::
Reference
<
lang
::
XComponent
>
mxComponent
;
...
...
@@ -152,6 +154,29 @@ void DesktopLOKTest::testCreateView()
closeDoc
();
}
void
DesktopLOKTest
::
testGetPartPageRectangles
()
{
// Test that we get as many page rectangles as expected: blank document is
// one page.
LibLODocument_Impl
*
pDocument
=
loadDoc
(
"blank_text.odt"
);
char
*
pRectangles
=
pDocument
->
pClass
->
getPartPageRectangles
(
pDocument
);
OUString
sRectangles
=
OUString
::
fromUtf8
(
pRectangles
);
std
::
vector
<
OUString
>
aRectangles
;
sal_Int32
nIndex
=
0
;
do
{
OUString
aRectangle
=
sRectangles
.
getToken
(
0
,
';'
,
nIndex
);
if
(
!
aRectangle
.
isEmpty
())
aRectangles
.
push_back
(
aRectangle
);
}
while
(
nIndex
>=
0
);
CPPUNIT_ASSERT_EQUAL
(
static_cast
<
size_t
>
(
1
),
aRectangles
.
size
());
free
(
pRectangles
);
closeDoc
();
}
void
DesktopLOKTest
::
testGetFilterTypes
()
{
LibLibreOffice_Impl
aOffice
;
...
...
desktop/source/lib/init.cxx
Dosyayı görüntüle @
d355207b
...
...
@@ -204,6 +204,7 @@ static void doc_destroy(LibreOfficeKitDocument* pThis);
static
int
doc_saveAs
(
LibreOfficeKitDocument
*
pThis
,
const
char
*
pUrl
,
const
char
*
pFormat
,
const
char
*
pFilterOptions
);
static
int
doc_getDocumentType
(
LibreOfficeKitDocument
*
pThis
);
static
int
doc_getParts
(
LibreOfficeKitDocument
*
pThis
);
static
char
*
doc_getPartPageRectangles
(
LibreOfficeKitDocument
*
pThis
);
static
int
doc_getPart
(
LibreOfficeKitDocument
*
pThis
);
static
void
doc_setPart
(
LibreOfficeKitDocument
*
pThis
,
int
nPart
);
static
char
*
doc_getPartName
(
LibreOfficeKitDocument
*
pThis
,
int
nPart
);
...
...
@@ -266,6 +267,7 @@ LibLODocument_Impl::LibLODocument_Impl(const uno::Reference <css::lang::XCompone
m_pDocumentClass
->
saveAs
=
doc_saveAs
;
m_pDocumentClass
->
getDocumentType
=
doc_getDocumentType
;
m_pDocumentClass
->
getParts
=
doc_getParts
;
m_pDocumentClass
->
getPartPageRectangles
=
doc_getPartPageRectangles
;
m_pDocumentClass
->
getPart
=
doc_getPart
;
m_pDocumentClass
->
setPart
=
doc_setPart
;
m_pDocumentClass
->
getPartName
=
doc_getPartName
;
...
...
@@ -659,6 +661,23 @@ static void doc_setPart(LibreOfficeKitDocument* pThis, int nPart)
pDoc
->
setPart
(
nPart
);
}
static
char
*
doc_getPartPageRectangles
(
LibreOfficeKitDocument
*
pThis
)
{
ITiledRenderable
*
pDoc
=
getTiledRenderable
(
pThis
);
if
(
!
pDoc
)
{
gImpl
->
maLastExceptionMsg
=
"Document doesn't support tiled rendering"
;
return
0
;
}
OUString
sRectangles
=
pDoc
->
getPartPageRectangles
();
OString
aString
=
OUStringToOString
(
sRectangles
,
RTL_TEXTENCODING_UTF8
);
char
*
pMemory
=
static_cast
<
char
*>
(
malloc
(
aString
.
getLength
()
+
1
));
strcpy
(
pMemory
,
aString
.
getStr
());
return
pMemory
;
}
static
char
*
doc_getPartName
(
LibreOfficeKitDocument
*
pThis
,
int
nPart
)
{
ITiledRenderable
*
pDoc
=
getTiledRenderable
(
pThis
);
...
...
include/LibreOfficeKit/LibreOfficeKit.h
Dosyayı görüntüle @
d355207b
...
...
@@ -85,6 +85,9 @@ struct _LibreOfficeKitDocumentClass
/// @see lok::Document::getParts().
int
(
*
getParts
)
(
LibreOfficeKitDocument
*
pThis
);
/// @see lok::Document::getPartPageRectangles().
char
*
(
*
getPartPageRectangles
)
(
LibreOfficeKitDocument
*
pThis
);
/// @see lok::Document::getPart().
int
(
*
getPart
)
(
LibreOfficeKitDocument
*
pThis
);
...
...
include/LibreOfficeKit/LibreOfficeKit.hxx
Dosyayı görüntüle @
d355207b
...
...
@@ -76,6 +76,20 @@ public:
return
mpDoc
->
pClass
->
getParts
(
mpDoc
);
}
/**
* Get the logical rectangle of each part in the document.
*
* A part refers to an individual page in Writer and has no relevant for
* Calc or Impress.
*
* @return a rectangle list, using the same format as
* LOK_CALLBACK_TEXT_SELECTION.
*/
inline
char
*
getPartPageRectangles
()
{
return
mpDoc
->
pClass
->
getPartPageRectangles
(
mpDoc
);
}
/// Get the current part of the document.
inline
int
getPart
()
{
...
...
include/vcl/ITiledRenderable.hxx
Dosyayı görüntüle @
d355207b
...
...
@@ -139,6 +139,14 @@ public:
* @see lok::Document::resetSelection().
*/
virtual
void
resetSelection
()
=
0
;
/**
* @see lok::Document::getPartPageRectangles().
*/
virtual
OUString
getPartPageRectangles
()
{
return
OUString
();
}
};
}
// namespace vcl
...
...
sw/inc/crsrsh.hxx
Dosyayı görüntüle @
d355207b
...
...
@@ -847,6 +847,8 @@ public:
OUString
GetCrsrDescr
()
const
;
virtual
void
dumpAsXml
(
struct
_xmlTextWriter
*
pWriter
)
const
SAL_OVERRIDE
;
/// Implementation of lok::Document::getPartPageRectangles() for Writer.
OUString
getPageRectangles
();
};
// Cursor Inlines:
...
...
sw/inc/unotxdoc.hxx
Dosyayı görüntüle @
d355207b
...
...
@@ -428,6 +428,8 @@ public:
virtual
void
setGraphicSelection
(
int
nType
,
int
nX
,
int
nY
)
SAL_OVERRIDE
;
/// @see vcl::ITiledRenderable::resetSelection().
virtual
void
resetSelection
()
SAL_OVERRIDE
;
/// @see vcl::ITiledRenderable::getPartPageRectangles().
virtual
OUString
getPartPageRectangles
()
SAL_OVERRIDE
;
// ::com::sun::star::tiledrendering::XTiledRenderable
virtual
void
SAL_CALL
paintTile
(
const
::
css
::
uno
::
Any
&
Parent
,
::
sal_Int32
nOutputWidth
,
::
sal_Int32
nOutputHeight
,
::
sal_Int32
nTilePosX
,
::
sal_Int32
nTilePosY
,
::
sal_Int32
nTileWidth
,
::
sal_Int32
nTileHeight
)
throw
(
::
css
::
uno
::
RuntimeException
,
::
std
::
exception
)
SAL_OVERRIDE
;
...
...
sw/source/core/crsr/crsrsh.cxx
Dosyayı görüntüle @
d355207b
...
...
@@ -1200,6 +1200,20 @@ sal_uInt16 SwCrsrShell::GetPageCnt()
return
GetLayout
()
->
GetPageNum
();
}
OUString
SwCrsrShell
::
getPageRectangles
()
{
CurrShell
aCurr
(
this
);
SwRootFrm
*
pLayout
=
GetLayout
();
std
::
stringstream
ss
;
for
(
const
SwFrm
*
pFrm
=
pLayout
->
GetLower
();
pFrm
;
pFrm
=
pFrm
->
GetNext
())
{
if
(
pFrm
!=
pLayout
->
GetLower
())
ss
<<
"; "
;
ss
<<
pFrm
->
Frm
().
Left
()
<<
", "
<<
pFrm
->
Frm
().
Top
()
<<
", "
<<
pFrm
->
Frm
().
Width
()
<<
", "
<<
pFrm
->
Frm
().
Height
();
}
return
OUString
::
fromUtf8
(
ss
.
str
().
c_str
());
}
/// go to the next SSelection
bool
SwCrsrShell
::
GoNextCrsr
()
{
...
...
sw/source/uibase/uno/unotxdoc.cxx
Dosyayı görüntüle @
d355207b
...
...
@@ -3176,6 +3176,17 @@ int SwXTextDocument::getParts()
return
pWrtShell
->
GetPageCnt
();
}
OUString
SwXTextDocument
::
getPartPageRectangles
()
{
SolarMutexGuard
aGuard
;
SwWrtShell
*
pWrtShell
=
pDocShell
->
GetWrtShell
();
if
(
!
pWrtShell
)
return
OUString
();
return
pWrtShell
->
getPageRectangles
();
}
int
SwXTextDocument
::
getPart
()
{
SolarMutexGuard
aGuard
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment