desktop/qa/desktop_lib/test_desktop_lib.cxx |    4 ---
 desktop/source/lib/init.cxx                 |   34 ----------------------------
 include/LibreOfficeKit/LibreOfficeKit.h     |    8 ------
 include/LibreOfficeKit/LibreOfficeKit.hxx   |   25 --------------------
 4 files changed, 1 insertion(+), 70 deletions(-)

New commits:
commit 1f4e9eacc36413bba92f119ebed931cfdb975e80
Author:     Tor Lillqvist <t...@collabora.com>
AuthorDate: Tue Mar 7 11:43:00 2023 +0200
Commit:     Tor Lillqvist <t...@collabora.com>
CommitDate: Tue Mar 7 14:40:02 2023 +0000

    Drop the LibreOfficeKit paintThumbnail() API
    
    It turns out that Mert's original idea is actually the simplest and it
    is known to work. And in that, the separate paintThumbnail() is rather
    pointless, as all paintThumbnail() did was to call paintTile(). The
    caller (in Collabora Online) knows when a file is opened specifically
    for thumbnailing, and can call paintTile() itself with the appropriate
    parameters.
    
    My misguided idea would have had paintThumbnail() somehow figure out
    the physical Twip coordinates of the current location (for text
    documents, the insertion caret location) in the document. (Or, as
    LibreOfficeKit for some reason calls them, "logical" coordinates, even
    if a Twip is a very physical length unit.) Then it would have called
    paintTile() with those coordinates. But it turned out to be rather
    hard to figure out the Twip coordinates of the current location in
    the document.
    
    Mert's idea was that when a document is opened for thumbnailing, only
    Online actually needs to know that. From LibreOfficeKit's and core's
    point of view it is a normal document load operation. Then Online
    performs the .uno:OpenHyperlink magic, which makes core move the
    current position to the requested "target" or "mark" (the terminology
    varies) location. And then a "cursor" callback is used by Online to
    get the Twip coordinates of the target. It is a bit unclear to me
    whether .uno:HyperLink causes the document to be opened an extra time,
    but whatever, this way is said to work. So let's do it like that.
    
    This reverts the paintThumbnail part of
    1aa37ca99112c0760552600d7774ba7224581c5b.
    
    Change-Id: I8f3d9917ee362c1518834fc10a57c57ebc4a6edb
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148390
    Tested-by: Tor Lillqvist <t...@collabora.com>
    Reviewed-by: Tor Lillqvist <t...@collabora.com>

diff --git a/desktop/qa/desktop_lib/test_desktop_lib.cxx 
b/desktop/qa/desktop_lib/test_desktop_lib.cxx
index c143662d7dd4..217b537fa214 100644
--- a/desktop/qa/desktop_lib/test_desktop_lib.cxx
+++ b/desktop/qa/desktop_lib/test_desktop_lib.cxx
@@ -3635,11 +3635,9 @@ void DesktopLOKTest::testABI()
     CPPUNIT_ASSERT_EQUAL(documentClassOffset(67), offsetof(struct 
_LibreOfficeKitDocumentClass, getEditMode));
     CPPUNIT_ASSERT_EQUAL(documentClassOffset(68),
                          offsetof(struct _LibreOfficeKitDocumentClass, 
setViewTimezone));
-    CPPUNIT_ASSERT_EQUAL(documentClassOffset(69), offsetof(struct 
_LibreOfficeKitDocumentClass, paintThumbnail));
-
 
     // As above
-    CPPUNIT_ASSERT_EQUAL(documentClassOffset(70), sizeof(struct 
_LibreOfficeKitDocumentClass));
+    CPPUNIT_ASSERT_EQUAL(documentClassOffset(69), sizeof(struct 
_LibreOfficeKitDocumentClass));
 }
 
 CPPUNIT_TEST_SUITE_REGISTRATION(DesktopLOKTest);
diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx
index 903dc2b06687..ee1f47a8ea96 100644
--- a/desktop/source/lib/init.cxx
+++ b/desktop/source/lib/init.cxx
@@ -1114,12 +1114,6 @@ static void doc_paintTile(LibreOfficeKitDocument* pThis,
                           const int nCanvasWidth, const int nCanvasHeight,
                           const int nTilePosX, const int nTilePosY,
                           const int nTileWidth, const int nTileHeight);
