Commit 54365bdc authored by Jan Möbius's avatar Jan Möbius

Added Slot debugging

Disabled standard draw mode setting via options widget as its not completed yet

git-svn-id: http://www.openflipper.org/svnrepo/OpenFlipper/branches/Free@2908 383ad7c9-94d9-4d36-a494-682f7c89f535
parent 33561a97
......@@ -522,19 +522,30 @@ Core::slotAddHiddenPickMode( const std::string _mode , QCursor _cursor) {
/** Update the view in the examiner widget
*/
void Core::updateView() {
if ( OpenFlipper::Options::doSlotDebugging() ) {
if ( sender() != 0 ) {
if ( sender()->metaObject() != 0 ) {
emit log(LOGINFO,"updateView() called by " + QString( sender()->metaObject()->className() ) );
}
}
}
if ( OpenFlipper::Options::restrictFrameRate() ) {
// redraw time not reached ... waiting for timer event for next redraw
if ( redrawTimer_->isActive() ) {
// std::cerr << "Too early for redraw!" << std::endl;
if ( OpenFlipper::Options::doSlotDebugging() )
emit log(LOGINFO,"Too early for redraw! Delaying request from " + QString( sender()->metaObject()->className() ) );
return;
}
// std::cerr << "Redraw" << std::endl;
// Start the timer if we are not called by the timer
if ( sender() != redrawTimer_ )
if ( sender() != redrawTimer_ ) {
redrawTimer_->start( 1000 / OpenFlipper::Options::maxFrameRate() );
}
}
......
......@@ -118,7 +118,7 @@ void Core::readApplicationOptions(INIFile& _ini) {
QString type;
if (_ini.get_entry(type, "Options" , "default_DataType" ))
OpenFlipper::Options::lastDataType(type);
//============================================================================
// Splash Screen
//============================================================================
......@@ -237,6 +237,14 @@ void Core::readApplicationOptions(INIFile& _ini) {
int maxFrameRate = 35;
if( _ini.get_entry(maxFrameRate, "Options", "MaxFrameRate") )
OpenFlipper::Options::maxFrameRate(maxFrameRate);
//============================================================================
// Load slotDebugging state
//============================================================================
bool doSlotDebugging = false;
if( _ini.get_entry(doSlotDebugging, "Options", "SlotDebugging") )
OpenFlipper::Options::doSlotDebugging(doSlotDebugging);
}
}
......@@ -286,7 +294,7 @@ void Core::writeApplicationOptions(INIFile& _ini) {
// Splash Screen
//============================================================================
_ini.add_entry( "Options" , "Splash" , OpenFlipper::Options::splash() );
//write default dataType to INI
_ini.add_entry( "Options" , "default_DataType" , OpenFlipper::Options::lastDataType() );
......@@ -309,6 +317,12 @@ void Core::writeApplicationOptions(INIFile& _ini) {
// max Framerate
_ini.add_entry("Options","MaxFrameRate",OpenFlipper::Options::maxFrameRate() );
//============================================================================
// Debugging
//============================================================================
// max Framerate
_ini.add_entry("Options","SlotDebugging",OpenFlipper::Options::doSlotDebugging() );
//============================================================================
//dontLoad Plugins
//============================================================================
......@@ -364,7 +378,7 @@ void Core::openIniFile(QString _filename) {
emit log(LOGERR,"Failed to connect to ini file" + _filename);
return;
}
if ( OpenFlipper::Options::gui() ) {
coreWidget_->statusMessage( "Loading ini File " + _filename + " ...");
coreWidget_->setStatus(ApplicationStatus::BLOCKED );
......@@ -438,7 +452,7 @@ void Core::openIniFile(QString _filename) {
OpenFlipper::Options::openingIni(false);
resetScenegraph();
if ( OpenFlipper::Options::gui() ) {
coreWidget_->statusMessage( "Loading ini File " + _filename + " ... Done", 4000);
coreWidget_->setStatus(ApplicationStatus::READY );
......@@ -453,7 +467,7 @@ void Core::writeIniFile(QString _filename, bool _relativePaths) {
emit log(LOGERR,"Failed to connect to _ini file" + _filename);
return;
}
if ( OpenFlipper::Options::gui() ) {
coreWidget_->statusMessage( "Saving ini File " + _filename + " ...");
coreWidget_->setStatus(ApplicationStatus::BLOCKED );
......@@ -503,7 +517,7 @@ void Core::writeIniFile(QString _filename, bool _relativePaths) {
emit iniSaveOptions( ini );
ini.disconnect();
if ( OpenFlipper::Options::gui() ) {
coreWidget_->statusMessage( "Saving ini File " + _filename + " ... Done", 4000);
coreWidget_->setStatus(ApplicationStatus::READY );
......
......@@ -12,12 +12,12 @@
// 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.
//
//
// 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 Lesser General Public License
// along with OpenFlipper. If not, see <http://www.gnu.org/licenses/>.
//
......@@ -49,20 +49,29 @@
#include "OpenFlipper/BasePlugin/ToolboxInterface.hh"
#include "OpenFlipper/BasePlugin/TextureInterface.hh"
//== IMPLEMENTATION ==========================================================
//== IMPLEMENTATION ==========================================================
//========================================================================================
// === Object List Communication =======================
//========================================================================================
//========================================================================================
/** This function is called by a plugin if it changed something in the object list (source,target,...). The information is passed to all plugins.
* @param _identifier Id of the updated object
*/
void Core::slotObjectsListUpdated(int _identifier) {
// just inform the plugins as we dont do anything else
emit ObjectListUpdated(_identifier);
}
void Core::slotObjectsListUpdated(int _identifier) {
if ( OpenFlipper::Options::doSlotDebugging() ) {
if ( sender() != 0 ) {
if ( sender()->metaObject() != 0 ) {
emit log(LOGINFO,"updated_objects( " + QString::number(_identifier) + " ) called by " +
QString( sender()->metaObject()->className() ) );
}
}
}
// just inform the plugins as we dont do anything else
emit ObjectListUpdated(_identifier);
}
/** This function is called if the active object has changed. The information is passed to all plugins.
*/
void Core::slotActiveObjectChanged()
......@@ -71,10 +80,10 @@
emit activeObjectChanged();
}
//====================================================================================
//====================================================================================
// === Toolbox handling =================
//=====================================================================================
/** If the Toolbox is switched the toolboxActivated function of the each plugin that has a toolbox is called by this function.
*/
// void
......@@ -82,18 +91,18 @@
// {
// // Check all plugins
// for ( uint i = 0 ; i < plugins.size(); ++i) {
// if (plugins[i].toolboxindex == -1)
// if (plugins[i].toolboxindex == -1)
// continue;
//
//
// ToolboxInterface* toolboxPlugin = qobject_cast< ToolboxInterface * >(plugins[i].plugin);
// if (! toolboxPlugin)
// continue;
//
//
// // Call the corresponding function of the plugins
// if ( _index == plugins[i].toolboxindex ) {
// toolboxPlugin->toolboxActivated(true);
// toolboxPlugin->toolboxActivated(true);
// } else {
// toolboxPlugin->toolboxActivated(false);
// toolboxPlugin->toolboxActivated(false);
// }
// }
// }
......@@ -107,35 +116,35 @@
* See in the documentation of the texture plugin interfaces for further detail.
*/
void Core::slotAddTexture( QString _textureName , QString _filename, uint _dimension) {
emit addTexture(_textureName , _filename,_dimension);
emit addTexture(_textureName , _filename,_dimension);
}
/** Called by a plugin if a texture has to be updated. The information is passed to all plugins. The Plugin providing the given Texture should react on this event.\n
* See in the documentation of the texture plugin interfaces for further detail.
*/
void Core::slotUpdateTexture( QString _name , int _identifier){
emit updateTexture(_name, _identifier);
emit updateTexture(_name, _identifier);
}
/** Called by a plugin if all textures should be updated. The information is passed to all plugins. All plugins providing textures should react on this event.\n
* See in the documentation of the texture plugin interfaces for further detail.
*/
void Core::slotUpdateAllTextures( ){
emit updateAllTextures();
emit updateAllTextures();
}
/** Called by a plugin if the parameters of a texture should be changed. The information is passed to all plugins. A Texturecontrol plugin should react on this event.\n
* See in the documentation of the texture plugin interfaces for further detail.
*/
void Core::slotSetTextureMode(QString _textureName ,QString _mode) {
emit setTextureMode(_textureName,_mode);
emit setTextureMode(_textureName,_mode);
}
/** Called by a plugin if it updated a texture. The information is passed to all plugins. If a texture control plugin is available it has to react on the signal and update the visualization of the texture.\n
* See in the documentation of the texture plugin interfaces for further detail.
*/
void Core::slotTextureUpdated( QString _textureName , int _identifier ) {
emit updatedTextures(_textureName,_identifier);
emit updatedTextures(_textureName,_identifier);
}
/** Called by plugins if texture mode should be switched
......@@ -150,8 +159,8 @@ void Core::slotSwitchTexture( QString _textureName ) {
/// Called if a backup is requested by the plugins
void Core::backupRequest( int _id , QString _name ) {
emit createBackup( _id , _name , nextBackupId_);
++nextBackupId_;
emit createBackup( _id , _name , nextBackupId_);
++nextBackupId_;
}
......
......@@ -12,12 +12,12 @@
// 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.
//
//
// 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 Lesser General Public License
// along with OpenFlipper. If not, see <http://www.gnu.org/licenses/>.
//
......@@ -47,11 +47,11 @@
namespace OpenFlipper {
namespace Options {
/// Stores the base Path of the application
/// Stores the base Path of the application
static QDir applicationDir_;
/// Stores the base Path of the application
/// Stores the base Path of the application
static QDir configDir_;
/// Stores the Path to the Standard Plugins
......@@ -127,6 +127,9 @@ static bool logToConsole_ = false;
/// Extra debug info
static bool debug_ = false;
/// Slot Debugging
static bool doSlotDebugging_ = false;
/// enable logging to file
static bool logFileEnabled_;
......@@ -150,8 +153,8 @@ static char *** argv_;
const bool is64 = true;
#else
const bool is64 = false;
#endif
#endif
#ifdef WIN32
const bool linux_ = false;
const bool windows_ = true;
......@@ -164,16 +167,16 @@ bool is64bit() { return is64; };
bool is32bit() { return !is64; };
bool isLinux() {
return linux_;
return linux_;
}
bool isWindows() {
return windows_;
}
QString lang() {
QString lang = getenv( "LANG" ) ;
QString lang = getenv( "LANG" ) ;
return lang;
}
......@@ -183,10 +186,10 @@ QString dirSeparator() {
// return QString("\\");
// if (linux_)
// return QString("/");
return QString("/");
}
QDir applicationDir() { return applicationDir_; }
QDir configDir() { return configDir_; }
QDir pluginDir() { return pluginDir_; }
......@@ -215,19 +218,19 @@ void currentDir(QDir _dir) { currentDir_ = _dir; }
void optionFiles(QStringList _list) { optionFiles_ = _list; }
bool applicationDir(QString _dir) {
bool applicationDir(QString _dir) {
QDir tmp(_dir);
if (tmp.exists()) {
applicationDir_ = tmp;
applicationDir_ = tmp;
return true;
}
return false;
}
bool pluginDir(QString _dir) {
bool pluginDir(QString _dir) {
QDir tmp(_dir);
if (tmp.exists()) {
pluginDir_ = tmp;
pluginDir_ = tmp;
return true;
}
return false;
......@@ -236,43 +239,43 @@ bool pluginDir(QString _dir) {
bool shaderDir(QString _dir) {
QDir tmp(_dir);
if (tmp.exists()) {
shaderDir_ = tmp;
shaderDir_ = tmp;
return true;
}
return false;
}
bool textureDir(QString _dir) {
bool textureDir(QString _dir) {
QDir tmp(_dir);
if (tmp.exists()) {
textureDir_ = tmp;
textureDir_ = tmp;
return true;
}
return false;
}
bool iconDir(QString _dir) {
bool iconDir(QString _dir) {
QDir tmp(_dir);
if (tmp.exists()) {
iconDir_ = tmp;
iconDir_ = tmp;
return true;
}
return false;
}
bool configDir(QString _dir) {
bool configDir(QString _dir) {
QDir tmp(_dir);
if (tmp.exists()) {
configDir_ = tmp;
configDir_ = tmp;
return true;
}
return false;
}
bool currentDir(QString _dir) {
bool currentDir(QString _dir) {
QDir tmp(_dir);
if (tmp.exists()) {
currentDir_ = tmp;
currentDir_ = tmp;
return true;
}
return false;
......@@ -280,77 +283,77 @@ bool currentDir(QString _dir) {
/// Get experience level
Experience getExperience() {
return experienceLevel_;
return experienceLevel_;
}
/// Set experience level
void setExperience( Experience _exp) {
experienceLevel_ = _exp;
experienceLevel_ = _exp;
}
/// Store if a gui should be visible or not
void nogui( bool _nogui ) {
nogui_ = _nogui;
nogui_ = _nogui;
}
/// get if a gui should be visible or not
/// get if a gui should be visible or not
bool nogui( ) {
return nogui_;
return nogui_;
}
/// get if a gui should be visible or not
/// get if a gui should be visible or not
bool gui( ) {
return !nogui_;
return !nogui_;
}
/// Store stereo mode setting
void stereo( bool _stereo ) {
stereo_ = _stereo;
stereo_ = _stereo;
}
/// get current stereo setting
bool stereo( ) {
return stereo_;
return stereo_;
}
/// Store animation mode setting
void animation( bool _animation ) {
animation_ = _animation;
animation_ = _animation;
}
/// get current animation setting
bool animation( ) {
return animation_;
return animation_;
}
/// Store backfaceCulling setting
void backfaceCulling( bool _backfaceCulling ) {
backfaceCulling_ = _backfaceCulling;
backfaceCulling_ = _backfaceCulling;
}
/// get backfaceCulling setting
bool backfaceCulling( ) {
return backfaceCulling_;
return backfaceCulling_;
}
/// Store wheelZoomFactor setting
void wheelZoomFactor( double _factor ) {
wheelZoomFactor_ = _factor;
wheelZoomFactor_ = _factor;
}
/// get wheelZoomFactor setting
double wheelZoomFactor( ) {
return wheelZoomFactor_;
return wheelZoomFactor_;
}
/// Store wheelZoomFactorShift setting
void wheelZoomFactorShift( double _factor ) {
wheelZoomFactorShift_ = _factor;
wheelZoomFactorShift_ = _factor;
}
/// get wheelZoomFactorShift setting
double wheelZoomFactorShift( ) {
return wheelZoomFactorShift_;
return wheelZoomFactorShift_;
}
void restrictFrameRate( bool _enable ){
......@@ -399,19 +402,19 @@ bool hideToolbox( ) {
/// Start fullscreen Mode?
void fullScreen( bool _fs ) {
fullScreen_ = _fs;
fullScreen_ = _fs;
}
/// Start fullscreen Mode?
bool fullScreen( ) {
return fullScreen_;
return fullScreen_;
}
/// Which mode should be the default for the toolbar?
QString defaultToolboxMode( ) {
return defaultToolboxMode_;
return defaultToolboxMode_;
}
/// Which mode should be the default for the toolbar?
void defaultToolboxMode( QString _mode ) {
defaultToolboxMode_ = _mode;
......@@ -419,19 +422,19 @@ void defaultToolboxMode( QString _mode ) {
QString windowTitle( ) {
return title_;
return title_;
}
void windowTitle( QString _titel ) {
title_ = _titel;
title_ = _titel;
}
void splash( bool _splash ) {
splash_ = _splash;
splash_ = _splash;
}
bool splash( ) {
return splash_;
return splash_;
}
......@@ -439,34 +442,34 @@ bool splash( ) {
QString lastDataType(){
return lastDataType_;
}
/// set the last used dataType
void lastDataType(QString _type){
lastDataType_ = _type;
}
bool scripting( ) {
return scripting_;
return scripting_;
}
void scripting(bool _status ) {
scripting_ = _status;
scripting_ = _status;
}
bool logToConsole( ) {
return logToConsole_;
return logToConsole_;
}
void logToConsole(bool _logToConsole ) {
logToConsole_ = _logToConsole;
logToConsole_ = _logToConsole;
}
bool debug() {
return debug_;
return debug_;
}
void debug(bool _debug ) {
debug_ = _debug;
debug_ = _debug;
}
void logFileEnabled(bool _enable ){
......@@ -486,7 +489,7 @@ QString logFile(){
}
bool backupEnabled( ) {
return enableBackup_;
return enableBackup_;
}
void enableBackup(bool _enableBackup ) {
......@@ -494,11 +497,11 @@ void enableBackup(bool _enableBackup ) {
}
bool openingIni( ) {
return openingIni_;
return openingIni_;
}
void openingIni(bool _openingIni ) {
openingIni_ = _openingIni;
openingIni_ = _openingIni;
}
int* argc() {
......@@ -517,6 +520,14 @@ void argv( char*** _argv) {
argv_ = _argv;
}
void doSlotDebugging( bool _debugging ) {
doSlotDebugging_ = _debugging;
}
bool doSlotDebugging( ) {
return doSlotDebugging_;
}
}
}
......
......@@ -485,7 +485,7 @@ bool iconDir(QString _dir);
//===========================================================================
/** @name Core parameters
* @{ */
//===========================================================================
//===========================================================================
/// Get the argc parameter from the main application
DLLEXPORT
......@@ -503,6 +503,24 @@ void argc( int* _argc );
DLLEXPORT
void argv( char*** _argv);
//===========================================================================
/** @name Debugging Options
* @{ */
//===========================================================================
/** If you enable slot debugging, for some slots will be displayed who called them.
* Currently supported slots are:\n
* - updateView()
* - updated_objects( objectId )
*/
DLLEXPORT
void doSlotDebugging( bool _debugging );
DLLEXPORT
bool doSlotDebugging( );
/** @} */
}
......
......@@ -57,10 +57,10 @@ OptionsWidget::OptionsWidget(std::vector<PluginInfo>& _plugins, std::vector<KeyB
uint mode = 2;
for (uint i=1; i < 22; i++) {
std::vector< QString > dm = drawModeToList( mode );
if (dm[0].trimmed() != ""){
QListWidgetItem* item = new QListWidgetItem(dm[0]);
item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsUserCheckable | Qt::ItemIsSelectable);
item->setCheckState(Qt::Unchecked);
......@@ -77,7 +77,7 @@ break;
//Check the drawModes from StandardDrawMode
// std::vector< QString > dm = drawModeToList( OpenFlipper::Options::standardDrawMode() );
//
//
// for (uint i=0; i < dm.size(); i++){
// QList<QListWidgetItem *> found availDrawModes->findItems(dm[i],Qt::MatchExactly);
// for(int k=0; k < found.count(); k++)
......@@ -119,6 +119,9 @@ void OptionsWidget::showEvent ( QShowEvent * event ) {
restrictFPS->setChecked( OpenFlipper::Options::restrictFrameRate() );
FPS->setValue( OpenFlipper::Options::maxFrameRate() );
// debugging
slotDebugging->setChecked(OpenFlipper::Options::doSlotDebugging());
//set drawmodes
......@@ -202,6 +205,9 @@ void OptionsWidget::slotApply() {
OpenFlipper::Options::restrictFrameRate( restrictFPS->isChecked() );
OpenFlipper::Options::maxFrameRate( FPS->value() );
// Debugging
OpenFlipper::Options::doSlotDebugging(slotDebugging->isChecked());
//standardDrawMode
std::vector< QString > mode;
......@@ -209,7 +215,8 @@ void OptionsWidget::slotApply() {
if (availDrawModes->item(i)->checkState() == Qt::Checked)
mode.push_back( availDrawModes->item(i)->text() );
OpenFlipper::Options::standardDrawMode( ListToDrawMode(mode) );
std::cerr << "Optionswidget: standarddrawmode not set yet" << std::endl;
// OpenFlipper::Options::standardDrawMode( ListToDrawMode(mode) );
emit applyOptions();
emit saveOptions();
......
......@@ -22,7 +22,7 @@
<string/>
</property>
<property name="currentIndex" >
<number>2</number>
<number>5</number>
</property>
<property name="usesScrollButtons" >
<bool>true</bool>
......@@ -32,8 +32,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>644</width>
<height>606</height>
<width>479</width>
<height>394</height>
</rect>
</property>
<attribute name="title" >
......@@ -132,8 +132,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>644</width>
<height>606</height>
<width>479</width>
<height>394</height>
</rect>
</property>
<attribute name="title" >
......@@ -165,7 +165,7 @@
<x>0</x>
<y>0</y>
<width>479</width>
<height>402</height>
<height>394</height>
</rect>
</property>
<attribute name="title" >
......@@ -374,7 +374,7 @@
<x>0</x>
<y>0</y>