About.cc 8.64 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
/*===========================================================================*\
 *                                                                           *
 *                              OpenFlipper                                  *
 *      Copyright (C) 2001-2009 by Computer Graphics Group, RWTH Aachen      *
 *                           www.openflipper.org                             *
 *                                                                           *
 *---------------------------------------------------------------------------*
 *  This file is part of OpenFlipper.                                        *
 *                                                                           *
 *  OpenFlipper is free software: you can redistribute it and/or modify      *
 *  it under the terms of the GNU Lesser General Public License as           *
 *  published by the Free Software Foundation, either version 3 of           *
 *  the License, or (at your option) any later version with the              *
 *  following exceptions:                                                    *
 *                                                                           *
 *  If other files instantiate templates or use macros                       *
 *  or inline functions from this file, or you compile this file and         *
 *  link it with other files to produce an executable, this file does        *
 *  not by itself cause the resulting executable to be covered by the        *
 *  GNU Lesser General Public License. This exception does not however       *
 *  invalidate any other reasons why the executable file might be            *
 *  covered by the GNU Lesser General Public License.                        *
 *                                                                           *
 *  OpenFlipper is distributed in the hope that it will be useful,           *
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of           *
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the            *
 *  GNU Lesser General Public License for more details.                      *
 *                                                                           *
 *  You should have received a copy of the GNU LesserGeneral Public          *
 *  License along with OpenFlipper. If not,                                  *
 *  see <http://www.gnu.org/licenses/>.                                      *
 *                                                                           *
\*===========================================================================*/

/*===========================================================================*\
 *                                                                           *
 *   $Revision$                                                         *
 *   $Author$                                                      *
 *   $Date$                   *
 *                                                                           *
\*===========================================================================*/
Jan Möbius's avatar
Jan Möbius committed
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56




//=============================================================================
//
//  CLASS Core - IMPLEMENTATION
//
//=============================================================================


//== INCLUDES =================================================================

#include "CoreWidget.hh"

57 58
#include <QGLFormat>

Jan Möbius's avatar
Jan Möbius committed
59 60 61 62 63 64 65 66 67 68 69 70 71
#include <OpenFlipper/common/GlobalOptions.hh>

//== IMPLEMENTATION ==========================================================