-static void doc_paintThumbnail(LibreOfficeKitDocument* pThis,
-                               unsigned char* pBuffer,
-                               int bufferWidth,
-                               int bufferHeight,
-                               int width,
-                               const char* pURL);
 #ifdef IOS
 static void doc_paintTileToCGContext(LibreOfficeKitDocument* pThis,
                                      void* rCGContext,
@@ -1393,7 +1387,6 @@ LibLODocument_Impl::LibLODocument_Impl(uno::Reference 
<css::lang::XComponent> xC
         m_pDocumentClass->setPartMode = doc_setPartMode;
         m_pDocumentClass->getEditMode = doc_getEditMode;
         m_pDocumentClass->paintTile = doc_paintTile;
-        m_pDocumentClass->paintThumbnail = doc_paintThumbnail;
 #ifdef IOS
         m_pDocumentClass->paintTileToCGContext = doc_paintTileToCGContext;
 #endif
@@ -4015,33 +4008,6 @@ static void 
doc_paintTileToCGContext(LibreOfficeKitDocument* pThis,
 
 #endif
 
-static void doc_paintThumbnail(LibreOfficeKitDocument* pThis,
-                               unsigned char* pBuffer,
-                               int bufferWidth,
-                               int bufferHeight,
-                               int width,
-                               const char* pURL)
-{
-#if 0
-    constexpr float zoom = 0.5f;
-    constexpr int pixelWidth = 120;
-    constexpr int pixelHeight = 120;
-    constexpr int pixelWidthTwips = pixelWidth * 15 / zoom;
-    constexpr int pixelHeightTwips = pixelHeight * 15 / zoom;
-    constexpr int offsetXTwips = 15 * 15; // start 15 px/twips before the 
target to get a clearer thumbnail
-    constexpr int offsetYTwips = 15 * 15;
-
-    doc_paintTile(pThis, pBuffer, pixelWidth, pixelHeight, x-offsetXTwips, 
y-offsetYTwips, pixelWidthTwips, pixelHeightTwips);
-#else
-    (void) pThis;
-    (void) pBuffer;
-    (void) bufferWidth;
-    (void) bufferHeight;
-    (void) width;
-    (void) pURL;
-#endif
-}
-
 static void doc_paintPartTile(LibreOfficeKitDocument* pThis,
                               unsigned char* pBuffer,
                               const int nPart,
diff --git a/include/LibreOfficeKit/LibreOfficeKit.h 
b/include/LibreOfficeKit/LibreOfficeKit.h
index a54c364737c6..3887d3d3c412 100644
--- a/include/LibreOfficeKit/LibreOfficeKit.h
+++ b/include/LibreOfficeKit/LibreOfficeKit.h
@@ -501,14 +501,6 @@ struct _LibreOfficeKitDocumentClass
     /// @see lok::Document::setViewTimezone().
     void (*setViewTimezone) (LibreOfficeKitDocument* pThis, int nId, const 
char* timezone);
 
-    /// @see lok::Document::paintThumbnail().
-    void (*paintThumbnail) (LibreOfficeKitDocument* pThis,
-                            unsigned char* pBuffer,
-                            int bufferWidth,
-                            int bufferHeight,
-                            int width,
-                            const char* pURL);
-
 #endif // defined LOK_USE_UNSTABLE_API || defined LIBO_INTERNAL_ONLY
 };
 
diff --git a/include/LibreOfficeKit/LibreOfficeKit.hxx 
b/include/LibreOfficeKit/LibreOfficeKit.hxx
index 04a3b82e6eca..d3c2e5de78aa 100644
--- a/include/LibreOfficeKit/LibreOfficeKit.hxx
+++ b/include/LibreOfficeKit/LibreOfficeKit.hxx
@@ -886,31 +886,6 @@ public:
         mpDoc->pClass->setViewTimezone(mpDoc, nId, timezone);
     }
 
-    /**
-     * Create a thumbnail of a location in the document.
-     *
-     * @param pBuffer Where the thumbnail is painted. Same format as a tile 
painted
-     * by paintTile().
-     * @param bufferWidth number of pixels in a row of pBuffer.
-     * @param bufferHeight number of pixels in a column of pBuffer.
-     * @param width logical width of the rendered rectangle, in TWIPs.
-     * @param pURL Just the fragment part of a URL, indicating the location in 
the document
-     * to render as a thumbnail. As returned by extractRequest(), or null, 
meaning the start
-     * of the document.
-     *
-     * Note that there is no parameter for the logical height of the
-     * rendered rectangle. The aspect ratio of the rendered rectangle
-     * is determined by the bufferWidth and bufferHeight parameters.
-     */
-    void paintThumbnail(unsigned char* pBuffer,
-                        int bufferWidth,
-                        int bufferHeight,
-                        int width,
-                        const char* pURL)
-    {
-        return mpDoc->pClass->paintThumbnail(mpDoc, pBuffer, bufferWidth, 
bufferHeight, width, pURL);
-    }
-
 #endif // defined LOK_USE_UNSTABLE_API || defined LIBO_INTERNAL_ONLY
 };
 

Reply via email to