[Libreoffice-commits] core.git: cui/source cui/uiconfig include/svx svx/source

Caolán McNamara (via logerrit) logerrit at kemper.freedesktop.org
Tue Mar 26 09:06:16 UTC 2019


 cui/source/dialogs/cuiimapwnd.cxx |   49 +++++++++++++++-----------------------
 cui/source/factory/dlgfact.cxx    |   23 ++++++++++-------
 cui/source/factory/dlgfact.hxx    |   11 ++++++--
 cui/source/inc/cuiimapwnd.hxx     |   38 ++++++++++++-----------------
 cui/uiconfig/ui/cuiimapdlg.ui     |   34 +++++++++++++++++---------
 include/svx/svxdlg.hxx            |    2 -
 svx/source/dialog/imapwnd.cxx     |    4 +--
 7 files changed, 83 insertions(+), 78 deletions(-)

New commits:
commit 621538e4cb6b4e05e38af54d70d08b12ab85d290
Author:     Caolán McNamara <caolanm at redhat.com>
AuthorDate: Mon Mar 25 21:42:04 2019 +0000
Commit:     Caolán McNamara <caolanm at redhat.com>
CommitDate: Tue Mar 26 10:05:48 2019 +0100

    weld URLDlg
    
    Change-Id: I3dd002a97d7c90e62c09f65bfc0333892bbd817c
    Reviewed-on: https://gerrit.libreoffice.org/69718
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/cui/source/dialogs/cuiimapwnd.cxx b/cui/source/dialogs/cuiimapwnd.cxx
index 5fbc6e428f95..516b35c7e55c 100644
--- a/cui/source/dialogs/cuiimapwnd.cxx
+++ b/cui/source/dialogs/cuiimapwnd.cxx
@@ -45,44 +45,35 @@
 |*
 \************************************************************************/
 
-URLDlg::URLDlg( vcl::Window* pWindow, const OUString& rURL, const OUString& rAlternativeText, const OUString& rDescription, const OUString& rTarget, const OUString& rName, TargetList& rTargetList )
-: ModalDialog(pWindow, "IMapDialog", "cui/ui/cuiimapdlg.ui")
+URLDlg::URLDlg(weld::Window* pWindow, const OUString& rURL, const OUString& rAlternativeText,
+               const OUString& rDescription, const OUString& rTarget, const OUString& rName,
+               TargetList& rTargetList)
+    : GenericDialogController(pWindow, "cui/ui/cuiimapdlg.ui", "IMapDialog")
+    , m_xEdtURL(m_xBuilder->weld_entry("urlentry"))
+    , m_xCbbTargets(m_xBuilder->weld_combo_box("frameCB"))
+    , m_xEdtName(m_xBuilder->weld_entry("nameentry"))
+    , m_xEdtAlternativeText(m_xBuilder->weld_entry("textentry"))
+    , m_xEdtDescription(m_xBuilder->weld_text_view("descTV"))
 {
-    get(m_pEdtURL, "urlentry");
-    get(m_pCbbTargets, "frameCB");
-    get(m_pEdtName, "nameentry");
-    get(m_pEdtAlternativeText, "textentry");
-    get(m_pEdtDescription, "descTV");
-    m_pEdtDescription->set_height_request(m_pEdtDescription->GetTextHeight() * 5);
-    m_pEdtDescription->set_width_request(m_pEdtDescription->approximate_char_width() * 60);
+    m_xEdtDescription->set_size_request(m_xEdtDescription->get_approximate_digit_width() * 51,
+                                        m_xEdtDescription->get_height_rows(5));
 
-    m_pEdtURL->SetText( rURL );
-    m_pEdtAlternativeText->SetText( rAlternativeText );
-    m_pEdtDescription->SetText( rDescription );
-    m_pEdtName->SetText( rName );
+    m_xEdtURL->set_text( rURL );
+    m_xEdtAlternativeText->set_text( rAlternativeText );
+    m_xEdtDescription->set_text( rDescription );
+    m_xEdtName->set_text( rName );
 
-    for(OUString & i : rTargetList)
-        m_pCbbTargets->InsertEntry( i );
+    for (const OUString& a : rTargetList)
+        m_xCbbTargets->append_text(a);
 
-    if( rTarget.isEmpty() )
-        m_pCbbTargets->SetText( "_self");
+    if (rTarget.isEmpty())
+        m_xCbbTargets->set_entry_text("_self");
     else
-        m_pCbbTargets->SetText( rTarget );
+        m_xCbbTargets->set_entry_text(rTarget);
 }
 
 URLDlg::~URLDlg()
 {
-    disposeOnce();
-}
-
-void URLDlg::dispose()
-{
-    m_pEdtURL.clear();
-    m_pCbbTargets.clear();
-    m_pEdtName.clear();
-    m_pEdtAlternativeText.clear();
-    m_pEdtDescription.clear();
-    ModalDialog::dispose();
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cui/source/factory/dlgfact.cxx b/cui/source/factory/dlgfact.cxx
index 08fea16c4049..a862bea608ab 100644
--- a/cui/source/factory/dlgfact.cxx
+++ b/cui/source/factory/dlgfact.cxx
@@ -152,7 +152,10 @@ short AbstractGalleryIdDialog_Impl::Execute()
     return m_xDlg->run();
 }
 
-IMPL_ABSTDLG_BASE(AbstractURLDlg_Impl);
+short AbstractURLDlg_Impl::Execute()
+{
+    return m_xDlg->run();
+}
 
 short AbstractSvxSearchSimilarityDialog_Impl::Execute()
 {
@@ -537,27 +540,27 @@ sal_uInt32 AbstractGalleryIdDialog_Impl::GetId() const
 
 OUString AbstractURLDlg_Impl::GetURL() const
 {
-    return pDlg->GetURL();
+    return m_xDlg->GetURL();
 }
 
 OUString AbstractURLDlg_Impl::GetAltText() const
 {
-    return pDlg->GetAltText();
+    return m_xDlg->GetAltText();
 }
 
 OUString AbstractURLDlg_Impl::GetDesc() const
 {
-    return pDlg->GetDesc();
+    return m_xDlg->GetDesc();
 }
 
 OUString AbstractURLDlg_Impl::GetTarget() const
 {
-    return pDlg->GetTarget();
+    return m_xDlg->GetTarget();
 }
 
 OUString AbstractURLDlg_Impl::GetName() const
 {
-    return pDlg->GetName();
+    return m_xDlg->GetName();
 }
 
 sal_uInt16 AbstractSvxSearchSimilarityDialog_Impl::GetOther()
@@ -1098,14 +1101,14 @@ VclPtr<VclAbstractDialog> AbstractDialogFactory_Impl::CreateGalleryThemeProperti
                                                          pParent, pData, pItemSet));
 }
 
-VclPtr<AbstractURLDlg> AbstractDialogFactory_Impl::CreateURLDialog( vcl::Window* pParent,
+VclPtr<AbstractURLDlg> AbstractDialogFactory_Impl::CreateURLDialog(weld::Window* pParent,
                                             const OUString& rURL, const OUString& rAltText, const OUString& rDescription,
                                             const OUString& rTarget, const OUString& rName,
                                             TargetList& rTargetList )
 {
-    VclPtrInstance<URLDlg> pDlg( pParent, rURL, rAltText, rDescription,
-                                 rTarget, rName, rTargetList);
-    return VclPtr<AbstractURLDlg_Impl>::Create( pDlg );
+    return VclPtr<AbstractURLDlg_Impl>::Create(std::make_unique<URLDlg>(pParent, rURL, rAltText, rDescription,
+                                                                        rTarget, rName, rTargetList));
+
 }
 
 VclPtr<SfxAbstractTabDialog> AbstractDialogFactory_Impl::CreateTabItemDialog(weld::Window* pParent,
diff --git a/cui/source/factory/dlgfact.hxx b/cui/source/factory/dlgfact.hxx
index dae667cd312e..13fa7d39c237 100644
--- a/cui/source/factory/dlgfact.hxx
+++ b/cui/source/factory/dlgfact.hxx
@@ -283,7 +283,14 @@ public:
 class URLDlg;
 class AbstractURLDlg_Impl :public AbstractURLDlg
 {
-    DECL_ABSTDLG_BASE(AbstractURLDlg_Impl,URLDlg)
+protected:
+    std::unique_ptr<URLDlg> m_xDlg;
+public:
+    explicit AbstractURLDlg_Impl(std::unique_ptr<URLDlg> p)
+        : m_xDlg(std::move(p))
+    {
+    }
+    virtual short Execute() override;
     virtual OUString      GetURL() const override;
     virtual OUString      GetAltText() const override;
     virtual OUString      GetDesc() const override;
@@ -731,7 +738,7 @@ public:
     virtual VclPtr<VclAbstractDialog> CreateGalleryThemePropertiesDialog(weld::Window* pParent,
                                             ExchangeData* pData,
                                             SfxItemSet* pItemSet) override;
-    virtual VclPtr<AbstractURLDlg> CreateURLDialog( vcl::Window* pParent,
+    virtual VclPtr<AbstractURLDlg> CreateURLDialog(weld::Window* pParent,
                                             const OUString& rURL, const OUString& rAltText, const OUString& rDescription,
                                             const OUString& rTarget, const OUString& rName,
                                             TargetList& rTargetList ) override;
diff --git a/cui/source/inc/cuiimapwnd.hxx b/cui/source/inc/cuiimapwnd.hxx
index 8938a909f15c..bc1eb8721035 100644
--- a/cui/source/inc/cuiimapwnd.hxx
+++ b/cui/source/inc/cuiimapwnd.hxx
@@ -19,36 +19,30 @@
 #ifndef INCLUDED_CUI_SOURCE_INC_CUIIMAPWND_HXX
 #define INCLUDED_CUI_SOURCE_INC_CUIIMAPWND_HXX
 
-#include <vcl/dialog.hxx>
-#include <vcl/combobox.hxx>
-#include <vcl/button.hxx>
-#include <vcl/menu.hxx>
-#include <vcl/vclmedit.hxx>
-
+#include <vcl/weld.hxx>
 #include <sfx2/frame.hxx>
 
-class URLDlg : public ModalDialog
+class URLDlg : public weld::GenericDialogController
 {
-    VclPtr<Edit>                m_pEdtURL;
-    VclPtr<ComboBox>            m_pCbbTargets;
-    VclPtr<Edit>                m_pEdtName;
-    VclPtr<Edit>                m_pEdtAlternativeText;
-    VclPtr<VclMultiLineEdit>       m_pEdtDescription;
+    std::unique_ptr<weld::Entry> m_xEdtURL;
+    std::unique_ptr<weld::ComboBox> m_xCbbTargets;
+    std::unique_ptr<weld::Entry> m_xEdtName;
+    std::unique_ptr<weld::Entry> m_xEdtAlternativeText;
+    std::unique_ptr<weld::TextView> m_xEdtDescription;
 
 public:
 
-                        URLDlg( vcl::Window* pWindow,
-                                const OUString& rURL, const OUString& rAlternativeText, const OUString& rDescription,
-                                const OUString& rTarget, const OUString& rName,
-                                TargetList& rTargetList );
+                        URLDlg(weld::Window* pWindow,
+                               const OUString& rURL, const OUString& rAlternativeText, const OUString& rDescription,
+                               const OUString& rTarget, const OUString& rName,
+                               TargetList& rTargetList);
     virtual             ~URLDlg() override;
-    virtual void        dispose() override;
 
-    OUString            GetURL() const { return m_pEdtURL->GetText(); }
-    OUString            GetAltText() const { return m_pEdtAlternativeText->GetText(); }
-    OUString            GetDesc() const { return m_pEdtDescription->GetText(); }
-    OUString            GetTarget() const { return m_pCbbTargets->GetText(); }
-    OUString            GetName() const { return m_pEdtName->GetText(); }
+    OUString            GetURL() const { return m_xEdtURL->get_text(); }
+    OUString            GetAltText() const { return m_xEdtAlternativeText->get_text(); }
+    OUString            GetDesc() const { return m_xEdtDescription->get_text(); }
+    OUString            GetTarget() const { return m_xCbbTargets->get_active_text(); }
+    OUString            GetName() const { return m_xEdtName->get_text(); }
 };
 
 #endif
diff --git a/cui/uiconfig/ui/cuiimapdlg.ui b/cui/uiconfig/ui/cuiimapdlg.ui
index 602155c6ab3d..e17cd9e2f430 100644
--- a/cui/uiconfig/ui/cuiimapdlg.ui
+++ b/cui/uiconfig/ui/cuiimapdlg.ui
@@ -1,12 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.18.3 -->
+<!-- Generated with glade 3.22.1 -->
 <interface domain="cui">
   <requires lib="gtk+" version="3.18"/>
   <object class="GtkDialog" id="IMapDialog">
     <property name="can_focus">False</property>
     <property name="border_width">6</property>
     <property name="title" translatable="yes" context="cuiimapdlg|IMapDialog">Properties</property>
+    <property name="modal">True</property>
+    <property name="default_width">0</property>
+    <property name="default_height">0</property>
     <property name="type_hint">dialog</property>
+    <child>
+      <placeholder/>
+    </child>
     <child internal-child="vbox">
       <object class="GtkBox" id="dialog-vbox1">
         <property name="can_focus">False</property>
@@ -92,10 +98,10 @@
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
                     <property name="hexpand">True</property>
-                    <property name="xalign">0</property>
                     <property name="label" translatable="yes" context="cuiimapdlg|label1">_URL:</property>
                     <property name="use_underline">True</property>
                     <property name="mnemonic_widget">urlentry</property>
+                    <property name="xalign">0</property>
                   </object>
                   <packing>
                     <property name="expand">False</property>
@@ -108,6 +114,7 @@
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="hexpand">True</property>
+                    <property name="activates_default">True</property>
                   </object>
                   <packing>
                     <property name="expand">False</property>
@@ -133,10 +140,10 @@
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
                     <property name="hexpand">True</property>
-                    <property name="xalign">0</property>
                     <property name="label" translatable="yes" context="cuiimapdlg|label2">F_rame:</property>
                     <property name="use_underline">True</property>
                     <property name="mnemonic_widget">frameCB</property>
+                    <property name="xalign">0</property>
                   </object>
                   <packing>
                     <property name="expand">False</property>
@@ -145,14 +152,15 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkComboBox" id="frameCB">
+                  <object class="GtkComboBoxText" id="frameCB">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
                     <property name="halign">start</property>
                     <property name="has_entry">True</property>
                     <child internal-child="entry">
                       <object class="GtkEntry" id="combobox-entry">
-                        <property name="can_focus">False</property>
+                        <property name="can_focus">True</property>
+                        <property name="activates_default">True</property>
                       </object>
                     </child>
                   </object>
@@ -180,10 +188,10 @@
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
                     <property name="hexpand">True</property>
-                    <property name="xalign">0</property>
                     <property name="label" translatable="yes" context="cuiimapdlg|label3">_Name:</property>
                     <property name="use_underline">True</property>
                     <property name="mnemonic_widget">nameentry</property>
+                    <property name="xalign">0</property>
                   </object>
                   <packing>
                     <property name="expand">False</property>
@@ -196,6 +204,7 @@
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="hexpand">True</property>
+                    <property name="activates_default">True</property>
                   </object>
                   <packing>
                     <property name="expand">False</property>
@@ -221,10 +230,10 @@
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
                     <property name="hexpand">True</property>
-                    <property name="xalign">0</property>
                     <property name="label" translatable="yes" context="cuiimapdlg|label4">Alternative _text:</property>
                     <property name="use_underline">True</property>
                     <property name="mnemonic_widget">textentry</property>
+                    <property name="xalign">0</property>
                   </object>
                   <packing>
                     <property name="expand">False</property>
@@ -237,6 +246,7 @@
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="hexpand">True</property>
+                    <property name="activates_default">True</property>
                   </object>
                   <packing>
                     <property name="expand">False</property>
@@ -262,10 +272,10 @@
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
                     <property name="hexpand">True</property>
-                    <property name="xalign">0</property>
                     <property name="label" translatable="yes" context="cuiimapdlg|label5">_Description:</property>
                     <property name="use_underline">True</property>
-                    <property name="mnemonic_widget">descTV:border</property>
+                    <property name="mnemonic_widget">descTV</property>
+                    <property name="xalign">0</property>
                   </object>
                   <packing>
                     <property name="expand">False</property>
@@ -281,7 +291,7 @@
                     <property name="vexpand">True</property>
                     <property name="shadow_type">in</property>
                     <child>
-                      <object class="GtkTextView" id="descTV:border">
+                      <object class="GtkTextView" id="descTV">
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="hexpand">True</property>
@@ -293,14 +303,14 @@
                     </child>
                   </object>
                   <packing>
-                    <property name="expand">False</property>
+                    <property name="expand">True</property>
                     <property name="fill">True</property>
                     <property name="position">1</property>
                   </packing>
                 </child>
               </object>
               <packing>
-                <property name="expand">False</property>
+                <property name="expand">True</property>
                 <property name="fill">True</property>
                 <property name="position">5</property>
               </packing>
diff --git a/include/svx/svxdlg.hxx b/include/svx/svxdlg.hxx
index ccf03a210f42..8547dc306e1b 100644
--- a/include/svx/svxdlg.hxx
+++ b/include/svx/svxdlg.hxx
@@ -350,7 +350,7 @@ public:
     virtual VclPtr<VclAbstractDialog> CreateGalleryThemePropertiesDialog(weld::Window* pParent,
                                             ExchangeData* pData,
                                             SfxItemSet* pItemSet ) = 0;
-    virtual VclPtr<AbstractURLDlg> CreateURLDialog( vcl::Window* pParent,
+    virtual VclPtr<AbstractURLDlg> CreateURLDialog(weld::Window* pParent,
                                             const OUString& rURL, const OUString& rAltText, const OUString& rDescription,
                                             const OUString& rTarget, const OUString& rName,
                                             TargetList& rTargetList ) = 0;
diff --git a/svx/source/dialog/imapwnd.cxx b/svx/source/dialog/imapwnd.cxx
index 7c65fc182735..487826351b79 100644
--- a/svx/source/dialog/imapwnd.cxx
+++ b/svx/source/dialog/imapwnd.cxx
@@ -686,8 +686,8 @@ void IMapWindow::DoPropertyDialog()
     {
         IMapObject* pIMapObj = GetIMapObj( pSdrObj );
         SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
-        ScopedVclPtr<AbstractURLDlg> aDlg(pFact->CreateURLDialog( this, pIMapObj->GetURL(), pIMapObj->GetAltText(), pIMapObj->GetDesc(),
-                                        pIMapObj->GetTarget(), pIMapObj->GetName(), aTargetList ));
+        ScopedVclPtr<AbstractURLDlg> aDlg(pFact->CreateURLDialog(GetFrameWeld(), pIMapObj->GetURL(), pIMapObj->GetAltText(), pIMapObj->GetDesc(),
+                                        pIMapObj->GetTarget(), pIMapObj->GetName(), aTargetList));
         if ( aDlg->Execute() == RET_OK )
         {
             const OUString aURLText( aDlg->GetURL() );


More information about the Libreoffice-commits mailing list