weld ScDbNameDlg
Change-Id: I676909cbb4067ce69d5327403dd25cc80c4cbc4b
Reviewed-on: https://gerrit.libreoffice.org/70593
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
diff --git a/include/vcl/weld.hxx b/include/vcl/weld.hxx
index 4074df1..77205ce 100644
--- a/include/vcl/weld.hxx
+++ b/include/vcl/weld.hxx
@@ -285,11 +285,14 @@ public:
virtual int get_vscroll_width() const = 0;
};
class Label;
class VCL_DLLPUBLIC Frame : virtual public Container
{
public:
virtual void set_label(const OUString& rText) = 0;
virtual OUString get_label() const = 0;
virtual std::unique_ptr<Label> weld_label_widget() const = 0;
};
class VCL_DLLPUBLIC Notebook : virtual public Container
diff --git a/sc/source/ui/dbgui/dbnamdlg.cxx b/sc/source/ui/dbgui/dbnamdlg.cxx
index 067666b..0299367 100644
--- a/sc/source/ui/dbgui/dbnamdlg.cxx
+++ b/sc/source/ui/dbgui/dbnamdlg.cxx
@@ -56,8 +56,8 @@ namespace
class DBSaveData
{
public:
DBSaveData( Edit& rEd, CheckBox& rHdr, CheckBox& rTot, CheckBox& rSize, CheckBox& rFmt,
CheckBox& rStrip, ScRange& rArea )
DBSaveData( formula::WeldRefEdit& rEd, weld::CheckButton& rHdr, weld::CheckButton& rTot, weld::CheckButton& rSize, weld::CheckButton& rFmt,
weld::CheckButton& rStrip, ScRange& rArea )
: rEdAssign(rEd)
, rBtnHeader(rHdr)
, rBtnTotals(rTot)
@@ -77,12 +77,12 @@ public:
void Restore();
private:
Edit& rEdAssign;
CheckBox& rBtnHeader;
CheckBox& rBtnTotals;
CheckBox& rBtnSize;
CheckBox& rBtnFormat;
CheckBox& rBtnStrip;
formula::WeldRefEdit& rEdAssign;
weld::CheckButton& rBtnHeader;
weld::CheckButton& rBtnTotals;
weld::CheckButton& rBtnSize;
weld::CheckButton& rBtnFormat;
weld::CheckButton& rBtnStrip;
ScRange& rCurArea;
OUString aStr;
ScRange aArea;
@@ -98,11 +98,11 @@ void DBSaveData::Save()
{
aArea = rCurArea;
aStr = rEdAssign.GetText();
bHeader = rBtnHeader.IsChecked();
bTotals = rBtnTotals.IsChecked();
bSize = rBtnSize.IsChecked();
bFormat = rBtnFormat.IsChecked();
bStrip = rBtnStrip.IsChecked();
bHeader = rBtnHeader.get_active();
bTotals = rBtnTotals.get_active();
bSize = rBtnSize.get_active();
bFormat = rBtnFormat.get_active();
bStrip = rBtnStrip.get_active();
bDirty = true;
}
@@ -112,103 +112,81 @@ void DBSaveData::Restore()
{
rCurArea = aArea;
rEdAssign.SetText( aStr );
rBtnHeader.Check ( bHeader );
rBtnTotals.Check ( bTotals );
rBtnSize.Check ( bSize );
rBtnFormat.Check ( bFormat );
rBtnStrip.Check ( bStrip );
rBtnHeader.set_active ( bHeader );
rBtnTotals.set_active ( bTotals );
rBtnSize.set_active ( bSize );
rBtnFormat.set_active ( bFormat );
rBtnStrip.set_active ( bStrip );
bDirty = false;
}
}
// class ScDbNameDlg
ScDbNameDlg::ScDbNameDlg(SfxBindings* pB, SfxChildWindow* pCW, vcl::Window* pParent,
ScDbNameDlg::ScDbNameDlg(SfxBindings* pB, SfxChildWindow* pCW, weld::Window* pParent,
ScViewData* ptrViewData)
: ScAnyRefDlg(pB, pCW, pParent,
"DefineDatabaseRangeDialog",
"modules/scalc/ui/definedatabaserangedialog.ui")
: ScAnyRefDlgController(pB, pCW, pParent,
"modules/scalc/ui/definedatabaserangedialog.ui", "DefineDatabaseRangeDialog")
, pViewData(ptrViewData)
, pDoc(ptrViewData->GetDocument())
, bRefInputMode(false)
, aAddrDetails(pDoc->GetAddressConvention(), 0, 0)
, aLocalDbCol(*(pDoc->GetDBCollection()))
, m_xEdName(m_xBuilder->weld_entry_tree_view("entrygrid", "entry", "entry-list"))
, m_xAssignFrame(m_xBuilder->weld_frame("RangeFrame"))
, m_xEdAssign(new formula::WeldRefEdit(m_xBuilder->weld_entry("assign")))
, m_xRbAssign(new formula::WeldRefButton(m_xBuilder->weld_button("assignrb")))
, m_xOptions(m_xBuilder->weld_widget("Options"))
, m_xBtnHeader(m_xBuilder->weld_check_button("ContainsColumnLabels"))
, m_xBtnTotals(m_xBuilder->weld_check_button("ContainsTotalsRow"))
, m_xBtnDoSize(m_xBuilder->weld_check_button("InsertOrDeleteCells"))
, m_xBtnKeepFmt(m_xBuilder->weld_check_button("KeepFormatting"))
, m_xBtnStripData(m_xBuilder->weld_check_button("DontSaveImportedData"))
, m_xFTSource(m_xBuilder->weld_label("Source"))
, m_xFTOperations(m_xBuilder->weld_label("Operations"))
, m_xBtnOk(m_xBuilder->weld_button("ok"))
, m_xBtnCancel(m_xBuilder->weld_button("cancel"))
, m_xBtnAdd(m_xBuilder->weld_button("add"))
, m_xBtnRemove(m_xBuilder->weld_button("delete"))
, m_xModifyPB(m_xBuilder->weld_button("modify"))
, m_xInvalidFT(m_xBuilder->weld_label("invalid"))
, m_xFrameLabel(m_xAssignFrame->weld_label_widget())
, m_xExpander(m_xBuilder->weld_expander("more"))
{
get(m_pEdName, "entry");
m_pEdName->set_height_request(m_pEdName->GetOptimalSize().Height() + m_pEdName->GetTextHeight() * 8);
get(m_pEdAssign, "assign");
get(m_pAssignFrame, "RangeFrame");
m_pEdAssign->SetReferences(this, m_pAssignFrame->get_label_widget());
get(m_pRbAssign, "assignrb");
m_pRbAssign->SetReferences(this, m_pEdAssign);
get(m_pOptions, "Options");
get(m_pBtnHeader, "ContainsColumnLabels");
get(m_pBtnTotals, "ContainsTotalsRow");
get(m_pBtnDoSize, "InsertOrDeleteCells");
get(m_pBtnKeepFmt, "KeepFormatting");
get(m_pBtnStripData, "DontSaveImportedData");
get(m_pFTSource, "Source");
get(m_pFTOperations, "Operations");
get(m_pBtnOk, "ok");
get(m_pBtnCancel, "cancel");
get(m_pBtnAdd, "add");
aStrAdd = m_pBtnAdd->GetText();
aStrModify = get<vcl::Window>("modify")->GetText();
get(m_pBtnRemove, "delete");
aStrInvalid = get<vcl::Window>("invalid")->GetText();
m_pFTSource->SetStyle(m_pFTSource->GetStyle() | WB_NOLABEL);
m_pFTOperations->SetStyle(m_pFTOperations->GetStyle() | WB_NOLABEL);
m_xEdName->set_height_request_by_rows(8);
m_xEdAssign->SetReferences(this, m_xFrameLabel.get());
m_xRbAssign->SetReferences(this, m_xEdAssign.get());
aStrAdd = m_xBtnAdd->get_label();
aStrModify = m_xModifyPB->get_label();
aStrInvalid = m_xInvalidFT->get_label();
// so that the strings in the resource can stay with fixed texts:
aStrSource = m_pFTSource->GetText();
aStrOperations = m_pFTOperations->GetText();
aStrSource = m_xFTSource->get_label();
aStrOperations = m_xFTOperations->get_label();
pSaveObj = new DBSaveData( *m_pEdAssign, *m_pBtnHeader, *m_pBtnTotals,
*m_pBtnDoSize, *m_pBtnKeepFmt, *m_pBtnStripData, theCurArea );
pSaveObj = new DBSaveData( *m_xEdAssign, *m_xBtnHeader, *m_xBtnTotals,
*m_xBtnDoSize, *m_xBtnKeepFmt, *m_xBtnStripData, theCurArea );
Init();
}
ScDbNameDlg::~ScDbNameDlg()
{
disposeOnce();
}
void ScDbNameDlg::dispose()
{
DELETEZ( pSaveObj );
m_pEdName.clear();
m_pAssignFrame.clear();
m_pEdAssign.clear();
m_pRbAssign.clear();
m_pOptions.clear();
m_pBtnHeader.clear();
m_pBtnTotals.clear();
m_pBtnDoSize.clear();
m_pBtnKeepFmt.clear();
m_pBtnStripData.clear();
m_pFTSource.clear();
m_pFTOperations.clear();
m_pBtnOk.clear();
m_pBtnCancel.clear();
m_pBtnAdd.clear();
m_pBtnRemove.clear();
ScAnyRefDlg::dispose();
}
void ScDbNameDlg::Init()
{
m_pBtnHeader->Check(); // Default: with column headers
m_pBtnTotals->Check( false ); // Default: without totals row
m_pBtnDoSize->Check();
m_pBtnKeepFmt->Check();
m_xBtnHeader->set_active(true); // Default: with column headers
m_xBtnTotals->set_active( false ); // Default: without totals row
m_xBtnDoSize->set_active(true);
m_xBtnKeepFmt->set_active(true);
m_pBtnOk->SetClickHdl ( LINK( this, ScDbNameDlg, OkBtnHdl ) );
m_pBtnCancel->SetClickHdl ( LINK( this, ScDbNameDlg, CancelBtnHdl ) );
m_pBtnAdd->SetClickHdl ( LINK( this, ScDbNameDlg, AddBtnHdl ) );
m_pBtnRemove->SetClickHdl ( LINK( this, ScDbNameDlg, RemoveBtnHdl ) );
m_pEdName->SetModifyHdl ( LINK( this, ScDbNameDlg, NameModifyHdl ) );
m_pEdAssign->SetModifyHdl ( LINK( this, ScDbNameDlg, AssModifyHdl ) );
m_xBtnOk->connect_clicked ( LINK( this, ScDbNameDlg, OkBtnHdl ) );
m_xBtnCancel->connect_clicked ( LINK( this, ScDbNameDlg, CancelBtnHdl ) );
m_xBtnAdd->connect_clicked ( LINK( this, ScDbNameDlg, AddBtnHdl ) );
m_xBtnRemove->connect_clicked ( LINK( this, ScDbNameDlg, RemoveBtnHdl ) );
m_xEdName->connect_changed( LINK( this, ScDbNameDlg, NameModifyHdl ) );
m_xEdAssign->SetModifyHdl ( LINK( this, ScDbNameDlg, AssModifyHdl ) );
UpdateNames();
OUString theAreaStr;
@@ -254,24 +232,24 @@ void ScDbNameDlg::Init()
{
OUString aDBName = pDBData->GetName();
if ( aDBName != STR_DB_LOCAL_NONAME )
m_pEdName->SetText(aDBName);
m_xEdName->set_entry_text(aDBName);
m_pBtnHeader->Check( pDBData->HasHeader() );
m_pBtnTotals->Check( pDBData->HasTotals() );
m_pBtnDoSize->Check( pDBData->IsDoSize() );
m_pBtnKeepFmt->Check( pDBData->IsKeepFmt() );
m_pBtnStripData->Check( pDBData->IsStripData() );
m_xBtnHeader->set_active( pDBData->HasHeader() );
m_xBtnTotals->set_active( pDBData->HasTotals() );
m_xBtnDoSize->set_active( pDBData->IsDoSize() );
m_xBtnKeepFmt->set_active( pDBData->IsKeepFmt() );
m_xBtnStripData->set_active( pDBData->IsStripData() );
SetInfoStrings( pDBData );
}
}
}
}
m_pEdAssign->SetText( theAreaStr );
m_pEdName->GrabFocus();
m_xEdAssign->SetText( theAreaStr );
m_xEdName->grab_focus();
bSaved = true;
pSaveObj->Save();
NameModifyHdl( *m_pEdName );
NameModifyHdl( *m_xEdName );
}
void ScDbNameDlg::SetInfoStrings( const ScDBData* pDBData )
@@ -283,7 +261,7 @@ void ScDbNameDlg::SetInfoStrings( const ScDBData* pDBData )
aBuf.append(' ');
aBuf.append(pDBData->GetSourceString());
}
m_pFTSource->SetText(aBuf.makeStringAndClear());
m_xFTSource->set_label(aBuf.makeStringAndClear());
aBuf.append(aStrOperations);
if (pDBData)
@@ -291,7 +269,7 @@ void ScDbNameDlg::SetInfoStrings( const ScDBData* pDBData )
aBuf.append(' ');
aBuf.append(pDBData->GetOperations());
}
m_pFTOperations->SetText(aBuf.makeStringAndClear());
m_xFTOperations->set_label(aBuf.makeStringAndClear());
}
// Transfer of a table area selected with the mouse, which is then displayed
@@ -299,30 +277,30 @@ void ScDbNameDlg::SetInfoStrings( const ScDBData* pDBData )
void ScDbNameDlg::SetReference( const ScRange& rRef, ScDocument* pDocP )
{
if ( m_pEdAssign->IsEnabled() )
if (m_xEdAssign->GetWidget()->get_sensitive())
{
if ( rRef.aStart != rRef.aEnd )
RefInputStart(m_pEdAssign);
RefInputStart(m_xEdAssign.get());
theCurArea = rRef;
OUString aRefStr(theCurArea.Format(ScRefFlags::RANGE_ABS_3D, pDocP, aAddrDetails));
m_pEdAssign->SetRefString( aRefStr );
m_pOptions->Enable();
m_pBtnAdd->Enable();
m_xEdAssign->SetRefString( aRefStr );
m_xOptions->set_sensitive(true);
m_xBtnAdd->set_sensitive(true);
bSaved = true;
pSaveObj->Save();
}
}
bool ScDbNameDlg::Close()
void ScDbNameDlg::Close()
{
return DoClose( ScDbNameDlgWrapper::GetChildWindowId() );
DoClose( ScDbNameDlgWrapper::GetChildWindowId() );
}
void ScDbNameDlg::SetActive()
{
m_pEdAssign->GrabFocus();
m_xEdAssign->GrabFocus();
// No NameModifyHdl, because otherwise areas can not be changed
// (the old content would be displayed again after the reference selection is pulled)
@@ -337,25 +315,24 @@ void ScDbNameDlg::UpdateNames()
const DBsType& rDBs = aLocalDbCol.getNamedDBs();
m_pEdName->SetUpdateMode( false );
m_xEdName->freeze();
m_pEdName->Clear();
m_pEdAssign->SetText( EMPTY_OUSTRING );
m_xEdName->clear();
m_xEdAssign->SetText( EMPTY_OUSTRING );
if (!rDBs.empty())
{
for (const auto& rxDB : rDBs)
m_pEdName->InsertEntry(rxDB->GetName());
m_xEdName->append_text(rxDB->GetName());
}
else
{
m_pBtnAdd->SetText( aStrAdd );
m_pBtnAdd->Disable();
m_pBtnRemove->Disable();
m_xBtnAdd->set_label( aStrAdd );
m_xBtnAdd->set_sensitive(false);
m_xBtnRemove->set_sensitive(false);
}
m_pEdName->SetUpdateMode( true );
m_pEdName->Invalidate();
m_xEdName->thaw();
}
void ScDbNameDlg::UpdateDBData( const OUString& rStrName )
@@ -375,20 +352,20 @@ void ScDbNameDlg::UpdateDBData( const OUString& rStrName )
theCurArea = ScRange( ScAddress( nColStart, nRowStart, nTab ),
ScAddress( nColEnd, nRowEnd, nTab ) );
OUString theArea(theCurArea.Format(ScRefFlags::RANGE_ABS_3D, pDoc, aAddrDetails));
m_pEdAssign->SetText( theArea );
m_pBtnAdd->SetText( aStrModify );
m_pBtnHeader->Check( pData->HasHeader() );
m_pBtnTotals->Check( pData->HasTotals() );
m_pBtnDoSize->Check( pData->IsDoSize() );
m_pBtnKeepFmt->Check( pData->IsKeepFmt() );
m_pBtnStripData->Check( pData->IsStripData() );
m_xEdAssign->SetText( theArea );
m_xBtnAdd->set_label( aStrModify );
m_xBtnHeader->set_active( pData->HasHeader() );
m_xBtnTotals->set_active( pData->HasTotals() );
m_xBtnDoSize->set_active( pData->IsDoSize() );
m_xBtnKeepFmt->set_active( pData->IsKeepFmt() );
m_xBtnStripData->set_active( pData->IsStripData() );
SetInfoStrings( pData );
}
m_pBtnAdd->SetText( aStrModify );
m_pBtnAdd->Enable();
m_pBtnRemove->Enable();
m_pOptions->Enable();
m_xBtnAdd->set_label( aStrModify );
m_xBtnAdd->set_sensitive(true);
m_xBtnRemove->set_sensitive(true);
m_xOptions->set_sensitive(true);
}
bool ScDbNameDlg::IsRefInputMode() const
@@ -398,9 +375,9 @@ bool ScDbNameDlg::IsRefInputMode() const
// Handler:
IMPL_LINK_NOARG(ScDbNameDlg, OkBtnHdl, Button*, void)
IMPL_LINK_NOARG(ScDbNameDlg, OkBtnHdl, weld::Button&, void)
{
AddBtnHdl( nullptr );
AddBtnHdl(*m_xBtnAdd);
// Pass the changes and the remove list to the view: both are
// transferred as a reference only, so that no dead memory can
@@ -411,18 +388,18 @@ IMPL_LINK_NOARG(ScDbNameDlg, OkBtnHdl, Button*, void)
aFunc.ModifyAllDBData(aLocalDbCol, aRemoveList);
}
Close();
response(RET_OK);
}
IMPL_LINK_NOARG(ScDbNameDlg, CancelBtnHdl, Button*, void)
IMPL_LINK_NOARG(ScDbNameDlg, CancelBtnHdl, weld::Button&, void)
{
Close();
response(RET_CANCEL);
}
IMPL_LINK_NOARG(ScDbNameDlg, AddBtnHdl, Button*, void)
IMPL_LINK_NOARG(ScDbNameDlg, AddBtnHdl, weld::Button&, void)
{
OUString aNewName = comphelper::string::strip(m_pEdName->GetText(), ' ');
OUString aNewArea = m_pEdAssign->GetText();
OUString aNewName = comphelper::string::strip(m_xEdName->get_active_text(), ' ');
OUString aNewArea = m_xEdAssign->GetText();
if ( !aNewName.isEmpty() && !aNewArea.isEmpty() )
{
@@ -430,7 +407,7 @@ IMPL_LINK_NOARG(ScDbNameDlg, AddBtnHdl, Button*, void)
{
// because editing can be done now, parsing is needed first
ScRange aTmpRange;
OUString aText = m_pEdAssign->GetText();
OUString aText = m_xEdAssign->GetText();
if ( aTmpRange.ParseAny( aText, pDoc, aAddrDetails ) & ScRefFlags::VALID )
{
theCurArea = aTmpRange;
@@ -445,11 +422,11 @@ IMPL_LINK_NOARG(ScDbNameDlg, AddBtnHdl, Button*, void)
pOldEntry->MoveTo( aStart.Tab(), aStart.Col(), aStart.Row(),
aEnd.Col(), aEnd.Row() );
pOldEntry->SetByRow( true );
pOldEntry->SetHeader( m_pBtnHeader->IsChecked() );
pOldEntry->SetTotals( m_pBtnTotals->IsChecked() );
pOldEntry->SetDoSize( m_pBtnDoSize->IsChecked() );
pOldEntry->SetKeepFmt( m_pBtnKeepFmt->IsChecked() );
pOldEntry->SetStripData( m_pBtnStripData->IsChecked() );
pOldEntry->SetHeader( m_xBtnHeader->get_active() );
pOldEntry->SetTotals( m_xBtnTotals->get_active() );
pOldEntry->SetDoSize( m_xBtnDoSize->get_active() );
pOldEntry->SetKeepFmt( m_xBtnKeepFmt->get_active() );
pOldEntry->SetStripData( m_xBtnStripData->get_active() );
}
else
{
@@ -458,11 +435,11 @@ IMPL_LINK_NOARG(ScDbNameDlg, AddBtnHdl, Button*, void)
std::unique_ptr<ScDBData> pNewEntry(new ScDBData( aNewName, aStart.Tab(),
aStart.Col(), aStart.Row(),
aEnd.Col(), aEnd.Row(),
true, m_pBtnHeader->IsChecked(),
m_pBtnTotals->IsChecked() ));
pNewEntry->SetDoSize( m_pBtnDoSize->IsChecked() );
pNewEntry->SetKeepFmt( m_pBtnKeepFmt->IsChecked() );
pNewEntry->SetStripData( m_pBtnStripData->IsChecked() );
true, m_xBtnHeader->get_active(),
m_xBtnTotals->get_active() ));
pNewEntry->SetDoSize( m_xBtnDoSize->get_active() );
pNewEntry->SetKeepFmt( m_xBtnKeepFmt->get_active() );
pNewEntry->SetStripData( m_xBtnStripData->get_active() );
bool ins = aLocalDbCol.getNamedDBs().insert(std::move(pNewEntry));
assert(ins); (void)ins;
@@ -470,35 +447,35 @@ IMPL_LINK_NOARG(ScDbNameDlg, AddBtnHdl, Button*, void)
UpdateNames();
m_pEdName->SetText( EMPTY_OUSTRING );
m_pEdName->GrabFocus();
m_pBtnAdd->SetText( aStrAdd );
m_pBtnAdd->Disable();
m_pBtnRemove->Disable();
m_pEdAssign->SetText( EMPTY_OUSTRING );
m_pBtnHeader->Check(); // Default: with column headers
m_pBtnTotals->Check( false ); // Default: without totals row
m_pBtnDoSize->Check( false );
m_pBtnKeepFmt->Check( false );
m_pBtnStripData->Check( false );
m_xEdName->set_entry_text( EMPTY_OUSTRING );
m_xEdName->grab_focus();
m_xBtnAdd->set_label( aStrAdd );
m_xBtnAdd->set_sensitive(false);
m_xBtnRemove->set_sensitive(false);
m_xEdAssign->SetText( EMPTY_OUSTRING );
m_xBtnHeader->set_active(true); // Default: with column headers
m_xBtnTotals->set_active( false ); // Default: without totals row
m_xBtnDoSize->set_active( false );
m_xBtnKeepFmt->set_active( false );
m_xBtnStripData->set_active( false );
SetInfoStrings( nullptr ); // empty
theCurArea = ScRange();
bSaved = true;
pSaveObj->Save();
NameModifyHdl( *m_pEdName );
NameModifyHdl( *m_xEdName );
}
else
{
ERRORBOX(GetFrameWeld(), aStrInvalid);
m_pEdAssign->SetSelection( Selection( 0, SELECTION_MAX ) );
m_pEdAssign->GrabFocus();
ERRORBOX(m_xDialog.get(), aStrInvalid);
m_xEdAssign->SelectAll();
m_xEdAssign->GrabFocus();
}
}
else
{
ERRORBOX(GetFrameWeld(), ScResId(STR_INVALIDNAME));
m_pEdName->SetSelection( Selection( 0, SELECTION_MAX ) );
m_pEdName->GrabFocus();
ERRORBOX(m_xDialog.get(), ScResId(STR_INVALIDNAME));
m_xEdName->select_entry_region(0, -1);
m_xEdName->grab_focus();
}
}
}
@@ -518,9 +495,9 @@ public:
}
IMPL_LINK_NOARG(ScDbNameDlg, RemoveBtnHdl, Button*, void)
IMPL_LINK_NOARG(ScDbNameDlg, RemoveBtnHdl, weld::Button&, void)
{
OUString aStrEntry = m_pEdName->GetText();
OUString aStrEntry = m_xEdName->get_active_text();
ScDBCollection::NamedDBs& rDBs = aLocalDbCol.getNamedDBs();
ScDBCollection::NamedDBs::iterator itr =
::std::find_if(rDBs.begin(), rDBs.end(), FindByName(aStrEntry));
@@ -529,7 +506,7 @@ IMPL_LINK_NOARG(ScDbNameDlg, RemoveBtnHdl, Button*, void)
{
OUString aStrDelMsg = ScResId( STR_QUERY_DELENTRY );
OUString sMsg{ aStrDelMsg.getToken(0, '#') + aStrEntry + aStrDelMsg.getToken(1, '#') };
std::unique_ptr<weld::MessageDialog> xQueryBox(Application::CreateMessageDialog(GetFrameWeld(),
std::unique_ptr<weld::MessageDialog> xQueryBox(Application::CreateMessageDialog(m_xDialog.get(),
VclMessageType::Question, VclButtonsType::YesNo,
sMsg));
xQueryBox->set_default_response(RET_YES);
@@ -546,40 +523,39 @@ IMPL_LINK_NOARG(ScDbNameDlg, RemoveBtnHdl, Button*, void)
UpdateNames();
m_pEdName->SetText( EMPTY_OUSTRING );
m_pEdName->GrabFocus();
m_pBtnAdd->SetText( aStrAdd );
m_pBtnAdd->Disable();
m_pBtnRemove->Disable();
m_pEdAssign->SetText( EMPTY_OUSTRING );
m_xEdName->set_entry_text( EMPTY_OUSTRING );
m_xEdName->grab_focus();
m_xBtnAdd->set_label( aStrAdd );
m_xBtnAdd->set_sensitive(false);
m_xBtnRemove->set_sensitive(false);
m_xEdAssign->SetText( EMPTY_OUSTRING );
theCurArea = ScRange();
m_pBtnHeader->Check(); // Default: with column headers
m_pBtnTotals->Check( false ); // Default: without totals row
m_pBtnDoSize->Check( false );
m_pBtnKeepFmt->Check( false );
m_pBtnStripData->Check( false );
m_xBtnHeader->set_active(true); // Default: with column headers
m_xBtnTotals->set_active( false ); // Default: without totals row
m_xBtnDoSize->set_active( false );
m_xBtnKeepFmt->set_active( false );
m_xBtnStripData->set_active( false );
SetInfoStrings( nullptr ); // empty
bSaved=false;
pSaveObj->Restore();
NameModifyHdl( *m_pEdName );
NameModifyHdl( *m_xEdName );
}
}
}
IMPL_LINK_NOARG(ScDbNameDlg, NameModifyHdl, Edit&, void)
IMPL_LINK_NOARG(ScDbNameDlg, NameModifyHdl, weld::ComboBox&, void)
{
OUString theName = m_pEdName->GetText();
bool bNameFound = (COMBOBOX_ENTRY_NOTFOUND
!= m_pEdName->GetEntryPos( theName ));
OUString theName = m_xEdName->get_active_text();
bool bNameFound = m_xEdName->find_text(theName) != -1;
if ( theName.isEmpty() )
{
if (m_pBtnAdd->GetText() != aStrAdd)
m_pBtnAdd->SetText( aStrAdd );
m_pBtnAdd->Disable();
m_pBtnRemove->Disable();
m_pAssignFrame->Disable();
m_pOptions->Disable();
if (m_xBtnAdd->get_label() != aStrAdd)
m_xBtnAdd->set_label( aStrAdd );
m_xBtnAdd->set_sensitive(false);
m_xBtnRemove->set_sensitive(false);
m_xAssignFrame->set_sensitive(false);
m_xOptions->set_sensitive(false);
//bSaved=sal_False;
//pSaveObj->Restore();
//@BugID 54702 enable/disable in the base class only
@@ -590,8 +566,8 @@ IMPL_LINK_NOARG(ScDbNameDlg, NameModifyHdl, Edit&, void)
{
if ( bNameFound )
{
if (m_pBtnAdd->GetText() != aStrModify)
m_pBtnAdd->SetText( aStrModify );
if (m_xBtnAdd->get_label() != aStrModify)
m_xBtnAdd->set_label( aStrModify );
if(!bSaved)
{
@@ -602,63 +578,63 @@ IMPL_LINK_NOARG(ScDbNameDlg, NameModifyHdl, Edit&, void)
}
else
{
if (m_pBtnAdd->GetText() != aStrAdd)
m_pBtnAdd->SetText( aStrAdd );
if (m_xBtnAdd->get_label() != aStrAdd)
m_xBtnAdd->set_label( aStrAdd );
bSaved=false;
pSaveObj->Restore();
if ( !m_pEdAssign->GetText().isEmpty() )
if ( !m_xEdAssign->GetText().isEmpty() )
{
m_pBtnAdd->Enable();
m_pOptions->Enable();
m_xBtnAdd->set_sensitive(true);
m_xOptions->set_sensitive(true);
}
else
{
m_pBtnAdd->Disable();
m_pOptions->Disable();
m_xBtnAdd->set_sensitive(false);
m_xOptions->set_sensitive(false);
}
m_pBtnRemove->Disable();
m_xBtnRemove->set_sensitive(false);
}
m_pAssignFrame->Enable();
m_xAssignFrame->set_sensitive(true);
//@BugID 54702 enable/disable in the base class only
//SFX_APPWINDOW->Enable();
//SFX_APPWINDOW->set_sensitive(true);
bRefInputMode = true;
}
}
IMPL_LINK_NOARG(ScDbNameDlg, AssModifyHdl, Edit&, void)
IMPL_LINK_NOARG(ScDbNameDlg, AssModifyHdl, formula::WeldRefEdit&, void)
{
// parse here for Save(), etc.
ScRange aTmpRange;
OUString aText = m_pEdAssign->GetText();
OUString aText = m_xEdAssign->GetText();
if ( aTmpRange.ParseAny( aText, pDoc, aAddrDetails ) & ScRefFlags::VALID )
theCurArea = aTmpRange;
if (!aText.isEmpty() && !m_pEdName->GetText().isEmpty())
if (!aText.isEmpty() && !m_xEdName->get_active_text().isEmpty())
{
m_pBtnAdd->Enable();
m_pBtnHeader->Enable();
m_pBtnTotals->Enable();
m_pBtnDoSize->Enable();
m_pBtnKeepFmt->Enable();
m_pBtnStripData->Enable();
m_pFTSource->Enable();
m_pFTOperations->Enable();
m_xBtnAdd->set_sensitive(true);
m_xBtnHeader->set_sensitive(true);
m_xBtnTotals->set_sensitive(true);
m_xBtnDoSize->set_sensitive(true);
m_xBtnKeepFmt->set_sensitive(true);
m_xBtnStripData->set_sensitive(true);
m_xFTSource->set_sensitive(true);
m_xFTOperations->set_sensitive(true);
}
else
{
m_pBtnAdd->Disable();
m_pBtnHeader->Disable();
m_pBtnTotals->Disable();
m_pBtnDoSize->Disable();
m_pBtnKeepFmt->Disable();
m_pBtnStripData->Disable();
m_pFTSource->Disable();
m_pFTOperations->Disable();
m_xBtnAdd->set_sensitive(false);
m_xBtnHeader->set_sensitive(false);
m_xBtnTotals->set_sensitive(false);
m_xBtnDoSize->set_sensitive(false);
m_xBtnKeepFmt->set_sensitive(false);
m_xBtnStripData->set_sensitive(false);
m_xFTSource->set_sensitive(false);
m_xFTOperations->set_sensitive(false);
}
}
diff --git a/sc/source/ui/inc/dbnamdlg.hxx b/sc/source/ui/inc/dbnamdlg.hxx
index 70b41ea..60e9511 100644
--- a/sc/source/ui/inc/dbnamdlg.hxx
+++ b/sc/source/ui/inc/dbnamdlg.hxx
@@ -32,41 +32,20 @@
class ScViewData;
class ScDocument;
class ScDbNameDlg : public ScAnyRefDlg
class ScDbNameDlg : public ScAnyRefDlgController
{
public:
ScDbNameDlg( SfxBindings* pB, SfxChildWindow* pCW, vcl::Window* pParent,
ScViewData* ptrViewData );
virtual ~ScDbNameDlg() override;
virtual void dispose() override;
ScDbNameDlg(SfxBindings* pB, SfxChildWindow* pCW, weld::Window* pParent,
ScViewData* ptrViewData);
virtual ~ScDbNameDlg() override;
virtual void SetReference( const ScRange& rRef, ScDocument* pDoc ) override;
virtual bool IsRefInputMode() const override;
virtual void SetActive() override;
virtual bool Close() override;
virtual void Close() override;
private:
VclPtr<ComboBox> m_pEdName;
VclPtr<VclFrame> m_pAssignFrame;
VclPtr<formula::RefEdit> m_pEdAssign;
VclPtr<formula::RefButton> m_pRbAssign;
VclPtr<VclContainer> m_pOptions;
VclPtr<CheckBox> m_pBtnHeader;
VclPtr<CheckBox> m_pBtnTotals;
VclPtr<CheckBox> m_pBtnDoSize;
VclPtr<CheckBox> m_pBtnKeepFmt;
VclPtr<CheckBox> m_pBtnStripData;
VclPtr<FixedText> m_pFTSource;
VclPtr<FixedText> m_pFTOperations;
VclPtr<OKButton> m_pBtnOk;
VclPtr<CancelButton> m_pBtnCancel;
VclPtr<PushButton> m_pBtnAdd;
VclPtr<PushButton> m_pBtnRemove;
bool bSaved;
OUString aStrAdd;
@@ -85,18 +64,43 @@ private:
ScRange theCurArea;
std::vector<ScRange> aRemoveList;
std::unique_ptr<weld::EntryTreeView> m_xEdName;
std::unique_ptr<weld::Frame> m_xAssignFrame;
std::unique_ptr<formula::WeldRefEdit> m_xEdAssign;
std::unique_ptr<formula::WeldRefButton> m_xRbAssign;
std::unique_ptr<weld::Widget> m_xOptions;
std::unique_ptr<weld::CheckButton> m_xBtnHeader;
std::unique_ptr<weld::CheckButton> m_xBtnTotals;
std::unique_ptr<weld::CheckButton> m_xBtnDoSize;
std::unique_ptr<weld::CheckButton> m_xBtnKeepFmt;
std::unique_ptr<weld::CheckButton> m_xBtnStripData;
std::unique_ptr<weld::Label> m_xFTSource;
std::unique_ptr<weld::Label> m_xFTOperations;
std::unique_ptr<weld::Button> m_xBtnOk;
std::unique_ptr<weld::Button> m_xBtnCancel;
std::unique_ptr<weld::Button> m_xBtnAdd;
std::unique_ptr<weld::Button> m_xBtnRemove;
std::unique_ptr<weld::Button> m_xModifyPB;
std::unique_ptr<weld::Label> m_xInvalidFT;
std::unique_ptr<weld::Label> m_xFrameLabel;
std::unique_ptr<weld::Expander> m_xExpander;
private:
void Init();
void UpdateNames();
void UpdateDBData( const OUString& rStrName );
void SetInfoStrings( const ScDBData* pDBData );
DECL_LINK( CancelBtnHdl, Button*, void );
DECL_LINK( OkBtnHdl, Button*, void );
DECL_LINK( AddBtnHdl, Button*, void );
DECL_LINK( RemoveBtnHdl, Button*, void );
DECL_LINK( NameModifyHdl, Edit&, void );
DECL_LINK( AssModifyHdl, Edit&, void );
DECL_LINK( CancelBtnHdl, weld::Button&, void );
DECL_LINK( OkBtnHdl, weld::Button&, void );
DECL_LINK( AddBtnHdl, weld::Button&, void );
DECL_LINK( RemoveBtnHdl, weld::Button&, void );
DECL_LINK( NameModifyHdl, weld::ComboBox&, void );
DECL_LINK( AssModifyHdl, formula::WeldRefEdit&, void );
};
#endif // INCLUDED_SC_SOURCE_UI_INC_DBNAMDLG_HXX
diff --git a/sc/source/ui/inc/reffact.hxx b/sc/source/ui/inc/reffact.hxx
index e874cc9..79a873f 100644
--- a/sc/source/ui/inc/reffact.hxx
+++ b/sc/source/ui/inc/reffact.hxx
@@ -53,7 +53,7 @@ DECL_WRAPPER_WITHID(ScPivotLayoutWrapper)
DECL_WRAPPER_WITHID(ScTabOpDlgWrapper)
DECL_WRAPPER_WITHID(ScFilterDlgWrapper)
DECL_WRAPPER_WITHID(ScSpecialFilterDlgWrapper)
DECL_WRAPPER_WITHID(ScDbNameDlgWrapper)
DECL_WRAPPER_WITHID_CONTROLLER(ScDbNameDlgWrapper)
DECL_WRAPPER_WITHID(ScConsolidateDlgWrapper)
DECL_WRAPPER_WITHID(ScPrintAreasDlgWrapper)
DECL_WRAPPER_WITHID(ScColRowNameRangesDlgWrapper)
diff --git a/sc/source/ui/view/reffact.cxx b/sc/source/ui/view/reffact.cxx
index 4522ab1..7d23436 100644
--- a/sc/source/ui/view/reffact.cxx
+++ b/sc/source/ui/view/reffact.cxx
@@ -41,7 +41,7 @@ SFX_IMPL_MODELESSDIALOG_WITHID(ScPivotLayoutWrapper, SID_OPENDLG_PIVOTTABLE )
SFX_IMPL_MODELESSDIALOG_WITHID(ScTabOpDlgWrapper, SID_OPENDLG_TABOP )
SFX_IMPL_MODELESSDIALOG_WITHID(ScFilterDlgWrapper, SID_FILTER )
SFX_IMPL_MODELESSDIALOG_WITHID(ScSpecialFilterDlgWrapper, SID_SPECIAL_FILTER )
SFX_IMPL_MODELESSDIALOG_WITHID(ScDbNameDlgWrapper, SID_DEFINE_DBNAME )
SFX_IMPL_CHILDWINDOW_WITHID(ScDbNameDlgWrapper, SID_DEFINE_DBNAME )
SFX_IMPL_MODELESSDIALOG_WITHID(ScConsolidateDlgWrapper, SID_OPENDLG_CONSOLIDATE )
SFX_IMPL_MODELESSDIALOG_WITHID(ScPrintAreasDlgWrapper, SID_OPENDLG_EDIT_PRINTAREA )
SFX_IMPL_MODELESSDIALOG_WITHID(ScColRowNameRangesDlgWrapper, SID_DEFINE_COLROWNAMERANGES )
@@ -139,7 +139,7 @@ IMPL_CHILD_CTOR( ScFilterDlgWrapper, SID_FILTER )
IMPL_CHILD_CTOR( ScSpecialFilterDlgWrapper, SID_SPECIAL_FILTER )
IMPL_CHILD_CTOR( ScDbNameDlgWrapper, SID_DEFINE_DBNAME )
IMPL_CONTROLLER_CHILD_CTOR( ScDbNameDlgWrapper, SID_DEFINE_DBNAME )
IMPL_CHILD_CTOR( ScColRowNameRangesDlgWrapper, SID_DEFINE_COLROWNAMERANGES )
diff --git a/sc/source/ui/view/tabvwshc.cxx b/sc/source/ui/view/tabvwshc.cxx
index 8b39b9c..8fb5c9c 100644
--- a/sc/source/ui/view/tabvwshc.cxx
+++ b/sc/source/ui/view/tabvwshc.cxx
@@ -188,18 +188,6 @@ VclPtr<SfxModelessDialog> ScTabViewShell::CreateRefDialog(
}
break;
case SID_DEFINE_DBNAME:
{
// when called for an existing range, then mark
GetDBData( true, SC_DB_OLD );
const ScMarkData& rMark = GetViewData().GetMarkData();
if ( !rMark.IsMarked() && !rMark.IsMultiMarked() )
MarkDataArea( false );
pResult = VclPtr<ScDbNameDlg>::Create( pB, pCW, pParent, &GetViewData() );
}
break;
case SID_SPECIAL_FILTER:
{
ScQueryParam aQueryParam;
@@ -496,6 +484,17 @@ std::unique_ptr<SfxModelessDialogController> ScTabViewShell::CreateRefDialogCont
case SID_RANDOM_NUMBER_GENERATOR_DIALOG:
xResult.reset(new ScRandomNumberGeneratorDialog(pB, pCW, pParent, &GetViewData()));
break;
case SID_DEFINE_DBNAME:
{
// when called for an existing range, then mark
GetDBData( true, SC_DB_OLD );
const ScMarkData& rMark = GetViewData().GetMarkData();
if ( !rMark.IsMarked() && !rMark.IsMultiMarked() )
MarkDataArea( false );
xResult.reset(new ScDbNameDlg(pB, pCW, pParent, &GetViewData()));
break;
}
}
if (xResult)
diff --git a/sc/uiconfig/scalc/ui/definedatabaserangedialog.ui b/sc/uiconfig/scalc/ui/definedatabaserangedialog.ui
index 175ac48..4cedef2 100644
--- a/sc/uiconfig/scalc/ui/definedatabaserangedialog.ui
+++ b/sc/uiconfig/scalc/ui/definedatabaserangedialog.ui
@@ -1,18 +1,88 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.18.3 -->
<!-- Generated with glade 3.22.1 -->
<interface domain="sc">
<requires lib="gtk+" version="3.18"/>
<requires lib="LibreOffice" version="1.0"/>
<object class="GtkTreeStore" id="liststore1">
<columns>
<!-- column-name text -->
<column type="gchararray"/>
<!-- column-name id -->
<column type="gchararray"/>
</columns>
</object>
<object class="GtkDialog" id="DefineDatabaseRangeDialog">
<property name="can_focus">False</property>
<property name="border_width">5</property>
<property name="title" translatable="yes" context="definedatabaserangedialog|DefineDatabaseRangeDialog">Define Database Range</property>
<property name="resizable">False</property>
<property name="default_width">0</property>
<property name="default_height">0</property>
<property name="type_hint">dialog</property>
<child>
<placeholder/>
</child>
<child internal-child="vbox">
<object class="GtkBox" id="dialog-vbox1">
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child internal-child="action_area">
<object class="GtkButtonBox" id="dialog-action_area1">
<property name="can_focus">False</property>
<property name="layout_style">end</property>
<child>
<object class="GtkButton" id="ok">
<property name="label">gtk-ok</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="can_default">True</property>
<property name="has_default">True</property>
<property name="receives_default">True</property>
<property name="use_stock">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="cancel">
<property name="label">gtk-cancel</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_stock">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkButton" id="help">
<property name="label">gtk-help</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_stock">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">3</property>
<property name="secondary">True</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="pack_type">end</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkBox" id="box1">
<property name="visible">True</property>
@@ -38,17 +108,62 @@
<property name="top_padding">6</property>
<property name="left_padding">12</property>
<child>
<object class="VclComboBoxText" id="entry">
<object class="GtkGrid" id="entrygrid">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="has_entry">True</property>
<property name="dropdown">False</property>
<child internal-child="entry">
<object class="GtkEntry" id="ComboBoxText-entry">
<property name="row_spacing">3</property>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="vscrollbar_policy">always</property>
<property name="shadow_type">in</property>
<child>
<object class="GtkTreeView" id="entry-list">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="model">liststore1</property>
<property name="headers_visible">False</property>
<property name="headers_clickable">False</property>
<property name="search_column">0</property>
<property name="show_expanders">False</property>
<child internal-child="selection">
<object class="GtkTreeSelection" id="treeview-selection3"/>
</child>
<child>
<object class="GtkTreeViewColumn" id="treeviewcolumn3">
<child>
<object class="GtkCellRendererText" id="cellrenderertext3"/>
<attributes>
<attribute name="text">0</attribute>
</attributes>
</child>
</object>
</child>
</object>
</child>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">1</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="entry">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="activates_default">True</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
</packing>
</child>
</object>
</child>
@@ -91,10 +206,11 @@
<property name="can_focus">False</property>
<property name="spacing">12</property>
<child>
<object class="foruilo-RefEdit" id="assign">
<object class="GtkEntry" id="assign">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="activates_default">True</property>
</object>
<packing>
<property name="expand">False</property>
@@ -103,7 +219,7 @@
</packing>
</child>
<child>
<object class="foruilo-RefButton" id="assignrb">
<object class="GtkButton" id="assignrb">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="receives_default">True</property>
@@ -292,8 +408,8 @@
<object class="GtkLabel" id="Source">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xalign">0</property>
<property name="label" translatable="yes" context="definedatabaserangedialog|Source">Source:</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="expand">False</property>
@@ -305,8 +421,8 @@
<object class="GtkLabel" id="Operations">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xalign">0</property>
<property name="label" translatable="yes" context="definedatabaserangedialog|Operations">Operations:</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="expand">False</property>
@@ -318,8 +434,8 @@
<object class="GtkLabel" id="invalid">
<property name="can_focus">False</property>
<property name="no_show_all">True</property>
<property name="xalign">0</property>
<property name="label" translatable="yes" context="definedatabaserangedialog|invalid">Invalid range</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="expand">False</property>
@@ -352,63 +468,6 @@
<property name="position">0</property>
</packing>
</child>
<child internal-child="action_area">
<object class="GtkButtonBox" id="dialog-action_area1">
<property name="can_focus">False</property>
<property name="layout_style">end</property>
<child>
<object class="GtkButton" id="ok">
<property name="label">gtk-ok</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="can_default">True</property>
<property name="has_default">True</property>
<property name="receives_default">True</property>
<property name="use_stock">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="cancel">
<property name="label">gtk-cancel</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_stock">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkButton" id="help">
<property name="label">gtk-help</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_stock">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">3</property>
<property name="secondary">True</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="pack_type">end</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
<action-widgets>
diff --git a/solenv/sanitizers/ui/modules/scalc.suppr b/solenv/sanitizers/ui/modules/scalc.suppr
index fdf4d4a..76b986f 100644
--- a/solenv/sanitizers/ui/modules/scalc.suppr
+++ b/solenv/sanitizers/ui/modules/scalc.suppr
@@ -70,6 +70,9 @@ sc/uiconfig/scalc/ui/definedatabaserangedialog.ui://foruilo-RefEdit[@id='assign'
sc/uiconfig/scalc/ui/definedatabaserangedialog.ui://GtkLabel[@id='Source'] orphan-label
sc/uiconfig/scalc/ui/definedatabaserangedialog.ui://GtkLabel[@id='Operations'] orphan-label
sc/uiconfig/scalc/ui/definedatabaserangedialog.ui://GtkLabel[@id='invalid'] orphan-label
sc/uiconfig/scalc/ui/definedatabaserangedialog.ui://GtkButton[@id='assignrb'] button-no-label
sc/uiconfig/scalc/ui/definedatabaserangedialog.ui://GtkEntry[@id='assign'] no-labelled-by
sc/uiconfig/scalc/ui/definedatabaserangedialog.ui://GtkEntry[@id='entry'] no-labelled-by
sc/uiconfig/scalc/ui/definename.ui://GtkLabel[@id='label'] orphan-label
sc/uiconfig/scalc/ui/definename.ui://GtkButton[@id='refbutton'] button-no-label
sc/uiconfig/scalc/ui/deletecolumnentry.ui:GtkGrid[@id='grid']/GtkBox/GtkLabel orphan-label
diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx
index 431aa0c..310254b 100644
--- a/vcl/source/app/salvtables.cxx
+++ b/vcl/source/app/salvtables.cxx
@@ -1236,6 +1236,8 @@ public:
{
return m_xFrame->get_label();
}
virtual std::unique_ptr<weld::Label> weld_label_widget() const override;
};
class SalInstanceScrolledWindow : public SalInstanceContainer, public virtual weld::ScrolledWindow
@@ -3774,6 +3776,14 @@ public:
}
};
std::unique_ptr<weld::Label> SalInstanceFrame::weld_label_widget() const
{
FixedText* pLabel = dynamic_cast<FixedText*>(m_xFrame->get_label_widget());
if (!pLabel)
return nullptr;
return std::make_unique<SalInstanceLabel>(pLabel, m_pBuilder, false);
}
class SalInstanceTextView : public SalInstanceContainer, public virtual weld::TextView
{
private:
diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx
index 1747184..19a3ed2 100644
--- a/vcl/unx/gtk3/gtk3gtkinst.cxx
+++ b/vcl/unx/gtk3/gtk3gtkinst.cxx
@@ -3128,6 +3128,8 @@ public:
const gchar* pStr = gtk_frame_get_label(m_pFrame);
return OUString(pStr, pStr ? strlen(pStr) : 0, RTL_TEXTENCODING_UTF8);
}
virtual std::unique_ptr<weld::Label> weld_label_widget() const override;
};
static GType crippled_viewport_get_type();
@@ -7540,6 +7542,14 @@ public:
}
};
std::unique_ptr<weld::Label> GtkInstanceFrame::weld_label_widget() const
{
GtkWidget* pLabel = gtk_frame_get_label_widget(m_pFrame);
if (!pLabel || !GTK_IS_LABEL(pLabel))
return nullptr;
return std::make_unique<GtkInstanceLabel>(GTK_LABEL(pLabel), m_pBuilder, false);
}
class GtkInstanceTextView : public GtkInstanceContainer, public virtual weld::TextView
{
private: