diff --git a/source/MainComponent.cpp b/source/MainComponent.cpp index e26478d..c4229c8 100644 --- a/source/MainComponent.cpp +++ b/source/MainComponent.cpp @@ -298,8 +298,6 @@ MainComponent::MainComponent () //[UserPreSize] - m_rbmSelect->addItem(String(0), 1); - m_rbmSelect->setSelectedId(1, dontSendNotification); m_progressBarSlider->setValue(100); //[/UserPreSize] @@ -513,13 +511,16 @@ void MainComponent::buttonClicked (Button* buttonThatWasClicked) else if (buttonThatWasClicked == createButton) { //[UserButtonCode_createButton] -- add your button handler code here.. + int next_index = m_rbmSelect->getNumItems(); int numVisX = numVisibleLabel->getText().getIntValue(); int numVisY = numVisibleYLabel->getText().getIntValue(); int numHid = numHiddenLabel->getText().getIntValue(); - m_stack = new Stack(std::string(projectNameLabel->getText().getCharPointer())); - m_stack->addLayer(onConstruct("Layer", 0, numVisX, numVisY, numHid)); - m_rbmSelect->clear(dontSendNotification); - m_rbmSelect->addItem(String(0), 0+1); + if (!m_stack) + { + m_stack = new Stack(std::string(projectNameLabel->getText().getCharPointer())); + } + m_stack->addLayer(onConstruct("Layer", next_index, numVisX, numVisY, numHid)); + m_rbmSelect->addItem(String(next_index), next_index+1); m_rbmSelect->setSelectedId(1, sendNotification); // addTraining(arma::zeros(1, numVisX*numVisY)); diff --git a/source/Stack.cpp b/source/Stack.cpp index 306bbd8..8644e98 100644 --- a/source/Stack.cpp +++ b/source/Stack.cpp @@ -28,7 +28,15 @@ Stack::Stack(const Stack& orig) } Stack::~Stack() -{ } +{ + Layer *pLayer = m_pLayers; + while(pLayer) + { + Layer *pNextLayer = pLayer->next; + delete pLayer; + pLayer = pNextLayer; + } +} size_t Stack::numLayers() {