From c876d3bbefe0dc00c27ca0c12d29da5874946962 Mon Sep 17 00:00:00 2001 From: Dominik Riebeling Date: Wed, 15 Dec 2021 21:04:28 +0100 Subject: rbutil: Merge rbutil with utils folder. rbutil uses several components from the utils folder, and can be considered part of utils too. Having it in a separate folder is an arbitrary split that doesn't help anymore these days, so merge them. This also allows other utils to easily use libtools.make without the need to navigate to a different folder. Change-Id: I3fc2f4de19e3e776553efb5dea5f779dfec0dc21 --- utils/rbutilqt/sysinfo.cpp | 95 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 utils/rbutilqt/sysinfo.cpp (limited to 'utils/rbutilqt/sysinfo.cpp') diff --git a/utils/rbutilqt/sysinfo.cpp b/utils/rbutilqt/sysinfo.cpp new file mode 100644 index 0000000000..7d05bb8c9a --- /dev/null +++ b/utils/rbutilqt/sysinfo.cpp @@ -0,0 +1,95 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * + * Copyright (C) 2007 by Dominik Riebeling + * + * All files in this archive are subject to the GNU General Public License. + * See the file COPYING in the source tree root for full license agreement. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ****************************************************************************/ + +#include +#include +#include "sysinfo.h" +#include "ui_sysinfofrm.h" +#include "system.h" +#include "utils.h" +#include "autodetection.h" + + +Sysinfo::Sysinfo(QWidget *parent) : QDialog(parent) +{ + ui.setupUi(this); + + updateSysinfo(); + connect(ui.buttonOk, &QAbstractButton::clicked, this, &Sysinfo::close); + connect(ui.buttonRefresh, &QAbstractButton::clicked, this, &Sysinfo::updateSysinfo); +} + +void Sysinfo::updateSysinfo(void) +{ + ui.textBrowser->setHtml(getInfo()); +} + +QString Sysinfo::getInfo(Sysinfo::InfoType type) +{ + QString info; + info += tr("OS
") + System::osVersionString() + "
"; + info += tr("Username
%1
").arg(System::userName()); +#if defined(Q_OS_WIN32) + info += tr("Permissions
%1
").arg(System::userPermissionsString()); +#endif + info += tr("Attached USB devices
"); + QMultiMap usbids = System::listUsbDevices(); + QList usbkeys = usbids.keys(); + for(int i = 0; i < usbkeys.size(); i++) { + info += tr("VID: %1 PID: %2, %3") + .arg((usbkeys.at(i)&0xffff0000)>>16, 4, 16, QChar('0')) + .arg(usbkeys.at(i)&0xffff, 4, 16, QChar('0')) + .arg(usbids.value(usbkeys.at(i))); + if(i + 1 < usbkeys.size()) + info += "
"; + } + info += "
"; + + info += "" + tr("Filesystem") + ""; + QStringList drives = Utils::mountpoints(); + info += ""; + info += ""; + for(int i = 0; i < drives.size(); i++) { + info += tr("") + .arg(QDir::toNativeSeparators(drives.at(i))) + .arg((double)Utils::filesystemFree(drives.at(i)) / (1<<30), 0, 'f', 2) + .arg((double)Utils::filesystemTotal(drives.at(i)) / (1<<30), 0, 'f', 2) + .arg(Utils::filesystemName(drives.at(i))) + .arg(Utils::filesystemType(drives.at(i))); + } + info += "
" + tr("Mountpoint") + "" + tr("Label") + + "" + tr("Free") + "" + tr("Total") + "" + + tr("Type") + "
%1%4%2 GiB%3 GiB%5
"; + info += "
"; + if(type == InfoText) { + info.replace(QRegExp("(<[^>]+>)+"),"\n"); + } + + return info; +} + + +void Sysinfo::changeEvent(QEvent *e) +{ + if(e->type() == QEvent::LanguageChange) { + ui.retranslateUi(this); + } else { + QWidget::changeEvent(e); + } +} + -- cgit v1.2.3