Resolves: #i76558# jump by Enter key on the Object catalog

(cherry picked from commit 7bc75c1a7b05d81631ebccf05bf022636d1a3a14)

Conflicts:
	basctl/source/basicide/objdlg.cxx
	basctl/source/basicide/objdlg.hxx

Change-Id: Id3fa3686fd60df192c02cc8137c9bc59e68c1d49
This commit is contained in:
Tsutomu Uchino 2014-05-17 09:39:39 +00:00 committed by Caolán McNamara
parent ca0be67434
commit c9f3c508bb
2 changed files with 40 additions and 23 deletions

View File

@ -922,32 +922,47 @@ void TreeListBox::MouseButtonDown( const MouseEvent& rMEvt )
SvTreeListBox::MouseButtonDown( rMEvt );
if ( rMEvt.IsLeft() && ( rMEvt.GetClicks() == 2 ) )
{
EntryDescriptor aDesc = GetEntryDescriptor(GetCurEntry());
switch (aDesc.GetType())
{
case OBJ_TYPE_METHOD:
case OBJ_TYPE_MODULE:
case OBJ_TYPE_DIALOG:
if (SfxDispatcher* pDispatcher = GetDispatcher())
{
SbxItem aSbxItem(
SID_BASICIDE_ARG_SBX, aDesc.GetDocument(),
aDesc.GetLibName(), aDesc.GetName(), aDesc.GetMethodName(),
ConvertType(aDesc.GetType())
);
pDispatcher->Execute(
SID_BASICIDE_SHOWSBX,
SFX_CALLMODE_SYNCHRON, &aSbxItem, 0L
);
}
break;
default:
break;
}
OpenCurrent();
}
}
void TreeListBox::KeyInput( const KeyEvent& rEvt )
{
if ( rEvt.GetKeyCode() == KEY_RETURN && OpenCurrent() )
{
return;
}
SvTreeListBox::KeyInput( rEvt );
}
bool TreeListBox::OpenCurrent()
{
EntryDescriptor aDesc = GetEntryDescriptor(GetCurEntry());
switch (aDesc.GetType())
{
case OBJ_TYPE_METHOD:
case OBJ_TYPE_MODULE:
case OBJ_TYPE_DIALOG:
if (SfxDispatcher* pDispatcher = GetDispatcher())
{
SbxItem aSbxItem(
SID_BASICIDE_ARG_SBX, aDesc.GetDocument(),
aDesc.GetLibName(), aDesc.GetName(), aDesc.GetMethodName(),
ConvertType(aDesc.GetType())
);
pDispatcher->Execute(
SID_BASICIDE_SHOWSBX,
SFX_CALLMODE_SYNCHRON, &aSbxItem, 0L
);
return true;
}
break;
default:
break;
}
return false;
}
} // namespace basctl

View File

@ -185,7 +185,9 @@ protected:
virtual void ExpandedHdl() SAL_OVERRIDE;
virtual SvTreeListEntry* CloneEntry( SvTreeListEntry* pSource ) SAL_OVERRIDE;
virtual bool ExpandingHdl() SAL_OVERRIDE;
virtual void KeyInput( const KeyEvent& rEvt ) SAL_OVERRIDE;
bool OpenCurrent();
void ImpCreateLibEntries( SvTreeListEntry* pShellRootEntry, const ScriptDocument& rDocument, LibraryLocation eLocation );
void ImpCreateLibSubEntries( SvTreeListEntry* pLibRootEntry, const ScriptDocument& rDocument, const OUString& rLibName );
void ImpCreateLibSubEntriesInVBAMode( SvTreeListEntry* pLibRootEntry, const ScriptDocument& rDocument, const OUString& rLibName );