sc/source/ui/miscdlgs/dataproviderdlg.cxx |   59 +++++++++++++++++++++++++++---
 1 file changed, 55 insertions(+), 4 deletions(-)

New commits:
commit eac72845f5c9aac0fb346b2d48cee697006c057b
Author: Manuj Vashist <manujvash...@gmail.com>
Date:   Mon Jul 2 04:21:03 2018 +0530

    Added Delete Column Transformation in Data Provider Dialog
    
    Change-Id: Ibebd92c426d1653642c5b9d037d6368636561fcd
    Reviewed-on: https://gerrit.libreoffice.org/56786
    Reviewed-by: Markus Mohrhard <markus.mohrh...@googlemail.com>
    Tested-by: Markus Mohrhard <markus.mohrh...@googlemail.com>

diff --git a/sc/source/ui/miscdlgs/dataproviderdlg.cxx 
b/sc/source/ui/miscdlgs/dataproviderdlg.cxx
index 8e07d04b8145..a94a5d4d41e1 100644
--- a/sc/source/ui/miscdlgs/dataproviderdlg.cxx
+++ b/sc/source/ui/miscdlgs/dataproviderdlg.cxx
@@ -271,6 +271,59 @@ void ScDataTransformationBaseControl::setAllocation(const 
Size &rAllocation)
     setLayoutPosSize(*maGrid, Point(0, 0), rAllocation);
 }
 
+class ScDeleteColumnTransformationControl : public 
ScDataTransformationBaseControl
+{
+private:
+    VclPtr<Edit> maColumnNums;
+
+public:
+    ScDeleteColumnTransformationControl(vcl::Window* pParent);
+    ~ScDeleteColumnTransformationControl() override;
+
+    virtual void dispose() override;
+
+    virtual std::shared_ptr<sc::DataTransformation> getTransformation() 
override;
+};
+
+ScDeleteColumnTransformationControl::ScDeleteColumnTransformationControl(vcl::Window*
 pParent):
+    ScDataTransformationBaseControl(pParent, 
"modules/scalc/ui/deletecolumnentry.ui")
+{
+    get(maColumnNums, "ed_columns");
+}
+
+ScDeleteColumnTransformationControl::~ScDeleteColumnTransformationControl()
+{
+    disposeOnce();
+}
+
+void ScDeleteColumnTransformationControl::dispose()
+{
+    maColumnNums.clear();
+
+    ScDataTransformationBaseControl::dispose();
+}
+
+std::shared_ptr<sc::DataTransformation> 
ScDeleteColumnTransformationControl::getTransformation()
+{
+    OUString aColumnString = maColumnNums->GetText();
+    std::vector<OUString> aSplitColumns = 
comphelper::string::split(aColumnString, ';');
+    std::set<SCCOL> ColNums;
+    for (auto& rColStr : aSplitColumns)
+    {
+        sal_Int32 nCol = rColStr.toInt32();
+        if (nCol <= 0)
+            continue;
+
+        if (nCol > MAXCOL)
+            continue;
+
+        // translate from 1-based column notations to internal Calc one
+        ColNums.insert(nCol - 1);
+    }
+
+    return std::make_shared<sc::ColumnRemoveTransformation>(ColNums);
+}
+
 class ScSplitColumnTransformationControl : public 
ScDataTransformationBaseControl
 {
 private:
@@ -497,10 +550,8 @@ void ScDataProviderDlg::cancelAndQuit()
 
 void ScDataProviderDlg::deleteColumn()
 {
-    VclPtr<FixedText> mpText = VclPtr<FixedText>::Create(mpList);
-    mpText->SetText("Delete Column");
-    mpText->SetSizePixel(Size(400, 20));
-    mpList->addEntry(mpText);
+    VclPtr<ScDeleteColumnTransformationControl> pDeleteColumnEntry = 
VclPtr<ScDeleteColumnTransformationControl>::Create(mpList);
+    mpList->addEntry(pDeleteColumnEntry);
 }
 
 void ScDataProviderDlg::splitColumn()
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to