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

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Tue Feb 5 08:55:34 UTC 2019


 cui/source/options/optinet2.cxx |    6 --
 cui/source/options/tsaurls.cxx  |   91 +++++++++++++++++-----------------------
 cui/source/options/tsaurls.hxx  |   31 ++++++-------
 cui/uiconfig/ui/tsaurldialog.ui |   59 +++++++++++++++++++++----
 4 files changed, 105 insertions(+), 82 deletions(-)

New commits:
commit e436a61a89efb28d5a087b695bb51c71bdd9f62c
Author:     Caolán McNamara <caolanm at redhat.com>
AuthorDate: Mon Feb 4 21:32:46 2019 +0000
Commit:     Caolán McNamara <caolanm at redhat.com>
CommitDate: Tue Feb 5 09:55:13 2019 +0100

    weld TSAURLsDialog
    
    Change-Id: Iae3f4f1acfca02daa66726da3434ffb4406ff71d
    Reviewed-on: https://gerrit.libreoffice.org/67380
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/cui/source/options/optinet2.cxx b/cui/source/options/optinet2.cxx
index 0bdcaac701e0..f4fa1ffb3594 100644
--- a/cui/source/options/optinet2.cxx
+++ b/cui/source/options/optinet2.cxx
@@ -813,10 +813,8 @@ IMPL_LINK_NOARG(SvxSecurityTabPage, TSAURLsPBHdl, Button*, void)
 {
     // Unlike the mpCertPathDlg, we *don't* keep the same dialog object around between
     // invocations. Seems clearer to my little brain that way.
-
-    ScopedVclPtrInstance<TSAURLsDialog> pTSAURLsDlg(this);
-
-    pTSAURLsDlg->Execute();
+    TSAURLsDialog aTSAURLsDlg(GetDialogFrameWeld());
+    aTSAURLsDlg.run();
 }
 
 IMPL_STATIC_LINK_NOARG(SvxSecurityTabPage, MacroSecPBHdl, Button*, void)
diff --git a/cui/source/options/tsaurls.cxx b/cui/source/options/tsaurls.cxx
index d0850c3343f3..7b91900d97bd 100644
--- a/cui/source/options/tsaurls.cxx
+++ b/cui/source/options/tsaurls.cxx
@@ -19,22 +19,22 @@
 
 using namespace ::com::sun::star;
 
-TSAURLsDialog::TSAURLsDialog(vcl::Window* pParent)
-    : ModalDialog(pParent, "TSAURLDialog", "cui/ui/tsaurldialog.ui")
+TSAURLsDialog::TSAURLsDialog(weld::Window* pParent)
+    : GenericDialogController(pParent, "cui/ui/tsaurldialog.ui", "TSAURLDialog")
+    , m_xAddBtn(m_xBuilder->weld_button("add"))
+    , m_xDeleteBtn(m_xBuilder->weld_button("delete"))
+    , m_xOKBtn(m_xBuilder->weld_button("ok"))
+    , m_xURLListBox(m_xBuilder->weld_tree_view("urls"))
+    , m_xEnterAUrl(m_xBuilder->weld_label("enteraurl"))
 {
-    get(m_pAddBtn, "add");
-    get(m_pDeleteBtn, "delete");
-    get(m_pOKBtn, "ok");
-    get(m_pURLListBox, "urls");
+    m_xURLListBox->set_size_request(m_xURLListBox->get_approximate_digit_width() * 28,
+                                    m_xURLListBox->get_height_rows(8));
+    m_xOKBtn->set_sensitive(false);
 
-    m_pURLListBox->SetDropDownLineCount(8);
-    m_pURLListBox->set_width_request(m_pURLListBox->approximate_char_width() * 32);
-    m_pOKBtn->Disable();
-
-    m_pAddBtn->SetClickHdl( LINK( this, TSAURLsDialog, AddHdl_Impl ) );
-    m_pDeleteBtn->SetClickHdl( LINK( this, TSAURLsDialog, DeleteHdl_Impl ) );
-    m_pOKBtn->SetClickHdl( LINK( this, TSAURLsDialog, OKHdl_Impl ) );
-    m_pURLListBox->SetSelectHdl( LINK( this, TSAURLsDialog, SelectHdl ) );
+    m_xAddBtn->connect_clicked( LINK( this, TSAURLsDialog, AddHdl_Impl ) );
+    m_xDeleteBtn->connect_clicked( LINK( this, TSAURLsDialog, DeleteHdl_Impl ) );
+    m_xOKBtn->connect_clicked( LINK( this, TSAURLsDialog, OKHdl_Impl ) );
+    m_xURLListBox->connect_changed( LINK( this, TSAURLsDialog, SelectHdl ) );
 
     try
     {
@@ -53,88 +53,77 @@ TSAURLsDialog::TSAURLsDialog(vcl::Window* pParent)
         SAL_WARN("cui.options", "TSAURLsDialog::TSAURLsDialog(): " << e);
     }
 
-    if ( m_pURLListBox->GetSelectedEntryCount() == 0 )
+    if (m_xURLListBox->get_selected_index() == -1)
     {
-        m_pDeleteBtn->Disable();
+        m_xDeleteBtn->set_sensitive(false);
     }
 }
 
