summaryrefslogtreecommitdiff
path: root/dbaccess
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2020-06-26 20:57:29 +0100
committerCaolán McNamara <caolanm@redhat.com>2020-07-01 18:04:46 +0200
commitd2f1cd004310b9ea6654d17fddc11cb08e884c90 (patch)
tree2d2ad2d4afa5e2eb1c62a8e7ee1ac7bd0bf4f791 /dbaccess
parent96dc14a041ea803f0d194a47a8f3d62f6cfa37be (diff)
weld EditControl for browsebox
Change-Id: I8f21c12f7ee10e1b9ba883a8ff01bb5252429f09 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97353 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'dbaccess')
-rw-r--r--dbaccess/source/ui/browser/brwctrlr.cxx1
-rw-r--r--dbaccess/source/ui/browser/sbagrid.cxx5
-rw-r--r--dbaccess/source/ui/control/TableGrantCtrl.cxx11
-rw-r--r--dbaccess/source/ui/inc/TableGrantCtrl.hxx4
-rw-r--r--dbaccess/source/ui/querydesign/SelectionBrowseBox.cxx42
-rw-r--r--dbaccess/source/ui/querydesign/SelectionBrowseBox.hxx2
-rw-r--r--dbaccess/source/ui/tabledesign/TEditControl.cxx88
-rw-r--r--dbaccess/source/ui/tabledesign/TEditControl.hxx6
-rw-r--r--dbaccess/source/ui/tabledesign/TableUndo.cxx2
9 files changed, 99 insertions, 62 deletions
diff --git a/dbaccess/source/ui/browser/brwctrlr.cxx b/dbaccess/source/ui/browser/brwctrlr.cxx
index 4fb84775099a..c6a414af1f18 100644
--- a/dbaccess/source/ui/browser/brwctrlr.cxx
+++ b/dbaccess/source/ui/browser/brwctrlr.cxx
@@ -1942,7 +1942,6 @@ void SbaXDataBrowserController::Execute(sal_uInt16 nId, const Sequence< Property
}
if (ID_BROWSER_CUT == nId || ID_BROWSER_PASTE == nId)
{
- xCurrentController->SetModified();
rEdit.Modify();
}
}
diff --git a/dbaccess/source/ui/browser/sbagrid.cxx b/dbaccess/source/ui/browser/sbagrid.cxx
index b035a9eeb365..2089f5dc49a1 100644
--- a/dbaccess/source/ui/browser/sbagrid.cxx
+++ b/dbaccess/source/ui/browser/sbagrid.cxx
@@ -1219,7 +1219,7 @@ sal_Int8 SbaGridControl::AcceptDrop( const BrowserAcceptDropEvent& rEvt )
break;
CellControllerRef xCurrentController = Controller();
- if (xCurrentController.is() && xCurrentController->IsModified() && ((nRow != GetCurRow()) || (nCol != GetCurColumnId())))
+ if (xCurrentController.is() && xCurrentController->IsValueChangedFromSaved() && ((nRow != GetCurRow()) || (nCol != GetCurColumnId())))
// the current controller is modified and the user wants to drop in another cell -> no chance
// (when leaving the modified cell an error may occur - this is deadly while dragging)
break;
@@ -1320,9 +1320,8 @@ sal_Int8 SbaGridControl::ExecuteDrop( const BrowserExecuteDropEvent& rEvt )
return DND_ACTION_NONE;
rEdit.SetText( sDropped );
- xCurrentController->SetModified();
+ // SetText itself doesn't call a Modify as it isn't a user interaction
rEdit.Modify();
- // SetText itself doesn't call a Modify as it isn't a user interaction
return DND_ACTION_COPY;
}
diff --git a/dbaccess/source/ui/control/TableGrantCtrl.cxx b/dbaccess/source/ui/control/TableGrantCtrl.cxx
index 373340afd776..729106eed4a3 100644
--- a/dbaccess/source/ui/control/TableGrantCtrl.cxx
+++ b/dbaccess/source/ui/control/TableGrantCtrl.cxx
@@ -136,9 +136,10 @@ void OTableGrantControl::Init()
m_pCheckCell = VclPtr<CheckBoxControl>::Create( &GetDataWindow() );
m_pCheckCell->GetBox().EnableTriState(false);
- m_pEdit = VclPtr<Edit>::Create( &GetDataWindow() );
- m_pEdit->SetReadOnly();
- m_pEdit->Enable(false);
+ m_pEdit = VclPtr<EditControl>::Create(&GetDataWindow());
+ weld::Entry& rEntry = m_pEdit->get_widget();
+ rEntry.set_editable(false);
+ rEntry.set_sensitive(false);
}
UpdateTables();
@@ -250,7 +251,7 @@ bool OTableGrantControl::SaveModified()
::dbtools::showError(::dbtools::SQLExceptionInfo(e),VCLUnoHelper::GetInterface(GetParent()),m_xContext);
}
if(bErg && Controller().is())
- Controller()->ClearModified();
+ Controller()->SaveValue();
if(!bErg)
UpdateTables();
@@ -275,7 +276,7 @@ void OTableGrantControl::InitController( CellControllerRef& /*rController*/, lon
OUString sTablename = m_aTableNames[nRow];
// special case for tablename
if(nColumnId == COL_TABLE_NAME)
- m_pEdit->SetText(sTablename);
+ m_pEdit->get_widget().set_text(sTablename);
else
{
// get the privileges from the user
diff --git a/dbaccess/source/ui/inc/TableGrantCtrl.hxx b/dbaccess/source/ui/inc/TableGrantCtrl.hxx
index 7f7062f52842..e15e08e902aa 100644
--- a/dbaccess/source/ui/inc/TableGrantCtrl.hxx
+++ b/dbaccess/source/ui/inc/TableGrantCtrl.hxx
@@ -51,8 +51,8 @@ class OTableGrantControl : public ::svt::EditBrowseBox
mutable TTablePrivilegeMap m_aPrivMap;
OUString m_sUserName;
- VclPtr< ::svt::CheckBoxControl> m_pCheckCell;
- VclPtr<Edit> m_pEdit;
+ VclPtr<::svt::CheckBoxControl> m_pCheckCell;
+ VclPtr<::svt::EditControl> m_pEdit;
long m_nDataPos;
ImplSVEvent * m_nDeactivateEvent;
diff --git a/dbaccess/source/ui/querydesign/SelectionBrowseBox.cxx b/dbaccess/source/ui/querydesign/SelectionBrowseBox.cxx
index f0e221fe109d..ecdd09bd4fb4 100644
--- a/dbaccess/source/ui/querydesign/SelectionBrowseBox.cxx
+++ b/dbaccess/source/ui/querydesign/SelectionBrowseBox.cxx
@@ -119,7 +119,7 @@ OSelectionBrowseBox::OSelectionBrowseBox( vcl::Window* pParent )
| BrowserMode::HLINES | BrowserMode::VLINES
| BrowserMode::HEADERBAR_NEW ;
- m_pTextCell = VclPtr<Edit>::Create(&GetDataWindow(), 0);
+ m_pTextCell = VclPtr<EditControl>::Create(&GetDataWindow());
m_pVisibleCell = VclPtr<CheckBoxControl>::Create(&GetDataWindow());
m_pTableCell = VclPtr<ListBoxControl>::Create(&GetDataWindow());
m_pFieldCell = VclPtr<ComboBoxControl>::Create(&GetDataWindow());
@@ -554,7 +554,7 @@ void OSelectionBrowseBox::InitController(CellControllerRef& /*rController*/, lon
setTextCellContext(pEntry,pEntry->GetCriteria( nIdx ),HID_QRYDGN_ROW_CRIT);
}
}
- Controller()->ClearModified();
+ Controller()->SaveValue();
}
void OSelectionBrowseBox::notifyTableFieldChanged(const OUString& _sOldAlias, const OUString& _sAlias, bool& _bListAction, sal_uInt16 _nColumnId)
@@ -904,7 +904,7 @@ bool OSelectionBrowseBox::SaveModified()
bool bError = false;
bool bListAction = false;
- if (pEntry.is() && Controller().is() && Controller()->IsModified())
+ if (pEntry.is() && Controller().is() && Controller()->IsValueChangedFromSaved())
{
// for the Undo-action
OUString strOldCellContents,sNewValue;
@@ -1038,7 +1038,7 @@ bool OSelectionBrowseBox::SaveModified()
case BROW_COLUMNALIAS_ROW:
strOldCellContents = pEntry->GetFieldAlias();
- pEntry->SetFieldAlias(m_pTextCell->GetText());
+ pEntry->SetFieldAlias(m_pTextCell->get_widget().get_text());
sNewValue = pEntry->GetFieldAlias();
break;
case BROW_FUNCTION_ROW:
@@ -1090,7 +1090,7 @@ bool OSelectionBrowseBox::SaveModified()
break;
sal_uInt16 nIdx = sal_uInt16(nRow - BROW_CRIT1_ROW);
- OUString aText = comphelper::string::stripStart(m_pTextCell->GetText(), ' ');
+ OUString aText = comphelper::string::stripStart(m_pTextCell->get_widget().get_text(), ' ');
OUString aCrit;
if(!aText.isEmpty())
@@ -1176,7 +1176,7 @@ bool OSelectionBrowseBox::SaveModified()
}
}
if( !bError && Controller().is() )
- Controller()->ClearModified();
+ Controller()->SaveValue();
RowModified(GetCurRow(), GetCurColumnId());
@@ -2367,8 +2367,12 @@ bool OSelectionBrowseBox::isCutAllowed() const
break;
}
default:
- bCutAllowed = !m_pTextCell->GetSelected().isEmpty();
+ {
+ weld::Entry& rEntry = m_pTextCell->get_widget();
+ int nStartPos, nEndPos;
+ bCutAllowed = rEntry.get_selection_bounds(nStartPos, nEndPos);
break;
+ }
}
return bCutAllowed;
}
@@ -2385,8 +2389,10 @@ void OSelectionBrowseBox::cut()
break;
}
default:
- m_pTextCell->Cut();
- m_pTextCell->SetModifyFlag();
+ {
+ weld::Entry& rEntry = m_pTextCell->get_widget();
+ rEntry.cut_clipboard();
+ }
}
SaveModified();
RowModified(GetBrowseRow(nRow), GetCurColumnId());
@@ -2406,8 +2412,11 @@ void OSelectionBrowseBox::paste()
break;
}
default:
- m_pTextCell->Paste();
- m_pTextCell->SetModifyFlag();
+ {
+ weld::Entry& rEntry = m_pTextCell->get_widget();
+ rEntry.paste_clipboard();
+ break;
+ }
}
RowModified(GetBrowseRow(nRow), GetCurColumnId());
invalidateUndoRedo();
@@ -2446,7 +2455,11 @@ void OSelectionBrowseBox::copy()
break;
}
default:
- m_pTextCell->Copy();
+ {
+ weld::Entry& rEntry = m_pTextCell->get_widget();
+ rEntry.copy_clipboard();
+ break;
+ }
}
}
@@ -2514,8 +2527,9 @@ void OSelectionBrowseBox::enableControl(const OTableFieldDescRef& _rEntry,Window
void OSelectionBrowseBox::setTextCellContext(const OTableFieldDescRef& _rEntry,const OUString& _sText,const OString& _sHelpId)
{
- m_pTextCell->SetText(_sText);
- m_pTextCell->ClearModifyFlag();
+ weld::Entry& rEntry = m_pTextCell->get_widget();
+ rEntry.set_text(_sText);
+ rEntry.save_value();
if (!m_pTextCell->HasFocus())
m_pTextCell->GrabFocus();
diff --git a/dbaccess/source/ui/querydesign/SelectionBrowseBox.hxx b/dbaccess/source/ui/querydesign/SelectionBrowseBox.hxx
index 1668b4913edf..325554b6f0bc 100644
--- a/dbaccess/source/ui/querydesign/SelectionBrowseBox.hxx
+++ b/dbaccess/source/ui/querydesign/SelectionBrowseBox.hxx
@@ -55,7 +55,7 @@ namespace dbaui
long m_nSeekRow;
BrowserMode m_nMode; // remember the BrowseModes
- VclPtr<Edit> m_pTextCell;
+ VclPtr< ::svt::EditControl> m_pTextCell;
VclPtr< ::svt::CheckBoxControl> m_pVisibleCell;
VclPtr< ::svt::ComboBoxControl> m_pFieldCell;
VclPtr< ::svt::ListBoxControl> m_pFunctionCell;
diff --git a/dbaccess/source/ui/tabledesign/TEditControl.cxx b/dbaccess/source/ui/tabledesign/TEditControl.cxx
index 6f5128faa6e5..ee2cb2c1fdf2 100644
--- a/dbaccess/source/ui/tabledesign/TEditControl.cxx
+++ b/dbaccess/source/ui/tabledesign/TEditControl.cxx
@@ -211,11 +211,11 @@ void OTableEditorCtrl::InitCellController()
pTypeCell = VclPtr<ListBoxControl>::Create( &GetDataWindow() );
// Cell description
- pDescrCell = VclPtr<Edit>::Create( &GetDataWindow(), WB_LEFT );
- pDescrCell->SetMaxTextLen( MAX_DESCR_LEN );
+ pDescrCell = VclPtr<EditControl>::Create(&GetDataWindow());
+ pDescrCell->get_widget().set_max_length(MAX_DESCR_LEN);
- pHelpTextCell = VclPtr<Edit>::Create( &GetDataWindow(), WB_LEFT );
- pHelpTextCell->SetMaxTextLen( MAX_DESCR_LEN );
+ pHelpTextCell = VclPtr<EditControl>::Create(&GetDataWindow());
+ pHelpTextCell->get_widget().set_max_length(MAX_DESCR_LEN);
pNameCell->SetHelpId(HID_TABDESIGN_NAMECELL);
pTypeCell->SetHelpId(HID_TABDESIGN_TYPECELL);
@@ -238,8 +238,8 @@ void OTableEditorCtrl::InitCellController()
void OTableEditorCtrl::ClearModified()
{
pNameCell->ClearModifyFlag();
- pDescrCell->ClearModifyFlag();
- pHelpTextCell->ClearModifyFlag();
+ pDescrCell->get_widget().save_value();
+ pHelpTextCell->get_widget().save_value();
pTypeCell->get_widget().save_value();
}
@@ -379,18 +379,23 @@ void OTableEditorCtrl::InitController(CellControllerRef&, long nRow, sal_uInt16
break;
case HELP_TEXT:
+ {
if( pActFieldDescr )
aInitString = pActFieldDescr->GetHelpText();
- pHelpTextCell->SetText( aInitString );
- pHelpTextCell->SaveValue();
+ weld::Entry& rEntry = pHelpTextCell->get_widget();
+ rEntry.set_text(aInitString);
+ rEntry.save_value();
break;
+ }
case COLUMN_DESCRIPTION:
+ {
if( pActFieldDescr )
aInitString = pActFieldDescr->GetDescription();
- pDescrCell->SetText( aInitString );
- pDescrCell->SaveValue();
+ weld::Entry& rEntry = pDescrCell->get_widget();
+ rEntry.set_text(aInitString);
+ rEntry.save_value();
break;
-
+ }
}
}
@@ -526,25 +531,27 @@ void OTableEditorCtrl::SaveData(long nRow, sal_uInt16 nColId)
case HELP_TEXT:
{
// if the current field description is NULL, set Default
+ weld::Entry& rEntry = pHelpTextCell->get_widget();
if( !pActFieldDescr )
{
- pHelpTextCell->SetText(OUString());
- pHelpTextCell->ClearModifyFlag();
+ rEntry.set_text(OUString());
+ rEntry.save_value();
}
else
- pActFieldDescr->SetHelpText( pHelpTextCell->GetText() );
+ pActFieldDescr->SetHelpText(rEntry.get_text());
break;
}
case COLUMN_DESCRIPTION:
{
// Set the default if the field description is null
+ weld::Entry& rEntry = pDescrCell->get_widget();
if( !pActFieldDescr )
{
- pDescrCell->SetText(OUString());
- pDescrCell->ClearModifyFlag();
+ rEntry.set_text(OUString());
+ rEntry.save_value();
}
else
- pActFieldDescr->SetDescription( pDescrCell->GetText() );
+ pActFieldDescr->SetDescription(rEntry.get_text());
break;
}
case FIELD_PROPERTY_DEFAULT:
@@ -670,9 +677,6 @@ void OTableEditorCtrl::CellModified( long nRow, sal_uInt16 nColId )
// SaveData could create an undo action as well
GetUndoManager().LeaveListAction();
RowModified(nRow);
- CellControllerRef xController(Controller());
- if(xController.is())
- xController->SetModified();
// Set the Modify flag
GetView()->getController().setModified( true );
@@ -1075,16 +1079,23 @@ bool OTableEditorCtrl::IsCutAllowed()
bool bIsCutAllowed = (GetView()->getController().isAddAllowed() && GetView()->getController().isDropAllowed()) ||
GetView()->getController().isAlterAllowed();
- if(bIsCutAllowed)
+ if (bIsCutAllowed)
{
+ int nStartPos, nEndPos;
switch(m_eChildFocus)
{
case DESCRIPTION:
- bIsCutAllowed = !pDescrCell->GetSelected().isEmpty();
+ {
+ weld::Entry& rEntry = pDescrCell->get_widget();
+ bIsCutAllowed = rEntry.get_selection_bounds(nStartPos, nEndPos);
break;
+ }
case HELPTEXT:
- bIsCutAllowed = !pHelpTextCell->GetSelected().isEmpty();
+ {
+ weld::Entry& rEntry = pHelpTextCell->get_widget();
+ bIsCutAllowed = rEntry.get_selection_bounds(nStartPos, nEndPos);
break;
+ }
case NAME:
bIsCutAllowed = !pNameCell->GetSelected().isEmpty();
break;
@@ -1103,10 +1114,17 @@ bool OTableEditorCtrl::IsCutAllowed()
bool OTableEditorCtrl::IsCopyAllowed()
{
bool bIsCopyAllowed = false;
- if(m_eChildFocus == DESCRIPTION )
- bIsCopyAllowed = !pDescrCell->GetSelected().isEmpty();
+ int nStartPos, nEndPos;
+ if (m_eChildFocus == DESCRIPTION )
+ {
+ weld::Entry& rEntry = pDescrCell->get_widget();
+ bIsCopyAllowed = rEntry.get_selection_bounds(nStartPos, nEndPos);
+ }
else if(HELPTEXT == m_eChildFocus )
- bIsCopyAllowed = !pHelpTextCell->GetSelected().isEmpty();
+ {
+ weld::Entry& rEntry = pHelpTextCell->get_widget();
+ bIsCopyAllowed = rEntry.get_selection_bounds(nStartPos, nEndPos);
+ }
else if(m_eChildFocus == NAME)
bIsCopyAllowed = !pNameCell->GetSelected().isEmpty();
else if(m_eChildFocus == ROW)
@@ -1165,7 +1183,7 @@ void OTableEditorCtrl::cut()
if(GetView()->getController().isAlterAllowed())
{
SaveData(-1,COLUMN_DESCRIPTION);
- pDescrCell->Cut();
+ pDescrCell->get_widget().cut_clipboard();
CellModified(-1,COLUMN_DESCRIPTION);
}
}
@@ -1174,7 +1192,7 @@ void OTableEditorCtrl::cut()
if(GetView()->getController().isAlterAllowed())
{
SaveData(-1,HELP_TEXT);
- pHelpTextCell->Cut();
+ pHelpTextCell->get_widget().cut_clipboard();
CellModified(-1,HELP_TEXT);
}
}
@@ -1193,9 +1211,15 @@ void OTableEditorCtrl::copy()
else if(m_eChildFocus == NAME)
pNameCell->Copy();
else if(HELPTEXT == m_eChildFocus )
- pHelpTextCell->Copy();
+ {
+ weld::Entry& rEntry = pHelpTextCell->get_widget();
+ rEntry.copy_clipboard();
+ }
else if(m_eChildFocus == DESCRIPTION )
- pDescrCell->Copy();
+ {
+ weld::Entry& rEntry = pDescrCell->get_widget();
+ rEntry.copy_clipboard();
+ }
}
void OTableEditorCtrl::paste()
@@ -1219,7 +1243,7 @@ void OTableEditorCtrl::paste()
{
if(GetView()->getController().isAlterAllowed())
{
- pHelpTextCell->Paste();
+ pHelpTextCell->get_widget().paste_clipboard();
CellModified();
}
}
@@ -1227,7 +1251,7 @@ void OTableEditorCtrl::paste()
{
if(GetView()->getController().isAlterAllowed())
{
- pDescrCell->Paste();
+ pDescrCell->get_widget().paste_clipboard();
CellModified();
}
}
diff --git a/dbaccess/source/ui/tabledesign/TEditControl.hxx b/dbaccess/source/ui/tabledesign/TEditControl.hxx
index 44469bf29d1e..69039f3d92f4 100644
--- a/dbaccess/source/ui/tabledesign/TEditControl.hxx
+++ b/dbaccess/source/ui/tabledesign/TEditControl.hxx
@@ -45,9 +45,9 @@ namespace dbaui
std::vector< std::shared_ptr<OTableRow> >* m_pRowList;
VclPtr<OSQLNameEdit> pNameCell;
- VclPtr< ::svt::ListBoxControl> pTypeCell;
- VclPtr<Edit> pHelpTextCell;
- VclPtr<Edit> pDescrCell;
+ VclPtr<::svt::ListBoxControl> pTypeCell;
+ VclPtr<::svt::EditControl> pHelpTextCell;
+ VclPtr<::svt::EditControl> pDescrCell;
VclPtr<OTableFieldDescWin> pDescrWin; // properties of one column
std::shared_ptr<OTableRow> pActRow;
diff --git a/dbaccess/source/ui/tabledesign/TableUndo.cxx b/dbaccess/source/ui/tabledesign/TableUndo.cxx
index 3824880de551..6cb71bc9502c 100644
--- a/dbaccess/source/ui/tabledesign/TableUndo.cxx
+++ b/dbaccess/source/ui/tabledesign/TableUndo.cxx
@@ -89,7 +89,7 @@ void OTableDesignCellUndoAct::Undo()
{
CellControllerRef xController = m_pTabDgnCtrl->Controller();
if ( xController.is() )
- xController->ClearModified();
+ xController->SaveValue();
m_pTabDgnCtrl->GetView()->getController().setModified(false);
}