include/svx/graphichelper.hxx               |    1 
 svx/source/core/graphichelper.cxx           |   41 +++++++++++++++
 svx/source/dialog/compressgraphicdialog.cxx |   41 +--------------
 sw/source/ui/frmdlg/frmpage.cxx             |    7 ++
 sw/source/uibase/inc/frmpage.hxx            |    2 
 sw/uiconfig/swriter/ui/picturepage.ui       |   73 ++++++++++++++++++++++++++++
 6 files changed, 127 insertions(+), 38 deletions(-)

New commits:
commit e7842148f5fa6f9af9312cb4b198a4a5340e3d9b
Author:     shubham656 <shubham656j...@gmail.com>
AuthorDate: Sun Dec 27 03:41:24 2020 +0530
Commit:     Jim Raykowski <rayk...@gmail.com>
CommitDate: Thu Jan 14 07:32:01 2021 +0100

    tdf#138843 Show image file type inside image properties dialog
    
    Change-Id: I77adc9c3cc9d3bd62f0f67345b7a025bcad2352a
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108361
    Tested-by: Jenkins
    Reviewed-by: Jim Raykowski <rayk...@gmail.com>

diff --git a/include/svx/graphichelper.hxx b/include/svx/graphichelper.hxx
index b582de4a2669..2f723b830493 100644
--- a/include/svx/graphichelper.hxx
+++ b/include/svx/graphichelper.hxx
@@ -32,6 +32,7 @@ class SVXCORE_DLLPUBLIC GraphicHelper
 
 public:
     static void GetPreferredExtension( OUString& rExtension, const Graphic& 
rGraphic );
+    static OUString GetImageType(const Graphic& rGraphic);
     static OUString ExportGraphic(weld::Window* pWin, const Graphic& rGraphic, 
const OUString& rGraphicName);
     static void SaveShapeAsGraphic(weld::Window* pWin, const 
css::uno::Reference< css::drawing::XShape >& xShape);
     static short HasToSaveTransformedImage(weld::Widget* pWin);
diff --git a/svx/source/core/graphichelper.cxx 
b/svx/source/core/graphichelper.cxx
index fb483c5bfe54..8485b0e0df3b 100644
--- a/svx/source/core/graphichelper.cxx
+++ b/svx/source/core/graphichelper.cxx
@@ -123,6 +123,47 @@ void GraphicHelper::GetPreferredExtension( OUString& 
rExtension, const Graphic&
     rExtension = aExtension;
 }
 