-IMPL_LINK_NOARG(TSAURLsDialog, OKHdl_Impl, Button*, void)
+IMPL_LINK_NOARG(TSAURLsDialog, OKHdl_Impl, weld::Button&, void)
 {
     std::shared_ptr<comphelper::ConfigurationChanges> batch(comphelper::ConfigurationChanges::create());
 
     officecfg::Office::Common::Security::Scripting::TSAURLs::set(comphelper::containerToSequence(m_aURLs), batch);
     batch->commit();
 
-    EndDialog(RET_OK);
+    m_xDialog->response(RET_OK);
 }
 
 TSAURLsDialog::~TSAURLsDialog()
 {
-    disposeOnce();
-}
-
-void TSAURLsDialog::dispose()
-{
-    m_pAddBtn.clear();
-    m_pDeleteBtn.clear();
-    m_pOKBtn.clear();
-    m_pURLListBox.clear();
-
-    ModalDialog::dispose();
 }
 
 void TSAURLsDialog::AddTSAURL(const OUString& rURL)
 {
     m_aURLs.insert(rURL);
 
-    m_pURLListBox->SetUpdateMode(false);
-    m_pURLListBox->Clear();
+    m_xURLListBox->freeze();
+    m_xURLListBox->clear();
 
     for (auto const& url : m_aURLs)
     {
-        m_pURLListBox->InsertEntry(url);
+        m_xURLListBox->append_text(url);
     }
 
-    m_pURLListBox->SetUpdateMode(true);
+    m_xURLListBox->thaw();
 }
 
-IMPL_LINK_NOARG(TSAURLsDialog, AddHdl_Impl, Button*, void)
+IMPL_LINK_NOARG(TSAURLsDialog, AddHdl_Impl, weld::Button&, void)
 {
     OUString aURL;
-    OUString aDesc( get<FixedText>("enteraurl")->GetText() );
+    OUString aDesc(m_xEnterAUrl->get_label());
 
     SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
-    ScopedVclPtr<AbstractSvxNameDialog> pDlg(pFact->CreateSvxNameDialog(m_pAddBtn->GetFrameWeld(), aURL, aDesc));
+    ScopedVclPtr<AbstractSvxNameDialog> pDlg(pFact->CreateSvxNameDialog(m_xDialog.get(), aURL, aDesc));
 
-    if ( pDlg->Execute() == RET_OK )
+    if (pDlg->Execute() == RET_OK)
     {
-        pDlg->GetName( aURL );
-
+        pDlg->GetName(aURL);
         AddTSAURL(aURL);
-        m_pOKBtn->Enable();
+        m_xOKBtn->set_sensitive(true);
     }
+    m_xURLListBox->unselect_all();
     // After operations in a ListBox we have nothing selected
-    m_pDeleteBtn->Disable();
+    m_xDeleteBtn->set_sensitive(false);
 }
 
