diff --git a/Data/current.json b/Data/current.json
index 16061b51..93cc150b 100644
--- a/Data/current.json
+++ b/Data/current.json
@@ -3,27 +3,34 @@
"Assets/right eye/right eye_054.png",
"Assets/left eye/left eye_001.png",
"Assets/left eye/left eye_056.png",
- "Assets/eyebrows/eyebrows_003.png",
- "Assets/eyebrows/eyebrows_004.png",
- "Assets/mouth/[mouth]_009.PNG",
- "Assets/mouth/[mouth]_007.PNG",
- "Assets/mouth/[mouth]_004.PNG",
- "Assets/blush/blush_029.png",
- "Assets/blush/blush_030.png",
- "Assets/hairbows/hairbows_119.png",
+ "Assets/hands/hands_050.png",
+ "Assets/hairbows/hairbows_168.png",
+ "Assets/hairbows/hairbows_242.png",
+ "Assets/hairbows/hairbows_260.png",
+ "Assets/hairbows/hairbows_321.png",
+ "Assets/hairbows/hairbows_322.png",
"Assets/ahoge/ahoge_026.png",
"Assets/bangs/bangs_154.png",
"Assets/side pieces/side pieces_159.png",
"Assets/side pieces/side pieces_160.png",
- "Assets/ponytails/ponytails_141.png",
- "Assets/ponytails/ponytails_142.png",
+ "Assets/ponytails/ponytails_249.png",
+ "Assets/ponytails/ponytails_250.png",
"Assets/glasses/glasses_044.png",
"Assets/face assc/face assc_087.png",
"Assets/face assc/face assc_088.png",
+ "Assets/eyebrows/eyebrows_003.png",
+ "Assets/eyebrows/eyebrows_004.png",
"Assets/nose/[nose]_001.PNG",
- "Assets/overshirts/overshirts_115.png",
- "Assets/undershirt style/undershirt style_040.png",
- "Assets/undershirts/undershirts_027.png",
+ "Assets/mouth/[mouth]_009.PNG",
+ "Assets/mouth/[mouth]_007.PNG",
+ "Assets/mouth/[mouth]_004.PNG",
+ "Assets/overshirts/overshirts_062.png",
+ "Assets/undershirt style/undershirt style_033.png",
+ "Assets/undershirts/undershirts_090.png",
+ "Assets/blush/blush_029.png",
+ "Assets/blush/blush_030.png",
"Assets/body/body_049.png",
+ "Assets/wings/wings_001.png",
+ "Assets/wings/wings_002.png",
"Assets/hairback/hairback_172.png"
]
\ No newline at end of file
diff --git a/Data/current_model.json b/Data/current_model.json
index 27a83a6a..befd4b51 100644
--- a/Data/current_model.json
+++ b/Data/current_model.json
@@ -1,4 +1,4 @@
{
- "name": "Academic",
+ "name": "Hoodie",
"type": "Avatars"
}
\ No newline at end of file
diff --git a/UI/audioMonitor.ui b/UI/audioMonitor.ui
index 327ed8c8..9a3c1de8 100644
--- a/UI/audioMonitor.ui
+++ b/UI/audioMonitor.ui
@@ -7,7 +7,7 @@
0
0
267
- 195
+ 206
diff --git a/UI/main.ui b/UI/main.ui
index a2a2a46a..32125b6f 100644
--- a/UI/main.ui
+++ b/UI/main.ui
@@ -1758,7 +1758,7 @@ QFrame{
QFrame::Raised
-
+
-
@@ -1813,6 +1813,34 @@ QFrame{
+ -
+
+
+
+ 0
+ 0
+
+
+
+ PointingHandCursor
+
+
+ Qt::LeftToRight
+
+
+
+
+
+ Flip canvas horizontaly
+
+
+ false
+
+
+ false
+
+
+
-
@@ -1847,6 +1875,114 @@ QFrame{
+ -
+
+
+ Export PNG
+
+
+
+ 0
+
+
+ 23
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+
+
+
+ QFrame::StyledPanel
+
+
+ QFrame::Raised
+
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+ PointingHandCursor
+
+
+ Save PNG Image
+
+
+
+
+
+
+
+
+
+
+
+
+ ../Icons/image-mobile-ui-svgrepo-com.svg../Icons/image-mobile-ui-svgrepo-com.svg
+
+
+
+ 25
+ 25
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+
+
+ <html><head/><body><p><span style=" font-weight:600;">Alpha Composite:</span> Best for images with some transparency but it can't do different size images.</p><p><span style=" font-weight:600;">Pillow Paste:</span> Best for images with different sizes and positions, but it struggles with transparency.</p><p><span style=" font-weight:600;">Alpha Composite + Pillow Paste:</span> Tries to combine the two for a better image, won't make promises.</p><p><span style=" font-weight:600;">Screenshot:</span> Just takes a screenshot of the model.</p><p><span style=" font-weight:600;">Screenshot + Chroma Key:</span> Just takes a screenshot of the model and tries to remove the background.</p></body></html>
+
+
+ 10
+
+
+ QComboBox::AdjustToMinimumContentsLengthWithIcon
+
+
-
+
+ Select Method...
+
+
+ -
+
+ Alpha Composite
+
+
+ -
+
+ Pillow Paste
+
+
+
+
+
+
+
+
+
+
-
@@ -2156,129 +2292,6 @@ QFrame{
- -
-
-
- Export PNG
-
-
-
- 0
-
-
- 23
-
-
- 0
-
-
- 0
-
-
-
-
-
-
-
-
- QFrame::StyledPanel
-
-
- QFrame::Raised
-
-
-
-
-
-
-
- 0
- 0
-
-
-
- PointingHandCursor
-
-
- Save PNG Image
-
-
-
-
-
-
-
-
-
-
-
-
- ../Icons/image-mobile-ui-svgrepo-com.svg../Icons/image-mobile-ui-svgrepo-com.svg
-
-
-
- 25
- 25
-
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
-
-
-
- <html><head/><body><p><span style=" font-weight:600;">Alpha Composite:</span> Best for images with some transparency but it can't do different size images.</p><p><span style=" font-weight:600;">Pillow Paste:</span> Best for images with different sizes and positions, but it struggles with transparency.</p><p><span style=" font-weight:600;">Alpha Composite + Pillow Paste:</span> Tries to combine the two for a better image, won't make promises.</p><p><span style=" font-weight:600;">Screenshot:</span> Just takes a screenshot of the model.</p><p><span style=" font-weight:600;">Screenshot + Chroma Key:</span> Just takes a screenshot of the model and tries to remove the background.</p></body></html>
-
-
- 10
-
-
- QComboBox::AdjustToMinimumContentsLengthWithIcon
-
-
-
-
- Select Method...
-
-
- -
-
- Alpha Composite
-
-
- -
-
- Pillow Paste
-
-
- -
-
- AlphaCom + PILPaste
-
-
- -
-
- Screenshot
-
-
- -
-
- Screenshot + Chroma Key
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Viewer/viewer.html b/Viewer/viewer.html
index 7dce392a..884f3b25 100644
--- a/Viewer/viewer.html
+++ b/Viewer/viewer.html
@@ -22,6 +22,28 @@
;
"/>
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
diff --git a/main.py b/main.py
index 345d7b26..b58e0ff9 100644
--- a/main.py
+++ b/main.py
@@ -169,6 +169,7 @@ def __init__(self):
self.comboBox.currentIndexChanged.connect(self.update_settings)
self.PNGmethod.currentIndexChanged.connect(self.update_settings)
self.HideUI.toggled.connect(self.update_settings)
+ self.flipCanvasToggle.toggled.connect(self.flipCanvas)
self.SettingsGallery = SettingsToolBox()
self.SettingsGallery.settings_changed.connect(self.saveSettings)
@@ -230,6 +231,12 @@ def __init__(self):
self.toggle_editor()
self.update_viewer(self.current_files, update_gallery=True)
+ def flipCanvas(self):
+ if self.flipCanvasToggle.isChecked():
+ self.viewer.page().runJavaScript("document.body.style.transform = 'scaleX(-1)';")
+ else:
+ self.viewer.page().runJavaScript("document.body.style.transform = 'scaleX(1)';")
+
def update_keys(self):
twitch_dialog = twitchKeysDialog(APP_ID=self.twitch_api_client, APP_SECRET=self.twitch_api_secret)
twitch_dialog.new_keys.connect(self.start_twitch_connection)
@@ -947,8 +954,7 @@ def event(self, event):
elif event.type() == QtCore.QEvent.Type.HoverMove and self.frame_4.isHidden():
self.showUI()
elif event.type() == QtCore.QEvent.Type.HoverLeave:
- self.hideUI()
- # QtCore.QTimer.singleShot(400, self.hideUI)
+ self.hideUI_()
except AttributeError:
pass
return super().event(event)
@@ -961,7 +967,7 @@ def showUI(self):
self.donationBtn.show()
self.viewerFrame_2.setStyleSheet(f"border-radius: 20px; background-color: {self.color}")
- def hideUI(self):
+ def hideUI_(self):
if self.HideUI.isChecked():
self.frame_4.hide()
self.frame_5.hide()