sw/qa/uitest/writer_tests2/formatCharacter.py |   47 -----
 sw/source/ui/chrdlg/chardlg.cxx               |  211 --------------------------
 sw/source/uibase/inc/chrdlg.hxx               |   30 ---
 sw/uiconfig/swriter/ui/characterproperties.ui |   30 ---
 4 files changed, 3 insertions(+), 315 deletions(-)

New commits:
commit 63315d601296f7c188e920f73b12260d018807d0
Author:     Heiko Tietze <[email protected]>
AuthorDate: Tue Apr 23 17:20:47 2024 +0200
Commit:     Heiko Tietze <[email protected]>
CommitDate: Wed Apr 24 16:13:15 2024 +0200

    Resolves tdf#132253 - Remove hyperlink tab from character dialog
    
    Change-Id: Idb7fa74dbe196262cea64946452043f7de6fa20c
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166553
    Tested-by: Jenkins
    Reviewed-by: Heiko Tietze <[email protected]>

diff --git a/sw/qa/uitest/writer_tests2/formatCharacter.py 
b/sw/qa/uitest/writer_tests2/formatCharacter.py
index 265f7b4df92e..724b8813029e 100644
--- a/sw/qa/uitest/writer_tests2/formatCharacter.py
+++ b/sw/qa/uitest/writer_tests2/formatCharacter.py
@@ -65,8 +65,6 @@ class formatCharacter(UITestCase):
                 xLangFontCTL = xDialog.getChild("cbCTLLanguage")
                 self.assertEqual(get_state_as_dict(xLangFontCTL)["Text"], 
"[None]")
 
-
-
    def test_format_character_tab_font_effects(self):
         with self.ui_test.create_doc_in_start_center("writer"):
 
@@ -115,47 +113,6 @@ class formatCharacter(UITestCase):
                 
self.assertEqual(get_state_as_dict(xEmphasis)["SelectEntryText"], "Dot")
                 
self.assertEqual(get_state_as_dict(xPosition)["SelectEntryText"], "Below text")
 
-
-
-   def test_format_character_tab_hyperlink(self):
-        with self.ui_test.create_doc_in_start_center("writer") as document:
-
-            with 
self.ui_test.execute_dialog_through_command(".uno:FontDialog") as xDialog:
-                xTabs = xDialog.getChild("tabcontrol")
-                select_pos(xTabs, "4")
-
-                xURL = xDialog.getChild("urled")
-                xURL.executeAction("TYPE", 
mkPropertyValues({"TEXT":"libreoffice.org"}))
-                xTexted = xDialog.getChild("texted")
-                xTexted.executeAction("TYPE", 
mkPropertyValues({"TEXT":"LibreOffice"}))
-                xName = xDialog.getChild("nameed")
-                xName.executeAction("TYPE", 
mkPropertyValues({"TEXT":"hyperlink"}))
-
-                xVisited = xDialog.getChild("visitedlb")
-                select_by_text(xVisited, "Bullets")
-                xUnVisited = xDialog.getChild("unvisitedlb")
-                select_by_text(xUnVisited, "Bullets")
-
-
-            self.xUITest.executeCommand(".uno:GoLeft")
-            self.assertEqual(document.Text.String[0:11], "LibreOffice")
-
-            with 
self.ui_test.execute_dialog_through_command(".uno:FontDialog", 
close_button="cancel") as xDialog:
-                xTabs = xDialog.getChild("tabcontrol")
-                select_pos(xTabs, "4")
-                xURL = xDialog.getChild("urled")
-                xTexted = xDialog.getChild("texted")
-                xName = xDialog.getChild("nameed")
-                xVisited = xDialog.getChild("visitedlb")
-                xUnVisited = xDialog.getChild("unvisitedlb")
-
-                self.assertEqual(get_state_as_dict(xURL)["Text"], 
"http://libreoffice.org/";)
-                self.assertEqual(get_state_as_dict(xTexted)["Text"], 
"LibreOffice")
-                self.assertEqual(get_state_as_dict(xName)["Text"], "hyperlink")
-                
self.assertEqual(get_state_as_dict(xVisited)["SelectEntryText"], "Bullets")
-                
self.assertEqual(get_state_as_dict(xUnVisited)["SelectEntryText"], "Bullets")
-
-
    def test_format_character_tab_asian_layout(self):
         with self.ui_test.create_doc_in_start_center("writer"):
 