-IMPL_LINK_NOARG(TSAURLsDialog, SelectHdl, ListBox&, void)
+IMPL_LINK_NOARG(TSAURLsDialog, SelectHdl, weld::TreeView&, void)
 {
-    m_pDeleteBtn->Enable();
+    m_xDeleteBtn->set_sensitive(true);
 }
 
-IMPL_LINK_NOARG(TSAURLsDialog, DeleteHdl_Impl, Button*, void)
+IMPL_LINK_NOARG(TSAURLsDialog, DeleteHdl_Impl, weld::Button&, void)
 {
-    sal_Int32 nSel = m_pURLListBox->GetSelectedEntryPos();
-
-    if (nSel == LISTBOX_ENTRY_NOTFOUND)
+    int nSel = m_xURLListBox->get_selected_index();
+    if (nSel == -1)
         return;
 
-    m_aURLs.erase(m_pURLListBox->GetEntry(nSel));
-    m_pURLListBox->RemoveEntry(nSel);
+    m_aURLs.erase(m_xURLListBox->get_text(nSel));
+    m_xURLListBox->remove(nSel);
+    m_xURLListBox->unselect_all();
     // After operations in a ListBox we have nothing selected
-    m_pDeleteBtn->Disable();
-    m_pOKBtn->Enable();
+    m_xDeleteBtn->set_sensitive(false);
+    m_xOKBtn->set_sensitive(true);
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cui/source/options/tsaurls.hxx b/cui/source/options/tsaurls.hxx
index 6fc28b0b83e8..c61dcfa25a00 100644
--- a/cui/source/options/tsaurls.hxx
+++ b/cui/source/options/tsaurls.hxx
@@ -10,32 +10,31 @@
 #ifndef INCLUDED_CUI_SOURCE_OPTIONS_TSAURLS_HXX
 #define INCLUDED_CUI_SOURCE_OPTIONS_TSAURLS_HXX
 
-#include <vcl/lstbox.hxx>
-#include <vcl/button.hxx>
+#include <vcl/weld.hxx>
 
-class TSAURLsDialog : public ModalDialog
+class TSAURLsDialog : public weld::GenericDialogController
 {
 private:
-    VclPtr<ListBox>    m_pURLListBox;
-    VclPtr<PushButton> m_pAddBtn;
-    VclPtr<PushButton> m_pDeleteBtn;
-    VclPtr<OKButton>   m_pOKBtn;
-
-    DECL_LINK(AddHdl_Impl, Button*, void);
-    DECL_LINK(DeleteHdl_Impl, Button*, void);
-    DECL_LINK(OKHdl_Impl, Button*, void);
-    // After operations in a ListBox we have nothing selected
-    // Is Selected element handler for the ListBox
-    DECL_LINK(SelectHdl, ListBox&, void);
+    std::unique_ptr<weld::Button> m_xAddBtn;
+    std::unique_ptr<weld::Button> m_xDeleteBtn;
+    std::unique_ptr<weld::Button> m_xOKBtn;
+    std::unique_ptr<weld::TreeView> m_xURLListBox;
+    std::unique_ptr<weld::Label> m_xEnterAUrl;
+
+    DECL_LINK(AddHdl_Impl, weld::Button&, void);
+    DECL_LINK(DeleteHdl_Impl, weld::Button&, void);
+    DECL_LINK(OKHdl_Impl, weld::Button&, void);
+    // After operations in a TreeView we have nothing selected
+    // Is Selected element handler for the TreeView
+    DECL_LINK(SelectHdl, weld::TreeView&, void);
 
     std::set<OUString> m_aURLs;
 
     void AddTSAURL(const OUString &rURL);
 
 public:
-    explicit TSAURLsDialog(vcl::Window* pParent);
+    explicit TSAURLsDialog(weld::Window* pParent);
     virtual ~TSAURLsDialog() override;
-    virtual void dispose() override;
 };
 
 #endif
diff --git a/cui/uiconfig/ui/tsaurldialog.ui b/cui/uiconfig/ui/tsaurldialog.ui
index d1e330f25022..3d005f3faa22 100644
--- a/cui/uiconfig/ui/tsaurldialog.ui
+++ b/cui/uiconfig/ui/tsaurldialog.ui
@@ -1,11 +1,26 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.22.1 -->
 <interface domain="cui">
   <requires lib="gtk+" version="3.18"/>
+  <object class="GtkTreeStore" id="liststore1">
+    <columns>
+      <!-- column-name text -->
+      <column type="gchararray"/>
+      <!-- column-name id -->
+      <column type="gchararray"/>
+    </columns>
+  </object>
   <object class="GtkDialog" id="TSAURLDialog">
     <property name="can_focus">False</property>
     <property name="border_width">6</property>
     <property name="title" translatable="yes" context="tsaurldialog|TSAURLDialog">Time Stamping Authority URLs</property>
+    <property name="modal">True</property>
+    <property name="default_width">0</property>
+    <property name="default_height">0</property>
     <property name="type_hint">normal</property>
+    <child>
+      <placeholder/>
+    </child>
     <child internal-child="vbox">
       <object class="GtkBox" id="dialog-vbox1">
         <property name="can_focus">False</property>
@@ -32,13 +47,14 @@
             </child>
             <child>
               <object class="GtkButton" id="delete">
-                <property name="label" translatable="yes" context="tsaurldialog|delete">_Delete...</property>
+                <property name="label" context="tsaurldialog|delete">gtk-delete</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="can_default">True</property>
                 <property name="has_default">True</property>
                 <property name="receives_default">True</property>
                 <property name="use_underline">True</property>
+                <property name="use_stock">True</property>
               </object>
               <packing>
                 <property name="expand">False</property>
@@ -126,12 +142,12 @@
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
                         <property name="margin_bottom">6</property>
-                        <property name="xalign">0</property>
-                        <property name="yalign">0</property>
                         <property name="label" translatable="yes" context="tsaurldialog|label2">Add or delete Time Stamp Authority URLs</property>
                         <property name="use_underline">True</property>
                         <property name="wrap">True</property>
                         <property name="max_width_chars">60</property>
+                        <property name="xalign">0</property>
+                        <property name="yalign">0</property>
                       </object>
                       <packing>
                         <property name="expand">False</property>
@@ -140,14 +156,37 @@
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkTreeView" id="urls:border">
+                      <object class="GtkScrolledWindow">
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="hexpand">True</property>
                         <property name="vexpand">True</property>
-                        <property name="show_expanders">False</property>
-                        <child internal-child="selection">
-                          <object class="GtkTreeSelection" id="treeview-selection3"/>
+                        <property name="shadow_type">in</property>
+                        <child>
+                          <object class="GtkTreeView" id="urls">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="hexpand">True</property>
+                            <property name="vexpand">True</property>
+                            <property name="model">liststore1</property>
+                            <property name="headers_visible">False</property>
+                            <property name="headers_clickable">False</property>
+                            <property name="search_column">0</property>
+                            <property name="show_expanders">False</property>
+                            <child internal-child="selection">
+                              <object class="GtkTreeSelection" id="treeview-selection1"/>
+                            </child>
+                            <child>
+                              <object class="GtkTreeViewColumn" id="treeviewcolumn1">
+                                <child>
+                                  <object class="GtkCellRendererText" id="cellrenderertext1"/>
+                                  <attributes>
+                                    <attribute name="text">0</attribute>
+                                  </attributes>
+                                </child>
+                              </object>
+                            </child>
+                          </object>
                         </child>
                       </object>
                       <packing>
@@ -170,8 +209,6 @@
                           <packing>
                             <property name="left_attach">2</property>
                             <property name="top_attach">0</property>
-                            <property name="width">1</property>
-                            <property name="height">1</property>
                           </packing>
                         </child>
                         <child>
@@ -212,8 +249,8 @@
     </child>
     <action-widgets>
       <action-widget response="-11">help</action-widget>
-      <action-widget response="0">delete</action-widget>
-      <action-widget response="0">add</action-widget>
+      <action-widget response="101">delete</action-widget>
+      <action-widget response="102">add</action-widget>
       <action-widget response="-5">ok</action-widget>
       <action-widget response="-6">cancel</action-widget>
     </action-widgets>


More information about the Libreoffice-commits mailing list