9 Commits

Author SHA1 Message Date
Bruce
319d13c2b1 Fix bugs. 2025-12-29 20:43:54 +08:00
Bruce
4d10da5630 Build new version. 2025-12-23 00:02:14 +08:00
Bruce
621c6fcfd3 Fix bugs. 2025-12-22 23:58:53 +08:00
Bruce
4cf0a0a55d Update. 2025-12-14 11:37:53 +08:00
Bruce
470cbedde1 Fixed Styles. 2025-12-14 11:32:58 +08:00
Bruce
4668f09dac Update Settings Page. 2025-12-14 11:25:19 +08:00
Bruce
a40ff21fe6 Update. 2025-12-14 11:06:01 +08:00
Bruce
052042132f Update. 2025-12-14 11:03:47 +08:00
Bruce
5518101cfc Update download proxy link. 2025-12-14 10:58:57 +08:00
18 changed files with 137 additions and 18859 deletions

6
.gitignore vendored
View File

@@ -240,3 +240,9 @@ ModelManifest.xml
# FAKE - F# Make
.fake/
# Generated Setup
[Gg]enerated/
# Setup Build Files
[Oo]thers/

Binary file not shown.

View File

@@ -1623,6 +1623,8 @@ public ref class MainHtmlWnd: public System::Windows::Forms::Form, public IScrip
{
if (!(g_wcmdflags & (DWORD)CMDPARAM::SILENT))
{
auto launch_when_ready = (bool)InvokeCallScriptFunction ("getLaunchWhenReady");
if (!launch_when_ready) return;
std::vector <std::wnstring> appids;
for (auto &it : g_pkginfo)
for (auto &it_s : it.applications)

View File

@@ -191,12 +191,13 @@ int main (int argc, char *argv [])
{
setlocale (LC_ALL, "");
std::wcout.imbue (std::locale ("", LC_CTYPE));
CoInitializeEx (nullptr, COINIT_MULTITHREADED);
std::wcout << L"Please enter the file path: " << std::endl;
std::wcout << L"\\> ";
std::wstring pkgPathStr = L"E:\\Profiles\\Bruce\\Desktop\\Discourse.appx";
pkgPathStr = L"F:\\BaiduNetdiskDownload\\Collection4\\Microsoft.BingFinance_2015.709.2014.2069_neutral_~_8wekyb3d8bbwe\\FinanceApp_3.0.4.336_x86.appx";
//pkgPathStr = L"F:\\BaiduNetdiskDownload\\Collection4\\Microsoft.BingFinance_2015.709.2014.2069_neutral_~_8wekyb3d8bbwe\\FinanceApp_3.0.4.336_x86.appx";
//pkgPathStr = L"F:\\BaiduNetdiskDownload\\Collection4\\Microsoft.BingFinance_2015.709.2014.2069_neutral_~_8wekyb3d8bbwe.appxbundle";
//pkgPathStr = L"";
pkgPathStr = L"E:\\Profiles\\Bruce\\Desktop\\н¨Îļþ¼Ð\\Microsoft.MSIXPackagingTool_2023.1212.538.0_neutral_~_8wekyb3d8bbwe.Msixbundle";
if (pkgPathStr.empty ()) std::getline (std::wcin, pkgPathStr);
pkgPathStr.erase (
std::remove (pkgPathStr.begin (), pkgPathStr.end (), L'\"'),

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -6542,7 +6542,7 @@ g_HandleSystemReboot();
</SessionVar>
<SessionVar>
<Name>%ProductVer%</Name>
<Value>0.2.2.0</Value>
<Value>0.2.2.1</Value>
<Type>1</Type>
</SessionVar>
<SessionVar>

View File

@@ -368,7 +368,14 @@ class package_reader
{
#ifdef _PRI_READER_CLI_HEADER_
pribundlereader.destroy ();
for (auto &it : prifilestreams) if (it != nullptr) DestroyAppxFileStream (it);
for (auto &it : prifilestreams)
{
if (it != nullptr)
{
DestroyAppxFileStream (it);
it = nullptr;
}
}
prifilestreams.clear ();
switch (this->package_type ())
{
@@ -383,6 +390,7 @@ class package_reader
case PKGTYPE_BUNDLE: {
HANDLE hls = nullptr, hss = nullptr;
destruct rel1 ([&hls, &hss] () {
if (hls == hss) hss = nullptr;
if (hls) DestroyAppxFileStream (hls);
if (hss) DestroyAppxFileStream (hss);
});
@@ -423,6 +431,9 @@ class package_reader
}
} break;
}
std::sort (prifilestreams.begin (), prifilestreams.end ());
auto last = std::unique (prifilestreams.begin (), prifilestreams.end ());
prifilestreams.erase (last, prifilestreams.end ());
try
{
std::vector <std::wstring> resnames;
@@ -598,6 +609,7 @@ class package_reader
case PKGTYPE_BUNDLE: {
HANDLE pkg = nullptr, pic = nullptr;
destruct relp ([&pic, &pkg] () {
if (pic == pkg) pkg = nullptr; // 虽然来说这个代码永远无法达到,但是保险起见
if (pic) DestroyAppxFileStream (pic);
if (pkg) DestroyAppxFileStream (pkg);
pkg = nullptr;
@@ -616,12 +628,14 @@ class package_reader
if (lpstr) free (lpstr);
HANDLE pkg1 = nullptr, pic1 = nullptr;
destruct relp1 ([&pic1, &pkg1] () {
if (pic1 == pkg1) pkg1 = nullptr; // 虽然来说这个代码永远无法达到,但是保险起见
if (pic1) DestroyAppxFileStream (pic1);
if (pkg1) DestroyAppxFileStream (pkg1);
pkg1 = nullptr;
pic1 = nullptr;
});
pkg1 = GetAppxBundleApplicationPackageFile (hReader);
if (pkg1 == pkg) pkg = nullptr;
if (pkg1)
{
pic1 = GetFileFromPayloadPackage (pkg1, logo ().c_str ());
@@ -782,6 +796,7 @@ class package_reader
case PKGTYPE_BUNDLE: {
HANDLE pkg = nullptr, pic = nullptr;
destruct relp ([&pic, &pkg] () {
if (pic == pkg) pkg = nullptr; // 虽然来说这个代码永远无法达到,但是保险起见
if (pic) DestroyAppxFileStream (pic);
if (pkg) DestroyAppxFileStream (pkg);
pkg = nullptr;

View File

@@ -495,7 +495,8 @@
if (!controls) return false;
var checkbox = controls.querySelector(".checkbox input");
if (!checkbox) return false;
return checkbox.checked == true;
if (checkbox.disabled === true) return false;
return checkbox.checked === true || checkbox.checked + "" === "true";
}
function noticeLoadSelectPage() {

View File

@@ -12,6 +12,13 @@
flex-wrap: nowrap;
align-content: center;
justify-content: center;
display: -ms-flexbox;
-ms-flex-direction: column;
-ms-flex-wrap: nowrap;
-ms-flex-line-pack: center;
/* align-content: center */
-ms-flex-pack: center;
/* justify-content: center */
transition: all 0.15s linear;
opacity: 0;
z-index: 100;
@@ -29,6 +36,9 @@
display: flex;
flex-direction: column;
flex-wrap: nowrap;
display: -ms-flexbox;
-ms-flex-direction: column;
-ms-flex-wrap: nowrap;
min-height: 0 !important;
box-sizing: border-box;
}
@@ -67,6 +77,15 @@
align-content: center;
justify-content: flex-end;
align-items: center;
display: -ms-flexbox;
-ms-flex-direction: row;
-ms-flex-wrap: nowrap;
-ms-flex-line-pack: center;
/* align-content: center几乎无效保留即可 */
-ms-flex-pack: end;
/* justify-content: flex-end */
-ms-flex-align: center;
/* align-items: center */
margin-top: 10px;
/*gap: 20px;*/
}

View File

@@ -74,7 +74,7 @@
</ul>
</nav>
</aside>
<iframe class="main right"></iframe>
<iframe class="main right" defer loading="lazy" async></iframe>
</div>
</div>
</body>

View File

@@ -101,6 +101,13 @@
flex-wrap: wrap;
align-content: flex-start;
justify-content: flex-start;
display: -ms-flexbox;
-ms-flex-direction: row;
-ms-flex-wrap: wrap;
-ms-flex-line-pack: start;
/* align-content: flex-start */
-ms-flex-pack: start;
/* justify-content: flex-start */
position: relative;
width: 100%;
height: calc(100% - 120px);

View File

@@ -50,6 +50,15 @@
align-content: flex-start;
justify-content: flex-start;
align-items: flex-start;
display: -ms-flexbox;
-ms-flex-direction: column;
-ms-flex-wrap: wrap;
-ms-flex-line-pack: start;
/* align-content */
-ms-flex-pack: start;
/* justify-content */
-ms-flex-align: start;
/* align-items */
box-sizing: border-box;
position: relative;
left: 0px;
@@ -137,6 +146,13 @@
flex-wrap: nowrap;
align-content: flex-end;
justify-content: flex-start;
display: -ms-flexbox;
-ms-flex-direction: column;
-ms-flex-wrap: nowrap;
-ms-flex-line-pack: end;
/* align-content: flex-end */
-ms-flex-pack: start;
/* justify-content: flex-start */
pointer-events: none;
}
</style>
@@ -265,22 +281,22 @@
</div>
<div class="win-settings-section" id="item-custom-theme">
<br>
<label data-res-fromfile="publicRes (154)"></label><br>
<label data-res-fromfile="publicRes (154)"></label><span>: </span><span id="custom-color-mode-display"></span><br>
<script>
(function() {
var sect = document.getElementById("item-custom-theme");
var toggle = new Toggle();
toggle.create();
toggle.parent = sect;
toggle.setColor("#202020");
toggle.showlabel = true;
toggle.setStatusText(getPublicRes(155), getPublicRes(156));
toggle.addEventListener("change", function() {
Theme.setCustomColor(toggle.checked ? Theme.ColorType.dark : Theme.ColorType.light);
var toggleForColorMode = new Toggle();
toggleForColorMode.create();
toggleForColorMode.parent = sect;
toggleForColorMode.setColor("#202020");
toggleForColorMode.showlabel = true;
toggleForColorMode.setStatusText(getPublicRes(155), getPublicRes(156));
toggleForColorMode.addEventListener("change", function() {
Theme.setCustomColor(toggleForColorMode.checked ? Theme.ColorType.dark : Theme.ColorType.light);
refreshCustomPreview();
});
OnLoad.add(function() {
toggle.checked = Theme.customColor === Theme.ColorType.dark;
toggleForColorMode.checked = Theme.customColor === Theme.ColorType.dark;
});
})();
</script>
@@ -313,7 +329,15 @@
iframe.contentWindow.Theme.currentColor = color;
iframe.contentWindow.Theme.currentTheme = id;
};*/
iframe.src = previewHtml + "?color=" + color + "&id=" + id;
setTimeout(function(iframenode, iframesrc) {
iframenode.src = iframesrc;
}, 0, iframe, previewHtml + "?color=" + color + "&id=" + id);
// iframe.src = previewHtml + "?color=" + color + "&id=" + id;
try {
iframe.defer = true;
iframe.loading = "lazy";
iframe.async = true;
} catch (e) {}
item.appendChild(iframe);
var colorstr = "light";
if (color === Theme.ColorType.dark) colorstr = "dark";
@@ -451,7 +475,7 @@
<br>
<h3 data-res-fromfile="publicRes (174)"></h3>
<label data-res-fromfile="publicRes (175)"></label><br>
<iframe src="../../preview.html" id="theme-custom-preview"></iframe>
<iframe src="../../preview.html" id="theme-custom-preview" defer loading="lazy" async></iframe>
<br><br>
<button id="jump-editpage" data-res-fromfile="publicRes (176)"></button>
<script>
@@ -465,6 +489,17 @@
var customThemePath = path.combine(path.root, "html\\theme\\{colormode}\\custom\\custom.css").replace("{colormode}", customcolorstr);
var iframe = document.getElementById("theme-custom-preview");
iframe.setAttribute("src", "../../preview.html?id=custom&color=" + customcolor);
var customColorModeDisplay = document.getElementById("custom-color-mode-display");
if (customColorModeDisplay) {
switch (customcolor) {
case Theme.ColorType.dark:
customColorModeDisplay.textContent = getPublicRes(155);
break;
case Theme.ColorType.light:
customColorModeDisplay.textContent = getPublicRes(156);
break;
}
}
}
OnLoad.add(function() {
setTimeout(refreshCustomPreview, 100);

View File

@@ -46,7 +46,7 @@
</ul>
</nav>
</aside>
<iframe class="main right"></iframe>
<iframe class="main right" defer loading="lazy" async></iframe>
</div>
</div>
</body>

View File

@@ -480,15 +480,39 @@
var tempfile = path.combine(tempdir, "InstallerSetup.exe");
tbputil.tbProgress = 0;
tbputil.tbState = tbpFlags.normal;
var proxyDownloadUrl = "https://githubproxy.cc/" + downloadUrl;
downloadFile(downloadUrl, tempfile).done(
function(complete) {
anime.loading(checkUpdateLoading, false);
if (complete.status == "ok") setComplete(complete);
else setError(complete);
else {
anime.loading(checkUpdateLoading, true);
downloadFile(proxyDownloadUrl, tempfile).done(
function(comp) {
anime.loading(checkUpdateLoading, false);
if (complete.status == "ok") setComplete(comp);
else setError(comp);
},
function(error) {
setError(error);
}
);
}
},
function(error) {
anime.loading(checkUpdateLoading, false);
setError(error);
anime.loading(checkUpdateLoading, true);
downloadFile(proxyDownloadUrl, tempfile).done(
function(comp) {
anime.loading(checkUpdateLoading, false);
if (complete.status == "ok") setComplete(comp);
else setError(comp);
},
function(err) {
anime.loading(checkUpdateLoading, false);
setError(err);
}
);
},
function(prog) {
//console.log("download progress", prog);

View File

@@ -1 +1 @@
0.2.2.0
0.2.2.1

5
版本改变说明.txt Normal file
View File

@@ -0,0 +1,5 @@
此文本仅是提醒我。
版本改变说明:
更改 shared\version 中的版本
更改 others\buildsetup.suf 中的版本
提交发行时新的版本。