diff --git a/sources/machine_info.cpp b/sources/machine_info.cpp index 4578b0909..97063a5db 100644 --- a/sources/machine_info.cpp +++ b/sources/machine_info.cpp @@ -18,7 +18,6 @@ #include "machine_info.h" #include #include -#include #include #include #include @@ -31,6 +30,43 @@ Machine_info::Machine_info(QObject *parent) : QObject(parent) { init_get_Screen_info(); + init_get_cpu_info(); +} + +/** + @brief Machine_info::send_info_to_debug +*/ +void Machine_info::send_info_to_debug() +{ + qDebug()<<"test message generated"; + qInfo()<< tr("Compilation : ") + pc.built.version; + qInfo()<< "Built with Qt " + pc.built.QT + + " - Date : " + pc.built.date + + " : " + pc.built.time; + qInfo()<< "Run with Qt "+ QString(qVersion()) + + " using" + + QString(" %1 thread(s)").arg(pc.cpu.ThreadCount); + qInfo()<< "CPU : " + pc.cpu.info; + qInfo()<< pc.ram.Total; + qInfo()<< pc.ram.Available; + qInfo()<< "GPU : " + pc.gpu.info; + qInfo()<< "GPU RAM : " + pc.gpu.RAM; + + qInfo()<< "OS : " + pc.os.type + + " - " + pc.cpu.Architecture + + " - Version : "+pc.os.name + + " - Kernel : "+pc.os.kernel; + qInfo()<< "*** Qt screens ***"; + + for (int ii = 0; ii < pc.screen.count; ++ii) { + qInfo()<<"( " + + QString::number(ii + 1) + + " : " + + QString::number(pc.screen.width[ii]) + + " x " + + QString::number(pc.screen.height[ii]) + + " )"; + } } /** @@ -42,28 +78,29 @@ void Machine_info::init_get_Screen_info() const auto screens = qApp->screens(); for (int ii = 0; ii < screens.count(); ++ii) { + if( - Max_screen_width + pc.screen.Max_width < screens[ii]->geometry().width() * screens[ii]->devicePixelRatio() ) { - Max_screen_width = + pc.screen.Max_width = screens[ii]->geometry().width() * screens[ii]->devicePixelRatio(); } if( - Max_screen_height + pc.screen.Max_height < screens[ii]->geometry().height() * screens[ii]->devicePixelRatio() ) { - Max_screen_height = + pc.screen.Max_height = screens[ii]->geometry().height() * screens[ii]->devicePixelRatio(); @@ -72,70 +109,44 @@ void Machine_info::init_get_Screen_info() } /** - @brief Machine_info::i_max_screen_width - @return max screen width - */ -int32_t Machine_info::i_max_screen_width() -{ - return Max_screen_width; -} - -/** - @brief Machine_info::i_max_screen_height - @return max screen height + @brief Machine_info::init_get_cpu_info */ -int32_t Machine_info::i_max_screen_height() +void Machine_info::init_get_cpu_info() { - return Max_screen_height; -} - -/** - @brief Machine_info::compilation_info - @return compilation_info -*/ -QString Machine_info::compilation_info() -{ - QString compilation_info = "
" + tr("Compilation : "); #ifdef __GNUC__ #ifdef __APPLE_CC__ - compilation_info += " CLANG " + QString(__clang_version__ ); - compilation_info += "
Built with Qt " + QString(QT_VERSION_STR); - compilation_info += " - Date : " + QString(__DATE__); - compilation_info += " : " + QString(__TIME__); - compilation_info += "
Run with Qt "+ QString(qVersion()); - compilation_info += " using" + QString(" %1 thread(s)").arg( - QThread::idealThreadCount()); - QProcess macoscpuinfo; - macoscpuinfo.start("bash", - QStringList() - << "-c" - << "sysctl -n machdep.cpu.brand_string"); - macoscpuinfo.waitForFinished(); - QString macosOutput = macoscpuinfo.readAllStandardOutput(); - compilation_info += "
"" CPU : " - + QString(macosOutput.toLocal8Bit().constData()); - + init_get_cpu_info_macos(); #else - compilation_info += " GCC " + QString(__VERSION__); - compilation_info += "
Built with Qt " + QString(QT_VERSION_STR); - compilation_info += " - Date : " + QString(__DATE__); - compilation_info += " : " + QString(__TIME__); - compilation_info += "
Run with Qt "+ QString(qVersion()); - compilation_info += " using" - + QString(" %1 thread(s)").arg( - QThread::idealThreadCount()); + if (pc.os.type == "linux") + init_get_cpu_info_linux(); + if (pc.os.type == "winnt") + init_get_cpu_info_winnt(); +#endif +#endif + const auto screens = qApp->screens(); + pc.screen.count=screens.count(); + for (int ii = 0; ii < pc.screen.count; ++ii) { + pc.screen.width[ii]= + screens[ii]->geometry().width() + * screens[ii]->devicePixelRatio(); + pc.screen.height[ii]= + screens[ii]->geometry().height() + * screens[ii]->devicePixelRatio(); + } +} - QString OSName = QSysInfo::kernelType(); - if (OSName == "linux") - { +/** + @brief Machine_info::init_get_cpu_info_linux +*/ +void Machine_info::init_get_cpu_info_linux() +{ QProcess linuxcpuinfo; linuxcpuinfo.start("bash", QStringList() << "-c" << "cat /proc/cpuinfo |grep 'model name' | uniq"); linuxcpuinfo.waitForFinished(); QString linuxOutput = linuxcpuinfo.readAllStandardOutput(); - compilation_info += "
"" CPU : " - + QString(linuxOutput.toLocal8Bit().constData()); + pc.cpu.info=QString(linuxOutput.toLocal8Bit().constData()); QProcess p; p.start("awk", QStringList() @@ -143,8 +154,8 @@ QString Machine_info::compilation_info() << "/proc/meminfo"); p.waitForFinished(); QString memory = p.readAllStandardOutput(); - compilation_info += "
" - + QString("RAM Total : %1 MB").arg( + //compilation_info += "
" + pc.ram.Total=QString("RAM Total : %1 MB").arg( memory.toLong() / 1024); p.close(); @@ -155,8 +166,7 @@ QString Machine_info::compilation_info() << "/proc/meminfo"); qp.waitForFinished(); QString AvailableMemory = qp.readAllStandardOutput(); - compilation_info += "
" - + QString("RAM Available : %1 MB").arg( + pc.ram.Available=QString("RAM Available : %1 MB").arg( AvailableMemory.toLong() / 1024); qp.close(); @@ -167,81 +177,108 @@ QString Machine_info::compilation_info() << "lspci | grep VGA | cut -d : -f 3"); linuxgpuinfo.waitForFinished(); QString linuxGPUOutput = linuxgpuinfo.readAllStandardOutput(); - compilation_info += "
"" GPU : " - + QString(linuxGPUOutput.toLocal8Bit().constData()); + pc.gpu.info=QString(linuxGPUOutput.toLocal8Bit().constData()); + pc.gpu.RAM="@ToDo"; +} +/** + @brief Machine_info::init_get_cpu_info_winnt +*/ +void Machine_info::init_get_cpu_info_winnt() +{ + QProcess wincpuinfo; + wincpuinfo.start("wmic", + QStringList() << "cpu" << "get" << "name"); + wincpuinfo.waitForFinished(); + QString windows_output = wincpuinfo.readAllStandardOutput().toUpper(); + pc.cpu.info=QString(windows_output.toLocal8Bit().constData()); - } - - if(QSysInfo::kernelType() == "winnt") - { - QProcess wincpuinfo; - { - - wincpuinfo.start("wmic", - QStringList() << "cpu" << "get" << "name"); - wincpuinfo.waitForFinished(); - QString windows_output = wincpuinfo.readAllStandardOutput().toUpper(); - compilation_info += "
"" CPU : " - + QString(windows_output.toLocal8Bit().constData()); - - QProcess wingpuinfo; - { - - wingpuinfo.start("wmic", - QStringList() - << "PATH" - << "Win32_videocontroller" - << "get" - << "VideoProcessor "); - wingpuinfo.waitForFinished(); - QString WinGPUOutput = wingpuinfo.readAllStandardOutput(); - compilation_info += "
" "GPU : " - + QString(WinGPUOutput.toLocal8Bit().constData()); - } - - QProcess wingpuraminfo; - { - - wingpuraminfo.start("wmic", - QStringList() - << "PATH" - << "Win32_videocontroller" - << "get" - << "AdapterRAM "); - wingpuraminfo.waitForFinished(); - QString WinGPURAMOutput = wingpuraminfo.readAllStandardOutput(); - compilation_info += "
" "GPU RAM : " - + QString(WinGPURAMOutput.toLocal8Bit().constData()); - } - } - } + QProcess wingpuinfo; + wingpuinfo.start("wmic", + QStringList() + << "PATH" + << "Win32_videocontroller" + << "get" + << "VideoProcessor "); + wingpuinfo.waitForFinished(); + QString WinGPUOutput = wingpuinfo.readAllStandardOutput(); + pc.gpu.info=QString(WinGPUOutput.toLocal8Bit().constData()); -#endif -#endif + QProcess wingpuraminfo; + wingpuraminfo.start("wmic", + QStringList() + << "PATH" + << "Win32_videocontroller" + << "get" + << "AdapterRAM "); + wingpuraminfo.waitForFinished(); + QString WinGPURAMOutput = wingpuraminfo.readAllStandardOutput(); + pc.gpu.RAM=QString(WinGPURAMOutput.toLocal8Bit().constData()); +} - compilation_info += "
" " OS : " - + QString(QSysInfo::kernelType()); - compilation_info += " - " - + QString(QSysInfo::currentCpuArchitecture()); - compilation_info += " - Version : " - + QString(QSysInfo::prettyProductName()); - compilation_info += "
" " - Kernel : " - + QString(QSysInfo::kernelVersion()); +void Machine_info::init_get_cpu_info_macos() +{ + QProcess macoscpuinfo; + macoscpuinfo.start("bash", + QStringList() + << "-c" + << "sysctl -n machdep.cpu.brand_string"); + macoscpuinfo.waitForFinished(); + QString macosOutput = macoscpuinfo.readAllStandardOutput(); + pc.cpu.info=QString(macosOutput.toLocal8Bit().constData()); +} + +/** + @brief Machine_info::i_max_screen_width + @return max screen width + */ +int32_t Machine_info::i_max_screen_width() +{ + return pc.screen.Max_width; +} + +/** + @brief Machine_info::i_max_screen_height + @return max screen height +*/ +int32_t Machine_info::i_max_screen_height() +{ + return pc.screen.Max_height; +} + +/** + @brief Machine_info::compilation_info + @return compilation_info +*/ +QString Machine_info::compilation_info() +{ + QString compilation_info = "
" + tr("Compilation : "); + compilation_info +=pc.built.version; + compilation_info += "
Built with Qt " + pc.built.QT; + compilation_info += " - Date : " + pc.built.date; + compilation_info += " : " + pc.built.time; + compilation_info += "
Run with Qt "+ QString(qVersion()); + compilation_info += " using" + + QString(" %1 thread(s)").arg(pc.cpu.ThreadCount); + compilation_info += "
CPU : " + pc.cpu.info; + compilation_info += "
" + pc.ram.Total; + compilation_info += "
" + pc.ram.Available; + compilation_info += "
GPU : " + pc.gpu.info; + compilation_info += "
GPU RAM : " + pc.gpu.RAM; + + compilation_info += "
OS : " + pc.os.type; + compilation_info += " - " + pc.cpu.Architecture; + compilation_info += " - Version : "+pc.os.name; + compilation_info += "
- Kernel : "+pc.os.kernel; compilation_info += "
*** Qt screens ***
"; - const auto screens = qApp->screens(); - for (int ii = 0; ii < screens.count(); ++ii) { + + for (int ii = 0; ii < pc.screen.count; ++ii) { compilation_info += "
( " + QString::number(ii + 1) + " : " - + QString::number( - screens[ii]->geometry().width() - * screens[ii]->devicePixelRatio()) + + QString::number(pc.screen.width[ii]) + " x " - + QString::number( - screens[ii]->geometry().height() - * screens[ii]->devicePixelRatio()) + + QString::number(pc.screen.height[ii]) + " )
"; } - qDebug()< +#include /** @brief The Machine_info class @@ -32,13 +33,65 @@ public: int32_t i_max_screen_width(); int32_t i_max_screen_height(); QString compilation_info(); + void send_info_to_debug(); signals: private: void init_get_Screen_info(); - int32_t Max_screen_width; - int32_t Max_screen_height; + void init_get_cpu_info(); + void init_get_cpu_info_linux(); + void init_get_cpu_info_winnt(); + void init_get_cpu_info_macos(); + struct Pc + { + struct Screen + { + int32_t count; + int32_t width[10]; + int32_t height[10]; + int32_t Max_width; + int32_t Max_height; + }screen; + struct Built + { + QString version= + #ifdef __GNUC__ + #ifdef __APPLE_CC__ + "CLANG " + QString(__clang_version__); + #else + "GCC " + QString(__VERSION__); +#endif +#endif + QString QT=QString(QT_VERSION_STR); + QString date=QString(__DATE__); + QString time=QString(__TIME__); + }built; + struct CPU + { + QString info; + QString Architecture=QString( + QSysInfo::currentCpuArchitecture()); + int32_t ThreadCount=QThread::idealThreadCount(); + }cpu; + struct RAM + { + QString Total; + QString Available; + }ram; + struct GPU + { + QString info; + QString RAM; + + }gpu; + struct OS + { + QString type=QString(QSysInfo::kernelType()); + QString name=QString(QSysInfo::prettyProductName()); + QString kernel=QString(QSysInfo::kernelVersion()); + }os; + }pc; }; diff --git a/sources/main.cpp b/sources/main.cpp index 78f08cebf..a94bad389 100644 --- a/sources/main.cpp +++ b/sources/main.cpp @@ -19,6 +19,7 @@ #include "singleapplication.h" #include "qet.h" #include "macosxopenevent.h" +#include "machine_info.h" #include /** @@ -50,12 +51,9 @@ void myMessageOutput(QtMsgType type, break; case QtInfoMsg: fprintf(stderr, - "%s Info: %s (%s:%u, %s)\n", + "%s Info: %s \n", dbs.constData(), - localMsg.constData(), - file, - context.line, - function); + localMsg.constData()); break; case QtWarningMsg: fprintf(stderr, @@ -110,19 +108,16 @@ int main(int argc, char **argv) QCoreApplication::setOrganizationName("QElectroTech"); QCoreApplication::setOrganizationDomain("qelectrotech.org"); QCoreApplication::setApplicationName("QElectroTech"); - qDebug()<<"test message generated"; - qInfo()<<"OS:" - + QString(QSysInfo::kernelType()) - + "-" - + QString(QSysInfo::currentCpuArchitecture()) - + " Version:" - + QString(QSysInfo::prettyProductName()) - + " Kernel:" - + QString(QSysInfo::kernelVersion()); //Creation and execution of the application //HighDPI QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); SingleApplication app(argc, argv, true); + + { + Machine_info *my_ma =new Machine_info(); + my_ma->send_info_to_debug(); + delete my_ma; + } #ifdef Q_OS_MACOS //Handle the opening of QET when user double click on a .qet .elmt .tbt file //or drop these same files to the QET icon of the dock