55 #include <common/glew_wrappers.hh>
71 #include <sys/types.h>
72 #include <sys/sysctl.h>
77 #define GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX 0x9048
78 #define GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX 0x9049
88 if ( OpenFlipper::Options::nogui() )
98 QTextEdit* tmp =
new QTextEdit();
99 tmp->insertHtml( it.value() );
109 QFont standardFont =
aboutWidget_->OpenFlipperAbout->currentFont();
110 QFont boldFont = standardFont;
111 boldFont.setBold(
true);
113 aboutWidget_->OpenFlipperAbout->setCurrentFont(boldFont);
114 aboutWidget_->OpenFlipperAbout->append(tr(
"%1 Core Version: %2",
"PRODUCT_NAME Core Version:").arg(
TOSTRING(PRODUCT_NAME)).arg(OpenFlipper::Options::coreVersion()) ) ;
115 aboutWidget_->OpenFlipperAbout->setCurrentFont(standardFont);
121 aboutWidget_->OpenFlipperAbout->setCurrentFont(boldFont);
123 aboutWidget_->OpenFlipperAbout->setCurrentFont(standardFont);
126 QDir tempDir = QDir(OpenFlipper::Options::applicationDir());
127 #ifdef OPENFLIPPER_DATADIR
128 tempDir.cd(OPENFLIPPER_DATADIR);
130 aboutWidget_->OpenFlipperAbout->append(
"Data:\t " + tempDir.absolutePath() );
131 aboutWidget_->OpenFlipperAbout->append(
"Shaders:\t " + OpenFlipper::Options::shaderDirStr() );
132 aboutWidget_->OpenFlipperAbout->append(
"Textures:\t " + OpenFlipper::Options::textureDirStr() );
133 aboutWidget_->OpenFlipperAbout->append(
"Scripts:\t " + OpenFlipper::Options::scriptDirStr() );
134 aboutWidget_->OpenFlipperAbout->append(
"Icons:\t " + OpenFlipper::Options::iconDirStr() );
135 aboutWidget_->OpenFlipperAbout->append(
"Fonts:\t" + OpenFlipper::Options::fontsDirStr() );
136 aboutWidget_->OpenFlipperAbout->append(
"Help:\t" + OpenFlipper::Options::helpDirStr() );
143 aboutWidget_->OpenFlipperAbout->setCurrentFont(boldFont);
144 aboutWidget_->OpenFlipperAbout->append(tr(
"%1 configuration files:").arg(
TOSTRING(PRODUCT_NAME)));
145 aboutWidget_->OpenFlipperAbout->setCurrentFont(standardFont);
147 aboutWidget_->OpenFlipperAbout->append(tr(
"ConfigDir:\t\t\t") + OpenFlipper::Options::configDirStr() );
148 aboutWidget_->OpenFlipperAbout->append(tr(
"Window states:\t\t") + OpenFlipper::Options::configDirStr() + OpenFlipper::Options::dirSeparator() +
"WindowStates.dat");
151 aboutWidget_->OpenFlipperAbout->append(tr(
"Additional option files:"));
152 for (
int i = 0 ; i < OpenFlipper::Options::optionFiles().size() ; ++i)
153 aboutWidget_->OpenFlipperAbout->append(OpenFlipper::Options::optionFiles()[i]);
162 aboutWidget_->OpenFlipperAbout->setCurrentFont(boldFont);
163 aboutWidget_->OpenFlipperAbout->append(tr(
"Memory Information:"));
164 aboutWidget_->OpenFlipperAbout->setCurrentFont(standardFont);
172 ms.dwLength =
sizeof (ms);
175 GlobalMemoryStatusEx(&ms);
178 aboutWidget_->OpenFlipperAbout->append(tr(
"Physical Memory:\t")+ QString::number(ms.ullAvailPhys/1024/1024) +
"MB/"+
179 QString::number(ms.ullTotalPhys/1024/1024) +
"MB free ("+
180 QString::number(ms.dwMemoryLoad) +
"%)");
181 aboutWidget_->OpenFlipperAbout->append(tr(
"Pagefile Memory:\t")+ QString::number(ms.ullAvailPageFile/1024/1024) +
"MB/"
182 + QString::number(ms.ullTotalPageFile/1024/1024) +
"MB free");
185 #elif defined ARCH_DARWIN
187 aboutWidget_->OpenFlipperAbout->append(tr(
"Not available for this platform (MacOS)"));
191 unsigned long memory = 0;
193 struct mallinfo info;
197 memory += info.hblkhd;
200 memory += info.uordblks;
202 double mmapAllocated = double(info.hblkhd ) / 1024 / 1024;
203 double sbrkAllocated = double(info.uordblks) / 1024 / 1024;
204 double totalAllocated = double(memory) / 1024 / 1024;
206 double pageSize = double(getpagesize()) /1024 ;
207 double availablePages = double( sysconf (_SC_AVPHYS_PAGES) );
208 double freeMem = availablePages * pageSize / 1024;
210 aboutWidget_->OpenFlipperAbout->append(tr(
"Total Memory allocated:\t ") + QString::number(totalAllocated,
'f' ,2 ) + tr(
"MB ")
211 + tr(
"( mmap: ") + QString::number(mmapAllocated ,
'f' ,2 ) + tr(
"MB")
212 + tr(
", sbrk: ") + QString::number(sbrkAllocated ,
'f' ,2 ) + tr(
"MB )") );
214 aboutWidget_->OpenFlipperAbout->append(tr(
"Free Memory:\t\t ") + QString::number(freeMem,
'f' ,2 ) + tr(
"MB ")
215 + tr(
"(") + QString::number(availablePages,
'f' ,0 ) + tr(
" pages of ")
216 + QString::number(pageSize,
'f' ,2 ) + tr(
"KB size)"));
224 aboutWidget_->OpenFlipperAbout->setCurrentFont(boldFont);
225 aboutWidget_->OpenFlipperAbout->append(tr(
"CPU Information:"));
226 aboutWidget_->OpenFlipperAbout->setCurrentFont(standardFont);
230 QSettings registryCPU(
"HKEY_LOCAL_MACHINE\\HARDWARE\\DESCRIPTION\\System\\CentralProcessor", QSettings::NativeFormat);
232 QStringList cpus = registryCPU.childGroups();
233 if ( cpus.size() != 0 ) {
235 aboutWidget_->OpenFlipperAbout->append(tr(
"CPU vendor:\t\t ") +
236 registryCPU.value( cpus[0]+
"/VendorIdentifier",
"Unknown" ).toString() );
237 aboutWidget_->OpenFlipperAbout->append(tr(
"CPU model:\t\t ") +
238 registryCPU.value( cpus[0]+
"/ProcessorNameString",
"Unknown" ).toString() );
239 aboutWidget_->OpenFlipperAbout->append(tr(
"CPU identifier:\t\t ") +
240 registryCPU.value( cpus[0]+
"/Identifier",
"Unknown" ).toString() );
241 aboutWidget_->OpenFlipperAbout->append(tr(
"CPU Speed:\t\t ") +
242 registryCPU.value( cpus[0]+
"/~MHz",
"Unknown" ).toString()+
" MHz" );
244 aboutWidget_->OpenFlipperAbout->append(
"CPU Cores:\t\t " + QString::number(cpus.size()));
247 aboutWidget_->OpenFlipperAbout->append(tr(
"Unable to retrieve CPU information"));
250 #elif defined ARCH_DARWIN
257 sysctlbyname(
"machdep.cpu.brand_string", NULL, &lenCPU, NULL, 0);
260 pCPU = (
char * )malloc(lenCPU);
263 sysctlbyname(
"machdep.cpu.brand_string", pCPU, &lenCPU, NULL, 0);
266 aboutWidget_->OpenFlipperAbout->append(tr(
"CPU Brand:\t\t ") + QString(pCPU) );
271 int physicalCPUS = 0;
274 lenCPU =
sizeof(int);
275 sysctlbyname(
"hw.physicalcpu", &physicalCPUS, &lenCPU , NULL, 0);
278 aboutWidget_->OpenFlipperAbout->append(tr(
"Physical Cores:\t\t ") + QString::number(physicalCPUS) );
283 lenCPU =
sizeof(int);
284 sysctlbyname(
"hw.logicalcpu", &logicalCPUS, &lenCPU, NULL, 0);
287 aboutWidget_->OpenFlipperAbout->append(tr(
"LogicalCores:\t\t ") + QString::number(logicalCPUS) );
290 QFile cpuinfo(
"/proc/cpuinfo");
291 if (! cpuinfo.exists() )
292 aboutWidget_->OpenFlipperAbout->append(tr(
"Unable to retrieve CPU information"));
295 cpuinfo.open(QFile::ReadOnly);
296 QTextStream stream(&cpuinfo);
297 QStringList splitted = stream.readAll().split(
"\n",QString::SkipEmptyParts);
299 int position = splitted.indexOf ( QRegExp(
"^vendor_id.*") );
300 if ( position != -1 ){
301 QString cpuVendor = splitted[position].section(
':', -1).simplified();
302 aboutWidget_->OpenFlipperAbout->append(tr(
"CPU vendor:\t\t ") + cpuVendor );
304 aboutWidget_->OpenFlipperAbout->append(tr(
"CPU vendor:\t\t vendor specification not found"));
307 position = splitted.indexOf ( QRegExp(
"^model name.*") );
308 if ( position != -1 ){
309 QString cpuModel = splitted[position].section(
':', -1).simplified();
310 aboutWidget_->OpenFlipperAbout->append(tr(
"CPU model:\t\t ") + cpuModel );
312 aboutWidget_->OpenFlipperAbout->append(tr(
"CPU model:\t\t Model specification not found"));
315 position = splitted.indexOf ( QRegExp(
"^cpu cores.*") );
316 if ( position != -1 ){
317 QString cpuCoresPhysical = splitted[position].section(
':', -1).simplified();
318 aboutWidget_->OpenFlipperAbout->append(tr(
"Physical CPU cores:\t\t ") + cpuCoresPhysical );
320 aboutWidget_->OpenFlipperAbout->append(tr(
"Physical CPU cores:\t\t CPU Core specification not found"));
323 position = splitted.indexOf ( QRegExp(
"^siblings.*") );
324 if ( position != -1 ){
325 QString cpuCoresLogical = splitted[position].section(
':', -1).simplified();
326 aboutWidget_->OpenFlipperAbout->append(tr(
"Logical CPU cores:\t\t ") + cpuCoresLogical );
328 aboutWidget_->OpenFlipperAbout->append(tr(
"Logical CPU cores:\t\t CPU Core specification not found"));
331 position = splitted.indexOf ( QRegExp(
"^flags.*") );
332 if ( position != -1 ){
333 QString cpuFlags = splitted[position].section(
':', -1).simplified();
334 aboutWidget_->OpenFlipperAbout->append( tr(
"CPU capabilities:") );
337 aboutWidget_->OpenFlipperAbout->append(tr(
"CPU capabilities:\t\t CPU flag specification not found"));
340 #if Q_BYTE_ORDER == Q_BIG_ENDIAN
341 aboutWidget_->OpenFlipperAbout->append(tr(
"System is Big Endian"));
344 #if Q_BYTE_ORDER == Q_LITTLE_ENDIAN
345 aboutWidget_->OpenFlipperAbout->append(tr(
"System is Little Endian"));
356 aboutWidget_->OpenFlipperAbout->setCurrentFont(boldFont);
357 aboutWidget_->OpenFlipperAbout->append(tr(
"Operating System Info:"));
358 aboutWidget_->OpenFlipperAbout->setCurrentFont(standardFont);
361 QSettings registryOS(
"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion", QSettings::NativeFormat);
362 aboutWidget_->OpenFlipperAbout->append(tr(
"Product Name:\t\t ") +
363 registryOS.value(
"ProductName",
"Unknown" ).toString() );
364 aboutWidget_->OpenFlipperAbout->append(tr(
"Current Version:\t\t ") +
365 registryOS.value(
"CurrentVersion",
"Unknown" ).toString() );
366 #elif defined ARCH_DARWIN
373 mib[1] = KERN_VERSION;
375 sysctl(mib, 2, NULL, &len, NULL, 0);
376 p = (
char * )malloc(len);
377 sysctl(mib, 2, p, &len, NULL, 0);
379 aboutWidget_->OpenFlipperAbout->append(tr(
"OS Version:\t\t ") + QString(p) );
384 QFile versionInfo(
"/proc/version");
385 if (! versionInfo.exists() )
386 aboutWidget_->OpenFlipperAbout->append(tr(
"Unable to retrieve Kernel information"));
388 versionInfo.open(QFile::ReadOnly);
389 QTextStream versionStream(&versionInfo);
390 aboutWidget_->OpenFlipperAbout->append(tr(
"Kernel Version:\t\t ") + versionStream.readAll().simplified());
392 QString program =
"/usr/bin/lsb_release";
395 if ( lsb.exists() ) {
396 QStringList arguments;
400 myProcess.start(program, arguments);
402 if ( myProcess.waitForFinished ( 4000 ) ) {
403 QStringList outputLSB = QString(myProcess.readAllStandardOutput()).split(
'\n');
406 int position = outputLSB.indexOf ( QRegExp(
"^Distributor ID.*") );
407 if ( position != -1 ){
408 QString distributorID = outputLSB[position].section(
':', -1).simplified();
409 aboutWidget_->OpenFlipperAbout->append(tr(
"Distributor ID:\t\t ") + distributorID );
411 aboutWidget_->OpenFlipperAbout->append(tr(
"Distributor ID:\t\t Unknown"));
414 position = outputLSB.indexOf ( QRegExp(
"^Description.*") );
415 if ( position != -1 ){
416 QString description = outputLSB[position].section(
':', -1).simplified();
417 aboutWidget_->OpenFlipperAbout->append(tr(
"Description:\t\t ") + description );
419 aboutWidget_->OpenFlipperAbout->append(tr(
"Description:\t\t Unknown"));
422 position = outputLSB.indexOf ( QRegExp(
"^Release.*") );
423 if ( position != -1 ){
424 QString release = outputLSB[position].section(
':', -1).simplified();
425 aboutWidget_->OpenFlipperAbout->append(tr(
"Release number:\t\t ") + release );
427 aboutWidget_->OpenFlipperAbout->append(tr(
"Release number:\t\t Unknown"));
430 position = outputLSB.indexOf ( QRegExp(
"^Codename.*") );
431 if ( position != -1 ){
432 QString codename = outputLSB[position].section(
':', -1).simplified();
433 aboutWidget_->OpenFlipperAbout->append(tr(
"Codename:\t\t ") + codename );
435 aboutWidget_->OpenFlipperAbout->append(tr(
"Codename:\t\t Unknown"));
439 aboutWidget_->OpenFlipperAbout->append(tr(
"Unable to get LSB info"));
443 aboutWidget_->OpenFlipperAbout->append(tr(
"No additional information. Unable to get info via LSB."));
449 QString systemPathVariable = getenv(
"PATH");
450 aboutWidget_->OpenFlipperAbout->append(tr(
"System Path:\n ") + systemPathVariable);
453 QString systemLibraryPathVariable = getenv(
"LD_LIBRARY_PATH");
454 aboutWidget_->OpenFlipperAbout->append(tr(
"LD_LIBRARY_PATH:\n ") + systemLibraryPathVariable);
463 aboutWidget_->OpenFlipperAbout->setCurrentFont(boldFont);
464 aboutWidget_->OpenFlipperAbout->append(tr(
"OpenGL Specific Info:"));
465 aboutWidget_->OpenFlipperAbout->setCurrentFont(standardFont);
467 QString vendor = QString((
const char*)glGetString(GL_VENDOR));
468 aboutWidget_->OpenFlipperAbout->append(tr(
"Qt reports Vendor:\t\t") + vendor);
469 QString renderer = QString((
const char*)glGetString(GL_RENDERER));
470 aboutWidget_->OpenFlipperAbout->append(tr(
"Qt reports Renderer:\t\t") + renderer);
472 QGLFormat::OpenGLVersionFlags flags = QGLFormat::openGLVersionFlags();
474 QString openGLQtVersion = tr(
"Qt reports Version:\t\t");
476 if ( flags.testFlag(QGLFormat::OpenGL_Version_4_0) )
477 openGLQtVersion += tr(
"4.0 or higher") ;
478 else if (flags.testFlag(QGLFormat::OpenGL_Version_3_3))
479 openGLQtVersion += tr(
"3.3") ;
480 else if (flags.testFlag(QGLFormat::OpenGL_Version_3_2))
481 openGLQtVersion += tr(
"3.2") ;
482 else if (flags.testFlag(QGLFormat::OpenGL_Version_3_1))
483 openGLQtVersion += tr(
"3.1") ;
484 else if (flags.testFlag(QGLFormat::OpenGL_Version_3_0))
485 openGLQtVersion += tr(
"3.0") ;
486 else if (flags.testFlag(QGLFormat::OpenGL_Version_2_1))
487 openGLQtVersion += tr(
"2.1" );
488 else if (flags.testFlag(QGLFormat::OpenGL_Version_2_0))
489 openGLQtVersion += tr(
"2.0" );
490 else if (flags.testFlag(QGLFormat::OpenGL_Version_1_5))
491 openGLQtVersion += tr(
"1.5" );
492 else if (flags.testFlag(QGLFormat::OpenGL_Version_1_4))
493 openGLQtVersion += tr(
"1.4" );
494 else if (flags.testFlag(QGLFormat::OpenGL_Version_1_3))
495 openGLQtVersion += tr(
"1.3" );
496 else if (flags.testFlag(QGLFormat::OpenGL_Version_1_2))
497 openGLQtVersion += tr(
"1.2" );
498 else if (flags.testFlag(QGLFormat::OpenGL_Version_1_1))
499 openGLQtVersion += tr(
"1.1" );
501 openGLQtVersion += tr(
"Version:\tUNKNOWN!" );
503 aboutWidget_->OpenFlipperAbout->append(openGLQtVersion);
507 const QGLContext* context = QGLContext::currentContext();
509 QString openGLprofile = tr(
"Qt reports the OpenGL profile:\t");
510 QGLFormat::OpenGLContextProfile profile = context->format().profile();
511 if (profile == QGLFormat::NoProfile)
512 openGLprofile += tr(
"no profile");
513 else if (profile == QGLFormat::CoreProfile)
514 openGLprofile += tr(
"Core profile");
515 else if (profile == QGLFormat::CompatibilityProfile)
516 openGLprofile += tr(
"Compatibility profile");
518 openGLprofile += tr(
"unknown profile");
525 QString openGLVendor = tr(
"GL reports Vendor:\t\t");
526 openGLVendor += QString((
const char*)glGetString(GL_VENDOR));
529 QString openGLRenderer = tr(
"GL reports Renderer:\t\t");
530 openGLRenderer += QString((
const char*)glGetString(GL_RENDERER));
533 QString openGLGLVersion = tr(
"GL reports Version:\t\t");
534 openGLGLVersion += QString((
const char*)glGetString(GL_VERSION));
535 aboutWidget_->OpenFlipperAbout->append(openGLGLVersion);
537 QString openGLShadingLanguageVersion = tr(
"GL reports Shading Language Version:\t");
538 openGLShadingLanguageVersion += QString((
const char*)glGetString(GL_SHADING_LANGUAGE_VERSION));
539 aboutWidget_->OpenFlipperAbout->append(openGLShadingLanguageVersion);
546 aboutWidget_->OpenFlipperAbout->append(tr(
"Supported Extensions:"));
547 QString glExtensions = QString((
const char*)glGetString(GL_EXTENSIONS));
555 aboutWidget_->OpenFlipperAbout->setCurrentFont(boldFont);
556 aboutWidget_->OpenFlipperAbout->append(tr(
"OpenGL Values:"));
557 aboutWidget_->OpenFlipperAbout->setCurrentFont(standardFont);
559 glGetIntegerv(GL_MAX_VIEWPORT_DIMS, &getBuffer[0] );
560 aboutWidget_->OpenFlipperAbout->append(tr(
"Maximal Viewport size(GL_MAX_VIEWPORT_DIMS):\t\t\t\t ") + QString::number(getBuffer[0]) +
"x" + QString::number(getBuffer[1]) );
562 glGetIntegerv(GL_MAX_TEXTURE_IMAGE_UNITS, &getBuffer[0] );
563 aboutWidget_->OpenFlipperAbout->append(tr(
"Maximum supported texture image units(GL_MAX_TEXTURE_IMAGE_UNITS):\t") + QString::number(getBuffer[0]) );
566 if ( glExtensions.contains(
"GL_NVX_gpu_memory_info") ) {
568 GLint total_mem_kb = 0;
569 glGetIntegerv(GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX, &total_mem_kb);
571 aboutWidget_->OpenFlipperAbout->append(tr(
"GPU Memory (Total available):\t\t") + QString::number(total_mem_kb /1024) +
" MB" );
574 GLint cur_avail_mem_kb = 0;
575 glGetIntegerv(GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX, &cur_avail_mem_kb);
577 aboutWidget_->OpenFlipperAbout->append(tr(
"GPU Memory (Currently available):\t") + QString::number(cur_avail_mem_kb / 1024) +
" MB" );
585 aboutWidget_->OpenFlipperAbout->setCurrentFont(boldFont);
586 aboutWidget_->OpenFlipperAbout->append(tr(
"Glu Specific Info:"));
587 aboutWidget_->OpenFlipperAbout->setCurrentFont(standardFont);
589 QString gluVersion = QString((
const char *)gluGetString(GLU_VERSION));
590 aboutWidget_->OpenFlipperAbout->append(tr(
"GLU Version:\t") + gluVersion);
592 aboutWidget_->OpenFlipperAbout->append(tr(
"Supported GLU Extensions:"));
593 QString gluExtensions = QString((
const char*)gluGetString(GLU_EXTENSIONS));
597 aboutWidget_->OpenFlipperAbout->moveCursor(QTextCursor::Start);
604 aboutWidget_->OpenFlipperAbout->setCurrentFont(boldFont);
605 aboutWidget_->OpenFlipperAbout->append(tr(
"GLEW Specific Info:"));
606 aboutWidget_->OpenFlipperAbout->setCurrentFont(standardFont);
608 QString glewVersion = QString(getGlewVersion());
609 aboutWidget_->OpenFlipperAbout->append(tr(
"GLEW Version:\t") + glewVersion);
617 aboutWidget_->OpenFlipperAbout->setCurrentFont(boldFont);
618 aboutWidget_->OpenFlipperAbout->append(tr(
"Qt Version Info:"));
619 aboutWidget_->OpenFlipperAbout->setCurrentFont(standardFont);
620 aboutWidget_->OpenFlipperAbout->append(tr(
"Currently used Version:\t") + qVersion() );
621 aboutWidget_->OpenFlipperAbout->append(tr(
"Link time Version:\t\t") + QT_VERSION_STR );
623 QList<QByteArray> imageFormats = QImageReader::supportedImageFormats();
624 QString formatsString =
"";
625 for (
int i = 0 ; i < imageFormats.size() ; ++i) {
626 formatsString += imageFormats[i] +
" ";
628 if ( (i != 0) && (i % 15) == 0 )
629 formatsString+=
"\n";
632 aboutWidget_->OpenFlipperAbout->append(tr(
"Supported image read formats:") );
637 aboutWidget_->OpenFlipperAbout->append(tr(
"Currently used Library paths:") );
638 QStringList libPaths = QCoreApplication::libraryPaths();
639 for(
int i = 0 ; i < libPaths.size() ; ++i)
640 aboutWidget_->OpenFlipperAbout->append(
" " + libPaths[i]);
663 aboutWidget_->OpenFlipperAbout->setCurrentFont(boldFont);
664 aboutWidget_->OpenFlipperAbout->append(tr(
"Compiler Info:"));
665 aboutWidget_->OpenFlipperAbout->setCurrentFont(standardFont);
666 aboutWidget_->OpenFlipperAbout->append( OpenFlipper::Options::compilerInfo() );
672 definitions +=
"WIN32 ";
676 definitions +=
"WIN64 ";
680 definitions +=
"DLL ";
685 definitions +=
"APPLE ";
689 definitions +=
"ARCH_DARWIN ";
692 #ifdef INCLUDE_TEMPLATES
693 definitions +=
"INCLUDE_TEMPLATES ";
697 definitions +=
"DEBUG ";
701 definitions +=
"NDEBUG ";
705 definitions +=
"QT_NO_OPENGL ";
709 definitions +=
"OPENMP ";
713 definitions +=
"USE_OPENMP ";
716 aboutWidget_->OpenFlipperAbout->append( tr(
"Definitions (incomplete):\n") + definitions );
722 aboutWidget_->OpenFlipperAbout->setCurrentFont(boldFont);
723 aboutWidget_->OpenFlipperAbout->append(tr(
"Registered data types:"));
724 aboutWidget_->OpenFlipperAbout->setCurrentFont(standardFont);
732 for ( uint i = 0 ; i <
typeCount() - 2 ; ++i) {
733 types +=
typeName( currentType ) +
"\t\t typeId: " + QString::number(currentType.
value()) +
"\n";
745 aboutWidget_->OpenFlipperAbout->setCurrentFont(boldFont);
746 aboutWidget_->OpenFlipperAbout->append(tr(
"Registered File Plugins:"));
747 aboutWidget_->OpenFlipperAbout->setCurrentFont(standardFont);
749 for ( uint i = 0 ; i < supportedTypes().size() ; ++i ) {
750 aboutWidget_->OpenFlipperAbout->setCurrentFont(boldFont);
751 aboutWidget_->OpenFlipperAbout->append(
"\t" + supportedTypes()[i].name );
752 aboutWidget_->OpenFlipperAbout->setCurrentFont(standardFont);
753 aboutWidget_->OpenFlipperAbout->append(
"\t\t Load: " + supportedTypes()[i].loadFilters );
754 aboutWidget_->OpenFlipperAbout->append(
"\t\t Save: " + supportedTypes()[i].saveFilters );
DLLEXPORT QString typeName(DataType _id)
Get the name of a type with given id.
DLLEXPORT OpenFlipperQSettings & OpenFlipperSettings()
QSettings object containing all program settings of OpenFlipper.
#define TOSTRING(x)
QSettings object containing all program settings of OpenFlipper.
void addAboutInfo(QString _text, QString _tabName)
Adds an entry to the about dialog.
QMap< QString, QString > additionalAboutTabs_
Additional tab information, that could be provided by plugins.
DLLEXPORT size_t typeCount()
Get the number of registered types.
unsigned int value() const
AboutWidget * aboutWidget_
Pointer to the about widget.
void showAboutWidget()
Display the about widget.