A photo manager for VRChat.

Compare changes

Choose any two refs to compare.

Changed files
+61 -11
src
Components
src-tauri
+1 -1
build-release.sh
··· 1 1 #!/bin/bash 2 2 3 - VERSION=0.2.6-hot1 3 + VERSION=0.2.7-hot1 4 4 5 5 # Linux builds 6 6 NO_STRIP=true pnpm tauri build
+4 -1
changelog
··· 127 127 - Fixed image resizing when window is thinner than image 128 128 - Fixed closing settings with keybinds 129 129 - Fixed the behaviour of changing the photo path 130 - - Fixed loading photos in folders that aren't VRChat folders 130 + - Fixed loading photos in folders that aren't VRChat folders 131 + 132 + Hotfix 1: 133 + - Fixed resizing images (again)
+4 -5
src/Components/PhotoViewer.tsx
··· 154 154 let dstWidth; 155 155 let dstHeight; 156 156 157 - let imgHeight = imageViewer.height; 158 - let imgWidth = imageViewer.width; 157 + let imgHeight = imageViewer.naturalHeight; 158 + let imgWidth = imageViewer.naturalWidth; 159 159 160 160 if( 161 161 imgWidth / window.innerWidth < ··· 178 178 utils.set(photoLayerManager, { translateY: '20px', opacity: 0, display: 'none' }); 179 179 180 180 window.addEventListener('keyup', switchPhotoWithKey); 181 - 182 - resizeImage(); 183 - 184 181 window.addEventListener('resize', () => resizeImage()); 185 182 186 183 let contextMenuOpen = false; ··· 262 259 if(photo){ 263 260 imageViewer.src = (window.OS === "windows" ? "http://photo.localhost/" : 'photo://localhost/') + window.PhotoViewerManager.CurrentPhoto()?.path.split('\\').join('/') + "?full"; 264 261 imageViewer.crossOrigin = 'anonymous'; 262 + 263 + imageViewer.onload = () => { resizeImage(); } 265 264 266 265 animate(imageViewer, { 267 266 opacity: 1,
+1 -1
src-tauri/Cargo.lock
··· 4 4 5 5 [[package]] 6 6 name = "VRChatPhotoManager" 7 - version = "0.2.6-hot1" 7 + version = "0.2.7" 8 8 dependencies = [ 9 9 "arboard", 10 10 "dirs",
+1 -1
src-tauri/Cargo.toml
··· 1 1 [package] 2 2 name = "VRChatPhotoManager" 3 - version = "0.2.6-hot1" 3 + version = "0.2.7-hot1" 4 4 description = "VRChat Photo Manager" 5 5 authors = ["_phaz"] 6 6 edition = "2021"
+50 -2
src-tauri/gen/schemas/windows-schema.json
··· 519 519 "markdownDescription": "Default core plugins set.\n#### This default permission set includes:\n\n- `core:path:default`\n- `core:event:default`\n- `core:window:default`\n- `core:webview:default`\n- `core:app:default`\n- `core:image:default`\n- `core:resources:default`\n- `core:menu:default`\n- `core:tray:default`" 520 520 }, 521 521 { 522 - "description": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-version`\n- `allow-name`\n- `allow-tauri-version`\n- `allow-identifier`\n- `allow-bundle-type`", 522 + "description": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-version`\n- `allow-name`\n- `allow-tauri-version`\n- `allow-identifier`\n- `allow-bundle-type`\n- `allow-register-listener`\n- `allow-remove-listener`", 523 523 "type": "string", 524 524 "const": "core:app:default", 525 - "markdownDescription": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-version`\n- `allow-name`\n- `allow-tauri-version`\n- `allow-identifier`\n- `allow-bundle-type`" 525 + "markdownDescription": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-version`\n- `allow-name`\n- `allow-tauri-version`\n- `allow-identifier`\n- `allow-bundle-type`\n- `allow-register-listener`\n- `allow-remove-listener`" 526 526 }, 527 527 { 528 528 "description": "Enables the app_hide command without any pre-configured scope.", ··· 567 567 "markdownDescription": "Enables the name command without any pre-configured scope." 568 568 }, 569 569 { 570 + "description": "Enables the register_listener command without any pre-configured scope.", 571 + "type": "string", 572 + "const": "core:app:allow-register-listener", 573 + "markdownDescription": "Enables the register_listener command without any pre-configured scope." 574 + }, 575 + { 570 576 "description": "Enables the remove_data_store command without any pre-configured scope.", 571 577 "type": "string", 572 578 "const": "core:app:allow-remove-data-store", 573 579 "markdownDescription": "Enables the remove_data_store command without any pre-configured scope." 574 580 }, 575 581 { 582 + "description": "Enables the remove_listener command without any pre-configured scope.", 583 + "type": "string", 584 + "const": "core:app:allow-remove-listener", 585 + "markdownDescription": "Enables the remove_listener command without any pre-configured scope." 586 + }, 587 + { 576 588 "description": "Enables the set_app_theme command without any pre-configured scope.", 577 589 "type": "string", 578 590 "const": "core:app:allow-set-app-theme", ··· 639 651 "markdownDescription": "Denies the name command without any pre-configured scope." 640 652 }, 641 653 { 654 + "description": "Denies the register_listener command without any pre-configured scope.", 655 + "type": "string", 656 + "const": "core:app:deny-register-listener", 657 + "markdownDescription": "Denies the register_listener command without any pre-configured scope." 658 + }, 659 + { 642 660 "description": "Denies the remove_data_store command without any pre-configured scope.", 643 661 "type": "string", 644 662 "const": "core:app:deny-remove-data-store", 645 663 "markdownDescription": "Denies the remove_data_store command without any pre-configured scope." 664 + }, 665 + { 666 + "description": "Denies the remove_listener command without any pre-configured scope.", 667 + "type": "string", 668 + "const": "core:app:deny-remove-listener", 669 + "markdownDescription": "Denies the remove_listener command without any pre-configured scope." 646 670 }, 647 671 { 648 672 "description": "Denies the set_app_theme command without any pre-configured scope.", ··· 1827 1851 "markdownDescription": "Enables the set_focus command without any pre-configured scope." 1828 1852 }, 1829 1853 { 1854 + "description": "Enables the set_focusable command without any pre-configured scope.", 1855 + "type": "string", 1856 + "const": "core:window:allow-set-focusable", 1857 + "markdownDescription": "Enables the set_focusable command without any pre-configured scope." 1858 + }, 1859 + { 1830 1860 "description": "Enables the set_fullscreen command without any pre-configured scope.", 1831 1861 "type": "string", 1832 1862 "const": "core:window:allow-set-fullscreen", ··· 1897 1927 "type": "string", 1898 1928 "const": "core:window:allow-set-shadow", 1899 1929 "markdownDescription": "Enables the set_shadow command without any pre-configured scope." 1930 + }, 1931 + { 1932 + "description": "Enables the set_simple_fullscreen command without any pre-configured scope.", 1933 + "type": "string", 1934 + "const": "core:window:allow-set-simple-fullscreen", 1935 + "markdownDescription": "Enables the set_simple_fullscreen command without any pre-configured scope." 1900 1936 }, 1901 1937 { 1902 1938 "description": "Enables the set_size command without any pre-configured scope.", ··· 2271 2307 "markdownDescription": "Denies the set_focus command without any pre-configured scope." 2272 2308 }, 2273 2309 { 2310 + "description": "Denies the set_focusable command without any pre-configured scope.", 2311 + "type": "string", 2312 + "const": "core:window:deny-set-focusable", 2313 + "markdownDescription": "Denies the set_focusable command without any pre-configured scope." 2314 + }, 2315 + { 2274 2316 "description": "Denies the set_fullscreen command without any pre-configured scope.", 2275 2317 "type": "string", 2276 2318 "const": "core:window:deny-set-fullscreen", ··· 2341 2383 "type": "string", 2342 2384 "const": "core:window:deny-set-shadow", 2343 2385 "markdownDescription": "Denies the set_shadow command without any pre-configured scope." 2386 + }, 2387 + { 2388 + "description": "Denies the set_simple_fullscreen command without any pre-configured scope.", 2389 + "type": "string", 2390 + "const": "core:window:deny-set-simple-fullscreen", 2391 + "markdownDescription": "Denies the set_simple_fullscreen command without any pre-configured scope." 2344 2392 }, 2345 2393 { 2346 2394 "description": "Denies the set_size command without any pre-configured scope.",