+OUString GraphicHelper::GetImageType(const Graphic& rGraphic)
+{
+    OUString aGraphicTypeString = SvxResId(STR_IMAGE_UNKNOWN);
+    auto pGfxLink = rGraphic.GetSharedGfxLink();
+    if (pGfxLink)
+    {
+        switch (pGfxLink->GetType())
+        {
+            case GfxLinkType::NativeGif:
+                aGraphicTypeString = SvxResId(STR_IMAGE_GIF);
+                break;
+            case GfxLinkType::NativeJpg:
+                aGraphicTypeString = SvxResId(STR_IMAGE_JPEG);
+                break;
+            case GfxLinkType::NativePng:
+                aGraphicTypeString = SvxResId(STR_IMAGE_PNG);
+                break;
+            case GfxLinkType::NativeTif:
+                aGraphicTypeString = SvxResId(STR_IMAGE_TIFF);
+                break;
+            case GfxLinkType::NativeWmf:
+                aGraphicTypeString = SvxResId(STR_IMAGE_WMF);
+                break;
+            case GfxLinkType::NativeMet:
+                aGraphicTypeString = SvxResId(STR_IMAGE_MET);
+                break;
+            case GfxLinkType::NativePct:
+                aGraphicTypeString = SvxResId(STR_IMAGE_PCT);
+                break;
+            case GfxLinkType::NativeSvg:
+                aGraphicTypeString = SvxResId(STR_IMAGE_SVG);
+                break;
+            case GfxLinkType::NativeBmp:
+                aGraphicTypeString = SvxResId(STR_IMAGE_BMP);
+                break;
+            default:
+                break;
+        }
+    }
+    return aGraphicTypeString;
+}
 namespace {
 
 
diff --git a/svx/source/dialog/compressgraphicdialog.cxx 
b/svx/source/dialog/compressgraphicdialog.cxx
index 856f7aa4e92a..4c244d8eacef 100644
--- a/svx/source/dialog/compressgraphicdialog.cxx
+++ b/svx/source/dialog/compressgraphicdialog.cxx
@@ -29,6 +29,7 @@
 #include <svx/svdograf.hxx>
 #include <svx/sdgcpitm.hxx>
 #include <svx/dialmgr.hxx>
+#include <svx/graphichelper.hxx>
 #include <svx/compressgraphicdialog.hxx>
 #include <sfx2/dispatch.hxx>
 #include <sfx2/module.hxx>
@@ -121,45 +122,9 @@ void CompressGraphicsDialog::Initialize()
 
 void CompressGraphicsDialog::Update()
 {
-    OUString aGraphicTypeString = SvxResId(STR_IMAGE_UNKNOWN);
-
     auto pGfxLink = m_aGraphic.GetSharedGfxLink();
-    if (pGfxLink)
-    {
-        switch (pGfxLink->GetType())
-        {
-            case GfxLinkType::NativeGif:
-                aGraphicTypeString = SvxResId(STR_IMAGE_GIF);
-                break;
-            case GfxLinkType::NativeJpg:
-                aGraphicTypeString = SvxResId(STR_IMAGE_JPEG);
-                break;
-            case GfxLinkType::NativePng:
-                aGraphicTypeString = SvxResId(STR_IMAGE_PNG);
-                break;
-            case GfxLinkType::NativeTif:
-                aGraphicTypeString = SvxResId(STR_IMAGE_TIFF);
-                break;
-            case GfxLinkType::NativeWmf:
-                aGraphicTypeString = SvxResId(STR_IMAGE_WMF);
-                break;
-            case GfxLinkType::NativeMet:
-                aGraphicTypeString = SvxResId(STR_IMAGE_MET);
-                break;
-            case GfxLinkType::NativePct:
-                aGraphicTypeString = SvxResId(STR_IMAGE_PCT);
-                break;
-            case GfxLinkType::NativeSvg:
-                aGraphicTypeString = SvxResId(STR_IMAGE_SVG);
-                break;
-            case GfxLinkType::NativeBmp:
-                aGraphicTypeString = SvxResId(STR_IMAGE_BMP);
-                break;
-            default:
-                break;
-        }
-    }
-    m_xLabelGraphicType->set_label(aGraphicTypeString);
+
+    m_xLabelGraphicType->set_label(GraphicHelper::GetImageType(m_aGraphic));
 
     const FieldUnit eFieldUnit = 
m_rBindings.GetDispatcher()->GetModule()->GetFieldUnit();
     const LocaleDataWrapper& rLocaleWrapper( 
Application::GetSettings().GetLocaleDataWrapper() );
diff --git a/sw/source/ui/frmdlg/frmpage.cxx b/sw/source/ui/frmdlg/frmpage.cxx
index 2581e70eb272..5b4c8fb1f5cd 100644
--- a/sw/source/ui/frmdlg/frmpage.cxx
+++ b/sw/source/ui/frmdlg/frmpage.cxx
@@ -63,6 +63,7 @@
 #include <strings.hrc>
 #include <svx/strings.hrc>
 #include <svx/dialmgr.hxx>
+#include <svx/graphichelper.hxx>
 #include <sfx2/filedlghelper.hxx>
 #include <com/sun/star/ui/dialogs/TemplateDescription.hpp>
 #include <com/sun/star/ui/dialogs/XFilePicker3.hpp>
@@ -2314,6 +2315,8 @@ SwGrfExtPage::SwGrfExtPage(weld::Container* pPage, 
weld::DialogController* pCont
     , m_xCtlAngle(new svx::DialControl)
     , m_xCtlAngleWin(new weld::CustomWeld(*m_xBuilder, "CTL_ANGLE", 
*m_xCtlAngle))
     , m_xBmpWin(new weld::CustomWeld(*m_xBuilder, "preview", m_aBmpWin))
+    // tdf#138843 place holder for the graphic type
+    , m_xLabelGraphicType(m_xBuilder->weld_label("label-graphic-type"))
 {
     m_aBmpWin.SetBitmapEx(BitmapEx(RID_BMP_PREVIEW_FALLBACK));
 
@@ -2434,7 +2437,10 @@ void SwGrfExtPage::ActivatePage(const SfxItemSet& rSet)
         }
         const Graphic* pGrf = rBrush.GetGraphic(referer);
         if( pGrf )
+        {
             m_aBmpWin.SetGraphic( *pGrf );
+            m_xLabelGraphicType->set_label(GraphicHelper::GetImageType(*pGrf));
+        }
     }
 
     m_xConnectED->save_value();
@@ -2544,6 +2550,7 @@ IMPL_LINK_NOARG(SwGrfExtPage, BrowseHdl, weld::Button&, 
void)
     Graphic aGraphic;
     (void)GraphicFilter::LoadGraphic(m_xGrfDlg->GetPath(), OUString(), 
aGraphic);
     m_aBmpWin.SetGraphic(aGraphic);
+    m_xLabelGraphicType->set_label(GraphicHelper::GetImageType(aGraphic));
 
     bool bEnable = GraphicType::Bitmap      == aGraphic.GetType() ||
                         GraphicType::GdiMetafile == aGraphic.GetType();
diff --git a/sw/source/uibase/inc/frmpage.hxx b/sw/source/uibase/inc/frmpage.hxx
index 077e088b0bc2..63d6e5bf1e78 100644
--- a/sw/source/uibase/inc/frmpage.hxx
+++ b/sw/source/uibase/inc/frmpage.hxx
@@ -221,6 +221,8 @@ class SwGrfExtPage : public SfxTabPage
     std::unique_ptr<weld::CustomWeld> m_xCtlAngleWin;
     std::unique_ptr<weld::CustomWeld> m_xBmpWin;
 
+    // tdf#138843 add place holder for the graphic type
+    std::unique_ptr<weld::Label> m_xLabelGraphicType;
 
     // handler for mirroring
     DECL_LINK(MirrorHdl, weld::ToggleButton&, void);
diff --git a/sw/uiconfig/swriter/ui/picturepage.ui 
b/sw/uiconfig/swriter/ui/picturepage.ui
index df6c0c12e5c2..87eec3bac33d 100644
--- a/sw/uiconfig/swriter/ui/picturepage.ui
+++ b/sw/uiconfig/swriter/ui/picturepage.ui
@@ -389,6 +389,79 @@
         <property name="width">2</property>
       </packing>
     </child>
+    <child>
+      <object class="GtkFrame" id="infoframe">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="label_xalign">0</property>
+        <property name="shadow_type">none</property>
+        <child>
+          <object class="GtkAlignment" id="alignment3">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="top_padding">6</property>
+            <property name="left_padding">12</property>
+            <child>
+              <!-- n-columns=1 n-rows=1 -->
+              <object class="GtkGrid" id="grid3">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="valign">start</property>
+                <property name="row_spacing">3</property>
+                <property name="column_spacing">12</property>
+                <child>
+                  <object class="GtkLabel" id="label15">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="label" translatable="yes" 
context="picturepage|label15">Type:</property>
+                    <property name="single_line_mode">True</property>
+                    <property name="xalign">0</property>
+                    <accessibility>
+                      <relation type="label-for" target="label-graphic-type"/>
+                    </accessibility>
+                  </object>
+                  <packing>
+                    <property name="left_attach">0</property>
+                    <property name="top_attach">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="label-graphic-type">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="hexpand">True</property>
+                    <property name="label">???</property>
+                    <property name="xalign">0</property>
+                    <accessibility>
+                      <relation type="labelled-by" target="label15"/>
+                    </accessibility>
+                  </object>
+                  <packing>
+                    <property name="left_attach">1</property>
+                    <property name="top_attach">0</property>
+                  </packing>
+                </child>
+              </object>
+            </child>
+          </object>
+        </child>
+        <child type="label">
+          <object class="GtkLabel" id="label16">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="label" translatable="yes" 
context="picturepage|label16">Image Information</property>
+            <attributes>
+              <attribute name="weight" value="bold"/>
+            </attributes>
+          </object>
+        </child>
+      </object>
+      <packing>
+        <property name="left_attach">0</property>
+        <property name="top_attach">3</property>
+        <property name="width">2</property>
+      </packing>
+    </child>
     <child internal-child="accessible">
       <object class="AtkObject" id="PicturePage-atkobject">
         <property name="AtkObject::accessible-description" translatable="yes" 
context="picturepage|extended_tip|PicturePage">Specify the flip and the link 
options for the selected image.</property>
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to