diff --git a/Modules/about-distro/src/Module.h b/Modules/about-distro/src/Module.h --- a/Modules/about-distro/src/Module.h +++ b/Modules/about-distro/src/Module.h @@ -69,8 +69,10 @@ * Copies the software and hardware information to clipboard. */ void copyToClipboard(); + void copyToClipboardInEnglish(); QVector > labelsForClipboard; + QString englishTextForClipboard; /** * UI diff --git a/Modules/about-distro/src/Module.cpp b/Modules/about-distro/src/Module.cpp --- a/Modules/about-distro/src/Module.cpp +++ b/Modules/about-distro/src/Module.cpp @@ -23,6 +23,7 @@ #include #include +#include #include #include @@ -105,6 +106,10 @@ // Setup Copy to Clipboard button connect(ui->pushButtonCopyInfo, &QPushButton::clicked, this, &Module::copyToClipboard); + connect(ui->pushButtonCopyInfoInEnglish, &QPushButton::clicked, this, &Module::copyToClipboardInEnglish); + if (QLocale::system().language() == QLocale::English) { + ui->pushButtonCopyInfoInEnglish->hide(); + } ui->pushButtonCopyInfo->setShortcut(QKeySequence::Copy); // https://bugs.kde.org/show_bug.cgi?id=366158 @@ -122,6 +127,7 @@ void Module::load() { labelsForClipboard.clear(); + englishTextForClipboard = QStringLiteral(""); loadSoftware(); loadHardware(); } @@ -157,11 +163,13 @@ // as a product brand is different from Kubuntu. const QString distroName = cg.readEntry("Name", os.name); const QString versionId = cg.readEntry("Version", os.versionId); - ui->nameVersionLabel->setText(QStringLiteral("%1 %2").arg(distroName, versionId)); + const QString distroNameVersion = QStringLiteral("%1 %2").arg(distroName, versionId); + ui->nameVersionLabel->setText(distroNameVersion); const auto dummyDistroDescriptionLabel = new QLabel(i18nc("@title:row", "Operating System:"), this); dummyDistroDescriptionLabel->hide(); labelsForClipboard << qMakePair(dummyDistroDescriptionLabel, ui->nameVersionLabel); + englishTextForClipboard += QStringLiteral("Operating System: %1\n").arg(distroNameVersion); const QString variant = cg.readEntry("Variant", QString()); if (variant.isEmpty()) { @@ -186,15 +194,18 @@ } else { ui->plasmaLabel->setText(plasma); labelsForClipboard << qMakePair(ui->plasma, ui->plasmaLabel); + englishTextForClipboard += QStringLiteral("KDE Plasma Version: %1\n").arg(plasma); } const QString frameworksVersion = KCoreAddons::versionString(); ui->frameworksLabel->setText(frameworksVersion); labelsForClipboard << qMakePair(ui->frameworksLabelKey, ui->frameworksLabel); + englishTextForClipboard += QStringLiteral("KDE Frameworks Version: %1\n").arg(frameworksVersion); const QString qversion = QString::fromLatin1(qVersion()); ui->qtLabel->setText(qversion); labelsForClipboard << qMakePair(ui->qt, ui->qtLabel); + englishTextForClipboard += QStringLiteral("Qt Version: %1\n").arg(qversion); } void Module::loadHardware() @@ -204,15 +215,18 @@ ui->kernel->hide(); ui->kernelLabel->hide(); } else { - ui->kernelLabel->setText(QString::fromLatin1(utsName.release)); + QString kernelVersion = QString::fromLatin1(utsName.release); + ui->kernelLabel->setText(kernelVersion); labelsForClipboard << qMakePair(ui->kernel, ui->kernelLabel); + englishTextForClipboard += QStringLiteral("Kernel Version: %1\n").arg(kernelVersion); } const int bits = QT_POINTER_SIZE == 8 ? 64 : 32; const QString bitsStr = QString::number(bits); ui->bitsLabel->setText(i18nc("@label %1 is the CPU bit width (e.g. 32 or 64)", "%1-bit", bitsStr)); labelsForClipboard << qMakePair(ui->bitsKey, ui->bitsLabel); + englishTextForClipboard += QStringLiteral("OS Type: %1-bit\n").arg(bitsStr); const QList list = Solid::Device::listFromType(Solid::DeviceInterface::Processor); ui->processor->setText(i18np("Processor:", "Processors:", list.count())); @@ -247,6 +261,7 @@ ui->processorLabel->setHidden(true); } else { labelsForClipboard << qMakePair(ui->processor, ui->processorLabel); + englishTextForClipboard += QStringLiteral("Processors: %1\n").arg(processorLabel); } const qlonglong totalRam = calculateTotalRam(); @@ -256,6 +271,7 @@ : i18nc("Unknown amount of RAM", "Unknown"); ui->memoryLabel->setText(memoryLabel); labelsForClipboard << qMakePair(ui->memory, ui->memoryLabel); + englishTextForClipboard += QStringLiteral("Memory: %1\n").arg(KFormat().formatByteSize(totalRam)); } void Module::copyToClipboard() @@ -274,6 +290,11 @@ QGuiApplication::clipboard()->setText(text); } +void Module::copyToClipboardInEnglish() +{ + QGuiApplication::clipboard()->setText(englishTextForClipboard); +} + QString Module::plasmaVersion() const { const QStringList &filePaths = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, diff --git a/Modules/about-distro/src/Module.ui b/Modules/about-distro/src/Module.ui --- a/Modules/about-distro/src/Module.ui +++ b/Modules/about-distro/src/Module.ui @@ -367,6 +367,20 @@ + + + Copy software and hardware information to clipboard in English + + + Copy to Clipboard in English + + + + .. + + + + Qt::Horizontal