diff options
author | Heiko Tietze <tietze.heiko@gmail.com> | 2021-04-09 11:25:54 +0200 |
---|---|---|
committer | Heiko Tietze <heiko.tietze@documentfoundation.org> | 2021-04-12 08:24:45 +0200 |
commit | dc78803e2fc757fc3ddd97b59e698bf1385c5555 (patch) | |
tree | a4a628092243501be67dd3fe38179fcf6f2efc7d | |
parent | 334838efc12cd1e4a451a8dd7542b93fdaf30bb9 (diff) |
Resolves tdf#135896 - Add hyperlink to file location
File > Properties: Document Location is now a hyperlink
opening the file browser for local files or the internet
browser for remote content
Change-Id: If3de16172e12aa1a3f4acc7504a2b3dd78677c09
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113839
Tested-by: Jenkins
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
-rw-r--r-- | include/sfx2/dinfdlg.hxx | 2 | ||||
-rw-r--r-- | sfx2/source/dialog/dinfdlg.cxx | 12 | ||||
-rw-r--r-- | sfx2/uiconfig/ui/documentinfopage.ui | 283 |
3 files changed, 149 insertions, 148 deletions
diff --git a/include/sfx2/dinfdlg.hxx b/include/sfx2/dinfdlg.hxx index 04fe4131216b..6f332f7112e0 100644 --- a/include/sfx2/dinfdlg.hxx +++ b/include/sfx2/dinfdlg.hxx @@ -167,7 +167,7 @@ private: std::unique_ptr<weld::Button> m_xChangePassBtn; std::unique_ptr<weld::Label> m_xShowTypeFT; - std::unique_ptr<weld::Label> m_xFileValEd; + std::unique_ptr<weld::LinkButton> m_xFileValEd; std::unique_ptr<weld::Label> m_xShowSizeFT; std::unique_ptr<weld::Label> m_xCreateValFt; diff --git a/sfx2/source/dialog/dinfdlg.cxx b/sfx2/source/dialog/dinfdlg.cxx index c08c0dfa5cd8..ca5897df8a0a 100644 --- a/sfx2/source/dialog/dinfdlg.cxx +++ b/sfx2/source/dialog/dinfdlg.cxx @@ -689,7 +689,7 @@ SfxDocumentPage::SfxDocumentPage(weld::Container* pPage, weld::DialogController* , m_xNameED(m_xBuilder->weld_label("nameed")) , m_xChangePassBtn(m_xBuilder->weld_button("changepass")) , m_xShowTypeFT(m_xBuilder->weld_label("showtype")) - , m_xFileValEd(m_xBuilder->weld_label("showlocation")) + , m_xFileValEd(m_xBuilder->weld_link_button("showlocation")) , m_xShowSizeFT(m_xBuilder->weld_label("showsize")) , m_xCreateValFt(m_xBuilder->weld_label("showcreate")) , m_xChangeValFt(m_xBuilder->weld_label("showmodify")) @@ -974,10 +974,14 @@ void SfxDocumentPage::Reset( const SfxItemSet* rSet ) // we know it's a folder -> don't need the final slash, but it's better for WB_PATHELLIPSIS aPath.removeFinalSlash(); OUString aText( aPath.PathToFileName() ); //! (pb) MaxLen? - m_xFileValEd->set_label( aText ); + m_xFileValEd->set_label(aText); + m_xFileValEd->set_uri("file://" + aText); + } + else if (aURL.GetProtocol() != INetProtocol::PrivSoffice) + { + m_xFileValEd->set_label(aURL.GetPartBeforeLastName()); + m_xFileValEd->set_uri(m_xFileValEd->get_label()); } - else if ( aURL.GetProtocol() != INetProtocol::PrivSoffice ) - m_xFileValEd->set_label( aURL.GetPartBeforeLastName() ); // handle access data bool bUseUserData = rInfoItem.IsUseUserData(); diff --git a/sfx2/uiconfig/ui/documentinfopage.ui b/sfx2/uiconfig/ui/documentinfopage.ui index 7fd64c4df456..49a4f8ab1c07 100644 --- a/sfx2/uiconfig/ui/documentinfopage.ui +++ b/sfx2/uiconfig/ui/documentinfopage.ui @@ -1,191 +1,191 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Generated with glade 3.36.0 --> +<!-- Generated with glade 3.38.2 --> <interface domain="sfx"> <requires lib="gtk+" version="3.20"/> - <!-- n-columns=1 n-rows=1 --> + <!-- n-columns=3 n-rows=13 --> <object class="GtkGrid" id="DocumentInfoPage"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can-focus">False</property> <property name="hexpand">True</property> <property name="vexpand">True</property> - <property name="border_width">12</property> - <property name="row_spacing">6</property> - <property name="column_spacing">12</property> + <property name="border-width">12</property> + <property name="row-spacing">6</property> + <property name="column-spacing">12</property> <child> <object class="GtkLabel" id="label13"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can-focus">False</property> <property name="halign">end</property> <property name="label" translatable="yes" context="documentinfopage|label13">_Created:</property> - <property name="use_underline">True</property> - <property name="mnemonic_widget">showcreate</property> + <property name="use-underline">True</property> + <property name="mnemonic-widget">showcreate</property> </object> <packing> - <property name="left_attach">0</property> - <property name="top_attach">4</property> + <property name="left-attach">0</property> + <property name="top-attach">4</property> </packing> </child> <child> <object class="GtkLabel" id="label14"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can-focus">False</property> <property name="halign">end</property> <property name="label" translatable="yes" context="documentinfopage|label14">_Modified:</property> - <property name="use_underline">True</property> - <property name="mnemonic_widget">showmodify</property> + <property name="use-underline">True</property> + <property name="mnemonic-widget">showmodify</property> </object> <packing> - <property name="left_attach">0</property> - <property name="top_attach">5</property> + <property name="left-attach">0</property> + <property name="top-attach">5</property> </packing> </child> <child> <object class="GtkLabel" id="label15"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can-focus">False</property> <property name="halign">end</property> <property name="label" translatable="yes" context="documentinfopage|label15">_Digitally signed:</property> - <property name="use_underline">True</property> - <property name="mnemonic_widget">showsigned</property> + <property name="use-underline">True</property> + <property name="mnemonic-widget">showsigned</property> </object> <packing> - <property name="left_attach">0</property> - <property name="top_attach">7</property> + <property name="left-attach">0</property> + <property name="top-attach">7</property> </packing> </child> <child> <object class="GtkLabel" id="label16"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can-focus">False</property> <property name="halign">end</property> <property name="label" translatable="yes" context="documentinfopage|label16">Last pri_nted:</property> - <property name="use_underline">True</property> - <property name="mnemonic_widget">showprint</property> + <property name="use-underline">True</property> + <property name="mnemonic-widget">showprint</property> </object> <packing> - <property name="left_attach">0</property> - <property name="top_attach">8</property> + <property name="left-attach">0</property> + <property name="top-attach">8</property> </packing> </child> <child> <object class="GtkLabel" id="label17"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can-focus">False</property> <property name="halign">end</property> <property name="label" translatable="yes" context="documentinfopage|label17">Total _editing time:</property> - <property name="use_underline">True</property> - <property name="mnemonic_widget">showedittime</property> + <property name="use-underline">True</property> + <property name="mnemonic-widget">showedittime</property> </object> <packing> - <property name="left_attach">0</property> - <property name="top_attach">9</property> + <property name="left-attach">0</property> + <property name="top-attach">9</property> </packing> </child> <child> <object class="GtkLabel" id="label18"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can-focus">False</property> <property name="halign">end</property> <property name="label" translatable="yes" context="documentinfopage|label18">Re_vision number:</property> - <property name="use_underline">True</property> - <property name="mnemonic_widget">showrevision</property> + <property name="use-underline">True</property> + <property name="mnemonic-widget">showrevision</property> </object> <packing> - <property name="left_attach">0</property> - <property name="top_attach">10</property> + <property name="left-attach">0</property> + <property name="top-attach">10</property> </packing> </child> <child> <object class="GtkLabel" id="showcreate"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can-focus">False</property> <property name="hexpand">True</property> <property name="selectable">True</property> <property name="xalign">0</property> </object> <packing> - <property name="left_attach">1</property> - <property name="top_attach">4</property> + <property name="left-attach">1</property> + <property name="top-attach">4</property> <property name="width">2</property> </packing> </child> <child> <object class="GtkLabel" id="showmodify"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can-focus">False</property> <property name="hexpand">True</property> <property name="selectable">True</property> <property name="xalign">0</property> </object> <packing> - <property name="left_attach">1</property> - <property name="top_attach">5</property> + <property name="left-attach">1</property> + <property name="top-attach">5</property> <property name="width">2</property> </packing> </child> <child> <object class="GtkLabel" id="showsigned"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can-focus">False</property> <property name="hexpand">True</property> <property name="label" translatable="yes" context="documentinfopage|showsigned">Multiply signed document</property> <property name="selectable">True</property> <property name="xalign">0</property> </object> <packing> - <property name="left_attach">1</property> - <property name="top_attach">7</property> + <property name="left-attach">1</property> + <property name="top-attach">7</property> </packing> </child> <child> <object class="GtkLabel" id="showprint"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can-focus">False</property> <property name="hexpand">True</property> <property name="selectable">True</property> <property name="xalign">0</property> </object> <packing> - <property name="left_attach">1</property> - <property name="top_attach">8</property> + <property name="left-attach">1</property> + <property name="top-attach">8</property> </packing> </child> <child> <object class="GtkLabel" id="showedittime"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can-focus">False</property> <property name="hexpand">True</property> <property name="selectable">True</property> <property name="xalign">0</property> </object> <packing> - <property name="left_attach">1</property> - <property name="top_attach">9</property> + <property name="left-attach">1</property> + <property name="top-attach">9</property> <property name="width">2</property> </packing> </child> <child> <object class="GtkLabel" id="showrevision"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can-focus">False</property> <property name="hexpand">True</property> <property name="selectable">True</property> <property name="xalign">0</property> </object> <packing> - <property name="left_attach">1</property> - <property name="top_attach">10</property> + <property name="left-attach">1</property> + <property name="top-attach">10</property> <property name="width">2</property> </packing> </child> <child> <object class="GtkCheckButton" id="userdatacb"> <property name="label" translatable="yes" context="documentinfopage|userdatacb">_Apply user data</property> - <property name="can_focus">True</property> - <property name="receives_default">False</property> - <property name="no_show_all">True</property> - <property name="use_underline">True</property> - <property name="draw_indicator">True</property> + <property name="can-focus">True</property> + <property name="receives-default">False</property> + <property name="no-show-all">True</property> + <property name="use-underline">True</property> + <property name="draw-indicator">True</property> <child internal-child="accessible"> <object class="AtkObject" id="userdatacb-atkobject"> <property name="AtkObject::accessible-description" translatable="yes" context="documentinfopage|extended_tip|userdatacb">Saves the user's full name with the file. You can edit the name by choosing Tools - Options - %PRODUCTNAME - User Data.</property> @@ -193,31 +193,31 @@ </child> </object> <packing> - <property name="left_attach">1</property> - <property name="top_attach">11</property> + <property name="left-attach">1</property> + <property name="top-attach">11</property> </packing> </child> <child> <object class="GtkCheckButton" id="thumbnailsavecb"> <property name="label" translatable="yes" context="documentinfopage|thumbnailsavecb">Save preview image with this document</property> <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">False</property> - <property name="no_show_all">True</property> - <property name="use_underline">True</property> - <property name="draw_indicator">True</property> + <property name="can-focus">True</property> + <property name="receives-default">False</property> + <property name="no-show-all">True</property> + <property name="use-underline">True</property> + <property name="draw-indicator">True</property> </object> <packing> - <property name="left_attach">1</property> - <property name="top_attach">12</property> + <property name="left-attach">1</property> + <property name="top-attach">12</property> </packing> </child> <child> <object class="GtkButton" id="reset"> <property name="label" translatable="yes" context="documentinfopage|reset">Reset Properties</property> - <property name="can_focus">True</property> - <property name="receives_default">True</property> - <property name="no_show_all">True</property> + <property name="can-focus">True</property> + <property name="receives-default">True</property> + <property name="no-show-all">True</property> <property name="valign">center</property> <child internal-child="accessible"> <object class="AtkObject" id="reset-atkobject"> @@ -226,8 +226,8 @@ </child> </object> <packing> - <property name="left_attach">2</property> - <property name="top_attach">11</property> + <property name="left-attach">2</property> + <property name="top-attach">11</property> <property name="height">2</property> </packing> </child> @@ -235,169 +235,152 @@ <object class="GtkButton" id="signature"> <property name="label" translatable="yes" context="documentinfopage|signature">Di_gital Signatures...</property> <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="has_focus">True</property> - <property name="receives_default">True</property> + <property name="can-focus">True</property> + <property name="has-focus">True</property> + <property name="receives-default">True</property> <property name="valign">center</property> - <property name="use_underline">True</property> + <property name="use-underline">True</property> </object> <packing> - <property name="left_attach">2</property> - <property name="top_attach">6</property> + <property name="left-attach">2</property> + <property name="top-attach">6</property> <property name="height">3</property> </packing> </child> <child> <object class="GtkLabel" id="label11"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can-focus">False</property> <property name="halign">end</property> <property name="label" translatable="yes" context="documentinfopage|label11">_Size:</property> - <property name="use_underline">True</property> - <property name="mnemonic_widget">showsize</property> + <property name="use-underline">True</property> + <property name="mnemonic-widget">showsize</property> </object> <packing> - <property name="left_attach">0</property> - <property name="top_attach">3</property> + <property name="left-attach">0</property> + <property name="top-attach">3</property> </packing> </child> <child> <object class="GtkLabel" id="showsize"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can-focus">False</property> <property name="label" translatable="yes" context="documentinfopage|showsize">unknown</property> <property name="selectable">True</property> <property name="xalign">0</property> </object> <packing> - <property name="left_attach">1</property> - <property name="top_attach">3</property> + <property name="left-attach">1</property> + <property name="top-attach">3</property> <property name="width">2</property> </packing> </child> <child> <object class="GtkLabel" id="label8"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can-focus">False</property> <property name="halign">end</property> <property name="label" translatable="yes" context="documentinfopage|label8">_Location:</property> - <property name="use_underline">True</property> - <property name="mnemonic_widget">showlocation</property> + <property name="use-underline">True</property> </object> <packing> - <property name="left_attach">0</property> - <property name="top_attach">2</property> - </packing> - </child> - <child> - <object class="GtkLabel" id="showlocation"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="hexpand">True</property> - <property name="selectable">True</property> - <property name="ellipsize">middle</property> - <property name="max_width_chars">50</property> - <property name="xalign">0</property> - </object> - <packing> - <property name="left_attach">1</property> - <property name="top_attach">2</property> - <property name="width">2</property> + <property name="left-attach">0</property> + <property name="top-attach">2</property> </packing> </child> <child> <object class="GtkLabel" id="label7"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can-focus">False</property> <property name="halign">end</property> <property name="label" translatable="yes" context="documentinfopage|label7">_Type:</property> - <property name="use_underline">True</property> - <property name="mnemonic_widget">showtype</property> + <property name="use-underline">True</property> + <property name="mnemonic-widget">showtype</property> </object> <packing> - <property name="left_attach">0</property> - <property name="top_attach">1</property> + <property name="left-attach">0</property> + <property name="top-attach">1</property> </packing> </child> <child> <object class="GtkLabel" id="showtype"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can-focus">False</property> <property name="selectable">True</property> <property name="xalign">0</property> </object> <packing> - <property name="left_attach">1</property> - <property name="top_attach">1</property> + <property name="left-attach">1</property> + <property name="top-attach">1</property> </packing> </child> <child> <object class="GtkButton" id="changepass"> <property name="label" translatable="yes" context="documentinfopage|changepass">Change _Password</property> <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">True</property> + <property name="can-focus">True</property> + <property name="receives-default">True</property> <property name="valign">start</property> - <property name="use_underline">True</property> + <property name="use-underline">True</property> </object> <packing> - <property name="left_attach">2</property> - <property name="top_attach">0</property> + <property name="left-attach">2</property> + <property name="top-attach">0</property> <property name="height">2</property> </packing> </child> <child> <object class="GtkLabel" id="templateft"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can-focus">False</property> <property name="halign">end</property> <property name="label" translatable="yes" context="documentinfopage|templateft">Template:</property> - <property name="use_underline">True</property> - <property name="mnemonic_widget">showtemplate</property> + <property name="use-underline">True</property> + <property name="mnemonic-widget">showtemplate</property> </object> <packing> - <property name="left_attach">0</property> - <property name="top_attach">6</property> + <property name="left-attach">0</property> + <property name="top-attach">6</property> </packing> </child> <child> <object class="GtkLabel" id="showtemplate"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can-focus">False</property> <property name="selectable">True</property> - <property name="max_width_chars">56</property> + <property name="max-width-chars">56</property> <property name="xalign">0</property> </object> <packing> - <property name="left_attach">1</property> - <property name="top_attach">6</property> + <property name="left-attach">1</property> + <property name="top-attach">6</property> </packing> </child> <child> - <!-- n-columns=1 n-rows=1 --> + <!-- n-columns=2 n-rows=1 --> <object class="GtkGrid" id="grid1"> <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="column_spacing">12</property> + <property name="can-focus">False</property> + <property name="column-spacing">12</property> <child> <object class="GtkImage" id="icon"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can-focus">False</property> <property name="valign">center</property> <property name="icon-name">missing-image</property> </object> <packing> - <property name="left_attach">0</property> - <property name="top_attach">0</property> + <property name="left-attach">0</property> + <property name="top-attach">0</property> </packing> </child> <child> <object class="GtkLabel" id="nameed"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can-focus">False</property> <property name="selectable">True</property> - <property name="single_line_mode">True</property> - <property name="max_width_chars">56</property> + <property name="single-line-mode">True</property> + <property name="max-width-chars">56</property> <child internal-child="accessible"> <object class="AtkObject" id="nameed-atkobject"> <property name="AtkObject::accessible-description" translatable="yes" context="documentinfopage|extended_tip|nameed">Displays the file name.</property> @@ -405,14 +388,28 @@ </child> </object> <packing> - <property name="left_attach">1</property> - <property name="top_attach">0</property> + <property name="left-attach">1</property> + <property name="top-attach">0</property> </packing> </child> </object> <packing> - <property name="left_attach">1</property> - <property name="top_attach">0</property> + <property name="left-attach">1</property> + <property name="top-attach">0</property> + </packing> + </child> + <child> + <object class="GtkLinkButton" id="showlocation"> + <property name="visible">True</property> + <property name="can-focus">True</property> + <property name="receives-default">True</property> + <property name="relief">none</property> + <property name="xalign">0</property> + </object> + <packing> + <property name="left-attach">1</property> + <property name="top-attach">2</property> + <property name="width">2</property> </packing> </child> <child> |