Просмотр исходного кода

Merge pull request #423 from TheCosmotect/fileops

Addressed refreshing of projects so that all of their project browsers are updated after file ops.
Ivan Safrin 12 лет назад
Родитель
Сommit
bd3a75e2de
2 измененных файлов с 14 добавлено и 9 удалено
  1. 1 1
      IDE/Contents/Source/PolycodeFrame.cpp
  2. 13 8
      IDE/Contents/Source/PolycodeIDEApp.cpp

+ 1 - 1
IDE/Contents/Source/PolycodeFrame.cpp

@@ -1745,7 +1745,7 @@ ObjectEntry *PolycodeFrame::getFrameConfigForProject(PolycodeProject *project) {
 }
 
 void PolycodeFrame::removeProjectFrame(PolycodeProject *project) {
-
+    //TODO: implement. this is being called from PolycodeIDEApp::doCloseProject()
 }
 
 PolycodeProjectFrame *PolycodeFrame::getActiveProjectFrame() {

+ 13 - 8
IDE/Contents/Source/PolycodeIDEApp.cpp

@@ -272,7 +272,7 @@ void PolycodeIDEApp::doRemoveFile() {
 	if(projectManager->selectedFile != "") {
 		core->removeDiskItem(projectManager->selectedFile);
 		if(projectManager->getActiveProject()) {
-			frame->getCurrentProjectBrowser()->Refresh();
+            refreshProject();
 		}
 		PolycodeEditor *editor = 0;
 		for (int i=0; i < editorManager->openEditors.size(); i++) {
@@ -312,7 +312,12 @@ void PolycodeIDEApp::newFile() {
 
 void PolycodeIDEApp::refreshProject() {
 	if(projectManager->getActiveProject()) {
-		frame->getCurrentProjectBrowser()->Refresh();
+        PolycodeProjectBrowser *browser;
+        PolycodeProject *project = projectManager->getActiveProject();
+        for (int i=0; i < frame->getProjectFrame(project)->getNumTabs(); i++) {
+            browser = frame->getProjectFrame(project)->getTabAtIndex(i)->getProjectBrowser();
+            browser->Refresh();
+        }
 	}
 }
 
@@ -579,7 +584,7 @@ void PolycodeIDEApp::addFiles() {
 			core->copyDiskItem(files[i], projectManager->activeFolder + "/" + entry.name);
 		}
 		
-		frame->getCurrentProjectBrowser()->Refresh();
+        refreshProject();
 #endif
 	}		
 }
@@ -676,7 +681,7 @@ void PolycodeIDEApp::openFile(OSFileEntry file) {
 void PolycodeIDEApp::handleEvent(Event *event) {
 
 	if(event->getDispatcher() == frame->assetImporterWindow) {
-		frame->getCurrentProjectBrowser()->Refresh();
+        refreshProject();
 	}
 	
 	if(event->getDispatcher() == projectManager && event->getEventCode() == Event::CHANGE_EVENT) {
@@ -723,7 +728,7 @@ void PolycodeIDEApp::handleEvent(Event *event) {
 				} else if(frame->fileDialog->action == "addFiles") {
 					OSFileEntry entry = OSFileEntry(path, OSFileEntry::TYPE_FILE);
 					core->copyDiskItem(path, projectManager->activeFolder + "/" + entry.name);
-					frame->getCurrentProjectBrowser()->Refresh();
+                    refreshProject();
 				}
 			}
 		}
@@ -1007,14 +1012,14 @@ void PolycodeIDEApp::handleEvent(Event *event) {
 			if(frame->textInputPopup->action == "newGroup") {	
 				core->createFolder(projectManager->activeFolder+"/"+frame->textInputPopup->getValue());
 				if(projectManager->getActiveProject()) {
-					frame->getCurrentProjectBrowser()->Refresh();
+                    refreshProject();
 				}			
 			}
 			
 			if(frame->textInputPopup->action == "renameFile") {		
 				core->moveDiskItem(projectManager->selectedFileEntry.fullPath, projectManager->selectedFileEntry.basePath + "/" + frame->textInputPopup->getValue());			
 				if(projectManager->getActiveProject()) {
-					frame->getCurrentProjectBrowser()->Refresh();
+                    refreshProject();
 				}
 				
 				PolycodeEditor *editor = editorManager->getEditorForPath(projectManager->selectedFileEntry.fullPath);
@@ -1071,7 +1076,7 @@ void PolycodeIDEApp::handleEvent(Event *event) {
 			projectManager->createNewFile(frame->newFileWindow->getTemplatePath(), frame->newFileWindow->getFileName());
 			frame->hideModal();						
 			if(projectManager->getActiveProject()) {
-				frame->getCurrentProjectBrowser()->Refresh();
+                refreshProject();
 			}			
 		}
 	}