Skip to content

Commit

Permalink
change update lock method to TryLock to avoid crash + set enter to se…
Browse files Browse the repository at this point in the history
…nd requests + add support for precompiled on hololens builds
  • Loading branch information
lucoiso committed Aug 13, 2023
1 parent a22d7ae commit 6b71130
Show file tree
Hide file tree
Showing 7 changed files with 247 additions and 206 deletions.
8 changes: 6 additions & 2 deletions Source/HttpGPTChatModule/Private/Tasks/HttpGPTChatRequest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -206,8 +206,12 @@ void UHttpGPTChatRequest::OnProgressUpdated(const FString& Content, int32 BytesS
AsyncTask(ENamedThreads::GameThread,
[this]
{
FScopeLock Lock(&Mutex);
ProgressUpdated.Broadcast(Response);
FScopeTryLock Lock(&Mutex);

if (Lock.IsLocked())

This comment has been minimized.

Copy link
@lucoiso

lucoiso Aug 13, 2023

Author Owner
{
ProgressUpdated.Broadcast(Response);
}
}
);
}
Expand Down
5 changes: 5 additions & 0 deletions Source/HttpGPTCommonModule/HttpGPTCommonModule.Build.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,11 @@ public HttpGPTCommonModule(ReadOnlyTargetRules Target) : base(Target)
PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
CppStandard = CppStandardVersion.Cpp17;

if (Target.Platform == UnrealTargetPlatform.HoloLens)
{
PrecompileForTargets = PrecompileTargetsType.Any;

This comment has been minimized.

Copy link
@lucoiso

lucoiso Aug 13, 2023

Author Owner

#70

}

PublicDependencyModuleNames.AddRange(new[]
{
"Core",
Expand Down
5 changes: 5 additions & 0 deletions Source/HttpGPTEditorModule/HttpGPTEditorModule.Build.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,11 @@ public HttpGPTEditorModule(ReadOnlyTargetRules Target) : base(Target)
PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
CppStandard = CppStandardVersion.Cpp17;

if (Target.Platform == UnrealTargetPlatform.HoloLens)

This comment has been minimized.

Copy link
@lucoiso

lucoiso Aug 13, 2023

Author Owner

#70

{
PrecompileForTargets = PrecompileTargetsType.Any;
}

PublicDependencyModuleNames.AddRange(new[]
{
"Core"
Expand Down
8 changes: 4 additions & 4 deletions Source/HttpGPTEditorModule/Private/HttpGPTEditorModule.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -46,10 +46,10 @@ TSharedRef<SDockTab> FHttpGPTEditorModule::OnSpawnTab(const FSpawnTabArgs& Spawn
if (OutContent.IsValid())
{
return SNew(SDockTab)
.TabRole(NomadTab)
[
OutContent.ToSharedRef()
];
.TabRole(NomadTab)
[
OutContent.ToSharedRef()
];
}

return SNew(SDockTab);
Expand Down
169 changes: 90 additions & 79 deletions Source/HttpGPTEditorModule/Private/SHttpGPTChatView.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -123,37 +123,37 @@ void SHttpGPTChatItem::Construct(const FArguments& InArgs)
const ISlateStyle& AppStyle = FAppStyle::Get();

ChildSlot
[
SNew(SVerticalBox)
+ SVerticalBox::Slot()
.Padding(SlotPadding)
[
SNew(SBorder)
.BorderImage(AppStyle.GetBrush("Menu.Background"))
[
SNew(SVerticalBox)
SNew(SVerticalBox)
+ SVerticalBox::Slot()
.Padding(Slot_Padding)
.AutoHeight()
[
SAssignNew(Role, STextBlock)
.Font(FCoreStyle::GetDefaultFontStyle("Bold", 10))
.Text(RoleText)
]
+ SVerticalBox::Slot()
.Padding(FMargin(Slot_Padding * 4, Slot_Padding, Slot_Padding, Slot_Padding))
.FillHeight(1.f)
.Padding(SlotPadding)
[
SAssignNew(Message, SMultiLineEditableText)
.AllowMultiLine(true)
.AutoWrapText(true)
.IsReadOnly(true)
.AllowContextMenu(true)
.Text(FText::FromString(InArgs._InputText))
SNew(SBorder)
.BorderImage(AppStyle.GetBrush("Menu.Background"))
[
SNew(SVerticalBox)
+ SVerticalBox::Slot()
.Padding(Slot_Padding)
.AutoHeight()
[
SAssignNew(Role, STextBlock)
.Font(FCoreStyle::GetDefaultFontStyle("Bold", 10))
.Text(RoleText)
]
+ SVerticalBox::Slot()
.Padding(FMargin(Slot_Padding * 4, Slot_Padding, Slot_Padding, Slot_Padding))
.FillHeight(1.f)
[
SAssignNew(Message, SMultiLineEditableText)
.AllowMultiLine(true)
.AutoWrapText(true)
.IsReadOnly(true)
.AllowContextMenu(true)
.Text(FText::FromString(InArgs._InputText))
]
]
]
]
]
];
];
}

FString SHttpGPTChatItem::GetRoleText() const
Expand Down Expand Up @@ -183,61 +183,72 @@ void SHttpGPTChatView::Construct([[maybe_unused]] const FArguments&)
InitializeModelsOptions();

ChildSlot
[
SNew(SVerticalBox)
+ SVerticalBox::Slot()
.Padding(Slot_Padding)
.FillHeight(1.f)
[
SNew(SBorder)
.BorderImage(AppStyle.GetBrush("NoBorder"))
[
SAssignNew(ChatScrollBox, SScrollBox)
+ SScrollBox::Slot()
SNew(SVerticalBox)
+ SVerticalBox::Slot()
.Padding(Slot_Padding)
.FillHeight(1.f)
[
SAssignNew(ChatBox, SVerticalBox)
SNew(SBorder)
.BorderImage(AppStyle.GetBrush("NoBorder"))
[
SAssignNew(ChatScrollBox, SScrollBox)
+ SScrollBox::Slot()
[
SAssignNew(ChatBox, SVerticalBox)
]
]
]
]
]
+ SVerticalBox::Slot()
.Padding(Slot_Padding)
.AutoHeight()
[
SNew(SHorizontalBox)
+ SHorizontalBox::Slot()
.Padding(Slot_Padding)
.FillWidth(1.f)
[
SAssignNew(InputTextBox, SEditableTextBox)
]
+ SHorizontalBox::Slot()
.Padding(Slot_Padding)
.AutoWidth()
[
SNew(SButton)
.Text(FText::FromString("Send"))
.ToolTipText(FText::FromString("Send Message"))
.OnClicked(this, &SHttpGPTChatView::HandleSendMessageButton)
.IsEnabled(this, &SHttpGPTChatView::IsSendMessageEnabled)
]
+ SHorizontalBox::Slot()
.Padding(Slot_Padding)
.AutoWidth()
[
ModelsComboBox.ToSharedRef()
]
+ SHorizontalBox::Slot()
.Padding(Slot_Padding)
.AutoWidth()
[
SNew(SButton)
.Text(FText::FromString("Clear"))
.ToolTipText(FText::FromString("Clear Chat History"))
.OnClicked(this, &SHttpGPTChatView::HandleClearChatButton)
.IsEnabled(this, &SHttpGPTChatView::IsClearChatEnabled)
]
]
];
+ SVerticalBox::Slot()
.Padding(Slot_Padding)
.AutoHeight()
[
SNew(SHorizontalBox)
+ SHorizontalBox::Slot()
.Padding(Slot_Padding)
.FillWidth(1.f)
[
SAssignNew(InputTextBox, SEditableTextBox)
.AllowContextMenu(true)
.IsReadOnly(false)
.OnTextCommitted_Lambda(
[this]([[maybe_unused]] const FText& Text, ETextCommit::Type CommitType)
{
if (IsSendMessageEnabled() && CommitType == ETextCommit::OnEnter)
{
HandleSendMessageButton();
}
}
)
]
+ SHorizontalBox::Slot()
.Padding(Slot_Padding)
.AutoWidth()
[
SNew(SButton)
.Text(FText::FromString("Send"))
.ToolTipText(FText::FromString("Send Message"))
.OnClicked(this, &SHttpGPTChatView::HandleSendMessageButton)
.IsEnabled(this, &SHttpGPTChatView::IsSendMessageEnabled)
]
+ SHorizontalBox::Slot()
.Padding(Slot_Padding)
.AutoWidth()
[
ModelsComboBox.ToSharedRef()
]
+ SHorizontalBox::Slot()
.Padding(Slot_Padding)
.AutoWidth()
[
SNew(SButton)
.Text(FText::FromString("Clear"))
.ToolTipText(FText::FromString("Clear Chat History"))
.OnClicked(this, &SHttpGPTChatView::HandleClearChatButton)
.IsEnabled(this, &SHttpGPTChatView::IsClearChatEnabled)
]
]
];
}

FReply SHttpGPTChatView::HandleSendMessageButton()
Expand Down
Loading

0 comments on commit 6b71130

Please sign in to comment.