[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    branches/work/soc-kdevelop-refactoring
From:       Tom Stephenson <tomajoha () gmail ! com>
Date:       2006-08-19 14:56:57
Message-ID: 1155999417.542950.23412.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 574612 by tstephenson:

inc sample code

 M  +3 -0      codemodel/fakefield.cpp  
 M  +4 -0      codemodel/fakemethod.cpp  
 M  +7 -8      cpluspluscoderefactorer.cpp  
 M  +4 -2      cpluspluscoderefactorer.h  
 M  +13 -6     renamemembercommand.cpp  
 M  +1 -0      renamemembercommand.h  
 A             samplecode (directory)  
 A             samplecode/salesperson.cpp   [License: no copyright]
 A             samplecode/salesperson.h   [License: no copyright]


--- branches/work/soc-kdevelop-refactoring/codemodel/fakefield.cpp #574611:574612
@@ -18,6 +18,9 @@
 */
 
 #include "fakefield.h"
+FakeField::FakeField()
+{
+}
 FakeField::FakeField(QString fqNameIn,IRegion *regionIn,QString nameIn,IReturnType \
*returnTypeIn,IClass \
*declaringTypeIn):mIsAbstract(false),mIsStatic(false),mIsVirtual(false),mIsPublic(fals \
e),mIsProtected(false),mIsPrivate(false),mIsInternal(false),mIsReadOnly(false),mIsProt \
ectedAndInternal(false),mIsProtectedOrInternal(false),mIsLiteral(false),mIsOverride(false),mIsNew(false),mIsArray(false)
  {
 	mFullyQualifiedName = fqNameIn;
--- branches/work/soc-kdevelop-refactoring/codemodel/fakemethod.cpp #574611:574612
@@ -18,6 +18,10 @@
 */
 
 #include "fakemethod.h"
+FakeMethod::FakeMethod()
+{
+}
+
 FakeMethod::FakeMethod(IRegion *bodyRegionIn,QString fqNameIn,IRegion *regionIn, \
QString nameIn,IReturnType *returnIn,IClass *declaringTypeIn,IRegion * \
decRegion):mIsConstructor(false),mIsAbstract(false),mIsStatic(false),mIsVirtual(false) \
,mIsPublic(false),mIsProtected(false),mIsPrivate(false),mIsInternal(false),mIsReadOnly \
(false),mIsProtectedAndInternal(false),mIsProtectedOrInternal(false),mIsLiteral(false),mIsOverride(false),mIsNew(false)
  {
 	mBodyRegion = bodyRegionIn;
--- branches/work/soc-kdevelop-refactoring/cpluspluscoderefactorer.cpp #574611:574612
@@ -20,16 +20,15 @@
 #include "cpluspluscoderefactorer.h"
 
 
-IRefactorCommand * CPlusPlusCodeRefactorer::getAddMemberCommand()
+IRefactorCommand * CPlusPlusCodeRefactorer::getAddMemberCommand(RefactorerContext \
*ctx,IClass * cls,IMember * member)  {
-#warning CPlusPlusCodeRefactorer::getRenameMemberCommand() returning 0
-	return 0;
+	return new AddMemberCommand(ctx,cls,member);
 }
 
-IRefactorCommand * CPlusPlusCodeRefactorer::getRenameMemberCommand()
+IRefactorCommand * CPlusPlusCodeRefactorer::getRenameMemberCommand(RefactorerContext \
*ctx,IClass * cls,IMember * member,QString newName)  {
-#warning CPlusPlusCodeRefactorer::getRenameMemberCommand() returning 0
-	return 0;
+
+	return new RenameMemberCommand(ctx,cls,member,newName);
 }
 
 MemberReferenceCollection \
CPlusPlusCodeRefactorer::findFieldReferences(RefactorerContext *ctx,QString fileName, \
IClass *cls, IField *field) @@ -46,8 +45,8 @@
 
 MemberReferenceCollection \
CPlusPlusCodeRefactorer::findMethodReferences(RefactorerContext *ctx,QString \
fileName, IClass *cls, IMethod *method)  {
-	//faking a ref search result
-	MemberReference * ref = new MemberReference(ctx,fileName,8,20,17, "getSales", \
"setSales(i,salesFigure);"); +	//faking a ref search result pos the '8' is fake
+	MemberReference * ref = new MemberReference(ctx,fileName,8,20,17, "setSales", \
"setSales(i,salesFigure);");  MemberReferenceCollection col;
 	col.append(ref);
 	Q_UNUSED( ctx );
--- branches/work/soc-kdevelop-refactoring/cpluspluscoderefactorer.h #574611:574612
@@ -27,12 +27,14 @@
 #include "codemodel/refcodemodel.h"
 #include "codemodel/fakeclass.h"
 #include "codemodel/fakeparser.h"
+#include "addmembercommand.h"
+#include "renamemembercommand.h"
 
 class CPlusPlusCodeRefactorer: public BaseRefactorer
 {
 public:
-	IRefactorCommand * getAddMemberCommand();
-	IRefactorCommand * getRenameMemberCommand();
+	IRefactorCommand * getAddMemberCommand(RefactorerContext *ctx,IClass * cls,IMember \
* member); +	IRefactorCommand * getRenameMemberCommand(RefactorerContext *ctx,IClass \
* cls,IMember * member,QString newName);  static MemberReferenceCollection \
findFieldReferences (RefactorerContext * ctx,QString fileName, IClass *cls, IField \
*field);  static MemberReferenceCollection findMethodReferences (RefactorerContext \
*ctx,QString fileName, IClass * cls, IMethod * method);  static int \
                getMemberNamePosition (IEditableTextFile *buffer, IMember *member);
--- branches/work/soc-kdevelop-refactoring/renamemembercommand.cpp #574611:574612
@@ -45,14 +45,21 @@
 				
 		int i = txt.find(mMember->name());
 
-		bufferDec->deleteText(i,mMember->name().length());
-		bufferDec->insertText(i,mNewName);
+		bufferDec->deleteText(i+pos1,mMember->name().length());
+		bufferDec->insertText(i+pos1,mNewName);
 		
 		IMember *holdingMember = new FakeField();
 		
 		holdingMember->name() = mNewName;
 		mRefactoredMember = CPlusPlusCodeRefactorer::findGeneratedMember(mCtx, bufferDec, \
mCls, holdingMember,"renamemember");  
+		MemberReferenceCollection mCol = \
CPlusPlusCodeRefactorer::findFieldReferences(mCtx,(mMember->region())->fileName(), \
mCls, (static_cast<FakeField*> (mMember))); +		
+		QValueList<MemberReference*>::Iterator it = mCol.begin();
+			for (; it != mCol.end(); ++it){
+				(*it)->rename(mNewName);
+			}
+		
 	}
 		
 	else if(dynamic_cast<IMethod*>(mMember)){
@@ -69,8 +76,8 @@
 		
 		int i = decTxt.find(mMember->name());
 		
-		methodDec->deleteText(i,mMember->name().length());
-		methodDec->insertText(i,mNewName);
+		methodDec->deleteText(i+pos3,mMember->name().length());
+		methodDec->insertText(i+pos3,mNewName);
 		
 		int pos5 = methodDef->getPositionFromLineColumn (mMember->region()->beginLine(), \
mMember->region()->beginColumn());  
@@ -80,8 +87,8 @@
 		
 		int y = defTxt.find(mMember->name());
 		
-		methodDef->deleteText(y,mMember->name().length());
-		methodDef->insertText(y,mNewName);
+		methodDef->deleteText(y+pos5,mMember->name().length());
+		methodDef->insertText(y+pos5,mNewName);
 		
 		IMember *holdingMember = new FakeMethod();
 		
--- branches/work/soc-kdevelop-refactoring/renamemembercommand.h #574611:574612
@@ -29,6 +29,7 @@
 #include "codemodel/fakemethod.h"
 class RenameMemberCommand: public IRefactorCommand
 {
+public:
 	RenameMemberCommand(RefactorerContext * ctx,IClass * cls,IMember * member,QString \
newName);  ~RenameMemberCommand();
 	void refactor();


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic