[Frontend] add X links to About and Help (#272)

Based off the recent addition of revolt links.
Authored-by: Bix bix@bixed.xyz
Signed-off-by: Bix bix@bixed.xyz

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/272
Reviewed-by: crueter <crueter@eden-emu.dev>
Co-authored-by: Bix <bix@bixed.xyz>
Co-committed-by: Bix <bix@bixed.xyz>
This commit is contained in:
Bix 2025-08-16 17:32:18 +02:00 committed by crueter
parent d96da5104b
commit 4cc4d315f0
Signed by: crueter
GPG key ID: 425ACD2D4830EBC6
9 changed files with 53 additions and 0 deletions

View file

@ -51,6 +51,7 @@ Check out our [website](https://eden-emu.dev) for the latest news on exciting fe
## Development ## Development
Most of the development happens on our Git server. It is also where [our central repository](https://git.eden-emu.dev/eden-emu/eden) is hosted. For development discussions, please join us on [Discord](https://discord.gg/kXAmGCXBGD) or [Revolt](https://rvlt.gg/qKgFEAbH). Most of the development happens on our Git server. It is also where [our central repository](https://git.eden-emu.dev/eden-emu/eden) is hosted. For development discussions, please join us on [Discord](https://discord.gg/kXAmGCXBGD) or [Revolt](https://rvlt.gg/qKgFEAbH).
You can also follow us on [X (Twitter)](https://x.com/edenemuofficial) for updates and announcements.
If you would like to contribute, we are open to new developers and pull requests. Please ensure that your work is of a high standard and properly documented. You can also contact any of the developers on Discord or Revolt to learn more about the current state of the emulator. If you would like to contribute, we are open to new developers and pull requests. Please ensure that your work is of a high standard and properly documented. You can also contact any of the developers on Discord or Revolt to learn more about the current state of the emulator.

View file

@ -96,6 +96,7 @@ class AboutFragment : Fragment() {
binding.buttonDiscord.setOnClickListener { openLink(getString(R.string.discord_link)) } binding.buttonDiscord.setOnClickListener { openLink(getString(R.string.discord_link)) }
binding.buttonRevolt.setOnClickListener { openLink(getString(R.string.revolt_link)) } binding.buttonRevolt.setOnClickListener { openLink(getString(R.string.revolt_link)) }
binding.buttonX.setOnClickListener { openLink(getString(R.string.x_link)) }
binding.buttonWebsite.setOnClickListener { openLink(getString(R.string.website_link)) } binding.buttonWebsite.setOnClickListener { openLink(getString(R.string.website_link)) }
binding.buttonGithub.setOnClickListener { openLink(getString(R.string.github_link)) } binding.buttonGithub.setOnClickListener { openLink(getString(R.string.github_link)) }

View file

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="120"
android:viewportHeight="120">
<path
android:fillColor="#000000"
android:pathData="M95.26,0H113L72.12,51.27L120,120H82.83L53.89,78.31L20.57,120H2.7L45.74,65.01L0,0H38.18L65.22,38.9Z" />
</vector>

View file

@ -230,6 +230,17 @@
app:iconSize="24dp" app:iconSize="24dp"
app:iconPadding="0dp" /> app:iconPadding="0dp" />
<com.google.android.material.button.MaterialButton
android:id="@+id/button_x"
style="@style/EdenButton.Secondary"
android:layout_width="56dp"
android:layout_height="56dp"
android:layout_marginEnd="12dp"
app:icon="@drawable/ic_x"
app:iconGravity="textStart"
app:iconSize="24dp"
app:iconPadding="0dp" />
<com.google.android.material.button.MaterialButton <com.google.android.material.button.MaterialButton
android:id="@+id/button_website" android:id="@+id/button_website"
style="@style/EdenButton.Secondary" style="@style/EdenButton.Secondary"

View file

@ -225,6 +225,18 @@
app:iconGravity="textStart" app:iconGravity="textStart"
app:iconPadding="0dp" /> app:iconPadding="0dp" />
<com.google.android.material.button.MaterialButton
style="@style/EdenButton.Secondary"
android:id="@+id/button_x"
android:layout_width="0dp"
android:layout_height="56dp"
android:layout_weight="1"
android:layout_marginEnd="8dp"
app:icon="@drawable/ic_x"
app:iconSize="24dp"
app:iconGravity="textStart"
app:iconPadding="0dp" />
<com.google.android.material.button.MaterialButton <com.google.android.material.button.MaterialButton
style="@style/EdenButton.Secondary" style="@style/EdenButton.Secondary"
android:id="@+id/button_website" android:id="@+id/button_website"

View file

@ -444,6 +444,7 @@
<string name="user_data_import_failed_description">Make sure the user data folders are at the root of the zip folder and contain a config file at config/config.ini and try again.</string> <string name="user_data_import_failed_description">Make sure the user data folders are at the root of the zip folder and contain a config file at config/config.ini and try again.</string>
<string name="discord_link" translatable="false">https://discord.gg/kXAmGCXBGD</string> <string name="discord_link" translatable="false">https://discord.gg/kXAmGCXBGD</string>
<string name="revolt_link" translatable="false">https://rvlt.gg/qKgFEAbH</string> <string name="revolt_link" translatable="false">https://rvlt.gg/qKgFEAbH</string>
<string name="x_link" translatable="false">https://x.com/edenemuofficial</string>
<string name="website_link" translatable="false">https://eden-emu.dev</string> <string name="website_link" translatable="false">https://eden-emu.dev</string>
<string name="github_link" translatable="false">https://git.eden-emu.dev/eden-emu</string> <string name="github_link" translatable="false">https://git.eden-emu.dev/eden-emu</string>

View file

@ -1764,6 +1764,7 @@ void GMainWindow::ConnectMenuEvents() {
connect_menu(ui->action_Discord, &GMainWindow::OnOpenDiscord); connect_menu(ui->action_Discord, &GMainWindow::OnOpenDiscord);
connect_menu(ui->action_Revolt, &GMainWindow::OnOpenRevolt); connect_menu(ui->action_Revolt, &GMainWindow::OnOpenRevolt);
connect_menu(ui->action_X, &GMainWindow::OnOpenX);
connect_menu(ui->action_Verify_installed_contents, &GMainWindow::OnVerifyInstalledContents); connect_menu(ui->action_Verify_installed_contents, &GMainWindow::OnVerifyInstalledContents);
connect_menu(ui->action_Firmware_From_Folder, &GMainWindow::OnInstallFirmware); connect_menu(ui->action_Firmware_From_Folder, &GMainWindow::OnInstallFirmware);
connect_menu(ui->action_Firmware_From_ZIP, &GMainWindow::OnInstallFirmwareFromZIP); connect_menu(ui->action_Firmware_From_ZIP, &GMainWindow::OnInstallFirmwareFromZIP);
@ -3750,6 +3751,10 @@ void GMainWindow::OnOpenRevolt() {
OpenURL(QUrl(QStringLiteral("https://rvlt.gg/qKgFEAbH"))); OpenURL(QUrl(QStringLiteral("https://rvlt.gg/qKgFEAbH")));
} }
void GMainWindow::OnOpenX() {
OpenURL(QUrl(QStringLiteral("https://x.com/edenemuofficial")));
}
void GMainWindow::ToggleFullscreen() { void GMainWindow::ToggleFullscreen() {
if (!emulation_running) { if (!emulation_running) {
return; return;

View file

@ -347,6 +347,7 @@ private slots:
void OnOpenFAQ(); void OnOpenFAQ();
void OnOpenDiscord(); void OnOpenDiscord();
void OnOpenRevolt(); void OnOpenRevolt();
void OnOpenX();
/// Called whenever a user selects a game in the game list widget. /// Called whenever a user selects a game in the game list widget.
void OnGameListLoadFile(QString game_path, u64 program_id); void OnGameListLoadFile(QString game_path, u64 program_id);

View file

@ -215,6 +215,7 @@
<addaction name="separator"/> <addaction name="separator"/>
<addaction name="action_Discord"/> <addaction name="action_Discord"/>
<addaction name="action_Revolt"/> <addaction name="action_Revolt"/>
<addaction name="action_X"/>
<addaction name="separator"/> <addaction name="separator"/>
<addaction name="action_About"/> <addaction name="action_About"/>
<addaction name="action_Eden_Dependencies"/> <addaction name="action_Eden_Dependencies"/>
@ -562,6 +563,17 @@
<string>From ZIP</string> <string>From ZIP</string>
</property> </property>
</action> </action>
<action name="action_X">
<property name="text">
<string>&amp;X</string>
</property>
<property name="toolTip">
<string>X (Twitter)</string>
</property>
<property name="statusTip">
<string/>
</property>
</action>
<action name="action_Revolt"> <action name="action_Revolt">
<property name="text"> <property name="text">
<string>&amp;Revolt</string> <string>&amp;Revolt</string>