diff options
-rw-r--r-- | basctl/source/basicide/baside2b.cxx | 57 | ||||
-rw-r--r-- | basic/source/classes/codecompletecache.cxx | 13 | ||||
-rw-r--r-- | include/basic/codecompletecache.hxx | 2 |
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(); }; |