summaryrefslogtreecommitdiff
path: root/chart2
diff options
context:
space:
mode:
authorbansan85 <legarrec.vincent@gmail.com>2016-12-21 02:27:04 +0100
committerjan iversen <jani@documentfoundation.org>2016-12-21 08:25:12 +0000
commita631e0fe94830fff5b81b4e852d37a666a9f3b9e (patch)
tree5d2928226893ad68dc93430d0bb4a3c882b498ab /chart2
parent4a410dd147f7160c1d62e3e0b67388a178d5136c (diff)
Add move column right and move row up in DataTable
Change-Id: Ib224a99636dfbb4451aa26263573af2f3d31b84a Reviewed-on: https://gerrit.libreoffice.org/32265 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: jan iversen <jani@documentfoundation.org> Tested-by: jan iversen <jani@documentfoundation.org>
Diffstat (limited to 'chart2')
-rw-r--r--chart2/source/controller/dialogs/DataBrowser.cxx77
-rw-r--r--chart2/source/controller/dialogs/DataBrowser.hxx12
-rw-r--r--chart2/source/controller/dialogs/dlg_DataEditor.cxx30
-rw-r--r--chart2/source/controller/inc/dlg_DataEditor.hxx6
-rw-r--r--chart2/uiconfig/ui/chartdatadialog.ui36
5 files changed, 137 insertions, 24 deletions
diff --git a/chart2/source/controller/dialogs/DataBrowser.cxx b/chart2/source/controller/dialogs/DataBrowser.cxx
index acf2195e717e..8c7af15f1936 100644
--- a/chart2/source/controller/dialogs/DataBrowser.cxx
+++ b/chart2/source/controller/dialogs/DataBrowser.cxx
@@ -497,7 +497,15 @@ bool DataBrowser::MayDeleteColumn() const
&& ( ColCount() > 2 );
}
-bool DataBrowser::MaySwapRows() const
+bool DataBrowser::MayMoveUpRows() const
+{
+ return ! IsReadOnly()
+ && ( !lcl_SeriesHeaderHasFocus( m_aSeriesHeaders ))
+ && ( GetCurRow() > 0 )
+ && ( GetCurRow() <= GetRowCount() - 1 );
+}
+
+bool DataBrowser::MayMoveDownRows() const
{
return ! IsReadOnly()
&& ( !lcl_SeriesHeaderHasFocus( m_aSeriesHeaders ))
@@ -505,7 +513,24 @@ bool DataBrowser::MaySwapRows() const
&& ( GetCurRow() < GetRowCount() - 1 );
}
-bool DataBrowser::MaySwapColumns() const
+bool DataBrowser::MayMoveLeftColumns() const
+{
+ // if a series header (except the last one) has the focus
+ {
+ sal_Int32 nColIndex(0);
+ if( lcl_SeriesHeaderHasFocus( m_aSeriesHeaders, &nColIndex ))
+ return (static_cast< sal_uInt32 >( nColIndex ) <= (m_aSeriesHeaders.size() - 1)) && (static_cast< sal_uInt32 >( nColIndex ) != 0);
+ }
+
+ sal_Int32 nColIdx = lcl_getColumnInDataOrHeader( GetCurColumnId(), m_aSeriesHeaders );
+ return ! IsReadOnly()
+ && ( nColIdx > 1 )
+ && ( nColIdx <= ColCount() - 2 )
+ && m_apDataBrowserModel.get()
+ && !m_apDataBrowserModel->isCategoriesColumn( nColIdx );
+}
+
+bool DataBrowser::MayMoveRightColumns() const
{
// if a series header (except the last one) has the focus
{
@@ -901,7 +926,29 @@ void DataBrowser::RemoveRow()
}
}
-void DataBrowser::SwapColumn()
+void DataBrowser::MoveLeftColumn()
+{
+ sal_Int32 nColIdx = lcl_getColumnInDataOrHeader( GetCurColumnId(), m_aSeriesHeaders );
+
+ if( nColIdx > 0 &&
+ m_apDataBrowserModel.get())
+ {
+ // save changes made to edit-field
+ if( IsModified() )
+ SaveModified();
+
+ m_apDataBrowserModel->swapDataSeries( nColIdx - 1 );
+
+ // keep cursor in swapped column
+ if(( 0 < GetCurColumnId() ) && ( GetCurColumnId() <= ColCount() - 1 ))
+ {
+ Dispatch( BROWSER_CURSORLEFT );
+ }
+ RenewTable();
+ }
+}
+
+void DataBrowser::MoveRightColumn()
{
sal_Int32 nColIdx = lcl_getColumnInDataOrHeader( GetCurColumnId(), m_aSeriesHeaders );
@@ -923,7 +970,29 @@ void DataBrowser::SwapColumn()
}
}
-void DataBrowser::SwapRow()
+void DataBrowser::MoveUpRow()
+{
+ sal_Int32 nRowIdx = lcl_getRowInData( GetCurRow());
+
+ if( nRowIdx > 0 &&
+ m_apDataBrowserModel.get())
+ {
+ // save changes made to edit-field
+ if( IsModified() )
+ SaveModified();
+
+ m_apDataBrowserModel->swapDataPointForAllSeries( nRowIdx - 1 );
+
+ // keep cursor in swapped row
+ if(( 0 < GetCurRow() ) && ( GetCurRow() <= GetRowCount() - 1 ))
+ {
+ Dispatch( BROWSER_CURSORUP );
+ }
+ RenewTable();
+ }
+}
+
+void DataBrowser::MoveDownRow()
{
sal_Int32 nRowIdx = lcl_getRowInData( GetCurRow());
diff --git a/chart2/source/controller/dialogs/DataBrowser.hxx b/chart2/source/controller/dialogs/DataBrowser.hxx
index 6eec67a58336..4c4135535c17 100644
--- a/chart2/source/controller/dialogs/DataBrowser.hxx
+++ b/chart2/source/controller/dialogs/DataBrowser.hxx
@@ -107,8 +107,10 @@ public:
bool MayDeleteRow() const;
bool MayDeleteColumn() const;
- bool MaySwapRows() const;
- bool MaySwapColumns() const;
+ bool MayMoveUpRows() const;
+ bool MayMoveDownRows() const;
+ bool MayMoveRightColumns() const;
+ bool MayMoveLeftColumns() const;
// mutators mutating data
void InsertRow();
@@ -120,8 +122,10 @@ public:
using BrowseBox::RemoveColumn;
using BrowseBox::MouseButtonDown;
- void SwapRow();
- void SwapColumn();
+ void MoveUpRow();
+ void MoveDownRow();
+ void MoveLeftColumn();
+ void MoveRightColumn();
void SetCursorMovedHdl( const Link<DataBrowser*,void>& rLink );
diff --git a/chart2/source/controller/dialogs/dlg_DataEditor.cxx b/chart2/source/controller/dialogs/dlg_DataEditor.cxx
index 14aed53385df..b4af99629772 100644
--- a/chart2/source/controller/dialogs/dlg_DataEditor.cxx
+++ b/chart2/source/controller/dialogs/dlg_DataEditor.cxx
@@ -64,8 +64,10 @@ DataEditor::DataEditor(vcl::Window* pParent,
TBI_DATA_INSERT_TEXT_COL = m_pTbxData->GetItemId("InsertTextColumn");
TBI_DATA_DELETE_ROW = m_pTbxData->GetItemId("RemoveRow");
TBI_DATA_DELETE_COL = m_pTbxData->GetItemId("RemoveColumn");
- TBI_DATA_SWAP_COL = m_pTbxData->GetItemId("SwapColumn");
- TBI_DATA_SWAP_ROW = m_pTbxData->GetItemId("SwapRow");
+ TBI_DATA_MOVE_LEFT_COL = m_pTbxData->GetItemId("MoveLeftColumn");
+ TBI_DATA_MOVE_RIGHT_COL = m_pTbxData->GetItemId("MoveRightColumn");
+ TBI_DATA_MOVE_UP_ROW = m_pTbxData->GetItemId("MoveUpRow");
+ TBI_DATA_MOVE_DOWN_ROW = m_pTbxData->GetItemId("MoveDownRow");
m_pTbxData->SetSelectHdl( LINK( this, DataEditor, ToolboxHdl ));
@@ -124,10 +126,14 @@ IMPL_LINK_NOARG(DataEditor, ToolboxHdl, ToolBox *, void)
m_xBrwData->RemoveRow();
else if (nId == TBI_DATA_DELETE_COL)
m_xBrwData->RemoveColumn();
- else if (nId == TBI_DATA_SWAP_COL)
- m_xBrwData->SwapColumn();
- else if (nId == TBI_DATA_SWAP_ROW)
- m_xBrwData->SwapRow();
+ else if (nId == TBI_DATA_MOVE_LEFT_COL)
+ m_xBrwData->MoveLeftColumn();
+ else if (nId == TBI_DATA_MOVE_RIGHT_COL)
+ m_xBrwData->MoveRightColumn();
+ else if (nId == TBI_DATA_MOVE_UP_ROW)
+ m_xBrwData->MoveUpRow();
+ else if (nId == TBI_DATA_MOVE_DOWN_ROW)
+ m_xBrwData->MoveDownRow();
}
// refresh toolbar icons according to currently selected cell in browse box
@@ -144,8 +150,10 @@ IMPL_LINK_NOARG(DataEditor, BrowserCursorMovedHdl, DataBrowser*, void)
m_pTbxData->EnableItem( TBI_DATA_DELETE_ROW, m_xBrwData->MayDeleteRow() );
m_pTbxData->EnableItem( TBI_DATA_DELETE_COL, m_xBrwData->MayDeleteColumn() );
- m_pTbxData->EnableItem( TBI_DATA_SWAP_COL, bIsDataValid && m_xBrwData->MaySwapColumns() );
- m_pTbxData->EnableItem( TBI_DATA_SWAP_ROW, bIsDataValid && m_xBrwData->MaySwapRows() );
+ m_pTbxData->EnableItem( TBI_DATA_MOVE_LEFT_COL, bIsDataValid && m_xBrwData->MayMoveLeftColumns() );
+ m_pTbxData->EnableItem( TBI_DATA_MOVE_RIGHT_COL, bIsDataValid && m_xBrwData->MayMoveRightColumns() );
+ m_pTbxData->EnableItem( TBI_DATA_MOVE_DOWN_ROW, bIsDataValid && m_xBrwData->MayMoveDownRows() );
+ m_pTbxData->EnableItem( TBI_DATA_MOVE_UP_ROW, bIsDataValid && m_xBrwData->MayMoveUpRows() );
}
// disable all modifying controls
@@ -159,8 +167,10 @@ void DataEditor::SetReadOnly( bool bReadOnly )
m_pTbxData->EnableItem( TBI_DATA_INSERT_TEXT_COL, false );
m_pTbxData->EnableItem( TBI_DATA_DELETE_ROW, false );
m_pTbxData->EnableItem( TBI_DATA_DELETE_COL, false );
- m_pTbxData->EnableItem( TBI_DATA_SWAP_COL, false );
- m_pTbxData->EnableItem( TBI_DATA_SWAP_ROW, false );
+ m_pTbxData->EnableItem( TBI_DATA_MOVE_LEFT_COL, false );
+ m_pTbxData->EnableItem( TBI_DATA_MOVE_RIGHT_COL, false );
+ m_pTbxData->EnableItem( TBI_DATA_MOVE_UP_ROW, false );
+ m_pTbxData->EnableItem( TBI_DATA_MOVE_DOWN_ROW, false );
}
m_xBrwData->SetReadOnly( m_bReadOnly );
diff --git a/chart2/source/controller/inc/dlg_DataEditor.hxx b/chart2/source/controller/inc/dlg_DataEditor.hxx
index baffffaea214..d6e085899e4c 100644
--- a/chart2/source/controller/inc/dlg_DataEditor.hxx
+++ b/chart2/source/controller/inc/dlg_DataEditor.hxx
@@ -58,8 +58,10 @@ private:
sal_uInt16 TBI_DATA_INSERT_TEXT_COL;
sal_uInt16 TBI_DATA_DELETE_ROW;
sal_uInt16 TBI_DATA_DELETE_COL;
- sal_uInt16 TBI_DATA_SWAP_COL;
- sal_uInt16 TBI_DATA_SWAP_ROW;
+ sal_uInt16 TBI_DATA_MOVE_LEFT_COL;
+ sal_uInt16 TBI_DATA_MOVE_RIGHT_COL;
+ sal_uInt16 TBI_DATA_MOVE_UP_ROW;
+ sal_uInt16 TBI_DATA_MOVE_DOWN_ROW;
bool m_bReadOnly;
VclPtr<DataBrowser> m_xBrwData;
diff --git a/chart2/uiconfig/ui/chartdatadialog.ui b/chart2/uiconfig/ui/chartdatadialog.ui
index d4bc8d0ea057..f5c3f2b15897 100644
--- a/chart2/uiconfig/ui/chartdatadialog.ui
+++ b/chart2/uiconfig/ui/chartdatadialog.ui
@@ -161,10 +161,24 @@
</packing>
</child>
<child>
- <object class="GtkToolButton" id="SwapColumn">
+ <object class="GtkToolButton" id="MoveLeftColumn">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="action_name">MoveLeftColumn</property>
+ <property name="label" translatable="yes">Move Series Left</property>
+ <property name="use_underline">True</property>
+ <property name="icon_name">chart2/res/dataeditor_icon08.png</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkToolButton" id="MoveRightColumn">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="action_name">SwapColumn</property>
+ <property name="action_name">MoveRightColumn</property>
<property name="label" translatable="yes">Move Series Right</property>
<property name="use_underline">True</property>
<property name="icon_name">chart2/res/dataeditor_icon05.png</property>
@@ -175,10 +189,24 @@
</packing>
</child>
<child>
- <object class="GtkToolButton" id="SwapRow">
+ <object class="GtkToolButton" id="MoveUpRow">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="action_name">MoveUpRow</property>
+ <property name="label" translatable="yes">Move Row Up</property>
+ <property name="use_underline">True</property>
+ <property name="icon_name">chart2/res/dataeditor_icon09.png</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkToolButton" id="MoveDownRow">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="action_name">SwapRow</property>
+ <property name="action_name">MoveDownRow</property>
<property name="label" translatable="yes">Move Row Down</property>
<property name="use_underline">True</property>
<property name="icon_name">chart2/res/dataeditor_icon06.png</property>