Skip to content

Commit

Permalink
fix descriptionText size | missing translations (shadps4-emu#1319)
Browse files Browse the repository at this point in the history
* fix descriptionText size

* +

avoid 'blinking'

* Update ru_RU.ts

* TR

* Update pt_BR.ts

* emulatorLanguage alphabetical order

---------

Co-authored-by: georgemoralis <[email protected]>
  • Loading branch information
DanielSvoboda and georgemoralis authored Oct 13, 2024
1 parent f0ee391 commit bd9f82d
Show file tree
Hide file tree
Showing 29 changed files with 3,267 additions and 117 deletions.
41 changes: 32 additions & 9 deletions src/qt_gui/settings_dialog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ SettingsDialog::SettingsDialog(std::span<const QString> physical_devices, QWidge
: QDialog(parent), ui(new Ui::SettingsDialog) {
ui->setupUi(this);
ui->tabWidgetSettings->setUsesScrollButtons(false);
initialHeight = this->height();
const auto config_dir = Common::FS::GetUserPath(Common::FS::PathType::UserDir);

ui->buttonBox->button(QDialogButtonBox::StandardButton::Close)->setFocus();
Expand Down Expand Up @@ -268,14 +269,14 @@ SettingsDialog::SettingsDialog(std::span<const QString> physical_devices, QWidge
ui->fullscreenCheckBox->installEventFilter(this);
ui->showSplashCheckBox->installEventFilter(this);
ui->ps4proCheckBox->installEventFilter(this);
ui->discordRPCCheckbox->installEventFilter(this);
ui->userName->installEventFilter(this);
ui->logTypeGroupBox->installEventFilter(this);
ui->logFilter->installEventFilter(this);
ui->updaterGroupBox->installEventFilter(this);
ui->GUIgroupBox->installEventFilter(this);

// Input
ui->cursorGroupBox->installEventFilter(this);
ui->hideCursorGroupBox->installEventFilter(this);
ui->idleTimeoutGroupBox->installEventFilter(this);
ui->backButtonBehaviorGroupBox->installEventFilter(this);
Expand Down Expand Up @@ -361,15 +362,30 @@ void SettingsDialog::LoadValuesFromConfig() {
void SettingsDialog::InitializeEmulatorLanguages() {
QDirIterator it(QStringLiteral(":/translations"), QDirIterator::NoIteratorFlags);

int idx = 0;
QVector<QPair<QString, QString>> languagesList;

while (it.hasNext()) {
QString locale = it.next();
locale.truncate(locale.lastIndexOf(QLatin1Char{'.'}));
locale.remove(0, locale.lastIndexOf(QLatin1Char{'/'}) + 1);
const QString lang = QLocale::languageToString(QLocale(locale).language());
const QString country = QLocale::territoryToString(QLocale(locale).territory());
ui->emulatorLanguageComboBox->addItem(QStringLiteral("%1 (%2)").arg(lang, country), locale);

QString displayName = QStringLiteral("%1 (%2)").arg(lang, country);
languagesList.append(qMakePair(locale, displayName));
}

std::sort(languagesList.begin(), languagesList.end(),
[](const QPair<QString, QString>& a, const QPair<QString, QString>& b) {
return a.second < b.second;
});

int idx = 0;
for (const auto& pair : languagesList) {
const QString& locale = pair.first;
const QString& displayName = pair.second;

ui->emulatorLanguageComboBox->addItem(displayName, locale);
languages[locale.toStdString()] = idx;
idx++;
}
Expand Down Expand Up @@ -419,6 +435,8 @@ void SettingsDialog::updateNoteTextEdit(const QString& elementName) {
text = tr("showSplashCheckBox");
} else if (elementName == "ps4proCheckBox") {
text = tr("ps4proCheckBox");
} else if (elementName == "discordRPCCheckbox") {
text = tr("discordRPCCheckbox");
} else if (elementName == "userName") {
text = tr("userName");
} else if (elementName == "logTypeGroupBox") {
Expand All @@ -432,9 +450,7 @@ void SettingsDialog::updateNoteTextEdit(const QString& elementName) {
}

// Input
if (elementName == "cursorGroupBox") {
text = tr("cursorGroupBox");
} else if (elementName == "hideCursorGroupBox") {
if (elementName == "hideCursorGroupBox") {
text = tr("hideCursorGroupBox");
} else if (elementName == "idleTimeoutGroupBox") {
text = tr("idleTimeoutGroupBox");
Expand Down Expand Up @@ -493,15 +509,22 @@ bool SettingsDialog::eventFilter(QObject* obj, QEvent* event) {
}

// if the text exceeds the size of the box, it will increase the size
QRect currentGeometry = this->geometry();
int newWidth = currentGeometry.width();

int documentHeight = ui->descriptionText->document()->size().height();
int visibleHeight = ui->descriptionText->viewport()->height();
if (documentHeight > visibleHeight) {
ui->descriptionText->setMinimumHeight(90);
ui->descriptionText->setMaximumSize(16777215, 110);
this->setGeometry(currentGeometry.x(), currentGeometry.y(), newWidth,
currentGeometry.height() + 40);
} else {
ui->descriptionText->setMinimumHeight(70);
ui->descriptionText->setMaximumSize(16777215, 70);
this->setGeometry(currentGeometry.x(), currentGeometry.y(), newWidth,
initialHeight);
}
return true;
}
}
return QDialog::eventFilter(obj, event);
}
}
2 changes: 2 additions & 0 deletions src/qt_gui/settings_dialog.h
Original file line number Diff line number Diff line change
Expand Up @@ -40,4 +40,6 @@ class SettingsDialog : public QDialog {
std::map<std::string, int> languages;

QString defaultTextEdit;

int initialHeight;
};
8 changes: 4 additions & 4 deletions src/qt_gui/settings_dialog.ui
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
<x>0</x>
<y>0</y>
<width>854</width>
<height>605</height>
<height>630</height>
</rect>
</property>
<property name="sizePolicy">
Expand Down Expand Up @@ -1133,7 +1133,7 @@
<rect>
<x>100</x>
<y>360</y>
<width>80</width>
<width>91</width>
<height>24</height>
</rect>
</property>
Expand All @@ -1144,9 +1144,9 @@
<widget class="QPushButton" name="removeFolderButton">
<property name="geometry">
<rect>
<x>210</x>
<x>199</x>
<y>360</y>
<width>80</width>
<width>91</width>
<height>24</height>
</rect>
</property>
Expand Down
127 changes: 126 additions & 1 deletion src/qt_gui/translations/ar.ts
Original file line number Diff line number Diff line change
Expand Up @@ -414,6 +414,11 @@
<source>Is PS4 Pro</source>
<translation>PS4 Pro هل هو</translation>
</message>
<message>
<location filename="../settings_dialog.ui" line="154"/>
<source>Enable Discord Rich Presence</source>
<translation>تفعيل حالة الثراء في ديسكورد</translation>
</message>
<message>
<location filename="../settings_dialog.ui" line="155"/>
<source>Username</source>
Expand All @@ -434,6 +439,36 @@
<source>Log Filter</source>
<translation>مرشح السجل</translation>
</message>
<message>
<location filename="../settings_dialog.ui" line="595"/>
<source>Input</source>
<translation>إدخال</translation>
</message>
<message>
<location filename="../settings_dialog.ui" line="611"/>
<source>Cursor</source>
<translation>مؤشر</translation>
</message>
<message>
<location filename="../settings_dialog.ui" line="635"/>
<source>Hide Cursor</source>
<translation>إخفاء المؤشر</translation>
</message>
<message>
<location filename="../settings_dialog.ui" line="668"/>
<source>Hide Cursor Idle Timeout</source>
<translation>مهلة إخفاء المؤشر عند الخمول</translation>
</message>
<message>
<location filename="../settings_dialog.ui" line="767"/>
<source>Controller</source>
<translation>التحكم</translation>
</message>
<message>
<location filename="../settings_dialog.ui" line="797"/>
<source>Back Button Behavior</source>
<translation>سلوك زر العودة</translation>
</message>
<message>
<location filename="../settings_dialog.ui" line="272"/>
<source>Graphics</source>
Expand Down Expand Up @@ -474,6 +509,26 @@
<source>Enable NULL GPU</source>
<translation>تمكين وحدة معالجة الرسومات الفارغة</translation>
</message>
<message>
<location filename="../settings_dialog.ui" line="1111"/>
<source>Paths</source>
<translation>المسارات</translation>
</message>
<message>
<location filename="../settings_dialog.ui" line="1119"/>
<source>Game Folders</source>
<translation>مجلدات اللعبة</translation>
</message>
<message>
<location filename="../settings_dialog.ui" line="1141"/>
<source>Add...</source>
<translation>إضافة...</translation>
</message>
<message>
<location filename="../settings_dialog.ui" line="1141"/>
<source>Remove</source>
<translation>إزالة</translation>
</message>
<message>
<location filename="../settings_dialog.ui" line="517"/>
<source>Debug</source>
Expand Down Expand Up @@ -998,6 +1053,11 @@
<source>ps4proCheckBox</source>
<translation>هل هو PS4 Pro:\nيجعل المحاكي يعمل كـ PS4 PRO، مما قد يتيح ميزات خاصة في الألعاب التي تدعمه.</translation>
</message>
<message>
<location filename="../settings_dialog.cpp" line="438"/>
<source>discordRPCCheckbox</source>
<translation>تفعيل حالة الثراء في ديسكورد:\nيعرض أيقونة المحاكي ومعلومات ذات صلة على ملفك الشخصي في ديسكورد.</translation>
</message>
<message>
<location filename="../settings_dialog.cpp" line="299"/>
<source>userName</source>
Expand All @@ -1011,7 +1071,7 @@
<message>
<location filename="../settings_dialog.cpp" line="303"/>
<source>logFilter</source>
<translation>فلتر السجل: يقوم بتصفية السجل لطباعة معلومات محددة فقط. أمثلة: "Core:Trace" "Lib.Pad:Debug Common.Filesystem:Error" "*:Critical" المستويات: Trace, Debug, Info, Warning, Error, Critical - بالترتيب، مستوى محدد يخفي جميع المستويات التي تسبقه ويعرض جميع المستويات بعده.</translation>
<translation>فلتر السجل:\nيقوم بتصفية السجل لطباعة معلومات محددة فقط.\nأمثلة: "Core:Trace" "Lib.Pad:Debug Common.Filesystem:Error" "*:Critical" المستويات: Trace, Debug, Info, Warning, Error, Critical - بالترتيب، مستوى محدد يخفي جميع المستويات التي تسبقه ويعرض جميع المستويات بعده.</translation>
</message>
<message>
<location filename="../settings_dialog.cpp" line="305"/>
Expand All @@ -1023,6 +1083,56 @@
<source>GUIgroupBox</source>
<translation>تشغيل موسيقى العنوان:\nإذا كانت اللعبة تدعم ذلك، قم بتمكين تشغيل موسيقى خاصة عند اختيار اللعبة في واجهة المستخدم.</translation>
</message>
<message>
<location filename="../settings_dialog.cpp" line="450"/>
<source>hideCursorGroupBox</source>
<translation>إخفاء المؤشر:\nاختر متى سيختفي المؤشر:\nأبداً: سترى الفأرة دائماً.\nعاطل: حدد وقتاً لاختفائه بعد أن يكون غير مستخدم.\nدائماً: لن ترى الفأرة أبداً.</translation>
</message>
<message>
<location filename="../settings_dialog.cpp" line="452"/>
<source>idleTimeoutGroupBox</source>
<translation>حدد وقتاً لاختفاء الفأرة بعد أن تكون غير مستخدم.</translation>
</message>
<message>
<location filename="../settings_dialog.cpp" line="454"/>
<source>backButtonBehaviorGroupBox</source>
<translation>سلوك زر العودة:\nيضبط زر العودة في وحدة التحكم ليحاكي الضغط على الموضع المحدد على لوحة اللمس في PS4.</translation>
</message>
<message>
<location filename="../settings_dialog.cpp" line="70"/>
<source>Never</source>
<translation>أبداً</translation>
</message>
<message>
<location filename="../settings_dialog.cpp" line="71"/>
<source>Idle</source>
<translation>خامل</translation>
</message>
<message>
<location filename="../settings_dialog.cpp" line="72"/>
<source>Always</source>
<translation>دائماً</translation>
</message>
<message>
<location filename="../settings_dialog.cpp" line="101"/>
<source>Touchpad Left</source>
<translation>لوحة اللمس اليسرى</translation>
</message>
<message>
<location filename="../settings_dialog.cpp" line="102"/>
<source>Touchpad Right</source>
<translation>لوحة اللمس اليمنى</translation>
</message>
<message>
<location filename="../settings_dialog.cpp" line="103"/>
<source>Touchpad Center</source>
<translation>وسط لوحة اللمس</translation>
</message>
<message>
<location filename="../settings_dialog.cpp" line="104"/>
<source>None</source>
<translation>لا شيء</translation>
</message>
<message>
<location filename="../settings_dialog.cpp" line="312"/>
<source>graphicsAdapterGroupBox</source>
Expand All @@ -1048,6 +1158,21 @@
<source>nullGpuCheckBox</source>
<translation>تمكين GPU الافتراضية:\nلأغراض تصحيح الأخطاء التقنية، يقوم بتعطيل عرض اللعبة كما لو لم يكن هناك بطاقة رسومات.</translation>
</message>
<message>
<location filename="../settings_dialog.cpp" line="465"/>
<source>gameFoldersBox</source>
<translation>مجلدات اللعبة:\nقائمة بالمجلدات للتحقق من الألعاب المثبتة.</translation>
</message>
<message>
<location filename="../settings_dialog.cpp" line="465"/>
<source>addFolderButton</source>
<translation>إضافة:\nأضف مجلداً إلى القائمة.</translation>
</message>
<message>
<location filename="../settings_dialog.cpp" line="465"/>
<source>removeFolderButton</source>
<translation>إزالة:\nأزل مجلداً من القائمة.</translation>
</message>
<message>
<location filename="../settings_dialog.cpp" line="329"/>
<source>debugDump</source>
Expand Down
Loading

0 comments on commit bd9f82d

Please sign in to comment.