[Libreoffice-commits] core.git: Branch 'libreoffice-4-2' - 8 commits - icon-themes/galaxy include/sfx2 sfx2/Library_sfx.mk sfx2/source

Jan Holesovsky kendy at collabora.com
Fri Dec 13 04:04:17 PST 2013


 icon-themes/galaxy/res/base128.png           |binary
 icon-themes/galaxy/res/calc128.png           |binary
 icon-themes/galaxy/res/draw128.png           |binary
 icon-themes/galaxy/res/impress128.png        |binary
 icon-themes/galaxy/res/main128.png           |binary
 icon-themes/galaxy/res/math128.png           |binary
 icon-themes/galaxy/res/writer128.png         |binary
 include/sfx2/recentdocsviewitem.hxx          |    3 +
 include/sfx2/thumbnailviewitem.hxx           |    3 +
 sfx2/Library_sfx.mk                          |    1 
 sfx2/source/appl/sfx.src                     |   14 +++----
 sfx2/source/control/recentdocsview.cxx       |    2 -
 sfx2/source/control/recentdocsviewitem.cxx   |   49 ++++++++++++++++++++-------
 sfx2/source/control/templateabstractview.cxx |   30 ++++------------
 sfx2/source/control/thumbnailview.cxx        |   37 +++++++++++++-------
 sfx2/source/control/thumbnailviewitem.cxx    |   22 ++++++++++--
 16 files changed, 105 insertions(+), 56 deletions(-)

New commits:
commit 3943b59c17f6fd8988b4d8c7aebd662ce387a6d6
Author: Jan Holesovsky <kendy at collabora.com>
Date:   Fri Dec 13 13:00:13 2013 +0100

    startcenter: Tooltip should show the full URL.
    
    Change-Id: Ia8e071ebe00fb8c72973614077e778aef55fb1ab

diff --git a/include/sfx2/recentdocsviewitem.hxx b/include/sfx2/recentdocsviewitem.hxx
index 4442e32..be94b78 100644
--- a/include/sfx2/recentdocsviewitem.hxx
+++ b/include/sfx2/recentdocsviewitem.hxx
@@ -19,6 +19,9 @@ public:
         const OUString &rTitle, sal_uInt16 nId);
     virtual void setEditTitle (bool edit, bool bChangeFocus = true);
 
+    /// Text to be used for the tooltip.
+    virtual OUString getHelpText() const;
+
     OUString maURL;
 };
 
diff --git a/include/sfx2/thumbnailviewitem.hxx b/include/sfx2/thumbnailviewitem.hxx
index 6c42bdc..b4c62c7 100644
--- a/include/sfx2/thumbnailviewitem.hxx
+++ b/include/sfx2/thumbnailviewitem.hxx
@@ -89,6 +89,9 @@ public:
 
     void setHighlight (bool state);
 
+    /// Text to be used for the tooltip.
+    virtual OUString getHelpText() const;
+
     virtual void setEditTitle (bool edit, bool bChangeFocus = true);
     void updateTitleEditSize ();
     virtual void setTitle (const OUString& rTitle);
diff --git a/sfx2/source/control/recentdocsviewitem.cxx b/sfx2/source/control/recentdocsviewitem.cxx
index 570e782..2531da1 100644
--- a/sfx2/source/control/recentdocsviewitem.cxx
+++ b/sfx2/source/control/recentdocsviewitem.cxx
@@ -69,4 +69,9 @@ void RecentDocsViewItem::setEditTitle (bool edit, bool bChangeFocus)
     (void)bChangeFocus;
 }
 
