diff --git a/.github/workflows/sync-develop.yml b/.github/workflows/sync-develop.yml new file mode 100644 index 0000000..a552079 --- /dev/null +++ b/.github/workflows/sync-develop.yml @@ -0,0 +1,25 @@ +name: Sync Back to Develop + +on: + push: + branches: + - master + +jobs: + sync-branches: + runs-on: ubuntu-latest + name: Syncing branches + steps: + - name: Checkout + uses: actions/checkout@v2 + - name: Set up Node + uses: actions/setup-node@v1 + with: + node-version: 12 + - name: Opening pull request + id: pull + uses: tretuna/sync-branches@1.2.0 + with: + GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} + FROM_BRANCH: 'master' + TO_BRANCH: 'develop' \ No newline at end of file diff --git a/Blocks3D.exe.manifest b/Blocks3D.exe.manifest index 90d0cc6..f8f4c28 100644 --- a/Blocks3D.exe.manifest +++ b/Blocks3D.exe.manifest @@ -1,7 +1,7 @@ #include "src/include/resource.h" +#define APP_GENER 0 +#define APP_MAJOR 0 +#define APP_MINOR 106 +#define APP_PATCH 2 +#define APP_VER_STRING APP_GENER.APP_MAJOR.APP_MINOR.APP_PATCH + +#define VER_PREFIX( N ) v##N +#define HSTR( N ) #N +#define STR( N ) HSTR( N ) +#define VER_STR( N ) STR( VER_PREFIX( N ) ) + @@ -18,8 +29,8 @@ IDB_BITMAP1 BITMAP "Parts.bmp" LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL 1 VERSIONINFO - FILEVERSION 0,0,106,1 - PRODUCTVERSION 0,0,106,1 + FILEVERSION APP_GENER,APP_MAJOR,APP_MINOR,APP_PATCH + PRODUCTVERSION APP_GENER,APP_MAJOR,APP_MINOR,APP_PATCH FILEOS VOS__WINDOWS32 FILETYPE VFT_APP FILESUBTYPE VFT2_UNKNOWN @@ -33,14 +44,14 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL VALUE "Comments", "" VALUE "CompanyName", "Blocks3D Team" VALUE "FileDescription", "Blocks 3D" - VALUE "FileVersion", "v0.0.106.1" + VALUE "FileVersion", VER_STR(APP_VER_STRING) VALUE "InternalName", "Blocks3D" VALUE "LegalCopyright", "Blocks3D Team - 2022" VALUE "LegalTrademarks", "" VALUE "OriginalFilename", "Blocks3D.exe" VALUE "PrivateBuild", "" VALUE "ProductName", "Blocks3D" - VALUE "ProductVersion", "v0.0.106.1" + VALUE "ProductVersion", VER_STR(APP_VER_STRING) VALUE "SpecialBuild", "" } } diff --git a/src/include/PropertyWindow.h b/src/include/PropertyWindow.h index 3500e49..f402b02 100644 --- a/src/include/PropertyWindow.h +++ b/src/include/PropertyWindow.h @@ -1,6 +1,5 @@ #pragma once #include "DataModelV2/Instance.h" -#include class PropertyWindow { public: @@ -15,4 +14,5 @@ private: HWND _propGrid; HWND _explorerComboBox; void _resize(); + void clearExplorer(); }; \ No newline at end of file diff --git a/src/source/Application.cpp b/src/source/Application.cpp index c349d45..f0f2f24 100644 --- a/src/source/Application.cpp +++ b/src/source/Application.cpp @@ -161,22 +161,23 @@ void Application::deleteInstance() { if(_dataModel->getSelectionService()->getSelection().size() > 0) { - size_t undeletable = 0; - while(_dataModel->getSelectionService()->getSelection().size() > undeletable) + std::vector selection = _dataModel->getSelectionService()->getSelection(); + std::vector toDelete; + for(size_t i = 0; i < selection.size(); i++) { + if(selection[i]->canDelete) { + toDelete.push_back(selection[i]); + } + } + if(toDelete.size() > 0) { - if(_dataModel->getSelectionService()->getSelection()[0]->canDelete) - { - AudioPlayer::playSound(GetFileInPath("/content/sounds/pageturn.wav")); - Instance* selectedInstance = g_dataModel->getSelectionService()->getSelection()[0]; - _dataModel->getSelectionService()->removeChild(selectedInstance); + AudioPlayer::playSound(GetFileInPath("/content/sounds/pageturn.wav")); + for(size_t i = 0; i < toDelete.size(); i++) { + Instance* selectedInstance = toDelete[i]; + _dataModel->getSelectionService()->removeSelected(selectedInstance); selectedInstance->setParent(NULL); delete selectedInstance; selectedInstance = NULL; } - else - { - undeletable++; - } } } if(_dataModel->getSelectionService()->getSelection().size() == 0) diff --git a/src/source/DataModel/SelectionService.cpp b/src/source/DataModel/SelectionService.cpp index 882b1c8..d62a1d8 100644 --- a/src/source/DataModel/SelectionService.cpp +++ b/src/source/DataModel/SelectionService.cpp @@ -21,6 +21,7 @@ void SelectionService::clearSelection(){ this->selection.clear(); if(propertyWindow != NULL) propertyWindow->ClearProperties(); + printf("selectionSize: %d\n", selection.size()); } bool SelectionService::isSelected(Instance * instance){ return std::find(selection.begin(), selection.end(), instance) != selection.end(); @@ -30,11 +31,13 @@ void SelectionService::addSelected(Instance * instance){ this->selection.push_back(instance); if(propertyWindow != NULL) propertyWindow->UpdateSelected(selection); + printf("selectionSize: %d\n", selection.size()); } void SelectionService::removeSelected(Instance * instance){ selection.erase(std::remove(selection.begin(), selection.end(), instance), selection.end()); if(propertyWindow != NULL) propertyWindow->UpdateSelected(selection); + printf("selectionSize: %d\n", selection.size()); } void SelectionService::addSelected(const std::vector &instances){ for(size_t i = 0; i < instances.size(); i++) @@ -44,10 +47,12 @@ void SelectionService::addSelected(const std::vector &instances){ } if(propertyWindow != NULL) propertyWindow->UpdateSelected(selection); + printf("selectionSize: %d\n", selection.size()); } void SelectionService::setPropertyWindow(PropertyWindow * propertyWindow) { this->propertyWindow = propertyWindow; if(propertyWindow != NULL) propertyWindow->ClearProperties(); + printf("selectionSize: %d\n", selection.size()); } diff --git a/src/source/PropertyWindow.cpp b/src/source/PropertyWindow.cpp index 1669a20..855cadd 100644 --- a/src/source/PropertyWindow.cpp +++ b/src/source/PropertyWindow.cpp @@ -3,7 +3,6 @@ #include "WindowFunctions.h" #include "resource.h" #include "PropertyWindow.h" -#include "Globals.h" #include "strsafe.h" #include "Application.h" @@ -203,6 +202,12 @@ LRESULT CALLBACK PropProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) return 0; } +void PropertyWindow::clearExplorer() +{ + SendMessage(_explorerComboBox,CB_RESETCONTENT,0,0); + SendMessage(_explorerComboBox,CB_SETCURSEL,0,(LPARAM)0); +} + void PropertyWindow::refreshExplorer(std::vector selectedInstances) { Instance * instance = selectedInstances[0]; @@ -367,12 +372,6 @@ void PropertyWindow::UpdateSelected(std::vector instances) void PropertyWindow::ClearProperties() { - if(g_dataModel != NULL) - { - g_dataModel->getSelectionService()->addSelected(g_dataModel); - } - else - { - PropGrid_ResetContent(_propGrid); - } + clearExplorer(); + PropGrid_ResetContent(_propGrid); } \ No newline at end of file