void CoreWidget::showAboutWidget( ) {

  if ( OpenFlipper::Options::nogui() )
    return;

  if ( aboutWidget_ == 0 ) {
    aboutWidget_ = new AboutWidget( this );
72
    aboutWidget_->OpenFlipperAbout->append(tr("OpenFlipper Core Version: ") + OpenFlipper::Options::coreVersion() ) ;
73

74 75 76
    // =====================================================================================
    // Directory info
    // =====================================================================================
77
    aboutWidget_->OpenFlipperAbout->append("\n");
78
    aboutWidget_->OpenFlipperAbout->append(tr("OpenFlipper Directories:"));
79 80
    
    // Get the dataDir
81 82 83 84 85 86 87 88 89 90 91 92
    QDir tempDir = QDir(OpenFlipper::Options::applicationDir());
    #ifdef OPENFLIPPER_DATADIR
      tempDir.cd(OPENFLIPPER_DATADIR);
    #endif
    aboutWidget_->OpenFlipperAbout->append("Data:\t " + tempDir.absolutePath() );
    aboutWidget_->OpenFlipperAbout->append("Shaders:\t " + OpenFlipper::Options::shaderDirStr() );
    aboutWidget_->OpenFlipperAbout->append("Textures:\t " + OpenFlipper::Options::textureDirStr() );
    aboutWidget_->OpenFlipperAbout->append("Scripts:\t " + OpenFlipper::Options::scriptDirStr() );
    aboutWidget_->OpenFlipperAbout->append("Icons:\t " + OpenFlipper::Options::iconDirStr() );
    aboutWidget_->OpenFlipperAbout->append("Fonts:\t" + OpenFlipper::Options::fontsDirStr() );
    aboutWidget_->OpenFlipperAbout->append("Help:\t" + OpenFlipper::Options::helpDirStr() );

93 94 95
    // =====================================================================================
    // OpenGL Renderer/Vendor and version info
    // =====================================================================================    
96
    aboutWidget_->OpenFlipperAbout->append("\n");
97
    aboutWidget_->OpenFlipperAbout->append(tr("OpenGL Specific Info:"));
Jan Möbius's avatar
Jan Möbius committed
98 99 100


    QString vendor = QString((const char*)glGetString(GL_VENDOR));
101
    aboutWidget_->OpenFlipperAbout->append(tr("Vendor:\t") + vendor);
Jan Möbius's avatar
Jan Möbius committed
102
    QString renderer = QString((const char*)glGetString(GL_RENDERER));
103
    aboutWidget_->OpenFlipperAbout->append(tr("Renderer:\t") + renderer);
Jan Möbius's avatar
Jan Möbius committed
104

105 106 107
    QGLFormat::OpenGLVersionFlags flags = QGLFormat::openGLVersionFlags();

    if ( flags.testFlag(QGLFormat::OpenGL_Version_3_0) )
108
      aboutWidget_->OpenFlipperAbout->append(tr("Version:\t3.0 or higher") );
109
    else if (flags.testFlag(QGLFormat::OpenGL_Version_2_1))
110
      aboutWidget_->OpenFlipperAbout->append(tr("Version:\t2.1 or higher" ));
111
    else if (flags.testFlag(QGLFormat::OpenGL_Version_2_0))
112
      aboutWidget_->OpenFlipperAbout->append(tr("Version:\t2.0 or higher" ));
113
    else if (flags.testFlag(QGLFormat::OpenGL_Version_1_5))
114
      aboutWidget_->OpenFlipperAbout->append(tr("Version:\t1.5 or higher" ));
115
    else if (flags.testFlag(QGLFormat::OpenGL_Version_1_4))
116
      aboutWidget_->OpenFlipperAbout->append(tr("Version:\t1.4 or higher" ));
117
    else if (flags.testFlag(QGLFormat::OpenGL_Version_1_3))
118
      aboutWidget_->OpenFlipperAbout->append(tr("Version:\t1.3 or higher" ));
119
    else if (flags.testFlag(QGLFormat::OpenGL_Version_1_2))
120
      aboutWidget_->OpenFlipperAbout->append(tr("Version:\t1.2 or higher" ));
121
    else if (flags.testFlag(QGLFormat::OpenGL_Version_1_1))
122
      aboutWidget_->OpenFlipperAbout->append(tr("Version:\t1.1 or higher" ));
123
    else
124
      aboutWidget_->OpenFlipperAbout->append(tr("Version:\tUNKNOWN!" ));
Jan Möbius's avatar
Jan Möbius committed
125 126


127

128 129 130
    // =====================================================================================
    // OpenGL Extensions
    // =====================================================================================
131
    aboutWidget_->OpenFlipperAbout->append(tr("Supported Extensions:"));
132 133 134 135
    QString glExtensions = QString((const char*)glGetString(GL_EXTENSIONS));
    aboutWidget_->OpenFlipperAbout->append(glExtensions);

    aboutWidget_->OpenFlipperAbout->moveCursor(QTextCursor::Start);
136
    
137 138 139 140
    // =====================================================================================
    // Qt information
    // =====================================================================================
    
141 142 143 144 145
    aboutWidget_->OpenFlipperAbout->append("\n");
    aboutWidget_->OpenFlipperAbout->append(tr("Qt Version Info:"));
    aboutWidget_->OpenFlipperAbout->append(tr("Currently used Version:\t") + qVersion() );
    aboutWidget_->OpenFlipperAbout->append(tr("Link time Version:\t\t") + QT_VERSION_STR );
    
146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165
    // =====================================================================================
    // List the currently registered data types
    // =====================================================================================
    aboutWidget_->OpenFlipperAbout->append("\n");
    aboutWidget_->OpenFlipperAbout->append(tr("Registered data types:"));

    QString types;

    // Iterate over all Types known to the core
    // Start at 1:
    // 0 type is defined as DATA_UNKNOWN
    DataType currentType = 1;
    for ( uint i = 0 ; i < typeCount() - 2  ; ++i) {
      types += typeName( currentType ) + " ";
      
      // Advance to next type ( Indices are bits so multiply by to to get next bit)
      currentType *= 2;
    }
    
    aboutWidget_->OpenFlipperAbout->append( types );
166

Jan Möbius's avatar
Jan Möbius committed
167 168 169 170 171 172
  }

  aboutWidget_->show();

}
//=============================================================================