+OUString RecentDocsViewItem::getHelpText() const
+{
+    return maURL;
+}
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sfx2/source/control/thumbnailview.cxx b/sfx2/source/control/thumbnailview.cxx
index 6886fac..4942150 100644
--- a/sfx2/source/control/thumbnailview.cxx
+++ b/sfx2/source/control/thumbnailview.cxx
@@ -96,7 +96,7 @@ void ThumbnailView::MouseMove(const MouseEvent& rMEvt)
 
         if (pItem->mbVisible && !rMEvt.IsLeaveWindow() && pItem->getDrawArea().IsInside(aPoint))
         {
-            aHelp = pItem->maTitle;
+            aHelp = pItem->getHelpText();
 
             if (!pItem->isHighlighted())
                 bNeedsPaint = true;
diff --git a/sfx2/source/control/thumbnailviewitem.cxx b/sfx2/source/control/thumbnailviewitem.cxx
index 097aae7..7fdf428 100644
--- a/sfx2/source/control/thumbnailviewitem.cxx
+++ b/sfx2/source/control/thumbnailviewitem.cxx
@@ -146,6 +146,11 @@ void ThumbnailViewItem::setHighlight (bool state)
     mbHover = state;
 }
 
+OUString ThumbnailViewItem::getHelpText() const
+{
+    return maTitle;
+}
+
 void ThumbnailViewItem::setEditTitle (bool edit, bool bChangeFocus)
 {
     mbEditTitle = edit;
commit cb144fefc4910414b95ca2fcbb90b5863e2fc996
Author: Jan Holesovsky <kendy at collabora.com>
Date:   Fri Dec 13 11:35:57 2013 +0100

    startcenter: Implement mouse over effect.
    
    Change-Id: I9beea6119dbb1c12ff053e5776f15d40a3389a8b

diff --git a/sfx2/source/control/thumbnailview.cxx b/sfx2/source/control/thumbnailview.cxx
index 592c8b6..6886fac 100644
--- a/sfx2/source/control/thumbnailview.cxx
+++ b/sfx2/source/control/thumbnailview.cxx
@@ -83,27 +83,38 @@ ThumbnailView::~ThumbnailView()
     ImplDeleteItems();
 }
 
-void ThumbnailView::MouseMove( const MouseEvent& rMEvt )
+void ThumbnailView::MouseMove(const MouseEvent& rMEvt)
 {
-    if ( !mbShowTooltips )
-        return;
-
-    (void) rMEvt; // unused parameter
-    size_t      nItemCount = mFilteredItemList.size();
-    Point       aPoint = GetPointerState().maPos;
-    OUString    aHelp;
+    size_t nItemCount = mFilteredItemList.size();
+    Point aPoint = GetPointerState().maPos;
+    OUString aHelp;
 
-    for ( size_t i = 0; i < nItemCount; i++ )
+    for (size_t i = 0; i < nItemCount; i++)
     {
+        bool bNeedsPaint = false;
         ThumbnailViewItem *pItem = mFilteredItemList[i];
-        if ( pItem->mbVisible && pItem->getDrawArea().IsInside(aPoint) )
+
+        if (pItem->mbVisible && !rMEvt.IsLeaveWindow() && pItem->getDrawArea().IsInside(aPoint))
         {
             aHelp = pItem->maTitle;
-            break;
+
+            if (!pItem->isHighlighted())
+                bNeedsPaint = true;
+            pItem->setHighlight(true);
         }
+        else
+        {
+            if (pItem->isHighlighted())
+                bNeedsPaint = true;
+            pItem->setHighlight(false);
+        }
+
+        if (bNeedsPaint && IsReallyVisible() && IsUpdateMode())
+            Invalidate(pItem->getDrawArea());
     }
 
-    SetQuickHelpText(aHelp);
+    if (mbShowTooltips)
+        SetQuickHelpText(aHelp);
 }
 
 void ThumbnailView::AppendItem(ThumbnailViewItem *pItem)
diff --git a/sfx2/source/control/thumbnailviewitem.cxx b/sfx2/source/control/thumbnailviewitem.cxx
index 791d981..097aae7 100644
--- a/sfx2/source/control/thumbnailviewitem.cxx
+++ b/sfx2/source/control/thumbnailviewitem.cxx
@@ -37,6 +37,7 @@
 #include <vcl/graph.hxx>
 #include <vcl/svapp.hxx>
 #include <vcl/texteng.hxx>
+#include <svtools/optionsdrawinglayer.hxx>
 
 using namespace basegfx;
 using namespace basegfx::tools;
