weld ScColRowNameRangesDlg
Change-Id: I976fb892f8ac1dedb0c2c3110dce17c1211de238 Reviewed-on: https://gerrit.libreoffice.org/70652 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
This commit is contained in:
@@ -147,6 +147,11 @@ public:
|
||||
xEntry->select_region(rSelection.Min(), rSelection.Max());
|
||||
}
|
||||
|
||||
void SetCursorAtLast()
|
||||
{
|
||||
xEntry->set_position(-1);
|
||||
}
|
||||
|
||||
Selection GetSelection() const
|
||||
{
|
||||
int nStartPos, nEndPos;
|
||||
|
@@ -1605,11 +1605,19 @@ bool ScModule::IsTableLocked()
|
||||
SfxChildWindow* pChildWnd = lcl_GetChildWinFromAnyView( m_nCurRefDlgId );
|
||||
if ( pChildWnd )
|
||||
{
|
||||
IAnyRefDialog* pRefDlg(dynamic_cast<IAnyRefDialog*>(pChildWnd->GetWindow()));
|
||||
assert(pRefDlg);
|
||||
if(pRefDlg)
|
||||
if (pChildWnd->GetWindow())
|
||||
{
|
||||
bLocked = pRefDlg->IsTableLocked();
|
||||
IAnyRefDialog* pRefDlg(dynamic_cast<IAnyRefDialog*>(pChildWnd->GetWindow()));
|
||||
assert(pRefDlg);
|
||||
if (pRefDlg)
|
||||
bLocked = pRefDlg->IsTableLocked();
|
||||
}
|
||||
if (pChildWnd->GetController())
|
||||
{
|
||||
IAnyRefDialog* pRefDlg = dynamic_cast<IAnyRefDialog*>(pChildWnd->GetController().get());
|
||||
assert(pRefDlg);
|
||||
if (pRefDlg)
|
||||
bLocked = pRefDlg->IsTableLocked();
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -1764,11 +1772,23 @@ void ScModule::AddRefEntry()
|
||||
OSL_ENSURE( pChildWnd, "NoChildWin" );
|
||||
if ( pChildWnd )
|
||||
{
|
||||
IAnyRefDialog* pRefDlg = dynamic_cast<IAnyRefDialog*>(pChildWnd->GetWindow());
|
||||
assert(pRefDlg);
|
||||
if(pRefDlg)
|
||||
if (pChildWnd->GetWindow())
|
||||
{
|
||||
pRefDlg->AddRefEntry();
|
||||
IAnyRefDialog* pRefDlg = dynamic_cast<IAnyRefDialog*>(pChildWnd->GetWindow());
|
||||
assert(pRefDlg);
|
||||
if (pRefDlg)
|
||||
{
|
||||
pRefDlg->AddRefEntry();
|
||||
}
|
||||
}
|
||||
if (pChildWnd->GetController())
|
||||
{
|
||||
IAnyRefDialog* pRefDlg = dynamic_cast<IAnyRefDialog*>(pChildWnd->GetController().get());
|
||||
assert(pRefDlg);
|
||||
if (pRefDlg)
|
||||
{
|
||||
pRefDlg->AddRefEntry();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -29,35 +29,20 @@
|
||||
class ScViewData;
|
||||
class ScDocument;
|
||||
|
||||
class ScColRowNameRangesDlg : public ScAnyRefDlg
|
||||
class ScColRowNameRangesDlg : public ScAnyRefDlgController
|
||||
{
|
||||
public:
|
||||
ScColRowNameRangesDlg( SfxBindings* pB, SfxChildWindow* pCW, vcl::Window* pParent,
|
||||
ScViewData* ptrViewData );
|
||||
virtual ~ScColRowNameRangesDlg() override;
|
||||
virtual void dispose() override;
|
||||
ScColRowNameRangesDlg(SfxBindings* pB, SfxChildWindow* pCW, weld::Window* pParent,
|
||||
ScViewData* ptrViewData);
|
||||
virtual ~ScColRowNameRangesDlg() 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<ListBox> pLbRange;
|
||||
|
||||
VclPtr<formula::RefEdit> pEdAssign;
|
||||
VclPtr<formula::RefButton> pRbAssign;
|
||||
VclPtr<RadioButton> pBtnColHead;
|
||||
VclPtr<RadioButton> pBtnRowHead;
|
||||
VclPtr<formula::RefEdit> pEdAssign2;
|
||||
VclPtr<formula::RefButton> pRbAssign2;
|
||||
|
||||
VclPtr<OKButton> pBtnOk;
|
||||
VclPtr<CancelButton> pBtnCancel;
|
||||
VclPtr<PushButton> pBtnAdd;
|
||||
VclPtr<PushButton> pBtnRemove;
|
||||
|
||||
ScRange theCurArea;
|
||||
ScRange theCurData;
|
||||
|
||||
@@ -68,25 +53,45 @@ private:
|
||||
NameRangeMap aRangeMap;
|
||||
ScViewData* const pViewData;
|
||||
ScDocument* pDoc;
|
||||
VclPtr<formula::RefEdit> pEdActive;
|
||||
bool bDlgLostFocus;
|
||||
|
||||
formula::WeldRefEdit* m_pEdActive;
|
||||
std::unique_ptr<weld::TreeView> m_xLbRange;
|
||||
|
||||
std::unique_ptr<formula::WeldRefEdit> m_xEdAssign;
|
||||
std::unique_ptr<formula::WeldRefButton> m_xRbAssign;
|
||||
std::unique_ptr<weld::RadioButton> m_xBtnColHead;
|
||||
std::unique_ptr<weld::RadioButton> m_xBtnRowHead;
|
||||
std::unique_ptr<formula::WeldRefEdit> m_xEdAssign2;
|
||||
std::unique_ptr<formula::WeldRefButton> m_xRbAssign2;
|
||||
|
||||
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::Frame> m_xRangeFrame;
|
||||
std::unique_ptr<weld::Label> m_xRangeFT;
|
||||
std::unique_ptr<weld::Label> m_xDataFT;
|
||||
|
||||
void Init ();
|
||||
void UpdateNames ();
|
||||
void UpdateRangeData ( const ScRange& rRange, bool bColName );
|
||||
void SetColRowData( const ScRange& rLabelRange, bool bRef=false);
|
||||
void AdjustColRowData( const ScRange& rDataRange, bool bRef=false);
|
||||
DECL_LINK( CancelBtnHdl, Button*, void );
|
||||
DECL_LINK( OkBtnHdl, Button*, void );
|
||||
DECL_LINK( AddBtnHdl, Button*, void );
|
||||
DECL_LINK( RemoveBtnHdl, Button*, void );
|
||||
DECL_LINK( Range1SelectHdl, ListBox&, void );
|
||||
DECL_LINK( Range1DataModifyHdl, Edit&, void );
|
||||
DECL_LINK( ColClickHdl, Button*, void );
|
||||
DECL_LINK( RowClickHdl, Button*, void );
|
||||
DECL_LINK( Range2DataModifyHdl, Edit&, void );
|
||||
DECL_LINK( GetFocusHdl, Control&, void );
|
||||
DECL_LINK( LoseFocusHdl, Control&, 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( Range1SelectHdl, weld::TreeView&, void );
|
||||
DECL_LINK( Range1DataModifyHdl, formula::WeldRefEdit&, void );
|
||||
DECL_LINK( ColClickHdl, weld::Button&, void );
|
||||
DECL_LINK( RowClickHdl, weld::Button&, void );
|
||||
DECL_LINK( Range2DataModifyHdl, formula::WeldRefEdit&, void );
|
||||
DECL_LINK( GetEditFocusHdl, formula::WeldRefEdit&, void );
|
||||
DECL_LINK( LoseEditFocusHdl, formula::WeldRefEdit&, void );
|
||||
DECL_LINK( GetButtonFocusHdl, formula::WeldRefButton&, void );
|
||||
DECL_LINK( LoseButtonFocusHdl, formula::WeldRefButton&, void );
|
||||
};
|
||||
|
||||
#endif // INCLUDED_SC_SOURCE_UI_INC_CRNRDLG_HXX
|
||||
|
@@ -56,7 +56,7 @@ DECL_WRAPPER_WITHID(ScSpecialFilterDlgWrapper)
|
||||
DECL_WRAPPER_WITHID_CONTROLLER(ScDbNameDlgWrapper)
|
||||
DECL_WRAPPER_WITHID(ScConsolidateDlgWrapper)
|
||||
DECL_WRAPPER_WITHID_CONTROLLER(ScPrintAreasDlgWrapper)
|
||||
DECL_WRAPPER_WITHID(ScColRowNameRangesDlgWrapper)
|
||||
DECL_WRAPPER_WITHID_CONTROLLER(ScColRowNameRangesDlgWrapper)
|
||||
DECL_WRAPPER_WITHID(ScFormulaDlgWrapper)
|
||||
DECL_WRAPPER_WITHID(ScHighlightChgDlgWrapper)
|
||||
DECL_WRAPPER_WITHID(ScCondFormatDlgWrapper)
|
||||
|
@@ -58,34 +58,33 @@ const sal_uLong nEntryDataDelim = 2;
|
||||
// note: some of the initialisation is done in Init
|
||||
ScColRowNameRangesDlg::ScColRowNameRangesDlg( SfxBindings* pB,
|
||||
SfxChildWindow* pCW,
|
||||
vcl::Window* pParent,
|
||||
weld::Window* pParent,
|
||||
ScViewData* ptrViewData )
|
||||
|
||||
: ScAnyRefDlg ( pB, pCW, pParent, "NameRangesDialog" , "modules/scalc/ui/namerangesdialog.ui" ),
|
||||
|
||||
pViewData ( ptrViewData ),
|
||||
pDoc ( ptrViewData->GetDocument() ),
|
||||
|
||||
pEdActive ( nullptr ),
|
||||
bDlgLostFocus ( false )
|
||||
: ScAnyRefDlgController(pB, pCW, pParent, "modules/scalc/ui/namerangesdialog.ui", "NameRangesDialog")
|
||||
, pViewData(ptrViewData)
|
||||
, pDoc(ptrViewData->GetDocument())
|
||||
, bDlgLostFocus(false)
|
||||
, m_pEdActive(nullptr)
|
||||
, m_xLbRange(m_xBuilder->weld_tree_view("range"))
|
||||
, m_xEdAssign(new formula::WeldRefEdit(m_xBuilder->weld_entry("edassign")))
|
||||
, m_xRbAssign(new formula::WeldRefButton(m_xBuilder->weld_button("rbassign")))
|
||||
, m_xBtnColHead(m_xBuilder->weld_radio_button("colhead"))
|
||||
, m_xBtnRowHead(m_xBuilder->weld_radio_button("rowhead"))
|
||||
, m_xEdAssign2(new formula::WeldRefEdit(m_xBuilder->weld_entry("edassign2")))
|
||||
, m_xRbAssign2(new formula::WeldRefButton(m_xBuilder->weld_button("rbassign2")))
|
||||
, 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_xRangeFrame(m_xBuilder->weld_frame("rangeframe"))
|
||||
, m_xRangeFT(m_xRangeFrame->weld_label_widget())
|
||||
, m_xDataFT(m_xBuilder->weld_label("datarange"))
|
||||
{
|
||||
get(pLbRange,"range");
|
||||
|
||||
get(pEdAssign,"edassign");
|
||||
get(pRbAssign,"rbassign");
|
||||
pRbAssign->SetReferences(this, pEdAssign);
|
||||
pEdAssign->SetReferences(this, get<VclFrame>("rangeframe")->get_label_widget());
|
||||
get(pBtnColHead,"colhead");
|
||||
get(pBtnRowHead,"rowhead");
|
||||
get(pEdAssign2,"edassign2");
|
||||
get(pRbAssign2,"rbassign2");
|
||||
pRbAssign2->SetReferences(this, pEdAssign2);
|
||||
pEdAssign2->SetReferences(this, get<FixedText>("datarange"));
|
||||
|
||||
get(pBtnOk,"ok");
|
||||
get(pBtnCancel,"cancel");
|
||||
get(pBtnAdd,"add");
|
||||
get(pBtnRemove,"delete");
|
||||
m_xRbAssign->SetReferences(this, m_xEdAssign.get());
|
||||
m_xEdAssign->SetReferences(this, m_xRangeFT.get());
|
||||
m_xRbAssign2->SetReferences(this, m_xEdAssign2.get());
|
||||
m_xEdAssign2->SetReferences(this, m_xDataFT.get());
|
||||
|
||||
xColNameRanges = pDoc->GetColNameRanges()->Clone();
|
||||
xRowNameRanges = pDoc->GetRowNameRanges()->Clone();
|
||||
@@ -94,54 +93,38 @@ ScColRowNameRangesDlg::ScColRowNameRangesDlg( SfxBindings* pB,
|
||||
|
||||
ScColRowNameRangesDlg::~ScColRowNameRangesDlg()
|
||||
{
|
||||
disposeOnce();
|
||||
}
|
||||
|
||||
void ScColRowNameRangesDlg::dispose()
|
||||
{
|
||||
pLbRange.clear();
|
||||
pEdAssign.clear();
|
||||
pRbAssign.clear();
|
||||
pBtnColHead.clear();
|
||||
pBtnRowHead.clear();
|
||||
pEdAssign2.clear();
|
||||
pRbAssign2.clear();
|
||||
pBtnOk.clear();
|
||||
pBtnCancel.clear();
|
||||
pBtnAdd.clear();
|
||||
pBtnRemove.clear();
|
||||
pEdActive.clear();
|
||||
ScAnyRefDlg::dispose();
|
||||
}
|
||||
|
||||
// initialises event handlers and start parameters in the dialog
|
||||
void ScColRowNameRangesDlg::Init()
|
||||
{
|
||||
pBtnOk->SetClickHdl ( LINK( this, ScColRowNameRangesDlg, OkBtnHdl ) );
|
||||
pBtnCancel->SetClickHdl ( LINK( this, ScColRowNameRangesDlg, CancelBtnHdl ) );
|
||||
pBtnAdd->SetClickHdl ( LINK( this, ScColRowNameRangesDlg, AddBtnHdl ) );
|
||||
pBtnRemove->SetClickHdl ( LINK( this, ScColRowNameRangesDlg, RemoveBtnHdl ) );
|
||||
pLbRange->SetSelectHdl ( LINK( this, ScColRowNameRangesDlg, Range1SelectHdl ) );
|
||||
pEdAssign->SetModifyHdl ( LINK( this, ScColRowNameRangesDlg, Range1DataModifyHdl ) );
|
||||
pBtnColHead->SetClickHdl ( LINK( this, ScColRowNameRangesDlg, ColClickHdl ) );
|
||||
pBtnRowHead->SetClickHdl ( LINK( this, ScColRowNameRangesDlg, RowClickHdl ) );
|
||||
pEdAssign2->SetModifyHdl ( LINK( this, ScColRowNameRangesDlg, Range2DataModifyHdl ) );
|
||||
m_xBtnOk->connect_clicked ( LINK( this, ScColRowNameRangesDlg, OkBtnHdl ) );
|
||||
m_xBtnCancel->connect_clicked ( LINK( this, ScColRowNameRangesDlg, CancelBtnHdl ) );
|
||||
m_xBtnAdd->connect_clicked ( LINK( this, ScColRowNameRangesDlg, AddBtnHdl ) );
|
||||
m_xBtnRemove->connect_clicked ( LINK( this, ScColRowNameRangesDlg, RemoveBtnHdl ) );
|
||||
m_xLbRange->connect_changed( LINK( this, ScColRowNameRangesDlg, Range1SelectHdl ) );
|
||||
m_xEdAssign->SetModifyHdl ( LINK( this, ScColRowNameRangesDlg, Range1DataModifyHdl ) );
|
||||
m_xBtnColHead->connect_clicked ( LINK( this, ScColRowNameRangesDlg, ColClickHdl ) );
|
||||
m_xBtnRowHead->connect_clicked ( LINK( this, ScColRowNameRangesDlg, RowClickHdl ) );
|
||||
m_xEdAssign2->SetModifyHdl ( LINK( this, ScColRowNameRangesDlg, Range2DataModifyHdl ) );
|
||||
|
||||
Link<Control&,void> aLink = LINK( this, ScColRowNameRangesDlg, GetFocusHdl );
|
||||
pEdAssign->SetGetFocusHdl( aLink );
|
||||
pRbAssign->SetGetFocusHdl( aLink );
|
||||
pEdAssign2->SetGetFocusHdl( aLink );
|
||||
pRbAssign2->SetGetFocusHdl( aLink );
|
||||
Link<formula::WeldRefEdit&,void> aEditLink = LINK( this, ScColRowNameRangesDlg, GetEditFocusHdl );
|
||||
m_xEdAssign->SetGetFocusHdl( aEditLink );
|
||||
m_xEdAssign2->SetGetFocusHdl( aEditLink );
|
||||
|
||||
aLink = LINK( this, ScColRowNameRangesDlg, LoseFocusHdl );
|
||||
pEdAssign->SetLoseFocusHdl( aLink );
|
||||
pRbAssign->SetLoseFocusHdl( aLink );
|
||||
pEdAssign2->SetLoseFocusHdl( aLink );
|
||||
pRbAssign2->SetLoseFocusHdl( aLink );
|
||||
Link<formula::WeldRefButton&,void> aButtonLink = LINK( this, ScColRowNameRangesDlg, GetButtonFocusHdl );
|
||||
m_xRbAssign->SetGetFocusHdl( aButtonLink );
|
||||
m_xRbAssign2->SetGetFocusHdl( aButtonLink );
|
||||
|
||||
pLbRange->SetDropDownLineCount(10);
|
||||
aEditLink = LINK( this, ScColRowNameRangesDlg, LoseEditFocusHdl );
|
||||
m_xEdAssign->SetLoseFocusHdl( aEditLink );
|
||||
m_xEdAssign2->SetLoseFocusHdl( aEditLink );
|
||||
|
||||
pEdActive = pEdAssign;
|
||||
aButtonLink = LINK( this, ScColRowNameRangesDlg, LoseButtonFocusHdl );
|
||||
m_xRbAssign2->SetLoseFocusHdl( aButtonLink );
|
||||
m_xRbAssign->SetLoseFocusHdl( aButtonLink );
|
||||
|
||||
m_pEdActive = m_xEdAssign.get();
|
||||
|
||||
UpdateNames();
|
||||
|
||||
@@ -159,20 +142,19 @@ void ScColRowNameRangesDlg::Init()
|
||||
}
|
||||
else
|
||||
{
|
||||
pBtnColHead->Check();
|
||||
pBtnRowHead->Check( false );
|
||||
pEdAssign->SetText( EMPTY_OUSTRING );
|
||||
pEdAssign2->SetText( EMPTY_OUSTRING );
|
||||
m_xBtnColHead->set_active(true);
|
||||
m_xBtnRowHead->set_active(false);
|
||||
m_xEdAssign->SetText( EMPTY_OUSTRING );
|
||||
m_xEdAssign2->SetText( EMPTY_OUSTRING );
|
||||
}
|
||||
|
||||
pLbRange->SetBorderStyle( WindowBorderStyle::MONO );
|
||||
pBtnColHead->Enable();
|
||||
pBtnRowHead->Enable();
|
||||
pEdAssign->Enable();
|
||||
pEdAssign->GrabFocus();
|
||||
pRbAssign->Enable();
|
||||
m_xBtnColHead->set_sensitive(true);
|
||||
m_xBtnRowHead->set_sensitive(true);
|
||||
m_xEdAssign->GetWidget()->set_sensitive(true);
|
||||
m_xEdAssign->GrabFocus();
|
||||
m_xRbAssign->GetWidget()->set_sensitive(true);
|
||||
|
||||
Range1SelectHdl( *pLbRange );
|
||||
Range1SelectHdl( *m_xLbRange );
|
||||
}
|
||||
|
||||
// set data range of a labeled range to default values and set the
|
||||
@@ -187,8 +169,8 @@ void ScColRowNameRangesDlg::SetColRowData( const ScRange& rLabelRange, bool bRef
|
||||
SCROW nRow2 = theCurArea.aEnd.Row();
|
||||
if ( (static_cast<SCCOLROW>(nCol2 - nCol1) >= nRow2 - nRow1) || (nCol1 == 0 && nCol2 == MAXCOL) )
|
||||
{ // Column headers and the limiting case of the whole sheet
|
||||
pBtnColHead->Check();
|
||||
pBtnRowHead->Check( false );
|
||||
m_xBtnColHead->set_active(true);
|
||||
m_xBtnRowHead->set_active(false);
|
||||
if ( nRow2 == MAXROW )
|
||||
{
|
||||
if ( nRow1 == 0 )
|
||||
@@ -207,8 +189,8 @@ void ScColRowNameRangesDlg::SetColRowData( const ScRange& rLabelRange, bool bRef
|
||||
}
|
||||
else
|
||||
{ // Column headers
|
||||
pBtnRowHead->Check();
|
||||
pBtnColHead->Check( false );
|
||||
m_xBtnRowHead->set_active(true);
|
||||
m_xBtnColHead->set_active(false);
|
||||
if ( nCol2 == MAXCOL )
|
||||
{ // Header at the right, data to the left
|
||||
theCurData.aStart.SetCol( 0 );
|
||||
@@ -226,17 +208,17 @@ void ScColRowNameRangesDlg::SetColRowData( const ScRange& rLabelRange, bool bRef
|
||||
OUString aStr(theCurArea.Format(ScRefFlags::RANGE_ABS_3D, pDoc, eConv));
|
||||
|
||||
if(bRef)
|
||||
pEdAssign->SetRefString( aStr );
|
||||
m_xEdAssign->SetRefString( aStr );
|
||||
else
|
||||
pEdAssign->SetText( aStr );
|
||||
m_xEdAssign->SetText( aStr );
|
||||
|
||||
pEdAssign->SetSelection( Selection( SELECTION_MAX, SELECTION_MAX ) );
|
||||
m_xEdAssign->SetCursorAtLast();
|
||||
aStr = theCurData.Format(ScRefFlags::RANGE_ABS_3D, pDoc, eConv);
|
||||
|
||||
if(bRef)
|
||||
pEdAssign2->SetRefString( aStr );
|
||||
m_xEdAssign2->SetRefString( aStr );
|
||||
else
|
||||
pEdAssign2->SetText( aStr );
|
||||
m_xEdAssign2->SetText( aStr );
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -244,19 +226,19 @@ void ScColRowNameRangesDlg::SetColRowData( const ScRange& rLabelRange, bool bRef
|
||||
|
||||
if(bRef)
|
||||
{
|
||||
pEdAssign->SetRefString( EMPTY_OUSTRING );
|
||||
pEdAssign2->SetRefString( EMPTY_OUSTRING );
|
||||
m_xEdAssign->SetRefString( EMPTY_OUSTRING );
|
||||
m_xEdAssign2->SetRefString( EMPTY_OUSTRING );
|
||||
}
|
||||
else
|
||||
{
|
||||
pEdAssign->SetText( EMPTY_OUSTRING );
|
||||
pEdAssign2->SetText( EMPTY_OUSTRING );
|
||||
m_xEdAssign->SetText( EMPTY_OUSTRING );
|
||||
m_xEdAssign2->SetText( EMPTY_OUSTRING );
|
||||
}
|
||||
|
||||
pBtnColHead->Disable();
|
||||
pBtnRowHead->Disable();
|
||||
pEdAssign2->Disable();
|
||||
pRbAssign2->Disable();
|
||||
m_xBtnColHead->set_sensitive(false);
|
||||
m_xBtnRowHead->set_sensitive(false);
|
||||
m_xEdAssign2->GetWidget()->set_sensitive(false);
|
||||
m_xRbAssign2->GetWidget()->set_sensitive(false);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -264,7 +246,7 @@ void ScColRowNameRangesDlg::SetColRowData( const ScRange& rLabelRange, bool bRef
|
||||
void ScColRowNameRangesDlg::AdjustColRowData( const ScRange& rDataRange, bool bRef)
|
||||
{
|
||||
theCurData = rDataRange;
|
||||
if ( pBtnColHead->IsChecked() )
|
||||
if ( m_xBtnColHead->get_active() )
|
||||
{ // Data range is the same columns as the header
|
||||
theCurData.aStart.SetCol( theCurArea.aStart.Col() );
|
||||
theCurData.aEnd.SetCol( theCurArea.aEnd.Col() );
|
||||
@@ -313,36 +295,36 @@ void ScColRowNameRangesDlg::AdjustColRowData( const ScRange& rDataRange, bool bR
|
||||
OUString aStr(theCurData.Format(ScRefFlags::RANGE_ABS_3D, pDoc, pDoc->GetAddressConvention()));
|
||||
|
||||
if(bRef)
|
||||
pEdAssign2->SetRefString( aStr );
|
||||
m_xEdAssign2->SetRefString( aStr );
|
||||
else
|
||||
pEdAssign2->SetText( aStr );
|
||||
m_xEdAssign2->SetText( aStr );
|
||||
|
||||
pEdAssign2->SetSelection( Selection( SELECTION_MAX, SELECTION_MAX ) );
|
||||
m_xEdAssign2->SetCursorAtLast();
|
||||
}
|
||||
|
||||
// Set the reference to a cell range selected with the mouse and update
|
||||
// the selection form element
|
||||
void ScColRowNameRangesDlg::SetReference( const ScRange& rRef, ScDocument* /* pDoc */ )
|
||||
{
|
||||
if ( pEdActive )
|
||||
if ( m_pEdActive )
|
||||
{
|
||||
if ( rRef.aStart != rRef.aEnd )
|
||||
RefInputStart( pEdActive );
|
||||
RefInputStart( m_pEdActive );
|
||||
|
||||
if ( pEdActive == pEdAssign )
|
||||
if (m_pEdActive == m_xEdAssign.get())
|
||||
SetColRowData( rRef, true );
|
||||
else
|
||||
AdjustColRowData( rRef, true );
|
||||
pBtnColHead->Enable();
|
||||
pBtnRowHead->Enable();
|
||||
pBtnAdd->Enable();
|
||||
pBtnRemove->Disable();
|
||||
m_xBtnColHead->set_sensitive(true);
|
||||
m_xBtnRowHead->set_sensitive(true);
|
||||
m_xBtnAdd->set_sensitive(true);
|
||||
m_xBtnRemove->set_sensitive(false);
|
||||
}
|
||||
}
|
||||
|
||||
bool ScColRowNameRangesDlg::Close()
|
||||
void ScColRowNameRangesDlg::Close()
|
||||
{
|
||||
return DoClose( ScColRowNameRangesDlgWrapper::GetChildWindowId() );
|
||||
DoClose( ScColRowNameRangesDlgWrapper::GetChildWindowId() );
|
||||
}
|
||||
|
||||
void ScColRowNameRangesDlg::SetActive()
|
||||
@@ -350,27 +332,27 @@ void ScColRowNameRangesDlg::SetActive()
|
||||
if ( bDlgLostFocus )
|
||||
{
|
||||
bDlgLostFocus = false;
|
||||
if( pEdActive )
|
||||
pEdActive->GrabFocus();
|
||||
if( m_pEdActive )
|
||||
m_pEdActive->GrabFocus();
|
||||
}
|
||||
else
|
||||
GrabFocus();
|
||||
m_xDialog->grab_focus();
|
||||
|
||||
if( pEdActive == pEdAssign )
|
||||
Range1DataModifyHdl( *pEdAssign );
|
||||
else if( pEdActive == pEdAssign2 )
|
||||
Range2DataModifyHdl( *pEdAssign2 );
|
||||
if( m_pEdActive == m_xEdAssign.get() )
|
||||
Range1DataModifyHdl( *m_xEdAssign );
|
||||
else if( m_pEdActive == m_xEdAssign2.get() )
|
||||
Range2DataModifyHdl( *m_xEdAssign2 );
|
||||
|
||||
RefInputDone();
|
||||
}
|
||||
|
||||
void ScColRowNameRangesDlg::UpdateNames()
|
||||
{
|
||||
pLbRange->SetUpdateMode( false );
|
||||
m_xLbRange->freeze();
|
||||
|
||||
pLbRange->Clear();
|
||||
m_xLbRange->clear();
|
||||
aRangeMap.clear();
|
||||
pEdAssign->SetText( EMPTY_OUSTRING );
|
||||
m_xEdAssign->SetText( EMPTY_OUSTRING );
|
||||
|
||||
size_t nCount, j;
|
||||
|
||||
@@ -388,8 +370,7 @@ void ScColRowNameRangesDlg::UpdateNames()
|
||||
aString = strDelim;
|
||||
aString += ScResId( STR_COLUMN );
|
||||
aString += strDelim;
|
||||
sal_Int32 nPos = pLbRange->InsertEntry( aString );
|
||||
pLbRange->SetEntryData( nPos, reinterpret_cast<void*>(nEntryDataDelim) );
|
||||
m_xLbRange->append(OUString::number(nEntryDataDelim), aString);
|
||||
if ( (nCount = xColNameRanges->size()) > 0 )
|
||||
{
|
||||
std::vector<const ScRangePair*> aSortArray(xColNameRanges->CreateNameSortedArray(
|
||||
@@ -423,16 +404,14 @@ void ScColRowNameRangesDlg::UpdateNames()
|
||||
|
||||
//@008 Add string to listbox
|
||||
OUString aInsStr = aString + strShow.makeStringAndClear();
|
||||
nPos = pLbRange->InsertEntry( aInsStr );
|
||||
aRangeMap.emplace( aInsStr, aRange );
|
||||
pLbRange->SetEntryData( nPos, reinterpret_cast<void*>(nEntryDataCol) );
|
||||
m_xLbRange->append(OUString::number(nEntryDataDelim), aInsStr);
|
||||
}
|
||||
}
|
||||
aString = strDelim;
|
||||
aString += ScResId( STR_ROW );
|
||||
aString += strDelim;
|
||||
nPos = pLbRange->InsertEntry( aString );
|
||||
pLbRange->SetEntryData( nPos, reinterpret_cast<void*>(nEntryDataDelim) );
|
||||
m_xLbRange->append(OUString::number(nEntryDataDelim), aString);
|
||||
if ( (nCount = xRowNameRanges->size()) > 0 )
|
||||
{
|
||||
std::vector<const ScRangePair*> aSortArray(xRowNameRanges->CreateNameSortedArray(
|
||||
@@ -464,14 +443,12 @@ void ScColRowNameRangesDlg::UpdateNames()
|
||||
strShow.append("]");
|
||||
|
||||
OUString aInsStr = aString + strShow.makeStringAndClear();
|
||||
nPos = pLbRange->InsertEntry( aInsStr );
|
||||
aRangeMap.emplace( aInsStr, aRange );
|
||||
pLbRange->SetEntryData( nPos, reinterpret_cast<void*>(nEntryDataRow) );
|
||||
m_xLbRange->append(OUString::number(nEntryDataRow), aInsStr);
|
||||
}
|
||||
}
|
||||
|
||||
pLbRange->SetUpdateMode( true );
|
||||
pLbRange->Invalidate();
|
||||
m_xLbRange->thaw();
|
||||
}
|
||||
|
||||
void ScColRowNameRangesDlg::UpdateRangeData( const ScRange& rRange, bool bColName )
|
||||
@@ -488,38 +465,38 @@ void ScColRowNameRangesDlg::UpdateRangeData( const ScRange& rRange, bool bColNam
|
||||
const formula::FormulaGrammar::AddressConvention eConv = pDoc->GetAddressConvention();
|
||||
theCurArea = rRange;
|
||||
OUString aStr(theCurArea.Format(ScRefFlags::RANGE_ABS_3D, pDoc, eConv));
|
||||
pEdAssign->SetText( aStr );
|
||||
pBtnAdd->Disable();
|
||||
pBtnRemove->Enable();
|
||||
pBtnColHead->Check( bColName );
|
||||
pBtnRowHead->Check( !bColName );
|
||||
m_xEdAssign->SetText( aStr );
|
||||
m_xBtnAdd->set_sensitive(false);
|
||||
m_xBtnRemove->set_sensitive(true);
|
||||
m_xBtnColHead->set_active(bColName);
|
||||
m_xBtnRowHead->set_active(!bColName);
|
||||
theCurData = pPair->GetRange(1);
|
||||
aStr = theCurData.Format(ScRefFlags::RANGE_ABS_3D, pDoc, eConv);
|
||||
pEdAssign2->SetText( aStr );
|
||||
m_xEdAssign2->SetText( aStr );
|
||||
}
|
||||
else
|
||||
{
|
||||
pBtnAdd->Enable();
|
||||
pBtnRemove->Disable();
|
||||
m_xBtnAdd->set_sensitive(true);
|
||||
m_xBtnRemove->set_sensitive(false);
|
||||
}
|
||||
pBtnColHead->Enable();
|
||||
pBtnRowHead->Enable();
|
||||
pEdAssign2->Enable();
|
||||
pRbAssign2->Enable();
|
||||
m_xBtnColHead->set_sensitive(true);
|
||||
m_xBtnRowHead->set_sensitive(true);
|
||||
m_xEdAssign2->GetWidget()->set_sensitive(true);
|
||||
m_xRbAssign2->GetWidget()->set_sensitive(true);
|
||||
}
|
||||
|
||||
bool ScColRowNameRangesDlg::IsRefInputMode() const
|
||||
{
|
||||
return (pEdActive != nullptr);
|
||||
return (m_pEdActive != nullptr);
|
||||
}
|
||||
|
||||
// Handler:
|
||||
|
||||
// handler called when OK is clicked, calls the add button handler before
|
||||
// passing the range lists to the document
|
||||
IMPL_LINK_NOARG(ScColRowNameRangesDlg, OkBtnHdl, Button*, void)
|
||||
IMPL_LINK_NOARG(ScColRowNameRangesDlg, OkBtnHdl, weld::Button&, void)
|
||||
{
|
||||
AddBtnHdl( nullptr );
|
||||
AddBtnHdl(*m_xBtnAdd);
|
||||
|
||||
// assign RangeLists to the references in the document
|
||||
pDoc->GetColNameRangesRef() = xColNameRanges;
|
||||
@@ -530,19 +507,19 @@ IMPL_LINK_NOARG(ScColRowNameRangesDlg, OkBtnHdl, Button*, void)
|
||||
pDocShell->PostPaint(ScRange(0, 0, 0, MAXCOL, MAXROW, MAXTAB), PaintPartFlags::Grid);
|
||||
pDocShell->SetDocumentModified();
|
||||
|
||||
Close();
|
||||
response(RET_OK);
|
||||
}
|
||||
|
||||
IMPL_LINK_NOARG(ScColRowNameRangesDlg, CancelBtnHdl, Button*, void)
|
||||
IMPL_LINK_NOARG(ScColRowNameRangesDlg, CancelBtnHdl, weld::Button&, void)
|
||||
{
|
||||
Close();
|
||||
response(RET_CANCEL);
|
||||
}
|
||||
|
||||
// handler called when add button clicked: set ranges and add to listbox
|
||||
IMPL_LINK_NOARG(ScColRowNameRangesDlg, AddBtnHdl, Button*, void)
|
||||
IMPL_LINK_NOARG(ScColRowNameRangesDlg, AddBtnHdl, weld::Button&, void)
|
||||
{
|
||||
OUString aNewArea( pEdAssign->GetText() );
|
||||
OUString aNewData( pEdAssign2->GetText() );
|
||||
OUString aNewArea( m_xEdAssign->GetText() );
|
||||
OUString aNewData( m_xEdAssign2->GetText() );
|
||||
|
||||
if ( !aNewArea.isEmpty() && !aNewData.isEmpty() )
|
||||
{
|
||||
@@ -562,41 +539,40 @@ IMPL_LINK_NOARG(ScColRowNameRangesDlg, AddBtnHdl, Button*, void)
|
||||
{
|
||||
xRowNameRanges->Remove( *pPair );
|
||||
}
|
||||
if ( pBtnColHead->IsChecked() )
|
||||
if ( m_xBtnColHead->get_active() )
|
||||
xColNameRanges->Join( ScRangePair( theCurArea, theCurData ) );
|
||||
else
|
||||
xRowNameRanges->Join( ScRangePair( theCurArea, theCurData ) );
|
||||
|
||||
UpdateNames();
|
||||
|
||||
pEdAssign->GrabFocus();
|
||||
pBtnAdd->Disable();
|
||||
pBtnRemove->Disable();
|
||||
pEdAssign->SetText( EMPTY_OUSTRING );
|
||||
pBtnColHead->Check();
|
||||
pBtnRowHead->Check( false );
|
||||
pEdAssign2->SetText( EMPTY_OUSTRING );
|
||||
m_xEdAssign->GrabFocus();
|
||||
m_xBtnAdd->set_sensitive(false);
|
||||
m_xBtnRemove->set_sensitive(false);
|
||||
m_xEdAssign->SetText( EMPTY_OUSTRING );
|
||||
m_xBtnColHead->set_active(true);
|
||||
m_xBtnRowHead->set_active(false);
|
||||
m_xEdAssign2->SetText( EMPTY_OUSTRING );
|
||||
theCurArea = ScRange();
|
||||
theCurData = theCurArea;
|
||||
Range1SelectHdl( *pLbRange );
|
||||
Range1SelectHdl( *m_xLbRange );
|
||||
}
|
||||
else
|
||||
{
|
||||
ERRORBOX(GetFrameWeld(), ScResId(STR_INVALIDTABNAME));
|
||||
ERRORBOX(m_xDialog.get(), ScResId(STR_INVALIDTABNAME));
|
||||
if ( !bOk1 )
|
||||
pEdAssign->GrabFocus();
|
||||
m_xEdAssign->GrabFocus();
|
||||
else
|
||||
pEdAssign2->GrabFocus();
|
||||
m_xEdAssign2->GrabFocus();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
IMPL_LINK_NOARG(ScColRowNameRangesDlg, RemoveBtnHdl, Button*, void)
|
||||
IMPL_LINK_NOARG(ScColRowNameRangesDlg, RemoveBtnHdl, weld::Button&, void)
|
||||
{
|
||||
OUString aRangeStr = pLbRange->GetSelectedEntry();
|
||||
sal_Int32 nSelectPos = pLbRange->GetSelectedEntryPos();
|
||||
bool bColName =
|
||||
(reinterpret_cast<sal_uLong>(pLbRange->GetEntryData( nSelectPos )) == nEntryDataCol);
|
||||
OUString aRangeStr = m_xLbRange->get_selected_text();
|
||||
sal_Int32 nSelectPos = m_xLbRange->get_selected_index();
|
||||
bool bColName = nSelectPos != -1 && m_xLbRange->get_id(nSelectPos).toInt32() == nEntryDataCol;
|
||||
NameRangeMap::const_iterator itr = aRangeMap.find(aRangeStr);
|
||||
if (itr == aRangeMap.end())
|
||||
return;
|
||||
@@ -615,7 +591,7 @@ IMPL_LINK_NOARG(ScColRowNameRangesDlg, RemoveBtnHdl, Button*, void)
|
||||
+ aRangeStr
|
||||
+ aStrDelMsg.getToken( 1, '#' );
|
||||
|
||||
if (RET_YES == QUERYBOX(GetFrameWeld(), aMsg))
|
||||
if (RET_YES == QUERYBOX(m_xDialog.get(), aMsg))
|
||||
{
|
||||
if ( bColName )
|
||||
xColNameRanges->Remove( *pPair );
|
||||
@@ -623,7 +599,7 @@ IMPL_LINK_NOARG(ScColRowNameRangesDlg, RemoveBtnHdl, Button*, void)
|
||||
xRowNameRanges->Remove( *pPair );
|
||||
|
||||
UpdateNames();
|
||||
const sal_Int32 nCnt = pLbRange->GetEntryCount();
|
||||
const sal_Int32 nCnt = m_xLbRange->n_children();
|
||||
if ( nSelectPos >= nCnt )
|
||||
{
|
||||
if ( nCnt )
|
||||
@@ -631,96 +607,93 @@ IMPL_LINK_NOARG(ScColRowNameRangesDlg, RemoveBtnHdl, Button*, void)
|
||||
else
|
||||
nSelectPos = 0;
|
||||
}
|
||||
pLbRange->SelectEntryPos( nSelectPos );
|
||||
if ( nSelectPos &&
|
||||
reinterpret_cast<sal_uLong>(pLbRange->GetEntryData( nSelectPos )) == nEntryDataDelim )
|
||||
pLbRange->SelectEntryPos( --nSelectPos ); // ---Row---
|
||||
m_xLbRange->select(nSelectPos);
|
||||
if (nSelectPos && m_xLbRange->get_id(nSelectPos).toInt32() == nEntryDataDelim)
|
||||
m_xLbRange->select( --nSelectPos ); // ---Row---
|
||||
|
||||
pLbRange->GrabFocus();
|
||||
pBtnAdd->Disable();
|
||||
pBtnRemove->Disable();
|
||||
pEdAssign->SetText( EMPTY_OUSTRING );
|
||||
m_xLbRange->grab_focus();
|
||||
m_xBtnAdd->set_sensitive(false);
|
||||
m_xBtnRemove->set_sensitive(false);
|
||||
m_xEdAssign->SetText( EMPTY_OUSTRING );
|
||||
theCurArea = theCurData = ScRange();
|
||||
pBtnColHead->Check();
|
||||
pBtnRowHead->Check( false );
|
||||
pEdAssign2->SetText( EMPTY_OUSTRING );
|
||||
Range1SelectHdl( *pLbRange );
|
||||
m_xBtnColHead->set_active(true);
|
||||
m_xBtnRowHead->set_active(false);
|
||||
m_xEdAssign2->SetText( EMPTY_OUSTRING );
|
||||
Range1SelectHdl( *m_xLbRange );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// handler called when a row in the listbox is selected, updates form input fields
|
||||
IMPL_LINK_NOARG(ScColRowNameRangesDlg, Range1SelectHdl, ListBox&, void)
|
||||
IMPL_LINK_NOARG(ScColRowNameRangesDlg, Range1SelectHdl, weld::TreeView&, void)
|
||||
{
|
||||
sal_Int32 nSelectPos = pLbRange->GetSelectedEntryPos();
|
||||
const sal_Int32 nCnt = pLbRange->GetEntryCount();
|
||||
sal_Int32 nSelectPos = m_xLbRange->get_selected_index();
|
||||
const sal_Int32 nCnt = m_xLbRange->n_children();
|
||||
sal_uInt16 nMoves = 0;
|
||||
while ( nSelectPos < nCnt
|
||||
&& reinterpret_cast<sal_uLong>(pLbRange->GetEntryData( nSelectPos )) == nEntryDataDelim )
|
||||
while (nSelectPos != -1 && nSelectPos < nCnt && m_xLbRange->get_id(nSelectPos).toInt32() == nEntryDataDelim)
|
||||
{ // skip Delimiter
|
||||
++nMoves;
|
||||
pLbRange->SelectEntryPos( ++nSelectPos );
|
||||
m_xLbRange->select( ++nSelectPos );
|
||||
}
|
||||
OUString aRangeStr = pLbRange->GetSelectedEntry();
|
||||
OUString aRangeStr = m_xLbRange->get_selected_text();
|
||||
if ( nMoves )
|
||||
{
|
||||
if ( nSelectPos > 1 && nSelectPos >= nCnt )
|
||||
{ // if entries exist before the " --- Row --- " Delimiter then
|
||||
// do not stop at the delimiter
|
||||
nSelectPos = nCnt - 2;
|
||||
pLbRange->SelectEntryPos( nSelectPos );
|
||||
aRangeStr = pLbRange->GetSelectedEntry();
|
||||
m_xLbRange->select( nSelectPos );
|
||||
aRangeStr = m_xLbRange->get_selected_text();
|
||||
}
|
||||
else if ( nSelectPos > 2 && nSelectPos < nCnt && !aRangeStr.isEmpty()
|
||||
&& aRangeStr == pEdAssign->GetText() )
|
||||
&& aRangeStr == m_xEdAssign->GetText() )
|
||||
{ // move upwards instead of below to the previous position
|
||||
nSelectPos -= 2;
|
||||
pLbRange->SelectEntryPos( nSelectPos );
|
||||
aRangeStr = pLbRange->GetSelectedEntry();
|
||||
m_xLbRange->select( nSelectPos );
|
||||
aRangeStr = m_xLbRange->get_selected_text();
|
||||
}
|
||||
}
|
||||
NameRangeMap::const_iterator itr = aRangeMap.find(aRangeStr);
|
||||
if ( itr != aRangeMap.end() )
|
||||
{
|
||||
bool bColName =
|
||||
(reinterpret_cast<sal_uLong>(pLbRange->GetEntryData( nSelectPos )) == nEntryDataCol);
|
||||
bool bColName = m_xLbRange->get_id(nSelectPos).toInt32() == nEntryDataCol;
|
||||
UpdateRangeData( itr->second, bColName );
|
||||
pBtnAdd->Disable();
|
||||
pBtnRemove->Enable();
|
||||
m_xBtnAdd->set_sensitive(false);
|
||||
m_xBtnRemove->set_sensitive(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( !pEdAssign->GetText().isEmpty() )
|
||||
if ( !m_xEdAssign->GetText().isEmpty() )
|
||||
{
|
||||
if ( !pEdAssign2->GetText().isEmpty() )
|
||||
pBtnAdd->Enable();
|
||||
if ( !m_xEdAssign2->GetText().isEmpty() )
|
||||
m_xBtnAdd->set_sensitive(true);
|
||||
else
|
||||
pBtnAdd->Disable();
|
||||
pBtnColHead->Enable();
|
||||
pBtnRowHead->Enable();
|
||||
pEdAssign2->Enable();
|
||||
pRbAssign2->Enable();
|
||||
m_xBtnAdd->set_sensitive(false);
|
||||
m_xBtnColHead->set_sensitive(true);
|
||||
m_xBtnRowHead->set_sensitive(true);
|
||||
m_xEdAssign2->GetWidget()->set_sensitive(true);
|
||||
m_xRbAssign2->GetWidget()->set_sensitive(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
pBtnAdd->Disable();
|
||||
pBtnColHead->Disable();
|
||||
pBtnRowHead->Disable();
|
||||
pEdAssign2->Disable();
|
||||
pRbAssign2->Disable();
|
||||
m_xBtnAdd->set_sensitive(false);
|
||||
m_xBtnColHead->set_sensitive(false);
|
||||
m_xBtnRowHead->set_sensitive(false);
|
||||
m_xEdAssign2->GetWidget()->set_sensitive(false);
|
||||
m_xRbAssign2->GetWidget()->set_sensitive(false);
|
||||
}
|
||||
pBtnRemove->Disable();
|
||||
pEdAssign->GrabFocus();
|
||||
m_xBtnRemove->set_sensitive(false);
|
||||
m_xEdAssign->GrabFocus();
|
||||
}
|
||||
|
||||
pEdAssign->Enable();
|
||||
pRbAssign->Enable();
|
||||
m_xEdAssign->GetWidget()->set_sensitive(true);
|
||||
m_xRbAssign->GetWidget()->set_sensitive(true);
|
||||
}
|
||||
|
||||
// handler called when the label range has changed
|
||||
IMPL_LINK_NOARG(ScColRowNameRangesDlg, Range1DataModifyHdl, Edit&, void)
|
||||
IMPL_LINK_NOARG(ScColRowNameRangesDlg, Range1DataModifyHdl, formula::WeldRefEdit&, void)
|
||||
{
|
||||
OUString aNewArea( pEdAssign->GetText() );
|
||||
OUString aNewArea( m_xEdAssign->GetText() );
|
||||
bool bValid = false;
|
||||
if (!aNewArea.isEmpty() && pDoc)
|
||||
{
|
||||
@@ -733,56 +706,54 @@ IMPL_LINK_NOARG(ScColRowNameRangesDlg, Range1DataModifyHdl, Edit&, void)
|
||||
}
|
||||
if ( bValid )
|
||||
{
|
||||
pBtnAdd->Enable();
|
||||
pBtnColHead->Enable();
|
||||
pBtnRowHead->Enable();
|
||||
pEdAssign2->Enable();
|
||||
pRbAssign2->Enable();
|
||||
m_xBtnAdd->set_sensitive(true);
|
||||
m_xBtnColHead->set_sensitive(true);
|
||||
m_xBtnRowHead->set_sensitive(true);
|
||||
m_xEdAssign2->GetWidget()->set_sensitive(true);
|
||||
m_xRbAssign2->GetWidget()->set_sensitive(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
pBtnAdd->Disable();
|
||||
pBtnColHead->Disable();
|
||||
pBtnRowHead->Disable();
|
||||
pEdAssign2->Disable();
|
||||
pRbAssign2->Disable();
|
||||
m_xBtnAdd->set_sensitive(false);
|
||||
m_xBtnColHead->set_sensitive(false);
|
||||
m_xBtnRowHead->set_sensitive(false);
|
||||
m_xEdAssign2->GetWidget()->set_sensitive(false);
|
||||
m_xRbAssign2->GetWidget()->set_sensitive(false);
|
||||
}
|
||||
pBtnRemove->Disable();
|
||||
m_xBtnRemove->set_sensitive(false);
|
||||
}
|
||||
|
||||
// handler called when the data range has changed
|
||||
IMPL_LINK_NOARG(ScColRowNameRangesDlg, Range2DataModifyHdl, Edit&, void)
|
||||
IMPL_LINK_NOARG(ScColRowNameRangesDlg, Range2DataModifyHdl, formula::WeldRefEdit&, void)
|
||||
{
|
||||
OUString aNewData( pEdAssign2->GetText() );
|
||||
OUString aNewData( m_xEdAssign2->GetText() );
|
||||
if ( !aNewData.isEmpty() )
|
||||
{
|
||||
ScRange aRange;
|
||||
if ( (aRange.ParseAny(aNewData, pDoc, pDoc->GetAddressConvention() ) & ScRefFlags::VALID) == ScRefFlags::VALID)
|
||||
{
|
||||
AdjustColRowData( aRange );
|
||||
pBtnAdd->Enable();
|
||||
m_xBtnAdd->set_sensitive(true);
|
||||
}
|
||||
else
|
||||
pBtnAdd->Disable();
|
||||
m_xBtnAdd->set_sensitive(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
pBtnAdd->Disable();
|
||||
m_xBtnAdd->set_sensitive(false);
|
||||
}
|
||||
}
|
||||
|
||||
// handler for the radio button for columns, adjust ranges
|
||||
IMPL_LINK_NOARG(ScColRowNameRangesDlg, ColClickHdl, Button*, void)
|
||||
IMPL_LINK_NOARG(ScColRowNameRangesDlg, ColClickHdl, weld::Button&, void)
|
||||
{
|
||||
if ( !pBtnColHead->GetSavedValue() )
|
||||
if (m_xBtnColHead->get_active())
|
||||
{
|
||||
pBtnColHead->Check();
|
||||
pBtnRowHead->Check( false );
|
||||
if ( theCurArea.aStart.Row() == 0 && theCurArea.aEnd.Row() == MAXROW )
|
||||
{
|
||||
theCurArea.aEnd.SetRow( MAXROW - 1 );
|
||||
OUString aStr(theCurArea.Format(ScRefFlags::RANGE_ABS_3D, pDoc, pDoc->GetAddressConvention()));
|
||||
pEdAssign->SetText( aStr );
|
||||
m_xEdAssign->SetText( aStr );
|
||||
}
|
||||
ScRange aRange( theCurData );
|
||||
aRange.aStart.SetRow( std::min( static_cast<long>(theCurArea.aEnd.Row() + 1), long(MAXROW) ) );
|
||||
@@ -792,17 +763,15 @@ IMPL_LINK_NOARG(ScColRowNameRangesDlg, ColClickHdl, Button*, void)
|
||||
}
|
||||
|
||||
// handler for the radio button for columns, adjust range
|
||||
IMPL_LINK_NOARG(ScColRowNameRangesDlg, RowClickHdl, Button*, void)
|
||||
IMPL_LINK_NOARG(ScColRowNameRangesDlg, RowClickHdl, weld::Button&, void)
|
||||
{
|
||||
if ( !pBtnRowHead->GetSavedValue() )
|
||||
if (m_xBtnRowHead->get_active())
|
||||
{
|
||||
pBtnRowHead->Check();
|
||||
pBtnColHead->Check( false );
|
||||
if ( theCurArea.aStart.Col() == 0 && theCurArea.aEnd.Col() == MAXCOL )
|
||||
{
|
||||
theCurArea.aEnd.SetCol( MAXCOL - 1 );
|
||||
OUString aStr(theCurArea.Format(ScRefFlags::RANGE_ABS_3D, pDoc, pDoc->GetAddressConvention()));
|
||||
pEdAssign->SetText( aStr );
|
||||
m_xEdAssign->SetText( aStr );
|
||||
}
|
||||
ScRange aRange( theCurData );
|
||||
aRange.aStart.SetCol( static_cast<SCCOL>(std::min( static_cast<long>(theCurArea.aEnd.Col() + 1), long(MAXCOL) )) );
|
||||
@@ -811,22 +780,40 @@ IMPL_LINK_NOARG(ScColRowNameRangesDlg, RowClickHdl, Button*, void)
|
||||
}
|
||||
}
|
||||
|
||||
IMPL_LINK( ScColRowNameRangesDlg, GetFocusHdl, Control&, rCtrl, void )
|
||||
IMPL_LINK( ScColRowNameRangesDlg, GetEditFocusHdl, formula::WeldRefEdit&, rCtrl, void )
|
||||
{
|
||||
if( (&rCtrl == static_cast<Control*>(pEdAssign)) || (&rCtrl == static_cast<Control*>(pRbAssign)) )
|
||||
pEdActive = pEdAssign;
|
||||
else if( (&rCtrl == static_cast<Control*>(pEdAssign2)) || (&rCtrl == static_cast<Control*>(pRbAssign2)) )
|
||||
pEdActive = pEdAssign2;
|
||||
if (&rCtrl == m_xEdAssign.get())
|
||||
m_pEdActive = m_xEdAssign.get();
|
||||
else if (&rCtrl == m_xEdAssign2.get())
|
||||
m_pEdActive = m_xEdAssign2.get();
|
||||
else
|
||||
pEdActive = nullptr;
|
||||
m_pEdActive = nullptr;
|
||||
|
||||
if( pEdActive )
|
||||
pEdActive->SetSelection( Selection( 0, SELECTION_MAX ) );
|
||||
if( m_pEdActive )
|
||||
m_pEdActive->SelectAll();
|
||||
}
|
||||
|
||||
IMPL_LINK_NOARG(ScColRowNameRangesDlg, LoseFocusHdl, Control&, void)
|
||||
IMPL_LINK( ScColRowNameRangesDlg, GetButtonFocusHdl, formula::WeldRefButton&, rCtrl, void )
|
||||
{
|
||||
bDlgLostFocus = !IsActive();
|
||||
if (&rCtrl == m_xRbAssign.get())
|
||||
m_pEdActive = m_xEdAssign.get();
|
||||
else if (&rCtrl == m_xRbAssign2.get())
|
||||
m_pEdActive = m_xEdAssign2.get();
|
||||
else
|
||||
m_pEdActive = nullptr;
|
||||
|
||||
if( m_pEdActive )
|
||||
m_pEdActive->SelectAll();
|
||||
}
|
||||
|
||||
IMPL_LINK_NOARG(ScColRowNameRangesDlg, LoseEditFocusHdl, formula::WeldRefEdit&, void)
|
||||
{
|
||||
bDlgLostFocus = !m_xDialog->has_toplevel_focus();
|
||||
}
|
||||
|
||||
IMPL_LINK_NOARG(ScColRowNameRangesDlg, LoseButtonFocusHdl, formula::WeldRefButton&, void)
|
||||
{
|
||||
bDlgLostFocus = !m_xDialog->has_toplevel_focus();
|
||||
}
|
||||
|
||||
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
||||
|
@@ -44,7 +44,7 @@ SFX_IMPL_MODELESSDIALOG_WITHID(ScSpecialFilterDlgWrapper, SID_SPECIAL_FILTER )
|
||||
SFX_IMPL_CHILDWINDOW_WITHID(ScDbNameDlgWrapper, SID_DEFINE_DBNAME )
|
||||
SFX_IMPL_MODELESSDIALOG_WITHID(ScConsolidateDlgWrapper, SID_OPENDLG_CONSOLIDATE )
|
||||
SFX_IMPL_CHILDWINDOW_WITHID(ScPrintAreasDlgWrapper, SID_OPENDLG_EDIT_PRINTAREA )
|
||||
SFX_IMPL_MODELESSDIALOG_WITHID(ScColRowNameRangesDlgWrapper, SID_DEFINE_COLROWNAMERANGES )
|
||||
SFX_IMPL_CHILDWINDOW_WITHID(ScColRowNameRangesDlgWrapper, SID_DEFINE_COLROWNAMERANGES )
|
||||
SFX_IMPL_MODELESSDIALOG_WITHID(ScFormulaDlgWrapper, SID_OPENDLG_FUNCTION )
|
||||
SFX_IMPL_MODELESSDIALOG_WITHID(ScAcceptChgDlgWrapper, FID_CHG_ACCEPT )
|
||||
SFX_IMPL_MODELESSDIALOG_WITHID(ScHighlightChgDlgWrapper, FID_CHG_SHOW )
|
||||
@@ -141,7 +141,7 @@ IMPL_CHILD_CTOR( ScSpecialFilterDlgWrapper, SID_SPECIAL_FILTER )
|
||||
|
||||
IMPL_CONTROLLER_CHILD_CTOR( ScDbNameDlgWrapper, SID_DEFINE_DBNAME )
|
||||
|
||||
IMPL_CHILD_CTOR( ScColRowNameRangesDlgWrapper, SID_DEFINE_COLROWNAMERANGES )
|
||||
IMPL_CONTROLLER_CHILD_CTOR( ScColRowNameRangesDlgWrapper, SID_DEFINE_COLROWNAMERANGES )
|
||||
|
||||
IMPL_CHILD_CTOR( ScConsolidateDlgWrapper, SID_OPENDLG_CONSOLIDATE )
|
||||
|
||||
|
@@ -1989,10 +1989,20 @@ void ScTabView::SetTabNo( SCTAB nTab, bool bNew, bool bExtendSelection, bool bSa
|
||||
sal_uInt16 nCurRefDlgId=pScMod->GetCurRefDlgId();
|
||||
SfxViewFrame* pViewFrm = aViewData.GetViewShell()->GetViewFrame();
|
||||
SfxChildWindow* pChildWnd = pViewFrm->GetChildWindow( nCurRefDlgId );
|
||||
IAnyRefDialog* pRefDlg = pChildWnd ? dynamic_cast<IAnyRefDialog*>(pChildWnd->GetWindow()) : nullptr;
|
||||
if (pRefDlg)
|
||||
if (pChildWnd)
|
||||
{
|
||||
pRefDlg->ViewShellChanged();
|
||||
if (pChildWnd->GetWindow())
|
||||
{
|
||||
IAnyRefDialog* pRefDlg = dynamic_cast<IAnyRefDialog*>(pChildWnd->GetWindow());
|
||||
if (pRefDlg)
|
||||
pRefDlg->ViewShellChanged();
|
||||
}
|
||||
if (pChildWnd->GetController())
|
||||
{
|
||||
IAnyRefDialog* pRefDlg = dynamic_cast<IAnyRefDialog*>(pChildWnd->GetController().get());
|
||||
if (pRefDlg)
|
||||
pRefDlg->ViewShellChanged();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -199,11 +199,18 @@ void ScTabViewShell::Activate(bool bMDI)
|
||||
SfxChildWindow* pChildWnd = pThisFrame->GetChildWindow( nModRefDlgId );
|
||||
if ( pChildWnd )
|
||||
{
|
||||
IAnyRefDialog* pRefDlg = dynamic_cast<IAnyRefDialog*>(pChildWnd->GetWindow());
|
||||
assert(pRefDlg);
|
||||
if(pRefDlg)
|
||||
if (pChildWnd->GetWindow())
|
||||
{
|
||||
pRefDlg->ViewShellChanged();
|
||||
IAnyRefDialog* pRefDlg = dynamic_cast<IAnyRefDialog*>(pChildWnd->GetWindow());
|
||||
assert(pRefDlg);
|
||||
if (pRefDlg)
|
||||
pRefDlg->ViewShellChanged();
|
||||
}
|
||||
if (pChildWnd->GetController())
|
||||
{
|
||||
IAnyRefDialog* pRefDlg = dynamic_cast<IAnyRefDialog*>(pChildWnd->GetController().get());
|
||||
if (pRefDlg)
|
||||
pRefDlg->ViewShellChanged();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -144,12 +144,6 @@ VclPtr<SfxModelessDialog> ScTabViewShell::CreateRefDialog(
|
||||
|
||||
switch( nSlotId )
|
||||
{
|
||||
case SID_DEFINE_COLROWNAMERANGES:
|
||||
{
|
||||
pResult = VclPtr<ScColRowNameRangesDlg>::Create( pB, pCW, pParent, &GetViewData() );
|
||||
}
|
||||
break;
|
||||
|
||||
case SID_OPENDLG_CONSOLIDATE:
|
||||
{
|
||||
SfxItemSet aArgSet( GetPool(),
|
||||
@@ -491,7 +485,10 @@ std::unique_ptr<SfxModelessDialogController> ScTabViewShell::CreateRefDialogCont
|
||||
}
|
||||
case SID_OPENDLG_EDIT_PRINTAREA:
|
||||
xResult.reset(new ScPrintAreasDlg(pB, pCW, pParent));
|
||||
break;
|
||||
break;
|
||||
case SID_DEFINE_COLROWNAMERANGES:
|
||||
xResult.reset(new ScColRowNameRangesDlg(pB, pCW, pParent, &GetViewData()));
|
||||
break;
|
||||
}
|
||||
|
||||
if (xResult)
|
||||
|
@@ -1,14 +1,26 @@
|
||||
<?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="NameRangesDialog">
|
||||
<property name="can_focus">False</property>
|
||||
<property name="border_width">6</property>
|
||||
<property name="title" translatable="yes" context="namerangesdialog|NameRangesDialog">Define Label 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>
|
||||
@@ -105,10 +117,11 @@
|
||||
<property name="hexpand">True</property>
|
||||
<property name="column_spacing">12</property>
|
||||
<child>
|
||||
<object class="foruilo-RefEdit" id="edassign">
|
||||
<object class="GtkEntry" id="edassign">
|
||||
<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>
|
||||
@@ -116,7 +129,7 @@
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="foruilo-RefButton" id="rbassign">
|
||||
<object class="GtkButton" id="rbassign">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">True</property>
|
||||
@@ -152,7 +165,6 @@
|
||||
<property name="xalign">0</property>
|
||||
<property name="active">True</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
<property name="group">rowhead</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
@@ -168,7 +180,6 @@
|
||||
<property name="hexpand">True</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="active">True</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
<property name="group">colhead</property>
|
||||
</object>
|
||||
@@ -187,10 +198,10 @@
|
||||
<object class="GtkLabel" id="datarange">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="label" translatable="yes" context="namerangesdialog|datarange">For _data range</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="mnemonic_widget">edassign2</property>
|
||||
<property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
@@ -204,10 +215,11 @@
|
||||
<property name="hexpand">True</property>
|
||||
<property name="column_spacing">12</property>
|
||||
<child>
|
||||
<object class="foruilo-RefEdit" id="edassign2">
|
||||
<object class="GtkEntry" id="edassign2">
|
||||
<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>
|
||||
@@ -215,7 +227,7 @@
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="foruilo-RefButton" id="rbassign2">
|
||||
<object class="GtkButton" id="rbassign2">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">True</property>
|
||||
@@ -276,14 +288,40 @@
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkTreeView" id="range:border">
|
||||
<object class="GtkScrolledWindow">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="vexpand">True</property>
|
||||
<property name="show_expanders">False</property>
|
||||
<child internal-child="selection">
|
||||
<object class="GtkTreeSelection" id="treeview-selection1"/>
|
||||
<property name="shadow_type">in</property>
|
||||
<child>
|
||||
<object class="GtkTreeView" id="range">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">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="rules_hint">True</property>
|
||||
<property name="search_column">0</property>
|
||||
<property name="show_expanders">False</property>
|
||||
<child internal-child="selection">
|
||||
<object class="GtkTreeSelection"/>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkTreeViewColumn" id="treeviewcolumn3">
|
||||
<property name="resizable">True</property>
|
||||
<property name="spacing">6</property>
|
||||
<child>
|
||||
<object class="GtkCellRendererText" id="cellrenderer3"/>
|
||||
<attributes>
|
||||
<attribute name="text">0</attribute>
|
||||
</attributes>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
|
@@ -111,7 +111,9 @@ sc/uiconfig/scalc/ui/imoptdialog.ui://svxlo-SvxTextEncodingBox[@id='charsetlist:
|
||||
sc/uiconfig/scalc/ui/insertsheet.ui://GtkLabel[@id='path'] orphan-label
|
||||
sc/uiconfig/scalc/ui/insertsheet.ui://GtkTreeViewColumn[@id='treeviewcolumn1'] no-labelled-by
|
||||
sc/uiconfig/scalc/ui/integerdialog.ui://GtkSpinButton[@id='value'] no-labelled-by
|
||||
sc/uiconfig/scalc/ui/namerangesdialog.ui://foruilo-RefEdit[@id='edassign'] no-labelled-by
|
||||
sc/uiconfig/scalc/ui/namerangesdialog.ui://GtkEntry[@id='edassign'] no-labelled-by
|
||||
sc/uiconfig/scalc/ui/namerangesdialog.ui://GtkButton[@id='rbassign'] button-no-label
|
||||
sc/uiconfig/scalc/ui/namerangesdialog.ui://GtkButton[@id='rbassign2'] button-no-label
|
||||
sc/uiconfig/scalc/ui/notebookbar_groups.ui://GtkLabel[@id='filegrouplabel'] orphan-label
|
||||
sc/uiconfig/scalc/ui/notebookbar_groups.ui://GtkLabel[@id='clipboardgrouplabel'] orphan-label
|
||||
sc/uiconfig/scalc/ui/notebookbar_groups.ui://svtlo-FontNameBox[@id='fontnamelist'] no-labelled-by
|
||||
|
Reference in New Issue
Block a user