itom  4.1.0
designerWidgetOrganizer.h
1 /* ********************************************************************
2  itom software
3  URL: http://www.uni-stuttgart.de/ito
4  Copyright (C) 2020, Institut fuer Technische Optik (ITO),
5  Universitaet Stuttgart, Germany
6 
7  This file is part of itom.
8 
9  itom is free software; you can redistribute it and/or modify it
10  under the terms of the GNU Library General Public Licence as published by
11  the Free Software Foundation; either version 2 of the Licence, or (at
12  your option) any later version.
13 
14  itom is distributed in the hope that it will be useful, but
15  WITHOUT ANY WARRANTY; without even the implied warranty of
16  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library
17  General Public Licence for more details.
18 
19  You should have received a copy of the GNU Library General Public License
20  along with itom. If not, see <http://www.gnu.org/licenses/>.
21 *********************************************************************** */
22 
23 #ifndef DESIGNERWIDGETORGANIZER_H
24 #define DESIGNERWIDGETORGANIZER_H
25 
26 #include "../../common/sharedStructures.h"
27 #include "../../common/sharedStructuresGraphics.h"
28 #include "../../AddInManager/pluginModel.h"
29 #include "plot/AbstractItomDesignerPlugin.h"
30 
31 #include <qobject.h>
32 #include <qlist.h>
33 #include <qtranslator.h>
34 
35 class QPluginLoader; //forward declaration
36 
37 namespace ito
38 {
39 
41 {
42  FigurePlugin() : filename(""), classname(""), plotDataTypes(DataObjLine), plotFeatures(Static), factory(NULL) {}
43  QString filename;
44  QString classname;
45  PlotDataTypes plotDataTypes;
46  PlotDataFormats plotDataFormats;
47  PlotFeatures plotFeatures;
48  QIcon icon;
49  QPluginLoader *factory;
50 };
51 
53 {
54 public:
55  FigureCategory(const QString description, const PlotDataTypes allowedPlotDataTypes, const PlotDataFormats allowedPlotDataFormats, const PlotFeatures requiredPlotFeatures, const PlotFeatures excludedPlotFeatures, const QString defaultClassName)
56  : m_description(description),
57  m_allowedPlotDataTypes(allowedPlotDataTypes),
58  m_allowedPlotDataFormats(allowedPlotDataFormats),
59  m_requiredPlotFeatures(requiredPlotFeatures),
60  m_excludedPlotFeatures(excludedPlotFeatures),
61  m_defaultClassName(defaultClassName)
62  {
63  }
64 
65  FigureCategory() : m_description("") {}
66 
67  QString m_description;
68  PlotDataTypes m_allowedPlotDataTypes;
69  PlotDataFormats m_allowedPlotDataFormats;
70  PlotFeatures m_requiredPlotFeatures;
71  PlotFeatures m_excludedPlotFeatures;
72  QString m_defaultClassName;
73 };
74 
75 class DesignerWidgetOrganizer : public QObject
76 {
77  Q_OBJECT
78 
79 public:
80 
83 
84  const QList<PluginLoadStatus> getPluginLoadStatus() const { return m_pluginLoadStatus; }
85  const QMap<QString, FigureCategory> getFigureCategories() const { return m_figureCategories; }
86 
87  QStringList getListOfIncompatibleDesignerPlugins() const;
88 
89  bool figureClassExists( const QString &className );
90  ito::RetVal figureClassMinimumRequirementCheck( const QString &className, int plotDataTypesMask, int plotDataFormatsMask, int plotFeaturesMask, bool *ok = NULL );
91  QList<FigurePlugin> getPossibleFigureClasses( int plotDataTypesMask, int plotDataFormatsMask, int plotFeaturesMask );
92  QList<FigurePlugin> getPossibleFigureClasses( const FigureCategory &figureCat );
93  QString getFigureClass( const QString &figureCategory, const QString &defaultClassName, ito::RetVal &retVal );
94  RetVal setFigureDefaultClass( const QString &figureCategory, const QString &defaultClassName);
95  QStringList getPlotInputTypes(const int plotInputType);
96  QStringList getPlotType(const int plotType);
97  QStringList getPlotFeatures(const int plotFeatures);
98  QStringList getPlotDataFormats(const int plotDataFormats);
99 
100  QWidget* createWidget(const QString &className, QWidget *parentWidget, AbstractFigure::WindowMode winMode = AbstractFigure::ModeStandaloneInUi);
101 
102 protected:
104  void setApiPointersToWidgetAndChildren(QWidget *widget);
105 
106 private:
107  QList<FigurePlugin> m_figurePlugins;
108  QList<PluginLoadStatus> m_pluginLoadStatus;
109  QMap<QString, FigureCategory> m_figureCategories;
110  QVector<QTranslator*> m_Translator;
111 
112 signals:
113 
114 public slots:
115 
116 private slots:
117 
118 };
119 
120 } //namespace ito
121 
122 #endif
Definition: designerWidgetOrganizer.h:52
QStringList getPlotFeatures(const int plotFeatures)
Return plot features as string list.
Definition: designerWidgetOrganizer.cpp:818
Class for managing status values (like errors or warning)
Definition: retVal.h:54
QStringList getPlotDataFormats(const int plotDataFormats)
Return plot data formats as string list.
Definition: designerWidgetOrganizer.cpp:764
RetVal scanDesignerPlugins()
short
Definition: designerWidgetOrganizer.cpp:120
Definition: apiFunctionsGraph.cpp:39
QStringList getPlotInputTypes(const int plotInputType)
Return plot input types as string list.
Definition: designerWidgetOrganizer.cpp:725
Definition: sharedStructuresGraphics.h:45
QWidget * createWidget(const QString &className, QWidget *parentWidget, AbstractFigure::WindowMode winMode=AbstractFigure::ModeStandaloneInUi)
short
Definition: designerWidgetOrganizer.cpp:689
QStringList getPlotType(const int plotType)
Return plot input types as string list.
Definition: designerWidgetOrganizer.cpp:868
QList< FigurePlugin > getPossibleFigureClasses(int plotDataTypesMask, int plotDataFormatsMask, int plotFeaturesMask)
short
Definition: designerWidgetOrganizer.cpp:482
ito::RetVal figureClassMinimumRequirementCheck(const QString &className, int plotDataTypesMask, int plotDataFormatsMask, int plotFeaturesMask, bool *ok=NULL)
short
Definition: designerWidgetOrganizer.cpp:431
~DesignerWidgetOrganizer()
destructor
Definition: designerWidgetOrganizer.cpp:97
QString getFigureClass(const QString &figureCategory, const QString &defaultClassName, ito::RetVal &retVal)
short
Definition: designerWidgetOrganizer.cpp:538
RetVal setFigureDefaultClass(const QString &figureCategory, const QString &defaultClassName)
short
Definition: designerWidgetOrganizer.cpp:666
Definition: designerWidgetOrganizer.h:75
Definition: designerWidgetOrganizer.h:40
DesignerWidgetOrganizer(ito::RetVal &retValue)
constructor
Definition: designerWidgetOrganizer.cpp:59
bool figureClassExists(const QString &className)
short
Definition: designerWidgetOrganizer.cpp:408