Compare commits
5 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
c9e297b74c | ||
|
dd514a115c | ||
|
7e0b4bd538 | ||
|
378080eb87 | ||
|
e8f5e97fa4 |
4
.github/workflows/build.yml
vendored
4
.github/workflows/build.yml
vendored
@@ -27,7 +27,7 @@ jobs:
|
|||||||
build:
|
build:
|
||||||
name: ${{ matrix.OS_NAME }} (${{ matrix.configuration }})
|
name: ${{ matrix.OS_NAME }} (${{ matrix.configuration }})
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
timeout-minutes: ${{ fromJSON(vars.JOB_TIMEOUT) }}
|
timeout-minutes: 45
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
os: [ubuntu-latest, macOS-latest, windows-latest]
|
os: [ubuntu-latest, macOS-latest, windows-latest]
|
||||||
@@ -110,7 +110,7 @@ jobs:
|
|||||||
build_macos:
|
build_macos:
|
||||||
name: macOS Universal (${{ matrix.configuration }})
|
name: macOS Universal (${{ matrix.configuration }})
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
timeout-minutes: ${{ fromJSON(vars.JOB_TIMEOUT) }}
|
timeout-minutes: 45
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
configuration: [ Debug, Release ]
|
configuration: [ Debug, Release ]
|
||||||
|
@@ -25,14 +25,27 @@ error_handler() {
|
|||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
# Wait for Ryujinx to exit
|
|
||||||
# NOTE: in case no fds are open, lsof could be returning with a process still living.
|
|
||||||
# We wait 1s and assume the process stopped after that
|
|
||||||
lsof -p $APP_PID +r 1 &>/dev/null
|
|
||||||
sleep 1
|
|
||||||
|
|
||||||
trap 'error_handler ${LINENO}' ERR
|
trap 'error_handler ${LINENO}' ERR
|
||||||
|
|
||||||
|
# Wait for Ryujinx to exit.
|
||||||
|
# If the main process is still acitve, we wait for 1 second and check it again.
|
||||||
|
# After the fifth time checking, this script exits with status 1.
|
||||||
|
|
||||||
|
attempt=0
|
||||||
|
while true; do
|
||||||
|
if lsof -p $APP_PID +r 1 &>/dev/null || ps -p "$APP_PID" &>/dev/null; then
|
||||||
|
if [ "$attempt" -eq 4 ]; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
sleep 1
|
||||||
|
else
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
(( attempt++ ))
|
||||||
|
done
|
||||||
|
|
||||||
|
sleep 1
|
||||||
|
|
||||||
# Now replace and reopen.
|
# Now replace and reopen.
|
||||||
rm -rf "$INSTALL_DIRECTORY"
|
rm -rf "$INSTALL_DIRECTORY"
|
||||||
mv "$NEW_APP_DIRECTORY" "$INSTALL_DIRECTORY"
|
mv "$NEW_APP_DIRECTORY" "$INSTALL_DIRECTORY"
|
||||||
|
@@ -270,7 +270,7 @@ namespace Ryujinx.Ava
|
|||||||
|
|
||||||
string directory = AppDataManager.Mode switch
|
string directory = AppDataManager.Mode switch
|
||||||
{
|
{
|
||||||
AppDataManager.LaunchMode.Portable => Path.Combine(AppDataManager.BaseDirPath, "screenshots"),
|
AppDataManager.LaunchMode.Portable or AppDataManager.LaunchMode.Custom => Path.Combine(AppDataManager.BaseDirPath, "screenshots"),
|
||||||
_ => Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyPictures), "Ryujinx")
|
_ => Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyPictures), "Ryujinx")
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -637,5 +637,7 @@
|
|||||||
"SettingsTabNetworkInterface": "Network Interface:",
|
"SettingsTabNetworkInterface": "Network Interface:",
|
||||||
"NetworkInterfaceTooltip": "The network interface used for LAN features",
|
"NetworkInterfaceTooltip": "The network interface used for LAN features",
|
||||||
"NetworkInterfaceDefault": "Default",
|
"NetworkInterfaceDefault": "Default",
|
||||||
"PackagingShaders": "Packaging Shaders"
|
"PackagingShaders": "Packaging Shaders",
|
||||||
|
"AboutChangelogButton": "View Changelog on GitHub",
|
||||||
|
"AboutChangelogButtonTooltipMessage": "Click to open the changelog for this version in your default browser."
|
||||||
}
|
}
|
@@ -1529,6 +1529,8 @@ namespace Ryujinx.Ava.UI.ViewModels
|
|||||||
double sessionTimePlayed = DateTime.UtcNow.Subtract(appMetadata.LastPlayed.Value).TotalSeconds;
|
double sessionTimePlayed = DateTime.UtcNow.Subtract(appMetadata.LastPlayed.Value).TotalSeconds;
|
||||||
appMetadata.TimePlayed += Math.Round(sessionTimePlayed, MidpointRounding.AwayFromZero);
|
appMetadata.TimePlayed += Math.Round(sessionTimePlayed, MidpointRounding.AwayFromZero);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
appMetadata.LastPlayed = DateTime.UtcNow;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -72,6 +72,18 @@
|
|||||||
LineHeight="12"
|
LineHeight="12"
|
||||||
Text="{Binding Version}"
|
Text="{Binding Version}"
|
||||||
TextAlignment="Center" />
|
TextAlignment="Center" />
|
||||||
|
<Button
|
||||||
|
Padding="5"
|
||||||
|
HorizontalAlignment="Center"
|
||||||
|
Background="Transparent"
|
||||||
|
Click="Button_OnClick"
|
||||||
|
Tag="https://github.com/Ryujinx/Ryujinx/wiki/Changelog#ryujinx-changelog">
|
||||||
|
<TextBlock
|
||||||
|
FontSize="10"
|
||||||
|
Text="{locale:Locale AboutChangelogButton}"
|
||||||
|
TextAlignment="Center"
|
||||||
|
ToolTip.Tip="{locale:Locale AboutChangelogButtonTooltipMessage}" />
|
||||||
|
</Button>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
<StackPanel
|
<StackPanel
|
||||||
Grid.Row="2"
|
Grid.Row="2"
|
||||||
|
@@ -1024,6 +1024,8 @@ namespace Ryujinx.Ui
|
|||||||
double sessionTimePlayed = DateTime.UtcNow.Subtract(appMetadata.LastPlayed.Value).TotalSeconds;
|
double sessionTimePlayed = DateTime.UtcNow.Subtract(appMetadata.LastPlayed.Value).TotalSeconds;
|
||||||
appMetadata.TimePlayed += Math.Round(sessionTimePlayed, MidpointRounding.AwayFromZero);
|
appMetadata.TimePlayed += Math.Round(sessionTimePlayed, MidpointRounding.AwayFromZero);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
appMetadata.LastPlayed = DateTime.UtcNow;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -381,7 +381,7 @@ namespace Ryujinx.Ui
|
|||||||
string filename = $"ryujinx_capture_{currentTime.Year}-{currentTime.Month:D2}-{currentTime.Day:D2}_{currentTime.Hour:D2}-{currentTime.Minute:D2}-{currentTime.Second:D2}.png";
|
string filename = $"ryujinx_capture_{currentTime.Year}-{currentTime.Month:D2}-{currentTime.Day:D2}_{currentTime.Hour:D2}-{currentTime.Minute:D2}-{currentTime.Second:D2}.png";
|
||||||
string directory = AppDataManager.Mode switch
|
string directory = AppDataManager.Mode switch
|
||||||
{
|
{
|
||||||
AppDataManager.LaunchMode.Portable => System.IO.Path.Combine(AppDataManager.BaseDirPath, "screenshots"),
|
AppDataManager.LaunchMode.Portable or AppDataManager.LaunchMode.Custom => System.IO.Path.Combine(AppDataManager.BaseDirPath, "screenshots"),
|
||||||
_ => System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyPictures), "Ryujinx")
|
_ => System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyPictures), "Ryujinx")
|
||||||
};
|
};
|
||||||
|
|
||||||
|
22
src/Ryujinx/Ui/Windows/AboutWindow.Designer.cs
generated
22
src/Ryujinx/Ui/Windows/AboutWindow.Designer.cs
generated
@@ -48,6 +48,8 @@ namespace Ryujinx.Ui.Windows
|
|||||||
private Label _patreonNamesLabel;
|
private Label _patreonNamesLabel;
|
||||||
private ScrolledWindow _patreonNamesScrolled;
|
private ScrolledWindow _patreonNamesScrolled;
|
||||||
private TextView _patreonNamesText;
|
private TextView _patreonNamesText;
|
||||||
|
private EventBox _changelogEventBox;
|
||||||
|
private Label _changelogLinkLabel;
|
||||||
|
|
||||||
private void InitializeComponent()
|
private void InitializeComponent()
|
||||||
{
|
{
|
||||||
@@ -148,6 +150,23 @@ namespace Ryujinx.Ui.Windows
|
|||||||
Margin = 5
|
Margin = 5
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//
|
||||||
|
// _changelogEventBox
|
||||||
|
//
|
||||||
|
_changelogEventBox = new EventBox();
|
||||||
|
_changelogEventBox.ButtonPressEvent += ChangelogButton_Pressed;
|
||||||
|
|
||||||
|
//
|
||||||
|
// _changelogLinkLabel
|
||||||
|
//
|
||||||
|
_changelogLinkLabel = new Label("View Changelog on GitHub")
|
||||||
|
{
|
||||||
|
TooltipText = "Click to open the changelog for this version in your default browser.",
|
||||||
|
Justify = Justification.Center,
|
||||||
|
Attributes = new AttrList()
|
||||||
|
};
|
||||||
|
_changelogLinkLabel.Attributes.Insert(new Pango.AttrUnderline(Underline.Single));
|
||||||
|
|
||||||
//
|
//
|
||||||
// _disclaimerLabel
|
// _disclaimerLabel
|
||||||
//
|
//
|
||||||
@@ -464,8 +483,11 @@ namespace Ryujinx.Ui.Windows
|
|||||||
_socialBox.Add(_discordEventBox);
|
_socialBox.Add(_discordEventBox);
|
||||||
_socialBox.Add(_twitterEventBox);
|
_socialBox.Add(_twitterEventBox);
|
||||||
|
|
||||||
|
_changelogEventBox.Add(_changelogLinkLabel);
|
||||||
|
|
||||||
_leftBox.Add(_logoBox);
|
_leftBox.Add(_logoBox);
|
||||||
_leftBox.Add(_versionLabel);
|
_leftBox.Add(_versionLabel);
|
||||||
|
_leftBox.Add(_changelogEventBox);
|
||||||
_leftBox.Add(_disclaimerLabel);
|
_leftBox.Add(_disclaimerLabel);
|
||||||
_leftBox.Add(_amiiboApiLink);
|
_leftBox.Add(_amiiboApiLink);
|
||||||
_leftBox.Add(_socialBox);
|
_leftBox.Add(_socialBox);
|
||||||
|
@@ -76,5 +76,10 @@ namespace Ryujinx.Ui.Windows
|
|||||||
{
|
{
|
||||||
OpenHelper.OpenUrl("https://github.com/Ryujinx/Ryujinx/graphs/contributors?type=a");
|
OpenHelper.OpenUrl("https://github.com/Ryujinx/Ryujinx/graphs/contributors?type=a");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void ChangelogButton_Pressed(object sender, ButtonPressEventArgs args)
|
||||||
|
{
|
||||||
|
OpenHelper.OpenUrl("https://github.com/Ryujinx/Ryujinx/wiki/Changelog#ryujinx-changelog");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
Reference in New Issue
Block a user