summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--basctl/source/basicide/baside2b.cxx57
-rw-r--r--basic/source/classes/codecompletecache.cxx13
-rw-r--r--include/basic/codecompletecache.hxx2
3 files changed, 41 insertions, 31 deletions
diff --git a/basctl/source/basicide/baside2b.cxx b/basctl/source/basicide/baside2b.cxx
index 5ff3e3d206e9..a3a8f1080a18 100644
--- a/basctl/source/basicide/baside2b.cxx
+++ b/basctl/source/basicide/baside2b.cxx
@@ -592,6 +592,7 @@ void EditorWindow::KeyInput( const KeyEvent& rKEvt )
{
unsigned int j = 1;
OUString sMethName;
+ bool bReflect = true;
while( j != aVect.size() )
{
sMethName = aVect[j];
@@ -604,43 +605,47 @@ void EditorWindow::KeyInput( const KeyEvent& rKEvt )
}
else
{
+ bReflect = false;
break;
}
j++;
}
- Sequence< Reference< reflection::XIdlMethod > > aMethods = xClass->getMethods();
- Sequence< Reference< reflection::XIdlField > > aFields = xClass->getFields();
- std::vector< OUString > aEntryVect;
-
- if( aMethods.getLength() != 0 )
+ if( bReflect )
{
- for(sal_Int32 l = 0; l < aMethods.getLength(); ++l)
+ Sequence< Reference< reflection::XIdlMethod > > aMethods = xClass->getMethods();
+ Sequence< Reference< reflection::XIdlField > > aFields = xClass->getFields();
+ std::vector< OUString > aEntryVect;
+
+ if( aMethods.getLength() != 0 )
{
- aEntryVect.push_back(OUString(aMethods[l]->getName()));
+ for(sal_Int32 l = 0; l < aMethods.getLength(); ++l)
+ {
+ aEntryVect.push_back(OUString(aMethods[l]->getName()));
+ }
}
- }
- if( aFields.getLength() != 0 )
- {
- for(sal_Int32 l = 0; l < aFields.getLength(); ++l)
+ if( aFields.getLength() != 0 )
{
- aEntryVect.push_back(OUString(aFields[l]->getName()));
+ for(sal_Int32 l = 0; l < aFields.getLength(); ++l)
+ {
+ aEntryVect.push_back(OUString(aFields[l]->getName()));
+ }
}
- }
- if( aEntryVect.size() > 0 )
- {
- Rectangle aRect = ( (TextEngine*) GetEditEngine() )->PaMtoEditCursor( aSel.GetEnd() , false );
- aSel.GetStart().GetIndex() += 1;
- aSel.GetEnd().GetIndex() += 1;
- pCodeCompleteWnd->ClearListBox();
- pCodeCompleteWnd->SetTextSelection(aSel);
- for(unsigned int l = 0; l < aEntryVect.size(); ++l)
+ if( aEntryVect.size() > 0 )
{
- pCodeCompleteWnd->InsertEntry( aEntryVect[l] );
+ Rectangle aRect = ( (TextEngine*) GetEditEngine() )->PaMtoEditCursor( aSel.GetEnd() , false );
+ aSel.GetStart().GetIndex() += 1;
+ aSel.GetEnd().GetIndex() += 1;
+ pCodeCompleteWnd->ClearListBox();
+ pCodeCompleteWnd->SetTextSelection(aSel);
+ for(unsigned int l = 0; l < aEntryVect.size(); ++l)
+ {
+ pCodeCompleteWnd->InsertEntry( aEntryVect[l] );
+ }
+ pCodeCompleteWnd->SetPosPixel( aRect.BottomRight() );
+ pCodeCompleteWnd->Show();
+ pCodeCompleteWnd->ResizeListBox();
+ pCodeCompleteWnd->SelectFirstEntry();
}
- pCodeCompleteWnd->SetPosPixel( aRect.BottomRight() );
- pCodeCompleteWnd->Show();
- pCodeCompleteWnd->ResizeListBox();
- pCodeCompleteWnd->SelectFirstEntry();
}
}
}
diff --git a/basic/source/classes/codecompletecache.cxx b/basic/source/classes/codecompletecache.cxx
index 728dcb4a1d81..b174d1e7149d 100644
--- a/basic/source/classes/codecompletecache.cxx
+++ b/basic/source/classes/codecompletecache.cxx
@@ -142,18 +142,23 @@ void CodeCompleteDataCache::InsertLocalVar( const OUString& sProcName, const OUS
}
}
-OUString CodeCompleteDataCache::GetVarType( const OUString& sVarName )
+OUString CodeCompleteDataCache::GetVarType( const OUString& sVarName ) const
{
for( CodeCompleteVarScopes::const_iterator aIt = aVarScopes.begin(); aIt != aVarScopes.end(); ++aIt )
{
CodeCompleteVarTypes aTypes = aIt->second;
- if( aTypes[sVarName] != OUString("") )
- return aTypes[sVarName];
+ for( CodeCompleteVarTypes::const_iterator aOtherIt = aTypes.begin(); aOtherIt != aTypes.end(); ++aOtherIt )
+ {
+ if( aOtherIt->first.equalsIgnoreAsciiCase( sVarName ) )
+ {
+ return aOtherIt->second;
+ }
+ }
}
//not a local, search global scope
for( CodeCompleteVarTypes::const_iterator aIt = aGlobalVars.begin(); aIt != aGlobalVars.end(); ++aIt )
{
- if( aIt->first == sVarName )
+ if( aIt->first.equalsIgnoreAsciiCase( sVarName ) )
return aIt->second;
}
return OUString(""); //not found
diff --git a/include/basic/codecompletecache.hxx b/include/basic/codecompletecache.hxx
index 520629926681..c12139b71bbd 100644
--- a/include/basic/codecompletecache.hxx
+++ b/include/basic/codecompletecache.hxx
@@ -99,7 +99,7 @@ public:
void InsertGlobalVar( const OUString& sVarName, const OUString& sVarType );
void InsertLocalVar( const OUString& sProcName, const OUString& sVarName, const OUString& sVarType );
- OUString GetVarType( const OUString& sVarName );
+ OUString GetVarType( const OUString& sVarName ) const;
void print() const; // wrapper for operator<<, prints to std::cerr
void Clear();
};