Skip to content

Commit bbedecb

Browse files
committed
feat: web ui dev mode
1 parent 1ab9b8d commit bbedecb

6 files changed

Lines changed: 60 additions & 8 deletions

File tree

Editor/Include/Editor/Widget/ProjectHub.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@
44

55
#pragma once
66

7-
#include <QWebEngineView>
7+
#include <Editor/Widget/WebWidget.h>
88

99
namespace Editor {
10-
class ProjectHub final : public QWebEngineView {
10+
class ProjectHub final : public WebWidget {
1111
Q_OBJECT
1212

1313
public:
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
//
2+
// Created by johnk on 2025/8/9.
3+
//
4+
5+
#pragma once
6+
7+
#include <QWebEngineView>
8+
9+
namespace Editor {
10+
class WebWidget : public QWebEngineView {
11+
Q_OBJECT
12+
13+
public:
14+
explicit WebWidget(QWidget* inParent = nullptr);
15+
~WebWidget() override;
16+
17+
void Load(const std::string& inUrl);
18+
};
19+
}

Editor/Src/WebUIServer.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
#include <Editor/WebUIServer.h>
66
#include <Core/Cmdline.h>
77

8-
static Core::CmdlineArgValue<int32_t> caWebUIPort(
8+
static Core::CmdlineArgValue<uint32_t> caWebUIPort(
99
"webUIPort", "-webUIPort", 10907,
1010
"WebUI port");
1111

Editor/Src/Widget/ProjectHub.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,14 @@
22
// Created by johnk on 2025/8/3.
33
//
44

5-
#include <QWebEngineSettings>
6-
75
#include <Editor/Widget/ProjectHub.h>
86
#include <Editor/Widget/moc_ProjectHub.cpp>
97

108
namespace Editor {
119
ProjectHub::ProjectHub(QWidget* inParent)
12-
: QWebEngineView(inParent)
10+
: WebWidget(inParent)
1311
{
14-
load(QUrl("chrome://gpu"));
12+
// TODO
13+
Load("/");
1514
}
1615
} // namespace Editor

Editor/Src/Widget/WebWidget.cpp

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
//
2+
// Created by johnk on 2025/8/9.
3+
//
4+
5+
#include <Editor/Widget/WebWidget.h>
6+
#include <Core/Cmdline.h>
7+
#include <Editor/Widget/moc_WebWidget.cpp>
8+
9+
static Core::CmdlineArgValue<bool> caWebUIDev(
10+
"wevUIDev", "-wevUIDev", false,
11+
"Whether to enable hot reload for web UI");
12+
13+
static Core::CmdlineArgValue<uint32_t> caWebUIDevServerPort(
14+
"webUIDevServerPort", "-webUIDevServerPort", 5173,
15+
"Port of web ui dev server, which works only when dev mode enabled");
16+
17+
namespace Editor {
18+
WebWidget::WebWidget(QWidget* inParent)
19+
: QWebEngineView(inParent)
20+
{
21+
}
22+
23+
WebWidget::~WebWidget() = default;
24+
25+
void WebWidget::Load(const std::string& inUrl)
26+
{
27+
static Core::CmdlineArg& caWebUIPort = Core::Cli::Get().GetArg("webUIPort");
28+
29+
Assert(inUrl.starts_with("/"));
30+
const std::string baseUrl = std::format("http://localhost:{}", caWebUIDev.GetValue() ? caWebUIDevServerPort.GetValue() : caWebUIPort.GetValue<uint32_t>());
31+
const std::string fullUrl = baseUrl + inUrl;
32+
load(QUrl(fullUrl.c_str()));
33+
}
34+
} // namespace Editor

Engine/Source/Core/Include/Core/Cmdline.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ namespace Core {
8989
template <typename T>
9090
T CmdlineArg::GetValue() const
9191
{
92-
return static_cast<const T*>(Value());
92+
return *static_cast<const T*>(Value());
9393
}
9494

9595
template <typename T>

0 commit comments

Comments
 (0)