31#if defined(G4UI_BUILD_QT_SESSION) || defined(G4UI_USE_QT)
40#include <qstringlist.h>
41#include <qtabwidget.h>
42#include <qdockwidget.h>
63class QStandardItemModel;
86class G4QTabWidget :
public QTabWidget {
89 G4QTabWidget(QWidget* aParent,
int sizeX,
int sizeY);
90 void paintEvent ( QPaintEvent * event );
91 inline void setTabSelected(
bool a) { fTabSelected = a; };
92 inline void setLastTabCreated(
int a) { fLastCreated = a; };
93 inline bool isTabSelected() {
return fTabSelected; };
98 inline void setPreferredSize(QSize s) {
99 fPreferedSizeX = s.width() + 6;
100 fPreferedSizeY = s.height() + 58;
102 inline QSize sizeHint ()
const {
103 return QSize(fPreferedSizeX, fPreferedSizeY);
107class G4UIOutputString {
109 G4UIOutputString(QString text,
G4String thread =
"",
G4String outputstream=
"info");
110 inline QString GetOutputList() {
return " all info warning error ";};
117class G4UIDockWidget :
public QDockWidget {
119 G4UIDockWidget(QString txt);
120 void closeEvent(QCloseEvent *);
132 void AddMenu(
const char*,
const char*);
137 void AddButton(
const char*,
const char*,
const char*);
143 void AddIcon(
const char* userLabel,
const char* iconFile,
const char* command,
const char* file_name=
"");
154 bool AddTabWidget(QWidget*,QString);
157 inline QTabWidget* GetViewerTabWidget() {
158 return fViewerTabWidget;
161 QWidget* GetSceneTreeWidget();
164 QWidget* GetViewerPropertiesWidget();
167 QWidget* GetPickInfosWidget();
170 bool IsSplitterReleased();
172 inline bool IsIconMoveSelected() {
173 return fMoveSelected;
175 inline bool IsIconRotateSelected() {
176 return fRotateSelected;
178 inline bool IsIconPickSelected() {
179 return fPickSelected;
181 inline bool IsIconZoomInSelected() {
182 return fZoomInSelected;
184 inline bool IsIconZoomOutSelected() {
185 return fZoomOutSelected;
188 void SetIconMoveSelected();
189 void SetIconRotateSelected();
190 void SetIconPickSelected();
191 void SetIconZoomInSelected();
192 void SetIconZoomOutSelected();
193 void SetIconHLHSRSelected();
194 void SetIconHLRSelected();
195 void SetIconSolidSelected();
196 void SetIconWireframeSelected();
197 void SetIconPerspectiveSelected();
198 void SetIconOrthoSelected();
200 inline QMainWindow * GetMainWindow() {
205 inline QPixmap* getSearchIcon() {
return fSearchIcon;};
207 inline QPixmap* getClearIcon() {
return fClearIcon;};
210 void SetStartPage(
const std::string&);
215 inline QWidget* GetCoutWidget() {
216 return fCoutDockWidget->widget();
220 inline G4UIDockWidget* GetCoutDockWidget() {
221 return fCoutDockWidget;
225 inline G4UIDockWidget* GetUserInterfaceWidget() {
226 return fUIDockWidget;
230 inline QTabWidget* GetUITabWidget() {
235 inline QWidget* GetHistoryWidget() {
236 return fHistoryTBWidget;
240 inline QWidget* GetHelpWidget() {
241 return fHelpTBWidget;
245 bool AddViewerTab(QWidget* w, std::string title);
248 bool AddViewerTabFromFile(std::string fileName, std::string title);
254 void SessionTerminate();
262 void CreateHelpWidget();
263 void InitHelpTreeAndVisParametersWidget();
265 void UpdateCommandCompleter();
268 void SetDefaultIconsToolbar();
271 QTreeWidgetItem* FindTreeItem(QTreeWidgetItem *,
const QString&);
276 bool eventFilter(QObject*,QEvent*);
278#if QT_VERSION < 0x050F00
279 QMap<int,QString> LookForHelpStringInChildTree(
G4UIcommandTree *,
const QString&);
281 QMultiMap<int,QString> LookForHelpStringInChildTree(
G4UIcommandTree *,
const QString&);
283 QWidget* CreateVisParametersTBWidget();
284 QWidget* CreateHelpTBWidget();
285 G4UIDockWidget* CreateCoutTBWidget();
286 QWidget* CreateHistoryTBWidget();
287 G4UIDockWidget* CreateUITabWidget();
288 QWidget* CreateSceneTreeWidget();
289 void CreateViewerWidget();
290 void OpenHelpTreeOnCommand(
const QString &);
291 QString GetShortCommandPath(QString);
292 QString GetLongCommandPath(QTreeWidgetItem*);
294 bool CreateVisCommandGroupAndToolBox(
G4UIcommand*, QWidget*,
int,
bool isDialog);
295 bool CreateCommandWidget(
G4UIcommand* command, QWidget* parent,
bool isDialog);
296 void CreateViewerPropertiesDialog();
297 void CreatePickInfosDialog();
298#ifdef G4MULTITHREADED
299 void UpdateCoutThreadFilter();
301 void FilterAllOutputTextArea();
302 QString FilterOutput(
const G4UIOutputString&,
const QString&,
const QString&);
304 bool CheckG4EnvironmentVariable(
char* txt,
char* version);
305 QStandardItemModel* CreateCompleterModel(
G4String aCmd);
306 void CreateEmptyViewerPropertiesWidget();
307 void CreateEmptyPickInfosWidget();
310 QMainWindow * fMainWindow;
311 QLabel *fCommandLabel;
312 QLineEdit * fCommandArea;
313 QTextEdit *fCoutTBTextArea;
314 QTabWidget* fUITabWidget;
315 std::vector <G4UIOutputString> fG4OutputString;
316 QLineEdit * fCoutFilter;
317 QCompleter* fCompleter;
320 QListWidget *fHistoryTBTableList;
321 QTreeWidget *fHelpTreeWidget;
322 QWidget* fHelpTBWidget;
323 QWidget* fHistoryTBWidget;
324 G4UIDockWidget* fCoutDockWidget;
325 G4UIDockWidget* fUIDockWidget;
326 QWidget* fSceneTreeWidget;
327 QWidget* fViewerPropertiesWidget;
328 QWidget* fPickInfosWidget;
329 QLineEdit* fHelpLine;
330 G4QTabWidget* fViewerTabWidget;
332 QTextEdit *fStartPage;
333 QSplitter * fHelpVSplitter;
334 QTextEdit* fParameterHelpLabel;
335 QTableWidget* fParameterHelpTable;
337 QToolBar *fToolbarApp;
338 QToolBar *fToolbarUser;
339 QString fStringSeparator;
341 QString fLastOpenPath;
342 QToolButton* fViewModePopupButton;
343 QToolButton* fSurfaceModePopupButton;
345 QPixmap* fSearchIcon;
350 QPixmap* fRotateIcon;
352 QPixmap* fZoomInIcon;
353 QPixmap* fZoomOutIcon;
354 QPixmap* fWireframeIcon;
356 QPixmap* fHiddenLineRemovalIcon;
357 QPixmap* fHiddenLineAndSurfaceRemovalIcon;
358 QPixmap* fPerspectiveIcon;
360 QPixmap* fCommandIcon;
364 QPixmap* fPickTargetIcon;
366#ifdef G4MULTITHREADED
367 QComboBox* fThreadsFilterComboBox;
369 std::string fDefaultViewerFirstPageHTMLText;
371 QDialog* fViewerPropertiesDialog;
372 QDialog* fPickInfosDialog;
373 QString fLastCompleteCommand;
375 bool fRotateSelected;
377 bool fZoomInSelected;
378 bool fZoomOutSelected;
382 void ClearButtonCallback();
383 void SaveOutputCallback();
384 void CommandEnteredCallback();
385 void CommandEditedCallback(
const QString & text);
386 void ButtonCallback(
const QString&);
387 void HelpTreeClicCallback();
388 void HelpTreeDoubleClicCallback();
389 void ShowHelpCallback();
390 void CommandHistoryCallback();
391 void LookForHelpStringCallback();
392 void UpdateTabWidget(
int);
393 void ResizeTabWidget( QResizeEvent* );
394 void CoutFilterCallback(
const QString&);
395 void ThreadComboBoxCallback(
int);
396 void TabCloseCallback(
int);
397 void ToolBoxActivated(
int);
398 void VisParameterCallback(QWidget*);
399 void ChangeColorCallback(QWidget*);
400 void ChangeCursorAction(
const QString&);
401 void ChangeSurfaceStyle(
const QString&);
402 void OpenIconCallback(
const QString&);
403 void SaveIconCallback(
const QString&);
404 void ViewerPropertiesIconCallback(
int);
405 void ChangePerspectiveOrtho(
const QString&);
virtual G4int ReceiveG4cout(const G4String &coutString)
virtual G4int ReceiveG4cerr(const G4String &cerrString)
virtual void PauseSessionStart(const G4String &Prompt)=0
virtual G4UIsession * SessionStart()=0
virtual void ExitHelp() const =0
virtual G4bool GetHelpChoice(G4int &)=0
virtual void DefaultIcons(bool)
virtual void AddMenu(const char *, const char *)
virtual void AddIcon(const char *, const char *, const char *, const char *)
virtual void AddButton(const char *, const char *, const char *)