@@ -221,8 +178,6 @@ class formatCharacter(UITestCase):
                 self.assertEqual(get_state_as_dict(xFitToLine)["Selected"], 
"true")
                 
self.assertEqual(get_state_as_dict(xNoHyphenation)["Selected"], "true")
 
-
-
    def test_format_character_tab_position_scalewidthsb(self):
         with self.ui_test.create_doc_in_start_center("writer"):
 
@@ -240,6 +195,4 @@ class formatCharacter(UITestCase):
                 xScalewidth = xDialog.getChild("scalewidthsb")
                 self.assertEqual(get_state_as_dict(xScalewidth)["Text"], 
"101%")
 
-
-
 # vim: set shiftwidth=4 softtabstop=4 expandtab:
diff --git a/sw/source/ui/chrdlg/chardlg.cxx b/sw/source/ui/chrdlg/chardlg.cxx
index 14833d719282..f57a78d735c9 100644
--- a/sw/source/ui/chrdlg/chardlg.cxx
+++ b/sw/source/ui/chrdlg/chardlg.cxx
@@ -17,37 +17,18 @@
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
 
-#include <memory>
-#include <hintids.hxx>
-
-#include <comphelper/fileurl.hxx>
-#include <svl/urihelper.hxx>
-#include <svl/stritem.hxx>
 #include <editeng/flstitem.hxx>
-#include <sfx2/htmlmode.hxx>
 #include <svl/cjkoptions.hxx>
-#include <svl/macitem.hxx>
-#include <osl/diagnose.h>
 
 #include <cmdid.h>
 #include <swtypes.hxx>
 #include <view.hxx>
 #include <docsh.hxx>
-#include <uitool.hxx>
-#include <fmtinfmt.hxx>
-#include <macassgn.hxx>
 #include <chrdlg.hxx>
-#include <swmodule.hxx>
-#include <poolfmt.hxx>
 
 #include <strings.hrc>
 #include <chrdlgmodes.hxx>
-#include <com/sun/star/ui/dialogs/TemplateDescription.hpp>
-#include <com/sun/star/ui/dialogs/XFilePicker3.hpp>
-#include <SwStyleNameMapper.hxx>
 #include <sfx2/filedlghelper.hxx>
-#include <sfx2/frame.hxx>
-#include <comphelper/lok.hxx>
 
 #include <svx/svxdlg.hxx>
 #include <svx/flagsdef.hxx>
@@ -73,13 +54,11 @@ SwCharDlg::SwCharDlg(weld::Window* pParent, SwView& rVw, 
const SfxItemSet& rCore
     AddTabPage("fonteffects", 
pFact->GetTabPageCreatorFunc(RID_SVXPAGE_CHAR_EFFECTS), nullptr);
     AddTabPage("position", pFact->GetTabPageCreatorFunc( 
RID_SVXPAGE_CHAR_POSITION ), nullptr );
     AddTabPage("asianlayout", pFact->GetTabPageCreatorFunc( 
RID_SVXPAGE_CHAR_TWOLINES ), nullptr );
-    AddTabPage("hyperlink", SwCharURLPage::Create, nullptr);
     AddTabPage("background", pFact->GetTabPageCreatorFunc( RID_SVXPAGE_BKG ), 
nullptr );
     AddTabPage("borders", pFact->GetTabPageCreatorFunc( RID_SVXPAGE_BORDER ), 
nullptr );
 
     if (m_nDialogMode == SwCharDlgMode::Draw || m_nDialogMode == 
SwCharDlgMode::Ann)
     {
-        RemoveTabPage("hyperlink");
         RemoveTabPage("asianlayout");
     }
     else
@@ -135,194 +114,4 @@ void SwCharDlg::PageCreated(const OUString& rId, 
SfxTabPage &rPage)
     }
 }
 
-SwCharURLPage::SwCharURLPage(weld::Container* pPage, weld::DialogController* 
pController, const SfxItemSet& rCoreSet)
-    : SfxTabPage(pPage, pController, "modules/swriter/ui/charurlpage.ui", 
"CharURLPage", &rCoreSet)
-    , m_bModified(false)
-    , m_xURLED(m_xBuilder->weld_entry("urled"))
-    , m_xTextFT(m_xBuilder->weld_label("textft"))
-    , m_xTextED(m_xBuilder->weld_entry("texted"))
-    , m_xNameED(m_xBuilder->weld_entry("nameed"))
-    , m_xTargetFrameLB(m_xBuilder->weld_combo_box("targetfrmlb"))
-    , m_xURLPB(m_xBuilder->weld_button("urlpb"))
-    , m_xEventPB(m_xBuilder->weld_button("eventpb"))
-    , m_xVisitedLB(m_xBuilder->weld_combo_box("visitedlb"))
-    , m_xNotVisitedLB(m_xBuilder->weld_combo_box("unvisitedlb"))
-    , m_xCharStyleContainer(m_xBuilder->weld_widget("charstyle"))
-{
-    // tdf#120188 like SfxManageStyleSheetPage limit the width of the style 
combos
-    const int nMaxWidth(m_xVisitedLB->get_approximate_digit_width() * 50);
-    m_xVisitedLB->set_size_request(nMaxWidth , -1);
-    m_xNotVisitedLB->set_size_request(nMaxWidth , -1);
-
-    const SfxUInt16Item* pItem = rCoreSet.GetItemIfSet(SID_HTML_MODE, false);
-    if (!pItem)
-    {
-        if (SfxObjectShell* pShell = SfxObjectShell::Current())
-            pItem = pShell->GetItem(SID_HTML_MODE);
-    }
-    if (pItem)
-    {
-        sal_uInt16 nHtmlMode = pItem->GetValue();
-        if (HTMLMODE_ON & nHtmlMode)
-            m_xCharStyleContainer->hide();
-    }
-
-    if(comphelper::LibreOfficeKit::isActive())
-        m_xURLPB->hide(); // Hide browse button in online (not supported yet)
-    else
-        m_xURLPB->connect_clicked(LINK( this, SwCharURLPage, InsertFileHdl));
-    m_xEventPB->connect_clicked(LINK( this, SwCharURLPage, EventHdl));
-
-    if (SwView* pView = GetActiveView())
-    {
-        ::FillCharStyleListBox(*m_xVisitedLB, pView->GetDocShell());
-        ::FillCharStyleListBox(*m_xNotVisitedLB, pView->GetDocShell());
-    }
-    m_xVisitedLB->set_active_id(OUString::number(RES_POOLCHR_INET_VISIT));
-    m_xVisitedLB->save_value();
-    m_xNotVisitedLB->set_active_id(OUString::number(RES_POOLCHR_INET_NORMAL));
-    m_xNotVisitedLB->save_value();
-
-    TargetList aList;
-    SfxFrame::GetDefaultTargetList(aList);
-
-    m_xTargetFrameLB->freeze();
-    size_t nCount = aList.size();
-    for (size_t i = 0; i < nCount; ++i)
-    {
-        m_xTargetFrameLB->append_text(aList.at(i));
-    }
-    m_xTargetFrameLB->thaw();
-}
-
-SwCharURLPage::~SwCharURLPage()
-{
-}
-
-void SwCharURLPage::Reset(const SfxItemSet* rSet)
-{
-    if (const SwFormatINetFormat* pINetFormat = 
rSet->GetItemIfSet(RES_TXTATR_INETFMT, false))
-    {
-        m_xURLED->set_text(INetURLObject::decode(pINetFormat->GetValue(),
-            INetURLObject::DecodeMechanism::Unambiguous));
-        m_xURLED->save_value();
-        m_xNameED->set_text(pINetFormat->GetName());
-        m_xNameED->save_value();
-
-        OUString sEntry = pINetFormat->GetVisitedFormat();
-        if (sEntry.isEmpty())
-        {
-            OSL_ENSURE( false, "<SwCharURLPage::Reset(..)> - missing visited 
character format at hyperlink attribute" );
-            SwStyleNameMapper::FillUIName(RES_POOLCHR_INET_VISIT, sEntry);
-        }
-        m_xVisitedLB->set_active_text(sEntry);
-
-        sEntry = pINetFormat->GetINetFormat();
-        if (sEntry.isEmpty())
-        {
-            OSL_ENSURE( false, "<SwCharURLPage::Reset(..)> - missing unvisited 
character format at hyperlink attribute" );
-            SwStyleNameMapper::FillUIName(RES_POOLCHR_INET_NORMAL, sEntry);
-        }
-        m_xNotVisitedLB->set_active_text(sEntry);
-
-        m_xTargetFrameLB->set_entry_text(pINetFormat->GetTargetFrame());
-        m_xVisitedLB->save_value();
-        m_xNotVisitedLB->save_value();
-        m_xTargetFrameLB->save_value();
-        m_oINetMacroTable.emplace();
-
-        if( pINetFormat->GetMacroTable() )
-            m_oINetMacroTable = *pINetFormat->GetMacroTable();
-    }
-    if (const SfxStringItem* pItem = rSet->GetItemIfSet(FN_PARAM_SELECTION, 
false))
-    {
-        m_xTextED->set_text(pItem->GetValue());
-        m_xTextFT->set_sensitive(false);
-        m_xTextED->set_sensitive(false);
-    }
-}
-
-bool SwCharURLPage::FillItemSet(SfxItemSet* rSet)
-{
-    OUString sURL = m_xURLED->get_text();
-    if (!sURL.isEmpty())
-    {
-        sURL = URIHelper::SmartRel2Abs(INetURLObject(), sURL, Link<OUString *, 
bool>(), false );
-        // #i100683# file URLs should be normalized in the UI
-        if ( comphelper::isFileUrl(sURL) )
-            sURL = URIHelper::simpleNormalizedMakeRelative(OUString(), sURL);
-    }
-
-    SwFormatINetFormat aINetFormat(sURL, m_xTargetFrameLB->get_active_text());
-    aINetFormat.SetName(m_xNameED->get_text());
-    bool bURLModified = m_xURLED->get_value_changed_from_saved();
-    bool bNameModified = m_xNameED->get_value_changed_from_saved();
-    bool bTargetModified = m_xTargetFrameLB->get_value_changed_from_saved();
-    m_bModified = bURLModified || bNameModified || bTargetModified;
-
-    // set valid settings first
-    OUString sEntry = m_xVisitedLB->get_active_text();
-    sal_uInt16 nId = SwStyleNameMapper::GetPoolIdFromUIName( sEntry, 
SwGetPoolIdFromName::ChrFmt);
-    aINetFormat.SetVisitedFormatAndId( sEntry, nId );
-
-    sEntry = m_xNotVisitedLB->get_active_text();
-    nId = SwStyleNameMapper::GetPoolIdFromUIName( sEntry, 
SwGetPoolIdFromName::ChrFmt);
-    aINetFormat.SetINetFormatAndId( sEntry, nId );
-
-    if (m_oINetMacroTable && !m_oINetMacroTable->empty())
-        aINetFormat.SetMacroTable(&*m_oINetMacroTable);
-
-    if (m_xVisitedLB->get_value_changed_from_saved())
-        m_bModified = true;
-
-    if (m_xNotVisitedLB->get_value_changed_from_saved())
-        m_bModified = true;
-
-    if (bNameModified)
-    {
-        m_bModified = true;
-        rSet->Put(SfxStringItem(FN_PARAM_SELECTION, m_xTextED->get_text()));
-    }
-    if(m_bModified)
-        rSet->Put(aINetFormat);
-    return m_bModified;
-}
-
-std::unique_ptr<SfxTabPage> SwCharURLPage::Create(weld::Container* pPage, 
weld::DialogController* pController, const SfxItemSet* rAttrSet)
-{
-    return std::make_unique<SwCharURLPage>(pPage, pController, *rAttrSet);
-}
-
-IMPL_LINK_NOARG(SwCharURLPage, InsertFileHdl, weld::Button&, void)
-{
-    FileDialogHelper aDlgHelper(TemplateDescription::FILEOPEN_SIMPLE,
-                                FileDialogFlags::NONE, GetFrameWeld());
-    aDlgHelper.SetContext(FileDialogHelper::WriterInsertHyperlink);
-    if( aDlgHelper.Execute() == ERRCODE_NONE )
-    {
-        const Reference<XFilePicker3>& xFP = aDlgHelper.GetFilePicker();
-        m_xURLED->set_text(xFP->getSelectedFiles().getConstArray()[0]);
-    }
-}
-
-IMPL_LINK_NOARG(SwCharURLPage, EventHdl, weld::Button&, void)
-{
-    SwView* pView = GetActiveView();
-    if (!pView)
-        return;
-
-    SvxMacroItem aItem( RES_FRMMACRO );
-    if( !m_oINetMacroTable )
-        m_oINetMacroTable.emplace();
-    else
-        aItem.SetMacroTable( *m_oINetMacroTable );
-
-    SwMacroAssignDlg::INetFormatDlg(GetFrameWeld(), pView->GetWrtShell(), 
aItem,
-        [this] (const SvxMacroItem& rItem)
-        {
-            m_oINetMacroTable.emplace(rItem.GetMacroTable());
-            m_bModified = true;
-        });
-}
-
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/uibase/inc/chrdlg.hxx b/sw/source/uibase/inc/chrdlg.hxx
index cf37a9496af8..532b62d6445f 100644
--- a/sw/source/uibase/inc/chrdlg.hxx
+++ b/sw/source/uibase/inc/chrdlg.hxx
@@ -40,36 +40,6 @@ public:
     virtual void PageCreated(const OUString& rId, SfxTabPage &rPage) override;
 };
 
-class SwCharURLPage final : public SfxTabPage
-{
-    std::optional<SvxMacroTableDtor> m_oINetMacroTable;
-    bool                m_bModified;
-
-    std::unique_ptr<weld::Entry> m_xURLED;
-    std::unique_ptr<weld::Label> m_xTextFT;
-    std::unique_ptr<weld::Entry> m_xTextED;
-    std::unique_ptr<weld::Entry> m_xNameED;
-    std::unique_ptr<weld::ComboBox> m_xTargetFrameLB;
-    std::unique_ptr<weld::Button> m_xURLPB;
-    std::unique_ptr<weld::Button> m_xEventPB;
-    std::unique_ptr<weld::ComboBox> m_xVisitedLB;
-    std::unique_ptr<weld::ComboBox> m_xNotVisitedLB;
-    std::unique_ptr<weld::Widget> m_xCharStyleContainer;
-
-    DECL_LINK(InsertFileHdl, weld::Button&, void);
-    DECL_LINK(EventHdl, weld::Button&, void);
-
-public:
-    SwCharURLPage(weld::Container* pPage, weld::DialogController* pController, 
const SfxItemSet& rSet);
-
-    virtual ~SwCharURLPage() override;
-    static std::unique_ptr<SfxTabPage> Create(weld::Container* pPage, 
weld::DialogController* pController,
-                                     const SfxItemSet* rAttrSet);
-
-    virtual bool        FillItemSet( SfxItemSet* rSet ) override;
-    virtual void        Reset( const SfxItemSet* rSet ) override;
-};
-
 #endif
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/uiconfig/swriter/ui/characterproperties.ui 
b/sw/uiconfig/swriter/ui/characterproperties.ui
index 414edb773b86..1f13c9b18fe6 100644
--- a/sw/uiconfig/swriter/ui/characterproperties.ui
+++ b/sw/uiconfig/swriter/ui/characterproperties.ui
@@ -220,30 +220,6 @@
                 <property name="position">4</property>
               </packing>
             </child>
-            <child type="tab">
-              <object class="GtkLabel" id="hyperlink">
-                <property name="visible">True</property>
-                <property name="can-focus">False</property>
-                <property name="label" translatable="yes" 
context="characterproperties|hyperlink">Hyperlink</property>
-              </object>
-              <packing>
-                <property name="position">4</property>
-                <property name="tab-fill">False</property>
-              </packing>
-            </child>
-            <child>
-              <!-- n-columns=1 n-rows=1 -->
-              <object class="GtkGrid">
-                <property name="visible">True</property>
-                <property name="can-focus">False</property>
-                <child>
-                  <placeholder/>
-                </child>
-              </object>
-              <packing>
-                <property name="position">5</property>
-              </packing>
-            </child>
             <child type="tab">
               <object class="GtkLabel" id="background">
                 <property name="visible">True</property>
@@ -251,7 +227,7 @@
                 <property name="label" translatable="yes" 
context="characterproperties|background">Highlighting</property>
               </object>
               <packing>
-                <property name="position">5</property>
+                <property name="position">4</property>
                 <property name="tab-fill">False</property>
               </packing>
             </child>
@@ -265,7 +241,7 @@
                 </child>
               </object>
               <packing>
-                <property name="position">6</property>
+                <property name="position">5</property>
               </packing>
             </child>
             <child type="tab">
@@ -275,7 +251,7 @@
                 <property name="label" translatable="yes" 
context="characterproperties|borders">Borders</property>
               </object>
               <packing>
-                <property name="position">6</property>
+                <property name="position">5</property>
                 <property name="tab-fill">False</property>
               </packing>
             </child>

Reply via email to