Completed refactoring campvis-application package:

All classes in campvis-application now have the CAMPVIS_APPLICATION_API macro specifying dll export/import state. The executable is now called campvis-gui.
parent 4768160f
......@@ -125,8 +125,8 @@ ENDIF()
ADD_EXECUTABLE(campvis "campvis.cpp")
TARGET_LINK_LIBRARIES(campvis campvis-application ${CampvisMainLibs} ${CampvisGlobalExternalLibs} ${CampvisModulesExternalLibs} ${QT_LIBRARIES})
ADD_EXECUTABLE(campvis-gui "campvis.cpp")
TARGET_LINK_LIBRARIES(campvis-gui campvis-application ${CampvisMainLibs} ${CampvisGlobalExternalLibs} ${CampvisModulesExternalLibs} ${QT_LIBRARIES})
......
......@@ -26,6 +26,7 @@
#define DOUBLEADJUSTERWIDGET_H__
#include "abstractadjusterwidget.h"
#include "application/applicationapi.h"
namespace campvis {
/**
......@@ -34,7 +35,7 @@ namespace campvis {
* DoubleAdjusterWidget consists of a slider, which can be used to quickly change numeric values, and a spin box,
* which is better suited for precise adjustments.
*/
class DoubleAdjusterWidget : public AbstractAdjusterWidget<double> {
class CAMPVIS_APPLICATION_API DoubleAdjusterWidget : public AbstractAdjusterWidget<double> {
Q_OBJECT
......
......@@ -26,6 +26,7 @@
#define INTADJUSTERWIDGET_H__
#include "abstractadjusterwidget.h"
#include "application/applicationapi.h"
namespace campvis {
/**
......@@ -34,7 +35,7 @@ namespace campvis {
* IntAdjusterWidget consists of a slider, which can be used to quickly change integer values, and a spin box,
* which is better suited for precise adjustments.
*/
class IntAdjusterWidget : public AbstractAdjusterWidget<int> {
class CAMPVIS_APPLICATION_API IntAdjusterWidget : public AbstractAdjusterWidget<int> {
Q_OBJECT
public:
......
......@@ -28,6 +28,7 @@
#include <QCompleter>
#include <QLineEdit>
#include "application/applicationapi.h"
#include "scripting/glue/luatable.h"
namespace campvis {
......
......@@ -27,8 +27,10 @@
#include "sigslot/sigslot.h"
#include "application/gui/properties/propertycollectionwidget.h"
#include "modules/io/processors/genericimagereader.h"
#include "application/applicationapi.h"
#include "application/gui/properties/propertycollectionwidget.h"
#include "application/gui/datacontainerinspectorwidget.h"
#include <QScrollArea>
......
......@@ -33,6 +33,7 @@
#include "cgt/qt/qtthreadedcanvas.h"
#include "tbb/mutex.h"
#include "application/applicationapi.h"
#include "application/gui/qtdatahandle.h"
#include "core/properties/metaproperty.h"
......@@ -62,7 +63,7 @@ namespace campvis {
class GeometryData;
class DataContainerInspectorWidget;
class DataContainerInspectorCanvas : public cgt::QtThreadedCanvas, cgt::Painter, public cgt::EventListener, public HasPropertyCollection {
class CAMPVIS_APPLICATION_API DataContainerInspectorCanvas : public cgt::QtThreadedCanvas, cgt::Painter, public cgt::EventListener, public HasPropertyCollection {
Q_OBJECT;
public:
......
......@@ -29,6 +29,7 @@
#include "cgt/painter.h"
#include "tbb/mutex.h"
#include "application/applicationapi.h"
#include "application/gui/qtdatahandle.h"
#include "application/gui/datacontainerinspectorcanvas.h"
#include "application/gui/properties/propertycollectionwidget.h"
......@@ -57,7 +58,7 @@ namespace campvis {
class FaceGeometry;
class DataContainerFileLoaderWidget;
class DataContainerInspectorWidget : public QWidget, public sigslot::has_slots {
class CAMPVIS_APPLICATION_API DataContainerInspectorWidget : public QWidget, public sigslot::has_slots {
Q_OBJECT;
public:
......
......@@ -31,6 +31,7 @@
#include <QVariant>
#include <map>
#include "application/applicationapi.h"
#include "application/tools/treeitem.h"
#include "application/gui/qtdatahandle.h"
......@@ -42,7 +43,7 @@ namespace campvis {
/**
* Specialization for root TreeItems.
*/
class DataContainerTreeRootItem : public TreeItem {
class CAMPVIS_APPLICATION_API DataContainerTreeRootItem : public TreeItem {
public:
explicit DataContainerTreeRootItem(TreeItem* parent = 0);
virtual ~DataContainerTreeRootItem();
......@@ -54,7 +55,7 @@ namespace campvis {
/**
* Specialization for TreeItems hosting an AbstractProcessor.
*/
class DataHandleTreeItem : public TreeItem {
class CAMPVIS_APPLICATION_API DataHandleTreeItem : public TreeItem {
public:
/**
* Creates a new TreeItem for a QtDataHandle
......@@ -96,7 +97,7 @@ namespace campvis {
/**
* QItemModel for displaying a list of pipelines and their processors in the DataContainerTreeWidget.
*/
class DataContainerTreeModel : public QAbstractItemModel {
class CAMPVIS_APPLICATION_API DataContainerTreeModel : public QAbstractItemModel {
Q_OBJECT
public:
......@@ -141,7 +142,7 @@ namespace campvis {
/**
* Qt widget for showing a list of pipelines and their processors in a QTreeView.
*/
class DataContainerTreeWidget : public QTreeView {
class CAMPVIS_APPLICATION_API DataContainerTreeWidget : public QTreeView {
Q_OBJECT;
public:
......
......@@ -25,12 +25,13 @@
#ifndef LOGHIGHLIGHTER_H__
#define LOGHIGHLIGHTER_H__
#include "application/applicationapi.h"
#include <QTextEdit>
#include <QSyntaxHighlighter>
namespace campvis {
class LogHighlighter : public QSyntaxHighlighter {
class CAMPVIS_APPLICATION_API LogHighlighter : public QSyntaxHighlighter {
Q_OBJECT
......
......@@ -29,6 +29,7 @@
#include "cgt/painter.h"
#include "tbb/mutex.h"
#include "application/applicationapi.h"
#include "application/tools/bufferinglog.h"
#include "application/gui/loghighlighter.h"
......@@ -44,7 +45,7 @@
namespace campvis {
class LogViewerWidget : public QWidget {
class CAMPVIS_APPLICATION_API LogViewerWidget : public QWidget {
Q_OBJECT;
public:
......
......@@ -31,6 +31,7 @@
#include <QVariant>
#include <map>
#include "application/applicationapi.h"
#include "application/tools/treeitem.h"
#include "application/gui/qtdatahandle.h"
......@@ -43,7 +44,7 @@ namespace campvis {
// = TreeModel items ==============================================================================
/// Base class for LuaTableTreeWidget items
class LuaTreeItem : public TreeItem {
class CAMPVIS_APPLICATION_API LuaTreeItem : public TreeItem {
public:
enum ModelStyle { FULL_MODEL, COMPLETER_MODEL };
......@@ -65,7 +66,7 @@ namespace campvis {
};
/// The Root Item
class LuaTreeRootItem : public TreeItem {
class CAMPVIS_APPLICATION_API LuaTreeRootItem : public TreeItem {
public:
LuaTreeRootItem(TreeItem* parent = 0);
virtual ~LuaTreeRootItem();
......@@ -75,7 +76,7 @@ namespace campvis {
};
/// Specialization for normal leafs
class LuaTreeItemLeaf : public LuaTreeItem {
class CAMPVIS_APPLICATION_API LuaTreeItemLeaf : public LuaTreeItem {
public:
/**
* Creates a new TreeItem for a QtDataHandle
......@@ -94,7 +95,7 @@ namespace campvis {
};
/// Specialization for normal table items
class LuaTreeItemTable : public LuaTreeItem {
class CAMPVIS_APPLICATION_API LuaTreeItemTable : public LuaTreeItem {
public:
/**
* Creates a new TreeItem for a QtDataHandle
......@@ -122,7 +123,7 @@ namespace campvis {
/**
* QItemModel for displaying a list of pipelines and their processors in the LuaTableTreeWidget.
*/
class LuaTableTreeModel : public QAbstractItemModel {
class CAMPVIS_APPLICATION_API LuaTableTreeModel : public QAbstractItemModel {
Q_OBJECT
public:
......@@ -159,7 +160,7 @@ namespace campvis {
/**
* Qt widget for showing a list of pipelines and their processors in a QTreeView.
*/
class LuaTableTreeWidget : public QTreeView {
class CAMPVIS_APPLICATION_API LuaTableTreeWidget : public QTreeView {
Q_OBJECT;
public:
......
......@@ -26,6 +26,7 @@
#define CAMPVISMAINWINDOW_H__
#include "sigslot/sigslot.h"
#include "application/applicationapi.h"
#include "application/campvisapplication.h"
#include "application/gui/mdi/mdidockarea.h"
#include "application/gui/pipelinetreewidget.h"
......@@ -54,7 +55,7 @@ namespace campvis {
* Main Window for the CAMPVis application.
* Wraps a nice Qt GUI around the CampVisApplication instance given during creation.
*/
class MainWindow : public QMainWindow, public sigslot::has_slots {
class CAMPVIS_APPLICATION_API MainWindow : public QMainWindow, public sigslot::has_slots {
Q_OBJECT
public:
......
......@@ -28,6 +28,7 @@
#include "mdidockedwindow.h"
#include "mdifloatingwindow.h"
#include "application/gui/qtcolortools.h"
#include <QWidget>
namespace campvis {
......@@ -41,7 +42,7 @@ namespace campvis {
* window) of the widget it's passed and seamlessly switching between them in response to the
* user's actions (window dragging, key presses, etc).
*/
class MdiDockableWindow : public QWidget {
class CAMPVIS_APPLICATION_API MdiDockableWindow : public QWidget {
Q_OBJECT
......
......@@ -26,6 +26,7 @@
#define MDIDOCKAREA_H__
#include "mdidockablewindow.h"
#include "application/gui/qtcolortools.h"
#include <QMdiArea>
......@@ -41,7 +42,7 @@ namespace campvis {
* - dockable windows can be created using the addWidget method, which returns an
* MdiDockableWindow instance
*/
class MdiDockArea : public QMdiArea {
class CAMPVIS_APPLICATION_API MdiDockArea : public QMdiArea {
Q_OBJECT
......
......@@ -25,6 +25,7 @@
#ifndef MDIDOCKEDWINDOW_H__
#define MDIDOCKEDWINDOW_H__
#include "application/gui/qtcolortools.h"
#include <QMdiSubWindow>
namespace campvis {
......@@ -38,7 +39,7 @@ namespace campvis {
* MdiDockedWindow implements additional methods (stopWindowDrag) that should be used to
* coordinate its detaching with respect to grabbing/releasing the mouse input.
*/
class MdiDockedWindow : public QMdiSubWindow {
class CAMPVIS_APPLICATION_API MdiDockedWindow : public QMdiSubWindow {
Q_OBJECT
......
......@@ -25,6 +25,7 @@
#ifndef MDIFLOATINGWINDOW_H__
#define MDIFLOATINGWINDOW_H__
#include "application/gui/qtcolortools.h"
#include <QWidget>
namespace campvis {
......@@ -41,7 +42,7 @@ namespace campvis {
* that should be used to coordinate its creation/disposal with respect to grabbing/releasing
* the mouse input.
*/
class MdiFloatingWindow : public QWidget {
class CAMPVIS_APPLICATION_API MdiFloatingWindow : public QWidget {
Q_OBJECT
......
......@@ -33,7 +33,10 @@
#include "core/datastructures/datacontainer.h"
#include "core/pipeline/abstractpipeline.h"
#include "core/pipeline/abstractprocessor.h"
#include "application/applicationapi.h"
#include "application/tools/treeitem.h"
#include <vector>
namespace campvis {
......@@ -43,7 +46,7 @@ namespace campvis {
/**
* Specialization for root TreeItems.
*/
class PipelineTreeRootItem : public TreeItem {
class CAMPVIS_APPLICATION_API PipelineTreeRootItem : public TreeItem {
public:
explicit PipelineTreeRootItem(TreeItem* parent = 0);
virtual ~PipelineTreeRootItem();
......@@ -55,7 +58,7 @@ namespace campvis {
/**
* Specialization for TreeItems hosting an AbstracPipeline.
*/
class DataContainerTreeItem : public TreeItem {
class CAMPVIS_APPLICATION_API DataContainerTreeItem : public TreeItem {
public:
DataContainerTreeItem(DataContainer* dc, TreeItem* parent);
virtual ~DataContainerTreeItem();
......@@ -73,7 +76,7 @@ namespace campvis {
/**
* Specialization for TreeItems hosting an AbstracPipeline.
*/
class PipelineTreeItem : public TreeItem {
class CAMPVIS_APPLICATION_API PipelineTreeItem : public TreeItem {
public:
PipelineTreeItem(AbstractPipeline* pipeline, TreeItem* parent);
virtual ~PipelineTreeItem();
......@@ -91,7 +94,7 @@ namespace campvis {
/**
* Specialization for TreeItems hosting an AbstractProcessor.
*/
class ProcessorTreeItem : public TreeItem {
class CAMPVIS_APPLICATION_API ProcessorTreeItem : public TreeItem {
public:
ProcessorTreeItem(AbstractProcessor* processor, TreeItem* parent);
virtual ~ProcessorTreeItem();
......@@ -111,7 +114,7 @@ namespace campvis {
/**
* QItemModel for displaying a list of pipelines and their processors in the PipelineTreeWidget.
*/
class PipelineTreeModel : public QAbstractItemModel {
class CAMPVIS_APPLICATION_API PipelineTreeModel : public QAbstractItemModel {
Q_OBJECT
public:
......@@ -147,7 +150,7 @@ namespace campvis {
/**
* Qt widget for showing a list of pipelines and their processors in a QTreeView.
*/
class PipelineTreeWidget : public QTreeView {
class CAMPVIS_APPLICATION_API PipelineTreeWidget : public QTreeView {
Q_OBJECT;
public:
......
......@@ -27,6 +27,9 @@
#include "sigslot/sigslot.h"
#include "tbb/atomic.h"
#include "application/applicationapi.h"
#include <QBoxLayout>
#include <QLabel>
#include <QWidget>
......@@ -38,7 +41,7 @@ namespace campvis {
/**
* Abstract base class for property widgets.
*/
class AbstractPropertyWidget : public QWidget, public sigslot::has_slots {
class CAMPVIS_APPLICATION_API AbstractPropertyWidget : public QWidget, public sigslot::has_slots {
Q_OBJECT;
public:
......
......@@ -27,6 +27,7 @@
#include "sigslot/sigslot.h"
#include "application/applicationapi.h"
#include "core/properties/transferfunctionproperty.h"
#include <QBoxLayout>
......@@ -40,7 +41,7 @@ namespace campvis {
/**
* Abstract base class for transfer function editors.
*/
class AbstractTransferFunctionEditor : public QWidget, public sigslot::has_slots {
class CAMPVIS_APPLICATION_API AbstractTransferFunctionEditor : public QWidget, public sigslot::has_slots {
Q_OBJECT;
public:
......
......@@ -25,6 +25,7 @@
#ifndef BOOLPROPERTYWIDGET_H__
#define BOOLPROPERTYWIDGET_H__
#include "application/applicationapi.h"
#include "application/gui/properties/abstractpropertywidget.h"
#include "application/gui/properties/propertywidgetfactory.h"
#include "core/properties/genericproperty.h"
......@@ -35,7 +36,7 @@ namespace campvis {
/**
* Widget for a IntProperty
*/
class BoolPropertyWidget : public AbstractPropertyWidget {
class CAMPVIS_APPLICATION_API BoolPropertyWidget : public AbstractPropertyWidget {
Q_OBJECT;
public:
......
......@@ -25,6 +25,7 @@
#ifndef BUTTONPROPERTYWIDGET_H__
#define BUTTONPROPERTYWIDGET_H__
#include "application/applicationapi.h"
#include "application/gui/properties/abstractpropertywidget.h"
#include "application/gui/properties/propertywidgetfactory.h"
#include "core/properties/buttonproperty.h"
......@@ -36,7 +37,7 @@ namespace campvis {
* Widget for a Camera.
* For now just offering read-access.
*/
class ButtonPropertyWidget : public AbstractPropertyWidget {
class CAMPVIS_APPLICATION_API ButtonPropertyWidget : public AbstractPropertyWidget {
Q_OBJECT;
public:
......
......@@ -25,20 +25,22 @@
#ifndef COLORPROPERTYWIDGET_H__
#define COLORPROPERTYWIDGET_H__
#include "application/applicationapi.h"
#include "application/gui/adjusterwidgets/doubleadjusterwidget.h"
#include "application/gui/properties/abstractpropertywidget.h"
#include "application/gui/properties/propertywidgetfactory.h"
#include "application/gui/qtcolortools.h"
#include "core/properties/floatingpointproperty.h"
#include "core/properties/colorproperty.h"
#include "application/gui/qtcolortools.h"
namespace campvis {
/**
* Widget for a ColorProperty
*/
class ColorPropertyWidget : public AbstractPropertyWidget {
class CAMPVIS_APPLICATION_API ColorPropertyWidget : public AbstractPropertyWidget {
Q_OBJECT
public:
......
......@@ -42,7 +42,7 @@ namespace campvis {
/**
* Widget for a DataNameProperty
*/
class DataNamePropertyWidget : public AbstractPropertyWidget {
class CAMPVIS_APPLICATION_API DataNamePropertyWidget : public AbstractPropertyWidget {
Q_OBJECT
public:
......
......@@ -34,7 +34,7 @@ namespace campvis {
/**
* Widget for a FloatProperty
*/
class FloatPropertyWidget : public AbstractPropertyWidget {
class CAMPVIS_APPLICATION_API FloatPropertyWidget : public AbstractPropertyWidget {
Q_OBJECT
public:
......
......@@ -50,7 +50,7 @@ namespace campvis {
/**
* Editor widget for a Geometry1DTransferFunction.
*/
class Geometry1DTransferFunctionEditor : public AbstractTransferFunctionEditor, public cgt::EventListener, public cgt::Painter {
class CAMPVIS_APPLICATION_API Geometry1DTransferFunctionEditor : public AbstractTransferFunctionEditor, public cgt::EventListener, public cgt::Painter {
Q_OBJECT;
public:
......
......@@ -49,7 +49,7 @@ namespace campvis {
/**
* Editor widget for a Geometry2DTransferFunction.
*/
class Geometry2DTransferFunctionEditor : public AbstractTransferFunctionEditor, public cgt::EventListener, public cgt::Painter {
class CAMPVIS_APPLICATION_API Geometry2DTransferFunctionEditor : public AbstractTransferFunctionEditor, public cgt::EventListener, public cgt::Painter {
Q_OBJECT;
public:
......
......@@ -38,7 +38,7 @@ namespace campvis {
/**
* Widget for a IntProperty
*/
class IntPropertyWidget : public AbstractPropertyWidget {
class CAMPVIS_APPLICATION_API IntPropertyWidget : public AbstractPropertyWidget {
Q_OBJECT;
public:
......
......@@ -27,6 +27,8 @@
#include "core/properties/metaproperty.h"
#include "application/applicationapi.h"
#include "application/gui/properties/abstractpropertywidget.h"
#include "application/gui/properties/propertycollectionwidget.h"
#include "application/gui/properties/propertywidgetfactory.h"
......@@ -38,7 +40,7 @@ namespace campvis {
* Widget for a Camera.
* For now just offering read-access.
*/
class MetaPropertyWidget : public AbstractPropertyWidget {
class CAMPVIS_APPLICATION_API MetaPropertyWidget : public AbstractPropertyWidget {
Q_OBJECT;
public:
......
......@@ -25,8 +25,10 @@
#ifndef OPTIONPROPERTYWIDGET_H__
#define OPTIONPROPERTYWIDGET_H__
#include "application/applicationapi.h"
#include "application/gui/properties/abstractpropertywidget.h"
#include "application/gui/properties/propertywidgetfactory.h"
#include "core/properties/optionproperty.h"
class QComboBox;
......@@ -37,7 +39,7 @@ namespace campvis {
/**
* Widget for a IntProperty
*/
class OptionPropertyWidget : public AbstractPropertyWidget {
class CAMPVIS_APPLICATION_API OptionPropertyWidget : public AbstractPropertyWidget {
Q_OBJECT;
public:
......
......@@ -26,6 +26,8 @@
#define PROPERTYCOLLECTIONWIDGET_H__
#include "sigslot/sigslot.h"
#include "application/applicationapi.h"
#include <QList>
#include <QVBoxLayout>
#include <QWidget>
......@@ -40,7 +42,7 @@ namespace campvis {
* Main Window for the CAMPVis application.
* Wraps a nice Qt GUI around the TumVisApplication instance given during creation.
*/
class PropertyCollectionWidget : public QWidget, public sigslot::has_slots {
class CAMPVIS_APPLICATION_API PropertyCollectionWidget : public QWidget, public sigslot::has_slots {
Q_OBJECT;
public:
......
......@@ -28,6 +28,8 @@
#include "cgt/logmanager.h"
#include "cgt/singleton.h"
#include "application/applicationapi.h"
#include <tbb/atomic.h>
#include <tbb/spin_mutex.h>
......@@ -51,7 +53,7 @@ namespace campvis {
*
* \note PropertyWidgetFactory is a thread-safe lazy-instantiated singleton.
*/
class PropertyWidgetFactory {
class CAMPVIS_APPLICATION_API PropertyWidgetFactory {
public:
/// Typedef for a function pointer to create a PropertyWidget if you know exactly its type.
typedef AbstractPropertyWidget* (*PropertyWidgetCreateFunctionPointer) (AbstractProperty*, DataContainer*, QWidget*);
......
......@@ -25,7 +25,9 @@
#ifndef SIMPLETRANSFERFUNCTIONEDITOR_H__
#define SIMPLETRANSFERFUNCTIONEDITOR_H__
#include "application/applicationapi.h"
#include "application/gui/properties/abstracttransferfunctioneditor.h"
#include <QWidget>
class QGridLayout;
......@@ -38,7 +40,7 @@ namespace campvis {
/**
* Editor widget for a SimpleTransferFunction.
*/
class SimpleTransferFunctionEditor : public AbstractTransferFunctionEditor {
class CAMPVIS_APPLICATION_API SimpleTransferFunctionEditor : public AbstractTransferFunctionEditor {
Q_OBJECT;
public:
......
......@@ -25,15 +25,17 @@
#ifndef STATUSPROPERTYWIDGET_H__
#define STATUSPROPERTYWIDGET_H__
#include "application/applicationapi.h"
#include "application/gui/properties/abstractpropertywidget.h"
#include "application/gui/properties/propertywidgetfactory.h"
#include "core/properties/statusproperty.h"
namespace campvis {
/**
* Widget for a StringProperty
*/
class StatusPropertyWidget : public AbstractPropertyWidget {
class CAMPVIS_APPLICATION_API StatusPropertyWidget : public AbstractPropertyWidget {
Q_OBJECT;
public:
......
......@@ -25,8 +25,10 @@
#ifndef STRINGPROPERTYWIDGET_H__
#define STRINGPROPERTYWIDGET_H__