Version: 9.15.0
STD_Application.h
Go to the documentation of this file.
1 // Copyright (C) 2007-2025 CEA, EDF, OPEN CASCADE
2 //
3 // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5 //
6 // This library is free software; you can redistribute it and/or
7 // modify it under the terms of the GNU Lesser General Public
8 // License as published by the Free Software Foundation; either
9 // version 2.1 of the License, or (at your option) any later version.
10 //
11 // This library is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 // Lesser General Public License for more details.
15 //
16 // You should have received a copy of the GNU Lesser General Public
17 // License along with this library; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 //
20 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 //
22 
23 #ifndef STD_APPLICATION_H
24 #define STD_APPLICATION_H
25 
26 #include "STD.h"
27 
28 #include <SUIT_Application.h>
29 
30 #include <QtxNotify.h>
31 
32 #include <QList>
33 #include <QPointer>
34 
35 class QMenu;
36 class QCloseEvent;
37 class QContextMenuEvent;
38 
39 class QToolBar;
40 class QtxAction;
41 class SUIT_Operation;
42 class SUIT_ViewWindow;
43 class SUIT_ToolWindow;
44 class SUIT_Desktop;
45 class SUIT_ViewManager;
46 class SUIT_PopupClient;
47 
49 
50 #if defined WIN32
51 #pragma warning( disable: 4251 )
52 #endif
53 
55 {
56  Q_OBJECT
57 
58 public:
59  enum { MenuFileId, FileNewId, FileOpenId, FileReopenId, FileCloseId, FileSaveId, FileSaveAsId, FileExitId,
60  MenuViewId, ViewWindowsId, ViewToolBarsId, ViewStatusBarId, NewWindowId,
61  MenuEditId, EditCutId, EditCopyId, EditPasteId,
62  MenuHelpId, HelpAboutId,
63  UserID
64  };
65 
66 public:
68  virtual ~STD_Application();
69 
70  virtual QString applicationName() const;
71 
72  virtual bool isPossibleToClose( bool& );
73  virtual bool useFile( const QString& );
74 
75  virtual void createEmptyStudy();
76 
77  void setEditEnabled( const bool );
78  bool isEditEnabled() const { return myEditEnabled; }
79 
80  void clearViewManagers();
81  virtual void addViewManager( SUIT_ViewManager* );
82  virtual void removeViewManager( SUIT_ViewManager* );
83 
84  SUIT_ViewManager* activeViewManager() const;
85  SUIT_ViewManager* viewManager( const QString& ) const;
86 
87  bool containsViewManager( SUIT_ViewManager* ) const;
88 
90  void viewManagers( ViewManagerList& ) const;
91  void viewManagers( const QString&, ViewManagerList& ) const;
92  virtual int viewManagerId (const SUIT_ViewManager* ) const;
93 
94  virtual QString getFileFilter( bool open ) const;
95  virtual QString getFileName( bool open, const QString& initial, const QString& filters,
96  const QString& caption, QWidget* parent );
97  QString getDirectory( const QString& initial, const QString& caption, QWidget* parent );
98 
99  virtual void start();
100 
101  virtual void closeApplication();
102 
103  virtual void contextMenuPopup( const QString&, QMenu*, QString& ) {}
104 
105  bool exitConfirmation() const;
106  void setExitConfirmation( const bool );
107 
108  virtual void updateDesktopTitle();
109 
110  int showNotification(const QString& message, const QString& title, int timeout = -1);
111  void hideNotification(const QString& message);
112  void hideNotification(int id);
113 
114 signals:
121  void appClosed();
122 
123 public slots:
124  virtual void onNewDoc();
125  virtual bool onNewDoc( const QString& );
126 
127  virtual void onCloseDoc( bool ask = true );
128  virtual bool onSaveDoc();
129  virtual bool onSaveAsDoc();
130 
131  virtual void onOpenDoc();
132  virtual bool onOpenDoc( const QString& );
133 
134  virtual bool onReopenDoc();
135 
136  virtual void onExit();
137 
138  virtual void onCopy();
139  virtual void onPaste();
140 
141  virtual void onViewStatusBar( bool );
142 
143  virtual void onHelpAbout();
144 
145  virtual void onDesktopClosing( SUIT_Desktop*, QCloseEvent* );
146  virtual void onConnectPopupRequest( SUIT_PopupClient*, QContextMenuEvent* );
147 
148 private slots:
149  virtual void onViewManagerActivated( SUIT_ViewManager* );
150 
151 protected:
152  enum { OpenCancel, OpenNew, OpenExist };
153  enum { CloseCancel, CloseSave, CloseDiscard };
154 
155 protected:
156  virtual void createActions();
157  virtual void customize();
158  virtual void updateCommandsStatus();
159 
160  virtual void setDesktop( SUIT_Desktop* );
161 
162  virtual void loadPreferences();
163  virtual void savePreferences();
164 
165  virtual void studySaved( SUIT_Study* );
166  virtual void studyOpened( SUIT_Study* );
167  virtual void studyCreated( SUIT_Study* );
168 
169  virtual void beforeCloseDoc( SUIT_Study* theDoc );
170  virtual void afterCloseDoc();
171 
172  virtual void setActiveViewManager( SUIT_ViewManager* );
173 
174  virtual int openChoice( const QString& );
175  virtual bool openAction( const int, const QString& );
176 
177  virtual int closeChoice( const QString& );
178  virtual bool closeAction( const int, bool& );
179  virtual bool closeDoc( bool ask = true );
180  virtual bool closeActiveDoc( bool permanently = true );
181 
182  virtual bool abortAllOperations();
183 
184  private:
185  QtxNotify* notifyMgr();
186 
187 private:
190 
191 private:
192  QPointer<QtxNotify> myNotify;
195 };
196 
197 #if defined WIN32
198 #pragma warning( default: 4251 )
199 #endif
200 
201 #endif
#define STD_EXPORT
Definition: STD.h:33
QList< SUIT_ViewManager * > ViewManagerList
Definition: STD_Application.h:46
Generic action class.
Definition: QtxAction.h:39
Definition: QtxNotify.h:36
Definition: STD_Application.h:55
virtual void contextMenuPopup(const QString &, QMenu *, QString &)
Definition: STD_Application.h:103
void viewManagerRemoved(SUIT_ViewManager *)
SUIT_ViewManager * myActiveViewMgr
Definition: STD_Application.h:189
@ OpenCancel
Definition: STD_Application.h:152
bool isEditEnabled() const
Definition: STD_Application.h:78
void viewManagerAdded(SUIT_ViewManager *)
ViewManagerList myViewMgrs
Definition: STD_Application.h:188
QPointer< QtxNotify > myNotify
Definition: STD_Application.h:192
@ EditCopyId
Definition: STD_Application.h:61
@ HelpAboutId
Definition: STD_Application.h:62
@ MenuViewId
Definition: STD_Application.h:60
@ FileCloseId
Definition: STD_Application.h:59
void viewManagerActivated(SUIT_ViewManager *)
@ CloseCancel
Definition: STD_Application.h:153
bool myExitConfirm
Definition: STD_Application.h:193
bool myEditEnabled
Definition: STD_Application.h:194
Definition: SUIT_Application.h:61
virtual QString applicationName() const =0
Returns Name of application. Using is not defined.
virtual void setDesktop(SUIT_Desktop *)
Definition: SUIT_Application.cxx:274
virtual void viewManagers(const QString &, QList< SUIT_ViewManager * > &) const =0
virtual void updateCommandsStatus()
Definition: SUIT_Application.cxx:241
virtual bool isPossibleToClose(bool &)
Definition: SUIT_Application.cxx:95
virtual QString getDirectory(const QString &initial, const QString &caption, QWidget *parent)=0
Invokes application-specific "Select Directory" dialog and returns the selected directory name.
virtual QString getFileName(bool open, const QString &initial, const QString &filters, const QString &caption, QWidget *parent)=0
Invokes application-specific "Open/Save File" dialog and returns the selected file name.
virtual bool useFile(const QString &theFileName)
Opens document <theFileName> into active Study. If Study is empty - creates it.
Definition: SUIT_Application.cxx:141
virtual void createEmptyStudy()
Creates new empty Study if active Study = 0.
Definition: SUIT_Application.cxx:160
virtual int viewManagerId(const SUIT_ViewManager *) const =0
virtual void closeApplication()
Definition: SUIT_Application.cxx:104
virtual void start()
Shows the application's main widget. For non GUI application must be redefined.
Definition: SUIT_Application.cxx:128
Definition: SUIT_Desktop.h:47
Base class for all operations.
Definition: SUIT_Operation.h:56
Definition: SUIT_PopupClient.h:37
Definition: SUIT_Study.h:41
Definition: SUIT_ViewManager.h:50
Definition: SUIT_ViewWindow.h:42