[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-6.0' - sfx2/inc sfx2/source

Muhammet Kara (via logerrit) logerrit at kemper.freedesktop.org
Fri Aug 23 19:35:52 UTC 2019


 sfx2/inc/autoredactdialog.hxx        |   41 +++---
 sfx2/source/doc/autoredactdialog.cxx |  228 ++++++++++++++++++-----------------
 2 files changed, 138 insertions(+), 131 deletions(-)

New commits:
commit 0cb4b06798975735ee812ad6ca20e3d8c5cc4ca8
Author:     Muhammet Kara <muhammet.kara at collabora.com>
AuthorDate: Fri Aug 23 13:56:47 2019 +0300
Commit:     Muhammet Kara <muhammet.kara at collabora.com>
CommitDate: Fri Aug 23 21:34:54 2019 +0200

    AutoRedaction: Adapt AddHdl
    
    [NO-FORWARD-PORT]
    
    Change-Id: Id33ee13d8342c862bd063e2345cb14805b950e37
    Reviewed-on: https://gerrit.libreoffice.org/78038
    Reviewed-by: Muhammet Kara <muhammet.kara at collabora.com>
    Tested-by: Muhammet Kara <muhammet.kara at collabora.com>

diff --git a/sfx2/inc/autoredactdialog.hxx b/sfx2/inc/autoredactdialog.hxx
index 9399ba530a80..5af176a6f7ce 100644
--- a/sfx2/inc/autoredactdialog.hxx
+++ b/sfx2/inc/autoredactdialog.hxx
@@ -83,8 +83,8 @@ class SFX2_DLLPUBLIC SfxAutoRedactDialog : public SfxModalDialog
 
     DECL_LINK(Load, Button*, void);
     DECL_LINK(Save, Button*, void);
-    /*DECL_LINK(AddHdl, Button*, void);
-    DECL_LINK(EditHdl, Button*, void);*/
+    DECL_LINK(AddHdl, Button*, void);
+    //DECL_LINK(EditHdl, Button*, void);
     DECL_LINK(DeleteHdl, Button*, void);
 
     DECL_LINK(LoadHdl, sfx2::FileDialogHelper*, void);
@@ -113,35 +113,34 @@ public:
     bool getTargets(std::vector<std::pair<RedactionTarget*, OUString>>& r_aTargets);
 };
 
-/*class SfxAddTargetDialog : public weld::GenericDialogController
+class SfxAddTargetDialog : public SfxModalDialog
 {
 private:
-    std::unique_ptr<weld::Entry> m_xName;
-    std::unique_ptr<weld::ComboBox> m_xType;
-    std::unique_ptr<weld::Label> m_xLabelContent;
-    std::unique_ptr<weld::Entry> m_xContent;
-    std::unique_ptr<weld::Label> m_xLabelPredefContent;
-    std::unique_ptr<weld::ComboBox> m_xPredefContent;
-    std::unique_ptr<weld::CheckButton> m_xCaseSensitive;
-    std::unique_ptr<weld::CheckButton> m_xWholeWords;
+    VclPtr<Edit> m_pName;
+    VclPtr<ListBox> m_pType;
+    VclPtr<FixedText> m_pLabelContent;
+    VclPtr<Edit> m_pContent;
+    VclPtr<FixedText> m_pLabelPredefContent;
+    VclPtr<ListBox> m_pPredefContent;
+    VclPtr<CheckBox> m_pCaseSensitive;
+    VclPtr<CheckBox> m_pWholeWords;
 
-    DECL_LINK(SelectTypeHdl, weld::ComboBox&, void);
+    DECL_LINK(SelectTypeHdl, ListBox&, void);
 
 public:
-    SfxAddTargetDialog(weld::Window* pWindow, const OUString& rName);
-    SfxAddTargetDialog(weld::Window* pWindow, const OUString& sName,
+    SfxAddTargetDialog(vcl::Window* pWindow, const OUString& rName);
+    SfxAddTargetDialog(vcl::Window* pWindow, const OUString& sName,
                        const RedactionTargetType& eTargetType, const OUString& sContent,
                        const bool& bCaseSensitive, const bool& bWholeWords);
+    virtual ~SfxAddTargetDialog() override;
+    virtual void dispose() override;
 
-    OUString getName() const { return m_xName->get_text(); }
+    OUString getName() const { return m_pName->GetText(); }
     RedactionTargetType getType() const;
     OUString getContent() const;
-    bool isCaseSensitive() const
-    {
-        return m_xCaseSensitive->get_state() == TriState::TRISTATE_TRUE;
-    }
-    bool isWholeWords() const { return m_xWholeWords->get_state() == TriState::TRISTATE_TRUE; }
-};*/
+    bool isCaseSensitive() const { return m_pCaseSensitive->GetState() == TriState::TRISTATE_TRUE; }
+    bool isWholeWords() const { return m_pWholeWords->GetState() == TriState::TRISTATE_TRUE; }
+};
 
 #endif
 
diff --git a/sfx2/source/doc/autoredactdialog.cxx b/sfx2/source/doc/autoredactdialog.cxx
index 0bfe244e760f..040fb3a9dacc 100644
--- a/sfx2/source/doc/autoredactdialog.cxx
+++ b/sfx2/source/doc/autoredactdialog.cxx
@@ -31,6 +31,7 @@
 #include <tools/urlobj.hxx>
 #include <unotools/viewoptions.hxx>
 #include <vcl/msgbox.hxx>
+#include <vcl/lstbox.hxx>
 
 #include <svtools/treelistentry.hxx>
 
@@ -95,28 +96,28 @@ OUString getTypeName(RedactionTargetType nType)
 }
 
 /// Returns TypeID to be used in the add/edit target dialog
-/*OUString getTypeID(RedactionTargetType nType)
+sal_Int32 getTypeID(RedactionTargetType nType)
 {
-    OUString sTypeID("unknown");
+    sal_Int32 nTypeID(-1);
 
     switch (nType)
     {
         case RedactionTargetType::REDACTION_TARGET_TEXT:
-            sTypeID = "text";
+            nTypeID = 0;
             break;
         case RedactionTargetType::REDACTION_TARGET_REGEX:
-            sTypeID = "regex";
+            nTypeID = 1;
             break;
         case RedactionTargetType::REDACTION_TARGET_PREDEFINED:
-            sTypeID = "predefined";
+            nTypeID = 2;
             break;
         case RedactionTargetType::REDACTION_TARGET_UNKNOWN:
-            sTypeID = "unknown";
+            nTypeID = -1;
             break;
     }
 
-    return sTypeID;
-}*/
+    return nTypeID;
+}
 }
 
 void TargetsTable::InsertTarget(RedactionTarget* pTarget)
@@ -220,17 +221,17 @@ IMPL_LINK_NOARG(SfxAutoRedactDialog, Save, Button*, void)
     StartFileDialog(StartFileDialogType::SaveAs, "Save Targets");
 }
 
