Skip to content

Commit a9ad75d

Browse files
authored
Merge pull request #1 from JanSeliv/develop
Develop
2 parents 8329800 + d2403df commit a9ad75d

File tree

9 files changed

+127
-14
lines changed

9 files changed

+127
-14
lines changed

.gitignore

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
# Visual Studio 2015 user specific files
2+
.vs/
3+
4+
# Compiled Object files
5+
*.slo
6+
*.lo
7+
*.o
8+
*.obj
9+
10+
# Precompiled Headers
11+
*.gch
12+
*.pch
13+
14+
# Compiled Dynamic libraries
15+
*.so
16+
*.dylib
17+
*.dll
18+
19+
# Fortran module files
20+
*.mod
21+
22+
# Compiled Static libraries
23+
*.lai
24+
*.la
25+
*.a
26+
*.lib
27+
28+
# Executables
29+
*.exe
30+
*.out
31+
*.app
32+
*.ipa
33+
34+
# These project files can be generated by the engine
35+
*.xcodeproj
36+
*.xcworkspace
37+
*.sln
38+
*.suo
39+
*.opensdf
40+
*.sdf
41+
*.VC.db
42+
*.VC.opendb
43+
44+
# Precompiled Assets
45+
SourceArt/**/*.png
46+
SourceArt/**/*.tga
47+
48+
# Binary Files
49+
Binaries/*
50+
Plugins/*/Binaries/*
51+
52+
# Builds
53+
Build/*
54+
55+
# Whitelist PakBlacklist-<BuildConfiguration>.txt files
56+
!Build/*/
57+
Build/*/**
58+
!Build/*/PakBlacklist*.txt
59+
60+
# Don't ignore icon files in Build
61+
!Build/**/*.ico
62+
63+
# Built data for maps
64+
*_BuiltData.uasset
65+
66+
# Configuration files generated by the Editor
67+
Saved/*
68+
69+
# Compiled source files for the engine to use
70+
Intermediate/*
71+
Plugins/*/Intermediate/*
72+
73+
# Cache files for the editor to use
74+
DerivedDataCache/*

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2023 Yevhenii Selivanov
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

README.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# ⚙️ Settings Widget Constructor
2+
3+
Settings Widget Constructor is a handy plugin for Unreal Engine 5 that lets you automatically generate user interface (UI) for your game settings. All it takes is a few clicks and adding a new row to the table for each desired option.
4+
5+
![Settings UI](https://user-images.githubusercontent.com/20540872/147825296-ce7d33da-dfda-4757-b070-bfd08f700134.jpg)
6+
7+
<img width="948" alt="image" src="https://github.com/JanSeliv/Bomber/assets/20540872/5b4592a4-173d-4e6c-8a31-a502c14bd2c6">
8+
9+
## 📚 Documentation
10+
11+
Detailed documentation about the Settings Widget Constructor can be found [here](https://docs.google.com/document/d/1IXnOqrgaXTClP-0cIo28a9f6GHc9N1BCgTNnMk-X9VQ).
12+
13+
## 📅 Changelog
14+
#### 2023-05-26
15+
- 🎉 Initial public release.
16+
17+
## 📫 Feedback & Contribution
18+
19+
This is an open-source project and we encourage you to contribute. If you encounter any bugs 🐛, or if you have any feature requests 📝, please file an issue in the GitHub repository.
20+
21+
## 📜 License
22+
23+
This project is licensed under the terms of the MIT license. See [LICENSE](LICENSE) for more details.
24+
25+
We hope you find this plugin useful and we look forward to your feedback and contributions. 🚀

SettingsWidgetConstructor.uplugin

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"Description": "Plugin allows automatically generate settings on the UI from data table",
77
"Category": "UI",
88
"CreatedBy": "Yevhenii Selivanov",
9-
"CreatedByURL": "https://github.com/JanSeliv/Bomber",
9+
"CreatedByURL": "https://github.com/JanSeliv/SettingsWidgetConstructor",
1010
"DocsURL": "",
1111
"MarketplaceURL": "",
1212
"SupportURL": "mailto:janseliw@gmail.com",
@@ -28,17 +28,9 @@
2828
}
2929
],
3030
"Plugins": [
31-
{
32-
"Name": "MyEditorUtils",
33-
"Enabled": true
34-
},
3531
{
3632
"Name": "GameplayTagsEditor",
3733
"Enabled": true
38-
},
39-
{
40-
"Name": "FunctionPicker",
41-
"Enabled": true
4234
}
4335
]
4436
}

Source/SettingsWidgetConstructor/Private/FunctionPickerData/SWCFunctionPicker.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
* FFunctionPicker SetMembers = FFunctionPicker::Empty;
2525
*/
2626
USTRUCT(BlueprintType)
27-
struct FSWCFunctionPicker
27+
struct SETTINGSWIDGETCONSTRUCTOR_API FSWCFunctionPicker
2828
{
2929
GENERATED_BODY()
3030

Source/SettingsWidgetConstructor/Private/MyDataTable/MyDataTable.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
// Called on every change in this this row
1212
void FSWCMyTableRow::OnDataTableChanged(const UDataTable* InDataTable, const FName InRowName)
1313
{
14-
if (!GEditor && !GEditor->IsPlaySessionInProgress()) // Is Editor not PIE world
14+
if (!GEditor || !GEditor->IsPlaySessionInProgress()) // Is Editor not PIE world
1515
{
1616
return;
1717
}

Source/SettingsWidgetConstructor/Public/UI/SettingsWidget.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
* The UI widget of settings.
1313
* It generates and manages settings specified in rows of the Settings Data Table.
1414
*/
15-
UCLASS()
15+
UCLASS(Abstract, Blueprintable, BlueprintType)
1616
class SETTINGSWIDGETCONSTRUCTOR_API USettingsWidget : public UUserWidget
1717
{
1818
GENERATED_BODY()

Source/SettingsWidgetConstructorEditor/Private/MyAssets/AssetTypeActions_MyUserWidget.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,6 @@ UObject* USWCMyUserWidgetFactory::FactoryCreateNew(UClass* Class, UObject* InPar
3535
// Make sure we are trying to factory a blueprint, then create and init one
3636
check(Class->IsChildOf(USWCMyUserWidgetBlueprint::StaticClass()));
3737

38-
FString ParentPath = InParent->GetPathName();
39-
4038
const TSubclassOf<UUserWidget> ParentClass = GetWidgetClass();
4139
if (ParentClass == nullptr || !FKismetEditorUtilities::CanCreateBlueprintOfClass(ParentClass))
4240
{

Source/SettingsWidgetConstructorEditor/Private/SettingsWidgetConstructorEditorModule.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
#include "SettingTagCustomization.h"
99
#include "FunctionPickerType/FunctionPickerCustomization.h"
1010
//---
11+
#include "KismetCompiler.h"
1112
#include "Modules/ModuleManager.h"
1213

1314
#define LOCTEXT_NAMESPACE "FSettingsWidgetConstructorEditorModule"
@@ -17,6 +18,8 @@ void FSettingsWidgetConstructorEditorModule::StartupModule()
1718
{
1819
RegisterPropertyCustomizations();
1920
RegisterSettingAssets();
21+
22+
FKismetCompilerContext::RegisterCompilerForBP(USWCMyUserWidgetBlueprint::StaticClass(), &UWidgetBlueprint::GetCompilerForWidgetBP);
2023
}
2124

2225
// Called before the module is unloaded, right before the module object is destroyed

0 commit comments

Comments
 (0)