32 #include <QDockWidget>
33 #include <QMainWindow>
34 #include <QPluginLoader>
37 #include <Inventor/nodes/SoNode.h>
38 #include <Inventor/nodes/SoSeparator.h>
41 #include <QSplashScreen>
54 class QListWidgetItem;
60 class ArmarXMainWindow;
66 class GuiUseCaseSelector;
67 class AddArmarXWidgetAction;
69 class ArmarXDockWidget;
86 const std::vector<std::string>& packages,
87 const QString& configToLoad,
88 bool disablePreloading);
119 std::shared_ptr<std::recursive_mutex>
getMutex3D();
128 void loadGuiConfig(QString configFilepath =
"",
bool showAsOpenGuiConfig =
true);
140 void closeAllWidgets();
141 void closeAllWidgetsWithDialog();
142 void saveGuiConfig();
143 void saveGuiConfigAs();
144 void updateStatusOfOpenWidgets();
145 void enterFullscreenMode();
146 void leaveFullscreenMode();
147 void toggleWidgetLock();
158 QString customInstanceName,
159 QSettings* settings = NULL);
161 bool createViewerWidget =
true);
163 void removeArmarXWidget(QObject* widget);
164 void removeViewerWidget(QObject* widget);
166 void on_actionClear_tip_blacklist_triggered();
168 void on_actionAbout_triggered();
170 void on_actionLoadLastConfig_toggled(
bool toggled);
172 void on_actionArmarX_Documentation_triggered();
174 void on_actionOpen_Use_Case_triggered();
176 void on_actionClear_plugin_cache_triggered();
178 void updateOpenWidgetButtonStatus(QString widgetName);
180 void openWidgetButtonClicked();
182 void onContextMenuFavoritesRequested(
const QPoint& pos);
183 void onNumberOfMaxFavoritesChanged(
int i);
185 void updatefavoriteActions();
191 void updateAvailableWidgetList();
192 void updateOpenWidgetList();
197 void addArVizGodotIcon();
207 void loadPlugins(
const QString& pluginDir,
bool searchRecursive =
true);
210 void loadPlugins(
const QSet<QString>& pluginDirs,
bool searchRecursive =
true);
211 void loadPlugins(
const QStringList& fileNames);
213 QAction* addActionToToolBar(QAction* action,
bool allowText);
217 QStringList loadedPackages;
218 std::vector<QPluginLoader*> pluginsToLoad;
219 QList<QDir> directoriesToCheck;
221 ::Ui::ArmarXMainWindow* ui;
225 std::vector<ArmarXGuiInterface*>
plugins;
226 QStringList loadedPluginFilepaths;
228 QList<QWidget*> widgetsList;
231 QMap<QString, Viewer3DInfo> viewer3DMap;
233 QSignalMapper* signalMapper;
234 QActionGroup* layoutActions;
235 using OpenWidgetMap = QMap<QString, QPair<QDockWidget*, ArmarXWidgetControllerPtr>>;
236 OpenWidgetMap listOpenWidgets;
237 std::vector<ArmarXWidgetControllerPtr> pendingWidgets;
238 QListWidgetItem* viewerItem;
240 QPointer<TipDialog> tipDialog;
241 const int widgetUsageHistoryLength = 100;
244 std::vector<std::string> defaultPackageNames;
250 QAction* leaveFullScreenActionF11;
251 QAction* leaveFullScreenActionEsc;
256 QPointer<QDockWidget> getBiggestOpenWidget();
257 QMenu* getCategoryMenu(
const std::string& categoryString, QMenu* menu, QIcon widgetIcon);
258 const std::string settingsFile;
259 QSettings mainSettings;
260 QString configFilepath;
261 QString guiWindowBaseName;
262 QTimer* connectionStatusTimer;
263 QSplashScreen* splashSceen;
264 QString splashscreenPrefix;
266 QStringList mainWidgetNames;
267 QToolButton* openWidgetButton;
268 QLineEdit* searchField;
270 std::shared_ptr<std::recursive_mutex> mutex3d;
271 QMap<QString, QAction*> actionList;
273 QLabel* favoritesLabel;
274 std::vector<QAction*> favoriteActions;
275 QStringList favoriteActionWidgetNames;
303 QScrollArea* scrollArea;
305 QWidget* savedTitleBar;
318 void triggered(QString widgetName = QString());
322 void clicked(QString widgetName, QString customInstanceName);