Commits (6)
...@@ -88,6 +88,8 @@ ...@@ -88,6 +88,8 @@
#include <OpenFlipper/widgets/messageBox/StaysOnTopMessageBox.hh> #include <OpenFlipper/widgets/messageBox/StaysOnTopMessageBox.hh>
#include <OpenFlipper/common/PluginStorage.hh>
#define WIDGET_HEIGHT 800 #define WIDGET_HEIGHT 800
#define WIDGET_WIDTH 800 #define WIDGET_WIDTH 800
...@@ -236,7 +238,7 @@ Core::init() { ...@@ -236,7 +238,7 @@ Core::init() {
Qt::AlignBottom | Qt::AlignLeft , Qt::white); Qt::AlignBottom | Qt::AlignLeft , Qt::white);
} }
coreWidget_ = new CoreWidget(viewModes_ , plugins_, coreSlots_); coreWidget_ = new CoreWidget(viewModes_ , coreSlots_);
spinBoxEventFilter_.registerScrollArea(coreWidget_->getToolboxScrollArea()); spinBoxEventFilter_.registerScrollArea(coreWidget_->getToolboxScrollArea());
spinBoxEventFilter_.registerScrollArea(coreWidget_->getToolboxArea()); spinBoxEventFilter_.registerScrollArea(coreWidget_->getToolboxArea());
...@@ -718,6 +720,12 @@ Core::~Core() ...@@ -718,6 +720,12 @@ Core::~Core()
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
std::vector<PluginInfo>& Core::plugins() {
return PluginStorage::plugins();
};
//-----------------------------------------------------------------------------
void void
Core::slotMouseEventIdentify( QMouseEvent* _event ) Core::slotMouseEventIdentify( QMouseEvent* _event )
{ {
...@@ -1169,8 +1177,8 @@ void Core::slotExit() { ...@@ -1169,8 +1177,8 @@ void Core::slotExit() {
clearAll(); clearAll();
// Notify plugins of imminent exit. // Notify plugins of imminent exit.
for ( uint i = 0 ; i < plugins_.size() ; ++i ){ for ( uint i = 0 ; i < plugins().size() ; ++i ){
BaseInterface* basePlugin = qobject_cast< BaseInterface * >(plugins_[i].plugin); BaseInterface* basePlugin = qobject_cast< BaseInterface * >(plugins()[i].plugin);
// Dont call exit if we cannot get the Plugin // Dont call exit if we cannot get the Plugin
if ( basePlugin ) if ( basePlugin )
...@@ -1178,7 +1186,7 @@ void Core::slotExit() { ...@@ -1178,7 +1186,7 @@ void Core::slotExit() {
} }
// Delete Plugins to actually call their destructor // Delete Plugins to actually call their destructor
for(PluginInfo p : plugins_) for(PluginInfo p : plugins())
delete p.plugin; delete p.plugin;
// close the log file to ensure everything is writeen correctly // close the log file to ensure everything is writeen correctly
...@@ -1300,9 +1308,9 @@ void Core::slotSetSlotDescription(QString _slotName, QString _slotDescrip ...@@ -1300,9 +1308,9 @@ void Core::slotSetSlotDescription(QString _slotName, QString _slotDescrip
//find plugin //find plugin
PluginInfo* pluginInfo = 0; PluginInfo* pluginInfo = 0;
for (uint i=0; i < plugins_.size(); i++) for (uint i=0; i < plugins().size(); i++)
if (plugins_[i].plugin == sender()) if (plugins()[i].plugin == sender())
pluginInfo = &plugins_[i]; pluginInfo = &plugins()[i];
if (pluginInfo == 0){ if (pluginInfo == 0){
emit log(LOGERR, tr("Unable to set slot-description. Plugin not found!")); emit log(LOGERR, tr("Unable to set slot-description. Plugin not found!"));
...@@ -1378,9 +1386,9 @@ void Core::slotGetDescription(QString _function, QString& _fnDescript ...@@ -1378,9 +1386,9 @@ void Core::slotGetDescription(QString _function, QString& _fnDescript
//find plugin //find plugin
PluginInfo* pluginInfo = 0; PluginInfo* pluginInfo = 0;
for (uint i=0; i < plugins_.size(); i++) for (uint i=0; i < plugins().size(); i++)
if (plugins_[i].rpcName == pluginName) if (plugins()[i].rpcName == pluginName)
pluginInfo = &plugins_[i]; pluginInfo = &plugins()[i];
if (pluginInfo == 0){ if (pluginInfo == 0){
emit log(LOGERR, tr("Unable to get slot-description. Plugin not found!")); emit log(LOGERR, tr("Unable to get slot-description. Plugin not found!"));
...@@ -1524,12 +1532,12 @@ void Core::writeVersionNumbers(QString _filename){ ...@@ -1524,12 +1532,12 @@ void Core::writeVersionNumbers(QString _filename){
ini.add_entry( "Core" , "VersionLinux" , OpenFlipper::Options::coreVersion() ); ini.add_entry( "Core" , "VersionLinux" , OpenFlipper::Options::coreVersion() );
//add pluginVersions //add pluginVersions
for (uint i=0; i < plugins_.size(); i++){ for (uint i=0; i < plugins().size(); i++){
if ( OpenFlipper::Options::isWindows() ) if ( OpenFlipper::Options::isWindows() )
ini.add_entry( plugins_[i].name , "VersionWindows" , plugins_[i].version ); ini.add_entry( plugins()[i].name , "VersionWindows" , plugins()[i].version );
else else
ini.add_entry( plugins_[i].name , "VersionLinux" , plugins_[i].version ); ini.add_entry( plugins()[i].name , "VersionLinux" , plugins()[i].version );
} }
ini.disconnect(); ini.disconnect();
......
...@@ -121,7 +121,6 @@ ...@@ -121,7 +121,6 @@
#include <OpenFlipper/threads/JobInfo.hh> #include <OpenFlipper/threads/JobInfo.hh>
#include <OpenFlipper/common/FileTypes.hh>
#include <OpenFlipper/common/InformationPlugins.hh> #include <OpenFlipper/common/InformationPlugins.hh>
#include "SpinBoxEventFilter.hh" #include "SpinBoxEventFilter.hh"
...@@ -1214,17 +1213,19 @@ private slots: ...@@ -1214,17 +1213,19 @@ private slots:
//=========================================================================== //===========================================================================
public : public :
const std::vector<PluginInfo> plugins() const {return plugins_; }; std::vector<PluginInfo>& plugins();
private: private:
/// List of all loaded plugins_
std::vector<PluginInfo> plugins_;
/// Index of Plugins toolbox widget /// Index of Plugins toolbox widget
int toolboxindex_; int toolboxindex_;
/// Load all plugins from default plugin directory and from INI-File /// Load all plugins from default plugin directory and from INI-File
void loadPlugins(); void loadPlugins();
/// Print all info collected about plugin during loading
void printPluginLoadLog(const QString& errors,const QString& warnings);
private slots: private slots:
/// Show Plugins Dialog /// Show Plugins Dialog
void slotShowPlugins(); void slotShowPlugins();
......
...@@ -467,11 +467,11 @@ void connectPlugins( Core* c, const std::vector<PluginInfo>& plugins_, QString _ ...@@ -467,11 +467,11 @@ void connectPlugins( Core* c, const std::vector<PluginInfo>& plugins_, QString _
} }
void Core::slotCrossPluginConnect( QString _pluginName1, const char* _signal, QString _pluginName2, const char* _slot) { void Core::slotCrossPluginConnect( QString _pluginName1, const char* _signal, QString _pluginName2, const char* _slot) {
connectPlugins(this, plugins_, _pluginName1, _signal, _pluginName2, _slot, false); connectPlugins(this, plugins(), _pluginName1, _signal, _pluginName2, _slot, false);
} }
void Core::slotCrossPluginConnectQueued( QString _pluginName1, const char* _signal, QString _pluginName2, const char* _slot) { void Core::slotCrossPluginConnectQueued( QString _pluginName1, const char* _signal, QString _pluginName2, const char* _slot) {
connectPlugins(this, plugins_, _pluginName1, _signal, _pluginName2, _slot, true); connectPlugins(this, plugins(), _pluginName1, _signal, _pluginName2, _slot, true);
} }
//======================================================================================== //========================================================================================
......
...@@ -85,6 +85,8 @@ class PluginInfo{ ...@@ -85,6 +85,8 @@ class PluginInfo{
version(""), version(""),
path(""), path(""),
rpcName(""), rpcName(""),
errors(""),
warnings(""),
optionsWidget(0), optionsWidget(0),
buildIn(true), buildIn(true),
status(FAILED) status(FAILED)
...@@ -108,6 +110,8 @@ class PluginInfo{ ...@@ -108,6 +110,8 @@ class PluginInfo{
version(_i.version), version(_i.version),
path(_i.path), path(_i.path),
rpcName(_i.rpcName), rpcName(_i.rpcName),
errors(_i.errors),
warnings(_i.warnings),
rpcFunctions(_i.rpcFunctions), rpcFunctions(_i.rpcFunctions),
slotInfos(_i.slotInfos), slotInfos(_i.slotInfos),
keys(_i.keys), keys(_i.keys),
...@@ -141,6 +145,12 @@ class PluginInfo{ ...@@ -141,6 +145,12 @@ class PluginInfo{
/// Clean rpc name of the plugin /// Clean rpc name of the plugin
QString rpcName; QString rpcName;
/// Store errors encountered during plugin loading
QString errors;
/// Store warnings encountered during plugin loading
QString warnings;
/// List of exported rpc slots /// List of exported rpc slots
QStringList rpcFunctions; QStringList rpcFunctions;
......
This diff is collapsed.
...@@ -68,8 +68,8 @@ ...@@ -68,8 +68,8 @@
void Core::slotPluginExists( QString _pluginName , bool& _exists ) { void Core::slotPluginExists( QString _pluginName , bool& _exists ) {
for ( int i = 0 ; i < (int)plugins_.size(); ++i ) { for ( int i = 0 ; i < (int)plugins().size(); ++i ) {
if ( plugins_[i].rpcName == _pluginName ) { if ( plugins()[i].rpcName == _pluginName ) {
_exists = true; _exists = true;
return; return;
} }
...@@ -82,8 +82,8 @@ void Core::slotFunctionExists( QString _pluginName , QString _functionName , boo ...@@ -82,8 +82,8 @@ void Core::slotFunctionExists( QString _pluginName , QString _functionName , boo
//Find plugin //Find plugin
int plugin = -1; int plugin = -1;
for ( int i = 0 ; i < (int)plugins_.size(); ++i ) { for ( int i = 0 ; i < (int)plugins().size(); ++i ) {
if ( plugins_[i].rpcName == _pluginName ) { if ( plugins()[i].rpcName == _pluginName ) {
plugin = i; plugin = i;
break; break;
} }
...@@ -94,15 +94,15 @@ void Core::slotFunctionExists( QString _pluginName , QString _functionName , boo ...@@ -94,15 +94,15 @@ void Core::slotFunctionExists( QString _pluginName , QString _functionName , boo
return; return;
} }
_exists = plugins_[plugin].rpcFunctions.contains(_functionName); _exists = plugins()[plugin].rpcFunctions.contains(_functionName);
} }
void Core::slotCall( QString _pluginName , QString _functionName , bool& _success ) { void Core::slotCall( QString _pluginName , QString _functionName , bool& _success ) {
//Find plugin //Find plugin
int plugin = -1; int plugin = -1;
for ( int i = 0 ; i < (int)plugins_.size(); ++i ) { for ( int i = 0 ; i < (int)plugins().size(); ++i ) {
if ( plugins_[i].rpcName == _pluginName ) { if ( plugins()[i].rpcName == _pluginName ) {
plugin = i; plugin = i;
break; break;
} }
...@@ -114,7 +114,7 @@ void Core::slotCall( QString _pluginName , QString _functionName , bool& _succes ...@@ -114,7 +114,7 @@ void Core::slotCall( QString _pluginName , QString _functionName , bool& _succes
return; return;
} }
if ( !plugins_[plugin].rpcFunctions.contains(_functionName) ) { if ( !plugins()[plugin].rpcFunctions.contains(_functionName) ) {
_success = false; _success = false;
emit log(LOGERR, tr("Unable to call function from Plugin : ") + _pluginName); emit log(LOGERR, tr("Unable to call function from Plugin : ") + _pluginName);
emit log(LOGERR, tr("Function ") + _functionName + tr(" not found!")); emit log(LOGERR, tr("Function ") + _functionName + tr(" not found!"));
......
...@@ -52,6 +52,9 @@ ...@@ -52,6 +52,9 @@
//#include <ObjectTypes/Light/Light.hh> //#include <ObjectTypes/Light/Light.hh>
#include <OpenFlipper/common/FileTypes.hh>
/// Save Settings (slot is called from CoreWidget's File-Menu) /// Save Settings (slot is called from CoreWidget's File-Menu)
void Core::saveSettings(){ void Core::saveSettings(){
......
...@@ -231,13 +231,13 @@ void Core::setToolBoxSide(QString _side) { ...@@ -231,13 +231,13 @@ void Core::setToolBoxSide(QString _side) {
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
QWidget *Core::getToolbox(QString _pluginName, QString _toolboxName) { QWidget *Core::getToolbox(QString _pluginName, QString _toolboxName) {
std::vector<PluginInfo>::const_iterator pluginIt = plugins_.end(); std::vector<PluginInfo>::const_iterator pluginIt = plugins().end();
for (std::vector<PluginInfo>::const_iterator it = plugins_.begin(), it_end = plugins_.end(); it != it_end; ++it) { for (std::vector<PluginInfo>::const_iterator it = plugins().begin(), it_end = plugins().end(); it != it_end; ++it) {
if (it->name == _pluginName) { if (it->name == _pluginName) {
pluginIt = it; pluginIt = it;
} }
} }
if (pluginIt == plugins_.end()) return 0; if (pluginIt == plugins().end()) return 0;
for (std::vector<std::pair<QString , QWidget*> >::const_iterator it = pluginIt->toolboxWidgets.begin(), it_end = pluginIt->toolboxWidgets.end(); for (std::vector<std::pair<QString , QWidget*> >::const_iterator it = pluginIt->toolboxWidgets.begin(), it_end = pluginIt->toolboxWidgets.end();
it != it_end; ++it) { it != it_end; ++it) {
...@@ -266,8 +266,8 @@ void Core::addToolbox(QString _name ,QWidget* _widget, QIcon* _icon, ...@@ -266,8 +266,8 @@ void Core::addToolbox(QString _name ,QWidget* _widget, QIcon* _icon,
int id = -1; int id = -1;
// Find the plugin which added this Toolbox // Find the plugin which added this Toolbox
for ( uint i = 0 ; i < plugins_.size(); ++i ) { for ( uint i = 0 ; i < plugins().size(); ++i ) {
if ( plugins_[i].plugin == sender() ) { if ( plugins()[i].plugin == sender() ) {
id = i; id = i;
break; break;
} }
...@@ -275,8 +275,8 @@ void Core::addToolbox(QString _name ,QWidget* _widget, QIcon* _icon, ...@@ -275,8 +275,8 @@ void Core::addToolbox(QString _name ,QWidget* _widget, QIcon* _icon,
// Find the scripting plugin because we assign this toolBox to it as we did not find the original sender // Find the scripting plugin because we assign this toolBox to it as we did not find the original sender
if ( id == -1 ) { if ( id == -1 ) {
for ( uint i = 0 ; i < plugins_.size(); ++i ) { for ( uint i = 0 ; i < plugins().size(); ++i ) {
if ( plugins_[i].name == "Scripting" ) { if ( plugins()[i].name == "Scripting" ) {
id = i; id = i;
break; break;
} }
...@@ -290,9 +290,9 @@ void Core::addToolbox(QString _name ,QWidget* _widget, QIcon* _icon, ...@@ -290,9 +290,9 @@ void Core::addToolbox(QString _name ,QWidget* _widget, QIcon* _icon,
} }
spinBoxEventFilter_.hookUpToWidgetTree(_widget); spinBoxEventFilter_.hookUpToWidgetTree(_widget);
plugins_[id].toolboxWidgets.push_back( std::pair< QString,QWidget* >( _name , _widget) ); plugins()[id].toolboxWidgets.push_back( std::pair< QString,QWidget* >( _name , _widget) );
plugins_[id].toolboxIcons.push_back( _icon ); plugins()[id].toolboxIcons.push_back( _icon );
plugins_[id].headerAreaWidgets.push_back( std::pair< QString,QWidget* >( _name , _headerAreaWidget) ); plugins()[id].headerAreaWidgets.push_back( std::pair< QString,QWidget* >( _name , _headerAreaWidget) );
// add widget name to viewMode 'all' // add widget name to viewMode 'all'
if ( !viewModes_[0]->visibleToolboxes.contains(_name) ){ if ( !viewModes_[0]->visibleToolboxes.contains(_name) ){
......
...@@ -58,7 +58,7 @@ ...@@ -58,7 +58,7 @@
/** /**
* \file FileTypes.cc * \file FileTypes.cc
* This File contains the management of file plugins. * This File contains the file type management vectors
*/ */
...@@ -66,14 +66,12 @@ ...@@ -66,14 +66,12 @@
#include <OpenFlipper/common/FileTypes.hh> #include <OpenFlipper/common/FileTypes.hh>
// Stores information about file types supported by the file plugins.
static std::vector<fileTypes> supportedTypes_; static std::vector<fileTypes> supportedTypes_;
std::vector<fileTypes>& supportedTypes() { std::vector<fileTypes>& supportedTypes() {
return supportedTypes_; return supportedTypes_;
} }
//============================================================================= //=============================================================================
//============================================================================= //=============================================================================
...@@ -58,12 +58,11 @@ ...@@ -58,12 +58,11 @@
/** /**
* \file FileTypes.hh * \file FileTypes.hh
* This File contains the management of file plugins. * This File contains the file type management vectors
*/ */
#ifndef FILETYPES_HH #pragma once
#define FILETYPES_HH
#include <QString> #include <QString>
#include <OpenFlipper/common/GlobalDefines.hh> #include <OpenFlipper/common/GlobalDefines.hh>
...@@ -84,10 +83,8 @@ struct fileTypes { ...@@ -84,10 +83,8 @@ struct fileTypes {
// Get vector of supported types // Get vector of supported types
DLLEXPORT DLLEXPORT
std::vector<fileTypes>& std::vector<fileTypes>& supportedTypes();
supportedTypes();
//============================================================================= //=============================================================================
#endif // FILETYPES_HH defined
//============================================================================= //=============================================================================
/*===========================================================================*\
* *
* OpenFlipper *
* Copyright (c) 2001-2015, RWTH-Aachen University *
* Department of Computer Graphics and Multimedia *
* All rights reserved. *
* www.openflipper.org *
* *
*---------------------------------------------------------------------------*
* This file is part of OpenFlipper. *
*---------------------------------------------------------------------------*
* *
* Redistribution and use in source and binary forms, with or without *
* modification, are permitted provided that the following conditions *
* are met: *
* *
* 1. Redistributions of source code must retain the above copyright notice, *
* this list of conditions and the following disclaimer. *
* *
* 2. Redistributions in binary form must reproduce the above copyright *
* notice, this list of conditions and the following disclaimer in the *
* documentation and/or other materials provided with the distribution. *
* *
* 3. Neither the name of the copyright holder nor the names of its *
* contributors may be used to endorse or promote products derived from *
* this software without specific prior written permission. *
* *
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS *
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED *
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A *
* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER *
* OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, *
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, *
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR *
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF *
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING *
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS *
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *
* *
\*===========================================================================*/
/*===========================================================================*\
* *
* $Revision$ *
* $LastChangedBy$ *
* $Date$ *
* *
\*===========================================================================*/
//=============================================================================
//
// Types
//
//=============================================================================
/**
* \file PluginStorage.cc
* This File contains the management of plugins.
*/
//== INCLUDES =================================================================
#include <OpenFlipper/common/PluginStorage.hh>
namespace PluginStorage {
/// reference to Core plugin list
static std::vector<PluginInfo> plugins_;
/// reference to failed plugin list
static std::vector<PluginInfo> pluginsFailed_;
std::vector<PluginInfo>& plugins() {
return plugins_;
}
std::vector<PluginInfo>& pluginsFailed() {
return pluginsFailed_;
}
}
//=============================================================================
//=============================================================================
/*===========================================================================*\
* *
* OpenFlipper *
* Copyright (c) 2001-2015, RWTH-Aachen University *
* Department of Computer Graphics and Multimedia *
* All rights reserved. *
* www.openflipper.org *
* *
*---------------------------------------------------------------------------*
* This file is part of OpenFlipper. *
*---------------------------------------------------------------------------*
* *
* Redistribution and use in source and binary forms, with or without *
* modification, are permitted provided that the following conditions *
* are met: *
* *
* 1. Redistributions of source code must retain the above copyright notice, *
* this list of conditions and the following disclaimer. *
* *
* 2. Redistributions in binary form must reproduce the above copyright *
* notice, this list of conditions and the following disclaimer in the *
* documentation and/or other materials provided with the distribution. *
* *
* 3. Neither the name of the copyright holder nor the names of its *
* contributors may be used to endorse or promote products derived from *
* this software without specific prior written permission. *
* *
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS *
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED *
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A *
* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER *
* OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, *
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, *
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR *
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF *
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING *
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS *
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *
* *
\*===========================================================================*/
/*===========================================================================*\
* *
* $Revision$ *
* $LastChangedBy$ *
* $Date$ *
* *
\*===========================================================================*/
//=============================================================================
//
// Types
//
//=============================================================================
/**
* \file PluginStorage.hh
* This File contains the management vector for the plugins.
*/
#pragma once
#include <OpenFlipper/common/GlobalDefines.hh>
#include <OpenFlipper/Core/PluginInfo.hh>
//== INCLUDES =================================================================
namespace PluginStorage {
/// Get the vector of all PluginInfos
DLLEXPORT
std::vector<PluginInfo>& plugins();
/// Get the vector of all PluginInfos for plugins that failed to load at startup
DLLEXPORT
std::vector<PluginInfo>& pluginsFailed();
}
//=============================================================================
//=============================================================================
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>653</width> <width>994</width>
<height>699</height> <height>699</height>
</rect> </rect>
</property> </property>
...@@ -57,7 +57,7 @@ ...@@ -57,7 +57,7 @@
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt; <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt; &lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; } p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt; &lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Noto Sans'; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'DejaVu Sans'; font-size:11pt;&quot;&gt;%1 is developed by:&lt;/span&gt;&lt;/p&gt; &lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'DejaVu Sans'; font-size:11pt;&quot;&gt;%1 is developed by:&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'DejaVu Sans'; font-size:11pt; font-weight:600;&quot;&gt;Department of Computer Science VIII&lt;/span&gt;&lt;/p&gt; &lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'DejaVu Sans'; font-size:11pt; font-weight:600;&quot;&gt;Department of Computer Science VIII&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'DejaVu Sans'; font-size:11pt; font-weight:600;&quot;&gt;Aachen University of Technology (RWTH)&lt;/span&gt;&lt;/p&gt; &lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'DejaVu Sans'; font-size:11pt; font-weight:600;&quot;&gt;Aachen University of Technology (RWTH)&lt;/span&gt;&lt;/p&gt;
......
...@@ -61,8 +61,10 @@ ...@@ -61,8 +61,10 @@
#include <common/glew_wrappers.hh> #include <common/glew_wrappers.hh>
#include "CoreWidget.hh" #include "CoreWidget.hh"
#include <OpenFlipper/common/PluginStorage.hh>
#include <OpenFlipper/common/FileTypes.hh> #include <OpenFlipper/common/FileTypes.hh>
#include <QGLFormat> #include <QGLFormat>
#ifndef WIN32 #ifndef WIN32
...@@ -744,6 +746,69 @@ void CoreWidget::showAboutWidget( ) { ...@@ -744,6 +746,69 @@ void CoreWidget::showAboutWidget( ) {
aboutWidget_->OpenFlipperAbout->append( "\t\t Save: " + supportedTypes()[i].saveFilters ); aboutWidget_->OpenFlipperAbout->append( "\t\t Save: " + supportedTypes()[i].saveFilters );
} }
// =====================================================================================
// List all Plugins
// =====================================================================================
aboutWidget_->OpenFlipperAbout->append("\n");
aboutWidget_->OpenFlipperAbout->setCurrentFont(boldFont);
aboutWidget_->OpenFlipperAbout->append(tr("Loaded Plugins:"));
aboutWidget_->OpenFlipperAbout->setCurrentFont(standardFont);
for ( uint i = 0 ; i < plugins().size() ; ++i ) {
aboutWidget_->OpenFlipperAbout->setCurrentFont(boldFont);
aboutWidget_->OpenFlipperAbout->append( "\t" + plugins()[i].name );
aboutWidget_->OpenFlipperAbout->setCurrentFont(standardFont);
aboutWidget_->OpenFlipperAbout->append( "\t\t Version: \t\t" + plugins()[i].version );
aboutWidget_->OpenFlipperAbout->append( "\t\t Description: \t" + plugins()[i].description );
aboutWidget_->OpenFlipperAbout->append( "\t\t Path \t\t" + plugins()[i].path );
if ( !plugins()[i].warnings.isEmpty() ) {
aboutWidget_->OpenFlipperAbout->setTextColor(Qt::darkYellow);
aboutWidget_->OpenFlipperAbout->append( "\t\t Warnings: \t\t" + plugins()[i].warnings );
aboutWidget_->OpenFlipperAbout->setTextColor(Qt::black);
}
if ( !plugins()[i].errors.isEmpty() ) {
aboutWidget_->OpenFlipperAbout->setTextColor(Qt::darkRed);
aboutWidget_->OpenFlipperAbout->append( "\t\t Errors: \t\t" + plugins()[i].errors );
aboutWidget_->OpenFlipperAbout->setTextColor(Qt::black);
}
}
// =====================================================================================
// List failed Plugins
// =====================================================================================
aboutWidget_->OpenFlipperAbout->setCurrentFont(boldFont);
aboutWidget_->OpenFlipperAbout->append(tr("Failed Plugins:"));
aboutWidget_->OpenFlipperAbout->setCurrentFont(standardFont);
for ( unsigned i = 0 ; i < PluginStorage::pluginsFailed().size() ; ++i ) {
aboutWidget_->OpenFlipperAbout->setCurrentFont(boldFont);
aboutWidget_->OpenFlipperAbout->append( "\t" + PluginStorage::pluginsFailed()[i].name );
aboutWidget_->OpenFlipperAbout->setCurrentFont(standardFont);
aboutWidget_->OpenFlipperAbout->append( "\t\t Version: \t\t" + PluginStorage::pluginsFailed()[i].version );
aboutWidget_->OpenFlipperAbout->append( "\t\t Description: \t" + PluginStorage::pluginsFailed()[i].description );
aboutWidget_->OpenFlipperAbout->append( "\t\t Path \t\t" + PluginStorage::pluginsFailed()[i].path );
if ( !PluginStorage::pluginsFailed()[i].warnings.isEmpty() ) {
aboutWidget_->OpenFlipperAbout->setTextColor(Qt::darkYellow);
aboutWidget_->OpenFlipperAbout->append( "\t\t Warnings: \t\t" + PluginStorage::pluginsFailed()[i].warnings );
aboutWidget_->OpenFlipperAbout->setTextColor(Qt::black);
}
if ( !PluginStorage::pluginsFailed()[i].errors.isEmpty() ) {
aboutWidget_->OpenFlipperAbout->setTextColor(Qt::darkRed);
aboutWidget_->OpenFlipperAbout->append( "\t\t Errors: \t\t" + PluginStorage::pluginsFailed()[i].errors );
aboutWidget_->OpenFlipperAbout->setTextColor(Qt::black);
}
}
// ===================================================================================== // =====================================================================================
// List of build-in resources // List of build-in resources
// ===================================================================================== // =====================================================================================
......
...@@ -58,7 +58,7 @@ ...@@ -58,7 +58,7 @@
//== INCLUDES ================================================================= //== INCLUDES =================================================================
// -------------------- mview
#include "CoreWidget.hh" #include "CoreWidget.hh"
//== IMPLEMENTATION ========================================================== //== IMPLEMENTATION ==========================================================
...@@ -773,8 +773,8 @@ void CoreWidget::slotAddContextItem( QAction* _entry , DataType _dataType ,Conte ...@@ -773,8 +773,8 @@ void CoreWidget::slotAddContextItem( QAction* _entry , DataType _dataType ,Conte
void CoreWidget::slotAddContextItemToViewMode( QAction* _entry ) { void CoreWidget::slotAddContextItemToViewMode( QAction* _entry ) {
int id = -1; int id = -1;
// Find the plugin which added this Context Menu // Find the plugin which added this Context Menu
for ( uint i = 0 ; i < plugins_.size(); ++i ) { for ( uint i = 0 ; i < plugins().size(); ++i ) {
if ( plugins_[i].plugin == sender() ) { if ( plugins()[i].plugin == sender() ) {
id = i; id = i;
break; break;
} }
...@@ -782,8 +782,8 @@ void CoreWidget::slotAddContextItemToViewMode( QAction* _entry ) { ...@@ -782,8 +782,8 @@ void CoreWidget::slotAddContextItemToViewMode( QAction* _entry ) {
// Find the scripting plugin because we assign this context menu to it as we did not find the original sender // Find the scripting plugin because we assign this context menu to it as we did not find the original sender
if ( id == -1 ) { if ( id == -1 ) {
for ( uint i = 0 ; i < plugins_.size(); ++i ) { for ( uint i = 0 ; i < plugins().size(); ++i ) {
if ( plugins_[i].name == "Scripting" ) { if ( plugins()[i].name == "Scripting" ) {
id = i; id = i;
break; break;
} }
...@@ -796,11 +796,11 @@ void CoreWidget::slotAddContextItemToViewMode( QAction* _entry ) { ...@@ -796,11 +796,11 @@ void CoreWidget::slotAddContextItemToViewMode( QAction* _entry ) {
} }
} }
plugins_[id].contextMenus.push_back( std::pair< QString,QAction* >( plugins_[id].name + "->" + _entry->text(), _entry) ); plugins()[id].contextMenus.push_back( std::pair< QString,QAction* >( plugins()[id].name + "->" + _entry->text(), _entry) );
// add widget name to viewMode 'all' // add widget name to viewMode 'all'
if ( !viewModes_[0]->visibleContextMenus.contains(plugins_[id].name + "->" + _entry->text()) ){ if ( !viewModes_[0]->visibleContextMenus.contains(plugins()[id].name + "->" + _entry->text()) ){
viewModes_[0]->visibleContextMenus << plugins_[id].name + "->" + _entry->text(); viewModes_[0]->visibleContextMenus << plugins()[id].name + "->" + _entry->text();
viewModes_[0]->visibleContextMenus.sort(); viewModes_[0]->visibleContextMenus.sort();
} }
......
...@@ -69,6 +69,8 @@ ...@@ -69,6 +69,8 @@
#include <ACG/Scenegraph/SceneGraphAnalysis.hh> #include <ACG/Scenegraph/SceneGraphAnalysis.hh>
#include <ACG/GL/ShaderCache.hh> #include <ACG/GL/ShaderCache.hh>
#include <OpenFlipper/common/PluginStorage.hh>
// -------------------- Qt event Includes // -------------------- Qt event Includes
#include <QGLFormat> #include <QGLFormat>
...@@ -136,7 +138,6 @@ QToolBar * PickMode::toolbar() const { ...@@ -136,7 +138,6 @@ QToolBar * PickMode::toolbar() const {
*/ */
CoreWidget:: CoreWidget::
CoreWidget( QVector<ViewMode*>& _viewModes, CoreWidget( QVector<ViewMode*>& _viewModes,
std::vector<PluginInfo>& _plugins,
QList< SlotInfo >& _coreSlots ) : QList< SlotInfo >& _coreSlots ) :
QMainWindow(), QMainWindow(),
coreSlots_(_coreSlots), coreSlots_(_coreSlots),
...@@ -187,7 +188,6 @@ CoreWidget( QVector<ViewMode*>& _viewModes, ...@@ -187,7 +188,6 @@ CoreWidget( QVector<ViewMode*>& _viewModes,
stereoSettingsWidget_(0), stereoSettingsWidget_(0),
aboutWidget_(0), aboutWidget_(0),
optionsWidget_(0), optionsWidget_(0),
plugins_(_plugins),
stereoActive_(false), stereoActive_(false),
actionMode_(Viewer::PickingMode), actionMode_(Viewer::PickingMode),
lastActionMode_(Viewer::ExamineMode), lastActionMode_(Viewer::ExamineMode),
...@@ -661,6 +661,13 @@ CoreWidget::~CoreWidget() { ...@@ -661,6 +661,13 @@ CoreWidget::~CoreWidget() {
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
std::vector<PluginInfo>& CoreWidget::plugins() {
return PluginStorage::plugins();
};
//-----------------------------------------------------------------------------
/** Set viewer to Fullscreen Mode and back /** Set viewer to Fullscreen Mode and back
*/ */
void void
...@@ -782,10 +789,10 @@ void CoreWidget::showToolBar( bool _state ) ...@@ -782,10 +789,10 @@ void CoreWidget::showToolBar( bool _state )
if ( ! viewerToolbar_->isFloating() ) if ( ! viewerToolbar_->isFloating() )
viewerToolbar_->hide(); viewerToolbar_->hide();
for (uint p=0; p < plugins_.size(); p++) for (uint p=0; p < plugins().size(); p++)
for ( uint j = 0 ; j < plugins_[p].toolbars.size(); ++j ) { for ( uint j = 0 ; j < plugins()[p].toolbars.size(); ++j ) {
if ( ! plugins_[p].toolbars[j].second->isFloating() ) if ( ! plugins()[p].toolbars[j].second->isFloating() )
plugins_[p].toolbars[j].second->hide(); plugins()[p].toolbars[j].second->hide();
} }
} }
else else
...@@ -911,7 +918,7 @@ void CoreWidget::showOptionsWidget() { ...@@ -911,7 +918,7 @@ void CoreWidget::showOptionsWidget() {
return; return;
if ( optionsWidget_ == 0 ) { if ( optionsWidget_ == 0 ) {
optionsWidget_ = new OptionsWidget(plugins_, coreKeys_, invKeys_, 0); optionsWidget_ = new OptionsWidget(plugins(), coreKeys_, invKeys_, 0);
connect(optionsWidget_,SIGNAL(applyOptions()),this,SIGNAL(applyOptions())); connect(optionsWidget_,SIGNAL(applyOptions()),this,SIGNAL(applyOptions()));
connect(optionsWidget_,SIGNAL(saveOptions()),this,SIGNAL(saveOptions())); connect(optionsWidget_,SIGNAL(saveOptions()),this,SIGNAL(saveOptions()));
connect(optionsWidget_,SIGNAL(addKeyMapping(int,Qt::KeyboardModifiers,QObject*,int)), connect(optionsWidget_,SIGNAL(addKeyMapping(int,Qt::KeyboardModifiers,QObject*,int)),
......
...@@ -292,7 +292,7 @@ public: ...@@ -292,7 +292,7 @@ public:
friend class Core; friend class Core;
/// constructor /// constructor
CoreWidget( QVector<ViewMode*>& _viewModes, std::vector<PluginInfo>& _plugins, QList< SlotInfo >& _coreSlots ); CoreWidget( QVector<ViewMode*>& _viewModes, QList< SlotInfo >& _coreSlots );
/// destructor /// destructor
~CoreWidget(); ~CoreWidget();
...@@ -451,6 +451,19 @@ public: ...@@ -451,6 +451,19 @@ public:
/** @} */ /** @} */
//===========================================================================
/** @name GUI creation
* @{ */
//===========================================================================
private:
/// Convenient way to access plugin list
std::vector<PluginInfo>& plugins();
/** @} */
//=========================================================================== //===========================================================================
/** @name Video Capturing /** @name Video Capturing
* @{ */ * @{ */
...@@ -1278,11 +1291,6 @@ public: ...@@ -1278,11 +1291,6 @@ public:
/** @} */ /** @} */
private :
std::vector<PluginInfo>& plugins_;
//=========================================================================== //===========================================================================
/** @name Viewer Controls /** @name Viewer Controls
* @{ */ * @{ */
......
...@@ -58,11 +58,8 @@ ...@@ -58,11 +58,8 @@
//== INCLUDES ================================================================= //== INCLUDES =================================================================
// -------------------- mview
#include "CoreWidget.hh"
// -------------------- ACG
// -------------------- Qt #include "CoreWidget.hh"
//== IMPLEMENTATION ========================================================== //== IMPLEMENTATION ==========================================================
...@@ -71,8 +68,8 @@ void CoreWidget::slotAddToolbar(QToolBar* _toolbar) { ...@@ -71,8 +68,8 @@ void CoreWidget::slotAddToolbar(QToolBar* _toolbar) {
int id = -1; int id = -1;
// Find the plugin which added this Toolbox // Find the plugin which added this Toolbox
for ( unsigned int i = 0 ; i < plugins_.size(); ++i ) { for ( unsigned int i = 0 ; i < plugins().size(); ++i ) {
if ( plugins_[i].plugin == sender() ) { if ( plugins()[i].plugin == sender() ) {
id = i; id = i;
break; break;
} }
...@@ -80,8 +77,8 @@ void CoreWidget::slotAddToolbar(QToolBar* _toolbar) { ...@@ -80,8 +77,8 @@ void CoreWidget::slotAddToolbar(QToolBar* _toolbar) {
// Find the scripting plugin because we assign this toolBox to it as we did not find the original sender // Find the scripting plugin because we assign this toolBox to it as we did not find the original sender
if ( id == -1 ) { if ( id == -1 ) {
for ( unsigned int i = 0 ; i < plugins_.size(); ++i ) { for ( unsigned int i = 0 ; i < plugins().size(); ++i ) {
if ( plugins_[i].name == "Scripting" ) { if ( plugins()[i].name == "Scripting" ) {
id = i; id = i;
break; break;
} }
...@@ -108,7 +105,7 @@ void CoreWidget::slotAddToolbar(QToolBar* _toolbar) { ...@@ -108,7 +105,7 @@ void CoreWidget::slotAddToolbar(QToolBar* _toolbar) {
// Remember which plugin this toolbar belongs to // Remember which plugin this toolbar belongs to
if ( id != -1 ) if ( id != -1 )
plugins_[id].toolbars.push_back( std::pair< QString,QToolBar* >( _toolbar->windowTitle() , _toolbar) ); plugins()[id].toolbars.push_back( std::pair< QString,QToolBar* >( _toolbar->windowTitle() , _toolbar) );
// add widget name to viewMode 'all' // add widget name to viewMode 'all'
if ( !viewModes_[0]->visibleToolbars.contains( _toolbar->windowTitle() ) ){ if ( !viewModes_[0]->visibleToolbars.contains( _toolbar->windowTitle() ) ){
......
...@@ -57,9 +57,9 @@ KeyBinding CoreWidget::getKeyBinding(QObject* _plugin, int _keyIndex ){ ...@@ -57,9 +57,9 @@ KeyBinding CoreWidget::getKeyBinding(QObject* _plugin, int _keyIndex ){
if (_plugin == 0) if (_plugin == 0)
return coreKeys_[_keyIndex]; return coreKeys_[_keyIndex];
for (uint i=0; i < plugins_.size(); i++){ for (uint i=0; i < plugins().size(); i++){
if (plugins_[i].plugin == _plugin) if (plugins()[i].plugin == _plugin)
return plugins_[i].keys[_keyIndex]; return plugins()[i].keys[_keyIndex];
} }
emit log(LOGERR,tr("ERROR: could not get KeyBinding")); emit log(LOGERR,tr("ERROR: could not get KeyBinding"));
...@@ -70,9 +70,9 @@ QString CoreWidget::getRPCName(QObject* _plugin ){ ...@@ -70,9 +70,9 @@ QString CoreWidget::getRPCName(QObject* _plugin ){
if (_plugin == 0) if (_plugin == 0)
return ""; return "";
for (uint i=0; i < plugins_.size(); i++){ for (uint i=0; i < plugins().size(); i++){
if (plugins_[i].plugin == _plugin) if (plugins()[i].plugin == _plugin)
return plugins_[i].rpcName; return plugins()[i].rpcName;
} }
emit log(LOGERR,tr("ERROR: could not get rpcname")); emit log(LOGERR,tr("ERROR: could not get rpcname"));
...@@ -225,13 +225,13 @@ void CoreWidget::slotRegisterKey(int _key, Qt::KeyboardModifiers _modifiers, QSt ...@@ -225,13 +225,13 @@ void CoreWidget::slotRegisterKey(int _key, Qt::KeyboardModifiers _modifiers, QSt
//then check if the key is already registered by a different plugin //then check if the key is already registered by a different plugin
if (!found) if (!found)
for (uint i=0; i < plugins_.size(); i++) for (uint i=0; i < plugins().size(); i++)
for (int k=0; k < plugins_[i].keys.count(); k++) for (int k=0; k < plugins()[i].keys.count(); k++)
if (plugins_[i].keys[k].key == _key if (plugins()[i].keys[k].key == _key
&& plugins_[i].keys[k].modifiers == _modifiers){ && plugins()[i].keys[k].modifiers == _modifiers){
found = true; found = true;
multi = plugins_[i].keys[k].multiUse; multi = plugins()[i].keys[k].multiUse;
name = plugins_[i].name; name = plugins()[i].name;
break; break;
} }
...@@ -260,9 +260,9 @@ void CoreWidget::slotRegisterKey(int _key, Qt::KeyboardModifiers _modifiers, QSt ...@@ -260,9 +260,9 @@ void CoreWidget::slotRegisterKey(int _key, Qt::KeyboardModifiers _modifiers, QSt
//find plugin //find plugin
PluginInfo* pluginInfo = 0; PluginInfo* pluginInfo = 0;
for (uint i=0; i < plugins_.size(); i++) for (uint i=0; i < plugins().size(); i++)
if (plugins_[i].plugin == sender()) if (plugins()[i].plugin == sender())
pluginInfo = &plugins_[i]; pluginInfo = &plugins()[i];
if (pluginInfo == 0){ if (pluginInfo == 0){
emit log(LOGERR, tr("Unable to register key. Plugin not found!")); emit log(LOGERR, tr("Unable to register key. Plugin not found!"));
...@@ -309,26 +309,26 @@ void CoreWidget::slotRegisterSlotKeyBindings(){ ...@@ -309,26 +309,26 @@ void CoreWidget::slotRegisterSlotKeyBindings(){
} }
//check all plugins //check all plugins
for (uint i=0; i < plugins_.size(); i++) for (uint i=0; i < plugins().size(); i++)
for (int j=0; j < plugins_[i].rpcFunctions.count(); j++){ for (int j=0; j < plugins()[i].rpcFunctions.count(); j++){
//only consider functions without arguments //only consider functions without arguments
if ( !plugins_[i].rpcFunctions[j].contains( "()" ) if ( !plugins()[i].rpcFunctions[j].contains( "()" )
|| plugins_[i].rpcFunctions[j] == "version()") || plugins()[i].rpcFunctions[j] == "version()")
continue; continue;
KeyBinding kb; KeyBinding kb;
kb.key = -1; kb.key = -1;
kb.modifiers = 0; kb.modifiers = 0;
kb.description = plugins_[i].rpcFunctions[j]; kb.description = plugins()[i].rpcFunctions[j];
kb.multiUse = true; kb.multiUse = true;
kb.slot = true; kb.slot = true;
plugins_[i].keys.append( kb ); plugins()[i].keys.append( kb );
keys_.insert( std::make_pair( std::make_pair(-1, (QFlags<Qt::KeyboardModifier>)0) , std::make_pair(plugins_[i].plugin, plugins_[i].keys.size()-1) ) ); keys_.insert( std::make_pair( std::make_pair(-1, (QFlags<Qt::KeyboardModifier>)0) , std::make_pair(plugins()[i].plugin, plugins()[i].keys.size()-1) ) );
invKeys_.insert( std::make_pair( std::make_pair(plugins_[i].plugin, plugins_[i].keys.size()-1) , std::make_pair(-1, (QFlags<Qt::KeyboardModifier>)0) ) ); invKeys_.insert( std::make_pair( std::make_pair(plugins()[i].plugin, plugins()[i].keys.size()-1) , std::make_pair(-1, (QFlags<Qt::KeyboardModifier>)0) ) );
} }
} }
...@@ -440,9 +440,9 @@ void CoreWidget::loadKeyBindings(INIFile& _ini){ ...@@ -440,9 +440,9 @@ void CoreWidget::loadKeyBindings(INIFile& _ini){
if (pluginNames[i] != "Core" ){ if (pluginNames[i] != "Core" ){
//search for the plugin //search for the plugin
for (uint i=0; i < plugins_.size(); i++) for (uint i=0; i < plugins().size(); i++)
if (plugins_[i].rpcName == pluginNames[i] ){ if (plugins()[i].rpcName == pluginNames[i] ){
plugin = plugins_[i].plugin; plugin = plugins()[i].plugin;
break; break;
} }
......
...@@ -370,12 +370,12 @@ void CoreWidget::slotChangeView(QString _mode, QStringList _toolboxWidgets, QStr ...@@ -370,12 +370,12 @@ void CoreWidget::slotChangeView(QString _mode, QStringList _toolboxWidgets, QStr
//find all widgets that should be visible //find all widgets that should be visible
for (int i=0; i < _toolboxWidgets.size(); i++) { for (int i=0; i < _toolboxWidgets.size(); i++) {
for (uint p=0; p < plugins_.size(); p++){ for (uint p=0; p < plugins().size(); p++){
for ( uint j = 0 ; j < plugins_[p].toolboxWidgets.size(); ++j ) for ( uint j = 0 ; j < plugins()[p].toolboxWidgets.size(); ++j )
if (_toolboxWidgets[i] == plugins_[p].toolboxWidgets[j].first ) { if (_toolboxWidgets[i] == plugins()[p].toolboxWidgets[j].first ) {
bool skip = false; bool skip = false;
if (toolBox_->plugins().contains(plugins_[p].plugin)) { if (toolBox_->plugins().contains(plugins()[p].plugin)) {
// account for the case, where a plugin can have several // account for the case, where a plugin can have several
// toolboxes, for example 'Scripting' // toolboxes, for example 'Scripting'
if (toolBox_->names().contains(_toolboxWidgets[i])) if (toolBox_->names().contains(_toolboxWidgets[i]))
...@@ -384,17 +384,17 @@ void CoreWidget::slotChangeView(QString _mode, QStringList _toolboxWidgets, QStr ...@@ -384,17 +384,17 @@ void CoreWidget::slotChangeView(QString _mode, QStringList _toolboxWidgets, QStr
// only add items that have not been added yet // only add items that have not been added yet
if (!skip) { if (!skip) {
toolBox_->addItem (plugins_[p].plugin, plugins_[p].toolboxWidgets[j].second, plugins_[p].toolboxWidgets[j].first, plugins_[p].toolboxIcons[j], plugins_[p].headerAreaWidgets[j].second ); toolBox_->addItem (plugins()[p].plugin, plugins()[p].toolboxWidgets[j].second, plugins()[p].toolboxWidgets[j].first, plugins()[p].toolboxIcons[j], plugins()[p].headerAreaWidgets[j].second );
// move item to the correct position // move item to the correct position
if (i < toolBox_->lastPos_) { if (i < toolBox_->lastPos_) {
toolBox_->moveItemToPosition(plugins_[p].plugin, _toolboxWidgets[i], i); toolBox_->moveItemToPosition(plugins()[p].plugin, _toolboxWidgets[i], i);
} else } else
toolBox_->lastPos_ = i; toolBox_->lastPos_ = i;
// check if we have to restore the state // check if we have to restore the state
// of toolboxes added via scripts // of toolboxes added via scripts
if (plugins_[p].name == "Scripting") { if (plugins()[p].name == "Scripting") {
QFile statesFile(OpenFlipper::Options::configDirStr() + OpenFlipper::Options::dirSeparator() + "WindowStates.dat"); QFile statesFile(OpenFlipper::Options::configDirStr() + OpenFlipper::Options::dirSeparator() + "WindowStates.dat");
...@@ -428,12 +428,12 @@ void CoreWidget::slotChangeView(QString _mode, QStringList _toolboxWidgets, QStr ...@@ -428,12 +428,12 @@ void CoreWidget::slotChangeView(QString _mode, QStringList _toolboxWidgets, QStr
if ( ! OpenFlipperSettings().value("Core/Gui/Toolbar/hidden",false).toBool()) if ( ! OpenFlipperSettings().value("Core/Gui/Toolbar/hidden",false).toBool())
{ {
//find all Toolbars that should be visible and hide the others //find all Toolbars that should be visible and hide the others
for (uint p=0; p < plugins_.size(); p++) for (uint p=0; p < plugins().size(); p++)
for ( uint j = 0 ; j < plugins_[p].toolbars.size(); ++j ) for ( uint j = 0 ; j < plugins()[p].toolbars.size(); ++j )
if (_toolbars.contains( plugins_[p].toolbars[j].first ) ) if (_toolbars.contains( plugins()[p].toolbars[j].first ) )
plugins_[p].toolbars[j].second->show(); plugins()[p].toolbars[j].second->show();
else else
plugins_[p].toolbars[j].second->hide(); plugins()[p].toolbars[j].second->hide();
// Check the Main Toolbar: // Check the Main Toolbar:
......
...@@ -52,7 +52,7 @@ ...@@ -52,7 +52,7 @@
#include <QtWidgets> #include <QtWidgets>
#include <OpenFlipper/common/FileTypes.hh>
class FileOptionsDialog : public QDialog class FileOptionsDialog : public QDialog
{ {
......
...@@ -56,6 +56,9 @@ ...@@ -56,6 +56,9 @@
#include <map> #include <map>
#include <OpenFlipper/common/FileTypes.hh>
class LoadWidget : public QFileDialog class LoadWidget : public QFileDialog
{ {
Q_OBJECT Q_OBJECT
......