-/*IMPL_LINK_NOARG(SfxAutoRedactDialog, AddHdl, Button*, void)
+IMPL_LINK_NOARG(SfxAutoRedactDialog, AddHdl, Button*, void)
 {
     // Open the Add Target dialog, craete a new target and insert into the targets vector and the listbox
-    SfxAddTargetDialog aAddTargetDialog(getDialog(), m_xTargetsBox->GetNameProposal());
+    SfxAddTargetDialog aAddTargetDialog(this, m_pTargetsBox->GetNameProposal());
 
     bool bIncomplete;
     do
     {
         bIncomplete = false;
 
-        if (aAddTargetDialog.run() != RET_OK)
+        if (aAddTargetDialog.Execute() != RET_OK)
             return;
 
         if (aAddTargetDialog.getName().isEmpty()
@@ -238,18 +239,15 @@ IMPL_LINK_NOARG(SfxAutoRedactDialog, Save, Button*, void)
             || aAddTargetDialog.getContent().isEmpty())
         {
             bIncomplete = true;
-            std::unique_ptr<weld::MessageDialog> xBox(
-                Application::CreateMessageDialog(getDialog(), VclMessageType::Warning,
-                                                 VclButtonsType::Ok, "All fields are required"));
-            xBox->run();
+            ScopedVclPtrInstance<WarningBox>(this, MessBoxStyle::Ok, "All fields are required")
+                ->Execute();
         }
-        else if (m_xTargetsBox->GetTargetByName(aAddTargetDialog.getName()))
+        else if (m_pTargetsBox->GetTargetByName(aAddTargetDialog.getName()))
         {
             bIncomplete = true;
-            std::unique_ptr<weld::MessageDialog> xBox(Application::CreateMessageDialog(
-                getDialog(), VclMessageType::Warning, VclButtonsType::Ok,
-                "There is already a target with this name"));
-            xBox->run();
+            ScopedVclPtrInstance<WarningBox>(this, MessBoxStyle::Ok,
+                                             "There is already a target with this name")
+                ->Execute();
         }
 
     } while (bIncomplete);
@@ -259,23 +257,10 @@ IMPL_LINK_NOARG(SfxAutoRedactDialog, Save, Button*, void)
         { aAddTargetDialog.getName(), aAddTargetDialog.getType(), aAddTargetDialog.getContent(),
           aAddTargetDialog.isCaseSensitive(), aAddTargetDialog.isWholeWords(), 0 });
 
-    // Only the visual/display part
-    m_xTargetsBox->InsertTarget(redactiontarget);
-
-    // Actually add to the targets vector
-    if (m_xTargetsBox->GetTargetByName(redactiontarget->sName))
-        m_aTableTargets.emplace_back(redactiontarget, redactiontarget->sName);
-    else
-    {
-        std::unique_ptr<weld::MessageDialog> xBox(Application::CreateMessageDialog(
-            getDialog(), VclMessageType::Warning, VclButtonsType::Ok,
-            "An error occured while adding new target. Please report this incidence."));
-        xBox->run();
-        delete redactiontarget;
-    }
+    m_pTargetsBox->InsertTarget(redactiontarget);
 }
 
-IMPL_LINK_NOARG(SfxAutoRedactDialog, EditHdl, Button*, void)
+/*IMPL_LINK_NOARG(SfxAutoRedactDialog, EditHdl, Button*, void)
 {
     sal_Int32 nSelectedRow = m_xTargetsBox->get_selected_index();
 
@@ -587,6 +572,7 @@ SfxAutoRedactDialog::SfxAutoRedactDialog(vcl::Window* pParent)
     m_pLoadBtn->SetClickHdl(LINK(this, SfxAutoRedactDialog, Load));
     m_pSaveBtn->SetClickHdl(LINK(this, SfxAutoRedactDialog, Save));
     m_pDeleteBtn->SetClickHdl(LINK(this, SfxAutoRedactDialog, DeleteHdl));
+    m_pAddBtn->SetClickHdl(LINK(this, SfxAutoRedactDialog, AddHdl));
 
     // Can be used to remmeber the last set of redaction targets?
     /*OUString sExtraData;
@@ -732,121 +718,143 @@ bool SfxAutoRedactDialog::getTargets(std::vector<std::pair<RedactionTarget*, OUS
     return true;
 }
 
-/*IMPL_LINK_NOARG(SfxAddTargetDialog, SelectTypeHdl, weld::ComboBox&, void)
+IMPL_LINK_NOARG(SfxAddTargetDialog, SelectTypeHdl, ListBox&, void)
 {
-    if (m_xType->get_active_id() == "predefined")
+    if (m_pType->GetSelectedEntryPos() == 2) //Predefined
     {
         // Hide the usual content widgets
         // We will just set the id as content
         // And handle with proper regex in the SfxRedactionHelper
-        m_xLabelContent->set_sensitive(false);
-        m_xLabelContent->set_visible(false);
-        m_xContent->set_sensitive(false);
-        m_xContent->set_visible(false);
-        m_xWholeWords->set_sensitive(false);
-        m_xWholeWords->set_visible(false);
-        m_xCaseSensitive->set_sensitive(false);
-        m_xCaseSensitive->set_visible(false);
+        m_pLabelContent->Disable();
+        m_pLabelContent->Hide();
+        m_pContent->Disable();
+        m_pContent->Hide();
+        m_pWholeWords->Disable();
+        m_pWholeWords->Hide();
+        m_pCaseSensitive->Disable();
+        m_pCaseSensitive->Hide();
 
         // And show the predefined targets
-        m_xLabelPredefContent->set_sensitive(true);
-        m_xLabelPredefContent->set_visible(true);
-        m_xPredefContent->set_sensitive(true);
-        m_xPredefContent->set_visible(true);
+        m_pLabelPredefContent->Enable();
+        m_pLabelPredefContent->Show();
+        m_pPredefContent->Enable();
+        m_pPredefContent->Show();
     }
     else
     {
-        m_xLabelPredefContent->set_sensitive(false);
-        m_xLabelPredefContent->set_visible(false);
-        m_xPredefContent->set_sensitive(false);
-        m_xPredefContent->set_visible(false);
-
-        m_xLabelContent->set_sensitive(true);
-        m_xLabelContent->set_visible(true);
-        m_xContent->set_sensitive(true);
-        m_xContent->set_visible(true);
-        m_xWholeWords->set_sensitive(true);
-        m_xWholeWords->set_visible(true);
-        m_xCaseSensitive->set_sensitive(true);
-        m_xCaseSensitive->set_visible(true);
+        m_pLabelPredefContent->Disable();
+        m_pLabelPredefContent->Hide();
+        m_pPredefContent->Disable();
+        m_pPredefContent->Hide();
+
+        m_pLabelContent->Enable();
+        m_pLabelContent->Show();
+        m_pContent->Enable();
+        m_pContent->Show();
+        m_pWholeWords->Enable();
+        m_pWholeWords->Show();
+        m_pCaseSensitive->Enable();
+        m_pCaseSensitive->Show();
     }
 }
 
-SfxAddTargetDialog::SfxAddTargetDialog(weld::Window* pParent, const OUString& rName)
-    : GenericDialogController(pParent, "sfx/ui/addtargetdialog.ui", "AddTargetDialog")
-    , m_xName(m_xBuilder->weld_entry("name"))
-    , m_xType(m_xBuilder->weld_combo_box("type"))
-    , m_xLabelContent(m_xBuilder->weld_label("label_content"))
-    , m_xContent(m_xBuilder->weld_entry("content"))
-    , m_xLabelPredefContent(m_xBuilder->weld_label("label_content_predef"))
-    , m_xPredefContent(m_xBuilder->weld_combo_box("content_predef"))
-    , m_xCaseSensitive(m_xBuilder->weld_check_button("checkboxCaseSensitive"))
-    , m_xWholeWords(m_xBuilder->weld_check_button("checkboxWholeWords"))
-{
-    m_xName->set_text(rName);
-    m_xName->select_region(0, rName.getLength());
-
-    m_xType->connect_changed(LINK(this, SfxAddTargetDialog, SelectTypeHdl));
+SfxAddTargetDialog::SfxAddTargetDialog(vcl::Window* pParent, const OUString& rName)
+    : SfxModalDialog(pParent, "AddTargetDialog", "sfx/ui/addtargetdialog.ui")
+{
+    get(m_pName, "name");
+    get(m_pType, "type");
+    get(m_pLabelContent, "label_content");
+    get(m_pContent, "content");
+    get(m_pLabelPredefContent, "label_content_predef");
+    get(m_pPredefContent, "content_predef");
+    get(m_pCaseSensitive, "checkboxCaseSensitive");
+    get(m_pWholeWords, "checkboxWholeWords");
+
+    m_pName->SetText(rName);
+    m_pName->SetSelection(Selection(0, rName.getLength()));
+
+    m_pType->SetSelectHdl(LINK(this, SfxAddTargetDialog, SelectTypeHdl));
 }
 
-SfxAddTargetDialog::SfxAddTargetDialog(weld::Window* pParent, const OUString& sName,
+SfxAddTargetDialog::SfxAddTargetDialog(vcl::Window* pParent, const OUString& sName,
                                        const RedactionTargetType& eTargetType,
                                        const OUString& sContent, const bool& bCaseSensitive,
                                        const bool& bWholeWords)
-    : GenericDialogController(pParent, "sfx/ui/addtargetdialog.ui", "AddTargetDialog")
-    , m_xName(m_xBuilder->weld_entry("name"))
-    , m_xType(m_xBuilder->weld_combo_box("type"))
-    , m_xLabelContent(m_xBuilder->weld_label("label_content"))
-    , m_xContent(m_xBuilder->weld_entry("content"))
-    , m_xLabelPredefContent(m_xBuilder->weld_label("label_content_predef"))
-    , m_xPredefContent(m_xBuilder->weld_combo_box("content_predef"))
-    , m_xCaseSensitive(m_xBuilder->weld_check_button("checkboxCaseSensitive"))
-    , m_xWholeWords(m_xBuilder->weld_check_button("checkboxWholeWords"))
+    : SfxModalDialog(pParent, "AddTargetDialog", "sfx/ui/addtargetdialog.ui")
 {
-    m_xName->set_text(sName);
-    m_xName->select_region(0, sName.getLength());
+    get(m_pName, "name");
+    get(m_pType, "type");
+    get(m_pLabelContent, "label_content");
+    get(m_pContent, "content");
+    get(m_pLabelPredefContent, "label_content_predef");
+    get(m_pPredefContent, "content_predef");
+    get(m_pCaseSensitive, "checkboxCaseSensitive");
+    get(m_pWholeWords, "checkboxWholeWords");
+
+    m_pName->SetText(sName);
+    m_pName->SetSelection(Selection(0, sName.getLength()));
 
-    m_xType->set_active_id(getTypeID(eTargetType));
+    m_pType->SelectEntryPos(getTypeID(eTargetType));
 
     if (eTargetType == RedactionTargetType::REDACTION_TARGET_PREDEFINED)
     {
-        SelectTypeHdl(*m_xPredefContent);
-        m_xPredefContent->set_active(sContent.getToken(0, ';').toInt32());
+        SelectTypeHdl(*m_pPredefContent);
+        m_pPredefContent->SelectEntryPos(sContent.getToken(0, ';').toInt32());
     }
     else
     {
-        m_xContent->set_text(sContent);
+        m_pContent->SetText(sContent);
     }
 
-    m_xCaseSensitive->set_active(bCaseSensitive);
-    m_xWholeWords->set_active(bWholeWords);
+    if (bCaseSensitive)
+        m_pCaseSensitive->SetState(TriState::TRISTATE_TRUE);
+    if (bWholeWords)
+        m_pWholeWords->SetState(TriState::TRISTATE_TRUE);
+
+    SetText("Edit Target");
+}
+
+SfxAddTargetDialog::~SfxAddTargetDialog() { disposeOnce(); }
 
-    set_title("Edit Target");
+void SfxAddTargetDialog::dispose()
+{
+    m_pName.clear();
+    m_pType.clear();
+    m_pLabelContent.clear();
+    m_pContent.clear();
+    m_pLabelPredefContent.clear();
+    m_pPredefContent.clear();
+    m_pCaseSensitive.clear();
+    m_pWholeWords.clear();
+    SfxModalDialog::dispose();
 }
 
 RedactionTargetType SfxAddTargetDialog::getType() const
 {
-    OUString sTypeID = m_xType->get_active_id();
+    sal_Int32 nTypeID = m_pType->GetSelectedEntryPos();
 
-    if (sTypeID == "text")
-        return RedactionTargetType::REDACTION_TARGET_TEXT;
-    else if (sTypeID == "regex")
-        return RedactionTargetType::REDACTION_TARGET_REGEX;
-    else if (sTypeID == "predefined")
-        return RedactionTargetType::REDACTION_TARGET_PREDEFINED;
-    else
-        return RedactionTargetType::REDACTION_TARGET_UNKNOWN;
+    switch (nTypeID)
+    {
+        case 0:
+            return RedactionTargetType::REDACTION_TARGET_TEXT;
+        case 1:
+            return RedactionTargetType::REDACTION_TARGET_REGEX;
+        case 2:
+            return RedactionTargetType::REDACTION_TARGET_PREDEFINED;
+        default:
+            return RedactionTargetType::REDACTION_TARGET_UNKNOWN;
+    }
 }
 
 OUString SfxAddTargetDialog::getContent() const
 {
-    if (m_xType->get_active_id() == "predefined")
+    if (m_pType->GetSelectedEntryPos() == 2) //Predefined
     {
-        return OUString(OUString::number(m_xPredefContent->get_active()) + ";"
-                        + m_xPredefContent->get_active_text());
+        return OUString(OUString::number(m_pPredefContent->GetSelectedEntryPos()) + ";"
+                        + m_pPredefContent->GetSelectedEntry());
     }
 
-    return m_xContent->get_text();
-}*/
+    return m_pContent->GetText();
+}
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */


More information about the Libreoffice-commits mailing list