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>
