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

IDE asset browser will now reload the project folder tree every time it is shown, added a reload button to asset browser to refresh current folder

Ivan Safrin 12 лет назад
Родитель
Сommit
58e552b260

+ 2 - 0
IDE/Contents/Include/TextureBrowser.h

@@ -65,6 +65,8 @@ class AssetList : public UIElement {
 		
 		
 	protected:
 	protected:
 	
 	
+		UIImageButton *reloadButton;
+	
 		String currentFolderPath;
 		String currentFolderPath;
 		ScreenShape *bgShape;
 		ScreenShape *bgShape;
 	
 	

BIN
IDE/Contents/Resources/Images/reload_icon.png


+ 19 - 13
IDE/Contents/Source/TextureBrowser.cpp

@@ -80,6 +80,12 @@ AssetList::AssetList() : UIElement() {
 	bgShape->setPositionMode(ScreenEntity::POSITION_TOPLEFT);
 	bgShape->setPositionMode(ScreenEntity::POSITION_TOPLEFT);
 	bgShape->setColor(0.0, 0.0, 0.0, 0.4);
 	bgShape->setColor(0.0, 0.0, 0.0, 0.4);
 	addChild(bgShape);
 	addChild(bgShape);
+	
+	reloadButton = new UIImageButton("Images/reload_icon.png");
+	reloadButton->addEventListener(this, UIEvent::CLICK_EVENT);
+	addChild(reloadButton);	
+	reloadButton->setPosition(10, 5);		
+	
 }
 }
 
 
 AssetList::~AssetList() {
 AssetList::~AssetList() {
@@ -117,7 +123,7 @@ void AssetList::showFolder(String folderPath) {
 	vector<OSFileEntry> assets = OSBasics::parseFolder(folderPath, false);	
 	vector<OSFileEntry> assets = OSBasics::parseFolder(folderPath, false);	
 	
 	
 	Number xPos = 20;
 	Number xPos = 20;
-	Number yPos = 20;
+	Number yPos = 30;
 	
 	
 	for(int i=0; i < assets.size(); i++) {
 	for(int i=0; i < assets.size(); i++) {
 		OSFileEntry entry = assets[i];
 		OSFileEntry entry = assets[i];
@@ -152,15 +158,19 @@ void AssetList::showFolder(String folderPath) {
 }
 }
 
 
 void AssetList::handleEvent(Event *event) {
 void AssetList::handleEvent(Event *event) {
-	for(int i=0; i < assetEntries.size(); i++) {
-		if(event->getDispatcher() == assetEntries[i]->selectShape && event->getEventCode() == InputEvent::EVENT_MOUSEDOWN) {
-			assetEntries[i]->selectShape->visible = true;
-			selectedPath = assetEntries[i]->assetPath;
-			printf("%s\n", selectedPath.c_str());
-			if(currentEntry) {
-				currentEntry->selectShape->visible = false;
+	if(event->getDispatcher() == reloadButton && event->getEventCode() == UIEvent::CLICK_EVENT) {
+		showFolder(currentFolderPath);
+	} else {
+		for(int i=0; i < assetEntries.size(); i++) {
+			if(event->getDispatcher() == assetEntries[i]->selectShape && event->getEventCode() == InputEvent::EVENT_MOUSEDOWN) {
+				assetEntries[i]->selectShape->visible = true;
+				selectedPath = assetEntries[i]->assetPath;
+				printf("%s\n", selectedPath.c_str());
+				if(currentEntry) {
+					currentEntry->selectShape->visible = false;
+				}
+				currentEntry = assetEntries[i];
 			}
 			}
-			currentEntry = assetEntries[i];
 		}
 		}
 	}
 	}
 }
 }
@@ -208,10 +218,6 @@ AssetBrowser::AssetBrowser() : UIWindow(L"Asset Browser", 850, 500) {
 }
 }
 
 
 void AssetBrowser::setProject(PolycodeProject *project) {
 void AssetBrowser::setProject(PolycodeProject *project) {
-
-	if(project == currentProject) {
-		return;
-	}
 	
 	
 	templateContainer->getRootNode()->clearTree();
 	templateContainer->getRootNode()->clearTree();