@@ -245,15 +246,25 @@ void ThumbnailViewItem::Paint (drawinglayer::processor2d::BaseProcessor2D *pProc
 {
     BColor aFillColor = pAttrs->aFillColor;
     drawinglayer::primitive2d::Primitive2DSequence aSeq(4);
+    double fTransparence = 0.0;
 
     // Draw background
-    if ( mbSelected || mbHover )
+    if (mbSelected || mbHover)
         aFillColor = pAttrs->aHighlightColor;
 
+    if (mbHover)
+    {
+        const SvtOptionsDrawinglayer aSvtOptionsDrawinglayer;
+        fTransparence = aSvtOptionsDrawinglayer.GetTransparentSelectionPercent() * 0.01;
+    }
+
     sal_uInt32 nPrimitive = 0;
-    aSeq[nPrimitive++] = drawinglayer::primitive2d::Primitive2DReference( new PolyPolygonColorPrimitive2D(
+    aSeq[nPrimitive++] = drawinglayer::primitive2d::Primitive2DReference( new PolyPolygonSelectionPrimitive2D(
                                                B2DPolyPolygon(Polygon(maDrawArea,5,5).getB2DPolygon()),
-                                               aFillColor));
+                                               aFillColor,
+                                               fTransparence,
+                                               0.0,
+                                               true));
 
     // Draw thumbnail
     Point aPos = maPrev1Pos;
commit a18d38c7900528082d197a93bc9517223f4c4288
Author: Jan Holesovsky <kendy at collabora.com>
Date:   Fri Dec 13 09:41:42 2013 +0100

    fdo#72650: Get thumbnails only from the local documents.
    
    No point in connecting to eg. ftp to get a thumbnail ;-)
    
    Change-Id: I017c59196c294242366f2254eeacd9056455c1bc

diff --git a/sfx2/source/control/recentdocsviewitem.cxx b/sfx2/source/control/recentdocsviewitem.cxx
index 3062da6..570e782 100644
--- a/sfx2/source/control/recentdocsviewitem.cxx
+++ b/sfx2/source/control/recentdocsviewitem.cxx
@@ -27,8 +27,11 @@ RecentDocsViewItem::RecentDocsViewItem(ThumbnailView &rView, const OUString &rUR
     if (aTitle.isEmpty())
         aTitle = aURLObj.GetName(INetURLObject::DECODE_WITH_CHARSET);
 
-    BitmapEx aThumbnail = ThumbnailView::readThumbnail(rURL);
-    if( aThumbnail.IsEmpty() )
+    BitmapEx aThumbnail;
+    if (aURLObj.GetProtocol() == INET_PROT_FILE)
+        aThumbnail = ThumbnailView::readThumbnail(rURL);
+
+    if (aThumbnail.IsEmpty())
     {
         // Use the default thumbnail if we have nothing else
         BitmapEx aExt(RecentDocsView::getDefaultThumbnail(rURL));
commit 19b2d2e8699113841006a6dac59ad32301766164
Author: Jan Holesovsky <kendy at collabora.com>
Date:   Fri Dec 13 09:32:09 2013 +0100

    Small cleanup of initialization.
    
    Change-Id: I62c0479414ab6748039498e1bc2b3bc9d7c4ef05

diff --git a/sfx2/source/control/recentdocsviewitem.cxx b/sfx2/source/control/recentdocsviewitem.cxx
index 137193d..3062da6 100644
--- a/sfx2/source/control/recentdocsviewitem.cxx
+++ b/sfx2/source/control/recentdocsviewitem.cxx
@@ -16,18 +16,16 @@
 
 RecentDocsViewItem::RecentDocsViewItem(ThumbnailView &rView, const OUString &rURL,
     const OUString &rTitle, sal_uInt16 nId)
-    : ThumbnailViewItem(rView, nId)
+    : ThumbnailViewItem(rView, nId),
+      maURL(rURL)
 {
+    OUString aTitle(rTitle);
+    INetURLObject aURLObj(rURL);
     RecentDocsView& rRecentView = dynamic_cast<RecentDocsView&>(rView);
     long nThumbnailSize = rRecentView.GetThumbnailSize();
-    OUString aTitle = rTitle;
 
-    if( !aTitle.getLength() )
-    {
-        // If we have no title, get filename from the URL
-        INetURLObject aURLObj(rURL);
+    if (aTitle.isEmpty())
         aTitle = aURLObj.GetName(INetURLObject::DECODE_WITH_CHARSET);
-    }
 
     BitmapEx aThumbnail = ThumbnailView::readThumbnail(rURL);
     if( aThumbnail.IsEmpty() )
@@ -57,7 +55,6 @@ RecentDocsViewItem::RecentDocsViewItem(ThumbnailView &rView, const OUString &rUR
                 &aExt);
     }
 
-    maURL = rURL;
     maTitle = aTitle;
     maPreview1 = TemplateAbstractView::scaleImg(aThumbnail, nThumbnailSize, nThumbnailSize);
 }
commit 92cd15468b6385fdcddaa29074f1e4f09e3f7459
Author: Jan Holesovsky <kendy at collabora.com>
Date:   Fri Dec 13 09:15:11 2013 +0100

    startcenter: Full thumbnail size (256px), upscale if necessary.
    
    Change-Id: I8ae72249853a03b1dfca0ecd10eef47e9aa7cbfe

diff --git a/sfx2/source/control/recentdocsview.cxx b/sfx2/source/control/recentdocsview.cxx
index 5ea8d0d..afadb04 100644
--- a/sfx2/source/control/recentdocsview.cxx
+++ b/sfx2/source/control/recentdocsview.cxx
@@ -41,7 +41,7 @@ using namespace com::sun::star::beans;
 RecentDocsView::RecentDocsView( Window* pParent )
     : ThumbnailView(pParent)
     , mnFileTypes(TYPE_NONE)
-    , mnItemMaxSize(100)
+    , mnItemMaxSize(256)
     , mnTextHeight(30)
     , mnItemPadding(5)
     , mnItemMaxTextLength(30)
diff --git a/sfx2/source/control/templateabstractview.cxx b/sfx2/source/control/templateabstractview.cxx
index f8090843..ddaac09 100644
--- a/sfx2/source/control/templateabstractview.cxx
+++ b/sfx2/source/control/templateabstractview.cxx
@@ -261,9 +261,6 @@ BitmapEx TemplateAbstractView::scaleImg (const BitmapEx &rImg, long width, long
         // make the picture fit the given width/height constraints
         double nRatio = std::min(double(width)/double(aSize.Width()), double(height)/double(aSize.Height()));
 
-        // don't up-scale
-        nRatio = std::min(nRatio, 1.0);
-
         aImg.Scale(Size(aSize.Width() * nRatio, aSize.Height() * nRatio));
     }
 
commit aa05543b83d9780f0139c6c6584e12a8a9209e55
Author: Jan Holesovsky <kendy at collabora.com>
Date:   Fri Dec 13 09:05:29 2013 +0100

    startcenter: Make the default icons appear as on a piece of paper.
    
    So that the frame around the picture is similar to the previews; otherwise
    looks disturbing.
    
    Change-Id: Ie7f973e15c29a34c0f368b5e0f5a152d5cead39f

diff --git a/sfx2/Library_sfx.mk b/sfx2/Library_sfx.mk
index 16fd84a..b6e0962 100644
--- a/sfx2/Library_sfx.mk
+++ b/sfx2/Library_sfx.mk
@@ -60,6 +60,7 @@ $(eval $(call gb_Library_use_libraries,sfx,\
     drawinglayer \
     fwe \
     i18nlangtag \
+    i18nutil \
     sal \
     sax \
     sb \
diff --git a/sfx2/source/control/recentdocsviewitem.cxx b/sfx2/source/control/recentdocsviewitem.cxx
index 3817d0d..137193d 100644
--- a/sfx2/source/control/recentdocsviewitem.cxx
+++ b/sfx2/source/control/recentdocsviewitem.cxx
@@ -9,6 +9,7 @@
 
 #include <sfx2/recentdocsviewitem.hxx>
 
+#include <i18nutil/paper.hxx>
 #include <sfx2/templateabstractview.hxx>
 #include <sfx2/recentdocsview.hxx>
 #include <tools/urlobj.hxx>
@@ -32,7 +33,28 @@ RecentDocsViewItem::RecentDocsViewItem(ThumbnailView &rView, const OUString &rUR
     if( aThumbnail.IsEmpty() )
     {
         // Use the default thumbnail if we have nothing else
-        aThumbnail = RecentDocsView::getDefaultThumbnail(rURL);
+        BitmapEx aExt(RecentDocsView::getDefaultThumbnail(rURL));
+        Size aExtSize(aExt.GetSizePixel());
+
+        // attempt to make it appear as if it is on a piece of paper
+        static PaperInfo aInfo(PaperInfo::getSystemDefaultPaper());
+        double ratio = double(nThumbnailSize) / double(std::max(aInfo.getWidth(), aInfo.getHeight()));
+        Size aThumbnailSize(aInfo.getWidth() * ratio, aInfo.getHeight() * ratio);
+
+        if (aExtSize.Width() > aThumbnailSize.Width() || aExtSize.Height() > aThumbnailSize.Height())
+        {
+            aExt = TemplateAbstractView::scaleImg(aExt, aThumbnailSize.Width(), aThumbnailSize.Height());
+            aExtSize = aExt.GetSizePixel();
+        }
+
+        // create empty, and copy the default thumbnail in
+        sal_uInt8 nAlpha = 255;
+        aThumbnail = BitmapEx(Bitmap(aThumbnailSize, 24), AlphaMask(aThumbnailSize, &nAlpha));
+
+        aThumbnail.CopyPixel(
+                Rectangle(Point((aThumbnailSize.Width() - aExtSize.Width()) / 2, (aThumbnailSize.Height() - aExtSize.Height()) / 2), aExtSize),
+                Rectangle(Point(0, 0), aExtSize),
+                &aExt);
     }
 
     maURL = rURL;
commit d3c0eb59a7faa90054d55d1624e9ea7dee4ce378
Author: Jan Holesovsky <kendy at collabora.com>
Date:   Thu Dec 12 22:58:31 2013 +0100

    startcenter: Bigger & nicer document icons for recent documents.
    
    Change-Id: If61aefc1d27d7bca2e8242b404db685a503bcf0e

diff --git a/icon-themes/galaxy/res/base128.png b/icon-themes/galaxy/res/base128.png
new file mode 100644
index 0000000..37dc8a5
Binary files /dev/null and b/icon-themes/galaxy/res/base128.png differ
diff --git a/icon-themes/galaxy/res/calc128.png b/icon-themes/galaxy/res/calc128.png
new file mode 100644
index 0000000..3505d8a
Binary files /dev/null and b/icon-themes/galaxy/res/calc128.png differ
diff --git a/icon-themes/galaxy/res/draw128.png b/icon-themes/galaxy/res/draw128.png
new file mode 100644
index 0000000..52c7fcf
Binary files /dev/null and b/icon-themes/galaxy/res/draw128.png differ
diff --git a/icon-themes/galaxy/res/impress128.png b/icon-themes/galaxy/res/impress128.png
new file mode 100644
index 0000000..dcef2a9
Binary files /dev/null and b/icon-themes/galaxy/res/impress128.png differ
diff --git a/icon-themes/galaxy/res/main128.png b/icon-themes/galaxy/res/main128.png
new file mode 100644
index 0000000..046970d
Binary files /dev/null and b/icon-themes/galaxy/res/main128.png differ
diff --git a/icon-themes/galaxy/res/math128.png b/icon-themes/galaxy/res/math128.png
new file mode 100644
index 0000000..f82462c
Binary files /dev/null and b/icon-themes/galaxy/res/math128.png differ
diff --git a/icon-themes/galaxy/res/writer128.png b/icon-themes/galaxy/res/writer128.png
new file mode 100644
index 0000000..7fa1635
Binary files /dev/null and b/icon-themes/galaxy/res/writer128.png differ
diff --git a/sfx2/source/appl/sfx.src b/sfx2/source/appl/sfx.src
index de2e45d..08e6f1f 100644
--- a/sfx2/source/appl/sfx.src
+++ b/sfx2/source/appl/sfx.src
@@ -61,37 +61,37 @@ Bitmap ( SFX_THUMBNAIL_DRAWING )
 
 Bitmap ( SFX_FILE_THUMBNAIL_TEXT )
 {
-    File = "odt_48_8.png";
+    File = "writer128.png";
 };
 
 Bitmap ( SFX_FILE_THUMBNAIL_SHEET )
 {
-    File = "ods_48_8.png";
+    File = "calc128.png";
 };
 
 Bitmap ( SFX_FILE_THUMBNAIL_PRESENTATION )
 {
-    File = "odp_48_8.png";
+    File = "impress128.png";
 };
 
 Bitmap ( SFX_FILE_THUMBNAIL_DRAWING )
 {
-    File = "odg_48_8.png";
+    File = "draw128.png";
 };
 
 Bitmap ( SFX_FILE_THUMBNAIL_DATABASE )
 {
-    File = "odb_48_8.png";
+    File = "base128.png";
 };
 
 Bitmap ( SFX_FILE_THUMBNAIL_MATH )
 {
-    File = "odf_48_8.png";
+    File = "math128.png";
 };
 
 Bitmap ( SFX_FILE_THUMBNAIL_DEFAULT )
 {
-    File = "mainapp_48_8.png";
+    File = "main128.png";
 };
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
commit 5523e04065c0df5de1d9e2ed178463137a1e0bb0
Author: Jan Holesovsky <kendy at collabora.com>
Date:   Thu Dec 12 21:54:58 2013 +0100

    template view: Simplify code.
    
    Change-Id: I48fc6fa86a9953db87e59a83714d4d7b0ff8d64a

diff --git a/sfx2/source/control/templateabstractview.cxx b/sfx2/source/control/templateabstractview.cxx
index 5de8a8e..f8090843 100644
--- a/sfx2/source/control/templateabstractview.cxx
+++ b/sfx2/source/control/templateabstractview.cxx
@@ -248,32 +248,23 @@ BitmapEx TemplateAbstractView::scaleImg (const BitmapEx &rImg, long width, long
 {
     BitmapEx aImg = rImg;
 
-    if ( !rImg.IsEmpty() )
+    if (!rImg.IsEmpty())
     {
+        Size aSize = rImg.GetSizePixel();
 
-        const Size& aImgSize = aImg.GetSizePixel();
-        double nRatio = double(aImgSize.getWidth()) / double(aImgSize.getHeight());
+        if (aSize.Width() == 0)
+            aSize.Width() = 1;
 
-        long nDestWidth = aImgSize.getWidth();
-        long nDestHeight = aImgSize.getHeight();
+        if (aSize.Height() == 0)
+            aSize.Height() = 1;
 
-        // Which one side is the overflowing most?
-        long nDistW = aImgSize.getWidth() - width;
-        long nDistH = aImgSize.getHeight() - height;
+        // make the picture fit the given width/height constraints
+        double nRatio = std::min(double(width)/double(aSize.Width()), double(height)/double(aSize.Height()));
 
-        // Use the biggest overflow side to make it fit the destination
-        if ( nDistW >= nDistH && nDistW > 0 )
-        {
-            nDestWidth = width;
-            nDestHeight = width / nRatio;
-        }
-        else if ( nDistW < nDistH && nDistH > 0 )
-        {
-            nDestHeight = height;
-            nDestWidth = height * nRatio;
-        }
+        // don't up-scale
+        nRatio = std::min(nRatio, 1.0);
 
-        aImg.Scale(Size(nDestWidth,nDestHeight));
+        aImg.Scale(Size(aSize.Width() * nRatio, aSize.Height() * nRatio));
     }
 
     return aImg;


More information about the Libreoffice-commits mailing list