31 #include <ArmarXGui/gui-plugins/RemoteGuiPlugin/ui_RemoteGuiWidget.h>
32 #include <ArmarXGui/interface/RemoteGuiInterface.h>
63 public armarx::RemoteGuiListenerInterface
78 QPointer<QDialog> getConfigDialog(QWidget* parent = 0)
override;
79 void configured()
override;
84 void loadSettings(QSettings* settings)
override;
89 void saveSettings(QSettings* settings)
override;
98 return "Util.RemoteGui";
102 void onInitComponent()
override;
103 void onConnectComponent()
override;
106 void reportTabChanged(
const std::string& tab,
const Ice::Current&)
override;
107 void reportTabsRemoved(
const Ice::Current&)
override;
108 void reportWidgetChanged(
const std::string& tab,
109 const RemoteGui::WidgetStateMap& widgetState,
110 const Ice::Current&)
override;
111 void reportStateChanged(
const std::string& tab,
113 const Ice::Current&)
override;
115 void onLockWidget()
override;
116 void onUnlockWidget()
override;
120 void onTabChanged(QString
id);
121 void onTabsChanged();
122 void onWidgetChanged(QString
id);
123 void onStateChanged(QString
id);
125 void onGuiStateChanged();
126 void onSendButtonClicked();
128 void onCheckBoxGroupTabsClicked(
bool checked);
129 void onComboBoxTabGroupsCurrentIndexChanged(
const QString& group);
133 void tabChanged(QString
id);
135 void widgetChanged(QString
id);
136 void stateChanged(QString
id);
139 void createTab(std::string
const& tabId);
140 void removeObsoleteTabs();
141 void updateWidgets(std::string
const& tabId);
142 void updateState(std::string
const& tabId);
145 void createWidgets(std::string
const&
id);
146 void updateValuesInWidget(std::string
const&
id);
148 void updateValuesInState();
150 void doAutoUpdate(std::string
const&
id);
152 QWidget* createWidgetFromDescription(std::string
const& tabId,
158 std::string fullName()
const;
159 std::string name(
const std::string& pre)
const;
160 int findTabIndex(QTabWidget* tab)
const;
161 QWidget* w =
nullptr;
162 std::set<std::string> groups;
168 Ui::RemoteGuiWidget widget;
170 QPointer<SimpleConfigDialog> dialog;
171 std::string remoteGuiProviderName;
172 RemoteGuiInterfacePrx remoteGuiProvider;
174 std::mutex stateMutex;
175 RemoteGui::WidgetMap tabs;
176 std::map<std::string, TabData> qtTabs;
177 std::map<std::string, RemoteGui::WidgetMap> guiDescriptions;
178 RemoteGui::TabValueMap tabValueMap;
179 RemoteGui::TabValueMap tabDirtyMap;
181 RemoteGui::TabWidgetStateMap tabWidgetStates;
183 std::map<std::string, std::map<std::string, QWidget*>> guiWidgets;
185 std::atomic<bool> internalUpdate{
false};
187 static constexpr
auto groupAll =
"<ALL>";
188 static constexpr
auto groupUngrouped =
"<UNGROUPED>";
189 std::string activeGroup = groupAll;
191 std::map<std::string, std::size_t> tabsPerGroup;