Kaydet (Commit) a631e0fe authored tarafından bansan85's avatar bansan85 Kaydeden (comit) jan iversen

Add move column right and move row up in DataTable

Change-Id: Ib224a99636dfbb4451aa26263573af2f3d31b84a
Reviewed-on: https://gerrit.libreoffice.org/32265Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarjan iversen <jani@documentfoundation.org>
Tested-by: 's avatarjan iversen <jani@documentfoundation.org>
üst 4a410dd1
......@@ -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());
......
......@@ -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 );
......
......@@ -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 );
......
......@@ -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;
......
......@@ -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>
......
This diff was suppressed by a .gitattributes entry.
This diff was suppressed by a .gitattributes entry.
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