Files
create/src/Gui/PropertyView.h

110 lines
3.5 KiB
C++

/***************************************************************************
* Copyright (c) 2002 Jürgen Riegel <juergen.riegel@web.de> *
* *
* This file is part of the FreeCAD CAx development system. *
* *
* This library is free software; you can redistribute it and/or *
* modify it under the terms of the GNU Library General Public *
* License as published by the Free Software Foundation; either *
* version 2 of the License, or (at your option) any later version. *
* *
* This library 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 Library General Public License for more details. *
* *
* You should have received a copy of the GNU Library General Public *
* License along with this library; see the file COPYING.LIB. If not, *
* write to the Free Software Foundation, Inc., 59 Temple Place, *
* Suite 330, Boston, MA 02111-1307, USA *
* *
***************************************************************************/
#ifndef GUI_DOCKWND_PROPERTYVIEW_H
#define GUI_DOCKWND_PROPERTYVIEW_H
#include "DockWindow.h"
#include "Selection.h"
#include <boost/signals.hpp>
class QPixmap;
class QTabWidget;
namespace App {
class Property;
class PropertyContainer;
class DocumentObject;
}
namespace Gui {
namespace PropertyEditor {
class EditableListView;
class EditableItem;
class PropertyEditor;
} // namespace PropertyEditor
} // namespace Gui
namespace Gui {
class ViewProvider;
/** The property view class.
*/
class PropertyView : public QWidget, public Gui::SelectionObserver
{
Q_OBJECT
public:
PropertyView(QWidget *parent=0);
virtual ~PropertyView();
Gui::PropertyEditor::PropertyEditor* propertyEditorView;
Gui::PropertyEditor::PropertyEditor* propertyEditorData;
public Q_SLOTS:
/// Stores a preference for the last tab selected
void tabChanged(int index);
protected:
void changeEvent(QEvent *e);
private:
void onSelectionChanged(const SelectionChanges& msg);
void slotChangePropertyData(const App::DocumentObject&, const App::Property&);
void slotChangePropertyView(const Gui::ViewProvider&, const App::Property&);
void slotAppendDynamicProperty(const App::Property&);
void slotRemoveDynamicProperty(const App::Property&);
private:
struct PropInfo;
struct PropFind;
typedef boost::BOOST_SIGNALS_NAMESPACE::connection Connection;
Connection connectPropData;
Connection connectPropView;
Connection connectPropAppend;
Connection connectPropRemove;
QTabWidget* tabs;
};
namespace DockWnd {
/** A dock window with the embedded property view.
*/
class PropertyDockView : public Gui::DockWindow
{
Q_OBJECT
public:
PropertyDockView(Gui::Document* pcDocument, QWidget *parent=0);
virtual ~PropertyDockView();
};
} // namespace DockWnd
} // namespace Gui
#endif // GUI_DOCKWND_PROPERTYVIEW_H