Kaydet (Commit) dd5fbb68 authored tarafından Caolán McNamara's avatar Caolán McNamara

weld ScColRowNameRangesDlg

Change-Id: I976fb892f8ac1dedb0c2c3110dce17c1211de238
Reviewed-on: https://gerrit.libreoffice.org/70652Reviewed-by: 's avatarCaolán McNamara <caolanm@redhat.com>
Tested-by: 's avatarCaolán McNamara <caolanm@redhat.com>
üst 3df141b2
......@@ -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())
{
IAnyRefDialog* pRefDlg(dynamic_cast<IAnyRefDialog*>(pChildWnd->GetWindow()));
assert(pRefDlg);
if (pRefDlg)
bLocked = pRefDlg->IsTableLocked();
}
if (pChildWnd->GetController())
{
bLocked = pRefDlg->IsTableLocked();
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)
......
......@@ -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)
......
<?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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment