Rebrand SonicForge Studio -> ScoreFX Studio: UI names, About logo, favicon + icons for all exe builds
This commit is contained in:
+1
-1
@@ -29,7 +29,7 @@ def _info_sub(fourcc, text):
|
||||
def _bext(md, now):
|
||||
fixed = bytearray(_BEXT_FIXED)
|
||||
fixed[0:256] = _pad(md.get("description", ""), 256)
|
||||
fixed[256:288] = _pad(md.get("originator", "SonicForgeStudio"), 32)
|
||||
fixed[256:288] = _pad(md.get("originator", "ScoreFXStudio"), 32)
|
||||
fixed[288:320] = _pad(md.get("originator_reference", ""), 32)
|
||||
fixed[320:330] = _pad((md.get("date") or now.strftime("%Y-%m-%d")), 10)
|
||||
fixed[330:338] = _pad((md.get("time") or now.strftime("%H:%M:%S")), 8)
|
||||
|
||||
+2
-2
@@ -44,7 +44,7 @@ async def lifespan(app: FastAPI):
|
||||
_SF_SCANNER_STOP.set()
|
||||
|
||||
|
||||
app = FastAPI(title="SonicForge API Engine", lifespan=lifespan)
|
||||
app = FastAPI(title="ScoreFX API Engine", lifespan=lifespan)
|
||||
|
||||
app.add_middleware(GZipMiddleware, minimum_size=500)
|
||||
|
||||
@@ -124,7 +124,7 @@ async def health():
|
||||
async def get_index():
|
||||
index_path = os.path.join(settings.TEMPLATES_DIR, "index.html")
|
||||
if not os.path.exists(index_path):
|
||||
return HTMLResponse(content=f"<h1>SonicForge Studio: index.html not found at {index_path}</h1>", status_code=404)
|
||||
return HTMLResponse(content=f"<h1>ScoreFX Studio: index.html not found at {index_path}</h1>", status_code=404)
|
||||
with open(index_path, "r", encoding="utf-8") as file:
|
||||
resp = HTMLResponse(content=file.read(), status_code=200)
|
||||
# no-cache: index.html PHẢI luôn mới (các bundle JS dùng ?v= để bust) —
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 212 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 25 KiB |
@@ -8235,9 +8235,9 @@ const AboutModal = ({ isOpen, onClose }) => {
|
||||
<div className="fixed inset-0 z-[9999] flex items-center justify-center bg-black/70 backdrop-blur-sm" onClick={onClose}>
|
||||
<div className="bg-[#1e1e24] border border-zinc-700 rounded-xl shadow-2xl w-full max-w-md p-6 text-slate-200" onClick={e => e.stopPropagation()}>
|
||||
<div className="flex items-center gap-3 mb-4">
|
||||
<img src="/favicon.svg" alt="SonicForge Studio" className="w-12 h-12 rounded-lg bg-zinc-900 border border-zinc-700 shadow-lg object-contain p-0.5" />
|
||||
<img src="/static/img/scorefx_app.png" alt="ScoreFX Studio" className="w-12 h-12 rounded-lg bg-zinc-900 border border-zinc-700 shadow-lg object-contain p-0.5" />
|
||||
<div>
|
||||
<h2 className="text-lg font-bold text-white">SonicForge Studio</h2>
|
||||
<h2 className="text-lg font-bold text-white">ScoreFX Studio</h2>
|
||||
<p className="text-xs text-zinc-400">Professional DAW — v{APP_VERSION}</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -8284,7 +8284,7 @@ const HelpModal = ({ isOpen, onClose, lang }) => {
|
||||
<div className="fixed inset-0 z-[9999] flex items-center justify-center bg-black/70 backdrop-blur-sm" onClick={onClose}>
|
||||
<div className="bg-[#1e1e24] border border-zinc-700 rounded-xl shadow-2xl w-full max-w-2xl max-h-[85vh] flex flex-col text-slate-200" onClick={e => e.stopPropagation()}>
|
||||
<div className="flex items-center justify-between px-5 py-3 border-b border-zinc-800 shrink-0">
|
||||
<h2 className="text-base font-bold text-white">{vi ? 'Hướng dẫn sử dụng SonicForge Studio' : 'SonicForge Studio User Guide'}</h2>
|
||||
<h2 className="text-base font-bold text-white">{vi ? 'Hướng dẫn sử dụng ScoreFX Studio' : 'ScoreFX Studio User Guide'}</h2>
|
||||
<button onClick={onClose} className="w-6 h-6 rounded hover:bg-zinc-700 text-zinc-400 hover:text-white text-sm">✕</button>
|
||||
</div>
|
||||
<div className="overflow-y-auto px-5 py-4 space-y-3">
|
||||
@@ -28462,7 +28462,7 @@ const App = () => {
|
||||
|
||||
const handleSaveCloud = handleSaveProject;
|
||||
const handleExportSFS = (customName = null) => {
|
||||
const finalName = customName || projectName || 'Dự án SonicForge';
|
||||
const finalName = customName || projectName || 'Dự án ScoreFX';
|
||||
const projectSchemaObj = serializeProjectToSchema(currentProjectId || 'proj_' + Date.now(), finalName, bpm, tracks, subTabs, sessionTabs, masteringSettings, masterVolume, { volL: masterVolL, volR: masterVolR, link: masterLink, muted: masterMuted });
|
||||
window.SonicStorage.exportProjectToSFS(projectSchemaObj);
|
||||
showToast("Đã xuất dự án (.sfs) thành công!", "success");
|
||||
@@ -31514,7 +31514,7 @@ STRICT CONSTRAINTS:
|
||||
}, {
|
||||
sep: true
|
||||
}, {
|
||||
label: 'About SonicForge Studio...',
|
||||
label: 'About ScoreFX Studio...',
|
||||
icon: 'info',
|
||||
action: () => setAboutModalOpen(true)
|
||||
}]
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -4,7 +4,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
||||
<title>SonicForge Studio - Professional DAW Editor</title>
|
||||
<title>ScoreFX Studio - Professional DAW Editor</title>
|
||||
<script>
|
||||
// ── Chặn BROWSER ZOOM toàn trang ──
|
||||
// UI dùng px cố định cho item/button/label — browser zoom (Ctrl+wheel,
|
||||
@@ -24,7 +24,7 @@
|
||||
document.addEventListener('gesturestart', function (e) { e.preventDefault(); }, { passive: false });
|
||||
document.addEventListener('gesturechange', function (e) { e.preventDefault(); }, { passive: false });
|
||||
</script>
|
||||
<link rel="icon" type="image/svg+xml" href="/favicon.svg">
|
||||
<link rel="icon" type="image/png" href="/static/img/scorefx_favicon.png">
|
||||
<!-- Bug #11: vendor local — trước đây load CDN (unpkg/cdn.tailwindcss/cdnjs) →
|
||||
desktop Tauri offline trắng màn hình. Các file này nằm /static/vendor/. -->
|
||||
<script src="/static/vendor/tailwindcdn.js"></script>
|
||||
@@ -51,7 +51,7 @@
|
||||
<script src="/static/js/services/promptTemplateManager.js?v=202607281039"></script>
|
||||
<script src="/static/js/services/undoRedoEngine.js?v=202607290941"></script>
|
||||
<script src="/static/js/services/chordTheory.js?v=202608211300"></script>
|
||||
<script src="/static/js/app.precompiled.js?v=202608232200" defer></script>
|
||||
<script src="/static/js/app.precompiled.js?v=202608241919" defer></script>
|
||||
<link rel="stylesheet" href="/static/css/styles.css?v=202607271016">
|
||||
<style>
|
||||
:root {
|
||||
|
||||
Reference in New Issue
Block a user