Commit a5aee3b3 authored by Jan Möbius's avatar Jan Möbius

Splitted pout viewMode Interface

git-svn-id: http://www.openflipper.org/svnrepo/OpenFlipper/branches/Free@7232 383ad7c9-94d9-4d36-a494-682f7c89f535
parent 2e148229
......@@ -96,14 +96,14 @@ class ToolboxInterface {
signals :
/** \brief Defines a new ViewMode
/** \brief Defines a new ViewMode for the Toolboxes
*
* Slot defines a new ViewMode e.g. a mode where only useful widgets
* are visible by default
* @param _mode name of the ViewMode
* @param _usedWidgets list of used Widgets names
*/
virtual void defineViewMode(QString& /*_mode*/, QStringList& /*_usedWidgets*/){};
virtual void defineViewModeToolboxes(QString& /*_mode*/, QStringList& /*_usedWidgets*/){};
/** \brief Add a toolbox widget to the gui with the given name
......
/*===========================================================================*\
* *
* 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: 6727 $ *
* $Author: moebius $ *
* $Date: 2009-08-05 08:03:50 +0200 (Mi, 05. Aug 2009) $ *
* *
\*===========================================================================*/
//
// C++ Interface: ViewModeInterface
//
// Description:
//
//
// Author: Jan Moebius <jan_moebius@web.de>, (C) 2007
//
#ifndef VIEWMODEINTERFACE_HH
#define VIEWMODEINTERFACE_HH
#include <QtGui>
#include <QMenuBar>
#include <QStringList>
/**
* \brief Define View Modes using this interface
*
* This Interface can be used to configure visible widgets in the viewer. A given
* view mode contains a list of toolbars, toolboxes and context menus which should
* be visible if the mode is active. Therefore you can define a subset of the
* full interface for special tasks.
*
*/
class ViewModeInterface {
private slots :
public :
/// Destructor
virtual ~ViewModeInterface() {};
signals :
/** \brief Defines a new ViewMode for the Toolboxes
*
* With this function you can define a set of toolboxes which should be visible
* for the specified view mode.
*
* @param _mode name of the ViewMode
* @param _usedWidgets list of used Widgets names
*/
virtual void defineViewModeToolboxes(QString& /*_mode*/, QStringList& /*_usedWidgets*/){};
};
Q_DECLARE_INTERFACE(ViewModeInterface,"OpenFlipper.ViewModeInterface/1.0")
#endif // VIEWMODEINTERFACE_HH
......@@ -75,6 +75,7 @@
#include "OpenFlipper/BasePlugin/MenuInterface.hh"
#include "OpenFlipper/BasePlugin/ContextMenuInterface.hh"
#include "OpenFlipper/BasePlugin/ViewInterface.hh"
#include "OpenFlipper/BasePlugin/ViewModeInterface.hh"
#include "OpenFlipper/BasePlugin/LoadSaveInterface.hh"
#include "OpenFlipper/BasePlugin/StatusbarInterface.hh"
#include "OpenFlipper/BasePlugin/INIInterface.hh"
......@@ -603,10 +604,6 @@ void Core::loadPlugin(QString filename, bool silent){
}
}
if ( checkSignal(plugin, "defineViewMode(QString,QStringList)"))
connect(plugin, SIGNAL( defineViewMode(QString, QStringList) ),
coreWidget_, SLOT( slotAddViewMode(QString, QStringList) ),Qt::DirectConnection );
if ( checkSignal(plugin, "addToolbox(QString,QWidget*)"))
connect(plugin, SIGNAL( addToolbox(QString,QWidget*) ),
this, SLOT( addToolbox(QString,QWidget*) ),Qt::DirectConnection );
......@@ -614,6 +611,18 @@ void Core::loadPlugin(QString filename, bool silent){
}
//Check if the plugin supports ViewMode-Interface
ViewModeInterface* viewModePlugin = qobject_cast< ViewModeInterface * >(plugin);
if ( viewModePlugin && OpenFlipper::Options::gui() ) {
supported = supported + "ViewMode ";
std::cerr << "Defined by " << info.name.toStdString() << std::endl;;
if ( checkSignal(plugin, "defineViewModeToolboxes(QString,QStringList)"))
connect(plugin, SIGNAL( defineViewModeToolboxes(QString, QStringList) ),
coreWidget_, SLOT( slotAddViewModeToolboxes(QString, QStringList) ),Qt::DirectConnection );
}
//Check if the plugin supports Options-Interface
OptionsInterface* optionsPlugin = qobject_cast< OptionsInterface * >(plugin);
......
......@@ -133,7 +133,7 @@ void Core::setViewMode(QString _viewMode){
void Core::addViewMode(QString _modeName, QString _toolboxList) {
QStringList list = _toolboxList.split(";");
coreWidget_->slotAddViewMode(_modeName,list);
coreWidget_->slotAddViewModeToolboxes(_modeName,list);
}
//-----------------------------------------------------------------------------
......
......@@ -394,10 +394,10 @@ public:
void initViewModes( );
/// Add a new ViewMode (non-userdefined viewMode)
void slotAddViewMode(QString _mode, QStringList _usedWidgets);
void slotAddViewModeToolboxes(QString _mode, QStringList _usedWidgets);
/// Add a new ViewMode (_custom == userdefined viewMode)
void slotAddViewMode(QString _mode, bool _custom, QStringList _usedWidgets);
void slotAddViewModeToolboxes(QString _mode, bool _custom, QStringList _usedWidgets);
/// Slot for Changing visible toolWidgets
void slotChangeView(QString _mode, QStringList _toolWidgets);
......
......@@ -87,12 +87,12 @@ void CoreWidget::initViewModes(){
}
/// Add a new viewMode (non-custom)
void CoreWidget::slotAddViewMode(QString _mode, QStringList _usedWidgets){
slotAddViewMode(_mode, false, _usedWidgets);
void CoreWidget::slotAddViewModeToolboxes(QString _mode, QStringList _usedWidgets){
slotAddViewModeToolboxes(_mode, false, _usedWidgets);
}
/// Add a new viewMode
void CoreWidget::slotAddViewMode(QString _mode, bool _custom, QStringList _usedWidgets){
void CoreWidget::slotAddViewModeToolboxes(QString _mode, bool _custom, QStringList _usedWidgets){
ViewMode* vm = new ViewMode();
vm->name = _mode;
vm->custom = _custom;
......@@ -149,7 +149,7 @@ void CoreWidget::slotViewModeDialog(){
widget = new viewModeWidget(viewModes_);
widget->setWindowIcon( OpenFlipper::Options::OpenFlipperIcon() );
connect(widget, SIGNAL(changeView(QString, QStringList)), this, SLOT(slotChangeView(QString, QStringList)) );
connect(widget, SIGNAL(saveMode(QString, bool, QStringList)), this, SLOT(slotAddViewMode(QString, bool, QStringList)) );
connect(widget, SIGNAL(saveMode(QString, bool, QStringList)), this, SLOT(slotAddViewModeToolboxes(QString, bool, QStringList)) );
connect(widget, SIGNAL(removeMode(QString)), this, SLOT(slotRemoveViewMode(QString)) );
}
widget->show( OpenFlipper::Options::defaultToolboxMode() );
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment