Kaydet (Commit) 537ca51d authored tarafından Manuj Vashist's avatar Manuj Vashist Kaydeden (comit) Markus Mohrhard

Added Sort Transformation in Data Provider dlg

Change-Id: I68ea3d2fc40163d0f3a67bb3723341f8e382db27
Reviewed-on: https://gerrit.libreoffice.org/56914
Tested-by: Jenkins
Reviewed-by: 's avatarMarkus Mohrhard <markus.mohrhard@googlemail.com>
üst 725a43ef
......@@ -157,6 +157,7 @@ $(eval $(call gb_UIConfig_add_uifiles,modules/scalc,\
sc/uiconfig/scalc/ui/mergecellsdialog \
sc/uiconfig/scalc/ui/mergecolumnentry \
sc/uiconfig/scalc/ui/texttransformationentry \
sc/uiconfig/scalc/ui/sorttransformationentry \
sc/uiconfig/scalc/ui/movecopysheet \
sc/uiconfig/scalc/ui/movingaveragedialog \
sc/uiconfig/scalc/ui/multipleoperationsdialog \
......
......@@ -62,6 +62,7 @@ public:
void splitColumn();
void mergeColumns();
void textTransformation();
void sortTransformation();
void import(ScDocument* pDoc, bool bInternal = false);
};
......
......@@ -222,7 +222,8 @@ MenuData aColumnData[] = {
{ 0, "Delete Column", &ScDataProviderDlg::deleteColumn },
{ 1, "Split Column", &ScDataProviderDlg::splitColumn },
{ 2, "Merge Columns", &ScDataProviderDlg::mergeColumns },
{ 3, "Text Transformation", &ScDataProviderDlg::textTransformation }
{ 3, "Text Transformation", &ScDataProviderDlg::textTransformation },
{ 4, "Sort Columns", &ScDataProviderDlg::sortTransformation }
};
class ScDataTransformationBaseControl : public VclContainer,
......@@ -436,6 +437,60 @@ std::shared_ptr<sc::DataTransformation> ScMergeColumnTransformationControl::getT
return std::make_shared<sc::MergeColumnTransformation>(aMergedColumns, mpSeparator->GetText());
}
class ScSortTransformationControl : public ScDataTransformationBaseControl
{
private:
VclPtr<CheckBox> mpAscending;
VclPtr<Edit> mpEdColumns;
public:
ScSortTransformationControl(vcl::Window* pParent);
~ScSortTransformationControl() override;
virtual void dispose() override;
virtual std::shared_ptr<sc::DataTransformation> getTransformation() override;
};
ScSortTransformationControl::ScSortTransformationControl(vcl::Window* pParent):
ScDataTransformationBaseControl(pParent, "modules/scalc/ui/sorttransformationentry.ui")
{
get(mpAscending, "ed_ascending");
get(mpEdColumns, "ed_columns");
}
ScSortTransformationControl::~ScSortTransformationControl()
{
disposeOnce();
}
void ScSortTransformationControl::dispose()
{
mpAscending.clear();
mpEdColumns.clear();
ScDataTransformationBaseControl::dispose();
}
std::shared_ptr<sc::DataTransformation> ScSortTransformationControl::getTransformation()
{
OUString aColStr = mpEdColumns->GetText();
bool aIsAscending = mpAscending->IsChecked();
SCCOL aColumn = 0;
sal_Int32 nCol = aColStr.toInt32();
if (nCol > 0 && nCol <= MAXCOL)
aColumn = nCol - 1; // translate from 1-based column notations to internal Calc one
ScSortParam aSortParam;
ScSortKeyState aSortKey;
aSortKey.bDoSort = true;
aSortKey.nField = aColumn;
aSortKey.bAscending = aIsAscending;
aSortParam.maKeyState.push_back(aSortKey);
return std::make_shared<sc::SortTransformation>(aSortParam);
}
class ScColumnTextTransformation : public ScDataTransformationBaseControl
{
private:
......@@ -660,6 +715,12 @@ void ScDataProviderDlg::textTransformation()
mpList->addEntry(pTextTransforamtionEntry);
}
void ScDataProviderDlg::sortTransformation()
{
VclPtr<ScSortTransformationControl> pSortTransforamtionEntry = VclPtr<ScSortTransformationControl>::Create(mpList);
mpList->addEntry(pSortTransforamtionEntry);
}
void ScDataProviderDlg::import(ScDocument* pDoc, bool bInternal)
{
sc::ExternalDataSource aSource = mpDataProviderCtrl->getDataSource(pDoc);
......
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.20.2 -->
<interface domain="sc">
<requires lib="gtk+" version="3.18"/>
<object class="GtkGrid" id="grid">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="border_width">6</property>
<property name="row_spacing">6</property>
<property name="column_spacing">12</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes" context="sorttransformationentry|name">Sort Transformation</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkGrid" id="grid_details">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkCheckButton" id="ed_ascending">
<property name="visible">True</property>
<property name="label" translatable="yes" context="sorttransformationentry|type">Ascending Order</property>
<property name="can_focus">True</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes" context="sorttransformationentry|column">Column:</property>
<accessibility>
<relation type="label-for" target="ed_columns"/>
</accessibility>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">1</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="ed_columns">
<property name="visible">True</property>
<property name="can_focus">True</property>
<accessibility>
<relation type="labelled-by" target="label1"/>
</accessibility>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
</packing>
</child>
</object>
</interface>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment