diff --git a/install/ui/modelselector.fbp b/install/ui/modelselector.fbp index d64f1c1409..d2c5c56780 100644 --- a/install/ui/modelselector.fbp +++ b/install/ui/modelselector.fbp @@ -1,9 +1,9 @@ - + - C++ + XRC 1 source_name 0 @@ -11,9 +11,10 @@ res UTF-8 connect - + modelselector 1000 none + 0 MyProject1 @@ -48,36 +49,6 @@ wxTAB_TRAVERSAL - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - bSizer1 @@ -153,33 +124,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 @@ -232,29 +176,6 @@ wxTAB_TRAVERSAL - - - - - - - - - - - - - - - - - - - - - - - bSizer4 @@ -315,29 +236,6 @@ wxTAB_TRAVERSAL - - - - - - - - - - - - - - - - - - - - - - - bSizer5 @@ -376,6 +274,7 @@ 0 wxID_ANY Options: + 0 0 @@ -401,29 +300,6 @@ -1 - - - - - - - - - - - - - - - - - - - - - - - @@ -488,30 +364,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - @@ -572,29 +424,6 @@ wxTAB_TRAVERSAL - - - - - - - - - - - - - - - - - - - - - - - bSizer61 @@ -631,25 +460,31 @@ + 1 0 1 1 + 0 0 + Dock 0 Left 1 1 + 0 0 wxID_CANCEL Reload Skins + + 0 0 @@ -664,13 +499,15 @@ protected 1 + + Resizable 1 0 - + Reload Skin declarations. Will rescan the model folders afterwards. wxFILTER_NONE wxDefaultValidator @@ -678,34 +515,10 @@ - - - - - - - - - - - - - - - - - - - - - - - - - 24 + 6 wxRIGHT 0 @@ -719,25 +532,31 @@ + 1 0 1 1 + 0 0 + Dock 0 Left 1 1 + 0 0 wxID_CANCEL Reload Models + + 0 0 @@ -752,13 +571,87 @@ protected 1 + + Resizable 1 0 - + Reload all model to display geometry or material changes. Will also rescan the folders afterwards. + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + 24 + wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + + 1 + 0 + 1 + + 1 + + 0 + 0 + + Dock + 0 + Left + 1 + + 1 + + + 0 + 0 + wxID_CANCEL + Rescan Folders + + 0 + + 0 + + + 0 + + 1 + ModelSelectorRescanFoldersButton + 1 + + + protected + 1 + + + + Resizable + 1 + + + + 0 + Look for newly added files in the model folders wxFILTER_NONE wxDefaultValidator @@ -766,30 +659,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - @@ -807,25 +676,31 @@ + 1 0 1 1 + 0 0 + Dock 0 Left 1 1 + 0 0 wxID_CANCEL Cancel + + 0 0 @@ -840,6 +715,8 @@ protected 1 + + Resizable 1 @@ -854,30 +731,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - @@ -895,25 +748,31 @@ + 1 0 1 1 + 0 0 + Dock 0 Left 1 1 + 0 0 wxID_OK OK + + 0 0 @@ -928,6 +787,8 @@ protected 1 + + Resizable 1 @@ -942,30 +803,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/install/ui/modelselector.xrc b/install/ui/modelselector.xrc index 235c9cfa45..4c546abbe5 100644 --- a/install/ui/modelselector.xrc +++ b/install/ui/modelselector.xrc @@ -76,17 +76,35 @@ wxRIGHT 6 + Reload Skin declarations. Will rescan the model folders afterwards. 0 + 0 + wxRIGHT - 24 + 6 + Reload all model to display geometry or material changes. Will also rescan the folders afterwards. 0 + 0 + + + + + + wxRIGHT + 24 + + Look for newly added files in the model folders + + 0 + 0 + @@ -96,6 +114,8 @@ 0 + 0 + @@ -105,6 +125,8 @@ 0 + 0 + diff --git a/radiant/ui/modelselector/ModelSelector.cpp b/radiant/ui/modelselector/ModelSelector.cpp index 75a9b4f6ce..2e9068de48 100644 --- a/radiant/ui/modelselector/ModelSelector.cpp +++ b/radiant/ui/modelselector/ModelSelector.cpp @@ -78,6 +78,7 @@ ModelSelector::ModelSelector() : findNamedObject(this, "ModelSelectorCancelButton")->Bind(wxEVT_BUTTON, &ModelSelector::onCancel, this); findNamedObject(this, "ModelSelectorReloadModelsButton")->Bind(wxEVT_BUTTON, &ModelSelector::onReloadModels, this); findNamedObject(this, "ModelSelectorReloadSkinsButton")->Bind(wxEVT_BUTTON, &ModelSelector::onReloadSkins, this); + findNamedObject(this, "ModelSelectorRescanFoldersButton")->Bind(wxEVT_BUTTON, &ModelSelector::onRescanFolders, this); Bind(wxEVT_CLOSE_WINDOW, &ModelSelector::_onDeleteEvent, this); @@ -171,6 +172,7 @@ void ModelSelector::onTreeViewPopulationFinished(wxutil::ResourceTreeView::Popul { findNamedObject(this, "ModelSelectorReloadModelsButton")->Enable(true); findNamedObject(this, "ModelSelectorReloadSkinsButton")->Enable(true); + findNamedObject(this, "ModelSelectorRescanFoldersButton")->Enable(true); // The modelDefs folder should start in collapsed state _treeView->CollapseModelDefsFolder(); @@ -344,6 +346,7 @@ void ModelSelector::onReloadModels(wxCommandEvent& ev) { findNamedObject(this, "ModelSelectorReloadModelsButton")->Enable(false); findNamedObject(this, "ModelSelectorReloadSkinsButton")->Enable(false); + findNamedObject(this, "ModelSelectorRescanFoldersButton")->Enable(false); // This will fire the models reloaded signal after some time GlobalModelCache().refreshModels(false); @@ -353,9 +356,20 @@ void ModelSelector::onReloadSkins(wxCommandEvent& ev) { findNamedObject(this, "ModelSelectorReloadModelsButton")->Enable(false); findNamedObject(this, "ModelSelectorReloadSkinsButton")->Enable(false); + findNamedObject(this, "ModelSelectorRescanFoldersButton")->Enable(false); // When this is done, the skins reloaded signal is fired GlobalModelSkinCache().refresh(); } +void ModelSelector::onRescanFolders(wxCommandEvent& ev) +{ + findNamedObject(this, "ModelSelectorReloadModelsButton")->Enable(false); + findNamedObject(this, "ModelSelectorReloadSkinsButton")->Enable(false); + findNamedObject(this, "ModelSelectorRescanFoldersButton")->Enable(false); + + // This will fire the onTreeViewPopulationFinished event when done + populateModels(); +} + } // namespace ui diff --git a/radiant/ui/modelselector/ModelSelector.h b/radiant/ui/modelselector/ModelSelector.h index be16c47097..eda7157bb2 100644 --- a/radiant/ui/modelselector/ModelSelector.h +++ b/radiant/ui/modelselector/ModelSelector.h @@ -111,6 +111,7 @@ class ModelSelector : void onCancel(wxCommandEvent& ev); void onReloadModels(wxCommandEvent& ev); void onReloadSkins(wxCommandEvent& ev); + void onRescanFolders(wxCommandEvent& ev); void onTreeViewPopulationFinished(wxutil::ResourceTreeView::PopulationFinishedEvent& ev); // Update the info table with information from the currently-selected model, and